《C+试题库有答案的》由会员分享,可在线阅读,更多相关《C+试题库有答案的(35页珍藏版)》请在金锄头文库上搜索。
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) 5、在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的值等于2
3、 ?( A )(A) b=a/2 (B) b=6-(a-)(C) b=a%2 (D) b=a3?3:211、ifelse中为避免嵌套出现二义性,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,1(C) 1
4、,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)doa-
5、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)dowhile的循环体至少无条件执行一次(B)while的循环控制条件和dowhile的循环控制条件的控制条件的控制方式是相反的(C)do w
6、hile允许从外部转到循环体内,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)char a=a
7、,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) ab c (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)int a; (C)int k=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;”,则以下对数组c元素地址的正确引用是
10、( 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和delet
11、e运算的叙述中,错误的说法是( C )。(A)由new分配的内存空间是连续的(B)如果当前内存无足够的空间可分配,则new运算符返回NULL(C)由new运算符分配的内存空间,当函数执行结束时系统会自动收回(D)对于程序中的静态数组占用的存储空间不能使用delete来释放39、下面判断是否构成重载函数的条件中,错误的判断条件是( D )(A)参数类型不同 (B)参数个数不同 (C)参数顺序不同 (D)函数返回值不同40、假设a,b是全局变量,下面设置函数参数默认值的函数原型中,错误的是( C )(A)int fun(int x,int y=10); (B) int fun(int x=5,in
12、t y=10);(C) int fun(int x,int y); (D)int fun(int x,int y=a+b);41、设有定义: struct data int i; char ch; double q; double fb;结构体变量b占用内存的字节数是( D )(A)18 (B)19 (C)20 (D)2142、关于结构体概念的叙述中,正确的说法是( C )。(A)相同类型数据的集合称为结构 (B)不同类型数据的集合称为结构体(C)数据的集合称为结构体 (D)整数的集合称为结构体43、设有说明语句struct abcint m;float n; stype;则下面错误的叙述是( B )(A) struct 是定义结构体类型的关键字(B) stype是结构体类型名(C) m和n都是结构体成员(D) stype是结构体变量名43、对枚举类型ee的定义中,正确的这定义是( A )。(A)enum eeA,B,C,D; (B) en