C++课后习题答案15.docx
- 文档编号:10626898
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:13
- 大小:19.14KB
C++课后习题答案15.docx
《C++课后习题答案15.docx》由会员分享,可在线阅读,更多相关《C++课后习题答案15.docx(13页珍藏版)》请在冰豆网上搜索。
C++课后习题答案15
C++课后习题答案1--5
习题答案1--5第一章C++概述习题答案
//P13
一、选择题
答案:
1A2A3B4B
二、简答题
1、C与C++语言的关系是什么?
答案:
C++包含了整个C,C是建立C++的基础。
C++包括C的全部特征、属性和优点,同时添加了对面向对象编程(OOP)的完全支持。
2、结构化程序设计与面向对象程序设计有什么异同点?
答案:
结构化的程序设计的主要思想是功能分解并逐步求精。
面向对象程序设计的本质是把数据和处理数据的过程当成一个整体——对象。
3、C++程序开发步骤:
答案:
建立一个工程;
编辑或者导入源文件;
编译源文件,产生目标代码;
目标代码和其他库文件连接为可执行文件。
运行可执行文件。
第二章数据类型和表达式习题答案
//P32
一、选择题
(1)B
(2)C(3)B(4)B(5)BD
二、简答题
1、下列变量名不合法的有哪些?
为什么?
A12-3、123、m123、_123、While
答案:
A12-3:
变量名中不能有‘-‘符号
123:
变量名不能一数字开始
_123、、While变量名合法。
2、下列表达式不正确的有哪些?
为什么?
inta=’a’;charc=102;charc="abc";charc=’\n’;
答案:
charc="abc";是不正确的,因为"abc"是字符串不能赋值给字符变量。
3、分析常量和变量的异同点?
答案:
常量是常数或代表固定不变值的名字,常量的内容初始化以后一直保持不变。
变量的内容可以在运行过程中随时改变。
变量要占用固定的内存地址,常量一般不占用内存,但是用const定义的常量也要占用内存。
4、字符串"ab\\\n"在机器中占多少字节?
答案:
5个字节。
分别是’a’;’b’;’\\’;’\n’;’\0’这五个字符。
5、运算结果2.5。
第三章C++流程控制习题答案
//P63
一、选择题
(1)C
(2)A(3)D(4)C(5)C
二、简答题
1、C++语言中while和do-while循环的主要区别是_________。
答案:
do-while的循环体至少无条件执行一次
2、过程化程序的有哪三种基本控制结构?
答案:
顺序结构、分支结构、循环结构
3、C++用于构成分支结构的语句有哪些?
构成循环结构的语句有哪些?
答案:
if…else和switch语句用于分支结构。
for、while、do…while语句用于循环结构。
4、以下程序执行的结果是什么?
voidmain()
{intx=3;
do
cout<<(x-=2)<<"";
while(!
(--x));
}
答案:
1-2
三、编程题(部分习题)
第3题
#include
voidmain()
{
floatb;inta;
cout<<"请输入原价:
";
cin>>b;
a=b/1000;
switch(a)
{
case0:
cout<<"现价为:
"<
case1:
cout<<"现价为:
"<
case2:
cout<<"现价为:
"<
case3:
case4:
cout<<"现价为:
"<
default:
cout<<"现价为:
"<
}
}
第4题
1:
12:
23:
6
4:
245:
1206:
720
#include
#include
voidmain()
{
intn,k;
doubles;
for(n=1;n<=6;n++)
{
s=1.0;
for(k=1;k<=n;k++)
s=s*k;
cout< "< if(n%3==0)cout< } } 第6题 1.1+(1+2)+(1+2+3)..... #include voidmain() { intn,i,d,sum; sum=0;d=0;i=1; cin>>n; for(i=1;i<=n;i++) { d=d+i; sum=sum+d; } cout<<"sum="< } 第10题 迭代法求根号a。 求平方根的公式为: xn+1=1/2(xn+a/xn),要求前后求出的x的差的绝对值小于10e-5。 #include #include voidmain() { doublea,x1,x2;; cin>>a; x1=a; while (1) { x2=(x1+a/x1)/2; if(fabs(x1-x2)<1E-5)break; x1=x2; } cout< } 第四章函数习题答案 //P91 四、编程题 第1题 编写一个函数,将华氏温度转换为摄氏温度。 公式为C=(F-32)*5/9。 #include floatswap(floatx) { floaty; y=(x-32)*(5.0/9); return(y); } voidmain() { floatf,p; cout<<"请输入一个华氏f的值: "< cin>>f; p=swap(f); cout< } 第2题 编写一个函数判断一个数是否为素数,并在主函数中通过调用该函数求出所有三位数的素数。 方法一、采用返回BOOL型,true表示是素数,false表示不是素数 #include boolPrime(intm) { inti; boolflag; flag=true; for(i=2;i<=m-1;i++) if(m%i==0) { flag=false;break; } returnflag; } voidmain() { intn; for(n=100;n<1000;n++) { if(Prime(n)==true)cout< } } 方法二采用返回整型,1表示是素数,0表示不是素数 #include intsh(intm) { intx; intflag=1; for(x=2;x if(m%x==0) {flag=0;break; } return(flag); } voidmain() { inti; for(i=101;i<=999;i++) if(sh(i))cout<<""< } 第3题 编写一个递归函数求满足以下条件的最大制值n: #include intgui_add(intsum,intn) { sum=sum+n*n; if(sum>1200)returnn; gui_add(sum,n+1); } voidmain() { cout<<"满足条件的最大制值n: "< } //满足条件的最大制值n: 14 第4题 编写一递归函数将所输入的5个字符按相反的顺序排列出来。 (递归) #include voidshuru(intn) { charc; if(n==0)return; cin>>c; n--;shuru(n);//shuru(n-1); cout< } voidmain() { shuru(5); } 第7题 编写一个函数,调用该函数能够打印一个由指定字符组成的n行金字塔。 其中,指定打印的字符和行数n分别由两个形参表示。 #include #include voidprint(intn,charp) { inti,j; for(i=1;i<=n;i++) { cout< for(j=1;j<2*i;j++) cout< cout< } } voidmain() { intm;charl; cout<<"请输入行数: "< cin>>m; cout<<"请指定一个字符: "< cin>>l; print(m,l);//不能cout< } 第8题 编写一个判断完数的函数。 “完数”是指一个数恰好等于它的因子之和,例如6=1+2+3,6就是完数。 #include booljin(intn) { ints=0,i; for(i=1;i if(n%i==0)s=i+s; if(s==n)returntrue; elsereturnfalse; } voidmain() { intn; cout<<"请输入一个整数: "; cin>>n; if(jin(n)==true) cout< else cout< } 第9题 编写一个将十进制数转换为二进制数的函数。 (递归) #include voidconvert_to_B(intn) { if(n==0) return; else convert_to_B(n/2); cout< } voidmain() { intn; cout<<"请输入一个10进制数: "; cin>>n; cout<<"转换后的2进制数为: "; convert_to_B(n); cout< } 第10题 编写一个函数,功能为求两个正整数m和n的最大公约数。 最大公约数,最小公倍数函数 #include intf(intx,inty)//最大公约数函数 { intt; if(x while(y! =0) {t=x%y;x=y;y=t;} returnx; } intg(intx,inty)//最小公倍数函数 { intt; t=f(x,y); return(x*y/t); } main() {inta,b,max,min; scanf("%d%d",&a,&b); max=f(a,b); min=g(a,b); printf("%3d%3d",max,min);} 第五章作用域和存储类型习题答案 //P108 一、选择题 (1)A (2)D(3)D 二、简答题 1、答案: 作用域是标识符在程序中有效的范围。 C++作用域有: --[if! supportLists]--> (1)局部(块)作用域 --[if! supportLists]--> (2)函数作用域 --[if! supportLists]-->(3)函数原型作用域 --[if! supportLists]-->(4)文件作用域 --[if! supportLists]-->(5)类作用域 2、答案: auto、register、extern、static存储类型。 3、答案: 他们在存储位置、初始化、生存期、作用域上有所不同。 全局变量在全局数据区分配空间,默认值为0,生存期为整个程序运行期间; 局部变量: 在栈区分配空间,没有赋初值时为随机数,在定义他的函数调用结束时,局部变量随之消失。 静态局部变量在全局数据区分配空间,默认初值为0,只被初始化一次,函数结束不消失,程序结束消失,生存期为整个程序运行期间。 静态全局变量只能被定义它的文件使用,其他文件不能使用。 外部全局变量不仅可以被定义它的文件使用,其他文件也能使用。 三、阅读题 1.运行结果 0 2 1 0 2.运行结果 MAIN: 511 FUNC: 62111 MAIN: 5111 FUNC: 83121
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课后 习题 答案 15