C++基础习题.docx

上传人:b****5 文档编号:11806774 上传时间:2023-04-02 格式:DOCX 页数:65 大小:70.97KB
下载 相关 举报
C++基础习题.docx_第1页
第1页 / 共65页
C++基础习题.docx_第2页
第2页 / 共65页
C++基础习题.docx_第3页
第3页 / 共65页
C++基础习题.docx_第4页
第4页 / 共65页
C++基础习题.docx_第5页
第5页 / 共65页
点击查看更多>>
下载资源
资源描述

C++基础习题.docx

《C++基础习题.docx》由会员分享,可在线阅读,更多相关《C++基础习题.docx(65页珍藏版)》请在冰豆网上搜索。

C++基础习题.docx

C++基础习题

C++基础、运算符与表达式、控制结构习题

一、填空题

1.面向对象编程三个特性:

___________、___________、___________。

答案:

封装性、继承、多态

2.C++中使用___________作为标准输入流对象,通常代表键盘,与提取操作符___________连用;使用___________作为标准输出流对象,通常代表显示设备,与___________连用。

答案:

cin>>cout<<

3.cout是_________类的对象。

答案:

ostream

4.cin是_________类的对象。

答案:

istream

5.C++程序是从_______函数开始执行的。

答案:

main

6.___________是计算机直接理解执行的语言,由一系列___________组成,其助记符构成了___________;接近人的自然语言习惯的程序设计语言为___________。

答案:

机器语言二进制指令汇编语言高级语言

7.___________方法的主要内容有:

自顶向下、逐步求精;___________方法将现实世界中的客观事物描述成具有属性和行为的___________,抽象出共同属性和行为,形成___________。

答案:

结构化程序设计面向对象程序设计对象类

8.C++程序开发通常要经过5个阶段,包括___________、___________、___________、___________、___________。

答案:

编辑编译连接运行调试

9.对象与对象之间通过___________进行相互通信。

答案:

消息

10.___________是对具有相同属性和行为的一组对象的抽象;任何一个对象都是某一个类的实例。

答案:

11.___________是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。

答案:

多态性

12.面向对象的软件开发过程主要包括___________、___________、___________、___________、___________。

答案:

面向对象的方法分析面向对象的设计面向对象的编程面向对象的测试面向对象的维护

13.___________是指在程序设计时,将数据类型参数化,编写具有通用性和可重用的程序。

答案:

泛型程序设计

14.#include是一条预处理指令,在___________时由___________________执行,其功能是______________________。

答案:

编译(或预处理)编译器(或预编译器)将iostream文件包含(复制)到指令处

15.将以下程序写成三目运算表达式是。

if(a>b)max=a;

elsemax=b;

答案:

max=a>b?

a:

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;,;则表达式(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)2.5/(int)(1.25*(3.7+2.3))值的数据类型为_________。

答案:

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中包含的字符个数是_____。

答案:

1

42.在C++语言中,表示逻辑“真”值用_____________。

答案:

true

43.表达式pow(,sqrt(double(x)))值的数据类型为_________。

答案:

double

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=”<

}

答案:

(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之间偶数之和,请填充:

#include

voidmain()

{inta,i;

a=0;

for(i=0;

(1);i+=2)

{a+=i;

(2);

cout<<”偶数之和为:

”<

}

答案:

(1)i<=20或i<21

(2)}

 

50.下面程序运行结束后,k的值为_____。

#include

voidmain()

{inti,j,k;

for(i=0,j=10;i<=j;i++,j--)

k=i+j;

count<

}

答案:

10。

分析:

在程序中每循环一次,变量i+1,而变量j-1,i+j之和保持不变为10,直到循环结束。

 

51.下面程序是输出100以内能被7整除且个位数是4的所有整数,请填空:

#include

voidmain()

{inti,j;

for(i=0;

(1);i++)

{j=i*10+4;

if(

(2))

continue;

(3)

cout<

}}

答案:

(1)i<=9或i<10

(2)j%7!

=0(3)else

分析:

由题目可知判断100以内的数,故i变量的终值应为:

i<=9或i<10。

要满足不被7整除的条件为:

j%7!

=0;反之不满足该条件的则要输出。

二、选择题

1.C++语言属于_________。

A.机器语言B.低级语言C.中级语言D.高级语言

答案:

D

2.C++语言程序能够在不同操作系统下编译、运行,说明C++具有良好的_________。

A.适应性B.移植性C.兼容性D.操作性

答案:

B

3.C++源文件的扩展名为。

A.cppB.cC.txtD.exe

答案:

A

4.#include语句。

A.总是在程序运行时最先执行

B.按照在程序中的位置顺序执行

C.在最后执行

D.在程序运行前就执行了

答案:

D,#include是预处理指令,在编译时就执行了,没有对应的机器指令。

5.下列说法正确的是。

A.用C++语言书写程序时,不区分大小写字母。

B.用C++语言书写程序时,每行必须有行号。

C.用C++语言书写程序时,一行只能写一个语句。

D.用C++语言书写程序时,一个语句可分几行写。

答案:

D

6.在C++中,main函数默认返回一个_________类型的值。

答案:

A

7.以下非法的赋值表达式是_________。

A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;

答案:

C

8.流程控制语句的基本控制结构有三种,不属于这一种结构的是_________。

A.

答案:

D

9.程序设计的三种基本结构是_________。

A.过程、子过程和分程序B.顺序、选择和循环

C.递归、堆栈和队列D.调用、返回和转移

答案:

B

10.关于break语句的叙述不正确的是_________。

A.break语句可用在循环体中,它将使执行流程跳出本层循环体

B.break语句可用在switch语句中,它将使执行流程跳出当前的switch语句

C.break语句可用在if语句中,它将使执行流程跳出当前的if语句

答案:

C

11.如下序列语句:

#include

#include

voidmain(){

intk=0;

do{

k+=5;

cout<<'$';

}while(k<19);

while(k-->0)

cout<<'*';

}

执行上面的语句序列输出字符$和*的个数分别是_________。

答案:

A

12.有以下程序:

#include

#include

voidmain(){

intx=15;

while(x>10&&x<50){

x++;

if(x/3){

x++;

break;

}

}

cout<

}

答案:

C

13.阅读下面的程序:

#include

#include

voidmain(){

intx;

cin>>x;

if(x++>5)

cout<

else

cout<

}

A.4,6B.3,6C.4,7D.5,7

答案:

D

14.下列程序的运行结果为。

#include

#include

voidmain(){

inta=2;

intb=a+1;

cout<

}

A.0.66667B.0C.0.7D..66666666……

答案:

B

15.下列for语句的循环次数为。

for(inti=0,x=0;!

x&&i<=5;i++)

cout<<"Hello"<

A.5B.6

C.1D.无限

答案:

B

16.X>Y&&X<=Y的值为。

A.trueB.false

C.与X>Y的值相同D.与X<=Y的值相同

答案:

B

17.下列十六进制的整型常数表示中,是错误的

A.0xafB.0X1b

答案:

C

18.预处理命令在程序中都是以开头的。

A.*B.#C.:

D./

答案:

B

19.将两个字符串连接成一个字符串时,选用函数。

A.strlenB.strcpyC.strcatD.strcmp

答案:

C

20.执行boolOK=2!

=3;cout<

A.trueB.false

C.1D.0

答案:

A

21.若w是一个bool型变量,则w||5的值是。

A.trueB.false

C.与w的值相同D.与!

w的值相同

答案:

A

22.下列while循环的次数是。

while(inti=0)i--;

A.0B.1

C.5D.无限

答案:

A

23.下述关于break语句的描述中,是不正确的。

 

A.break语句可用于循环体内,它将退出该循环 

B.break语句可用于switch语句中,它将退出switch语句 

C.break语句可用于if体内,它将退出if语句 

D.break语句在一个循环体内可以出现多次 

答案:

C

24.面向对象的是一种信息隐蔽技术,目的在于将对象的使用者与设计者分开。

不允许使用者直接存取对象的属性,只能通过有限的接口与对象发生联系。

A.多态性B.封装性C.继承性D.重用性

答案:

B

25.C++的合法注释是。

A./*ThisisaCprogram/* B.//ThisisaCprogram

C.“ThisisaCprogram”D.//ThisisaCprogram//

答案:

B

26.下面标识符中正确的是。

A._abcB.3abC.intD.+ab

答案:

A 

27.下列标识符中,是合法的。

A.gotoB.StudentC.123D.k-ld

答案:

B

28.C++语言中语句的结束符是。

A.,B.;C.。

D.、

答案:

B

29.C++语言中的标识符只能右字母、数字和下划线三种字符组成,且第一个字符。

A.必须为字母B.必须为下划线

C.必须为字母或下划线D.可以是字母、数字和下划线中任一中字符

 答案:

C

30.下面正确的字符常量是。

A.“C”B.‘\\’’C.‘W’D.‘’

 答案:

C

31.如果说明语句:

charc=‘\72’;则变量c。

A.包含1个字符B.包含2个字符

C.包含3个字符D.说明不合法,c的值不确定

答案:

 A

32.表达式18/4*sqrt()/8值的数据类型为。

A.intB.floatC.doubleD.不确定

 答案:

C

33.设intm=7,n=12;则表达式为3的是。

A.n%=(m%=5)B.n%=(m-m%5)

C.n%=m-m%5D.(n%=m)-(m%=5)

 答案:

 D

34.有如下程序段:

inta=14,b=15,x;

charc=’A’;

x=(a&&b)&&(c<’B’);

执行该程序后,x的值为。

A.tureB.flaseC.0D.1

 答案:

D

35.设变量a是整型,b是实型,c是双精度型,则表达式10+‘a’+c*b值的数据类型为。

A.intB.floatC.doubleD.不确定

   答案:

C

36.以下叙述中不正确的是。

A.在C++程序中,name和NAME是两个不同的变量

B.在C++程序中,逗号运算符的优先级最低

C.若变量m,n为int型,则m=n后,n中的值不变

D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。

   答案:

D

37.下面不正确的字符串常量是。

A.‘rst’B.“14‘14”C.“0”D.“”

  答案:

A

38.对代数式5ae/bc,下面不正确的C++语言表达式是。

A.a/b/c*e*5B.5*a*e/b/c

C.5*a*e/b*cD.a*e/c/b*5

 答案:

B

39.下列运算符中优先级最高的是。

A.?

B.&&C.+D.!

=

答案:

 C

40.设a是整型变量,则表达式(a=4*5,a*2),a+6的值是。

A.20B.26C.40D.46

 答案:

B

41.设有:

inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c

A.1B.2C.3D.4

答案:

B

42.用C++的语言表达式表示|x3+log10x|的正确是。

A.fabs(x*3+log(x))

B.abs(pow(x,3)+log(x))

C.fabs(pow(x,)+log(x))

D.abs(pow(x,)+log(x))

 答案:

C

43.设intk=7,x=12;则能使值为3的表达式是_____。

A.x%=(k%=5)B.x%=(k-k%5)

C.x%=k-k%5D.(x%=k)-(k%=5)

答案:

D

44.设有语句:

inta=7;,;则表达式x+a%3*(int)(x+y)%2/4的值是。

A.2.500000B.2.750000

C.3.500000D.

 答案:

A

45.设有语句intx=3,y=4,z=5;则下面表达式中值为0的是。

A.’x’&&’y’B.x<=y

C.x||y+z&&y-zD.!

((x

z||1)

 答案:

D

46.判断char型变量n是否为小写字母的正确表达式为。

A.’a’<=n<=’z’B.(n>=a)&&(n<=z)

C.(’a’>=n)||(’z’<=n)D.(n>=’a’)&&(n<=’z’)

答案:

 D

47.运算符+、=、*、>=中,优先级最高的运算符是___________。

A.+B.=C.*D.>=

答案:

C

分析:

根据C++语言对运算符优先级的规则,以上运算符优先级从低到高的次序为=、>=、+、*。

48.下列说法正确的是___________。

A.cout<<”\n”是一个语句,它能在屏幕上显示”\n”

B.\68代表的是字符D。

C.1E+5的写法正确,它表示余割整型常量。

D.0x10相当于020。

答案:

D

分析:

分号是语句的已部分,且\n是转义字符;\68代表了八进制的6、8,而八进制中没有数字8;1E+5是实型常量;十六进制的10相当于十进制

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1