C++常见选择填空习题集.docx
《C++常见选择填空习题集.docx》由会员分享,可在线阅读,更多相关《C++常见选择填空习题集.docx(180页珍藏版)》请在冰豆网上搜索。
C++常见选择填空习题集
第一章概述
一、选择题
1。
关于C++与C语言的关系描述中,错误的是()
A.C语言与C++是兼容的B。
C语言是C++的一个子集
C.C++和C语言都是面向对象的D。
C++对C语言进行了一些改进
2.不可以作为C++用户标识符的是()
A。
PrintfB。
_123C.WhileD.case
3.由C++目标文件连接而成的可执行文件的缺省扩展名为()
A.cppB。
objC。
libD.exe
4.关于C和C++的描述中,正确的是()
A.C是面向过程,C++是纯面向对象B.C++是C的超集
C。
C++是对C的错误的修改D。
C++和C没有关系
5。
C++对C作了很多改进,从面向过程成为面向对象的主要原因是()
A。
增加了一些新的运算符B.允许函数重载,并允许设置参数默认值
C.规定函数必须用原型D.引进了类和对象的概念
6。
将高级语言编写的源程序翻译成目标程序的是()
A。
解释程序B。
编译程序C.汇编程序D.调试程序
7。
C++语言是从早期的C语言逐渐发展演变而来的,与C语言相比,它在求解问题方法上进行的
最大改进是()
A.面向过程B。
面向对象C。
安全性D.复用性
8.C++语言支持过程程序设计方法和()设计方法。
A。
面向对象B.面向函数C.面向用户D。
面向问题
9。
关于C++和C的关系中,使C发生了质的变化,即从面向过程变成为面向对象的是()
A。
增加了新的运算符B。
允许函数重载,并允许缺省参数
C。
规定函数有原型D.引进了类和对象的概念
10。
C++语言最有意义的方面是支持()
A。
面向事件B.面向程序C。
面向对象D.面向用户
11.下列说法中,正确的是()
A.C++程序总是从第一个定义的函数开始执行
B.C++程序总是从主函数开始执行
C。
C++函数必须有返回值,否则不能调用此函数
D。
C++程序中有调用关系的所有函数必须放在同一个源程序文件中
12。
下列描述中,正确的是()
A.程序就是软件B。
软件开发不受计算机系统的限制
C.软件既是逻辑实体,又是物理实体D.软件就是程序、数据与相关文档的集合
13.为了使模块尽可能独立,要求()
A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B。
模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D。
模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
14.下列说法中正确的是()
A。
数据流图详细描述了系统中对象数据是如何计算的
B.数据流图详细描述了操作和约束的含义
C。
数据流图中不能有过程
D。
数据流图定义了对象的操作
15。
在C++语言中,自定义的标识符()
A。
能使用关键字并且不区分大小写B.不能使用关键字并且不区分大小写
C。
能使用关键字并且区分大小写D.不能使用关键字并且区分大小写
16.不能用于组成C++程序标识符的是()
A.连接符B。
下划线C。
大小写字母D.数字字符
17。
下列标识符中都是合法的是()
A._key,example,a_bB。
5ap,test1,_3a
C。
bcp,@mail,_c_dD.INL,_paper,union
18。
下列符号中,不可作为分隔符的是()
A。
逗号B。
分号C。
问号D.英文句号
19.下列变量名中,合法的是()
A.CHINAB。
byte—sizeC.doubleD。
A+a
20。
在C++语言中,自定义的标识符()
A。
能使用关键字并且不区分大小写B.不能使用关键字并且不区分大小写
C。
能使用关键字并且区分大小写D.不能使用关键字并且区分大小写
21.C++程序的基本单位是()
A。
字符B.程序行C。
语句D.函数
22.注释的目的主要是用来提高()
A.可读性B.可移植性C。
运行效率D.编码效率
23.程序中的注释部分()
A。
参加编译,并会出现在目标程序中B.参加编译,但不会出现在目标程序中
C。
不参加编译,但会出现在目标程序中D。
不参加编译,也不会出现在目标程序中
24.在一个C++程序中()
A。
main函数必须出现在所有函数之前B。
main函数可以在任何地方出现
C。
main函数必须出现在所有函数之后D.main函数必须出现在固定位置
25。
C++语言可执行程序的开始执行点是()
A.程序中第一条可执行语言B。
程序中第一个函数
C。
程序中的main函数D。
包含文件中的函数
26.以下关于C++语言的叙述中,错误的是()
A。
大写字母和小写字符的意义相同
B.有些不同类型的变量可以在一个表达式中运算
C.在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D。
同一个运算符号在不同的场合可以有不同的含义
二、填空题
1。
判断一种计算机语言是否为面向对象程序设计语言的三个基本特征是封装性、继承性和多态性.
2。
在面向对象语言中可扩充性是关键。
3.在C++语言中,“/*…*/”主要用于多行行注释,“//”用于单行注释。
4。
C++程序的实现经过编辑、编译和运行步骤。
5。
在一个好的程序中,注释可提高程序的程序的可读性。
6。
C++源程序文件的默认扩展名为。
cpp.
7.C++程序在编译中会出现的两类错误分别是致命错误和警告错误.
8.C++编译器进行编译的过程可详细地分为三个子过程,它们分别是预处理过程、编译过程和连接过程。
第二章数据类型与表达式
一、选择题
1.常量3。
14的数据类型是()
A.doubleB.floatC.voidD.字符串
2。
设有定义:
charch;,以下赋值语句正确的是()
A.ch=’123';B.ch='\xff';C.ch=’\08’;D.ch=’\\';
3。
英文大写字母B的ASCII码为42H,英文小写字母b的ASCII码为()
A.43HB。
62HC。
74HD.84H
4。
unsigned不能修饰的类型是()
A.intB。
charC。
floatD。
longint
5。
下列字符常量表示中,错误的是()
A。
.\105.B..*。
C..\4f.D。
。
\a。
6。
signed不能修饰的类型是()
A.intB。
charC.doubleD.longint
7.下列字符串常量表示中,错误的是()
A."\”Yes\”or\"No\"”B。
"\.OK!
\。
”
C.”abcd\n"D。
”AB\C"
8.下列十六进制的整型常量表示中,错误的是()
A。
0xafB.0X1bC。
2fxD.0xAE
9。
下列double型常量表示中,错误的是()
A.E15B。
.25C。
3E5D.3E05
10.设有定义charch;,正确的赋值语句是()
A。
ch=.123。
;B.ch=。
\xff。
;C。
ch=.\08。
D.ch=.\\.
11在C++语言中,080是()
A.八进制数B.十进制数C.十六进制数D。
非法数
12。
关于字符’\0'的下列描述中不正确的是()
A。
常用来作为字符串的结束标志B.在计算机中存储时占一个字节的内存
C.是空格字符的转义表示形式D.作为逻辑值使用时等价于逻辑“假”
13。
在32位机器环境下,若有inta[10];,则表达式sizeof(a)/sizeof(int)的值是()
A.10B.4C。
40D。
2
14.在C++语言中,char型数据在内存中的存储形式是()
A。
ASCII码B.补码C。
反码D。
原码
15.字符串”\\\”ABC\”\\"的长度是()
A。
11B。
7C。
8D。
6
16。
设:
inta=2,b=2;,则a+++b的结果是()
A。
2B.3C。
4D.5
17。
若有定义:
intx=2;,则表达式x〈<2的结果为()
A.2B。
4C。
8D。
16
18。
已知:
inta=5,b=6;,则下列表达式中,有二义性的是()
A.a+b>>3B.++a+b++C.b+(a=3)D.(a=3)-a++
19。
下列运算符中优先级最高的是()
A。
=B。
&&C.〉=D。
+
20.下列运算符中优先级最低的是()
A.%B.%=C.&D.〉〉
21。
表达式(—17)%5的值()表达式(-17)%(-5)的值。
A。
大于B.等于C。
小于D。
不确定
22.下列运算符中,结合性从左向右的是()
A。
—〉B.>>C.!
=D.~
23.若inta=2,b=3;,则表达式a+++b++的值为()
A.11B。
9C.7D。
5
24。
设有定义inta;floatf;doublei;,表达式10+。
a.+i*f的结果类型是()
A。
intB.floatC。
doubleD.不确定
25。
sizeof(double)是一个()
A.整型表达式B.双精度表达式C。
函数调用D。
不合法
26。
下列关于类型转换的描述中错误的是()
A。
在不同类型操作数组成的表达式中,表达式类型一定是最高类型double型
B.逗号表达式的类型是最后一个子表达式的类型
C.赋值表达式的类型是左值的类型
D.在由低向高的类型转换中是保值映射
27。
下列说法中正确的是()
A.隐含类型转换可能会损失数据精度B。
显式类型转换可能会损失数据精度
C.隐含类型转换一定会损失数据精度D.显式类型转换一定会损失数据精度
28.在隐含类型转换中,long、int、double三种类型之间的转换顺序为()
A.long—〉int—>doubleB。
long—〉double—>int
C.int-〉double->longD。
int->long->double
29。
下列说法正确的是()
A。
隐含类型转换可以从高类型转换为低类型
B.显式类型转换不可以从低类型转换为高类型
C.隐含类型转换可以在任何类型之间转换
D。
显式类型转换可以在任何类型之间转换
30.设intn=10,i=4;,则表达式n%=i+1运算后n的值是()
A。
0B.3C。
2D.1
31.下列运算符中,可以作用于浮点数的是()
A。
++B。
%C.>>D。
&
32.下列各运算符中,不可以作用于浮点数的是()
A./B。
&&C。
||D。
~
33.下列运算符中,可以作用于浮点数的是()
A。
++B.%C.>>D。
^
34.下列运算符中,结合性从左到右的是()
A。
?
:
B.*=C。
==D。
++
35.若有下面的定义,则表达式:
a
a:
c〈d?
c:
d的结果为()
inta=1,b=2,c=3,d=4;
A.1B。
2C。
3D。
4
36.设x为int型变量,则执行下列语句后,x的值为()
x=10;
x+=x—=x-x;
A.10B。
20C.30D。
40
37。
若有下面的定义,则对语句c=a+b;的下列说法中正确的是()
inta=12;
floatb=1。
2f,c;
A.变量a转换为float类型
B.变量b转换为int类型,运算结果再转换为float类型
C。
变量a和b都转换为一中间类型,运算结果再转换为float类型
D。
以上都不对
38.执行下列语句后,a的值是()
inta=8;
a+=a-=a*a;
A.-240B。
64C。
112D.—112
39.能正确表示“大于10且小于20的数”的C++表达式是()
A.10〈x〈20B。
x〉10||x<20C.x>10&x<20D.!
(x〈=10||x>=20)
40。
表示关系x≤y≤Z的C++语言表达式为()
A。
(x<=y)&&(y〈=Z)B。
(x〈=y)AND(y〈=Z)
C.(x<=y〈=Z)D。
(x<=y)&(y<=Z)
41。
设x,y,z均为int型变量,则执行以下语句后,t的值为()
x=y=z=1;
t=++x||++y&&++z;
A.0B。
1C。
2D.不定值
42。
若有如下语句:
inta,b,c;
a=b=c=5;
则执行语句:
b+=++a&&++c>b;
后a、b、c的值分别为()
A.6,7,6B.6,6,6C.6,6,5D。
6,1,6
43。
在C++中,const修饰符主要用于代替C语言中的()关键字进行常量定义。
A.#includeB。
staticC.#defineD.#ifdef
二、填空题
1.在32位计算机中,若有double*p;,则p占用4字节的内存空间。
2.在C++中,用同一个数据类型定义多个变量时需要用逗号分隔。
3.变量的三要素分别是(变量的)类型、(变量的)名字(或变量名)、(变量的)值。
4.表达式(—9)%4的值为-1,表达式9%(—4)的值为1,表达式(—9)%(-4)的值为-1
5。
在C++中,’\0'被用来作为字符串的结束符.
6.空字符串的长度为1。
7。
在C++中,变量必须遵循先定义后使用的原则。
8.在16位计算机中,int数据类型占用2个字节。
9.数据类型转换分为自动类型转换(隐含类型转换)和强制类型转换(显式类型转换)两种。
10.在32位机器中,若有:
inta[10];则表达式sizeof(a)/sizeof(int)的值为10。
11。
在32位机器中,若有:
inta[10];则表达式sizeof(a)的值为40。
12。
变量的类型既规定了占用内存字节数(大小),也规定了合法操作。
13.没有初始化的变量其存储的值要么是默认值,要么是
机器(计算机)决定。
15。
条件表达式的类型由:
号前后两个子表达式的高类型决定.
16.赋值表达式的类型由赋值运算符的左值的类型决定。
17。
逻辑运算符&&和||的特点是在计算时存在短路现象.
18。
若有定义:
inta(4),b
(2);
则表达式a&&b||a++||(a—b*2)运算完成后a的值为4。
19。
设int型变量x的值为10,则表达式x〉10?
x+100:
x-100的值是-90。
三、写程序运行结果
1.#include
usingnamespacestd;
intmain()
{
floatx;
inti;
x=12.6;
i=(int)x;
cout<<"x=”〈〈x〈〈endl;
cout<<"i="〈
}
x=12。
6
y=12
2.#include
usingnamespacestd;
intmain()
{
inti;
charc1;
i='A’;
c1=’A’;
cout<
cout<〈c1〈〈’\n’;
return0;
}
65
A
3。
#include〈iostream>
usingnamespacestd;
intmain()
{
cout〈〈"abc\"abc"〈cout<〈”abc\\abc”〈}
abc\"abc
abc\\abc
4。
#include〈iostream>
usingnamespacestd;
intmain()
{
inti=1;
cout〈〈"i="<<++i<cout〈〈"i=”〈
}
i=2
i=2
5。
#includevoidmain()
{
inta;
a=7*2+-3%5—4/3;
doubleb;
b=510+3.2-5。
4/0。
03;
cout<intm(3),n(4);
a=m++--—n;
cout〈〈a<〈”\t”〈〈m〈<”t”〈}
10333.2
04t3
6.#includeh〉
voidmain()
{
intx,y,z;
x=y=z=1;
-—x&&++y&&++z;
cout〈〈x〈〈'\t’<〈y<<’\t’<++x&&++y&&++z;
cout<〈x〈<'\t’〈++x&&y-—||++z;
cout〈〈x〈〈’\t'〈〈y〈〈'\t'〈〈z<〈’\n’;
}
011
122
212
7。
#includeh>
voidmain()
{
charx(’m’),y(’n');
intn;
n=x〈y;
cout〈〈n<n=x==y-1;
cout〈〈n<〈endl;
n=(’y'!
='Y')+(5>3)+(y-x==1);
cout〈〈n<}
1
1
3
四、改错题
1。
下面程序要求输出x和y的值,x的值为10,y的值为11。
#include
usingnamespacestd;
voidmain(){
constintx;
inty=10;
y=x++;
cout〈〈x,y;
}
第三章语句
一、选择题
1。
关于switch语句的描述中,正确的是()
A。
switch语句中default子句可以没有,也可有一个
B。
switch语句中每个case语句序列中必须有break语句
C.switch语句中default子句只能放在最后
D.switch语句中case子句后面的表达式只能是整型表达式
2.下列关于goto语句的描述中正确的是()
A。
goto语句可以在一个文件中随意转向
B.goto语句后面要跟上一个它所转向的语句
C。
goto语句可以同时转向多条语句
D.goto语句可以从一个循环体内转到循环体外
3.与以下程序段等价的是()
while(a){if(b)continue;c;}
A。
while(a){if(!
b)c;}B.while(c){if(!
b)break;c;}
C。
while(c){if(b)c;}D。
while(a){if(b)break;c;}
4。
在设计C++程序时,应采用的原则之一是()
A。
不限制goto语句的使用B.减少或取消注释行
C。
程序越短越好D。
程序结构应有助于读者理解
5。
for(intm=n=0;!
n&&m〈=10;m++);语句的循环次数为()
A.10B.11C。
12D.无限
6.下面的do语句的循环体执行次数为()
inta=10;
do{a-—;}while(a!
=0);
A。
10B.9C.11D.12
7。
下列for循环的循环体执行次数为(假设循环体中没有引用i和j)()
for(inti=0,j=10;i=j=10;i++,j-—)循环体;
A。
0B。
1C.10D。
无限
8。
下列关于if语句的描述中错误的是()
A.if语句中只有一个else子句B.if语句中可以有多个elseif子句
C。
if语句中if体内不能是开关语句D.if语句的if体中可以是循环语句
9.下面的程序()
#include〈iostream.h〉
voidmain()
{
inta=5,b=4,c=3;
if(a=b+c)cout〈<”***”<〈endl;
elsecout〈〈"$$$”〈}
A.有语法错误,不能通过编译B。
可以通过编译但不能通过连接
C.输出***D。
输出$$$
10.为了避免嵌套的if-else语句的二义性,C++规定else总是与()组成配对关系。
A.缩排位置相同的ifB。
在其之前未配对的if
C。
在其之前未配对的最近的ifD.同一行上的if
11执行下列程序,输入为1时的输出结果是()
#includevoidmain()
{
intk;
cin〉>k;
switch(k)
{
case1:
cout〈〈k++〈<””;
case2:
cout〈case3:
cout〈case4:
cout<〈k++〈<””;break;
default:
cout〈<”Full!
”〈〈"”;
}
cout<〈endl;
}
A。
1B.2C。
2345D.1234
12。
下列while循环的循环次数为()
while(inti=0)i-—;
A.0B.1C。
5D。
无限
13。
下列do-while循环的循环次数为()
已知:
inti=5;
do{cout<