第2章(上)书面作业及其答案第1页共12页第2章(上)书面作业及其答案一、单选题1、在一个C++程序中,main函数的位置(C)。(A)必须在程序的开头(B)必须在程序的后面(C)可以在程序的任何地方(D)必须在其它函数中间2、C++程序中的语句必须以(B)结束。(A)冒号(B)分号(C)空格(D)花括号3、在下列八进制整型常量的表示中,(B)是正确的。(A)0a0(B)015(C)080(D)0x104、在下列十六进制整型常量的表示中,(C)是错误的。(A)0x11(B)0xaf(C)0xg(D)0x1f5、下列正确的字符常量为(D)(A)”a”(B)’\81’(C)a(D)’\101’6、在下列运算符中,(D)优先级最低。(A)!(B)&&(C)!=(D)?:7、设i=1,j=2,则表达式i+++j的值为(C)。(A)1(B)2(C)3(D)48、已知i=0,j=1,k=2,则逻辑表达式++i||--j&&++k的值为(B)。(A)0(B)1(C)2(D)39、设a=1,b=2,c=3,d=4,则条件表达式ab?a:cd?c:d的值为(A)。(A)1(B)2(C)3(D)410、逗号表达式(x=4*5,x*5),x+25的值为(D)。(A)125(B)20(C)100(D)4511、C++语言是以(B)语言为基础逐渐发展演变而成的一种程序设计语言。(A)Pascal(B)C(C)B(D)Simula6712、在下列关于C++与C语言关系的描述中,错误的是(D)。(A)C++是C语言的超集(B)C++对C语言进行了扩充(C)C++包含C语言的全部语法特征(D)C++与C语言都是面向对象的程序设计语言13、面向对象程序设计思想的主要特征中不包括(B)。(A)继承性(B)功能分解,逐步求精(C)封装性和信息隐藏(D)多态性14、在下列关于C++与C语言关系的描述中,正确的是(D)。(A)关键字是用户为程序中各种需要命名的“元素”所起的名字(B)关键字是对程序中的数据进行操作的一类单词(C)关键字是在程序中起分割内容和界定范围作用的一类单词(D)关键字是C++中预先定义并实现一定功能的一类单词第2章(上)书面作业及其答案第2页共12页15、在下列字符串中,可以用作C++标识符的是(A)。(A)_123(B)foo~bar(C)case(D)3var16、在下列C++标点符号中,表示一条预处理命令开始的是(A)。(A)#(B);(C)//(D){17、每个C++程序都必须有且仅有一个(C)。(A)函数(B)预处理命令(C)主函数(D)语句18、在下列C++标点符号中,表示复合语句结束的标记符是(C)。(A)#(B)//(C)}(D);19、下列不正确的选项是(D)。(A)C++语言是一种面向对象的程序设计语言,它支持面向对象思想中的3个主要特征(B)标点符号是在程序中起分割内容和界定范围作用的一类单词(C)iostream是一个标准的头文件,定义了一些输入/输出流对象(D)类与类之间不可以进行通信和联络20、在下列关于C++语言发展的说法中,错误的是(C)。(A)C++语言起源于C语言(B)C++语言最初被称为“带类的C”(C)在1980年C++被命名(D)在1983年C++被命名(完)第2章(下)书面作业及其答案1、已知inti,x,y;在下列选项中错误的是(C)。(A)if(x&&y)i++;(B)if(x=y)i--;(C)if(xy)i--;(D)if(x+y)i++;-1x02、设有函数关系为y=0x=0,下面选项中能正确表示上述关系为(C)。1x0(A)y=1;if(x=0)if(x==0)y=0;elsey=-1;(B)y=-1;if(x!=0)if(x0)y=1;elsey=0;(C)if(x=0)if(x0)y=-1;elsey=0;elsey=1;(D)y=-1;if(x=0)if(x0)y=-1;第2章(上)书面作业及其答案第3页共12页elsey=1;3、假设i=2,执行下列语句后i的值为(B)。switch(i){case1:i++;case2:i--;case3:++i;break;case4:--i;default:i++;}(A)1(B)2(C)3(D)44、已知inti=0,x=0;下面while语句执行时循环次数为(D)。while(!x&&i3){x++;i++;}(A)4(B)3(C)2(D)15、已知inti=3;下面do_while语句执行时循环次数为(B)。do{i--;coutiendl;}while(i!=1);(A)1(B)2(C)3(D)无限6、下面for语句执行时,循环次数为(B)。for(inti=0,j=5;i=j;){coutijendl;i++;j--;}(A)0(B)5(C)10(D)无限7、以下为死循环的程序段是(A)。(A)for(intx=0;x3;x--){x++;}(B)intk=0;do{++k;}while(k=0);(C)inta=5;while(a){a--;}(D)inti=3;for(;i;i--);8、以下程序段的结果是(C)。intm=0,n=0;if(++m||++n)coutm“,”nendl;(A)0,0(B)1,1(C)1,0(D)0,19、以下程序段的结果是(B)。intm=0,n=0;if(++m&&++n)coutm“,”nendl;(A)0,0(B)1,1(C)1,0(D)0,110、以下程序段的结果是(C)。intm=0,n=0;if(m++&&n++)m++;coutm“,”nendl;(A)0,0(B)1,1(C)1,0(D)2,1第2章(上)书面作业及其答案第4页共12页11、下列选项中属于C++语句的是(A)。(A);(B)a=17(C)i+5(D)cout‘\n’12、已知:inta,b;下列switch语句中,(D)是正确的。(A)switch(a)(B)switch(a+b){{casea:a++;break;case1:a+b;break;caseb:b++;break;case1:a-b;}}(C)switch(a*a)(D)switch(a/10+b){{case1,2:++a;case5:a/5;break;case3,4:++b;default:a+b;}}13、下面程序的输出结果是(C)。#includeiostreamusingnamespacestd;intmain(){inta=2,b=-1,c=2;if(ab)if(b0)c=0;elsec+=1;coutcendl;return0;}(A)0(B)1(C)2(D)314、下列for语句的循环次数为(B)。for(inti=0,x=0;!x&&i=5;i++);(A)5次(B)6次(C)7次(D)无穷次15、下列语句段将输出字符‘*’的个数为(B)。inti=100;while(1){i--;if(i==0)break;cout‘*’;}(A)98个(B)99个(C)100个(D)101个16、下面程序的输出结果是(D)。#includeiostreamusingnamespacestd;intmain(){第2章(上)书面作业及其答案第5页共12页ints;for(intk=2;k6;k+=2){s=1;for(intj=k;j6;j++)s+=j;}coutsendl;return0;}(A)9(B)1(C)11(D)1017、下面程序的输出结果是(B)。#includeiostreamusingnamespacestd;intmain(){intn=10;while(n7){n--;coutn‘,’;}coutendl;return0;}(A)10,9,8,(B)9,8,7,(C)10,9,8,7,(D)9,8,7,6,18、下列关于do…while语句的叙述正确的是(D)。(A)do…while语句所构成的循环不能用其他语言构成的循环来代替。(B)do…while语句所构成的循环只能用break语言跳出。(C)do…while语句所构成的循环只有在while后面的表达式非零时才结束。(D)do…while语句所构成的循环只有在while后面的表达式为零时才结束。19、下面程序的输出结果是(D)。#includeiostreamusingnamespacestd;intmain(){intx;for(inti=1;i=100;i++){x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)coutx‘,’;}第2章(上)书面作业及其答案第6页共12页coutendl;return0;}(A)39,81,(B)42,84,(C)26,68,(D)28,70,20、下列关于break语句的叙述不正确的是(C)。(A)break语句可用在循环体中,它将使执行流程跳出本层循环体。(B)break语句可用在switch语句中,它将使执行流程跳出当前switch语句。(C)break语句可用在if语句中,它将使执行流程跳出当前if语句。(D)break语句在一层循坏体中可以出现多次。(完)第3章书面作业及其答案1、当一个函数无返回值时,函数的类型应定义为(A)。(A)void(B)任意(C)int(D)无2、在函数说明时,下列(D)项是不必要的。(A)函数的类型(B)函数参数类型和名字(C)函数名字(D)返回值表达式3、C++语言中规定函数的返回值的类型是由(D)。(A)return语句中的表达式类型所决定(B)调用该函数时的主调用函数类型所决定(C)调用该函数时系统临时决定(D)在定义该函数时所指定的函数类型所决定4、在函数的返回值类型与返回值表达式的类型的描述中,错误的是(B)。(A)函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的(B)函数返回值的类型就是返回值表达式的类型(C)函数返回值表达式类型与返回值类型不同时,函数返回值表达式类型应转换成返回值类型(D)函数返回值类型决定了返回值表达式的类型5、在一个被调用函数中,关于return语句使用的描述,错误的是(D)。(A)被调用函数中可以不用return语句(B)被调用函数中可以使用多个return语句(C)被调用函数中,如果有返回值,就一定要有return语句(D)被调用函数中,一个return语句可返回多个值给调用函数6、若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中,实参的个数是(A)。(A)3(B)4(C)5(D)67、下列(D)的调用方式是引用调用。(A)形参是指针,实参是地址值(B)形参和实参都是变量(C)形参是数组名,实参是数组名(D)形参是引用,实参是变量8、在值调用中,要求(C)。(A)形参和实参类型任意,个数相等(B)实参和形参类型都完全一致,个数相等第2章(上)书面作业及其答案第7页共12页(C)实参和形参对应的类型一致,个数相等(D)实参和形参对应的类型一致,个数任意9、在C++中,关于下列设置参数默认值的描述中,正确的是(C)。(A)不允许设置参数的默认值(B)设置参数默认值只能在定义函数时设置(C)设置参数默认值时,应该是先设置右边的再设置左边的(D)设置参数默认值时,应该全部参数都设置10、要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(A)。(A)内联函数(B)重载函数(C)递归调用(D)嵌套调用第4章书面作业及其答案注意:本作业共有14个问题15个答案,其中有一道题中只有一个括号(),但是这个括号内需要从四个选项中选择两项。1、关于类和对象不正确的说法是(C)。(A)类是一种类型,它封装了数据和操作(B)对象是类的实例(C)一个类的对象只有一个(D)一个对