C++基础习题.docx
- 文档编号:11423020
- 上传时间:2023-03-01
- 格式:DOCX
- 页数:71
- 大小:61.08KB
C++基础习题.docx
《C++基础习题.docx》由会员分享,可在线阅读,更多相关《C++基础习题.docx(71页珍藏版)》请在冰豆网上搜索。
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>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中包含的字符个数是_____。
答案:
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++语言属于_________。 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++语言书写程序时,一个语句可分几行写。 答案: D 7.在C++中,main函数默认返回一个_________类型的值。 答案: A 8.以下非法的赋值表达式是_________。 =(i=2,++i);++;C.++(i+1);=j>0; 答案: C 9.流程控制语句的基本控制结构有三种,不属于这一种结构的是_________。 A.顺序结构B.选择结构C.循环结构D.计算结构 答案: D 10.程序设计的三种基本结构是_________。 A.过程、子过程和分程序B.顺序、选择和循环 C.递归、堆栈和队列D.调用、返回和转移 答案: B 11.关于break语句的叙述不正确的是_________。 语句可用在循环体中,它将使执行流程跳出本层循环体 语句可用在switch语句中,它将使执行流程跳出当前的switch语句 语句可用在if语句中,它将使执行流程跳出当前的if语句 语句在一层循环体可以出现多次 答案: C 12.如下序列语句: #include #include voidmain(){ intk=0; do{ k+=5; cout<<'$'; }while(k<19); while(k-->0) cout<<'*'; } 执行上面的语句序列输出字符$和*的个数分别是_________。 和20和20和21和21 答案: A 13.有以下程序: #include #include voidmain(){ intx=15; while(x>10&&x<50){ x++; if(x/3){ x++; break; } } cout< } 答案: C 14.阅读下面的程序: #include #include voidmain(){ intx; cin>>x; if(x++>5) cout< else cout< } 6,6,7,7 答案: D 15.下列程序的运行结果为。 #include #include voidmain(){ inta=2; intb=a+1; cout< } …… 答案: B 16.下列for语句的循环次数为。 17.for(inti=0,x=0;! x&&i<=5;i++) cout<<"Hello"< A.5B.6 C.1D.无限 答案: B 18.X>Y&&X<=Y的值为。 A.trueB.false C.与X>Y的值相同D.与X<=Y的值相同 答案: B 19.下列十六进制的整型常数表示中,是错误的 答案: C 20.预处理命令在程序中都是以开头的。 A.*B.#C.: D./ 答案: B 21.将两个字符串连接成一个字符串时,选用函数。 A.strlenB.strcpyC.strcatD.strcmp 答案: C 22.执行boolOK=2! =3;cout< 23.A.trueB.false 24.C.1D.0 答案: A 25.若w是一个bool型变量,则w||5的值是。 26.A.trueB.false 27.C.与w的值相同D.与! w的值相同 答案: A 28.下列while循环的次数是。 while(inti=0)i--; A.0B.1 C.5D.无限 答案: A 29.下述关于break语句的描述中,是不正确的。 ? 30.A.break语句可用于循环体内,它将退出该循环? 31.B.break语句可用于switch语句中,它将退出switch语句? 32.C.break语句可用于if体内,它将退出if语句? 33.D.break语句在一个循环体内可以出现多次 答案: C 34.面向对象的是一种信息隐蔽技术,目的在于将对象的使用者与设计者分开。 不允许使用者直接存取对象的属性,只能通过有限的接口与对象发生联系。 A.多态性B.封装性C.继承性D.重用性 答案: B 35.C++的合法注释是。 A./*ThisisaCprogram/* B.14”0”26C2C1C6C符型B.整型C.实型D.数组 答案: D 36.在C++语言中,080是___________。 A.八进制数B.十进制数 B.C.十六进制数D.非法数 答案: B 37.下列字符列中,可作为C++语言程序自定义标识符是___________。 答案: B 38.运算符+、<=、=、%中,优先级最低的运算符是___________。 A.+B.<=C.=D.% 答案: C 39.下列字符列中,可以作为“字符串常量”的是___________。 A.ABCB."xyz"C.′uvw′D.′a′ 答案: B 40.字符串”vm\x43\\\np\102q”的长度是___________。 A.8B.10C.17D.16 答案: A 41.在C++语言中,自定义的标识符___________。 A.能使用关键字并且不区分大小写 B.不能使用关键字并且不区分大小写 C.能使用关键字并且区分大小写 D.不能使用关键字并且区分大小写 答案: D 42.设有代码“inta=5;”,则执行了语句“a+=a-=a*a;”后,变量a的值是___________。 B.0C.-40D.–12 答案: C 43.设a为5,执行下列代码后,b的值不为2的是___________。 A.b=a/2B.b=6-(--a) C.b=a%2D.b=a<33: 2 答案: C 44.下面的___________均是C语言的整型常量。 和611和0xa1 和0667和0x 答案: A 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))) 答案: D 说明: 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 分析: 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 答案: B 分析: if语句后面的表达式必须放在括号内“()”,且不能使用赋之值运算符。 在if和else后面用花括号“{}”括起来的多个语句成为了一个复合语句。 48.下面程序的输出结果是()。 #include<> voidmain() {inta=6,b=6; if(a>5) a-=1; b+=1; else a+=1; b-=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 基础 习题