C++习题集.docx
- 文档编号:5947854
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:57
- 大小:41.73KB
C++习题集.docx
《C++习题集.docx》由会员分享,可在线阅读,更多相关《C++习题集.docx(57页珍藏版)》请在冰豆网上搜索。
C++习题集
1.6习题一
一.选择题
1.以下C++标识符,哪个是正确的()。
A.voidB._text_1C.3_nameD.2a_one
2.下列哪个是C++源文件的扩展名()。
A.hB.dswC.cppD.dsp
3.一个C++源程序主要是由()组成。
A.子过程B.过程C.函数D.主程序和子程序
4.下列哪个符号用于行注释()。
A.;B.:
C.//D./**/
5.下列哪种说法是错误的()。
A.从组织方式上看,C++源程序由一个或多个源文件组成,且只有一个文件中包含一个main
函数
B汉字、全角字符不属于C++基本字符,但可以在字符串中使用
C把对象的属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节,称为抽象
D面向对象的方法中对象与对象之间通过消息进行通信
二、填空题
1.计算机程序语言的发展经历了_______、________、__________等阶段。
2.C++语言既支持_________又支持__________的编程。
3.将高级语言书写的源程序翻译成目标程序有两种翻译程序。
分别为____________、____________。
4.面向对象方法的主要特点是将_____________和_____________封装在一起。
5在C++中,标识符Big和big是___________-(相同、不同)的标识符。
6.在#include命令中所包含的头文件中,可以使系统文件,也可以是___________头文件。
7.一个函数定义由__________和____________两部分组成,若一个函数的定义处于调用它的函数之后,则在调用之前要进行______________。
8.程序文件的编译错误分为____________和_____________错误、____________错误不影响目标文件的形成。
9.C++每个源文件是独立的___________,编译该程序时,可以按一个个源文件为单位对它们分别单独编译。
然后通过系统所配有的链接程序将它们链接、装配在一起,成为一个可执行的文件,这样一来的编译程序称为________________。
10.面向对象中的抽象分为____________抽象和____________抽象,其封装是通过定义_________来实现的。
三、程序阅读
1.写出以下程序的运行结果并上机验证。
#include
voidmain()
{
Int x, y;
x=10;y=20;
cout<<”x+y=”< cout<<”x+y=”< } 2.写出以下程序的运行结果并上机验证。 #include Intsum(int,int); voidmain(void) { cout<<”sum(3,5)=”< cout<<”sum(5,8)=”sum(5,8)< } Intsum(intx,inty) { returnx+y; } 3.写出以下程序的运行结果并上机验证。 #include #include”dubArea.cpp” voidmain() { doubleradius;//定义半径 cout<<”请输入园的半径: “; cin>>radius; cout<<”\n元的面积为: ”< } 其中subArea.cpp文件的内容如下: constdoublePI=3.14159;//定义符号常量 doublearea(doubler) {returnPI*r*r;//计算面积 } 注: 操作方法是新建一个C++源文件,不添加到工程中,文件名为subArea.cpp。 输入上述内容即可。 四、简答题 1.简述计算机程序设计方法的发展及面向对象编程语言的特点。 2.简述面向过程程序设计方法的优缺点。 3.简述面向对象的基本特征及C++语言对面向对象的支持。 4.简述C++程序的开发过程。 5.面向对象的软件工程包括哪些主要内容? 习题二 一.选择题 1.不属于字符型常量的是()。 A.'S'B.'\32'C.'\n'D."L" 2.属于整型常量的是()。 A.18B.18.0C.-18.0D.10E10 3.char型常量在内存中存入的是()。 A.BCD代码B.ASCII代码C.内码值D.十进制代码值 4.'\65'在内存中占()个字节,"\65"在内存中占()个字节。 A.4B.2C.1D.8 5.字符串“\\\”ABC\“\\”的长度是()。 A.3B.5C.7D.9 6.sizeof(double)的结果是()。 A.8B.4C.2D.出错 7.设x,y,z均为实型变量,代数式x/(yz)的正确写法是()。 A.x/y*zB.x%y%zC.x%y*zD.x/y/z 8.设整型变量i为5,使整型变量K不为2的表达式是()。 A.k=i%2B.k=i/2C.k=6-(--i)D.k=i>3? 2: 1 9.设整型变量x为5,y为2,结果值为1的表达式是()。 A.! (y==x/2)B.y! =x%3C.x>0&&y<0D.x! =y||x>=y 10.设整型变量x的值为35,则表达式(x&15)&&(x|15)的值是()。 A.35B.15C.1D.0 二.填空题 1.无符号整型变量的类型说明符有: _____,____,_____。 2.实型变量的类型说明符有: ______,______,_______。 3.类型自动转换的两条原则是: 当不同数据类型的变量同时出现在一个表达式中时,实现“自动类型转换”,转换的原则是_________。 第二,在赋值语句中,当左值和右值的数据类型不同时,首先__________,然后_________。 4.试排出下列运算符的优先级别: “*、! 、<<=、&&、==、,”是_______>_______>_______>________>_______>______。 5.表达式主要分为______表达式,_______表达式,_______表达式,_______表达式,_______表达式和_______表达式等。 6.所有位运算符的运算顺序是: ______>________、_______>_________>________>______>_______、________、________、________、_______。 7.位移运算的运算规则和被位移的数据是否带有符号有关。 对不带符号数,左移时在右端补入的是_______,右移时在左端补入的是______;对带符号数,左移时在右端补入的是_____,右移时在左端补入的是______。 8.在C++语言中,字符串常量"IlovebisualC++6.0.\n"的长度是________。 三.程序阅读 1.写出下列程序的运行结果。 #include voidmain(){ cout<<"IlovevisualC++"; cout<<"6.0."; } 2.假定输入为20和50,写出下列程序的运行结果。 #include voidmain(){ inta,b; cin>>a>>b; if(a a=a+b; b=a-b; a=a-b; } cout<<"a="< } 3.阅读下面的程序,体会i++与++i的差异,并写出运行结果。 #include intmain(){ intmyAge=18; intyourAge=18; cout<<"我的年龄是"< cout<<"你的年龄是"< myAge++; ++yourAge; cout<<"一年过去了....."< cout<<"我的年龄是"< cout<<"你的年龄是"< cout<<"又一年过去了....."< cout<<"我的年龄是"< cout<<"你的年龄是"<<++yourAge<<"岁"< cout<<"再查一遍....."< cout<<"我的年龄是"< cout<<"你的年龄是"< return0; } 4.写出下列程序的运行结果。 #include voidmain(){ cout< cout< cout< cout< } 5.指出下列程序的错误。 (1)#include (2)voidmain() (3)inti; (4)cout<<"请输入整数i: "; (5)cin>>i (6)cout<<"您输入的数"<<(i=>100? "大于等于100": "小于100")< (7)return; (8)} 四.编程题 1.编写一个程序,实现用人机对话方式从键盘输入a,b,c,d4个整数,计算表达式(a+b)*(c-d)的值,并显示计算结果。 2.已知一个三角形中3条边的长度分别为a,b,c,请利用下列公式求出三角形的面积s=根号下(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/2。 注意: 构成三角型的条件是三角形任意两条边长度之和大于第三条边。 3.输入一个字符,如果该字符是英文字母,则打印该英文字母的ASCII码,要求可以输入任意字符。 4.针对职工工资的发放,给出各种票额钞票(包括: 100元,50元,20元,10元,5元,2元,1元)最少张数的付款方案。 第三章 一.选择题 1.如果x=0,那么中while(true)的true与下面等价的条件是()。 A.x=1B.x=1C.x>1D.x<1 2.下列程序段执行完后,x的值是()。 x=0; for(i=0;i<90;i++) if(i)x++; A.0B.30C.89D.90 3.下列程序段循环的次数是()。 intx=10; while(--x){} A.0B.5C.10D.11 4.下面for语句的循环次数为()。 for(inti=0,x=0;! x&&i<=6;i++) A.0B.5C.6D.7 5.下面程序将输出字符‘*’的个数是()。 #include voidmain(){ inti=100; while (1){ i--; if(i==0)break; cout<<‘*’; A.101B.100C.99D.98 6.下面程序的输出结果是() #include voidmain(){ intk; for(inti=2;i<8;i+=2){ k=1; for(intj=i;j<8;j++) k+=j; } cout< } A.13B.14C.15D.16 7.下面程序的输出结果是() #include voidmain(){ inti=9; while(i>5){ i--; cout< } cout< } A.8,7,6,5B.9,8,7,6C.8,7,6D.9,8,7,6,5 8.下列关于开关语句的描述中,()是正确的。 A.开关语句中case子句的语句序列中必须包含break语句 B.开关语句中case子句后面的表达式可以是整型表达式 C.开关语句中case子句的个数不能过多 D.开关语句中default子句是可以省略的 二.填空题 1.C++用于控制流程的3种基本结构是________,_________,_________。 2.对于嵌套的if-else语句,C++语法规定else总是与___________匹配。 3.C++语言提供的常用转向语句有3种: _________,________,________。 4.开关语句中case后面的表达式只能是_________,________或________常量表达式。 5.下面是一个求一元二次方程的程序,请完成该程序。 #include #include voidmain(){ floata,b,c,disc,x1,x2; cout<<"请输入一元二次方程的三个系数: a,b,c: "; cin>>a>>b>>c; disc=b*b-4*a*c; if(_________){ x1=(-b+(float)sqrt(disc))/(2*a); x2=(-b-(float)sqrt(disc))/(2*a); cout<<"\nx1="< } elseif(___________){ x1=_____________; cout<<"\nx1=x2="< } else cout<<"方程没有实根! "< } 三.程序阅读 1.写出下列程序的运行结果。 #include voidmain(){ for(inti=0;i<10;i++){ if(i%2==0) continue; cout< } cout< } 2.假定输入的5个整数为19,29,39,49,59,写出下列程序的运行结果。 #include voidmain(){ inta,b,c,x; a=b=c=0; for(inti=0;i<5;i++){ cin>>x; switch(x%3){ case0: a+=x;break; case1: b+=x;break; case3: c+=x;break; } } cout< } 3.阅读下面的程序,并写出运行结果。 #include voidmain(){ for(inti=5;i>=1;i--) { for(intj (1);j<=i;j++) cout<<'$'; for(j=1;j<=5-i;j++) cout<<'#'; cout< } } 4.假定输入10080-6095-750,并写出下列程序的运行结果。 #include voidmain(){ inti=0,j=0,n; cout<<"请输入若干整数(输入0则结束): "; cin>>n; while(n! =0){ if(n>0)i+=1; if(n<0)j+=1; cin>>n; } cout<<"正整数个数: "< "< } 5.下列程序是将输入的一个整数的各位数字反转后输出,指出其错误。 1.#include 2.voidmain() 3.{ 4.intn,right; 5.cout<<""; 6.cin>>n; 7.cout<<""; 8.do 9.{ 10.right=n/10; 11.cout< 12.n%=10; 13.}while(n! =0) 14.cout< 15.} 四.编程题 1.编写一个程序,计算公司的当月工资。 已知基本工资是500元,总工资跟当月利润挂钩,利润超过10000元,奖金系数为0.25;超过5000元,奖金系数为0.2;超过2000元,奖金系数为0.15;超过1000元,奖金系数为0.1;1000元以内的不发奖金。 2.编写一个程序,输出13—100之间的全部素数。 要求每排10个素数,素数之间以空格分隔。 3.编写一个程序,输出如图3.19所示的效果。 * *** ***** ******* ***** *** * 4.输入某年某月某日,判断这一天是这一年的第几天。 一.选择题 1.以下定义数组的语句中正确的是()。 A.inta(10);B.charstr[]; C.intn=5;inta[4][n];D.#defineSIZE10;charstrl[SIZE],str[SIZE+2]; 2.对两个数组a和b进行如下初始化: staticchara[]=”abcd”; staticchara[]={‘a’,’b’,’c’,’d’}; 则下列叙述正确的是()。 A.a与b数组完全相同B.a数组比b数组长度长 C.a与b中都存放字符串D.a与b长度相同 3.下列语句中,不正确的是()。 A.staticinta[2][3]={1,2,3,4,5,6};B.staticinta[2][3]={{1},{4,5}}; C.staticinta[][3]={{1},{4}};D.staticinta[][]={{1,2,3},{4,5,6}}; 4.设有如下形式的字符数组定义: Staticcharstr[]=”Beijing”; 则执行下列语句后的输出结果为()。 cout< A.7B.5C.8D.9 5.在下面给出的语句中,()是对一维数组正确赋初值的语句。 A.inta[10]=”Thisisastring”;B.chara[]=”Thisisastring”; C.inta[3]={1,2,3,4,5,10};D.chara[]=”Thisisastring”; 6.已知对一维数组ns有如下说明: intns[10]; 要求使ns的所有元素取值0。 下面不正确的程序段是()。 A.for(j=0;j<=10;j++)ns[j]=0; B.ns[0]=0; for(j=1;j<10;j++)ns[j]=n[j-1]; C.for(j=1;j<=10;j++)ns[j]=0; D.ns[0]=ns[1]=ns[2]=ns[3]=ns[4]=ns[5]=ns[6]=ns[7]=ns[8]=ns[9]=0; 7.有说明语句: inta[][4]={1,5,8,7,12,22,9,41,55,27};则数组a第1维的长度应该是()。 A.2B.3C.4D.5 二.填空题 1.任何一个数组的数组元素具有相同的名字和___________. 2.统一数组中,数组元素之间是通过___________来加以区分的。 3.已知数组e定义为inte[][4]={{1,2,3,4},{5,6,7,8}};则e是一个_________行________ 列的二维数组,总共有_______个元素,最大行下标是________,最大列下标是_________,其首行的各元素的值分别是__________。 4.要使g成为具有如下初始值的二维int型数组,则最简单的定义g的语句是_____________. 10000 12000 12300 12340 12345 5.执行下列语句序列后,数组str2中的字符串是__________. Charstr1[]=”ABCD”,str2[10]=”XYZxyz”; for(inti=0;str2[i]=str1[i];i++); 6.有说明语句: Intx[][4]={{1},{2},{3}}; 那么元素x[1][1]的取值是_________. 7.下面的语句显示输出6行6列数组h的主对角线上的所有的元素,请补充完整。 for(inti=__________;i<_________;_________) cout<<__________<<’‘; 8下面的语句按行显示输出5行3列数组m的所有元素,请补充完整。 for(inti=__________;i<__________;__________) cout< for(_________;__________;j++) cout<<__________<,’‘; 三.程序阅读 1.写出下列程序的运行结果。 #include voidmain() { inti,a[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 习题集
![提示](https://static.bdocx.com/images/bang_tan.gif)