C++程序語(yǔ)言設(shè)計(jì)(清華大學(xué)出版社)復(fù)習(xí)要點(diǎn)_第1頁(yè)
C++程序語(yǔ)言設(shè)計(jì)(清華大學(xué)出版社)復(fù)習(xí)要點(diǎn)_第2頁(yè)
C++程序語(yǔ)言設(shè)計(jì)(清華大學(xué)出版社)復(fù)習(xí)要點(diǎn)_第3頁(yè)
C++程序語(yǔ)言設(shè)計(jì)(清華大學(xué)出版社)復(fù)習(xí)要點(diǎn)_第4頁(yè)
C++程序語(yǔ)言設(shè)計(jì)(清華大學(xué)出版社)復(fù)習(xí)要點(diǎn)_第5頁(yè)
已閱讀5頁(yè),還剩292頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

試卷編號(hào):8172

所屬語(yǔ)言:C++

試卷方案:題庫(kù)182道設(shè)計(jì)題

試卷總分:1820分

共有題型:1種

一、程序設(shè)計(jì)共182題(共計(jì)1820分)

第1題(10.0分)題號(hào):664

/*--------------------------------------

【程序設(shè)計(jì)】

題目:已知有結(jié)構(gòu)體類型定義:

structnode

{intdata;

structnode*nextPtr;

};

請(qǐng)編寫函數(shù)voidcomputingList(node*head),對(duì)head

指向的單向鏈表,分別統(tǒng)計(jì)結(jié)點(diǎn)的data成員值為負(fù)數(shù)、0、

正數(shù)的結(jié)點(diǎn)個(gè)數(shù)分別存入變量neglive、zero、positive中。

注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中

的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編寫的若干語(yǔ)句。

---------------------------------------------------------*/

#include<iostream>

#include<fstream>

usingnamespacestd;

voidgrading(int,int,int);

structnode

{

intdata;

structnode*nextPtr;

);

voidcomputingList(node*head)

intpositive=0,negtive=0,zero=0;

/**********Prograiii**********/

/**********End**********/

〃忽略閱讀

grading(positive,zero,negtive);

//忽略閱讀結(jié)束

)

structnode*createList(void)

(

node*head=NULL,*pl,*p2;

inti;

inta[10]={-1,3,4,0,9,4,11,-6,2,-10};

head=p2=pl=newnode;

pl->data=a[0];

for(i=l;i<10;i++)

{

pl=newnode;

pl->data=a[i];

p2->nextPtr=pl;

p2=pl;

}

p2->nextPtr=NULL;

return(head);

)

intmain()

(

structnode*head;

head=createList();

computingList(head);

return0;

)

〃以下忽略閱讀

voidgrading(inta,intb,intc)

fstrearnmyfile;

myfile.open("out.txt〃,ios::out);

myfile?a<<z,,z<<b?,/z/?c?endl;

myfile.close();

)

答案:structnode*p;

p=head;

while(p!=NULL)

(

if(p->data>0)

positive++;

elseif(p->data<0)

negtive++;

elseif(p->data==0)

zero++;

p=p->nextPtr;

第2題(10.0分)題號(hào):522

/*-------------------------

【程序設(shè)計(jì)】

題目:設(shè)計(jì)函數(shù)charcapitalize(char);將小寫英文字符變?yōu)閷?duì)應(yīng)的大寫字符。

注意:

1.部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在*program*

和*end*所標(biāo)記的區(qū)域內(nèi)完成題干要求的函數(shù)功能。

2.〃標(biāo)記開(kāi)始與〃標(biāo)記結(jié)束內(nèi)的程序可以忽略閱讀。

-----------------------------------------------------------------------------*/

#include<iostream>

#include<fstream>

usingnamespacestd;

voidwwjt();

/********Program********/

charcapitalize(charch)

(

if(ch>=,a'&&ch〈二'z')

returnch,a'+'A';

elsereturnch;

)

/********End********/

intmain()

(

inti=0;

charcp[30];

cout<〈〃請(qǐng)輸入包含小寫字母的句子:〃《endl;

cin.getline(cp,30);

while(cp[i]!='\0')

cout<<capitaiize(cp[i++]);

cout?endl;

//忽略閱讀

wwjt();

〃忽略閱讀結(jié)束

return0;

)

〃忽略閱讀

voidwwjt()

(

charins[250];

inti=0;

fstreaminfile,outfile;

infile,open("in.txt〃,ios::in);

outfile.open("out.txt,z,ios::out);

infile,getline(ins,250);

while(ins[i]!-\0*)

(

outfile<<capitalize(ins[i]);

i++;

}

infile,close();

outfile.close();

)

〃忽略閱讀結(jié)束

答案:charcapitalize(charch)

{

if(ch>=*a&&ch<=,z')

returnch-'a'+'A,;

elsereturnch;

)

第3題(10.0分)題號(hào):672

/*-------------------------

【程序設(shè)計(jì)】

題目:函數(shù)mySum(inta[][],intm,intn)返回二維

整數(shù)數(shù)組a中所有元素的和,m、n分別為數(shù)組a的行

數(shù)、列數(shù)。填寫適當(dāng)?shù)拇a,使得mySum()完成正確

的功能。

注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它

函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編

寫的若干語(yǔ)句。

-----------------------------------------------*/

tlinclude<iostream>

[include<fstream>

usingnamespacestd;

intmySum(inta[2][3],intm,intn);

voidgfkd();

voidmain()

inta[2][3]={{1,2,3},{4,5,6}};

cout?mySum(a,2,3)?endl;

//-------main。函數(shù)此后部分可以不閱讀-

gfkdO;

)

intmySum(inta[2][3],intm,intn)

(

/***************Program*****************/

/***************End^jy***************,,

)

voidgfkd()

{fstreammyF;

inta[2][3];

myF.open("in.dat〃,ios::in);

myF.read((char*)a,sizeof(int)*2*3);

myF.close();

myF.open("out.dat,z,ios::out);

myF?mySum(a,2,3);

myF.closeO;

)

答案:inti,j,s=0;

for(i=0;i<m;i++)

for(j=0;j<n;j++)

s=s+a[i][j];

returns;

第4題(10.0分)題號(hào):588

/*-----------------------------

【程序設(shè)計(jì)】

題目:求1T000之間同構(gòu)數(shù)的個(gè)數(shù)n。同構(gòu)數(shù)是:

”某數(shù)與其自身的平方數(shù)的后幾位相同

例如:25X25=625,25是同構(gòu)數(shù)。

注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它

函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編

寫的若干語(yǔ)句。

-----------------------------------------------------*/

#include<fstream>

#include<iostream>

usingnamespacestd;

voidwriteinfile(intn);

voidmain()

intm,k,j,n=0;

for(m=l;m<=1000;m++)

/**********Program**********/

inti=l;

k=m;

while(k!=0)

(

k/=10;

i*=10;

)

if(j%i==m)

n++;

/********格End********橋/

)

writeinfile(n);

)

voidwriteinfile(intn)

(

fstreammyfile;

myfile.open(,zf.txt",ios::out);

myfile<<n<<endl;

myfile.close();

)

答案:inti=l;

k二m;

while(k!=0)

(

k/=10;

i*=10;

}

if(j%i==m)

n++;

第5題(10.0分)題號(hào):725

/*----------------------------

【程序設(shè)計(jì)】

題目:補(bǔ)充函數(shù)aver的代碼,該函數(shù)計(jì)算n個(gè)學(xué)生成績(jī)(通

過(guò)參數(shù)cj傳入)的平均分?jǐn)?shù)。

注意:部分源程序給出如下。僅在標(biāo)有〃Program〃和〃End〃

的注釋行之間補(bǔ)充代碼,請(qǐng)勿改動(dòng)其它內(nèi)容。

-----------------------------------------------------*/

#include<iostream>

#include<fstream>

usingnamespacestd;

voidgrading0;

floataver(intcj,intn)

(

/**********Program**********/

/**********End**********/

)

intmain()

(

grading0;

return0;

)

voidgrading()

(

fstreaminfile,myfile;

intb[50];

inti;

infile,open(,zin.txt〃,ios::in);

myfile,open(,zout.txt",ios::out);

for(i=0;i<50;i++)

infile>>b[i];

myfile<<(int)aver(b,50)<<endl;

infile,close();

myfile.close();

答案:intsum=0;

inti;

for(i=0;i〈n;i++)

sum+=cj[i];

return(float)sum/n;

第6題(10.0分)題號(hào):709

/*----------------------------

【程序設(shè)計(jì)】

題目:輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。

注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它

函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編

寫的若干語(yǔ)句。

-----------------------------------------------------*/

#include<iostream>

ttinclude<fstream>

usingnamespacestd;

intgrading();

intgcd(intm,intn)

(

intr;

r=m%n;

/**********Program**********/

/**********End**********/

returnn;

}

intmain()

intm,n;

cout<〈”請(qǐng)輸入兩個(gè)數(shù):\n〃;

cin?m?n;

if(m<n)

(

inttemp;

temp=m;

m=n;

n=temp;

)

cout?m<<"和的最大公約數(shù)是“<<gcd(m,n)?endl;

cout?m<<"和“<<n<<"的最小公倍數(shù)是"<<m*n/gcd(m,n)?endl;

〃忽略閱讀

grading();

〃忽略閱讀結(jié)束

return0;

)

〃以下忽略閱讀

intgrading()

(

intm,n;

ifstreaminfile("in.txt〃,ios::in);

ofstreamoutfile(〃out.txt〃,ios::out);

if(!infile.is_open()||loutfile.is_open())

(

cout?/zFileOpenError!,z?endl;

return_1;

)

for(inti=0;i<8;i++){

infile?m?n;

outfile?gcd(m,n)<<"〃<<ni*n/gcd(m,n)?endl;

}

infile,close();

outfile.close();

return0;

)

答案:while(r!=O)

(

m=n;

n=r;

r=m%n;

}

第7題(10.0分)題號(hào):667

/*--------------------------

【程序設(shè)計(jì)】

題目:編程計(jì)算,計(jì)算公式如右圖所示。

注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它

函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編

寫的若干語(yǔ)句。

--------------------------------------------------------*/

#include<iostream>

ttinclude<fstream>

usingnamespacestd;

intcalcO

(

/**********Program***料*****/

/**********End***科*****/

}

voidmain(void)

intvalue;

value=calc();

cout<<“累計(jì)和s為:〃<<value<<endl;

fstreamoutfile;

outfile.open(/zout.txt〃,ios::out);

outfile?”累計(jì)和s為:〃?value?endl;

outfile.close();

)

答案:inti,k,s;

s=0;

for(i=l;i<=20;i++)

for(k=l;k<=3;k++)

s=s+(i+l)*(i+l)*(k+2)*(k+2);

returns;

第8題(10.0分)題號(hào):265

/*---------------------------------------------

【程序設(shè)計(jì)】

題目:完成函數(shù)cal,該函數(shù)計(jì)算數(shù)組a中的所有數(shù)據(jù)的

最大值及最小值以及它們的差,并存入到全局變

量max、min、ca中。例如數(shù)組a中包含8,43,7,

18,2,56,37,123,25,26則max=123,min=2,

ca=121o

注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它

函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編

寫的若干語(yǔ)句。

--------------------------------------------------*/

#include<iostream>

Winclude<fstream>

usingnamespacestd;

intgradingO;

intmax,min,ca;

voidcal(inta[],intsize)

/**********Program**********/

/**********End**********/

)

intmain()

{

inta[100]={8,43,7,18,2,56,37,123,25,26);

cal(a,10);

cout?z,max=z,<<max<<endl;

cout?,/min=/z<<min<<endl;

cout?,zca=zz?ca?endl;

〃忽略閱讀

grading();

〃忽略閱讀結(jié)束

return0;

)

〃以下忽略閱讀

intgrading()

(

fstreaminfile,outfile;

inta[100],i;

infile,open(,zin.txt〃,ios::in);

outfile.open("out.txt〃,ios::out);

for(i=0;i<20;i++)

{

infile>>a[i];

)

cal(a,20);

outfile<<max<<,zz,<<min<<z,〃<<ca<<endl;

for(i=0;i<15;i++)

infile?a[i];

)

cal(a,15);

outfile<<max?z,/z<<min?z//z?ca?endl;

infile,close();

outfile.closeO;

return0;

}

答案:inti;

max=min=a[0];

for(i=0;i<size;i++)

(

if(a[i]>max)

max=a[i];

if(a[i]<min)

min=a[i];

)

ca=max-min;

第9題(10.0分)題號(hào):707

/*-------------------------

【程序設(shè)計(jì)】

題目:從文件中讀入n個(gè)字符串,將其中以字母A開(kāi)頭的字符串復(fù)制

到二維字符數(shù)組str1中。

注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它

函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編

寫的若干語(yǔ)句。

------------------------------------------------*/

#include<iostream>

#include<fstream>

#include<string>

usingnamespacestd;

#definen5

#defineM20

voidwwjt(intlen);

charstrl[n][M];

voidmain()

inti;

charstr[n][M];

ifstreaminfile("in.txt,z,ios::in);

if(!infile,isopen())

(

cout<<,zFileOpenError!z,<<endl;

return;

)

for(i=0;i<n;i++)

infile?str[i];

infile,close();

intj=0;

/**********Program**********/

/**********End**********/

wwjt(j);

)

voidwwjt(intlen)

(

ofstreamoutfile(z/out.txt〃,ios::out);

if(loutfile.is_open())

(

cout<<z/FileOpenErrorz,?endl;

return;

}

for(inti=0;i<len;i++)

outfile<<strl[i]?"\n";

outfile.close();

}

答案:for(i=0;i<n;i++)

(

if((strcmp(str[i],/ZA,Z)>=0)&&(strcmp(str[i],<0))

{strcpy(strl[j],str[i]);

j++;

}

)

第10題(10.0分)題號(hào):673

/*-----------------------------------------------------

【程序設(shè)計(jì)】

題目:函數(shù)myStrCat(char*dst,char*src)將字符串src

連接到字符串dst的后面。填寫適當(dāng)?shù)拇a,使得

mySum()完成正確的功能。

注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它

函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編

寫的若干語(yǔ)句。

-----------------------------------------------*/

#include<iostream>

#include<fstream>

usingnamespacestd;

voidmyStrCat(char*dst,char*src);

voidgfkd();

voidmain()

{chardst[100]=,zHello,

charsrc[100]="Goodluck!”;

myStrCat(dst,src);

cout?dst?endl;

//-------main。函數(shù)此后部分可以不閱讀一

gfkd();

)

voidmyStrCat(char*dst,char*src)

(

/***************Program*************我**/

End*****************/

)

voidgfkd()

fstreammyF;

chardst[100],src[100];

myF.open(z,in.dat〃,ios::in);

myF.read(dst,100);

myF.read(src,100);

myF.closeO;

myF.open(z,out.dat〃,ios::out);

myStrCat(dst,src);

myF?dst;

myF.closeO;

)

答案:inii=0,len;

1en=strlen(dst);

while(src[i])

dst[len++]=src[i++];

dst[len]='\0';

第11題(10.0分)題號(hào):723

/*----------------------------

【程序設(shè)計(jì)】

題目:編寫函數(shù)eachPrime,判斷兩個(gè)正整數(shù)m和n是否為

互質(zhì)數(shù)。若是,返回1;否則,返回

互質(zhì)數(shù):最大公約數(shù)為1的兩個(gè)數(shù)稱為互質(zhì)數(shù)。

注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它

函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編

寫的若干語(yǔ)句。

不妥//

#include<iostream>

^include<fstream>

#include<cstring>

usingnamespacestd;

inteachPrime(intm,intn)

/**********Program**********/

/**********End**********/

voidgrading();

intmain()

{

intnuml,num2,result;

cout<<"Pleaseentertwointeger(>0):\n〃;

cin?numl?num2;

if(numl<=0I|num2<=0)

cout?Inputerror!\n/z;

result=eachPrime(numl,num2);

if(result==1)

cout?numl?和?num2<<”是互質(zhì)數(shù)!\n〃;

else

cout?numl?和〃<<num2<<“不是互質(zhì)數(shù)!\n〃;

〃忽略閱讀

grading();

〃忽略閱讀結(jié)束

return0;

)

〃以下忽略閱讀

voidgrading()

(

intnl,n2,result;

fstreaminfilel72,myfile;

infilel72.open(,zin172.txt〃,ios::in);

myfile.open("out172.txt〃,ios::out);

for(inti=0;i<10;i++)

infilel72?nl?n2;

result=eachPrime(nl,n2);

myfile<<result<<endl;

!

infilel72.close();

myfile.close();

答案:inttemp;

while(n!=0)

(

temp=m;

m=n;

n=temp%n;

}

if(m=1)

return1;

else

return-1;

第12題(10.0分)題號(hào):529

/*----------------------------

【程序設(shè)計(jì)】

題目:定義函數(shù)doublemax(doublea,doubleb,doublec)實(shí)現(xiàn)求三個(gè)實(shí)數(shù)中的最大值。

注意:

1.部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在*program*

和*end*所標(biāo)記的區(qū)域內(nèi)完成題干要求的函數(shù)功能。

2.〃忽略閱讀與〃忽略閱讀結(jié)束內(nèi)的程序可以忽略閱讀。

----------------------------------------------------------------------------------*/

#include<iostream>

#include<fstream>

usingnamespacestd;

voidwjt();

/*********Program****橋***/

/*********End*********/

voidmainO

(

cout?max(3.2,7.4,4.5)?endl;

〃忽略閱讀

wwjt();

〃忽略閱讀結(jié)束

)

〃忽略閱讀

voidwwjt()

(

doublem,n,1;

fstreaminfile,outfile;

infile,open(〃in.txt",ios::in);

outfile.open("out.txt,z,ios::out);

for(inti=0;i<2;i++)

{

infile?m;

infile?n;

infile?l;

outfile?max(m,n,l)?endl;

}

infile,close();

outfile.close();

)

〃忽略閱讀結(jié)束

答案:doublemax(doublea,doubleb,doublec)

(

if(a>b&&a>c)returna;

if(b>a&&b>c)returnb;

returnc;

)

第13題(10.0分)題號(hào):697

/*-----------------------------

【程序設(shè)計(jì)】

題目:郵政匯款的收費(fèi)標(biāo)準(zhǔn)是匯款金額的1%,但單筆收費(fèi)上限是50元。

編寫一個(gè)函數(shù)doubleshouFei(doublemoney),根據(jù)輸入的

匯款金額money,返回所要收取的費(fèi)用。

注意:僅在標(biāo)有〃Program〃和〃End〃的注釋行之間補(bǔ)充填寫代碼。

請(qǐng)勿改動(dòng)主函數(shù)main和其它任何已有內(nèi)容。

------------------------------------------------*/

#include<iostream.h>

#include<fstream.h>

voidwriteinfile();

/**********Program**********/

/**********End**********/

voidmain()

(

cout<〈〃輸入?yún)R款金額:〃;

doublem;

cin>>m;

cout<<“本次匯款收費(fèi):〃<<shouFei(m)?endl;

writeinfile();

)

voidwriteinfile()

(

doublem;

ifstreaminFile("in.txt〃,ios::in|ios::nocreate);

if(linFile)

(

cerr<<”無(wú)法打開(kāi)數(shù)據(jù)文件in.txt。需要核查!"<<endl;

return;

)

fstreammyfile;

myfile.open(〃out.txt〃,ios::out);

if(!myfile.is_open())

cerr<<”無(wú)法打開(kāi)數(shù)據(jù)文件out.txt。需要核查!“<<endl;

return;

}

for(inti=0;i<3;i++)

(

inFile?m;

if(inFile.fail())break;

myfile<<shouFei(m)<<endl;

}

inFile,close();

myfile.close();

)

答案:doubleshouFei(doublemoney)

(

doublesf=0;

if(money<0)return0;

sf=money*。.01;

if(sf>50.0)

sf=50.0;

returnsf;

)

第14題(10.0分)題號(hào):695

/*---------------------------------

【程序設(shè)計(jì)】

題目:請(qǐng)輸出個(gè)、十、百位數(shù)字各不相同的所有三位數(shù),

結(jié)果寫入f2.txt中,一個(gè)數(shù)一行。

要求:輸出時(shí)按從小到大的順序輸出。

注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它

函數(shù)中的任何內(nèi)容,僅在注釋形式標(biāo)識(shí)Program和

End之間填入所編寫的若干語(yǔ)句。

*/

^include<iostream>

#include<fstream>

usingnamespacestd;

intmain()

(

inti,j,k,count=0;

ofstreamoutput;

output,open(〃f2.txt",ios::out);

/**********Program**********/

/**********End**********/

output,close();

cout?z/Presstheenterkeytoexit!?endl;

cin.ignore(cin.rdbuf()->in_avail()+1);

return0;

}

答案:for(i=0;i<10;i++)

for(j=0;j<10;j++)

for(k=1;k<10;k++)

(

if(i!=j&&j!=k&&i!=k)

(

output<<k?j?i;

count++:

if(count==60)

(

count=0;

output?endl;

)

else

output<<〃;

}

第15題(10.0分)題號(hào):647

/*--------------------------

【程序設(shè)計(jì)】

題目:下面程序中的函數(shù)char*delc(char*s,charc);

去掉字符串s中的字符c,并將新得到的字符串返回,完成

該函數(shù)。

注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它

函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編

寫的若干語(yǔ)句。

---------------------------------------------------*/

#include<fstream>

#include<iostream>

#include<string>

usingnamespacestd;

char*delc(char*s,charc);

intniainO

(

inti;

chars[100],c='a';

fstreaminfile,outfile;

infile,openin.txt",ios::in);

outfile.open(/zout.txt",ios::out);

for(i=0;i〈20;i++)

(

infile?s;

dele(s,c);

outfile?s?endl;

c++;

)

infile,close();

outfile.closeO;

return0;

}

char*delc(char*s,charc)

/**********Prograiii**********/

/**********End**********/

答案:char*p;

while(p=strchr(s,c))

(

strcpy(p,p+1);

)

returns;

第16題(10.0分)題號(hào):595

/*-----------------------------

【程序設(shè)計(jì)】

題目:己知三個(gè)數(shù)a,b,c,按由小到大的順序存入a,b,

c中并輸出。

三個(gè)數(shù)a,b,c的值從已有文件infile596.txt中讀

取。

注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它

函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編

寫的若干語(yǔ)句。

-----------------------------------------------------*/

#include<fstream>

#include<iostream>

usingnamespacestd;

#include<stdio.h>

voidwriteinfile(inta,intb,intc);

voidmain()

(

inta,b,c,t;

ifstreamifile;

ifile.open(,zinfile596.txt〃,ios::in);

if(!ifile)

cout<<〃文件打開(kāi)失敗〃;

return1;

)

ifile?a?b?c;

ifile.close();

/**********Program**********/

/**********End**********/

writeinfile(a,b,c);

return0;

}

voidwriteinfile(inta,intb,intc)

(

fstreammyfile;

myfile.open(,zf.txt",ios:;out);

myfile<Xa<<",”<Xc〈〈endl;

myfile.close();

}

答案:

if(a>b){t=a;a=b;b=t;}

if(a>c){t=a;a=c;c=t;}

if(b>c){t=b;b=c;c=t;}

第17題(10.0分)題號(hào):699

/*--------------------------

【程序設(shè)計(jì)】

題目:編寫函數(shù)pfh,功能是返回兩個(gè)實(shí)數(shù)的平方和。

注意:僅在標(biāo)有"Program"和"End"的注釋行之間補(bǔ)充填寫代碼。

請(qǐng)勿改動(dòng)主函數(shù)main和其它任何已有內(nèi)容。

------------------------------------------------*/

#include<iostream.h>

#include<fstream.h>

/**********Program**********/

/**********End**********/

intgrading();

intmain()

(

cout<〈〃輸入實(shí)數(shù)x,y:〃;

doublex,y;

cin?x>>y;

cout<<“它們的平方和是:"<<pfh(x,y)?endl;

〃忽略閱讀

grading();

〃忽略閱讀結(jié)束

return0;

}

〃以下忽略閱讀

intgrading()

(

doublex,y;

ifstreaminFile(〃in.txt〃,ios::in|ios::nocreate);

if(!inFile)

(

cerr<<〃無(wú)法打開(kāi)數(shù)據(jù)文件in.txt。需要核查!〃<<endl;

return1;

)

fstreammyfile;

myfile.open("out.txt〃,ios::out);

if(!myfile.is_open())

cem?”無(wú)法打開(kāi)數(shù)據(jù)文件out.txt。需要核查!"<<endl;

return1;

}

for(inti=0;i<4;i++){

inFile?x?y;

myfile?(int)pfh(x,y)?endl;〃在此僅輸出整數(shù)部分

)

inFile.close();

myfile.close();

return0;

)

答案:doublepfh(doublex,doubley)

(

returnx*x+y*y;

)

第18題(10.0分)題號(hào):586

【程序設(shè)計(jì)】

題目:編寫函數(shù)getSumO求整數(shù)m的各位數(shù)字之和并返回該值。

例如m=252時(shí),各位數(shù)字之和為9。

注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它

函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編

寫的若干語(yǔ)句。

—―――——---------------------------------———-------——*/

#include<fstream>

#include<iostream>

usingnamespacestd;

#include<stdio.h>

voidwriteinfile();

intgetSum(intm)

/**********program**********/

/**********End**********/

}

voidmain()

(

intm,s=0;

m=252;

s=getSum(m);

cout?s;

writeinfileO;

)

voidwriteinfile()

(

fstreammyfile;

myfile.open(,,f2.txt〃,ios::out);

myfile?getSum(252)?endl;

myfile?getSum(1457)<<endl;

myfile.close0;

)

答案:---------------------

ints=0,n;

while(m!=0)

{n=m%10;s+=n;m=m/10;)

returns;

第19題(10.0分)題號(hào):636

/*--------------------------

【程序設(shè)計(jì)】

題目:約瑟夫問(wèn)題

這是17世紀(jì)的法國(guó)數(shù)學(xué)家加斯帕在《數(shù)目的游戲問(wèn)題》中講的一個(gè)故事:15個(gè)教徒和15個(gè)

非教徒在深海上遇險(xiǎn),必須將一半的人投入海中,其余的人才能幸免于難,于是想了一個(gè)

辦法:30個(gè)人圍成一圓圈,從第一個(gè)人開(kāi)始依次報(bào)數(shù),每數(shù)到第九個(gè)人就將他扔入大海,

如此循環(huán)進(jìn)行直到僅余15個(gè)人為止。問(wèn)怎樣排法,才能使每次投入大海的都是非教徒。

注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它

函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編

寫的若干語(yǔ)句。

-------------------------------------------------------*/

#include<iostream>

#include<fstream>

usingnamespacestd;

voidoutput(inti);

voidcircle(structnodelink[]);

structnode

(

intnextp;/*指向下一個(gè)人的指針(下一個(gè)人的數(shù)組下標(biāo))*/

intno_out;/*是否被扔下海的標(biāo)記。1:沒(méi)有被扔下海。0:已被扔下海*/

}link[31];/*30個(gè)人,0號(hào)元素沒(méi)有使用*/

intmain()

(

inti;

for(i=l;i<=30;i++)/*初始化結(jié)構(gòu)數(shù)組*/

(

1ink[i].nextp=i+1;/*指針指向下一個(gè)人(數(shù)組元素下標(biāo))*/

link[i].no_out=l;/*標(biāo)志置為1,表示人都在船上*/

}

link[30].nextp=1;/*笫30個(gè)人的指針指向第一個(gè)人以構(gòu)成環(huán)*/

circle(link);

for(i=l;i<=30;i++)/*輸出排列結(jié)果*/

(

cout<X(link[i].noout?〃教徒〃:"非教徒");

output(link[i].no_out?l:0);/*0:表示被扔下海的非教徒,1:表示在船I:

的教徒*/

)

cout?endl;

return0;

voidcircle(structnodelink[])

/**********program**********/

/**********Prograiii**********/

voidoutput(inti)

ofstreammyfile;

myfile.open(〃f2.txt〃,ios::app);

myfile<<i;

myfile.close();

答案:

inti,j,k;

j=30;/*j:指向已經(jīng)處理完畢的數(shù)組元素,從link[i]指向的人開(kāi)始計(jì)數(shù)*/

for(i=0;i<15;i++)/*i:已扔下海的人數(shù)計(jì)數(shù)器*/

(

for(k=0;;)/*k:決定哪個(gè)人被扔下海的計(jì)數(shù)器*/

if(k<9)

(

j=link[j].nextp;/*修改指針,取下一個(gè)人*/

k+=link[j].no_out;/*進(jìn)行計(jì)數(shù)。因已扔下海的人計(jì)標(biāo)記為0*/

)

elsebreak;/*計(jì)數(shù)到15則停止計(jì)數(shù)*/

link[j].no_out=0;/*將標(biāo)記置0,表示該人已被扔下海*/

第20題(10.0分)題號(hào):688

/*----------------------------

【程序設(shè)計(jì)】

題目:函數(shù)compare比較兩個(gè)長(zhǎng)度為N的數(shù)組是否相等(即

兩數(shù)組中下標(biāo)相同的數(shù)組元素均相等)。請(qǐng)完成該

函數(shù)。

注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它

函數(shù)中的任何內(nèi)容,僅在注釋形式標(biāo)識(shí)Program和

End之間填入所編寫的若干語(yǔ)句。

------------------------------------------------*/

#include<fstream>

#include<iostream>

usingnamespacestd;

voidcompare(inta[],intb[],intN)

{

boolequal=true;

ofstreamoutfile;

outfile.open(,zf2.txt",ios::out);

/**********Program**********/

/**********End**********/

if(equal)

outfile<<"Equal!”<<endl;

else

outfile?”Notequal!z/<<endl;

outfile.close();

)

voidinput(inta[],intb[])

(

intindex;

ifstreaminput;

input,open(〃fl.txt",ios::in);

for(index=0;index<200;index++)

input?a[index];

for(index=0;index<200;index++)

input?b[index];

)

intmainO

(

inta[200],b[200]:

input(a,b);

compare(a,b,200);

cout?z/Presstheenterkeytoexit!”?endl;

cin.ignore(cin.rdbuf()->inavail()+1);

return0;

)

答案:for(intindex=0;index<200;index++)

{

if(a[index]!=b[index])

(

equal=false;

break;

}

)

第21題(10.0分)題號(hào):621

/*--------------------------------------------------

【程序設(shè)計(jì)】

題目:已知某文本文件in.txt中存放有若干整數(shù),請(qǐng)將其按照

從小到大的順序

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論