c++程序复习题与答案.docx
一、选择题1 .在每个C+程序中都必须包含有这样一个函数,该函数的函数名为&。A.mainB.MAINC.nameD.function2 .假设a,b均为int型变量,为了将10赋给a,将20赋给b,那么对应以下cin语句的正确输入方式为生(VCR>代表回车换行,_代表空格)。cin»a»b;A.1020<CR>B>10.20<CR>C.10,20<CR>I).20.10<CR>3 .在以下关于C+语言的注释的表达中,不正确的选项是C。A. C+程序中,注释可用“形式表示,也可用“”形式表示B. C+编译罂在编译一个程序时,将跳过注释,不对其进展处理C. C+编译器在编译一个程序时,可发现注释中的单词拼写错误D.程序中注释的多少不会影响所生成的可执行文件的长度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.#KDJFC.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,ssipedB. cin,a10,CPP>float*del_word,signedC. void*max,hiy,<fr>,list*jerD. a,temp,_isw>INT>keep*windH.在VC+中,以下语句的输出为shortintk=-1;cout«k«',«(unsignedshort)k<<endl;A.-1,-1B.-1,32767C.-1,32768D.-1,6553512 .假设给出以下程序,其输出为我。#include<iostream>usingnamespacestd;intmain()inta=4,b=7;cout«(a=a+l,b+a,b+l)«endl;return0;A.5B.8C.11D.程序有错误,无法运行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+语言基本数据类型的是D°A.字符型B.整型C.实型D.数组19 .以下字符列中,可作为C+语言程序自定义标识符是B。A.switchB.fileC.breakD.do20 .运算符+、V=、=、中,优先级最低的运算符是A.+B.<=C.=D.%21 .以下字符列中,可以作为“字符串常量”的是B。A.ABCB.''xyz''C.,uvw,D.'a'22 .设变量m»n9a,b,c»d均为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.不能使用关键字并且不区分大小写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=a<3?3:227 .设X和y均为bool量,那么x&&y为真的条件是AoA.它们均为真B.其中一个为真C.它们均为假D.其中一个为假28 .假设给定条件表达式(m)?(a+):(a),那么其中表达式mC.A.和(m=0)等价B.和(m=l)等价C.和(m!=0)等价D.和(m!=l)等价29 .在C+语言的if语句中,用作判断的表达式为已。A.关系表达式B.逻辑表达式C.算术表达式D.任意表达式30 .设i和k都是int类型,那么以下for循环语句生for(i=0,k=-1;k=l;i+,k+)cout«*n,;A.判断循环完毕的条件不合法B.是无限循环C.循环体一次也不执行D.循环体只执行一次31 .假设有以下语句,那么输出结果为Aointa=2,b=l;cout«a>b7',a大于b',f,a小于bn«endl;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,t;C.l,2,lwhile(a<b)t=a;a=b;b=t;c;cout<<a<<<,*«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 .以下描述正确的选项是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 .下面有关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%d"J-);循环执行的次数是B。A.无限次B.0次C.1次D.2次41 .在C+编程语言中,以下正确的描述是Axontinue语句的作用是完毕整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句或CoIltimIe语句的作用一样D.从多层循环嵌套中退出,只能使用goto语句42 .下面程序段D。for(t=l;t<=100;t+)cin>>x;if(x<0)continue;cout«t;A.当x<0时整个循环完毕B,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(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;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. 一个类可以不定义析构函数49 .宏定义:#defineN3#defineY(n)(N+l)*n)