C++复习题全部答案.docx
- 文档编号:5534324
- 上传时间:2022-12-19
- 格式:DOCX
- 页数:41
- 大小:38.90KB
C++复习题全部答案.docx
《C++复习题全部答案.docx》由会员分享,可在线阅读,更多相关《C++复习题全部答案.docx(41页珍藏版)》请在冰豆网上搜索。
C++复习题全部答案
一、C++基础、变量、常量部分试题:
(一)单选题
8.
由C++语言编写的代码程序()
A.可直接执行(.exe才可以直接执行)B.是一个源程序
C.经过编译即可执行(经过编译链接才可以执行)D.经过编译解释才能执行
9.
按照C++语言规定的用户标识符命名规则,不能出现在标识符中的是()
A.大写字母B.中划线C.数字字符D.下划线
10.
下列选项中,不能用作标识符的是()
A._1234_B._1_2C.int_2_D.2_int
11.
以下选项中合法的用户标识符是()
A.long(关键字)B._2TestC.3DmaxD.A.dat
12.
以下不能定义为用户标识符的是()
A.MainB._0C._intD.sizeof(运算符)
13.
列定义变量的语句错误的是()
A.int_int;B.doubleint_;C.charFor;D.floatUSA;
14.
在C++语言中,非法的字符常量是()
A.‘\t’B.‘\017’C."\n"D.‘\xaa’
29.
以下程序的输出结果是()
voidmain()
{
intk=11;
cout< cout< cout< } A.k=11,k=12,k=11B.k=11,k=13,k=13 C.k=11,k=013,k=0xbD.k=11,k=13,k=b 41. 不属于C++语言关键字的是()。 A.intB.breakC.whileD.character 42. 是C++语言提供的合法关键字的是()。 A.FloatB.signedC.integerD.Char 43. 下列说法中,错误的是()。 A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号 B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 (二)填空题 1.一个C++源程序至少有并且只能有一个main(主)函数。 2.以下程序运行后的输出结果是1012a。 #include #include intmain() { inta=10; cout< return0; } 3.以下程序运行后的输出结果是(252137)。 voidmain() { inta,b,c; a=25;b=025;c=0x25; cout< } 4.以下程序运行后的输出结果是21。 voidmain() {inta=1,b=2; a=a+b;b=a-b;a=a-b; cout< } 5.结构化设计中的三种基本结构是__顺序结构__、__选择结构__、__循环结构__。 6.C++语言源程序文件的后缀是___.cpp___,经过编译后生成文件的后缀是__.obj__,经过链接后生成文件的后缀是__.exe__。 7.一个函数由两部分组成,它们是__函数首部__、__函数体__。 8.若x和y均为int型变量,则以下语句的功能是__交换变量x,y的值__。 x+=y;y=x-y;x-=y; 二、运算符部分试题: (一)单选题 1. 以下程序的输出结果是() voidmain() { inta=1,b=2,c=3,d=4; cout<<(a a: c a: d)< } A.4B.3C.2D.1 15. 下列运算符中优先级最高的运算符是() A.<=B.=C.%D.&& 16. 以下程序的输出结果是() main() { inta=3,b=4; cout<<(a<=b)< } A.3B.4C.1D.0 17. 在C++语言中,以下非法的表达式是() A.x++B.i=j==0C.(char)(65+3)D.x+1=x+1 18. 在C++语言中,以下非法的赋值语句是() A.j++;B.++(i+1);C.x=j>0;D.k=i==j; 19. 表达式3.6-5/2+1.2+5%2的值是() A.4.3B.4.8C.3.3D.3.8 20. 设有语句: inta=3;则执行了语句a+=a-=a*a;变量a的值是() A.3B.0C.9D.-12 21. 设有语句: intx=10;则执行了语句x+=x-=x-x;变量x的值是() A.10B.20C.40D.30 22. 以下程序的输出结果是() voidmain() { inti=10,j=1; cout< } A.9,2B.10,2C.9,1D.10,1 23. 以下程序的输出结果是() voidmain() { intx=100,y=200; cout<<(x,y)< } A.200B.100 C.100200D.200100 24. 以下程序的输出结果是() voidmain() { intx=10,y=3,z; cout<<(z=(x%y,x/y))< } A.1B.0C.4D.3 25. intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是() A.k++B.k+=1C.++kD.k+1 26. 以下程序的输出结果是() voidmain() { intx,y,z; x=y=1; z=x++,y++,++y; cout< } A.2,3,3B.2,3,2C.2,3,1D.2,2,1 27. 设x、y、t均为int型变量,执行了以下程序后,变量y的值为()。 voidmain() { intx,y,t; x=y=3; t=++x||++y; cout< } A.1B.2C.3D.4 28. 设intx=-1;执行表达式++x||++x||++x||++x,x的值是() A.0B.1C.2D.4 45. 逻辑运算符两侧运算对象的数据类型()。 A.只能是0或1 B.只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任何类型的数据 46. 以下关于运算符优先顺序的描述中正确的是()。 A.关系运算符<算术运算符<赋值运算符<逻辑与运算符 B.逻辑与运算符<关系运算符<算术运算符<赋值运算符 C.赋值运算符<逻辑与运算符<关系运算符<算术运算符 D.算术运算符<关系运算符<赋值运算符<逻辑与运算符 48. 判断char型变量s是否为小写字母的正确表达式是()。 A.’a’<=s<=’z’B.(s>=’a’)&(s<=’z’) C.(s>=’a’)&&(s<=’z’)D.(’a’<=s)and(’z’>=s) 49. 若希望当x的值为奇数时,表达式的值为“真”,x的值为偶数时,表达式的值为“假”。 则以下不能满足要求的表达式是()。 A.x%2==1B.! (x%2==0) C.! (x%2)D.x%2 50. 已知x=45,y=’a’,z=0;则表达式(x>=z&&y<’z’||! y)的值是()。 A.0B.语法错 C.1D.“假” 51. 执行以下语句后,y的值为()。 intx,y,z; x=y=z=0; ++x||++y&&++z; A.0B.1C.2D.不确定值 55. 则执行下面语句后的w值是()。 voidmain() {inta=1,b=2,c=3,d=4,w; w=(a a: b; w=(w w: c; w=(w w: d; cout< } A.1B.2C.3D.4 (二)填空题: 1.以下程序运行后的输出结果是2007。 main() { intx=2006,y=2007; cout<<(x,y); } 2.以下程序运行后的输出结果是D。 voidmain() { charch='B'; ch+=2; cout< } 3.以下程序运行后的输出结果是98。 voidmain() { intc; charch=97; c=ch+1; cout< } 4.以下程序运行后的输出结果是123.46。 #include intmain() { floatx=123.4567f; cout<<(int)(x*100+0.5)/100.0< return0; } 5.以下程序运行后的输出结果是14。 #include voidmain() { inta=10; a=(3*5,a+4); cout< } 6.以下程序运行后的输出结果是-10-10-7。 #include voidmain() { inta=0,b=0,c=0; c=(a+=a-=5),(a=b,b+3); cout< } 7.以下程序运行后的输出结果是0。 #include voidmain() { inta=5,b=4,c=3,x; x=a>b>c; cout< } 8.以下程序运行后的输出结果是30。 #include voidmain() { inta=3,b=2; b=a<0&&a++>3; cout< } 9.以下程序运行后的输出结果是1。 #include voidmain() { intx,a=1,b=2,c=3,d=4; x=(a a: b;x=(x x: c; cout< } 10.设intx=9,y=8;表达式x==y+1的结果是____1____。 11.定义intx,y;执行y=(x=1,++x,x+2);后,y的值是____4____。 12.定义intx=10,y,z;执行y=z=x;x=y==z;后,x的结果是____1____。 三、流程控制语句部分试题: (一)单选题 2. voidmain() { inti; for(i=0;i<3;i++) { switch(i) { case0: cout< case1: cout< default: cout< } } } 程序执行后的输出结果是() A.000112B.012C.012020D.120 7. 以下程序运行后的输出结果是4599。 #include voidmain() { inta=3,b=4,c=5,t=99; if(b if(a cout< } 30.以下程序段的输出结果是() voidmain() { intx=5; if(x++>5) cout< else cout< } A.4B.5C.6D.7 31.有以下程序: voidmain() { intn=4; while(n--) cout<<--n; } 程序执行后的输出结果是() A.20B.31C.321D.210 32.有以下程序 voidmain() { inty=10; while(y--); cout< } 程序执行后的输出结果是() A.y=0B.y=-1 C.y=1D.while构成无限循环 44. 为了避免嵌套的if-else语句的二义性,C++语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 47.选择出合法的if语句(设intx,a,b,c;)()。 A.if(a=b)c++; B.if(a= C.if(a<>b)c++; D.if(a=>b)c++; 52.已知inta=1,b=2,c=3;以下语句执行后a,b,c的值是()。 if(a>b) c=a;a=b;b=c; A.a=1,b=2,c=3B.a=2,b=3,c=3 C.a=2,b=3,c=1D.a=2,b=3,c=2 53.请阅读以下程序: 该程序()。 voidmain() {intx=-10,y=5,z=0; if(x=y+z)cout<<"***\n"; elsecout<<"$$$\n"; } A.有语法错不能通过编译 B.可以通过编译但不能通过连接 C.输出*** D.输出$$$ 54.执行完下面一段程序后x的值是()。 voidmain() { inta=1,b=2,c=4,d=3,x; if(a if(c else if(a if(b elsex=3; elsex=4; elsex=5; cout< } A.1B.2C.3D.4 56.以下switch语句结构哪一个是正确的? () A. voidmain() { inta=1,b=0,c1,c2,x,y; switch(a+b); { case1: y=a+b;break; case0: y=a-b;break; } } B. voidmain() { inta=1,b=0,c1,c2,x,y; switcha() { casec1: y=a-b;break; casec2: x=a*b;break; default: x=a+b; } } C. voidmain() { inta=1,b=0,c1,c2,x,y; switch(a*a+b*b) { case3: case1: y=a+b;break; case3: y=b-a;break; } } D. voidmain() { inta=1,b=0,c1,c2,x,y; switch(a*a+b*b) { default: y=a*b;break; case3: x=a+b;break; case10: case11: y=a-b;break; } } 57.假定等级和分数有以下对应关系: 等级: A分数: 85——100 等级: B分数: 60——84 等级: C分数: 60以下 对于等级grade输出相应的分数区间,能够完成该功能的程序段是()。 A. voidmain() { chargrade; cin>>grade; switch(grade) { case'A': cout<<"85--100\n"; case'B': cout<<"60--84\n"; case'C': cout<<"<60\n"; default: cout<<"gradeiserror! \n"; } } B. voidmain() { chargrade; cin>>grade; switch(grade) { case'A': cout<<"85--100\n"; break; case'B': cout<<"60--84\n"; case'C': cout<<"<60\n"; default: cout<<"gradeiserror! \n"; } } C. voidmain() { chargrade; cin>>grade; switch(grade) { case'A': cout<<"85--100\n"; break; case'B': cout<<"60--84\n"; break; case'C': cout<<"<60\n"; default: cout<<"gradeiserror! \n"; } } D. voidmain() { chargrade; cin>>grade; switch(grade) { case'A': cout<<"85--100\n"; break; case'B': cout<<"60--84\n"; break; default: cout<<"gradeiserror! \n"; break; case'C': cout<<"<60\n"; } } 58. 当执行以下程序段时,程序将()。 voidmain() { intx=-1; do {x=x*x;} while(! x); } A.循环体将执行一次 B.循环体将执行两次 C.循环体将执行无数多次 D.系统将提示有语法错误 59. 若i,j已定义为int类型,则以下程序段中内循环的总的执行次数是()。 for(i=5;i;i--) for(j=0;j<4;j++) {…} A.20B.24C.25D.30 60. 有以下语句: i=1; for(;i<=100;i++)sum+=i; 与以上语句序列不等价的有()。 A.for(i=1;;i++){sum+=i;if(i==100)break;} B.for(i=1;i<=100;){sum+=i;i++;} C.i=1;for(;i<=100;)sum+=i; D.i=1;for(;;){sum+=i;if(i==100)break;i++;} 61. 标有/**/的语句的执行次数是()。 inty,i; for(i=0;i<20;i++) {if(i%2==0)continue; y+=i;/**/ } A.20B.19C.10D.9 (二)填空题: 2.#include voidmain() { inti,t=0; for(i=5;i>=0;i--) t*=i; cout< } 3. 写成下列程序的输出结果: #include voidmain() { inti=1; while(i<=15) if(++i%3! =2)continue; elsecout< cout< }2581114 4.输入a,输出结果是verygood 输入c,输出结果是pass。 #include voidmain() { charn; cin>>n; switch(n) {case'a': case'A': cout<<"verygood\n";break; case'b': case'B': cout<<"good\n";break; case'c': case'C': case'd': case'D': cout<<"pass\n";break; case'e': case'E': cout<<"warning\n";break; default: cout<<"error\n"; } } 5.以下程序的功能是计算: 1-2+3-4……+99-100 voidmain() {inti=1,j=1,s=0; while(i<=100) {s+=i*j; i++; j=-j;} cout< } 6.若从键盘输入58,则输出结果是_585858_______。 #include voidmain() { inta; cin>>a; if(a>50)cout<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 复习题 全部 答案