广州电大-期末c++综合复习答案.docx

上传人:夺命阿水 文档编号:947810 上传时间:2024-01-23 格式:DOCX 页数:21 大小:97.04KB
返回 下载 相关 举报
广州电大-期末c++综合复习答案.docx_第1页
第1页 / 共21页
广州电大-期末c++综合复习答案.docx_第2页
第2页 / 共21页
广州电大-期末c++综合复习答案.docx_第3页
第3页 / 共21页
广州电大-期末c++综合复习答案.docx_第4页
第4页 / 共21页
广州电大-期末c++综合复习答案.docx_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《广州电大-期末c++综合复习答案.docx》由会员分享,可在线阅读,更多相关《广州电大-期末c++综合复习答案.docx(21页珍藏版)》请在课桌文档上搜索。

1、C+语言程序设计复习课一、第一章单项选择题1 .在每个C+程序中都必须包含有这样一个函数,该函数的函数名为()0答案:AA.mainB.MAINC.nameD.function2 .C+源程序文件的缺省扩展名为()。答案:AA.cppB.exeC.objD.Iik3 .程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号作为分隔符。答案:DA.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车4 .C+程序的根本模块为()o答案:DA.表达式B.标识符C.语句D.函数5 .每个C+程序文件的编译错误分为()类。答案:B/warningerrorA.1B.2C.3D.4二、第一章

2、填空题1. C+语言是在语言的根底上开展起来的。答案:C2. C+语言中的每条根本语句以作为结束符。答案:;1或分号)3 .C+语言中的每条复合语句以作为结束符。答案:(或右花括号)4 .在C+每个程序行的后面或单独一行的开始使用注释的标记符为0答案:5 .单行或多行注释的开始标记符为结束标记符为o答案:/*、*/6 .在一个C+程序文件中,假设要包含另外一个头文件或程序文件,那么应使用以标识符开始的预处理命令。Sinclude7 .C+程序中的所有预处理命令均以字符开头。#8 .在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是定义的头文件。用户(或编程者)9 .一个函

3、数定义由一和两局部组成。答案:函数头、函数体10 .用于输出表达式值的标准输出流对象是,用于从键盘上为变量输入值的标准输入流对象是_。答案:COUt、cin11 .当不需要函数返回任何值时,那么应使用标识符定义函数类型。答案:VOid三、第二章单项选择题1 .设X和y均为bool量,那么X&y为真的条件是()。答案:AA.它们均为真B.其中一个为真C.它们均为假D.其中一个为假2 .设X和y均为bool量,那么XIIy为假的条件是()。CA.它们均为真B.其中一个为真C.它们均为假D.其中一个为假3 .设有语句winta=12;a+=a*a,那么执行结束后,a的值为()0&x=10的相反表达式

4、为()0AA.x10B.x10C.x=0IIx0&x105 .x0IIy=5的相反表达式为()oBA.x=0y!=5B.xOIIy!=5D.xO&y=56.字符串a+b=12n”的长度为()。答案:BA.6B.7C.8D.97.在以下的常值常量定义中,错误的定义语句是()。答案:CA.constM-10;B.constintM-20;C.constcharch;D.constboolmark=true;8,枚举类型中的每个枚举常量的值都是一个()。答案:AA.整数B.浮点数C.字符D.逻辑值9.含随机函数的表达式rand()%20的值在()区间内。答案:CA.19B.20C.019D.020四

5、、第二章填空题1 .十进制数25表示成符合C+语言规那么的八进制数为o答案:0312 .十进制数25表示成符合C+语言规那么的十六进制数为一答案:0x193 .在c+语言中,操纵符表示输出一个换行符。答案:endl4 .执行coutchar(A+2)endl;语句后得到的输出结果为。答案:C5 .AZ的ASCll码为6590,当执行“intx=C+5;语句后X的值为。答案:726 .AZ的ASCn码为6590,当执行charch=14*5+2;COUtchint%floatdouble类型的大小分别为_个字节。10 .十进制常数28和3.26的类型分别为和。答案:int、double11 .假

6、设需要定义一个常值常量,并且使C+能够进行类型检查,那么应在定义语句的开始使用保存字。答案:COnSt/ttdefineMAX10012 .使用ConSt语句定义一个常值常量时,那么必须对它同时进行一。答案:初始化如COnStintMM=20;13.执行“intx=45,y=13;coutx/y;语句序列后得到的输出结果为。答案:314.执行“intx=45,y=13;COUt5的相反表达式为。答案:x+yy逻辑值为一。答案:false或026 .假设x=5,y=10,那么x!=y的逻辑值为。答案:true或127 .假定x=5,那么执行“a=(x?10:20);语句后a的值为。答案:1028

7、 .执行“typcdefStDataTypc;语句后,在使用int定义整型变量的地方都可以使用来定义整型变量。答案:DataType五、第三章单项选择题1 .当处理特定问题时的循环次数时,通常采用()来解决。答案:AA.for循环B.While循环C.do循环D.SWitCh语句2 .循环体至少被执行一次的语句为()语句。答案:CA.for循环B.While循环C.do循环D.任一种循环3 .在SWitCh语句的每个CaSe块中,假定都是以break语句结束的,那么此SwilCh语句容易被改写为()语句。答案:BA.forB.ifC.doD.while4 .for语句能够被改写为()语句。答案

8、:DA.复合B.ifC.switchD.while5 .循环语句“foNinti=0;in;i+)S;中循环体S被执行的次数为()。答案:CA.1B.n-1C,nD.n+16 .下面循环语句执行结束后输出的i值为()。答案:Bfor(inti=0;in2)coutiendl;break;)A.n/2B.n/2+1C.n2-lD.11-17 .在下面循环语句中内层循环体S语句的执行总次数为()。答案:Dfor(inti=0;in;i+)for(intj=i;jn;j+)S;/n+(n-l)+.+1A.n2B.(n+1)/2C.n(n-l)2D.n(n+l)28 .在下面的while循环语句中,其

9、循环体被执行的次数为()。答案:Cinti=0,s=0;while(s20)i+;s+=i;/s=l,3,6,10,15,21A.4B.5C.6D.79 .在下面的do循环语句中,其循环体被执行的次数为()。答案:Ainti=0;doi+;while(i*i10)i=0,1,2,3A.4B.3C.5D.2六、第三章填空题1 .在SWitCh语句中,每个语句标号所含保存字CaSe后面的表达式必须是一整型常量2 .在if语句中,每个else关键字与它前面同层次并且最接近的关键字相配套。if3 .作为语句标号使用的C+保存字CaSe和default只能用于一语句的定义体中。SWitCh4 .执行SW

10、itCh语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时(停止/不停止)执行。不停止5 .假设WhiIe循环的“头为while(i+=10),并且i的初值为0,同时在循环体中不会修改i的值,那么循环体将被重复执行一次后正常结束。116 .假设do循环的尾为while(+i10)”,并且i的初值为0,同时在循环体中不会修改i的值,那么循环体将被重复执行次后正常结束。107 .当在程序中执行到语句时,将结束本层循环类语句或SWitCh语句的执行。答案:break8 .当在程序中执行到语句时,将结束所在循环语句中循环体的一次执行。答案:continue9

11、 .在程序中执行到语句时,将结束所在函数的执行过程,返回到调用该函数的位置。答案:return10 .在程序执行完一个函数调用后,将结束整个程序的执行过程,返回到操作系统或C+集成开发环境界面窗口。答案:主(或main)七、第三章程序运行结果11 #includevoidmainO(intx=5;switch(2*-3)case4:coutx,;case7:cout2*x+l,;case10:cout3*-l,;break;default:cout*defaultzzendl;CoUt“switchend.z,endl;答案:1114switchend.C+语言程序设计复习课一、第三章函数功能

12、12 ttincludeintSA(inta,intb)if(ab)return1;elseif(a=b)return0;elsereturnT;答案:比拟两个整型参数a和b的大小,假设ab那么返回L假设a=b那么返回0,假设a=b&a=c)returna;if(b=a&b=c)returnb;returnc;)答案:求出a,b,c三个数中的最大值并返回。14 intSE(intn)n为大于等于1的整数intx;cinx;if(n=l)returnx;intm=x;while(-n)cinx;m+=x;returnm;答案:求出从键盘上输入的n个整数之和并返回。15 doubleSF(doub

13、lex,intn)n为大于等于0的整数doublep=l,s=l;for(inti=l;i=n;i+)p*=x;s+=p(i+l);returns;答案:计算l+x2+x23+.+xn(n+l)的值并返回。16 ttincludeboolSG(intx)x为大于等于2的整数inta=int(sqrt(x);/取X的平方根inti=2;while(i=a)if(x%i=0)break;i+;if(ix;while(x!=-l)(n+;y+=x;cinx;if(n=0)returny;elsereturny/n;)答案:求出从键盘上输入的一批常数的平均值,以T作为结束输入的标志。18 floatF

14、I(intn)n为大于等于1的整数floatx,y=0;docinx:y+=x*x;while(一n0);returny;)答案:求出从键盘上输入的n个常数的平方和并返回。19 #include#includevoidmain()intx,y;cinx;y=int(sqrt(x);Sqrt(X)为求x的算术平方根for(inti=l;i=y;i+)if(x%i=0)COUtx=i,*,xiendl;答案:把从键盘上输入的一个整数X分解为所有可能的每两个因子之积。二、第三章编写函数1 .编写一个主函数,利用WhiIe循环,求出并显示满足不等式l+l2+l3+.+ln25的最小n值。答案:void

15、main()inti=0;doubles=0;/或inti=l;doubles=l;while(s5)s+=double(l)+i;coutz,n=z,iendl;2 .编写一个主函数,计算1+3+3,2+.+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。voidmain()inti;用i作为循环变量intp=l;用P作为累乘变量ints=l;用s作为累加循环变量for(i=l;i=10;i+)p*=3;s+=p;coutsendl;3 .编写一个主函数,6aW30,15bW36,求出满足不定方程2a+5b=126的全部整数组解。如(13,20)就是其中的一组

16、解。答案:voidmain()inta,b;for(a=6;a=30;a+)for(b=15;b=36;b+)if(2*a+5*b=126)cout,Ca,b,),a;couta;8 .一个二维字符数组a1020能够存储个字符串,每个字符串的长度至多为o答案:10、19五、第四章程序运行结果1. ttincludevoidmain()inta10=12,39,26,41,55,63,72,40,83,95;intil=0,i2=0;for(inti=0;i10;i+)if(ai%2=l)il+;elsei2+;coutil,i2endl;)答案:642. ttincludevoidmain()

17、inta9=36,25,48,14,55,40,32,66,60);intbl,b2;bl=b2=a0;for(inti=l;ibl)if(blb2)b2=bl;bl=ai;)elseif(aib2)b2=ai;coutbl,b2endl;答案:66603. ttincludevoidmain()chara=*abcdabcabfgacd*;intil=0,i2=0,i=0;while(ai)if(ai=三,a,)il+;if(ai=,b)i2+;i+;coutil,i2,iendl;答案:4314六、第四章编写程序1 .编写一个函数,函数头格式为“voidfun4(Char*a,intb口)

18、”,分别求出由字符指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素中。答案:voidfun4(char*a,intb)inti;for(i=0;i=O&j=9)bj+;a+;)C+语言程序设计复习课一、第五章单项选择题2 .下面的()函数头格式不正确。答案:DA.AA(inta,intb)B.AA(inta,intb=0)C.AA(inta=0,intb=0)D.AA(inta=0,intb)3 .下面的()保存字不能作为函数的返回类型。答案:CA.voidB.intC.newD.long4 .下面的函数声明中,voidBC(inta,intb);的重载函

19、数是()。答案:BA.intBC(intx,inty);B.voidBC(inta,charb);C.floatBC(inta,intb,intc=0);D.voidBC(inta,intb=0);4 .声明或定义一个内联函数时,必须在函数开始使用保存字()。答案:CA.staticB.constC.inlineD.extern5 .在下面的函数声明中,()存在着语法错误。答案:DA.intBC(inta,int);B.intBC(int,int);C.intBC(int,int=5);D.intBC(intx;inty);6 .假设定义了函数double*function(),那么该函数的返

20、回值为()。答案:BA.实数型B.实数指针型C.函数指针型D.数组型7 .以下()的调用方式是引用调用。答案:CA.形参和实参都是变量B.形参是指针,实参是地址值C.形参是引用,实参是变量D.形参是变量,实参是地址值8 .为了提高程序的运行速度,可将不太复杂的函数实现为()c答案:AA.内联函数B.重载函数C.递归函数D.函数模板9 .下面正确的函数原型语句是()O答案:BA.intFunction(voida);B.voidFunction(int);C.intFunction(a);D.voidint(doub10 .函数调用func(expl,exp2),exp3*exp4-exp5)中

21、所含实参的个数为()个。答案:BA.1B.2C.4D.511 .假设用数组名作为函数调用的实参,传递给形参的是()答案:AA.数组的首地址B.数组中第一个元素的值C.数组全部元素的值D.数组元素的个数12 .文件包含命令中被包含的文件的扩展名()。答案:C.只能是.hB.不能是.hC.可以是.h或.cppD.只能是.cpp二、第五章填空题1 .在C+语言中,一个函数由一和组成。答案:函数头、函数体2 .在函数外定义的变量称为全局变量,假设没有被初始化那么系统隐含对它所赋的初值为O答案:O3 .函数被调用时,实参向形参的传送分为和两种传送方式。答案:引用、值4 .重载一个函数的条件是:该函数必须

22、在参数的或参数的上与其它同名函数有所不同。答案:个数、类型5 .如果一个函数只允许在同一程序文件中被调用,那么应在该函数定义前加上的C+保存字为。答案:static6 .如果一个函数直接或间接地调用自身,这样的调用被称为调用。答案:递归7 .假定一个函数模板的定义为tcmplateTcubin(Tn)(returnn*n*n;”,那么类型参数为一O答案:T8 .对于无返回值函数,定义函数时要用作为函数类型。答案:VOid9 .函数形参的作用域是该函数的o答案:函数体10 .C+提供的预处理命令有宏定义命令,条件编译命令和。答案:文件包含命令11 .程序的编译是以为单位进行的。答案:文件三、第五

23、章程序运行结果.#include#includedoubleSD(doublea,doubleb,charop)doublex;switch(op)case+:x=a+b;break;case-,:x=a-b;break;case*,:x=a*b;break;case,:if(b)x=ab;elseexit(1);break;default:exit(1);)returnx;)voidmainOintx=25,y=10;cout),;coutSD(x,y,*,),;coutSD(x+y,y,)endl;)答案:152503.52. ttincludevoidmainOinta=10,b=20;

24、couta,bendl;(a*=3;intb=a+35;couta,bendl;)couta,bendl;)答案:1020306530203. #includevoidWF(int&x,inty)x=x+y;y=x+y;coutxzryendl;)voidmainOintx=8,y=15;CoUtx,”yendl;WF(x,y);x=2*x;coutx*,z*yendl;)答案:8,1523,3846,154. ttincludevoidSelectSort(inta,intn)inti,j,k;for(i=l;in;i+)进行nT次选择和交换k=i-l;for(j=i;jn;j+)if(aj

25、ak)k=j;intx=ail;ai-l=ak;ak=x;)voidmainOinti;inta6=20,15,32,47,36,28);SelectSort(a,6);for(i=0;i6;i+)coutai,;coutendl;)答案:152028323647四、第五章函数功能1. boolWB(inta,intntintx)for(inti=O;in;i+)if(ai=x)returntrue;returnfalse;)答案:从数组a中顺序查找值为X的元素,假设查找成功那么返回真,否那么返回假。2. templateintfun8(Ta,intn,Tkey)intc=0for(inti=

26、0;i=key)c+;returnc;)答案:函数模板,从一维数组an中统计出其值大于等于key的元素个数并作为函数值返回。3. #includetemplateintWG(TTa,TTb)if(ab)return1;elseif(a=b)return0;elsereturn-1;答案:模板函数,比拟两个变量a和b的大小,假设ab那么返回1,假设a=b那么返回0,假设ab那么返回-1。4. templatevoidWE(Typea,Typeb,intn)for(inti=0;in;i+)bn-i-l=ai;)答案:模板函数,把数组a的每个元素按逆序放入数组b中。五、第六章单项选择题1 .假定P

27、是一个指向float型数据的指针,那么P+1所指数据的地址比P所指数据的地址大()字节。答案:C.1B.2C.4D.82 .假定a为一个字符数组名,那么元素a8相对于该数组首地址的字节地址为()。答案:CBA.4B.8C.16D.323 .假定a为一个整型数组名,那么元素a4相对于该数组首地址的字节地址为()。答案:CCA.4B.8C.16D.324 .假定a为一个数组名,那么下面的()表示有错误。答案:CBA.aiB.*a+C.*aD.*(a+l)5 .用new运算符创立一维数组的正确语句是()c答案:CA.int*p=newa10;B.int*p-newfloat10;C.int*p=ne

28、wint10;D.int*p=newint5=1,2,3,4,5)六、第六章填空题1 .假定P所指对象的值为25,p+1所指对象的值为46,那么*p+的值为o答案:252 .假定P所指对象的值为25,p+1所指对象的值为46,那么*+p的值为。答案:463.假定P所指对象的值为25,P+1所指对象的值为46,那么执行(*p)+;”语句后,p所指对象的值为o答案:264 .假定P所指对象的值为25,p+1所指对象的值为46,那么执行*(p+);”语句后,p所指对象的值为O答案:255 .假定a是一个指针数组,那么a+i所指对象的地址比a地址大字节。答案:4*iO 答案:*(a+i)6 .假定a是

29、一个一维数组,那么ai的指针访问方式为7 .假定a是一个二维数组,那么aij的指针访问方式为o答案:*(ai+j)或*(*(a+i)+j)七、第六章程序运行结果1. #includevoidmain()inta8=3,5,7,9,11,13,15,17);int*p=a;for(inti=0;i8;i+)coutsetw(5)*p+;if(i+l)%4-0)cotendl;)答案:3579111315172. ttincludevoidmain()inta9=2,4,6,8,10,12,14,16,18);for(inti=0;i9;i+=2)coutsetw(5)*(a+i),coutend

30、l;)答案:261014183. ttincludevoidmain()intx=20,y=40,*p;p-&x;cout*p,;*p=x+10;cout*p,;p-&y;cout*pendl;*p=y+20;coutx,yendl;)答案:20304030604. ttincludeintLB(int*a,intn)ints=l;for(inti=0;in;i+)s*=*a+;returns;)voidmain()inta=l,2,3,4,5,6,7,8;intb=LB(a,5)+LBa3,3);cout*b=z,bendl;)答案:b=240C+语言程序设计复习课一、第六章写出函数功能1.

31、 ttincludeint*LJ(inta,intn)intk=0;for(inti=l;iak)k=i;return&ak;答案:求出数组a中n个元素的最大值元素,返回该元素的地址。2. includevoidLI(intn)int*a=newintn;for(inti=0;iai;for(i=n-l;i=0;i-)cout*(a+i),;cout,n;deletea;答案:把从键盘上输入的n个整数按与输入的相反次序显示出来。3. voidLK(inta,intn,int&m)inta同int*afloats=0;inti;for(i=0;in;i+)s+=ai;ai同*(a+i)s=n;f

32、or(i=0,m=0;i=s)m+;)答案:求出数组a的n个元素中大于等于平均值的元素个数,该个数由引用参数m返回。二、第七章单项选择题1 .假定一个结构类型的定义为“structAinta,b;A*c;,那么该类型的大小为一字节。答案:B1 .8B.12C.16D.202 .假定一个结构类型的定义为structDinta;union(intb;doublec;D*d2;/,那么该类型的大小为字节。答案:DA.8B.12C.16D.203 .假定有structBOOKchartitle40;floatprice;BOOK*book;,那么不正确的语句为()。答案:A.BOOK*x=newboo

33、k;B.BOOKx=C+Programming,27.0;C.BOOK*x=newBOOK;D.BOOK*x=book;4.假定有structBOOKchartitle40;floatpriceJbook;*那么正确的语句为()。答案:BA.BOOK&x=book;B.BOOK&x二book;C.BOOKx=newBOOK;D.BOOK&x=BOOK;三、第七章填空题1 .假定要动态分配一个类型为WOrkCr的具有n个元素的数组,并由r指向这个动态数组,那么使用的语句表达式为Worker*r=答案:newWorkern;2 .假定要访问一个结构X中的由a指针成员所指向的对象,那么表示方法为答案

34、:n*(x.a)3 .假定要访问一个结构指针p所指对象中的b指针成员所指的对象,那么表示方法为o答案:n*(p-b)4 .与结构成员访问表达式p-nam。等价的表达式是。答案:n(*p).name5 .与结构成员访问表达式(*fp).score等价的表达式是。答案:nfp-score四、第七章程序运行结果1. #includestructWorkercharname15;姓名intage;年龄floatpay;工资);voidmain()Workerx=(WangfOng”,43,1640;Workery,*p;y=x;P=&x;p-pay+=100;couty.name,y.age,y.pa

35、yendl;coutname,age+2,pay+200endl;)答案:wangfong431640wangfong4519402. ttincludeftincludestructWorkercharname15;/姓名intage;/年龄floatpay;工资);booloperator=(Worker&rl,TVOrker&r2)if(strcmp(rl.name,r2.name)=0)returntrue;elsereturnfalse;)voidmainOWorkera4=abc”,25,420,def”,58,638,ghi”,49,560,“jkl”,36,375);Worke

36、rx=(ghi);for(inti=0;i4;i+)if(ai=x)break;coutai.name,ai.age,ai.payendl;)答案:ghi495603. ttincludestructWorkercharname15;姓名intage;年龄floatpay;/工资);booloperator(Worker&rl,Worker&r2)(if(rl.ager2.age)returntrue;elsereturnfalse;)voidmain()Workera4=abc”,25,420,“def”,58,638,ghi*,49,560),jkl36,375);Workerx=a0;for(inti=l;i4;i+)if(xai)x=ai;coutx.name,x.age,x.payendl;答案:def58638五、第七章写出函数功能1. vo

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号