您好,欢迎访问三七文档
1C++试题库一、选择题√1、求“abc\\12\n”字符串的长度(C)(A)5(B)6(C)7(D)8√2、字符串常量”\tMyNane\103”的长度是:(B)(A)6(B)8(C)12(D)14√3、设x=7,执行语句y=++x,则y等于(D)(A)6(B)7(C)9(D)8√4、下列字符列中,合法的长整型常量是:(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、若有定义“intx”,则下面不能将x的值强制转换成双精度数的表达式(D)(A)(double)x(B)double(x)(C)(double)(x)(D)x(double)8、设有变量定义inti,j;与表达式i==0&&j==0等价的表达式是:(D)B(A)i||j(B)!i&&!j(C)!i==!j(D)i==j9、下述叙述正确的是(C)。(A)字符型变量不能赋予整数(B)任意整数都能表示字符(C)字符型变量可存放多个字符(D)字符数据的值是整数值√10、设变量inta=5;下列哪个表达式计算后,使得变量b的值等于2?(A)(A)b=a/2(B)b=6-(a--)(C)b=a%2(D)b=a3?3:2√11、if…else中为避免嵌套出现二义性,C++规定else子句总与(B)(A)其之前最近的if语句(B)其之前最近且尚未配对的if语句(C)缩排位置相同的if语句(D)其之后最近的if语句12、逻辑运算符两侧运算对象的数据(D)(A)只能是逻辑型数据(B)只能是整型数据2(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,1√14、已知intx=1,y=0;执行下面程序段后,y的值为(C)。if(x){if(x0)y=1;}elsey=-1;(A)-1(B)0(C)1(D)不确定√15、已知intx=1,y=0,w;执行下面程序段后,w的值为(A)。if(x)if(y)w=x&&y;elsew=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--;等价于(A)。C(A)if(ab)a--;(B)do{a--}while(ab);(C)for(ab)a--;(D)for(;ab;a--);18、已知inti=0,x=0;下面while语句执行时循环次数为(C)。while(x||i){x++;i++;}D(A)3(B)2(C)1(D)0√19、执行语句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…while允许从外部转到循环体内,while不允许(D)while的循环体不能复合语句√21、若有以下程序段:for(m=1;m=100;m++){ciny;if(y0)continue;coutm;}3则下面正确的说法是(D)(A)当y0时整个循环结束(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)chara(10)(B)inta[](C)intk=5,a[k](D)chara[]={‘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、charx[5]={‘a’,’b’,’\0’,’c’,’\0’}输出的结果是(B)(A)’a’’b’(B)ab(C)abc(D)abc√26、设有下面和程序段chara[3],b[]=Chinaa=b;couta;则(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(s1s2)√28、下面关于C++字符数组的叙述中,错误的是(C)。(A)字符数组可以放字符串(B)字符数组的字符可以整体输入、输出(C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值(D)可以用关系运算符对字符数组比较大小√29、以下对一维数组a的正确定义是(D)(A)chara(10);(B)inta[];(C)intk=5,a[k];(D)chara[]={‘a’,’b’,’c’};√30、若二维数组y有m列,则位于y[i][j]之前的元素个数有(B)个(A)j*m+i(B)i*m+j(C)i*m+j-1(D)i*m+j+1√31、非数组、指针或引用型变量做实参时,它和对应虚参之间的数据传递方式是(C)4(A)地址传递(B)单向值传递(C)双向值传递(D)由用户指定传递方式√32、若有数组名作为函数调用的实参,则传递给虚参的是(A)(A)数组的首地址(B)数组第1个元素的值(C)数组中全部元素的值(D)数组元素的个数√33、以下正确的函数原型声明语句是(C)(A)intfun(inta,b);(B)floatfun(inta;intb);(C)doublefun();(D)intfun(chara[][]);√34、已有定义“inta=5,&ra=a;”则下叙述中,错误的说法是(C)。(A)ra是变量a的引用(B)ra的值为5(C)ra是a的地址值(D)执行“ra=10;”后变量a的值也变为10√35、若有定义“intc[5],*p=c;”,则以下对数组c元素地址的正确引用是(D)(A)p+5(B)c++(C)&c+1(D)&c[0]√36、设intx=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、有函数原型voidf(int*);下面选项中,正确的调用是()。(A)char*s=ABCD;f(s);(B)inta=15;f(a);(C)intm=100;f(&m);(D)doublepi=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)intfun(intx,inty=10);(B)intfun(intx=5,inty=10);(C)intfun(intx=5,inty);(D)intfun(intx,inty=a+b);41、设有定义:structdata{inti;charch;doubleq;doublef5}b;结构体变量b占用内存的字节数是(C)D(A)18(B)19(C)20(D)21√42、关于结构体概念的叙述中,正确的说法是(C)。(A)相同类型数据的集合称为结构(B)不同类型数据的集合称为结构体(C)数据的集合称为结构体(D)整数的集合称为结构体√43、设有说明语句structabc{intm;floatn;}stype;则下面错误的叙述是(B)(A)struct是定义结构体类型的关键字(B)stype是结构体类型名(C)m和n都是结构体成员(D)stype是结构体变量名√43、对枚举类型ee的定义中,正确的这定义是(A)。(A)enumee{A,B,C,D};(B)enumee{‘A’,’B’,’C’,’D’};(C)enumee={A,B,C,D};(D)enumee={‘A’,’B’,’C’,’D’};√44、关于同类型结构体与同类型联合体赋值的叙述中,正确的说法是(A)(A)联合体变量之间可以直接赋值,结构体变量之间也可以直接赋值(B)联合体变量之间可以直接赋值,结构体变量之间不可以直接赋值(C)联合体变量之间不可以直接赋值,结构体变量之间可以直接赋值(D)联合体变量之间不可以直接赋值,结构体变量之间也不可以直接赋值√45、一个结构体变量所占用的内存字节数是(D)(A)结构体中第一个成员所需的内存字节数(B)结构体中最后一个成员所需的内存字节数(C)结构体中占用内存最大的成员所需的字节数(D)结构体中各成员所需的内存字节数和√46、当定义一个联合体变量时系统分配给它的内存字节数是(C)(A)联合体中第一个成员所需的内存字节数(B)联合体中最后一个成员所需的内存字节数(C)联合体中占用内存最大的成员所需的字节数6(D)联合体中各成员所需的内存字节数和47、下面叙述中错误的是(C)。(A)预处理命令都必须以“#”开始(B)在程序中凡是以“#”开始的语句行都是预处理命令行(C)C++程序在程序执行过程中对预处理命令进行处理(D)一行只能写一条预处理命令48、下面表达式组中不等价的一组是(C)(A)a&=b与a=&a(B)a|=b与a=a|b(C)a!=b与a=a!b(D)a^=b与a=a^b49、设x=001101012,则下面能使x的高4位取反,低4位不变,则下面能实现此功能的是(C)(A)x=x&0x0f(B)x=x|0x0f(C)x=x^0360(D)x=x^03350、设x=001101102,则若想通过x&y运算使x中的低4位不变,高4位清零,则下面能实现此功能的是(B)(A)x=x|0x0f(B)x=x&0x0f(C)x=x|0xf0(D)x=x&0xf051、设a和b是两个结构体变量,下面正确的表达式是(A)(A)a=b(B)a=b+1(C)ab(D)a==b52、关于结构体变量运算重载中,正确的单目运算符重载语法格式(B)(A)函数类型名单目运算符operator(虚参){函数体}(B)函数类型名operator单目运算符(虚参){函数体}(C)函数类型名单目运算符operator(){函数体}(D)函数类型名operator单目运算符(){函数体}53、后缀—运算符的重载函数语法格式如下:函数类型operator--(虚参,int){函数体}则下面关于第2个虚参的叙述中,正确的说法是(C)(A)第2个参数必须给出参数名称(B)第2个参数不能给出参数名称(C)第2个参数必须是int型参数,其参数名可有可无(D)第2个参数也可以是long型参数54、设分数的结构体定义如下:structFraction{intnume;intdeno;7};则下面关于取自身的单目运算符“+”的运算符重载函数中,最合适是(A)。(A)Fractionoperator+(Frac
本文标题:C++试题库2
链接地址:https://www.777doc.com/doc-1840784 .html