c++程序复习题与答案.docx

上传人:李司机 文档编号:6928465 上传时间:2024-03-24 格式:DOCX 页数:13 大小:54.42KB
返回 下载 相关 举报
c++程序复习题与答案.docx_第1页
第1页 / 共13页
c++程序复习题与答案.docx_第2页
第2页 / 共13页
c++程序复习题与答案.docx_第3页
第3页 / 共13页
c++程序复习题与答案.docx_第4页
第4页 / 共13页
c++程序复习题与答案.docx_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《c++程序复习题与答案.docx》由会员分享,可在线阅读,更多相关《c++程序复习题与答案.docx(13页珍藏版)》请在三一办公上搜索。

1、一、选择题1 .在每个C+程序中都必须包含有这样一个函数,该函数的函数名为&。A.mainB.MAINC.nameD.function2 .假设a,b均为int型变量,为了将10赋给a,将20赋给b,那么对应以下cin语句的正确输入方式为生(VCR代表回车换行,_代表空格)。cinab;A.1020B10.20C.10,20I).20.103 .在以下关于C+语言的注释的表达中,不正确的选项是C。A. C+程序中,注释可用“形式表示,也可用“”形式表示B. C+编译罂在编译一个程序时,将跳过注释,不对其进展处理C. C+编译器在编译一个程序时,可发现注释中的单词拼写错误D.程序中注释的多少不会

2、影响所生成的可执行文件的长度4 .以下表达不正确的选项是CoA.在C+程序中,严格区分大小写字母B.一个C+源程序有且仅有一个main函数C.在C+程序中,注释只能位于一条语句的后面D.一个C+程序总是从main函数开场执行5.C+语言对C语言做了很多改进,C+语言相对于C语言的最基本的变化是12A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念6 .C+是CA.面向对象的程序设计语言B.构造化程序设计语言C.既是面向对象的程序设计语言又是构造化程序设计语言D.非构造化程序设计语言7 .以下合法的标识符为DA.abde+B.#KDJ

3、FC.67KDJD.DK3_8 .关于字符串和字符的关系正确的选项是A.A”与,是一样的B.字符串是常量,字符是变量C.“A”与,是不同的D.“A与是一样的9.下面关于语句的说法正确的选项是Bif (y) Z=X; s=z*z;elsez=y;s=l/(z*z);if(y)z=x;s=z*z;)elsez=y;s=l/(z*z);A.下面这两段程序的执行效果是一致的B.空语句是只有一个分号的语句,它其实什么也不干C.语句的构成不一定需要分号D.语句的书写对程序的运行不起作用,因此可以随便写都可以10.以下各标识符中,合法的用户标识符组为口。A. PAd,P#d,b-b,abc,_0123,ss

4、ipedB. cin,a10,CPPfloat*del_word,signedC. void*max,hiy,list*jerD. a,temp,_iswINTkeep*windH.在VC+中,以下语句的输出为shortintk=-1;coutk,(unsignedshort)kendl;A.-1,-1B.-1,32767C.-1,32768D.-1,6553512 .假设给出以下程序,其输出为我。#includeusingnamespacestd;intmain()inta=4,b=7;cout(a=a+l,b+a,b+l)endl;return0;A.5B.8C.11D.程序有错误,无法运

5、行13 .字符串“EOF=-61*的长度是A.8B.9C.12D.非法字符串14 .数学式词在C+程序中对应正确的表达式为上。A.Sqrt(Sin(X)0?SiIl(x):-SilI(X)B.sqrt(fabs(sinx)C.Sqrt(Sqrt(SinX*sinx)D.fabs(sqrt(sin(x)15 .以下A是C+语言的有效标识符?A.-NolB.No.lC.12345D.int16 .C+语言中,表示一条语句完毕的标号是BA.#B.;C./D.17 .每个C+程序中都必须有且仅有一个CA.类B.预处理命令C.主函数D语句18 .以下数据类型不是C+语言基本数据类型的是DA.字符型B.整

6、型C.实型D.数组19 .以下字符列中,可作为C+语言程序自定义标识符是B。A.switchB.fileC.breakD.do20 .运算符+、V=、=、中,优先级最低的运算符是A.+B.=C.=D.%21 .以下字符列中,可以作为“字符串常量”的是B。A.ABCB.xyzC.,uvw,D.a22 .设变量mn9a,b,cd均为O,执行(m=a=b川(n=c=d)后,m,n的值是D,A.O,OB.0,1C.I9OD.1,123 .字符串“vmx43w102q”的长度是A。A.8B.10C.17D.1624 .在C+语言中,自定义的标识符D。A.能使用关键字并且不区分大小写B.不能使用关键字并且

7、不区分大小写C.能使用关键字并且区分大小写D.不能使用关键字并且区分大小写25 .设有代码inta=5;,那么执行了语句%+=a=a*aJ后,变量a的值是CA.3B.OC.-40D-1226 .设a为5,执行以下代码后,b的值不为2的是C0A.b=a/2B.b=6-(-a)C.b=a%2D.b=ab7,a大于b,f,a小于bnendl;A.a大于bB.a小于bC.1I).输出语句有错32 .intk=10;while(k=0)k=k-l;那么下面描述正确的选项是C。A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次33 .inta=l,b=2,c=2

8、,t;C.l,2,lwhile(ab)t=a;a=b;b=t;c;couta,*b*,*c;运行结果为D。A.l,2,B.2,1,034 .intx=-l;dox=x*x;)while(!x);以下说法正确的选项是A.是死循环B.循环执行两次C.循环执行一次D.有语法错误35 .以下能正确计算1*2*3*10的程序段是CB.do i=l;s=0;s=s*i;i+;A.doi=l;s=l;s=s*i;i+;whik(i=10);C. i=l;s=l;do s=s*i;while(i=10);D.i=l;s=0; dos=s*i;while(i=10);i+;) while(i=10);36 .以

9、下描述正确的选项是A.由于dowhile循环中循环体语句只是一条可执行语句,所以循环体内不能使用复合语句B.do-while循环由do开场,用while完毕,在WhiIC(表达式)后面不能写分号C.在dowhile循环体中,一定要有能使While后面表达式的值变为零(假)的操作D.do-while循环中,根据情况可以省略while37 .C+中while和do-while循环的主要区别是一A。Ado-while的循环体至少无条件执行一次B.while的循环控制条件比do-while的循环控制条件严格C.do-while允许从外部转到循环体内1) .do-while的循环体不能是复合语句38 .

10、下面有关for循环的正确描述是_0_。AJor循环只能用于循环次数已经确定的情况Bfor循环是先执行循环体语句,后判断表达式Cfor循环中,不能用break语句跳出循环体Dfor循环的循环体语句中,可以包含多条语句,但必须用花括号括起来39 .对for(表达式1;表达式3)可理解为B。Afor(表达式h0;表达式3)Bfor(表达式1:1;表达式3)Cfor(表达式1;表达式1;表达式3)Dor(表达式表达式土表达式3)40 .for(i=2;i=0;)Printfd%dJ-);循环执行的次数是B。A.无限次B.0次C.1次D.2次41 .在C+编程语言中,以下正确的描述是Axontinue语

11、句的作用是完毕整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句或CoIltimIe语句的作用一样D.从多层循环嵌套中退出,只能使用goto语句42 .下面程序段D。for(t=l;tx;if(x0)continue;coutt;A.当x=0时什么也不输出Ccout永远也不执行D.最多允许输出100个非负整数43 .定义一个函数实现交换X和y的值,并将结果正确返回。能够实现此功能的是QA. swap(intx,inty)intt;t=x;x=y;y=t;B. swap(int*x,int*y)intt;t=x;x=y;y=t;C. swap

12、(int*x,int*y)intt;t=*x;*x=*y;*y=t;D. swap(int*x,int*y)int*t;t=x;x=y;y=t;44 .说明语句int(*p)()1的含义是工。A.p是一个指向一维数组的指针变量B.p是指针变量,指向一个整型数据CP是一个指向函数的指针,该函数的返回值是一个整型D.以上都不对45 .设有说明int(*p)4;其中的标识符P是A.4个指向整型变量的指针变量B.指向4个整型变量的函数指针C.一个指向具有4个整型元素的一维数组的指针D.具有4个指向整型变量的指针元素的一维指针数组46 .假设有如下声明,以下说法错误的选项是。structcmchara;

13、charb;);A,struct是构造体类型关键字B.em是构造体类型名C.em是用户声明的构造体变量Da,b是构造体成员名47 .假设有以下定义,那么对构造体变量的成员引用错误的选项是C。structdateintyear;intmonth;intday;);structstudentintno;charname16J;datebirthday;stud;A. stud.noB. stud.nameC. stud.birthdayD. stud.birthday.year48 .以下表达中,不正确的选项是_!LA.类的构造函数可以重载B.类的析构函数可以重载C. 一个类可以不定义构造函数D.

14、 一个类可以不定义析构函数49 .宏定义:#defineN3#defineY(n)(N+l)*n)(N+1)*5+1)执行语句z=2*(N+Y(5+l);后,变量Z的值是BeA.42B.48C.52D.出错50 .类的构造函数的作用是CA)一般成员函数的初始化B)类的初始化O对象的初始化D)删除类创立的对象51 .以下说法正确的选项是一BA)内置函数在运行时是将该函数的目标代码插入每个调用该函数的地方B)内置函数在编译时是将该函数的目标代码插入每个调用该函数的地方C)类的内置函数必须在类体内定义D)类的内置函数必须在类体外通过加关键字inline定义二、填空题1 .程序的三种基本的控制构造是:

15、顺序构造、选择构造、选择构造2 .假定一个构造类型定义为IstructDinta;union(intb;doublec;I)*d2;,那么该类型的大小为组字节。3 .C+语言中的每条基本语句以J作为完毕符,每条复合语句以作为完毕符。4 .关系表达式x+y5的相反表达式为x+yv=5。5 .下面的程序段中循环体的执行次数是3。a=10;b=0;dob+=2;a-=2+b;while(a=0);6 .下面程序段的运行结果为人x=2;docoutUSiIleIlamCSDaCCstd;intmain()inta,b,c,x;cina;cout,a=,ab;cout,b=,bc;cout,c=,cen

16、dl;if(a=b&b=C)COIltVvthethreenumbersareeauqb&ac)x=a;elseif(bc)x=b;elsex=c;COlltVV“thegreatestnumberis,x=A&cv=Z|c=a&cv=z&n+;c=getchar();)3 .鸡、兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,X代表有多少只鸡,y代表有多少只兔子,请填空完成程序。for(x=l;x=29;x+)y=30-x;if(2*x+4*v=90)coutx,y;4 .下面的程序是求2个或3个正整数中的最大数,用带有默认参数的函数实现。请填空完成程序。#includeusin

17、gnamespacestd;intmain()intmax(inta,intbjntc=0);inta,b,c,ml,m2;cinabc;ml=max(a.b,c);m2=max(a,b);cout,a,b,c三个正整数中的最大数为:“vvmlvvendl;cout,a,b两个正整数中的最大数为:va)a=b;if(ca)a=c;returna;四、给出以下程序运行后的输出结果1. #includeusingnamespacestd;voidSB(charch)switch(ch)caseA,:casea,:coutwell!;break;caseB,:case,b,:coutvvgood!”

18、;break;case,C:case,c,:cout,pass!;break;default:cout,bad!n;break;)intmain()charal=B,a2=c,a3=T;SB(al)5SB(a2)5SB(a3)5SB(,A,);coutendl;return0;)答案:good!pass!bad!well!2. #includeusingnamespacestd;intmain()inta,b;for(a=l,b=l;a=20)break;if(b%3=1)b+=3;COntilUie;b-=5;coutaendl;returnO;答案:83. #includeusingnam

19、espacestd;main()intij,x=O;for(i=0;i2;i+)+;for0=O;j=3;j+)if(j%2)continue;x+;x+;)cout44x=*xendl;)答案:x=84. #includeusingnamespacestd;main()inti;for(i=l;i=5;i+)if(i%2)COiitvv*;elsecontinue;CoiItVV#COlltVV$n;答案:*#*#*#$5. #includeusingnamespacestd;voidmain()intIJ,a=O;for(I=0;I2;I+)(for(j=0;j4;j+)if(j%2)br

20、eak;a+;a+;)coutaendl;)答案:46. 运行以下程序时,从键盘键入right?请给出回车后运行的结果。#includeusingnamespacestd;voidmain()charc;while(c=getchar()!=?*)putchar(+c);答案:SjhilI7. #mcludevoidmain()intI;for(I=l;I=5;I+)switch(I%2)case0:1+;coutn#M;break;case1:1+=2;COlltVv*”;default:coutnnt,;)答案:*#8. #includeusingnamespacestd;inta=5;i

21、ntmain()inta=10,b=20;inta=O,b=O;for(inti=l;i6;i+)a+=i;b+=a;couta,bendl;returnO;)答案:10209. #includeusingnamespacestd;intk=l;voidf(intm)m+=k;k+=m;chark=,B,;coutk-,A,n,;coutm*,k,n;)intmain()inti=4;f(i);couti,*k,n*;return0;)程序的输出第一行是第二行是5,6,第三行是4,610. #include#includeintmain()chara5=,studentH,worker1,ca

22、dre,soldiern,peasant,);charpl,p2;pl=p2=a0;for(inti=0;iO)pl=ai;if(strcmp(aiJ,p2)0)p2=ali;)coutpl,p2endl;return0;)答案:workercadre11. #includeusingnamespacestd;intm33=1,2,3),n3113=1,2,3);intmain()coutml0+n00,nm0l+nl0,n;return;)程序的输出第一行是3,第二行是12. #includeusingnamespacestd;voidf(intsJ)staticintj;dosj+=sj+l;while(+j2);intmain()intk,a10=l,2,3,4,5);for(f(a),k=0;k5;k+)coutak;coutendl;for(f(a),k=0;k5;k+)coutak;coutendl;return0;)程序输出的第一行是典程序输出的第二行是至巴5。五、编程题

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号