当前位置:文档之家› C试题库有答案的

C试题库有答案的

C++试题库一、选择题1、求“abc\\12\n”字符串的长度( C )(A) 5 (B) 6 (C) 7 (D) 82、字符串常量”\tMyNane\103”的长度是:( 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) *= (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 ?( A )(A) b=a/2 (B) b=6-(a--) (C) b=a%2 (D) b=a>3?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,1 (C) 1,0 (D) 1,114、已知 int x=1, y=0; 执行下面程序段后,y的值为( c )。

if(x) { if (x>0) 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(a>b) a--; 等价于( D )。

(A)if(a>b)a--; (B)do{a--}while(a>b);(C)for(a>b)a--; (D) for(;a>b; 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(++x<7)cout<<’*’; 后输出结果是:( a )(A) ***** (B) ****** (C) ******* (D) ********20、C++中循环语句while和do …while的主要区别是( A )(A)do…while的循环体至少无条件执行一次(B)while的循环控制条件和do…while的循环控制条件的控制条件的控制方式是相反的(C)do …while允许从外部转到循环体内,while不允许(D)while的循环体不能复合语句21、若有以下程序段:for(m=1;m<=100;m++){cin>>y;if(y<0)continue;cout<<m;}则下面正确的说法是(D )(A)当y<0时整个循环结束(B)当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,a[k] (D)char a[]={‘a’,’b,’c’’}24、下面不能够判断字符串S是空串的是( D )(A) if (S[0]==0) (B) if(strlen(S)==0)(C) if(strcmp(S,””)==0) (D)if(S==’\0’)25、char x[5]={‘a’,’b’,’\0’,’c’,’\0’} 输出的结果是( B )(A)’a’’b’(B)ab(C) ab c (D)abc26、设有下面和程序段 (A)char a[3],b[]="China"a=b;cout<<a;则()(A)编译出错(B)运行后将输出Ch (C) 运行后将输出Chi (D)运行后将输出Chian 27、判断字符串s1是否大于字符s2是空串的是( A )(A)if(strcmp(s1,s2)>0)(B)if(strcmp(s1,s2))(C)if(strcmp(s2,s1)>0) (D)if(s1>s2)28、下面关于C++字符数组的叙述中,错误的是( D )。

(A)字符数组可以放字符串(B)字符数组的字符可以整体输入、输出(C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值(D)可以用关系运算符对字符数组比较大小29、以下对一维数组a的正确定义是( D )(A)char a(10); (B)int a[]; (C)int k=5,a[k]; (D)char a[]={‘a’,’b’,’c’};30、若二维数组y有m列,则位于y[i][j]之前的元素个数有(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、若有数组名作为函数调用的实参,则传递给虚参的是( 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的值也变为10 35、若有定义“int c[5],*p=c;”,则以下对数组c元素地址的正确引用是( D )(A)p+5 (B)c++ (C)&c+1 (D)&c[0]36、设 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运算符分配的内存空间,当函数执行结束时系统会自动收回(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,int 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 f}b;结构体变量b占用内存的字节数是( D )(A)18 (B)19 (C)20 (D)2142、关于结构体概念的叙述中,正确的说法是( C )。

(A)相同类型数据的集合称为结构(B)不同类型数据的集合称为结构体(C)数据的集合称为结构体(D)整数的集合称为结构体43、设有说明语句struct abc{int m;float n;} stype;则下面错误的叙述是( B )(A)struct 是定义结构体类型的关键字(B)stype是结构体类型名(C)m和n都是结构体成员(D)stype是结构体变量名43、对枚举类型ee的定义中,正确的这定义是( A )。

(A)enum ee{A,B,C,D}; (B) enum ee{‘A’,’B’,’C’,’D’};(C) enum ee={A,B,C,D}; (D) enum ee={‘A’,’B’,’C’,’D’};44、关于同类型结构体与同类型联合体赋值的叙述中,正确的说法是( A )(A)联合体变量之间可以直接赋值,结构体变量之间也可以直接赋值(B)联合体变量之间可以直接赋值,结构体变量之间不可以直接赋值(C)联合体变量之间不可以直接赋值,结构体变量之间可以直接赋值(D)联合体变量之间不可以直接赋值,结构体变量之间也不可以直接赋值45、一个结构体变量所占用的内存字节数是( D )(A)结构体中第一个成员所需的内存字节数(B)结构体中最后一个成员所需的内存字节数(C)结构体中占用内存最大的成员所需的字节数(D)结构体中各成员所需的内存字节数和46、当定义一个联合体变量时系统分配给它的内存字节数是( C )(A)联合体中第一个成员所需的内存字节数(B)联合体中最后一个成员所需的内存字节数(C)联合体中占用内存最大的成员所需的字节数(D)联合体中各成员所需的内存字节数和47、下面叙述中错误的是( C )。

相关主题