版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
試卷編號:8172所屬語言:C++試卷方案:題庫182道設(shè)計題試卷總分:1820分共有題型:1種ー、程序設(shè)計共!82題(共計!820分)第1題(10.0分)題號:664/* 【程序設(shè)計】題目:已知有結(jié)構(gòu)體類型定義:structnode{intdata;structnode*nextPtr;};請編寫函數(shù)voidcomputingList(node*head)?對head指向的單向鏈表,分別統(tǒng)計結(jié)點的data成員值為負(fù)數(shù)、〇、正數(shù)的結(jié)點個數(shù)分別存入變量negtive、zero、positive中。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */#include<iostream>#include<fstream>usingnamespacestd;voidgrading(int,int,int);structnode(intdata;structnode*nextPtr;};voidcomputingList(node*head)intpositive=0,negtive=0,zero=0;/**********prograin**********//**********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)fstreammyfile;myfile.open(“〇ut?txt”,ios::out);myfile?a?*"?b?""?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分)題號:522/* 【程序設(shè)計】題目:設(shè)計函數(shù)charcapitalize(char);將小寫英文字符變?yōu)閷?yīng)的大寫字符。注意:.部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在?program*和*end?所標(biāo)記的區(qū)域內(nèi)完成題十要求的函數(shù)功能。.〃標(biāo)記開始與〃標(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くく”請輸入包含小寫字母的句子:"?endl;cin.getline(cp,30);while(cp[i]!=‘、〇')cout?capitalize(cp[i++]);cout?endl;〃忽略閱讀wwjt();〃忽略閱讀結(jié)束return0;}〃忽略閱讀voidwwjt()(charins[250];inti=0;fstreaminfile,outfile;infile,open("in.txt",ios::in);outfile.open("out.txt",ios::out);infile,getline(ins,250);while(ins[i]!='\0')(outfile<<capitaiize(ins[i]);i++;)infile,close();outfile.close();}〃忽略閱讀結(jié)朿答案:charcapitalize(charch)(if(ch>='a&&chくニ'z')returnch,a'+'A';elsereturnch;第3題(10.0分)題號:672【程序設(shè)計】題目:函數(shù)mySum(inta[][],intm,intn)返回二維整數(shù)數(shù)組a中所有元素的和,m、n分別為數(shù)組a的行數(shù)、列數(shù)。填寫適當(dāng)?shù)拇a,使得mySum()完成正確的功能。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。#include<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ù)此后部分可以不閱讀gfkd();intmySum(inta[2][3],intm,intn)(/***************Program*****************//***************End*****************/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",ios::out);myF?mySum(a,2,3);myF.closeO;答案:inti,j,s=0;for(i二〇;i<m;i++)for(j=0;j<n;j++)s=s+a[i][j];returns;第4題(10.。分)題號:588【程序設(shè)計】題目:求「1000之間同構(gòu)數(shù)的個數(shù)n。同構(gòu)數(shù)是:〃某數(shù)與其自身的平方數(shù)的后幾位相同"。例如:25X25=625,25是同構(gòu)數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。#includeくfstream)#include<iostream>usingnamespacestd;voidwriteinfile(intn);voidmain()for(m=l;m<=1000;m++)(/**********Program**********/inti=l;k二m;j=m*m;while(k!=0)(k/=10;i*=10;}if(j%i==m)n++;/**********End**********/}writeinfile(n);}voidwriteinfile(intn)(fstreammyfile;myfile.open(*f.txt*,ios::out);myfile<<n<<endl;myfile.close();答案: inti=l;k=m;j=m*m;while(k!=0)(k/=10:i*=10:)ifn++:第5題(10.0分)題號:725/* 【程序設(shè)計】題目:補充函數(shù)aver的代碼,該函數(shù)計算n個學(xué)生成績(通過參數(shù)cj傳入)的平均分?jǐn)?shù)。注意:部分源程序給出如下。僅在標(biāo)有"Program"和"End”的注釋行之間補充代碼,請勿改動其它內(nèi)容。 */#include<iostream>ttinclude<fstream>usingnamespacestd;voidgrading();floataver(intcj[],intn)(/**********Prograni**********//**********End**********/}intmain()(grading();return0;}voidgrading()(fstreaminfile,myfile;intb[50];inti;infile.open(*in.txt",ios::in);myfile.open("out.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分)題號:709【程序設(shè)計】題目:輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。#include<iostream>#include<fstream>usingnamespacestdintgrading();intgcd(intm,intn)intr;r=m%n;/**********Program**********//**********End**********/returnn;intmain()intm,n;coutくく”請輸入兩個數(shù):\n";cin>>m?n;if(m<n)(inttemp;temp二m;nFn;n=temp;)coutくくmくく"和"くくnくく”的最大公約數(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?"FileOpenError!"?endl;return-1;}for(inti=0;i<8;i++){infile?m?n;outfile?gcd(m,n)?""<<m*n/gcd(m,n)<<endl;)infile,close();outfile.close();return0;答案:while(r!=0)(m=n;n=r;r=m%n;)第フ題(10.〇分)題號:667【程序設(shè)計】題目:編程計算,計算公式如右圖所示。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 辛/#include<iostream>#include<fstream>usingnamespacestd;intcalc()(/**********Program**********//**********End**********/)voidmain(void)intvalue;value=calc();cout<<"累計和s為:"?value<<endl;fstreamoutfile;outfile.open(“〇ut?txt”,ios::out);outfile?”累計和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分)題號:265/* 【程序設(shè)計】題目:完成函數(shù)cal,該函數(shù)計算數(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注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 sic/#include<iostream>#include<fstream>usingnamespacestd;intgradingO;voidcal(inta[],intsize)/**********Prograiii**********//**********End**********/)intmain()(inta[100]={8,43,7,18,2,56,37,123,25,26);cal(a,10);coutくく“max="くくmaxくくendl;cout?z/min="<<min<<endl;cout?"ca="?ca?endl;〃忽略閱讀grading();〃忽略閱讀結(jié)朿return0;}〃以下忽略閱讀intgrading()(fstreaminfile,outfile;inta[100],i;infile.open("in.txt",ios::in);outfile.open("out.txt",ios::out);for(i=0;i<20;i++)(infile?a[i];}cal(a,20);outfile<<max<<*"くくminくく“"?ca?endl;for(i=0;i<15;i++)infile?a[i];cal(a,15);outfile?max?*"くくminくく”"?ca?endl;infile,close();outfile.close();return0;答案:inti;max二min=a[〇];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分)題號:707/* 【程序設(shè)計】題目:從文件中讀入n個字符串,將其中以字母A開頭的字符串復(fù)制到二維字符數(shù)組strl中。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */include<iostream>include<fstream>include<string>usingnamespacestd;definen5ndefineM20voidwjt(intlen);charstrl[n][M];voidmain()inti;charstr[n][M];ifstreaminfile("in.txt",ios::in);if(!infile,isopen())(cout?"FileOpenError!*?endl;return;}for(i二〇;iくn;i++)infile?str[i];infile,close();intj=0;/**********Program**********//**********End**********/wwjt(j);}voidwwjt(intlen)(ofstreamoutfileiout.txt,ios::out);if(loutfile.is_open())(coutくく“FileOpenError"?endl;return;)for(inti=0;i<len;i++)outfile?strl[i]?"\n";outfile.close();}答案:for(i=0:i<n;i++)(if((strcmp(str[i],"A")>=O)&&(strcmp(str[i],"B")<0)){strcpy(strl[j],str[i]);j++:)第10題(10.0分)題號:673/* 【程序設(shè)計】題目:函數(shù)myStrCal(char*dst,char*src)將字符串src連接到字符串dst的后面。填寫適當(dāng)?shù)拇a,使得mySum()完成正確的功能。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 //#include<iostream>#include<fstream>usingnamespacestd;voidmyStrCat(char*dst,char*src);voidgfkd();voidmain(){chardst[100]=*Hello,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(*in.dat*,ios::in);myF.read(dst,100);myF.read(src,100);myF.closeO;myF.open("out.dat",ios::out);myStrCat(dst,src);myF<<dst;myF.closeO;答案:inti二〇,len;len=strlen(dst);while(src[i])dst[len++]=src[i++];dstflen]=‘、〇';第11題(10.0分)題號:723【程序設(shè)計】題目:編寫函數(shù)eachPrime,判斷兩個正整數(shù)m和n是否為互質(zhì)數(shù)。若是,返回1;否則,返回ー1。互質(zhì)數(shù):最大公約數(shù)為1的兩個數(shù)稱為互質(zhì)數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */#include<iostream>#include<fstream>#include<cstring>usingnamespacestd;inteachPrime(intm,intn)/**********Program**********//**********End**********/voidgrading();intmain()(intnuml,num2,result;cout<<leaseentertwointeger(>0):\n;cin?numl?num2;if(numl<=0||num2<=0)cout?”Inputerror!\n";result=eachPrime(numl,num2);if(result==1)cout?num!くく"和"くくnum2?*是互質(zhì)數(shù)!\n";elsecout?num!くく"和"くくnum2?"不是互質(zhì)數(shù)!\n";〃忽略閱讀grading();〃忽略閱讀結(jié)束return0;}〃以下忽略閱讀voidgrading()(intnl,n2,result;fstreaminfilel72,myfile;infilel72.open("inl72.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;elsereturn-1;第12題(10.0分)題號:529/* 【程序設(shè)計】題目:定義函數(shù)doublemax(doublea,doubleb,doublec)實現(xiàn)求三個實數(shù)中的最大值。注意:.部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在?program*和*end?所標(biāo)記的區(qū)域內(nèi)完成題干要求的函數(shù)功能。.〃忽略閱讀與〃忽略閱讀結(jié)束內(nèi)的程序可以忽略閱讀。 */#include<iostream>#inc1udeくfstream)usingnamespacestd;voidwwjt();/*********Prograni*********//*********End*********/voidmain()(cout?max(3.2,7.4,4.5)?endl;〃忽略閱讀wjt();〃忽略閱讀結(jié)束}〃忽略閱讀voidwwjt()(doublem,n,1;fstreaminfile,outfile;infile,open(in.txt*,ios::in);outfile.open(“〇ut.txt*,ios::out);for(inti=0;i<2;i++)(infile?m;infile?n;infile?l;outfile?max(m,n,1)?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.。分)題號:697題目:郵政匯款的收費標(biāo)準(zhǔn)是匯款金額的1%,但單筆收費上限是50元。編寫ー個函數(shù)doubleshouFei(doublemoney)?根據(jù)輸入的匯款金額money,返回所要收取的費用。注意:僅在標(biāo)有“Program"和"End"的注釋行之間補充填寫代碼。請勿改動主函數(shù)main和其它任何已有內(nèi)容。 */#include<iostream.h>^include<fstream.h>voidwriteinfile();/**********Prograni**********//**********End**********/voidmain()(coutく,輸入?yún)R款金額:“;doublem;cin>>m;coutくく”本次匯款收費:"くくshouFei(m)?endl;writeinfile();}voidwriteinfile()(doublem;ifstreaminFile("in.txt",ios::in|ios::nocreate);if(iinFile)(cerrくく”無法打開數(shù)據(jù)文件in.txt。需要核査!”くくendl;return;}fstreammyfile;myfile.open("out.txt",ios::out);if(Imyfile.is_open())ccくく”無法打開數(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*0.01;if(sf>50.0)sf=50.0;returnsf;}第14題(10.0分)題號:695【程序設(shè)計】題目:請輸出個、卜、百位數(shù)字各不相同的所有三位數(shù),結(jié)果寫入f2.txt中,ー個數(shù)一行。要求:輸出時按從小到大的順序輸出。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在注釋形式標(biāo)識Program和End之間填入所編寫的若干語句。 #include<iostream>#include<fstream>usingnamespacestd;intmain(){inti,j,k,count=0;ofstreamoutput;output,open("f2?txt”,ios::out);/**********Program**********//**********End**********/output,close();cout?"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;}elseoutput<<*”;第15題(10.0分)題號:647【程序設(shè)計】題冃:下面程序中的函數(shù)char*delc(char*s,charc);去掉字符串s中的字符c,并將新得到的字符串返回,完成該函數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。#includeくfstream〉#inc1ude<iostream>#includeくstring)usingnamespacestd;char*delc(char*s,charc);intmain()(inti;chars[100],c='a’;fstreaminfile,outfile;infile.open(*in.txt*,ios::in);outfile.open("out.txt",ios::out);for(i=0;i〈20;i++)(infile?s;dele(s,c);outfile?s?endl;c++;}infile,close();outfile.close();return0;char*delc(char*s,charc)/**********Program**********//**********End**********/答案:char*p;while(p=strchr(s,c))(strcpy(p,p+1);)returns;第16題(10.0分)題號:595【程序設(shè)計】題冃:已知三個數(shù)a,b,c,按由小到大的順序存入a,b,c中并輸出。三個數(shù)a,b,c的值從已有文件infile596.txt中讀取。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 #include<fstream>#include<iostream>usingnamespacestd;^include<stdio.h>voidwriteinfile(inta,intb,intc);voidmain()(inta,b,c,t;ifstreamifile;ifile.open(*infile596.txt",ios::in);if(!ifile)coutくく”文件打開失敗”;return1;ifile?a?b>>c;ifile.close();/**********Program**********//**********End**********/writeinfile(a,b,c);return0;}voidwriteinfile(inta,intb,intc)(fstreammyfile;myfile.open("f.txt",ios::out);myfile?a?*,*<<b?","?c?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分)題號:699【程序設(shè)計】題目:編寫函數(shù)pfh,功能是返回兩個實數(shù)的平方和。注意:僅在標(biāo)有"Program”和〃End〃的注釋行之間補充填寫代碼。請勿改動主函數(shù)main和其它任何已有內(nèi)容。 対#include<iostream.h>#include<fstream.h>/**********Program**********//**********End**********/intgrading();intmain()(coutくく”輸入實數(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くく”無法打開數(shù)據(jù)文件in.txt。需要核查!”くくendl;return1;)fstreammyfile;myfile.open("out.txt",ios::out);if(imyfile.is_open())cerrくく”無法打開數(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分)題號:586/* 【程序設(shè)計】題目:編寫函數(shù)getSumO求整數(shù)m的各位數(shù)字之和并返回該值。例如m=252時,各位數(shù)字之和為9。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */#include<fstream>#include<iostream>usingnamespacestd;#include<stdio.h>voidwriteinfile();intgetSum(intm)/**********prc)grain**********//**********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.close();)答案: ints=0,n;while(m!=0){n=m%10;s+=n;m=m/10;}returns;第19題(10.0分)題號:636【程序設(shè)計】題目:約瑟夫問題這是17世紀(jì)的法國數(shù)學(xué)家加斯帕在《數(shù)目的游戲問題》中講的ー個故事:15個教徒和15個非教徒在深海上遇險,必須將一半的人投入海中,其余的人才能幸免于難,于是想了一個辦法:30個人圍成一圓圈,從第一個人開始依次報數(shù),每數(shù)到第九個人就將他扔入大海,如此循環(huán)進(jìn)行直到僅余15個人為止。問怎樣排法,才能使每次投入大海的都是非教徒。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */#include<iostream>#include<fstream>usingnamespacestd;voidoutput(inti);voidcircle(structnodelink[]);structnode(intnextp;/?指向下ー個人的指針(下一個人的數(shù)組下標(biāo))*/intno_out;/?是否被扔下海的標(biāo)記。1:沒有被扔下海。0:已被扔下海?/}link[31];/*30個人,0號元素沒有使用?/intmain()(inti;for(i=l;i〈=30;i++)/?初始化結(jié)構(gòu)數(shù)組?/{link[i].nextp=i+1;/?指針指向下ー個人(數(shù)組元素下標(biāo))*/link[i].no_out=l;/?標(biāo)志置為1,表示人都在船上?/)link[30].nextp=l;/*第30個人的指針指向第一個人以構(gòu)成環(huán)?/circle(link);for(i=l;i<=30;i++)/*輸出排列結(jié)果?/(coutくく(link[i].noout?"教徒非教徒つ;output(link[i].no_out?l:〇);/?〇:表示被扔下海的非教徒,1:表示在船上的教徒?/}cout?endl;return0;voidcircle(structnodelink[])/**********Program**********//**********Program**********/voidoutput(inti)ofstreammyfile;myfile.open("f2.txt",ios::app);myfile?i;myfile.close();答案:inti,j,k;j=30;/*j:指向已經(jīng)處理完畢的數(shù)組元素,從link[i]指向的人開始計數(shù)?/for(i=0;i<15;i++)/*i:已扔下海的人數(shù)計數(shù)器?/{for(k=0;;)/*k:決定哪個人被扔下海的計數(shù)器?/if(k<9)(j=link[j].nextp;/?修改指針,取下ー個人?/k+=link[j].noー。ut;/?進(jìn)行計數(shù)。因已扔下海的人計標(biāo)記為0?/}elsebreak;/*計數(shù)到15則停止計數(shù)?/link[j].no_out=0;/?將標(biāo)記置〇,表示該人已被扔下海?/第20題(10.0分)題號:688/* 【程序設(shè)計】題目:函數(shù)compare比較兩個長度為N的數(shù)組是否相等(即兩數(shù)組中下標(biāo)相同的數(shù)組元素均相等)。請完成該函數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在注釋形式標(biāo)識Program和End之間填入所編寫的若干語句。 */#includeくfstream〉#include<iostream>usingnamespacestd;voidcompare(inta[],intb[],intN)(boolequal=true;ofstreamoutfile;outfile.open("f2.txt,ios::out);/**********Program**********//**********End**********/if(equal)outfile?”Equal!"<<endl;elseoutfile?"Notequal!"?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];)intmain()(inta[200],b[200];input(a,b);compare(a,b,200);coutくぐPresstheenterkeytoexit!*?endl;cin.ignore(cin.rdbuf()->inavail()+1);return0;)答案:for(intindex=0;index<200;index++)(if(atindex]!=b[index]){equal=false;break;)}第21題(10.0分)題號:621/* 【程序設(shè)計】題冃:已知某文本文件in.txt中存放有若干整數(shù),請將其按照從小到大的順序排列后存入另一文件out.dat。你需要完成三個函數(shù)voidreadin(node*&phead,char*s_file)負(fù)責(zé)從某個文件s_file中讀入,并存在以p_head為頭部指針的鏈表中:voidsort(node*p_head)將鏈表內(nèi)的元素按照從小到大的順序排序;voidwrite_out(node*p_head,char*s_file)將鏈表中的元素依次寫入到s_file中(注意,寫入的元素以回車分割)。其中,鏈表節(jié)點結(jié)構(gòu)node已經(jīng)定義。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在程序中介于"**********Prograrn**********"**********End**********的部分填入所編寫的若干語句。#include<iostream>#incltideくfstream>usingnamespacestd;structnodeintdata;node*next;/**********Program**********//**********End**********/intmain()(node*p_head=NULL;read_in(p_head,*in.txt");sort(p_head);write_out(phead,"out.txt");return0;答案:voidreadin(node*&phead,char*s_file)node*p_tail=p_head;ifstreaminf(s_file,ios::in);intm;while(inf?m)(node*p_new=newnode;p_new->data=m;p_new->next=NULL;if(!p_head||!p_tai1){p_tail=p_head=p_new;)else(ptail-〉next-pnew;p_tail=p_new;)}inf.close();}voidsort(node*phead){for(node*p_i=p_head;p_i;p_i=p_i->next)(node*p_k=p_i;for(node*p_j=p_i;p_j;p_j=p_jー〉next)if(p_j->data<p_k->data)P_k=p_j;intx=p_i->data;p_i->data=p_k->data;p_k->data-x;}voidwrite_out(node*p_head,char*s_file)(ofstreamouf(s_file,ios::out);for(node*pcur=phead;pcur;pcur=pcurー〉next)ouf?p_cur->data?endl;ouf.close();第22題(10.0分)題號:684【程序設(shè)計】題目:一個首項大于〇且等差大于0的等差數(shù)列前四項和為26,前四項積為880。請寫ー個函數(shù)返回該數(shù)列的笫20項的值。提示:如果一個數(shù)列從第二項起,每一項與它的前ー項的差等于同一個常數(shù),這個數(shù)列就叫做等差數(shù)列,這個常數(shù)叫做等差數(shù)列的公差。如等差數(shù)列:1,3,5,7,9,11?公差是2,該數(shù)列的第5項值是9。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在注釋形式標(biāo)識Program和End之間填入所編寫的若干語句。 */#include<iostream>#include<fstream>usingnamespacestd;/**********Prograin**********//**********End**********/voidwwff();intmain()cout?myfun();〃忽略閱讀開始wwff();//忽略閱讀結(jié)束return0;}〃以下忽略閱讀voidwwff()(ofstreamwf("out.txt",ios::out);wf<<myfun();wf.close();答案:intmyfun(){inta,b,c,d,flag;for(flag=l,a=0;flag&&aく5;++a)for(d=l;flag&&dく5;++d)(b=a+(a+d)+(a+2*d)+(a+3*d);c=a*(a+d)*(a+2*d)*(a+3*d);if(b==26&&c==880)(returna+19*d;})return-1;)第23題(10.0分)題號:631/* 【程序設(shè)計】題目:打魚還是曬網(wǎng)中國有句俗語叫"三天打魚兩天曬網(wǎng)〃。某人從1990年1月1日起開始"三天打魚兩天曬網(wǎng)”,問這個人在以后的某一天中是"打魚"還是"曬網(wǎng)"。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 釘#include<iostream>#include<fstream>usingnamespacestd;voidinput(structdate&day);voidoutput(inti);intdays(structdateday);structdate{intyear;intmonth;intday;};intmain()(structdatetoday,term;intyearday,year,day;input(today);term.month=12;/*設(shè)置變量的初始值:月?/term.day=31;/?設(shè)置變量的初始值:日?/yearday=0;/**********I)rogreim**********//**********End**********/day=yearday%5;/?求余數(shù)?/if(day>0&&day<4)coutくく“他在打魚。”くくendl;/?打印結(jié)果?/output(1);elsecoutくく“他在曬網(wǎng)。"<<endl;output(0);return0;}intdays(structdateday){staticintday_tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31,},/?平均每月的天數(shù)?/{0,31,29,31,30,31,30,31,31,30,31,30,31,},};inti,Ip;/?判定yearlp=(day.year%4==0&&day.year%100!二/?判定year為閏年還是平年,lp二〇為平年,非〇為閏年?/for(i=l;i<day.month;i++)/?計算本年中自1月1日起的天數(shù)?/day.day+=day_tab[Ip][i];returnday.day;)voidinput(structdate&day)(ifstreaminfile("fl.dat",ios::in|ios::binary);infile,read((char*)(&day),sizeof(day));infile,close();voidoutput(inti)(ofstreammyfile;myfile.openCf2.txt,ios::out);myfile<<i;myfile.close();)答案:for(year=1990;year<today,year;year++)term.year=year;yearday+=days(term);}yearday+=days(today);第24題(10.0分)題號:646/* 【程序設(shè)計】題目:下面程序中的函數(shù)voidins(inta[],intlen,intn);將n插入到ー個包含len個從小到大排好序的整數(shù)數(shù)組a中,插入后保證數(shù)組的有序性。完成該函數(shù)的編寫。例如:調(diào)用ins(a,0,3)后,數(shù)組a中為3調(diào)用ins(a,1,2)后,數(shù)組a中為2,3調(diào)用ins(a,2,6)后,數(shù)組a中為2,3,6注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */#include〈fstream〉#include<iostream>usingnamespacestd;voidins(inta[],intlen,intn);intmain()(inta[20],i,j,k,num;fstreaminfile,outfile;infile,open]in.txt",ios::in);outfile.open("out.txt",ios::out);for(i=0;i<2;i++)(for(j-0:j<10;j++)(infile?num;ins(a,j,num);for(k=O;k<=j;k++)outfile<<a[k]<<"";outfile?endl;infile,close();outfile.close();return0;voidins(inta[],intlen,intn)(/**********Prograii)**********//**********End**********/}答案:inti;for(i=len;i>0;iーー){if(i>0&&a[i-l]>n)a[i]=a[i-l];elsebreak;)a[i]=n;第25題(10.0分)題號:267/* 【程序設(shè)計】題H:ー個整數(shù)數(shù)列,它的第一項是。,第二項是1,以后每項都是前兩項之和,編寫求前n項之和的函數(shù)GetSum(intn)。注意:僅在標(biāo)有"Program"和"End”的注釋行之間補充填寫代碼。請勿改動主函數(shù)main和其它任何已有內(nèi)容。#include<iostream.h>#include<fstrearn.h>voidwriteinfile();/**********Prograiii**********//**********End**********/voidmain()(intni〃數(shù)列項數(shù)coutくく”求和的總項數(shù):cin>>n;ints=GetSum(n);coutくく"和:"?s?endl;writeinfile();}voidwriteinfile(){intn:ifstreaminFileC*in.txt,ios::in|ios::nocreate);if(!inFile)(cerrくく"無法打開數(shù)據(jù)文件in.txt。需要核査!”くくendl;return;)inFile>>n;inFile,close();fstreammyfile;myfile.open("out.txt",ios::out);if(Jmyfile.is_open())(cerrくく"無法打開數(shù)據(jù)文件out.txt。需要核查!"くくendl;return;)myfile<<GetSum(n)?endl;myfile.close();}答案: intGetSum(intn)(intal=0,a2=1;intsum=al+a2;for(inti=0;iくn-2;i++)intnext=al+a2;sum+=next;al二a2;a2-next;)returnsum;第26題(10.。分)題號:701/* 【程序設(shè)計】題目:編寫ー個函數(shù)voidchangeString(charstr[]);,功能是把其中的大寫字母變成小寫字母,小寫字母變成大寫字母,非字母的字符不作變換。變換結(jié)果依舊保存在str數(shù)組內(nèi)。大寫字母的ASCI!碼值比對應(yīng)的小寫字母的ASCII碼值小32,如'A'的ASCI!碼值比'a'的ASCII碼值小32〇注意:僅在標(biāo)有"Program”和〃End”的注釋行之間補充填寫代碼。請勿改動主函數(shù)main和其它任何已有內(nèi)容。 5k/#include<iostream.h>^include<fstream.h>voidwriteinfile();/**********Prograrn**********//**********End**********/voidmain(){charstr[50];coutくく"輸入要變換的字符串:〃;cin?str;changeString(str);coulくく”變換結(jié)果是:"くくstrくくcndl;writeinfile();}voidwriteinfile()ifstreaminFile(*in.txt*,ios::in|ios::nocreate);if(!inFile)(cerrくく”無法打開數(shù)據(jù)文件in.txt。需要核查!"?endl;return;fstreammyfile;myfile.open("out.txt",ios::out);if(Imyfile.is_open())cerrくく”無法打開數(shù)據(jù)文件out.txt。需要核查!"くくendl;return;for(inti=0;i<4;i++)charstr[50];inFile?str;changeString(str);myfile?str?endl;inFile,close();myfile.close();答案:voidchangeString(charstr[])(for(inti=0;str[i]!='、〇';i++)if(str[i]>=,a'&&str[i]<=*z')str[i]-=32;elseif(str[i]>=,A'&&str[i]<='Z')str[i]+=32;第2フ題(10.0分)題號:690【程序設(shè)計】題目:編寫ー個函數(shù),實現(xiàn)對ー維數(shù)組的二分(折半)查找算法。如找到,則返回其數(shù)組下標(biāo),否則返回ー1。二分查找的思想是:要查找的數(shù)據(jù)保存在數(shù)組中,并且數(shù)據(jù)已經(jīng)排好序(如從小到大遞增)。查找時,每次比較數(shù)組中間(用數(shù)組下標(biāo)判斷)那個數(shù)據(jù),如果相等,則找到;如果小于它,則在數(shù)組左半邊按照相同的方式查找;如果大于它,則在數(shù)組右半邊按相同方式查找。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。#include<iostream>itinclude<fstream>ttdefineSIZE400usingnamespacestd;intbinary_search(intsorted_array[],intfirst,intlast,intkey)(/**********Program**********//**********End**********/intmain(){intarr[SIZE];ifstreaminput;input,open〈fl.txエ,ios::in);for(intindex=0;index<SIZE;index++)input?arr[index];input.closeO;ofstreamoutput;output.open("f2.txt",ios::out);output?binary_search(arr,0,SIZE-1,16663)?endl:output?binary_search(arr,0,SIZE-1,15555)?endl;output,close();cout?"Presstheenterkeytoexit!"?endl;cin.ignore(cin.rdbuf()->in_avail()+1);return0;答案:intmid;while(true)(if(last<first)return-1;mid=(first+last)/2;if(key=sorted_array[mid])returnmid;if(key<sorted_array[mid])//searchthelefthalflast=mid-1;else//searchtherighthalffirst=mid+1;第28題(10.。分) 題號:665/* 【程序設(shè)計】題目:編寫ー個函數(shù):將一個N進(jìn)制數(shù)轉(zhuǎn)換成M進(jìn)制數(shù)(N和M在2到10進(jìn)制之間),N進(jìn)制數(shù)和M進(jìn)制數(shù)均以字符串方式存儲。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */#include<iostream>#include<fstream>usingnamespacestd;〃將一個長度為len的N進(jìn)制的數(shù)字字符串str轉(zhuǎn)換M進(jìn)制,〃轉(zhuǎn)換后的M進(jìn)制數(shù)存放在str中,其長度作為返回值返冋。inttrans(charstr[],intlen,intN,intM)(/**********Program**********//**********End**********/intwwjt();voidmain(void)(charstr[20]=*10011101010100100";intN=2,M=10;intlen=17,count;count=trans(str,len,N,M);for(inti=0;i<count;i++)cout?str[i];cout?endl;〃忽略閱讀wjt();〃忽略閱讀結(jié)束}〃以下忽略閱讀intwwjt()(fstreaminfile,outfile;charstr[200];intN,M;intlen,count;infile.open(*in.txt,ios::in);if(!infile)return-1;infile?str?N?M;infile,close();len=0;while(str[len]!=‘、〇')len++;if(len!=0){count=trans(str,len,N,M);outfile.open(“〇ut.txt",ios::out);for(inti=0;i<count;i++)outfile?str[i];outfile.close0;)return0;第29題(10.0分)題號:214/* 【程序設(shè)計】題目:完成函數(shù)sofd,該函數(shù)計算ー個數(shù)的各位數(shù)字之和并返回,如sofd(252)返回9。說明:sofd函數(shù)編寫時只需考慮n大于等于。的情況,不用處理負(fù)整數(shù)的情況。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。 */#include<iostream>Sinclude<fstream>usingnamespacestd;voidgrading();intsofd(intn)(/**********Program**********//**********End**********/}intmain()(cout?*sofd(252)=*?sofd(252)?endl;〃忽略閱讀grading();〃忽略閱讀結(jié)束return0;}〃以下忽略閱讀voidgrading(){intn,i;fstreaminfile,outfile;infile.open〈in.txt,ios::in);outfile.open("out.txt,ios::out);for(i=0;i<10;i++)outfile?sofd(n)<<endl;}infile,close();outfile.close();答案: intm,s=0;whi1e(n!=0)(m=n%10;s+=m;n=n/10;)returns;第30題(10.0分)題號:726/* 【程序設(shè)計】題目:請編寫一段代碼,求出給定正整數(shù)S的所有因子,并按從小到大的順序存放在數(shù)組factor中。例如:24的因子是1、2、3、4、6,8和12,因子個數(shù)是7。注意:部分源程序給出如下。僅在標(biāo)有"Program"和"End”的注釋行之間補充代碼,請勿改動其它內(nèi)容。#include<iostream>#include<fstream>usingnamespacestd;voidgrading(intfactor[],intn);intmain()ints=336;int*factor=newint[s/2]:〃動態(tài)分配s/2個整數(shù)存儲空間intcount=0;/**********Prograrn**********//**********End**********/for(inti=0;iくcount;i++)coutくくfactor"]くく"cout?endl;〃忽略閱讀grading(factor,count);delete[]factor;〃忽略閱讀結(jié)朿return0;)〃以下忽略閱讀voidgrading(intfactor[],intn)(fstreammyfile;myfile.open("out.txt",ios::out);if(!myfile)(coutくく"無法打開數(shù)據(jù)文件out.txt,需核査。"くくendl;return;)for(inti=0;i<n;i++)myfile<<factor[i]<<"";myfile?endl;myfile.close();答案: for(intj=l;j<=s/2;j++)(if(s%j==O)factor[count]=j;count++;第31題(10.0分)題號:615/* 【程序設(shè)計】題冃:請編寫函數(shù)intfind(intn),判斷整數(shù)n是否滿足下面的條件:n加上100后是ー個完全平方數(shù),n再加h168又是ー個完全平方數(shù)。若滿足條件,函數(shù)返回整數(shù)n:否則返回。。說明:如果一個整數(shù)n是另ー個整數(shù)的平方,則稱整數(shù)n是完全平方數(shù)。例如81是9的平方,則81是完全平方數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號中填入所編寫的若干語句。^include<iostream>#include〈fstream〉^include<cmath>usingnamespacestd;intgrading();intfind(intn)/**********Program**********//**********End**********/intmain()inti,z;for(i=l;i<1000;i++)(z=find(i);if(z!=0)cout?z?endl;)〃忽略閱讀grading();〃忽略閱讀結(jié)束return0;)〃以下忽略閱讀intgrading(){intd;fstreaminfile,outfile;infile.open(*in.txt*,ios::in);outfile.open(“〇ut.txt",ios::out);for(inti=0;i<8;i++){infile?d;outfile?find(d)?endl;}infile,close();outfile.close();return0;答案: intx,y,result;result=0;x=sqrt(n+100);/*x為n加上100后開方后的結(jié)果?/y=sqrt(n+268);/*y為n再加上168后開方后的結(jié)果?/if(x*x==n+100&&y*yニニn+268)result=n;returnresult;第32題(10.0分)題號:696【程序設(shè)計】題目:給定一組十進(jìn)制止整數(shù),請統(tǒng)計各個正整數(shù)的各位數(shù)字中〇的個數(shù)。數(shù)據(jù)保存在fl.txt文件中,要求編寫計算〇的個數(shù)的函數(shù)countZero.注意:部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在注釋形式標(biāo)識Program和End之間填入所編寫的若干語句。 #include<iostream>itinclude<fstream>usingnamespacestd;intcountZero(intnum)(intdigi,count=0;/**********Program**********//**********End**********/}intmain()(intnum,count=0;ifstreaminput;input,open("fl.txt,ios::in);ofstreamoutput;out
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生社團財務(wù)審批與監(jiān)督管理制度
- 實驗室管理心得體會
- 初中畢業(yè)演講稿匯編五篇
- 合同管理員的工作總結(jié)
- 競聘演講稿結(jié)尾怎么寫四篇
- 迎新活動策劃方案集合15篇
- 單位年終個人工作總結(jié)報告
- 2022年監(jiān)理公司安全工作計劃
- 2025商業(yè)攝影合同書范文
- 監(jiān)控員年度考核個人總結(jié)總結(jié)計劃
- 銷售人員招聘計劃書
- 產(chǎn)值分析報告
- 《樹莓派應(yīng)用開發(fā)》課件 第01、2章 樹莓派介紹、樹莓派操作系統(tǒng)
- 模具熱分析報告
- 2024年湖南現(xiàn)代物流職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 多西他賽化療方案
- 中職學(xué)校專業(yè)建設(shè)指導(dǎo)委員會
- 2024年度醫(yī)院內(nèi)窺鏡科述職報告課件
- 醫(yī)院保安提升服務(wù)方案
- 采煤安全管理知識課件
- 人工智能在通信網(wǎng)絡(luò)中的應(yīng)用
評論
0/150
提交評論