C++复习题(全部答案

上传人:wuy****ng 文档编号:157901554 上传时间:2022-10-01 格式:DOC 页数:29 大小:107.51KB
收藏 版权申诉 举报 下载
C++复习题(全部答案_第1页
第1页 / 共29页
C++复习题(全部答案_第2页
第2页 / 共29页
C++复习题(全部答案_第3页
第3页 / 共29页
资源描述:

《C++复习题(全部答案》由会员分享,可在线阅读,更多相关《C++复习题(全部答案(29页珍藏版)》请在装配图网上搜索。

1、一、C+基础、变量、常量部分试题:(一)单选题8.由C+语言编写的代码程序( )A. 可直接执行(.exe才可以直接执行B. 是一61个源程序C. 经过编译即可执行 (经过编译链接才可以执行)D. 经过编译解释才能执行9.按照C+语言规定的用户标识符命名规则,不能出现在标识符中的是( )A. 大写字母 B. 中划线 C. 数字字符 D. 下划线10.下列选项中,不能用作标识符的是( )A. _1234_ B. _1_2 C. int_2_ D. 2_int11.以下选项中合法的用户标识符是( )A. long(关键字) B. _2Test C. 3Dmax D. A.dat12.以下不能定义为

2、用户标识符的是( )A. MainB. _0C. _intD. sizeof(运算符)13.列定义变量的语句错误的是( )A. int _int; B. double int_; C. char For; D. float US?;14.在C+语言中,非法的字符常量是( )A.t B.017 C. n D.xaa29.以下程序的输出结果是()void main() int k=11; coutdeck=k“,”; coutoctk=k“,”; couthexk=kendl;A. k=11,k=12,k=11 B. k=11,k=13,k=13 C. k=11,k=013,k=0xb D. k=

3、11,k=13,k=b41.不属于C+语言关键字的是( )。 Aint Bbreak Cwhile Dcharacter42.是C+语言提供的合法关键字的是( )。 AFloat Bsigned Cinteger DChar43.下列说法中,错误的是( )。 A每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B每个函数都有一个函数头和一个函数体,主函数也不例外C主函数只能调用用户函数或系统函数,用户函数可以相互调用D程序是由若干个函数组成的,但是必须有、而且只能有一个主函数(二)填空题1.一个C源程序至少有并且只能有一个 main 函数。2. 以下程序运行后的输出结果是

4、 1012a 。#include#includeint main() int a=10; coutdecaoctahexaendl;return 0;3.以下程序运行后的输出结果是( 25 21 37 ) 。void main() int a,b,c; a=25;b=025;c=0x25; couta b cendl; 4.以下程序运行后的输出结果是 2 1 。void main() int a=1,b=2; a=a+b;b=a-b;a=a-b; couta b; 5. 结构化设计中的三种基本结构是_顺序结构_、_选择结构_、_循环结构_。6.C+语言源程序文件的后缀是_.cpp_,经过编译后

5、生成文件的后缀是_.obj_,经过链接后生成文件的后缀是_.exe_。7. 一个函数由两部分组成,它们是_函数首部_、_函数体_。8. 若x和y均为int型变量,则以下语句的功能是_交换变量x,y的值_。 x+=y; y=x-y; x-=y;二、运算符部分试题:(一)单选题1.以下程序的输出结果是( )void main()int a=1,b=2,c=3,d=4; cout(ab?a:cd?a:d)endl;A. 4 B. 3 C. 2 D. 115.下列运算符中优先级最高的运算符是( )A. = B. = C. % D. &16.以下程序的输出结果是( )main() int a=3,b=4

6、; cout(a=b)0;D. k=i=j;19.表达式3.6-5/2+1.2+5%2的值是( )A. 4.3 B. 4.8 C. 3.3 D. 3.820.设有语句:int a=3;则执行了语句a+=a-=a*a;变量a的值是( )A. 3 B. 0 C. 9 D. -1221.设有语句:int x=10;则执行了语句x+=x-=x-x;变量x的值是( )A. 10 B. 20 C. 40 D. 30 22.以下程序的输出结果是( )void main() int i=10,j=1; couti-“,”+jendl;A. 9,2 B. 10,2 C. 9,1 D. 10,123.以下程序的输

7、出结果是( )void main() int x=100,y=200; cout(x,y)endl;A. 200 B. 100C. 100 200 D.200 10024.以下程序的输出结果是( )void main()int x=10,y=3,z;cout(z=(x%y,x/y)endl;A. 1 B. 0 C. 4 D. 325.int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( )A. k+ B. k+=1 C. +k D. k+126.以下程序的输出结果是( )void main() int x,y,z; x=y=1; z=x+,y+,+y; coutx, y,

8、zendl;A. 2,3,3 B. 2,3,2 C. 2,3,1 D. 2,2,127.设x、y、t均为int型变量,执行了以下程序后,变量y 的值为( )。void main() int x,y,t; x=y=3; t=+x|+y; coutyendl;A. 1B. 2C. 3D. 428.设int x=-1;执行表达式+x|+x|+x|+x,x的值是( )A. 0B. 1C. 2D. 445.逻辑运算符两侧运算对象的数据类型( )。 A只能是0或1 B只能是0或非0正数 C只能是整型或字符型数据 D可以是任何类型的数据46.以下关于运算符优先顺序的描述中正确的是( )。 A关系运算符算术运

9、算符赋值运算符逻辑与运算符 B逻辑与运算符关系运算符算术运算符赋值运算符 C赋值运算符逻辑与运算符关系运算符算术运算符 D算术运算符关系运算符赋值运算符逻辑与运算符48.判断char型变量s是否为小写字母的正确表达式是( )。 Aa = s=a) & (s=a) & (s=z) D(a=s)49.若希望当x的值为奇数时,表达式的值为“真”,x的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。 Ax%2=1 B!(x%2=0) C!(x%2) Dx%250.已知 x=45, y=a, z=0; 则表达式(x=z & yz | !y)的值是( )。 A0 B语法错 C1 D“假

10、”51.执行以下语句后,y 的值为( )。int x,y,z;x=y=z=0;+x | +y & +z;A0 B1 C2 D不确定值55.则执行下面语句后的w值是( )。void main()int a=1,b=2,c=3,d=4,w;w=(ab)?a:b;w=(wc)?w:c;w=(wd)?w:d;coutwendl;A1 B2 C3 D4(二)填空题:1.以下程序运行后的输出结果是 2007 。main() int x=2006,y=2007; cout(x,y); 2. 以下程序运行后的输出结果是 D 。void main() char ch=B; ch+=2; coutchendl;

11、3.以下程序运行后的输出结果是 98 。main() int c; char ch=97; c=ch+1; coutcendl; 4. 以下程序运行后的输出结果是 123.46 。#includeint main() float x=123.4567f; cout(int)(x*100+0.5)/100.0endl; return 0;5.以下程序运行后的输出结果是 14 。#includevoid main() int a=10; a=(3*5,a+4); coutaendl;6.以下程序运行后的输出结果是 -10 -10 -7 。#includevoid main() int a=0,b=

12、0,c=0; c=(a+=a-=5),(a=b,b+3); couta b cendl;7.以下程序运行后的输出结果是 0 。#includevoid main() int a=5,b=4,c=3,x; x=abc; coutxendl;8.以下程序运行后的输出结果是 3 0 。#includevoid main() int a=3,b=2; b=a3; couta bendl;9. 以下程序运行后的输出结果是 1 。#includevoid main() int x,a=1,b=2,c=3,d=4; x=(ab)?a:b;x=(xc)?x:c; coutxendl;10. 设int x=9,

13、y=8;表达式x=y+1的结果是_1_。11. 定义int x,y;执行y=(x=1,+x,x+2);后, y的值是_4_。12. 定义int x=10,y,z; 执行y=z=x; x=y=z;后, x的结果是_1_。三、流程控制语句部分试题:(一)单选题2.void main()int i; for(i=0;i3;i+) switch(i) case 0:couti; case 1:couti; default:couti; 程序执行后的输出结果是( )A000112 B. 012 C. 012020 D. 1207.以下程序运行后的输出结果是 4 5 99 。#includevoid ma

14、in()int a=3,b=4,c=5,t=99;if(ba & ac) t=a;a=c;c=t;if(ac & bc) t=b;b=a;a=t;couta b c5) coutxendl; else coutx-endl;A. 4B. 5C. 6D. 731.有以下程序:void main() int n=4; while(n-) cout-n;程序执行后的输出结果是( ) A. 20 B. 31 C. 321 D. 21032.有以下程序void main() int y=10; while(y-) ; coutyendl;程序执行后的输出结果是( ) A. y=0 B. y=-1C. y

15、=1 D. while构成无限循环44.为了避免嵌套的if-else语句的二义性,C+语言规定else总是与( )组成配对关系。A缩排位置相同的ifB在其之前未配对的ifC在其之前未配对的最近的ifD同一行上的if47.选择出合法的if语句(设int x,a,b,c;)( )。 Aif(a=b) c+; Bif(a=b) c+; Cif(ab) c+; Dif(a=b) c+;52.已知int a=1,b=2,c=3; 以下语句执行后a,b,c的值是( )。if(ab)c=a; a=b; b=c;Aa=1, b=2, c=3 Ba=2, b=3, c=3Ca=2, b=3, c=1 Da=2,

16、 b=3, c=253.请阅读以下程序:该程序( )。void main() int x=-10, y=5, z=0;if (x=y+z) cout*n;else cout$n;A有语法错不能通过编译 B可以通过编译但不能通过连接C输出* D输出$54.执行完下面一段程序后x的值是( )。void main() int a=1,b=2,c=4,d=3,x;if (ab)if (cd) x=1;else if (ac) if (bd) x=2; else x=3;else x=4;else x=5;coutxgrade;switch (grade) case A:cout85-100n;case

17、 B:cout60-84n;case C:cout60n;default:coutgrade;switch (grade) case A:cout85-100n;break;case B:cout60-84n;case C:cout60n;default:coutgrade;switch (grade) case A:cout85-100n;break;case B:cout60-84n;break;case C:cout60n;default:coutgrade;switch (grade) case A:cout85-100n;break;case B:cout60-84n;break;d

18、efault:coutgrade is error!n;break;case C:cout60n;58.当执行以下程序段时,程序将( )。void main() intx=-1;do x=x*x;while (!x);A.循环体将执行一次 B.循环体将执行两次C.循环体将执行无数多次 D.系统将提示有语法错误59.若i,j已定义为int类型,则以下程序段中内循环的总的执行次数是 ( )。for (i=5;i;i-)for (j=0;j4;j+)A.20 B.24 C.25 D.3060.有以下语句:i=1;for(;i=100;i+) sum+=i;与以上语句序列不等价的有( )。.A. fo

19、r(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.标有/*/的语句的执行次数是( )。int y,i;for(i=0;i20;i+)if(i%2=0)continue;y+=i;/*/A.20 B.19 C.10 D.9(二)填空题:2. #include 0void main() int i,t=0; for(i=5;i=0;i-) t*=i; couttendl;3.写成下列程序的

20、输出结果:#includevoid main() int i=1; while(i=15) if(+i%3!=2) continue;else couti ;coutendl; 2 5 8 11 144. 输入a,输出结果是 very good 输入c,输出结果是 pass 。#includevoid main() char n; cinn; switch(n) case a:case A:coutvery goodn;break; case b:case B:coutgoodn;break; case c:case C: case d:case D:coutpassn;break; case

21、 e:case E:coutwarningn;break; default:couterrorn; 5. 以下程序的功能是计算:1-2+3-4+99-100void main() int i=1,j=1,s=0; while( i=100 ) s+= i*j ; i+; j=-j ; coutsendl; 6. 若从键盘输入58,则输出结果是_585858_。#includevoid main() int a; cina; if (a50) cout40) cout30) couta; 7. 下面程序根据以下函数关系,对输入的每个x值,计算出y值。请在【】内填空。Xy2x=10x(x+2)-1

22、x=21/xxx;if (【1】(x2)&(x-1)&(x=2) y=1/x;else if (x=-1) y=x-1;else 【3】y=-1;if (y!= -1) coutyendl;else cout”error”endl ;8. 以下程序是对用户输入的字母进行大小写转换。请在【】内填入正确内容。void main() char ch; coutch;if (【1】(ch=A) & (ch=a & ch=z) 【2】ch=ch-32;cout” the converted letter ischendl;9. 以下程序运行后的输出结果是_20 0_。 void main() int x

23、=10, y=20, t=0; if (x=y) t=x; x=y; y=t; coutx y;10. 执行以下语句后,x、y和z 的值分别为_1,0,0_。int x,y,z;x=y=z=0;+x | +y & +z;11. 程序运行结果是_ 135_。#includevoid main() int i; for(i=1;i+1;i+) if(i4) couti+; break; couti+; (三)编程题1. 百钱百鸡:100元钱买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡各多少只?2.输出九九乘法表。四、数组与指针部分试题:(一)单选题

24、3. 以下数组定义中错误的是( )A. int x3=0; B. int x23=1,2,3,4,5,6;C. int x3=1,2,3,4,5,6; D. int x23=1,2,3,4,5,6;4.以下能正确定义二维数组的是( )A. int a3; B. int a3=2*3; C. int a3=; D. int a23=1,2,3,4; 5. 设有char array=China;则数组array所占的空间字节数为( ) A. 4 B. 5 C. 6 D. 7 6.对于以下定义正确的叙述为( )char x=abcdefg;char y=a,b,c,d,e,f,g;A. 数组x和数组

25、y等价B. 数组x和数组y的长度相同C. 数组x的长度大于数组y的长度D. 数组x的长度大于数组y的长度33.以下叙述中正确的是( )A. 可以在一个函数中调用另一个函数 B. 可以在一个函数中定义另一个函数C. main()函数必须放在其它函数之前 D. 所有被调用函数一定要在调用之前进行定义34.以下说法中正确的是( )A. C+语言程序总是从第一个函数开始执行 B. 在C+语言程序中,要调用的函数必须在main()函数中定义C. C+语言程序总是从main()函数开始执行D. C+语言程序中的main()函数必须放在程序的开始部分35.以下程序的输出结果是( )void main( )

26、int a10=1,2,3,4,5,6,7,8,9,10,*p=a; cout*(p+2)endl;A. 3B. 4C. 1D. 236.以下程序的输出结果是( )void main() int a10=1,2,3,4,5,6,7,8,9,10,*p=a; cout(*p+9)endl;A. 0B. 1C. 10D. 937.以下程序的输出结果是( )void main() int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,*q=p+2; cout(*p+*q)endl;A. 16 B. 10 C. 8 D. 638.以下不能正确进行字符串赋初值的语句是( )A. cha

27、r str5= good!; B. char str=good!;C. char *str=good!; D. char str5=g,o,o,d,!;39.以下程序的输出结果是( )void main() char str=ABCD,*p=str; coutint(*(p+4)endl;A. 68B. DC. 0D. 040.以下程序的输出结果是( )void main() char str=aeiou,*p=str; cout*(p+4)n; int aSIZE; int an; 64.在C+语言中,引用数组元素时,其数组下标的数据类型允许是( )。 A. 整型常量B. 整型表达式C. 整

28、型常量或整型表达式D. 任何类型的表达式65.以下对一维数组m进行正确初始化的是( )。 A. int m10=(0,0,0,0) ; B. int m10= ;C. int m =0; D. int m10=10*2;66.若有定义:int bb 8;。则以下表达式中不能代表数组元bb1的地址的是( )。 A. &bb0+1 B. &bb1 C. &bb0+ D. bb+167.假定int类型变量占用两个字节,其有定义:int x10=0,2,4;,则数组x在内存中所占字节数是( )。 A. 3 B. 6 C. 10 D. 2068.执行下面的程序段后,变量k中的值为( )。 int k=3

29、, s2; s0=k; k=s1*10;A. 不定值 B. 33 C. 30 D. 1069.以下程序的输出结果是( ) void main() int i, a10;for(i=9;i=0;i-) ai=10-i;couta2a5a82!1 D. a2071.若有定义:int b34=0;则下述正确的是( ) 。 A. 此定义语句不正确B. 没有元素可得初值0C. 数组b中各元素均为0D. 数组b中各元素可得初值但值不一定为072.若有以下数组定义,其中不正确的是( ) 。 A. int a23;B int b3=0,1,2,3;C. int c100100=0;D. int d3=1,2,

30、1,2,3,1,2,3,4;73.若有以下的定义:int t54;能正确引用t数组的表达式是( )。A. t24 B. t50 C. t00 D. t0,074.在定义int m 3=1,2,3,4,5,6;后,m10的值是( )。 A. 4 B. 1 C. 2 D. 575.在定义int n56后第10个元素是( )。 A. n25 B. n24 C. n13 D. n1476.下述对C语言字符数组的描述中错误的是( )。 A. 字符数组可以存放字符串B. 字符数组中的字符串可以整体输入、输出C. 可以在赋值语句中通过赋值运算符=对字符数组整体赋值 (strcpy()D. 字符数组可以像普通

31、数组那样初始化77.下述对C+语言字符数组的描述中正确的是 ( )。A. 任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间B. 一维数组的元素在引用时其下标大小没有限制C. 任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间D. 一维数组的第一个元素是其下标为1的元素78.不能把字符串:Hello!赋给数组b的语句是( )。 A. char str10= H, e, l, l, o, ! ;B. char str10;str=Hello!;C. char str10;strcpy(str,Hello!);D. char s

32、tr10=Hello!;79.合法的数组定义是( )。A. int a=string; B. int a5=0,1,2,3,4,5;C. int s=string; D. char a=0,1,2,3,4,5;80.以下程序运行后,输出结果是( )。 main() char arr24; strcpy(arr0,you); strcpy(arr1,me); arr03=&; coutarr0endl; A. you&me B. you C. me D. err99.若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是( )。A p=q; B *p=*q; C a=*q;

33、 D q=a;100.若定义:int a=511, *b=&a;,则cout*b;的输出结果为:( ) A 无确定值 B a的地址 C 512 D 511101.已有定义int a=2, *p1=&a, *p2=&a; 下面不能正确执行的赋值语句是( )。A a=*p1+*p2; B p1=a; C p1=p2; D a=*p1*(*p2);102.变量的指针,其含义是指该变量的( )。A 值 B 地址 C 名 D 一个标志103.若已定义int a=5; 下面对(1)、(2)两个语句的正确解释是( )。(1) int *p=&a; (2) *p=a;A 语句(1)和(2)中的*p含义相同,都

34、表示给指针变量p赋值。B (1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p。C (1)在对p进行说明的同时进行初始化,使p指向a;(2)变量a的值赋给指针变量p。D (1)在对p进行说明的同时进行初始化,使p指向a; (2)将变量a的值赋予*p。104.若有语句int *p, a=10; p=&a; 下面均代表地址的一组选项是( )。A a, p, *&a B &*a, &a, *pC *&p, *p, &a D &a, &*p, p105.若需要建立如图所示的存储结构,且已有说明double *p, x=0.2345; 则正确的赋值语句是( )。0.2345px A p=x;

35、 B p=&x; C *p=x; D *p=&x;106.有如下语句:int m=6, n=9, *p, *q; p=&m; q=&n; 如图1所示,若要实现下图所示的存储结构,可选用的赋值语句是( )。mpnqpmqn A *p=*q; B p=*q; C p=q; D *p=q;107.下面判断正确的是( )。A char *s=girl; 等价于 char *s; *s=girl;B char s10=girl; 等价于 char s10; s10=girl;C char *s=girl; 等价于 char *s; s=girl;D char s4= boy, t4= boy; 等价于c

36、har s4=t4= boy108.以下不能正确进行字符串赋初值的语句是( )。A. char str5= good!; B char *str=good!;C. char str=good!; D char str5=g, o,o, d;109.下面程序段的运行结果是( )。char *s=abcde; s+=2; cout s;A cde B 字符c C 字符c的地址 D 无确定的输出结果110.设有如下的程序段:char s=girl, *t; t=s;则下列叙述正确的是( )。A s和t完全相同B 数组s中的内容和指针变量t中的内容相等C s数组和t指针指向的字符串没有关系D *t与s

37、0相等111.若有说明语句:char s=it is a example, *t=it is a example.;则以下不正确的叙述( )。A s表示的是第一个字符i的地址,s+1表示的是第二个字符t的地址B t指向另外的字符串时,字符串的长度不受限制C t变量中存放的地址值可以改变D s中只能存放16个字符112.若已定义char s10;则在下面表达式中不表示s1地址的是( )。A s+1 B s+ C &s0+1 D &s1113.下面程序段的运行结果是( )。(注:代表空格) main() char s6;s=abcd;cout s; A abcd B abcd C abcd D 编

38、译出错113.下列程序的输出结果是( )。main() int a=1,2,3,4,5,6,7,8,9,0, *p; p=a; cout*p+9endl;A 0 B 1 C 10 D 9114.有以下程序:#include#includeint main()char *p=abcde0fghjik0;coutstrlen(p)endl;return 0;程序运行后的输出结果是( )。 A 12 B 15 C 6 D 5115.有以下程序:int main()int a10=9,8,7,6,5,4,3,2,1,0, *p=a+5;cout*-pendl;return 0;输出结果是( )。A 非

39、法 B a4的地址 C 5 D 3116.有以下函数:char *fun(char *s) return s; 该函数的返回值是( )。A 无确定值 B 形参s中存放的地址值C 一个临时存储单元的地址 D 形参s自身的地址值(二)填空题:1. 设有定义语句:int a3=0,1,2;则数组元素a12的值为 0 。2.在C+语言中,有如下语句:int a=10,20,30,40,50,60,*p; p=a+3; cout*p+endl;则输出结果是 40 。3.以下程序运行后的输出结果是 15 。int a23=1,2,3,4,5,6; int m,*p; p=&a00; m=(*p)*(*(p+2)*(*(p+4); coutmendl;6.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!