C深刻复知识题_第1页
C深刻复知识题_第2页
C深刻复知识题_第3页
C深刻复知识题_第4页
C深刻复知识题_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、eof (运算符)列定义变量的语句错误的是 (A. i ntnt;B. double int_;C. char For;D. float US?;在 C+ 语言中 ,非法的字符常量是 ( )A.tB. 017 29.以下程序的输出结果是()void main()int k=11;coutdeck=k“,”coutoctk=k“,”couthexk=kendl;A. k=11,k=12,k=11C. k=11,k=013,k=0xb41.不属于 C+ 语言关键字的是( )。A intB break42.是 C+ 语言提供的合法关键字的是(A FloatBsignedC. nD. xaaB. k=

3、11,k=13,k=13D. k=11,k=13,k=bCwhileD character)。C integerDChar43.下列说法中,错误的是( )。A 每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B. 每个函数都有一个函数头和一个函数体,主函数也不例外C. 主函数只能调用用户函数或系统函数,用户函数可以相互调用D 程序是由若干个函数组成的,但是必须有、而且只能有一个主函数(二) 填空题1一个C源程序至少有并且只能有一个_main 函数。2. 以下程序运行后的输出结果是_1012a。#in clude#i ncludeint mai n()int a=10;c

4、outdecaoctahexae ndl;return 0;3. 以下程序运行后的输出结果是(25 2137) ovoid mai n() int a,b,c;a=25;b=025;c=0x25;couta b ce ndl;4. 以下程序运行后的输出结果是_2 1ovoid main() int a=1,b=2;a=a+b;b=a-b;a=a-b;couta b;循环结构_.obj_ ,5. 结构化设计中的三种基本结构是 _顺序结构 、_选择结构 、6. C+ 语言源程序文件的后缀是 _.cpp ,经过编译后生成文件的后缀是经过链接后生成文件的后缀是 _.exe 。7. 一个函数由两部分组成

5、,它们是 _函数首部 、 _函数体 。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. 4B. 3C. 2D. 115.列运算符中优先级最高的运算符是 ( )A. =B. =C. %D. &16.以下程序的输出结果是( )main() int a=3,b=4;cout(a=b)0; D. k=i=j;19.表达式 3.6-5/2+1.2+

6、5%2 的值是 ( )A. 4.3B. 4.8C. 3.3 D. 3.8设有语句 :int a=3; 则执行了语句 a+=a-=a*a; 变量 a 的值是 ( )A. 3B. 0C. 9D. -1221.设有语句 :int x=10; 则执行了语句 x+=x-=x-x; 变量 x 的值是 ( )A. 10 B. 20 C. 40D. 3022.以下程序的输出结果是 ( )void main()int i=10,j=1;couti- “,” +jendl;A. 9,2B. 10,223.以下程序的输出结果是 ( )void main()int x=100,y=200;cout(x,y)endl;

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

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

9、符 算术运算符 赋值运算符C. 赋值运算符 逻辑与运算符 关系运算符 算术运算符D 算术运算符 关系运算符 赋值运算符 =z & y z| !y) 的值是( )。A. a= s= a ) & (s= a ) & (s= z )D . ( a =s)“真” ,x的值为偶数时,表达式的值为“假”。B. !(x%2=0)D . x%2B .语法错D .“假”C. 2D .不确定值void mai n() int a=1,b=2,c=3,d=4,w;w=(ab)?a:b;w=(wc)?w:c;w=(wd)?w:d;coutwe ndl;2007C. 3D . 4A. 1B. 2(二) 填空题:1. 以

10、下程序运行后的输出结果是main ()int x=2006,y=2007;cout(x,y);2. 以下程序运行后的输出结果是void mai n() char ch=B:ch+=2;coutche ndl;983.以下程序运行后的输出结果是 main () int c;char ch=97;c=ch+1;coutce ndl;123.463. 以下程序运行后的输出结果是_#in cludeintmai n()float x=123.4567f;cout(i nt)(x*100+0.5)/100.0e ndl;return 0;5.14以下程序运行后的输出结果是 #in cludevoid m

11、ai n()int a=10;a=(3*5,a+4);coutae ndl;6.-10 -10 -7以下程序运行后的输出结果是_#in cludevoid mai n()int a=0,b=0,c=0;c=(a+=a_=5),(a=b,b+3);couta b ce ndl; 7.以下程序运行后的输出结果是_#in cludevoid mai n()int a=5,b=4,c=3,x;x=abc;coutxe ndl;8.以下程序运行后的输出结果是 3 0。#in cludevoid mai n()int a=3,b=2;b=a3;couta be ndl;9. 以下程序运行后的输出结果是 1

12、。#in cludevoid mai n()int x,a=1,b=2,c=3,d=4;x=(ab)?a:b;x=(xc)?x:c;coutxe ndl;10. 设 int x=9 , 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 mai n() int i;for(i=0;i3;i+)switch(i)case O:couti;case 1:couti;

13、default:couti;程序执行后的输出结果是()A. 000112B. 012C.012020D. 1207.以下程序运行后的输出结果是4 5 99 #in clude void mai n() 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;elsecoutx-endl;A. 4 B. 5 C. 6 D. 7 31.有以下程序 :void main()int n=4;while(n-)cout-n;程序执行后的输出结果是 ( )A. 20 B. 3132.

14、有以下程序void main()int y=10;while(y-) ;coutyendl;程序执行后的输出结果是 ( )A. y=0C. y=1C. 321 D. 210B. y=-1D. while 构成无限循环系。为了避免嵌套的 if-else 语句的二义性,C+ 语言规定 else 总是与()组成配对关44.A 缩排位置相同的ifB. 在其之前未配对的 ifC. 在其之前未配对的最近的ifD .同一行上的if47.选择出合法的 if 语句(设 int x ,a,b ,c;)( )。A if(a=b) c+;B if(a=b) c+;C if(ab) c+;D if(a=b) c+;52

15、.已知 int a=1,b=2,c=3;以下语句执行后 a,b,c 的值是( )。if(ab)c=a;a=b;b=c;A. a=1, b=2, c=3B. a=2, b=3, c=3C. a=2, b=3, c=1D . a=2, 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,

16、x;if (ab)if (cd) x=1;elseif (ac)if (bd) x=2;else x=3;else x=4;else x=5;coutxgrade;switch (grade)case A:cout85-100n;case 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

17、B:cout60-84n;break;case C:cout60n;default:coutgrade;switch (grade)case A:cout85-100n;break;case B:cout60-84n;break;default:coutgrade is error!n;break;case C:cout60n;58.当执行以下程序段时,程序将( )。void main()int x=-1;dox=x*x;while (!x);A.循环体将执行一次B.循环体将执行两次C循环体将执行无数多次D. 系统将提示有语法错误for (i=5 ;i; i-)for (j=0 ;j4 ; j

18、+)A.20 B.24 C.25 D.3060.有以下语句: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.标有 /*/ 的语句的执行次数是( )。 int y,i;for(i=0;i20;i+)if(i%2=0)continue;y+=i;/*/A.20B.19C.10D.9二)填空题

19、:2. #include 0void main()int i,t=0;for(i=5;i=0;i-)t*=i;couttendl;3.写成下列程序的输出结果:#includevoid main()int i=1;while(i=15)if(+i%3!=2) continue;else couti ;coutendl; 2 5 8 11 14输入c,输出结果是pass。#in cludevoid mai n()char n;cinn;switch( n) case a:case A:coutvery goodn;break;case b:case B:coutgoodn;break;case c

20、:case C:case d:case D:coutpassn;break;case e:case E:coutwarni ngn;break;default:couterr orn;5. 以下程序的功能是计算:1-2+3-4+99-100void mai n() int i=1,j=1,s=0;while( _i=100 ) s+= _i*j_J=-j ; coutse ndl;6. 若从键盘输入58,则输出结果是_585858。#in cludevoid mai n()int a;cin a;if (a50) cout40) cout30) couta;7. 下面程序根据以下函数关系,对输

21、入的每个x值,计算出y值。请在【】内填空。Xy2x=10x(x+2)-1x=21/xx x;if (【1 】(x2)&(x-1)&(x=2) y=1/x;else if (x=-1) y=x-1;else 【3 】y=-1;if (y!= -1) coutye ndl;else cout ” error ” endl ;8. 以下程序是对用户输入的字母进行大小写转换。请在【】内填入正确内容。void mai n()char ch;cout ch;if (【1 】(ch= A ) & (ch= a& ch= z)【2 】ch=ch-32;cout ” the con verted letter

22、ische ndl;9. 以下程序运行后的输出结果是20 0_voidmai n()int x=10, y=20, t=0;if (x=y) t=x; x=y; y=t; coutx y;z的值分别为1 , 0 , 010. 执行以下语句后,x、y和int x,y,z;x=y=z=0;+x | +y & +z;11. 程序运行结果是 135#in cludevoid mai n()int i;for(i=1;i+1;i+)if(i4)couti+;break;couti+;(三)编程题1. 百钱百鸡:100元钱买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只, 求100元钱能买公鸡

23、、母鸡、小鸡各多少只?2. 输出九九乘法表。四、数组与指针部分试题:(一)单选题3.以下数组定义中错误的是()A. int x3=0;B. i nt x23=1,2,3,4,5,6;C. i nt x3=1,2,3,4,5,6;D. i nt x23=1,2,3,4,5,6;4.以下能正确定义二维数组的是()C. i nt a3=;A. int a3;B. i nt a3=2*3;D. i nt a23=1,2,3,4;设有 char array=China;则数组 array 所占的空间字节数为 ( )A. 4B. 5C. 6D. 76.对于以下定义正确的叙述为 ( )char x=abcd

24、efg;char y=a,b,c,d,e,f,g;B. 数组 x 和数组 y 的长度相同D. 数组 x 的长度大于数组 y 的长度A. 数组 x 和数组 y 等价C. 数组 x 的长度大于数组 y 的长度33.以下叙述中正确的是 ( )A. 可以在一个函数中调用另一个函数B. 可以在一个函数中定义另一个函数C. main ()函数必须放在其它函数之前D. 所有被调用函数一定要在调用之前进行定义34.以下说法中正确的是 ( )A. C+ 语言程序总是从第一个函数开始执行B. 在 C+ 语言程序中 ,要调用的函数必须在 main() 函数中定义C. C+ 语言程序总是从 main() 函数开始执行

25、D. C+ 语言程序中的 main() 函数必须放在程序的开始部分 35.以下程序的输出结果是 ( )void main( )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

26、+*q)endl;A. 16 B. 10 C. 8D. 638.以下不能正确进行字符串赋初值的语句是 ( )A. char str5= good!C. char *str=good!;39.以下程序的输出结果是 (void main() char str=ABCD,*p=str;coutint(*(p+4)endl;B. char str=good!;D. char str5=g,o,o,d,!;)D. 0A. 68B. DC. 040.以下程序的输出结果是 ( )void main() char str=aeiou,*p=str;cout*(p+4)n; int aSIZE;int an;6

27、4.在 C+ 语言中,引用数组元素时,其数组下标的数据类型允许是 ( ) 。A. 整型常量B. 整型表达式C. 整型常量或整型表达式D. 任何类型的表达式65.以下对一维数组 m 进行正确初始化的是 ()。B. int m10= ;A. int m10=(0,0,0,0) ;C. int m =0;D. int m10=10*2;66.若有定义: int bb 8 ;。则以下表达式中不能代表数组元 bb1A. &bb0+1 B. &bb1C. &bb0+67.假定 int 类型变量占用两个字节,其有定义: int x10=0,2,4;字节数是 ()。A. 3B. 6 C. 10的地址的是 ()

28、 。D. bb+1,则数组 x 在内存中所占D. 2068.执行下面的程序段后 ,变量 k 中的值为 () 。int k=3, s2;s0=k; k=s1*10;D. 10A. 不定值 B. 33 C. 3069.以下程序的输出结果是 ( )void main()int i, a10;for(i=9;i=0;i-)ai=10-i;couta2a5a82!1D. a2071.若有定义: int b34=0 ;则下述正确的是 () 。A. 此定义语句不正确B. 没有元素可得初值 0C. 数组 b 中各元素均为 0D. 数组 b 中各元素可得初值但值不一定为 072.若有以下数组定义,其中不正确的是

29、 () 。A. inta23;B int b3=0,1,2,3;C. intc100100=0;D. intd3=1,2,1,2,3,1,2,3,4;73.若有以下的定义: int t54; 能正确引用 t 数组的表达式是 ()。A. t24B. t50C. t00D. t0,074.在定义 int m 3=1 ,2,3,4,5, 6;后, m10 的值是 ()。在定义 int n56 后第 10 个元素是 ( )。A. n25 B. n24 C. n13 D. n1476.下述对 C 语言字符数组的描述中错误的是 ()。A. 字符数组可以存放字符串B. 字符数组中的字符串可以整体输入、输出C

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

31、str10;str=Hello!;C. char str10;strcpy(str,Hello!);D. char str10=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&meB. youC. me D. err99.若有说明: int a=2,

32、 *p=&a, *q=p;,则以下非法的赋值语句是( )。A p=q;B *p=*q;C a=*q;D q=a;100.若定义: int a=511, *b=&a ;,则 cout 0.2345A. p=x;C.*p=x;106.有如下语句:int m=6, n=9, *p, *q; p=&m; q=&n;B.p=&x;D .*p=&x;如图1所示,若要实现下图所示的存qn储结构,可选用的赋值语句是()。A.*p=*q;B.p=*q;C.p=q;D.*p=q;107.F面判断正确的是()。A.char *s=girl;等价于char *s; *s=girl;B.char s10=girl;等价

33、于char s10;s10=girlC.char *s=girl;等价于char *s; s=girl;D.char s4= boy, t4= boy;等价于char 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. cdeB.字符c C.字符c的地址 D .无确定的输出结果110.设有如下的程序段: char s=girl,

34、 *t;t=s; 则下列叙述正确的是( )。A. s和t完全相同B 数组 s 中的内容和指针变量 t 中的内容相等C s 数组和 t 指针指向的字符串没有关系D *t 与 s0 相等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 个字符若已定义 char s10; 则在下面表达式中不表示 s1 地址的是()。A s+1B s+

35、C &s0+1D &s1113.面程序段的运行结果是()。(注:-代表空格)main() char s6;s=abcd;cout s;A abcdC abcdD 编译出错113.列程序的输出结果是( )。main()int a=1,2,3,4,5,6,7,8,9,0, *p;p=a;eout*p+9endl;D9A 0B 1C 10114.有以下程序 :#inelude#ineludechar *p=abcdeOfghjikO;coutstrle n( p)e ndl;return 0;程序运行后的输出结果是()。A.12B.15C.6D.5115.有以下程序:intmai n()int a1

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

37、5int a23=1,2,3,4,5,6;int m,*p;p=&a00;m=(*p)*(*(p+2)*(*(p+4);coutme ndl;6.以下程序运行后的输出结果是ab#in cludevoid mai n()char s=abcdef:s3=0:coutse ndl;7.以下程序运行后的输出结果是D#in cludevoid mai n()char s=ABCD,*p=s;cout*(p+3)e ndl;8.以下程序运行后的输出结果是4char str=stop0n;coutstrle n( str)e ndl;#in clude#in cludevoid mai n()char s

38、tr=Beiji ng;coutstrle n( strcpy(str,Ch in a)e ndl; 7.以下程序运行后的输出结果是5 4#in clude#in cludevoid mai n()char a=1,2,3,4,0;coutsizeof(a) strle n( a)e ndl;8.输入20个整数到一维数组,统计正整数的个数及其和void mai n() int a20,i,sum,co unt;sum=co unt=0 ;for(i=0;i ai;for(i=0;i0) coun t+;sum+=ai; coutco un tsume ndl;9. 输入10个整数到一维数组,输出其中最大数和最小数void mai n() int a10,i,max,mi n;fo

温馨提示

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

评论

0/150

提交评论