C++基础习题Word格式文档下载.docx
《C++基础习题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++基础习题Word格式文档下载.docx(71页珍藏版)》请在冰点文库上搜索。
elsemax=b;
max=a>
ba:
b;
16.字符串“Hello”的长度是_________个字节,存储时占有_________个字节的空间。
56
17.如果x的值为34,y的值为-7,则执行
intx=34,y=-7;
if(x>
0)cout<
'
A'
;
if(y<
-8)cout<
B'
屏幕上显示的是_________。
A
18.执行intx=5,y;
y=++x-3;
后,x的值是_________,y的值是_________。
63
19.C++的基本数据类型可分为5大类:
______________、______________、______________、______________、______________。
分别用关键字______________,______________,______________,______________,___________ 定义。
逻辑型(或布尔型)、字符型、整型、实型、空值型。
bool,char,int,float/double,void
20.十进制数值、八进制数值、十六进制数值的前缀分别为______________,______________,______________。
1~9,0,0x(或0X)
21.一个整数值的数据类型为______,一个带小数点的数据类型为______。
intdouble
22.C++预定义的常用转义序列中,在输出流中用于换行、空格的转义序列分别为______________。
\n,\t
23.布尔型数值只有两个;
______________, ______________。
在C++的算术运算式中,分别当作1,0。
truefalse
24.字符由______________’’括起来,字符串由______________“”括起来。
字符只能有1个字符字符串可以有多个字符。
空串的表示方法为______________。
单引号双引号“\0”(或“ ”)
25.标识符以______________开头。
英文字母,下划线
26.定义变量的同时赋初值的方法有______________、______________。
定义常变量初值的方法有______________、______________。
赋值运算符=括号赋值运算符=,括号
27.&
&
与||表达式按______________的顺序进行计算,以&
连接的表达式,如果左边的计算结果为______________,右边的计算不需要进行,就能得到整个逻辑表达式的结果:
false;
以||连接的表达式,如果左边的计算结果为______________,就能得到整个逻辑表达式的结果:
true。
从左到右false(或0)true(或非0)
28.前置++、――的优先级______________于后置++、――。
高
29.按操作数数目分,运算符的优先级从高到低排列为______________、______________、______________,按运算符的性分,优先级从高到低排列为算术、移位、关系、按位、逻辑。
单目、双目、三目
30.如果s是int型变量,且s=6,则下面s%2+(s+1)%2表达式的值为____。
1
分析:
%运算符是求余运算,得到的结果是相除后的余数。
表达式转换为6%2+(6+1)%2=0+7%2=1。
31.如果定义inta=2,b=3;
floatx=,y=;
则表达式(float)(a+b)/2+(int)x%(int)y的值为_____。
不同类型的数据混合运算时,可以使用强制类型转换符,强制将一种数据类型转换为另一种数据类型后再进行运算。
对表达式,先求表达式的值,再转换值的类型,本题的运算结果为。
32.设所有变量均为整型,则表达式(e=2,f=5,e++,f++,e+f)的值为____。
9
逗号运算符是是将两个或多个表达式组合成一个表达式的运算符。
求解时从左至右依次计算每个表达式的值,整个表达式的值就是最右边的表达式的值。
本题的答案为9。
33.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=’a’+’8’-‘4’的值为____。
e
C++语言中,对字符数据进行算术运算,实际上就是对字符的ASCII码进行运算。
以字符形式输出时,再将ASCII码转换为相应的字符输出。
本题表达式为ch=97+8-4=101,101相应的ASCII为字符e。
34.“A”与‘A’的区别是:
前者表示的是__________,占用______个内存空间,后者表示的是_________,占用_______个内存空间。
字符串常量2字符常量1
35.表达式8/4*(int)(int)*+)值的数据类型为_________。
double
36.已知c的ASCII码为十进制数99,设k为字符型变量,则表达式k=‘c’+‘9’-‘8’的值为________。
d'
37.设有说明语句inta=6;
,则运算表达式a+=a-=a*a后,a的值为_______。
-60
38.C++表达式表达:
y=ax2+bx+c_________________,5x3+9xy/5-xy______________。
y=a*x*x+b*x+c5*x*x*x+9*x*y/5-x*y
39.设a、b、c都是int型变量,则运算表达式a=(b=4)+(c=2)后,a值为_____,b值为______,c值为______。
642
40.C++语言中的标识符只能由三种字符组成,它们是________,_______和_______。
字母数字下划线
41.有语句:
chark=‘\010’;
则变量k中包含的字符个数是_____。
42.在C++语言中,表示逻辑“真”值用_____________。
true
43.表达式pow(,sqrt(double(x)))值的数据类型为_________。
44.设m是一个三位数,从左到右用a、b、c表示各位是数字,则从左到右各个数字是cba的三位数的表达式是_________________________。
c*100+b*10+a
45.设有语句inta=3,b=4,c=5;
则表达式:
!
(a+b)+c-1&
b+c/2的值为______,表达式a||b+c&
b==c的值为______。
11
46.请写出判断整型变量x为偶数且不小于100的表达式:
______________________。
x%2==0&
x>
=100
47.下面的程序实现输出x,y,z三个数中的最大值,请填入正确的内容。
#include<
voidmain()
{intx=5,y=8,z=9,u,v;
if(
(1))u=x;
elseu=y;
if(
(2))v=u;
elsev=z;
cout<
”v=”<
v<
endl;
}
(1)x>
y
(2)u>
z
本程序首先找出x和y中较大的数放入变量u中,再将u与z做比较,其中较大者放入变量v中,为三个数中的最大值。
48.有以下程序段:
intn=0;
while(n=1)n++;
while循环执行次数是_____。
为无限次。
要注意”=”和”==”的区别,”=”是赋值运算符,”==”是关系运算符“等于”。
这里while(n=1)永远为1,为真值,则答案为无限次。
49.计算1~20之间偶数之和,请填充:
{inta,i;
a=0;
for(i=0;
(1);
i+=2)
{a+=i;
(2);
cout<
”偶数之和为:
”<
a<
endl;
(1)i<
=20或i<
21
(2)}
50.下面程序运行结束后,k的值为_____。
{inti,j,k;
for(i=0,j=10;
i<
=j;
i++,j--)
k=i+j;
count<
k;
10。
在程序中每循环一次,变量i+1,而变量j-1,i+j之和保持不变为10,直到循环结束。
51.下面程序是输出100以内能被7整除且个位数是4的所有整数,请填空:
{inti,j;
for(i=0;
i++)
{j=i*10+4;
if(
(2))
continue;
(3)
j<
}}
=9或i<
10
(2)j%7!
=0(3)else
由题目可知判断100以内的数,故i变量的终值应为:
要满足不被7整除的条件为:
j%7!
=0;
反之不满足该条件的则要输出。
二、选择题
1.C++语言属于_________。
2.A.机器语言B.低级语言C.中级语言D.高级语言
D
3.C++语言程序能够在不同操作系统下编译、运行,说明C++具有良好的_________。
A.适应性B.移植性C.兼容性D.操作性
B
4.C++源文件的扩展名为。
A.cppB.cC.txtD.exe
A
5.#include语句。
A.总是在程序运行时最先执行
B.按照在程序中的位置顺序执行
C.在最后执行
D.在程序运行前就执行了
D,#include是预处理指令,在编译时就执行了,没有对应的机器指令。
6.下列说法正确的是。
A.用C++语言书写程序时,不区分大小写字母。
B.用C++语言书写程序时,每行必须有行号。
C.用C++语言书写程序时,一行只能写一个语句。
D.用C++语言书写程序时,一个语句可分几行写。
7.在C++中,main函数默认返回一个_________类型的值。
8.以下非法的赋值表达式是_________。
=(i=2,++i);
++;
C.++(i+1);
=j>
0;
C
9.流程控制语句的基本控制结构有三种,不属于这一种结构的是_________。
A.顺序结构B.选择结构C.循环结构D.计算结构
10.程序设计的三种基本结构是_________。
A.过程、子过程和分程序B.顺序、选择和循环
C.递归、堆栈和队列D.调用、返回和转移
11.关于break语句的叙述不正确的是_________。
语句可用在循环体中,它将使执行流程跳出本层循环体
语句可用在switch语句中,它将使执行流程跳出当前的switch语句
语句可用在if语句中,它将使执行流程跳出当前的if语句
语句在一层循环体可以出现多次
12.如下序列语句:
#include<
string>
voidmain(){
intk=0;
do{
k+=5;
cout<
'
$'
}while(k<
19);
while(k-->
0)
*'
执行上面的语句序列输出字符$和*的个数分别是_________。
和20和20和21和21
13.有以下程序:
intx=15;
while(x>
10&
x<
50){
x++;
if(x/3){
break;
}
x<
endl;
14.阅读下面的程序:
intx;
cin>
x;
if(x++>
5)
else
x--<
6,6,7,7
15.下列程序的运行结果为。
inta=2;
intb=a+1;
a/b<
……
16.下列for语句的循环次数为。
17.for(inti=0,x=0;
x&
i<
=5;
cout<
"
Hello"
<
A.5B.6
C.1D.无限
18.X>
Y&
X<
=Y的值为。
A.trueB.false
C.与X>
Y的值相同D.与X<
=Y的值相同
19.下列十六进制的整型常数表示中,是错误的
20.预处理命令在程序中都是以开头的。
A.*B.#C.:
D./
21.将两个字符串连接成一个字符串时,选用函数。
A.strlenB.strcpyC.strcatD.strcmp
22.执行boolOK=2!
=3;
OK;
后,显示在屏幕上的是。
23.A.trueB.false
24.C.1D.0
25.若w是一个bool型变量,则w||5的值是。
26.A.trueB.false
27.C.与w的值相同D.与!
w的值相同
28.下列while循环的次数是。
while(inti=0)i--;
A.0B.1
C.5D.无限
29.下述关于break语句的描述中,是不正确的。
?
30.A.break语句可用于循环体内,它将退出该循环?
31.B.break语句可用于switch语句中,它将退出switch语句?
32.C.break语句可用于if体内,它将退出if语句?
33.D.break语句在一个循环体内可以出现多次
34.面向对象的是一种信息隐蔽技术,目的在于将对象的使用者与设计者分开。
不允许使用者直接存取对象的属性,只能通过有限的接口与对象发生联系。
A.多态性B.封装性C.继承性D.重用性
35.C++的合法注释是。
A./*ThisisaCprogram/* B.14”0”26C2C1C6C符型B.整型C.实型D.数组
36.在C++语言中,080是___________。
A.八进制数B.十进制数
B.C.十六进制数D.非法数
37.下列字符列中,可作为C++语言程序自定义标识符是___________。
38.运算符+、<
=、=、%中,优先级最低的运算符是___________。
A.+B.<
=C.=D.%
39.下列字符列中,可以作为“字符串常量”的是___________。
A.ABCB."
xyz"
C.′uvw′D.′a′
40.字符串”vm\x43\\\np\102q”的长度是___________。
A.8B.10C.17D.16
41.在C++语言中,自定义的标识符___________。
A.能使用关键字并且不区分大小写
B.不能使用关键字并且不区分大小写
C.能使用关键字并且区分大小写
D.不能使用关键字并且区分大小写
42.设有代码“inta=5;
”,则执行了语句“a+=a-=a*a;
”后,变量a的值是___________。
B.0C.-40D.–12
43.设a为5,执行下列代码后,b的值不为2的是___________。
A.b=a/2B.b=6-(--a)
C.b=a%2D.b=a<
33:
2
44.下面的___________均是C语言的整型常量。
和611和0xa1
和0667和0x
45.数学公式
写成C表达式,下面的___________是正确的。
(abs(pow(x,y)+exp(y)))(abs(pow(y,x)+exp(y)))
(fabs(pow(x,y)+exp(y)))(fabs(pow(y,x)+exp(y)))
说明:
abs和fabs,abs是整数取绝对值,而fabs是指浮点数取绝对值
46.如果有以下语句:
inta,b;
charm,n;
cin>
a>
b>
m>
n;
则下列输入数据的方式中正确的是()。
A.10,20,X,YB.1020XY
C.1020XYD.10、20、X、Y
C++语言没有专门的输入/输出语句,其输入/输出是通过输入/输出流来实现的。
用cin输入时,空格和回车键均可作为输入字符之间的分隔符,逗号不能作为分隔符。
字符型变量只能容纳一个字符。
47.以下不正确的语句是()。
A.if(x>
y);
B.if(x=y)&
(x!
=0)x+=y;
C.if(x!
=y)cin>
x;
elsecin>
y;
D.if(x<
y){x++;
y++;
B
if语句后面的表达式必须放在括号内“()”,且不能使用赋之值运算符。
在if和else后面用花括号“{}”括起来的多个语句成为了一个复合语句。
48.下面程序的输出结果是()。
#include<
voidmain()
{inta=6,b=6;
if(a>
a-=1;
b+=1;
else
a+=1;
b-=1;
cout<
”a=”<
”b=”<
}
A.5B.a=5C.a=5D.编译时出错
7b=7b=6
D
在if…else语句的中间应为单条语句或复合语句,不能为多条语句。
49.对while、do…while循环结构,下面说法正确的是()。
A.只是表达形式不同
B.do…while结构中的语句至少执行一次
C.while结构中的语句至少执行一次
D.条件成立时,它们有可能一次也不执行
要知道while、do…while两种循环结构的区别在于:
while循环是先判断条件是否成立,成立时才执行,而do…while是先执行再判断,它至少执行一次。
50.以下不正确的是()。
A.语句for(i=0;
;
i++)表示无限循环
B.for(;
)表示无限循环
C.for()也表示无限循环
D.while
(1)表示无限循环
for循环语句中的表达式可以省略,但分号不可省略。
51.下面循环体的执行次数为()。
{inta,b;
for(a=0,b=5;
=b+1;
a+=2,b--)
A.3B.2C.1D.0
在for语句的表达式中使用了