您好,欢迎访问三七文档
一、选择题1.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为A。A.mainB.MAINC.nameD.function2.若a,b均为int型变量,为了将10赋给a,将20赋给b,则对应以下cin语句的正确输入方式为B。(CR代表回车换行,_代表空格)。cinab;A.1020CRB.10_20CRC.10,20CRD.20_10CR3.在以下关于C++语言的注释的叙述中,不正确的是C。A.C++程序中,注释可用/*、*/形式表示,也可用//形式表示B.C++编译器在编译一个程序时,将跳过注释,不对其进行处理C.C++编译器在编译一个程序时,可发现注释中的单词拼写错误D.程序中注释的多少不会影响所生成的可执行文件的长度4.以下叙述不正确的是C。A.在C++程序中,严格区分大小写字母B.一个C++源程序有且仅有一个main函数C.在C++程序中,注释只能位于一条语句的后面D.一个C++程序总是从main函数开始执行5.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是DA.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念6.C++是CA.面向对象的程序设计语言B.结构化程序设计语言C.既是面向对象的程序设计语言又是结构化程序设计语言D.非结构化程序设计语言7.下列合法的标识符为DA.abde+B.#KDJFC.67KDJD.DK3_8.关于字符串和字符的关系正确的是CA.“A”与’A’是相同的B.字符串是常量,字符是变量C.“A”与’A’是不同的D.“A”与“A”是相同的9.下面关于语句的说法正确的是Bif(xy){z=x;s=z*z;}else{z=y;s=1/(z*z);}if(xy)z=x;s=z*z;elsez=y;s=1/(z*z);A.下面这两段程序的执行效果是一致的B.空语句是只有一个分号的语句,它其实什么也不干C.语句的构成不一定需要分号D.语句的书写对程序的运行不起作用,因此可以随便写都可以10.以下各标识符中,合法的用户标识符组为D。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,wind11.在VC++中,以下语句的输出为D。shortintk=-1;coutk','(unsignedshort)kendl;A.-1,-1B.-1,32767C.-1,32768D.-1,6553512.若给出以下程序,其输出为B。#includeiostreamusingnamespacestd;intmain(){inta=4,b=7;cout(a=a+1,b+a,b+1)endl;return0;}A.5B.8C.11D.程序有错误,无法运行13.字符串“\”EOF=-\61\””的长度是A。A.8B.9C.12D.非法字符串14.数学式xsin在C++程序中对应正确的表达式为B。A.sqrt(sin(x)0?sin(x):-sin(x))B.sqrt(fabs(sinx))C.sqrt(sqrt(sinx*sinx))D.fabs(sqrt(sin(x)))15.下列A是C++语言的有效标识符?A._No1B.No.1C.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.运算符+、=、=、%中,优先级最低的运算符是C。A.+B.=C.=D.%21.下列字符列中,可以作为“字符串常量”的是B。A.ABCB.″xyz″C.′uvw′D.′a′22.设变量m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是D。A.0,0B.0,1C.1,0D.1,123.字符串vm\x43\\\np\102q的长度是A。A.8B.10C.17D.1624.在C++语言中,自定义的标识符D。A.能使用关键字并且不区分大小写B.不能使用关键字并且不区分大小写C.能使用关键字并且区分大小写D.不能使用关键字并且区分大小写25.设有代码“inta=5;”,则执行了语句“a+=a-=a*a;”后,变量a的值是C。A.3B.0C.-40D.–1226.设a为5,执行下列代码后,b的值不为2的是C。A.b=a/2B.b=6-(--a)C.b=a%2D.b=a3?3:227.设x和y均为bool量,则x&&y为真的条件是A。A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假28.若给定条件表达式(m)?(a++):(a--),则其中表达式mC。A.和(m==0)等价B.和(m==1)等价C.和(m!=0)等价D.和(m!=1)等价29.在C++语言的if语句中,用作判断的表达式为D。A.关系表达式B.逻辑表达式C.算术表达式D.任意表达式30.设i和k都是int类型,则以下for循环语句B。for(i=0,k=-1;k=1;i++,k++)cout****\n;A.判断循环结束的条件不合法B.是无限循环C.循环体一次也不执行D.循环体只执行一次31.若有以下语句,则输出结果为A。inta=2,b=1;coutab?a大于b:a小于bendl;A.a大于bB.a小于bC.1D.输出语句有错32.intk=10;while(k=0)k=k-1;则下面描述正确的是C。A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次33.inta=1,b=2,c=2,t;while(ab){t=a;a=b;b=t;c--;}couta”,”b”,”c;运行结果为D。A.1,2,0B.2,1,0C.1,2,1D.2,1,134.intx=-1;do{x=x*x;}while(!x);下列说法正确的是C。A.是死循环B.循环执行两次C.循环执行一次D.有语法错误35.以下能正确计算1*2*3*…*10的程序段是C。A.do{i=1;s=1;B.do{i=1;s=0;s=s*i;i++;}s=s*i;i++;}while(i=10);while(i=10);C.i=1;s=1;D.i=1;s=0;do{s=s*i;do{s=s*i;i++;}i++;}while(i=10);while(i=10);36.以下描述正确的是C。A.由于do-while循环中循环体语句只是一条可执行语句,所以循环体内不能使用复合语句B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D.do-while循环中,根据情况可以省略while37.C++中while和do-while循环的主要区别是A。A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do-while的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句38.下面有关for循环的正确描述是D。A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来39.对for(表达式1;;表达式3)可理解为B。A.for(表达式1;0;表达式3)B.for(表达式1;1;表达式3)C.for(表达式1;表达式1;表达式3)D.or(表达式1;表达式3;表达式3)40.for(i=2;i==0;)printf(“%d”,I--);循环执行的次数是B。A.无限次B.0次C.1次D.2次41.在C++编程语言中,以下正确的描述是B。A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循坏体内使用break语句或continue语句的作用相同D.从多层循环嵌套中退出,只能使用goto语句42.下面程序段D。for(t=1;t=100;t++){cinx;if(x0)continue;coutt;}A.当x0时整个循环结束B.x=0时什么也不输出C.cout永远也不执行D.最多允许输出100个非负整数43.定义一个函数实现交换x和y的值,并将结果正确返回。能够实现此功能的是C。A.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)();的含义是C。A.p是一个指向一维数组的指针变量B.p是指针变量,指向一个整型数据C.p是一个指向函数的指针,该函数的返回值是一个整型D.以上都不对45.设有说明int(*p)[4];其中的标识符p是C。A.4个指向整型变量的指针变量B.指向4个整型变量的函数指针C.一个指向具有4个整型元素的一维数组的指针D.具有4个指向整型变量的指针元素的一维指针数组46.若有如下声明,下列说法错误的是C。structem{chara;charb;};A.struct是结构体类型关键字B.em是结构体类型名C.em是用户声明的结构体变量D.a,b是结构体成员名47.若有下列定义,则对结构体变量的成员引用错误的是C。structdate{intyear;intmonth;intday;};structstudent{intno;charname[16];datebirthday;}stud;A.stud.noB.stud.nameC.stud.birthdayD.stud.birthday.year48.下列叙述中,不正确的是B。A.类的构造函数可以重载B.类的析构函数可以重载C.一个类可以不定义构造函数D.一个类可以不定义析构函数49.已知宏定义:#defineN3#defineY(n)((N+1)*n)((N+1)*5+1)执行语句z=2*(N+Y(5+1));后,变量z的值是B。A.42B.48C.52D.出错50.类的构造函数的作用是CA)一般成员函数的初始化B)类的初始化C)对象的初始化D)删除类创建的对象51.下列说法正确的是BA)内置函数在运行时是将该函数的目标代码插入每个调用该函数的地方B)内置函数在编译时是将该函数的目标代码插入每个调用该函数的地方C)类的内置函数必须在类体内定义D)类的内置函数必须在类体外通过加关键字inline定义二、填空题1.程序的三种基本的控制结构是:顺序结构、选择结构、选择结构2.假定一个结构类型定义为:“structD{inta;union{intb;doublec;};D*d[2];};”,则该类型的大小为20字节。3.C++语言中的每条基本语句以;作为结束符,每条复合语句以}作为结束符。4.关系表达式x+y5的相反表达式为x+y=5。5.下面的程序段中循环体的执行次数是3。a=10;b=0;do{b+=2;a-=2+b;}while(a=0);6.下面程序段的运行结果为**。x=2;do{cout“*”;x--;}while(!x==0);7.定义内置函数的方法是在函数的返回值类型之前增
本文标题:c++复习题及答案
链接地址:https://www.777doc.com/doc-5424571 .html