《C++语言程序设计》自检自测题三及答案.docx
- 文档编号:3848184
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:13
- 大小:17.62KB
《C++语言程序设计》自检自测题三及答案.docx
《《C++语言程序设计》自检自测题三及答案.docx》由会员分享,可在线阅读,更多相关《《C++语言程序设计》自检自测题三及答案.docx(13页珍藏版)》请在冰豆网上搜索。
《C++语言程序设计》自检自测题三及答案
《C++语言程序设计》自检自测题(三)及答案
一、给出下列程序运行后的输出结果
1.
#include
voidmain(){
ints1=0,s2=0;
for(inti=0;i<10;i++)
if(i%2)s1+=i;
elses2+=i;
cout< } 2. #include voidmain(){ inta[8]={8,19,26,15,6,24,27,18}; inti2=0,i3=0; for(inti=0;i<8;i++) if(a[i]%2==0)i2++; elseif(a[i]%3==0)i3++; cout< } 3. #include voidmain(){ inta[3][4]={{1,2,7,8},{5,6,11,12},{9,20,3,4}}; intm=a[0][0]; intii=0,jj=0; for(inti=0;i<3;i++) for(intj=0;j<4;j++) if(a[i][j]>m){m=a[i][j];ii=i;jj=j;} cout< } 4. #include voidmain(){ inta=10,b=15; cout< {a*=3; intb=a+20; cout< } cout< } 5. #include voidmain(){ intx=20,y=40,*p; p=&x; cout<<*p<<’’; *p=x+10; p=&y; cout<<*p< *p=y+20; cout< } 6. #include voidSB(charch){ switch(ch){ case’A’: case’a’: cout<<”well! ”;break; case’B’: case’b’: cout<<”good! ”;break; case’C’: case’c’: cout<<”pass! ”;break; default: cout<<”bad! ”;break; } cout< } voidmain(){ chara[6]=”Abcaf”; for(inti=0;a[i];i++)SB(a[i]); } 7. #include voidmain(){ inta[8]={36,25,48,14,55,40,72,40}; intb1,b2; b1=b2=a[0]; for(inti=1;i<8;i++) if(a[i]>b1){ if(b1>b2)b2=b1; b1=a[i]; } cout< } 8. #include voidmain(){ inta[8]={3,5,7,9,11,13,15,17}; int*p=1; for(inti=0;i<8;i++){ cout< if((i+1)%3==0)cout< } } 9. #include voidLG(int*&a,int&m){ a=newint[m]; int*p=a; for(inti=0;i *p++=i*i; } voidmain(){ int*b,n=5; LG(b,n); for(inti=0;i cout< cout< delete[]b; } 10. #include #include structWorker{ charname[5];//姓名 intage;//年龄 floatpay;//工资 }; voidmain(){ Workerx; char*t=”WeiRong”; intd=45;floatf=1235; strcpy(x.name,t); x.age=d;x.pay=f; cout< } 11. #include voidmain(){ ints=0; for(inti=1;i<=5;i++) s+=i*i; cout<<”s=”< } 12. #include voidmain(){ ints=0; for(inti=1;;i++){ if(s>50)break; if(i%2==0)s+=i; } cout<<”i,s=”< } 13. #include intLB(int*a,intn){ ints=1; for(inti=0;i s*=*a++; returns; } voidmain(){ inta[]={1,2,3,4,5,6,7,8}; cout< cout< } 14. #include structWorker{ charname[15];//姓名 intage;//年龄 floatpay;//工资 }; voidmain(){ Workerx{“wangfong”,43,640}; Workery,*p; y=x;p=&x; cout< cout< } 二、写出下列每个函数的功能 1. #include intS(inta,intb){ if(a>b)return1; elseif(a==b)return0; elsereturn-1; } 2. #include boolSG(intx){//x为大于等于2的整数 inta=int(sqrt(x));//取x的平方根 inti=2; while(i<=a){ if(x%i==0)break; i++; } if(i<=a)return0; elsereturn1; } 3. //structWorker{ //charname[15];//姓名 //intage;//年龄 //floatpay;//工资 }; voidQ(Workera[],intn){ for(inti=0;i cin>>a[i].name>>a[i].age>>a[i].pay; } 4. #include #include voidJD(char*fname) //可把以fname所指字符串作为文件标识符的文件称为fname文件 //假定该文件保存着一批整数 { ifstreamfin(fname,ios: : in|ios: : nocreate\ios: : binary) intx,s=0,n=0; while(fin.read((char*)&x,sizeof(x))){ s+=x;n++; } cout< fin.close(); } 5. floatFI(intn){ //n为大于等于1的整数 floatx,y=0; do{ cin>>x; n--;y+=x*x; }while(n>0); returny; } 6. #include voidWA(inta[],intn){ for(inti=0;i intk=i; for(intj=i+1;j if(a[j] intx=a[i];a[i]=a[k];a[k]=x; } } 7. #include voidLI(intn){ int*a=newint[n]; for(inti=0;i for(i=n-1;i>=0;i--)cout<<*(a+i)<<’’; cout<<’\n’; delete[]a; } 8. #include #include #include voidJA(char*fname) //可把以fname所指字符串作为文件标识符的文件称为fname文件 { ofstreamfout(fname); chara[20]; cin>>a; while(strcmp(a,”end”)! =0){ fout< cin>>a; } fout.close(); } 9. intWC(inta[],intn,intk){ intc=0; for(inti=0;i if(a[i]>=k)c++; returnc; } 10. #include int*LJ(inta[],intn){ intk=0; for(inti=1;i if(a[i]>a[k])k=i; return&a[k]; } 11. //structDNode{ //doubledata;//值域 //DNode*next;//指针域 //}; voidQB(DNode*&f,intn){ if(n==0){f=NULL;return;} f=newDNode; cin>>f->data; DNode*p=f; while(--n){ p=p->next=newDNode; cin>>p->data; } p->next=NULL; } 12. #include #include #include intJB(char*fname,char*key) //可把以fname所指字符串作为文件标识符的文件称为fname文件, //假定该文件中保存着一批字符串,每个字符串的长度均小于20。 { ifstreamfin(fname); chara[20]; inti=0; while(fin>>a) if(strcmp(a,key)==0)i++; fin.close(); returnI; } 三、编程 1.已知6≤a≤30,15≤b≤36,编一程序求出满足不定方程2a+5b=126的全部整数组解。 如(13,20)就是其中的一组解。 2.编写一个递归函数intFF(inta[],intn),求出数组a中所有n个元素的平方之和并返回。 3.编写一个函数voidSelectSort(inta[],intn),采用选择排序的方法按升序排列数组a中的n个元素。 参考答案 一、给出下列程序运行后的输出结果 1.2520 2.52 3.2120 4.1015 3050 3015 5.2040 3060 6.well! good! pass! well! bad! 7.7255 8.357 91113 1517 9.169410 10.WeiRong451235 11.s=55 12.i,s=15,56 13.120120360 14.wangfong43640 wangfong86740 二、写出下列每个函数的功能 1.比较两个整数a和b的大小,若a>b则返回1,若a==b则返回0,若a 2.判断x是否为一个质数,若是则返回1,否则返回0。 3.从键盘输入n个Worker类型的记录到一维数组a中。 4.从二进制文件中输入所有整数,计算并显示出所有整数的个数、总和与平均值。 5.求出从键盘上输入的n个整数的平方和并返回。 6.采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。 7.把从键盘上输入的n个整数按与输入的相反次序显示出来。 8.从键盘上输入一组字符串到fname文件中,直到输入标志结束的字符串“end”为止。 9.统计出数组a中大于等于值为k的元素个数并返回。 10.求出数组a中n个元素的最大值元素,返回该元素的地址。 11.建立一个具有n个结点的链表,每个结点的实数值由键盘输入,链表的表头指针由引用变量f带回。 12.求出字符串文件fname中保存的所有字符串中与给定字符串key相等的字符串个数并返回。 三、编程 1. #include voidmain() { inta,b; for(a=6;a<=30;a++) for(b=15;b<=36;b++) if(2*a+5*b==126)cout<<’(‘< } 2. intFF(inta[],intn) { if(n==1)returna[n-1]*a[n-1]; elsereturna[n-1]*a[n-1]+FF(a,n-1); } 3. voidSelectSort(inta[],intn) { inti,j,k; for(i=1;i k=i-1; for(j=i;j
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+语言程序设计 C+ 语言程序设计 自检 自测 答案