C++ 习题册参考答案1.docx
- 文档编号:30654931
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:71
- 大小:45.90KB
C++ 习题册参考答案1.docx
《C++ 习题册参考答案1.docx》由会员分享,可在线阅读,更多相关《C++ 习题册参考答案1.docx(71页珍藏版)》请在冰豆网上搜索。
C++习题册参考答案1
习题一
1.请比较高级程序设计语言、低级程序设计语言各有什么优缺点。
答:
低级语言与计算机硬件联系紧密,涉及到许多计算机底层操作的细节,要求程序员详细说明由计算机执行的每一步操作,这样的特性决定了使用低级语言是很繁琐和易错的;低级语言指令会因为硬件型号不同而有很大差异,使得用其编写的程序不具有可移植性。
高级语言不涉及计算机底层的硬件,它提供较高层次的抽象,使用高级语言,编程者可以远离机器细节;高级语言不是面向机器的,而是面向问题的,这样更加接近编程者习惯的思维;高级语言编写的程序具有一定的可移植性。
2.请同学们课后查阅有关文献资料,叙述什么是软件危机?
答:
软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重的问题。
概括地讲,软件危机包含下述两方面的问题:
如何开发软件以满足对软件日益增长的需求;如何维护数量不断膨胀的现有软件。
3.请总结C++语言都有哪些特点?
答:
习题二
一、仔细阅读下面的程序代码,分析其中有无错误
1.答:
缺少#include
cout<<"Thisisastring"后加;
1.voidmain()
{
cout<<"Thisisastring"
}
2.答:
缺少x变量的定义
cout<<"p=<
cout<<"p="<
2. #include
voidmain()
{
cin>>x;
intp=x*x;
cout<<"p=<
}
3.答:
j变量没有初始化
Cout使用<<而不是>>
3. #include
voidmain()
{
inti,j;
i=5;
intk=i+j;
cout>>"i+j=">>k>>"\n";
}
二、阅读下列各个程序段,若无错误则写出运行结果
1.运行结果为:
98
1.#include
voidmain()
{
inta;
charch;
ch='a';
ch++;
a=ch;
cout< } 2.运行结果为: 10,-5.2 2. #include voidmain() { inta=10; floatb=-5.2; cout< } 3.运行结果为: 97,a 3. #include voidmain() { inta=97; charch=a; cout< } 4.运行结果为: 3.1416 65 65 00065 4. #include #include voidmain() { doublea=3.1415926; intb=65; cout< cout< cout< } 三、简答题 1.已知x=2,y=3,z=4,计算下列表达式的值: (1)A1=x+y+1/2+z (2)A2=x+(y+2)/(2-z) 答: A1=2+3+0+4=5+0+4=9 A2=2+(3+2)/(2-4)=2+5/-2=2-2=0 2.计算下列表达式的值: (1)1/2+5/2+7/6 (2)1/2.0+5/2.0+3.0 (3)1/2+5./2+2 (4)(unsignedchar)500+200 (5)(unsignedchar)(500+200) (6)(unsignedint)(unsingnedchar)750 答: (1)为3; (2)为6.0;(3)为4.5;(4)为644;(5)为188;(6)为238; 3.已知inta=5,b=0;下面表达式运算后a和b的值是多少? (1)! a&&a+b&&a++ (2)! a||a++||b++ 答: (1)a=5,b=0 (2)a=6,b=0 4.若有下面变量声明语句: inta=4,b; 指出下面表达式运算后a和b的结果? b+=b=++a; 答: 、编程题 1.从键盘输入两个整数a、b,输出其中较大的那个数。 答: #include voidmain() { inta,b; intmax; cout<<"pleaseinputaandb: "; cin>>a>>b; max=(a>b)? a: b; cout<<"a和b其中最大的是: "< } 2.编写一段程序,使用sizeof()运算符测试你所用机器的int,float,double,long,char等类型变量存储所需的字节数。 答: #include voidmain() { cout<<"Variablesoftypeintuse"< cout<<"Variablesoftypefloatuse"< cout<<"Variablesoftypedoubleuse"< cout<<"Variablesoftypelonguse"< cout<<"Variablesoftypecharuse"< } 3.输入华氏温度F,输出摄氏温度C。 它们的换算公式为: C=5(F-32)/9。 答: 参考程序如下: #include voidmain() { doubleF,C; /*输入部分*/ cout<<"请输入华氏温度: "; cin>>F; /*计算部分*/ C=5.0*(F-32.0)/9.0; /*输出部分*/ cout<<"相应的摄氏温度为: "< } 4.输入球半径r,输出球的表面积及体积。 答: #include constdoublePI=3.1415; voidmain() { doubleR,C,S,V; /*输入部分*/ cout<<"请输入半径: "; cin>>R; /*计算部分*/ C=2.0*PI*R; S=PI*R*R; V=4.0*S*R/3.0; /*输出部分*/ cout<<"圆周长为: "< cout<<"圆面积为: "< cout<<"圆球体积为: "< } 习题三 一、选择题 1.下列语句哪一项不能正确将x,y的值进行交换: (D) A.x=x+y,y=x-y,x=x-y; B.t=x,x=y;y=t; C.t=y,y=x,x=t; D.x=t,t=y,y=x 2.在if后面号中表示a不等于0的时候值为"真",正确的表达式为: (D) A.a<>0 B.! a C.a=0 D.a 3.循环语句for(inti=0,j=10;i=j=10;i++,j--);的循环次数是: (A) A.无限次 B.语法错误,不能执行 C.10 D.1 4.以下哪个语句不是循环语句: (D) A.while语句 B.do-while语句 C.for语句 D.if-else语句 5.下列do-while循环的循环次数是: (D) inti=5; do { cout< i--; }while(i! =0) A.0 B.2 C.5 D.无限次 6.下面for循环的循环次数是: (B) for(inti=0,x=0;! x&&i<=5;i++); A.5 B.6 C.1 D.无限次 二、编程题 1.从键盘输入三个整数a、b、c,输出其中的最大数。 答: #include voidmain() { inta,b,c; intmax; cin>>a>>b>>c; max=a; if(b>max) max=b; elseif(c>max) max=c; cout< } 2.请同学们课后查阅有关资料,了解什么是素数。 然后求出2-100之间的所有素数,并以10个数为一行输出。 答: #include voidmain() { inti,j; for(i=2;i<=100;i++) { for(j=2;j { if(i%j==0) break; } if(j==i) { cout< } } } 3.输入一行字符,分别统计其中英文字母、数字及其他符号的个数。 答: #include #include voidmain() {charc; intletters=0,digit=0,other=0; cout<<"pleaseinputachar: \n"; while((c=getchar())! ='\n') {if(c>='a'&&c<='z'||c>='A'&&c<='z') letters++; elseif(c>='0'&&c<='9') digit++; else other++; } cout<<"字母数: "< <<"数字数: "< <<"其他字符数: "< } 4.求满足下式的最小n值,其中的limit可用户从键盘输入。 答: #include voidmain() { intlimit; doublesum=0; cin>>limit; intn=0; do {n++; sum+=1.0/n; }while(sum<=limit); cout<<"sum="< <<"n="< } 5.菲波那切数列的特征是: 前两项为1,以后每一项为前两项之和。 编程输出菲波那切数列的前40项。 答: #include voidmain() { inta=1,b=1,c; cout< for(inti=3;i<=40;i++) { c=a+b; cout< a=b;b=c; if(i%5==0) cout< } } 6.输入学生百分制成绩,输出五分制成绩,即“优秀”、“良好”、“中等”、“及格”与“不及格”。 答: #include voidmain() { inta; cin>>a; switch(a/10) { case10: case9: cout<<"优秀";break; case8: cout<<"良好";break; case7: cout<<"中等";break; case6: cout<<"及格";break; case5: case4: case3: case2: case1: case0: cout<<"不及格";break; default: cout<<"输入错误1";break; } } 7.编程求解下列问题: (1)所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。 例如,153是水仙花数,因为153=13+53+33。 请输出1000以内的所有“水仙花数”。 答: #include voidmain() { for(inti=1;i<=9;i++) for(intj=0;j<=9;j++) for(intk=0;k<=9;k++) if(i*i*i+j*j*j+k*k*k==100*i+10*j+k) cout<<(100*i+10*j+k)<<"是水仙花数.\n"; } (2)所谓“完数”,是指一个数恰好等于它的因子之和。 例如6是完数,因为6=1+2+3。 请输出求10000之内的所有“完数”。 答: #include voidmain() { for(inti=1;i<10000;i++) { intsum=0; for(intj=1;j<=i/2;j++) if(i%j==0) sum=sum+j; if(sum==i) cout< } } 8.应用题: (1)猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,只剩一个桃子了。 编程求第一天共摘下多少桃子。 答: #include voidmain() { intpeachs=1; for(inti=1;i<10;i++) peachs=(peachs+1)*2; cout<<"第一天共摘下"< } (2)若一头小母牛,从出生起第四个年头开始,每年生一头母牛。 按此规律,第n年时有多少头母牛? (n由键盘输入)。 答: #include voidmain() { intn; longa=1,b=1,c=1,temp; cout<<"pleaseinputavalue: \n"; cin>>n; for(inti=4;i<=n;i++) { temp=a+c; a=b; b=c; c=temp; } cout< } 习题四 一、仔细阅读下列程序,若无错误请给出运行结果 1. 1.运行结果为: 25 #include intadd(inta,intb); voidmain() { externintx,y; cout< } intx=20,y=5; intadd(inta,intb) { ints=a+b; returns; } 2. 2.运行结果为: 6,11 6,12 #include voidfn(intn) { intx=5; staticinty=10; if(n>0) { ++x; ++y; cout< } } voidmain() { intm=1; fn(m); fn(m); } 3. 3.运行结果为: 随机数 分析这道题首先要弄清楚两点: 1: 未赋初值的变量,它的值是什么。 2: 形参变量的值和实参变量的值的关系。 本题在main函数中定义了一个整型变量c,系统为其分配了一个存储单元。 此单元中的原有信息并未被清除,这时变量c的值是不确定的"随机数"。 调用函数fun时,将实参常量2和3分别传给了形参a和b,实参变量c中的随机值传给了形参变量c。 通过函数fun的运算,形参变量c中存放了a*b的运算结果,这一结果并不能反馈给实参变量c。 因此在主函数中输出的c值是一个不确定的值。 #include"iostream.h" fun(inta,intb,intc) { c=a*b; } voidmain() { intc; fun(2,3,c); cout<<"c="< } 4.#include"iostream.h" voidoutputab(inta,intb) { cout<<"a="< a=100; 4.运行结果为: a=300b=400 a=300b=400 b=200; } voidmain() { inta=300; intb=400; outputab(a,b);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 习题册参考答案1 习题 参考答案