《C试题库有答案的》由会员分享,可在线阅读,更多相关《C试题库有答案的(40页珍藏版)》请在金锄头文库上搜索。
1、C+ 试题库一、选择题1、求“ abc12n ”字符串的长度(C)(A) 5(B) 6(C) 7(D) 82、字符串常量” tMyNane103 ”的长度是: (B )(A) 6(B) 8(C) 12(D) 143、设 x=7, 执行语句 y=+x,则 y 等于( D)(A) 6(B) 7(C) 9(D) 84、下列字符列中,合法的长整型常量是:( D)(A) 4.18e3(B) 0.46793(C) 4L(D) 9567385、在 C+中, char 类型数据在内存的存储形式是:( D)(A)原码(B)反码(C)补码(D) ASCII 码6、以下运算符中,优先级最高的是:( B)(A) *=
2、(B) (C) &(D) =7、若有定义“ int x ”,则下面不能将x 的值强制转换成双精度数的表达式(D )(A )(double) x(B)double ( x) ( C)( double)( x) ( D ) x( double )8、设有变量定义int i, j;与表达式 i=0 & j=0等价的表达式是:( b )(A)i|j(B) !i&!j(C) !i=!j(D) i=j9、下述叙述正确的是()。(A) 字符型变量不能赋予整数(B)任意整数都能表示字符(C) 字符型变量可存放多个字符(D)字符数据的值是整数值10、设变量 int a = 5;下列哪个表达式计算后,使得变量b
3、的值等于 2?(A)(A) b=a/2(B) b=6-(a-)(C) b=a%2(D) b=a3?3:211、 if else 中为避免嵌套出现二义性,C+规定 else子句总与( B)(A)其之前最近的 if语句(B)其之前最近且尚未配对的if语句(C)缩排位置相同的if语句(D)其之后最近的if语句12、逻辑运算符两侧运算对象的数据(D)(A)只能是逻辑型数据( B)只能是整型数据(C)只能是整型或字符型数据( D)可以是任何类型的数据13、设变量x,y, a,b,c,d 的值为 1,计算表达式 (x=a!=b)&(y=c!=d)后,变量x,y 的值分别是:( B)(A)0 ,0(B)0
4、,1(C)1 ,0(D)1 ,114、已知 int x=1,y=0;执行下面程序段后,y 的值为(c)。if(x) if (x0) y=1; else y = -1 ;(A)-1(B)0(C) 1(D) 不确定15、已知 int x=1,y=0, w ;执行下面程序段后,w 的值为(A)。if(x) if(y) w=x&y; else w=y;(A)0(B)-1(C)1(D) 不确定16、语句 while(w) 中的表达式w 的等价表示是: ( c)(A) w=0(B) w=1(C) w!=0(D) w!=117、语句 while(ab) a-;等价于( D)。(A)if(ab)a-;(B)d
5、oa-while(ab);(C)for(ab)a-;(D) for(;ab; a-);18、已知 int i=0 , x=0; 下面 while 语句执行时循环次数为(D)。while(x |i ) x+;i+;(A) 3(B) 2(C) 1(D) 019、执行语句x=1; while(+x7)cout * ;后输出结果是:( a )(A) *(B) *(C) *(D) *20、 C+中循环语句while和 do while的主要区别是(A)(A) do while的循环体至少无条件执行一次(B) while的循环控制条件和do while的循环控制条件的控制条件的控制方式是相反的(C) do
6、 while允许从外部转到循环体内,while不允许(D) while的循环体不能复合语句21、若有以下程序段:for(m=1;my;if(y0)continue;coutm;则下面正确的说法是(D)(A )当 y=0 时什么也不输出(C) cout 语句永远也不执行( D)最多输出100 个非负整数22、语句“ while(!x ) ”等价于(A)(A ) while(x=0 ) (B)while(x!=1 ) (C)while(x!=0 ) (D)while(x=1 ) 23、一维数组a 正确定义是(D)。( A )char a(10)(B) int a(C)int k=5,ak(D)ch
7、ar a=a,b,c24、下面不能够判断字符串S 是空串的是(D)(A)if (S0=0)(B) if(strlen(S)=0)(C)if(strcmp(S,” )=0)( D)if(S=0 )25、 char x5=a,b,0,c,0 输出的结果是(B)( A )ab(B) ab(C) abc(D)abc26、设有下面和程序段(A)char a3,b=Chinaa=b;cout0)( B) if(strcmp(s1,s2)(C) if(strcmp(s2,s1)0)( D) if(s1s2)28、下面关于C+字符数组的叙述中,错误的是(D)。(A)字符数组可以放字符串(B)字符数组的字符可以
8、整体输入、输出(C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值(D)可以用关系运算符对字符数组比较大小29、以下对一维数组a 的正确定义是(D )(A)char a(10);( B)inta;(C)intk=5,ak;(D)char a= a, b , c ;30、若二维数组y 有 m列,则位于yij之前 的元素个数有(C)个(A) j*m+i(B)i*m+j(C)i*m+j-1(D)i*m+j+131、非数组、指针或引用型变量做实参时,它和对应虚参之间的数据传递方式是(B)(A)地址传递(B)单向值传递(C)双向值传递(D)由用户指定传递方式32、若有数组名作为函数调用的实参,则
9、传递给虚参的是(A)(A)数组的首地址(B)数组第 1 个元素的值(C)数组中全部元素的值(D)数组元素的个数33、以下正确的函数原型声明语句是(C )(A) int fun(int a,b);( B) float fun(int a;int b);(C) double fun( );( D) int fun(char a);34、已有定义“ int a=5,&ra=a; ”则下叙述中,错误的说法是(C )。(A) ra是变量a 的引用( B) ra的值为5(C) ra是 a 的地址值( D)执行“ra=10 ;”后变量a 的值也变为1035、若有定义“int c5,*p=c;”,则以下对数组
10、c 元素地址的正确引用是(D)(A) p+5(B)c+(C)&c+1(D)&c036、设 int x = 1, y = 3 ,能正确表示代数式3x|x-y|的 C+表达式是(A)。(A)abs(x-y)*3*x(B)3x(abs(x-y)(C)3x|(x-y)(D)3*x*(x-y)| 3*x*(y-x)37、有函数原型void f( int * );下面选项中,正确的调用是( C )。(A) char *s= ABCD ; f(s);(B) int a=15; f(a);(C) int m=100; f(&m);(D) double pi=3.14; f(pi);38、下面关于new 和 delete运算的叙述中,错误的说法是(C)。(A)由 new分配的内存空间是连续的(B)如果当前内存无足够的空间可分配,则new运算符返回NULL(C)由 new运算符分配的内存空间,当函数执行结束时系统会自动收回