C++课后习题答案.docx
- 文档编号:5573610
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:66
- 大小:79.63KB
C++课后习题答案.docx
《C++课后习题答案.docx》由会员分享,可在线阅读,更多相关《C++课后习题答案.docx(66页珍藏版)》请在冰点文库上搜索。
C++课后习题答案
第1章C++及其开发环境概述
一、问答题
1.结构化程序设计主要有哪些劣势
【答案】
(1)程序的开发效率低下
(2)程序的可重用性差
(3)程序的维护成本高
(4)无法适应信息的快速膨胀和多样化
2.面向对象的程序设计有哪些优点
【答案】
(1)程序的开发效率高
(2)程序代码的可重用性高
(3)程序易于维护
3.C++的发展经历了哪些阶段
【答案】
C++语言起源于C语言。
1980年初期,美国贝尔实验室的BjarneStroustrup博士及其同事在C语言的基础上,从Simula67中引入面向对象的特征,开发出一种过程性与对象性相结合的程序设计语言,最初称为“带类的C”,1983年正式取名为C++。
后来,Stroustrup和他的同事陆续将运算符重载、继承、虚函数等特性引入C++,1989年后推出AT&TC++版,并经过多次改进和完善,发展成为现在的C++。
4.C++主要有哪些特点
【答案】
(1)C++可以被看成C语言的一个超集,是对C的增强和扩展。
因此,许多C代码可以不经修改即可为C++所用。
自然,也可以利用C++开发环境来开发C程序。
(2)C++几乎支持所有面向对象的程序设计特征,因此,利用C++不仅可以进行传统的结构化程序设计,而且可以较好地进行面向对象的程序开发。
(3)C++很好地保持了C的简洁、高效、灵活和接近汇编语言的特点,因此,C++程序的执行效率也很高。
5.一个C++程序一般由哪几部分构成
【答案】
①预处理命令。
C++提供了三种预处理命令,即宏定义命令、文件包含命令和条件编译命令。
②全局声明部分。
此部分内容通常会给出用户自定义的数据类型声明,以及程序中所涉及变量的定义,例如类的声明。
③函数。
一个程序中可包含一个或多个函数,它们是执行用户指定操作的主要部分。
6.使用VisualC++开发C++程序时一般要经过哪几个步骤每个步骤的作用是什么相应地产生哪些文件
【答案】
(1)编写程序
C++是一种高级语言,所以用其编写的程序称为“源程序”,以.cpp做为后缀。
我们可以利用VisualC++、TurboC++等编译软件来编写C++源程序。
(2)编译程序
计算机不能识别高级语言,为了将源程序翻译成计算机可识别的二进制指令,需将源程序进行编译,编译之后的文件称作“目标文件”,以.obj作为后缀。
编译时以每个源程序单元为单位,每一个源程序文件编译成一个目标文件。
因此,如果一个工程中有多个源程序单元,系统会分别将其编译成多个目标文件。
另外,编译时系统会自动进行错误检查,一旦检查出有错误,便不会生成目标文件,需改正后重新编译。
(3)连接目标文件
一个程序中可能会包含很多文件,编译后会生成很多独立的目标文件,此时系统的“连接程序”将这些目标文件和库文件以及系统提供的其他信息连接起来,形成二进制可执行文件,以.exe为后缀。
(4)运行程序
运行二进制可执行文件,得到运行结果。
如运行结果不正确,则需修改源文件,之后重新编译运行。
二、分析运行结果
1.
#include
usingnamespacestd;
intmain()
{
cout<<"My"<<"sister";
cout<<"is"<<"a";
cout<<"beautifulgirl!
"< return0; } 运行结果为: Mysisterisabeautifulgirl! 2. #include usingnamespacestd; intmain() { inta,b,c; cin>>a>>b; c=a+b; cout<<"a+b="< return0; } 运行结果为: 23↙ a+b=5 第2章C++程序设计基础(上) 一、选择题 (1)在一个C++程序中,main函数的位置()。 A.必须在程序的开头B.必须在程序的后面 C.可以在程序的任何地方D.必须在其他函数中间 【答案】C (2)用C++语言编写的源程序要变为目标程序必须要经过()。 A.解释B.汇编C.编辑D.编译 【答案】D (3)C++程序基本单位是()。 A.数据B.字符C.函数D.语句 【答案】C (4)C++程序中的语句必须以()结束。 A.冒号B.分号C.空格D.花括号 【答案】B (5)下列选项中,全部都是C++关键字的选项为()。 A.whileIFstaticB.breakchargo C.sizeofcaseexternD.switchfloatinteger 【答案】C (6)下列正确的八进制整型常量表示是()。 A.0a0B.015C.080D.0x10 【答案】B (7)在下列运算符中,()优先级最高。 A.<=B.*=C.+D.* 【答案】D (8)在下列运算符中,()优先级最低。 A.! B.&&C.! =D.: 【答案】D (9)设i=1,j=2,则表达式i+++j的值为()。 A.1B.2C.3D.4 【答案】C (10)设i=1,j=2,则表达式++i+j的值为()。 A.1B.2C.3D.4 【答案】D (11)在下列表达式选项中,()是正确。 A.++(a++)B.a++bC.a+++bD.a++++b 【答案】C (12)已知i=0,j=1,k=2,则逻辑表达式++i||--j&&++k的值为()。 A.0B.1C.2D.3 【答案】B (13)执行下列语句后,x的值是(),y的值是()。 intx,y; x=y=1;++x||++y; A.不确定B.1,1C.2,1D.2,2 【答案】C (14)已知x=5,则执行语句x+=x-=x*x;后,x的值为()。 A.25B.40C.-40D.20 【答案】C (15)设a=1,b=2,c=3,d=4,则条件表达式a c d的值为()。 A.1B.2C.3D.4 【答案】A (16)逗号表达式(x=4*5,x*5),x+25的值为()。 A.25B.20C.100D.45 【答案】C 二、写出下列数学表达式的C++算术表达式 (1) (2)x{x[x(ax+b)+c]+d}+e (3) (4) (5) (6)log10(a2+ab+b2) 【答案】 (1)1/(1+1/(1+1/(x+y))) (2)x*(x*(x*(a*x+b)+c)+d)+e (3)log(1+pow(fabs((a+b)/(a–b)),10) (4)sqrt(1+2*cos(48*180)) (5)1/tan((1-x*x)/(1+x*x)) 或者cos((1-x*x)/(1+x*x))/sin((1-x*x)/(1+x*x)) (6)log10(a*a+a*b+b*b) 三、用关系表达式或逻辑表达式表示下列条件 (1)i整除j (2)n是小于正整数k的偶数 (3)1<=x<10(4)x,y其中有一个小于z (5)y [–100,–10],并且y [10,100] (6)坐标点(x,y)落在以(10,20)为圆心,以35为半径的圆内 (7)三条边a,b和c构成三角形 (8)年份Year能被4整除,但不能被100整除或者能被400整除 【答案】 (1)i%j==0 (2)(n (3)1<=x&&x<10(4)x (5)! (y>=-100&&y<=-10)&&! (y>=10&&y<=100) (6)sqrt(pow((x-10),2)+pow((y-20),2))<35 (7)a+b>c&&b+c>a&&c+a>b (8)(year%4==0)&&(year%100! =0)||(year%400==0) 四、阅读下列程序,写出执行结果 (1) #include usingnamespacestd; voidmain() { inta=1,b=2,x,y; cout< cout< x=! a>b; y=x--&&b; cout< cout< } 【答案】 4 2 -1 0 (2) #include usingnamespacestd; voidmain() { intx,y,z,f; x=y=z=1; f=--x||y--&&z++; cout<<"x="< cout<<"y="< cout<<"z="< cout<<"f="< } 【答案】 x=0 y=0 z=2 f=1 五、编程题 (1)输入一个三位整数,将它反向输出。 【解答】 #include usingnamespacestd; voidmain() {intx,i,j,k; cout<<"pleaseinputx: "; cin>>x; i=x/100; j=(x-i*100)/10; k=x-i*100-j*10; cout< } (2)输入平面上某点横坐标x和纵坐标y,若该点在由图2-8表示的方块区域内,则输出1;否则,输出0。 图2-8正方形 【解答】 #include usingnamespacestd; voidmain() {floatx,y,b; cout<<"pleaseinputx,y: "; cin>>x>>y; b=(-2<=x)&&(x<=2)&&(-2<=y)&&(y<=2); cout< } 第3章C++程序设计基础(下) 1.设有函数关系为 ,下面选项中能正确表示上述关系的语句为()。 A.y=1;B.y=-1; if(x>=)0if(x! =0) if(x==0)y=0;if(x>0)y=1; elsey=-1;elsey=0 C.if(x<=0)D.y=-1; if(x<0)y=-1;if(x<=0) elsey=0;if(x<0)y=-1; elsey=1;elsey=1; 【答案】C 2.假设i=2,执行下列语句后i的值为()。 switch(i) {case1: i++; case2: i--; case3: ++i;break; case4: --i; default: i++; } A.1B.2C.3D.4 【答案】B 3.已知inti=0,x=0;下面while语句执行时循环次数为()。 while(! x&&i<3){x++;i++;} A.4B.3C.2D.1 【答案】D 4.已知inti=3;下面do~while语句执行时循环次数为()。 do {i--;cout< =1); A.1B.2C.3D.无限 【答案】B 5.下面for语句执行时循环次数为()。 for(inti=0,j=5;i<=j;) { cout< i++;j--; } A.0B.1C.3D.5 【答案】C 6.以下程序段为死循环的是()。 A.for(intx=0;x<3;){x++;};B.intk=0; do{++k;}while(k>=0); C.inta=5;while(a){a--;};D.inti=3;for(;i;i--); 【答案】B 二、阅读下列程序,写出执行结果 1. #include<> voidmain() { inta,b,c,d,x; a=c=0;b=1;d=20; if(a) d=d-10; elseif(! b) if(! c) x=15; elsex=25; cout< } 【答案】 20 2. #include<> voidmain() { inta=0,b=1; switch(a) { case0: switch(b) { case0: cout<<"a="< case1: cout<<"a="< } case1:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课后 习题 答案