admin 管理员组文章数量: 887021
2023年12月16日发(作者:汽车power键什么意思)
一、单项选择题(每题2分,共60分)
1.下列关于C++与C语言关系描述中错误的是【 】。
(A) C++是C语言的超集
(B) C++对C语言进行了扩充
(C) C++和C语言都是面向对象的程序设计语言
(D) C++包含C语言全部的语法特征
2. C++对C语言做了很多改进,下列描述中【 】使得C语言发生了质变,即从面向过程变成面向对象。
(A) 增加了一些新的运算符
(B) 允许函数重载,并允许设置默认参数
(C) 规定函数说明必须用原型
(D) 引进类与对象的概念
3.下列关于面向对象概念的描述中,【 】是错误的。
(A) 面向对象方法比面向过程方法更先进
(B) 面向对象方法中使用了一些面向过程中没有的概念
(C) 面向对象方法完全替代了结构化程序设计方法
(D) 面向对象程序方法具有封装性、继承性和多态性
4.对于语句cout< (A) cout是一个输出流对象 (B) endl的作用是输出回车换行 (C) x是一个变量 (D) <<称为提取运算符 5.下列【 】是C++合法的标识符。 (A) _256 (B) computer~1 (C) case (D) 5char 6.下列【 】是C++合法的字符型常量。 (A) 97 (B)”a” (C) ‘t’ (D) a 7.以下自定义变量名中,【 】是合法的。 (A) CHINA (B) byte-size (C) double (D) A+a 8.下列【 】是C++合法的标识符。 (A) 2op (B) -256 (C) case (D) Dfe 9.下列【 】是C++合法的标识符。 (A) foo-bar (B) _256 (C) new (D) 2b 10.下列整型常量的书写中,错误的是【 】。 (A)0xaf (B) 0853 (C) 34 (D) OX1B 11.下列【 】属于float类型常量。 (A) 3.14f (B) 0.0314E2 (C) 3.14L (D) 3.14 12.常量的书写格式决定了常量的类型和值,0x1011是【 】。 (A) 8进制整型常量 (B) 字符常量 (C) 16进制整型常量 (D) 2进制整型常量 13.下列运算符中优先级最高的是【 】。 (A) ?: (B) % (C) -= (D) && 14.下列C++运算符中,优先级最高的是【 】。 (A) + (B) * (C) <= (D) *= 15.在C++语言中,要求操作数必须是整型的运算符是【 】。 (A) / (B) ++ (C) % (D) != 16.下列运算符中,优先级最低的是【 】。 (A)== (B)?: (C)| (D)&& 16.如有int a=11;则表达式(a++*1/4)的值是【 】。 (A) 0 (B) 2.75 (C) 3 (D) 2 17.若x,i都是int型变量,则执行如下表达式x=(i=1,i+5,i++)后,x的值为【 】。 (A) 2 (B) 1 (C) 6 (D) 7 18.若x、i、j、k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为【 】。 (A) 4 (B) 16 (C) 32 (D) 52 19. 若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a (A) 1 (B) 2 (C) 3 (D) 4 20.设x,y和z都是int型变量,且x=3,y=6,z=4,则下面表达式中值为0的是【 】。 (A) !((x 21.下列关于变量数据类型转换的描述中,错误的是【 】。 (A) 如果a为int型变量,b为char型变量,则a+b的值为int型 (B) 如果a为float型变量,b为int型变量,则a-b的值为float型 (C) 如果a为double型变量,b为float型变量,则a*b的值为double型 (D) 如果a为int型变量,b为int型变量,则a/(double)b的值为int型 22.若有如下语句: int a; cout<<((a=3*5,a*4),a+5)< 则执行后的输出为【 】。 (A) 20 (B) 15 (C) 65 (D) 60 23.下列条件语句中,功能与其它语句不同的是【 】。 (A) if(a) cout< (B) if(a==0) cout< (C) if(a!=0) cout< (D) if(a==0) cout< 24.下列条件语句中的描述中,【 】是正确的。 (A) if语句中至少有一个else子句 (B) if语句中可以有多个else子句 (C) if语句中的if体中可以是循环语句 (D) if语句中if体内不能是switch语句 25.下列关于switch语句描述中,【 】是正确的。 (A) switch语句中default子句只能放在最后 (B) switch语句中每个语句序列中必须有break语句 (C) switch语句中case子句后面的表达式只能是整型表达式 (D) switch语句中default子句可以没有,也可以有一个 26.下列关于开关语句的描述中,错误的是【 】。 (A) 开关语句中,case子句的个数是不受限制的 (B) 开关语句中,case子句的语句序列中一定要有break语句 (C) 开关语句中,default子句可以省略 (D) 开关语句中,右花括号具有退出开关语句的功能 27.下列for循环的循环体执行次数为【 】。 for(int i=0,j=10;i=j=4;i++,j--) (A) 0 (B) 1 (C) 4 (D) 无限 28. 执行语句:for(i=1;i++<4;)后;变量i的值是【 】。 (A)3 (B)4 (C)5 (D)不定 29.下列for循环语句执行的次数是【 】。 for(int i=0,x=0;!x&&i<=5;i++) (A) 5 (B) 无限 (C) 1 (D) 6 30.下列for循环语句执行的次数是【 】。 for(int i=2;i==0;) (A) 0 (B) 无限 (C) 1 (D) 2 31.执行下列语句段后,输出的字符“*”的个数是【 】。 for(int i=50;i>1;--i) cout<<’*’; (A) 48 (B) 49 (C) 50 (D) 51 32.下列while循环语句的循环次数是【 】。 while(int i=0) i--; (A) 0 (B) 1 (C) 2 (D) 无限 33.下列do...while循环的次数是【 】。 int x=-1; do {x=x*x;} while(!x); (A) 无限 (B)1 (C) 2 (D)0 34.下列关于break语句描述中,【 】是错误的。 (A) break语句可用于if语句体内,它将退出if语句 (B) break语句可用于循环体内,它将退出该重循环 (C) break语句可用于switch语句中,它将退出switch语句 (D) break语句在一个循环体内可以出现多次 35.以下叙述中正确的是【 】 (A)break语句只能用于switch语句题中 (B) continue语句的作用是使程序的执行流程跳出包含它的所有循环 (C) break 语句只能用在循环体内和switch语句体内 (D)在循环体内使用break语句和continue语句的作用相同 36.已知枚举类型声明语句为: enum COLOR{WHITE,YELLOW,GREEN=5,RED,BLACK=10}; 则下列说法错误的是【 】。 (A) 枚举常量WHITE的值为1 (B) 枚举常量RED的值为6 (C) 枚举常量BLACK的值为10 37.若有以下说明语句: struct { int a; double b; }stu; 则下面的叙述错误的是【 】。 (A) struct是定义结构体类型的关键字 (B) stu是用户自定义的结构体变量 (D) 枚举常量YELLOW的值为1 (D) a和b都是结构体成员名 (D) struct stu是用户自定义的结构体类型 38.在32位PC机上使用C++语言,若有如下定义: struct data { int i; double f; char ch ; }b ; 则结构变量b占用内存的字节数为【 】。 (A) 1 (B) 2 (C)8 (D) 13 39.下列关于数组概念的描述中,错误的是【 】。 (A) 数组中所有元素类型是相同的 (B) 数组定义后,它的元素个数是可以改变的 (C) 数组在定义时可以被初始化,也可以不被初始化 (D) 数组元素的个数与定义时的每维大小有关 40.下列关于数组下标的描述中,错误的是【 】。 (A)C++语言中数组元素的下标是从0开始的 (B) 数组元素下标是一个整常型表达式 (C) 数组元素可以用下标来表示 (D) 数组元素的某维下标值应小于该维的大小值 41.下列合法的数组初始化语句是【 】。 (A) int a[5] = {0,1,2,3,4,5}; (B) char a[] = "string"; (C) int a[] = "string" (D) char a[] = {0,1,2,3,4,5}; b[][3]={{1},{3,2},{4,5,6},{0}};则b[1][2]的值为【 】。 (A) 0 (B) 6 (C) 2 (D)3 43.下列给字符数组进行初始化中,【 】是正确的。 (A) char s3[][3]={‘a’,’x’,’y’}; (B) char s2[3]="xyz"; (C) char s1[ ]="12345abcd"; (D) char s4[2[3]={"xyz","mnp"}; 44.在下列对字符数组进行初始化中,【 】是错误的。 (A) char s1[]=”abcd”; (B) char s2[3]=”xyz”; (C) char *p=”hello”; (D) char s3[2][4]={“xyz”, “mnp”}; 45.下面选项中等价的是【 】。 (A)int a[2][3]={1,0,2,2,4,5}与int a[2][]= {1,0,2,2,4,5}; ( B)int a[][3]= {1,0,2,2,4,5}与int a[2][3]= {1,0,2,2,4,5}; (C)int a[2][3]={3,4,5}与int a[][3]={3,4,5}; (D)int a[2][3]={0,1}与int a[2][3]={{0},{1}}; 46下列关于字符数组的描述中,错误的是【 】。 (A) 字符数组中的每一个元素都是字符 (B) 字符数组可以使用初始值表进行初始化 (C) 字符数组可以存放字符串 (D) 字符数组就是字符串 47.下面程序的运行结果是【 】。 char c[5] = {'a','b','0','c','0'}; cout< (A) 'a''b' (B) ab (C) ab c (D) 以上三个答案均有错误 48.语句int *p=&k;定义了指针p,与这个语句等效的语句序列是【 】。 (A)int *p; p=&k; (C) int *p; *p=&k; 49.若有以下语句: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; 则b的值为【 】。 (A) 5 (B) 6 (C) 8 (D) 9 50. 若有以下定义和语句,且0 int a[ ]={1,2,3,4,5,6,7,8,9,0},*p,i; p=a; (A) &(a+1) (B) a++ (C) &p[i] (D) *P 51.已知:char s[ ]="abcd";输出显示字符'c'的表达式是【 】。 (A) s (C) s[2] (B) s+2 (D) s[3] (B) int *p; p=k; (D) int *p; *p=k; 52.设int x[]={1,2,3,4,5,6};*p=x;则值为3的表达式是【 】。 (A) p+=2,*++p (B) p+=2,*p++ (C) p+=3,*p (D) p+=2,++*p 53.设int a[]={1,2,3,4,5,6};*p=a;则值为5的表达式是【 】。 (A) *p+5 (B) *(p+4) (C)*p+=9 (D)p+5 54.已知:int m=10;下列表示引用的方法中,【 】是正确的。 (A) int &x=m; (B) int &y=10; (C) int &z; (D) float &t=&m; 55.已知:int a(5),&ra=a;下列描述中,错误的是【 】。 (A) ra是变量a的引用,即为变量的别名 (B) ra的值为5 (C) 改变ra的值为10,变量a值仍为5 (D) ra的地址值为&a 56.关于函数的调用下面不正确的是【 】。 (A)由于程序总是从主函数开始,所以函数的调用总是在主函数和其他函数之间进行。 (B)函数的调用可以在任意函数之间进行,只要有需要。 (C)一个函数可以自己调用自己。 (D)函数返回时可以不带返回值,这时函数在定义时其返回值的类型用void表示。 57.以下关于return语句的描述错误的是【 】。 (A) 函数可以不使用return语句。 (B) 函数中可以出现多个return语句。 (C) 函数中如果有返回值,就一定要有return语句。 (D) 一个return语句可以返回多个值。 58.在C++中,关于函数返回值的类型是由【 】。 (A) return语句中的表达式类型所决定的 (B) 在定义该函数时所指定的数据类型所决定的 (C) 调用该函数的主调函数类型所决定的 (D) 调用该函数时系统临时决定的 59. 若用数组名作为函数调用时的实参,则实际上传递给形参的是【 】。 ( A) 数组首地址 ( B) 数组的第一个元素值 ( C) 数组中全部元素的值 ( D) 数组元素的个数 60.对数组名作函数的参数,下面描述正确的是【 】。 (A)数组名作函数的参数,调用时将实参数组复制给形参数组 (B)数组名作函数的参数,主调函数和被调函数共用一段存储单元 (C)数组名作参数时,形参定义的数组长度不能省略 (D)数组名作参数,不能改变主调函数中的数据 61.一个函数功能不太复杂,但要求被频繁调用,应选用【 】。 (A) 内联函数 (B) 重载函数 (C)递归函数 (D) 嵌套函数 62.采用函数重载的目的在于【 】。 (A) 实现共享 (B)减少空间 (C) 使用方便,提高可靠性 (D) 提高速度 63.重载函数在调用时选择的依据中,【 】是错误的。 (A) 参数个数 (B) 参数的类型 (C) 参数的顺序 (D) 函数的类型 64.在C++中,关于下列设置参数默认值的描述正确的是【 】。 (A) 不允许设置参数的默认值 (B) 设置参数默认值只能在定义函数时设置 (C) 设置参数默认值时,应该是先设置右边的再设置左边的 (D) 设置参数默认值时,应全部参数都设置 65.下列设置函数参数默认值的说明语句中,错误的是【 】。 (A) int fun(int x , int y=10); (C) int fun(int x=5, int y); (B) int fun(int x=5, int =10); (D) int fun(int x , int y=a+b); 66. 已知函数f的原型是:void f(int *x,long &y); 则以下对函数f正确的调用语句是(其中a和b是实参)【 】。 (A) f(a,b); (B) f(&a,b); (C) f(a,&b); (D) f(&a,&b); 67.若有下面的函数调用: fun(a+b,3,max(n-1,b));则fun中的实参个数为【 】个。 (A) 3 (B) 4 (C)5 (D) 6 68.若要定义一个只允许在本源文件中所有函数中使用的全局变量,则该变量需要使用的存储类别是【 】。 (A) extern (B) register (C)static (D) auto 69.下列存储类标识符中,【 】的可见性与存在性不一致。 (A) 内部静态类 (B) 自动类 (C) 外部类 (D)寄存器类 70.下列存储标识符中,【 】不属于局部变量。 (A) 函数形参 (B) 自动类 (C) 外部静态类 (D) 寄存器类 71.在C++语言中,数据封装要解决的问题是【 】 (A) 数据的规范性 (B) 便于数据转换 (C) 防止不同模块之间数据的非法访问 (D)避免数据丢失 72.下列关于类的定义格式的描述中,错误的是【 】。 (A) 类中成员有3种访问权限 (B) 类的定义可分说明部分和实现部分 (C) 类中成员函数都是公有的,数据成员都是私有的 (D) 定义类的关键字通常用class 73.有关类和对象说法不正确的是【 】 (A) 对象是类的一个实例 (B) 类与对象的关系和数据类型与变量的关系相似 (C) 任何一个对象只能属于一个具体的类 (D) 一个类只能有一个对象 74.作用域运算符的功能是【 】。 (A) 标识作用域的级别的 (B) 指出作用域的范围的 (C) 给定作用域的大小的 (D) 标识某个成员是属于哪个类的 75.下列描述中【 】不是构造函数的特征。 (A) 构造函数的函数名与类名相同 (B)构造函数可以重载 (C) 函数可以设置默认参数 (D) 函数必须指定类型说明 76.【 】是析构函数的特征。 (A) 一个类中只能定义一个析构函数 (B) 析构函数与类名不同; (C) 析构函数的定义只能在类体内 (D) 析构函数可以有一个或多个参数 77.下列描述中【 】是析构函数的特征。 (A) 析构函数可以有一个或多个参数 (B) 析构函数定义只能在体内 (C) 析构函数与类名不同 (D) 一个类中只能定义一个析构函数 78.下列关于析构函数的描述中,错误的是【 】。 (A) 析构函数的函数体都为空 (B) 析构函数是用来释放对象的 (C) 析构函数是系统自动调用的 (D) 析构函数是不能重载的 79.下面的各种函数中,哪个不是类的成员函数【 】。 (A) 构造函数 (B) 友元函数 (C) 析构函数 (D) 复制构造函数 80.关于成员函数特征的下列述描述中,【 】是错误的。 (A) 成员函数一定是内联函数 (B) 成员函数可以重载 (C) 成员函数可以设置参数的默认值 (D) 成员函数可以是静态的
版权声明:本文标题:C++选择题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1702715148h427842.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论