c++程序设计课后习的题目详解杨长兴,刘卫国主编1111_第1页
c++程序设计课后习的题目详解杨长兴,刘卫国主编1111_第2页
c++程序设计课后习的题目详解杨长兴,刘卫国主编1111_第3页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、习题一> 选择题1. C2. C 3.B4.C5.C6.D7.C8.A9.B10.D1、填空题1.算法2.mai n3.;4. cpp objexe5.符号定义6.是10是117. d ouble 18.-2649.是410.m-m/n*n11 a为6b为4c 为 212.为1问答题1 . 有点。计算机程序设计语言模型是更规则、无二意性的语言模型。2 . 书 P33. .dsw 、.dsp、.nep、.cpp4 .提高程序的可读性、可维护性。在行注释前加“/ ”段注释放入“ /*”和“*/”之间。注释对原程序的编译和运行没影响。5 .设置符号常量主要提高源程序的可读性、维护性。区别:1.

2、识别时,主要看符号的定义;2.运行时,符号常量不能改变值而变量可改变。6 .字符常量通常指一个字符,存储单元为一个字节;字符串可包含多个字符,存储单元为字符数加1个字节。7.1.0、1.1e2 类型:double; 1L、65536 类型:long8 . int、new 不是,因为是关键字;abc、Ixyz、a_0、Hello、aaaaa、_a 是合法的标识符;a+b、!A不是,因为+、!是运算符。0_abc不是是因为数字开头;d$a不 是是因为标识符不应包含$9.合法:(1 )、(5)、(6)10 .全部都是。11 .a=2;b=112 .2;-2;6、4、40、-3、313 .(1) 4

3、a=3 b=4 c=5;(2)5 a=3 b=4 c=6;(3)-9 a=3 b=5 c=5;(4) 4 a=4 b=4 c=414 .(1) (float) k(2)x-i nt(x)(3)m/10%10(ch>=' A'&& ch<= ' Z' )?(ch= ' a' +ch- A' ):ch习题二四、选择题1.B2. C3.A4.B5.B五、填空题1. if2. dowhile和for3.循环体 循环体 4. 1n+1 n5. 5,4,6三、程序阅读题15 .m=516 .1 4,2 6,2 3,3 5,

4、5 6,c=37六、程序设计题1 . #inelude <iostream>#inelude <cmath>using namespace std;float a,b,c,s,area;void main()cout«" 输入a b c:"cin>>a»b»c;if (a+b>c)&&(a+c>b)&&(b+c>a)s=(a+b+c)/2;cout<<" 面积="<<sqrt(s*(s-a)*(s-b)*(s-c);

5、elsecoutvv"输入的不是三角形的三条边"2. 见实验教程p27 4.3. #i nclude <iostream.h>void main()float x,y;cout«"输入购物款:"cin>>x;switch (in t(x/1000) case 0:y=x;break;case 1:y=x*0.95;break;case 2:y=x*0.9;break;case 3:y=x*0.85;break;default:y=x*0.8;cout«"优惠款为:"vvyvvendl;4.

6、见实验教程p28 5.5. #in clude <iostream>using namespace std;int i,n;long js=1;void main()cout«"输入n:"cin»n;for (i=1;i<=n ;i+)js*=i;coutv <n< v"!二"<<js;6. #in elude <iostream>#inelude <cmath>using namespace std;int n=1;float pi=0,x n=4;void main

7、() while (fabs(x n)>1.0e-8) pi+=x n;n+;x n=-4.0*sig n(x n)/(2* n-1);cout<<"n="<<pi;7. #i nclude <iostream.h>void main() int i,j,sum;for(i=2;i<=1000;i+) sum=0;For (j=1;j<i;j+)if (i%j=0) sum+=j;if (sum=i)coutwivv""For (j=1;j<i;j+)If (i%j=0) coutwjw&quo

8、t;,"Cout<<e ndl;8. #i nclude <iostream.h>void main() int x,y,z;精彩文档For (x=1;x<10;x+)For (y=1;y<12;y+) z=20-x-y;If (5*x+4*y+2*z=50)"<<z;Coutvv"公猴:"vvxvv"母猴:"vvyvv"小猴:9. 见教程p60例2.2310. 见实验教程p32 5.习题三七、选择题1. B2.B3.C4.D5.D八、填空题1. 函数头 省略 能省略 应加“;

9、”函数头 不加“;”2. i nline flat f(in t,char)3. 函数体外外部内部(静态)static 文件位置extern4. 生存期作用域作用域生存期作用域本文件5. -22100-3三、程序阅读题17 .S=4018 .y=12919 . max=820 .S=29a)程序设计题1. #i nclude <iostream.h>float add(i nt x,i nt y) return (float)(x+y);float fac(i nt n) int i;float s=1;For (i=1;i<=n ;i+) s*=i;void main()

10、int m,ncout«" 输入整数 m n:"cin»m»n;cout<<m<<"!+"< <n< v"!二"<<add(fac(m),fac (n) <<e ndl;2. #in clude <iostream.h>#include <math.h>int isprime(i nt n) int i;float k;k=sqrt (n);for (i=2;i<k;i+) if (n %i=0) return

11、 0; return 1;void main() int s=0,i;for (i=2;i<=100;i+)if (isprime(i) s+=i;coutvv"和:"v<s<ve ndl;3. 非递归:float pow(float a,i nt n) int i;float s=1;for (i=1;i<=n ;i+)s*=a;return s;递归:float pow(float a,i nt n) float s;if (n=0)return 1;elses=pow(a, n-1)*a;return s;4. 非递归:float sum(i

12、nt n) float s;int i;for (i=1;i<=n ;i+) s+=i;return s;递归:float sum(i nt n) float s;if (n=1)retru n 1;elses=su m(n-1)+n;return s;精彩文档5. #in elude <iostream.h>in li ne int ischar(char n) if (n <=127) return 1;return 0;void main() char a;cout«"输入字符:"cin> >a;if (ischar(a)

13、cout<<a<<e ndl;elsecoutvv"输入的不是英文字符:"6. file1.cppfloat fac(i nt n) int i;float s=1;For (i=1;i<=n ;i+) s*=i;File2.cpp#include <iostream.h>float pow(float a,i nt n) int i;float s=1;for (i=1;i<=n ;i+)s*=a;return s; void main()精彩文档 int a,b ,n;cout«"输入 a b n :

14、cin> >a>>b> >n; cout«fac(a)/pow(b, n);习题四程序设计题:1. #i nclude <iostream.h>void main() int a10,i,j,k,tem;cin> >ai;for (i=0;i<10;i+)coutvv"输入第"<<i+1<<" 个整数:"for (i=0;i<=8;i+) k=i;for (j=i+1;j<=9;j+)if (ak<aj) k=j;tem=ai;ai=ak

15、;ak=tem; cout<<aivv"t"2. 设:数组的大小为n,插入函数如下:int in sert(i nt a,i nt n) int b,i=0,k;Cout« "输入整数:"cin> >b;while (b>ai && i<=n)i+;if (i<=n) for (k=n;k>i;k-) ak=ak-1;ai=b;return 1;elsecoutvv"该数不能插入";return 0;3. #i nclude <iostream.h>

16、int a100,i,k,b;void mai n() i=1;while (i<=100)coutvv" 输入第"vvivv"个整数:"c in >>b;for (k=0;k<i-1;k+)if (ak=b) break;if (k=i-1) ai+-1=b;4. #in clude <iostream.h>#defi ne Inum 10#defi ne cnum 10void main() float al nu mc nu m,max,mi n;int i,j,k,l,fb=1;/输入数给数组for (i=0;

17、i< lnu m;i+)for(j=0;j<c nu m;j+)coutvv"输入"vvivv" 行"vvjvv" 列数:"ci n>>aij;/找鞍点,先找出一行中的最大点,然后在同列中确定是否为最小点for (i=0;iv lnu m;i+) l=0;精彩文档for(k=1;k<c nu m;k+)if (ail<aik) l=k;for(k=0;k<c nu m;k+)if (ail>alk) break;if (k=c num) coutvvivv" 行"vv

18、lvv"列元素为鞍点:" fb=0;elseif (fb) cout«"该数组无鞍点";5. void f(int a,i nt n) int i,tem;for (i=0;i< n/2;i+)tem=ai;ai=a n-1-i;a n-1-i=tem;6.i nt f(char *s) int n=1;char *p,*p1;n=strle n(s);p=s;p1=s+n-1;while (p<p1) if (*p!=*p1)return 0;elsep+;p1-return 1;精彩文档7. #i nclude <iost

19、ream.h>#include <string.h>void main() char str1100,str250,*p=str2;int n;Cout«"输入字符串"Cin .get(str1,100);n=strle n( str1);for (i=0;i <n ;i=i+2)*(str2+i/2)=str1i;*(Str2+i/2)=null;cout<v"str1:"vvstr1vve ndl;cout<v"str2:"vvstr2vve ndl;8. #i nclude <

20、iostream>using n amespace stdvoid mai n() int i,superc n=0 ,lowc n=0,spacec n=0,nu mberc n=0 ,otherc n=0; char a100;cout<< ”输入字串:”;ci n.get(a,100);while (ai) if (ai>=' A'&& ai<=' Z' ) supercn+;else if (ai>=' a'&& ai<=' z' ) lowcn+;

21、else f (ai= ')spacec n+;else if (ai>=' 0'& ai<= ' 9' ) numbercn+;else otherc n+;cout<< ” 大写字母数:” vvsupercn<<endl;cout<< ” 小写字母数:” vvlowcn<<endl;cout<< ”空格数:” vvspacecn<<endl;coutvv ” 数字字母数:” <<numbercn<<endl; coutvv ” 其它字母

22、数:” vvsupercn<<endl;9. #i nclude <iostream>using n amespace stdvoid mai n() int i,lable=0,co un t=0;char a100;coutvv ”输入字串:”;ci n.get(a,100);while (ai) if (ai= ' && lable)co un t+;label=0;else if(ai!='')lable=1;i+;coutvv ”单字个数:” <<count<<endl;10. #include

23、<iostream>#in clude <stri ng> using n amespace std;void mai n() int i,max n=0 ,maxxb,m=0;char a40100;coutvv"输入各行:"<<endl;for (i=0;i<40;i+) cin .getli ne(ai,100);m=strle n( ai);if (m=0) break;if (m>max n) maxxb=i;max n=m;cout<<amaxxbvve ndl;11. # in elude <i

24、ostream>#in elude <stri ng>using n amespace std;void mai n() int i,n, m,j,k;char a40100,b100;coutvv"输入各国家名(一个国家一行):"vvendl;for (i=0;i<40;i+) cin .getli ne(ai,100);m=strle n( ai);if (m=0) break else n+;for (i=0;i< n-2;i+) k=i;for (j=i+1;j <n-1;j+)if (strcpy(ak,aj)>0) k=

25、j;if (k!=i) strcpy(b,ai);strcpy(ai,ak);strcpy(ak,b);) for (i=0;i <n ;i+) cout<vaivve ndl;12.int find( char *s, char *word) char *p1,*p2,lable=1,firstspace=1;P仁s;p2=word;while (*p1) if (*p1='')firstspace=1;else if (firstspace=1) lable=1;while (*p1!=' ' && *p1 &&

26、*p2)if (*p1!=*p2) lable=0;p1+;p2+;if (lable && !*p2 && (*p1=' ' | !*p1)return 1;if (!*p1) return 0;if (*p1=' ') firstspace=1; else firstspace=0; p2=word;p1+;return 0;习题五九、选择题1.A2.D3.C4.A5.D十、填空题1. struct 2.typedef 3.1024. newdelete卜一、程序阅读题程序1:65 A_ chdu 0x1400000065ac

27、hu 0x61000000I cha c0xch0000000xd10x41000000程序2:10,20,7,9四、程序设计题1.#i nclude <iostream> using n amespace std;struct date int year;int mon th;struct stude nt long num;char n ame9;char sex;date birth;float totalscore;char hometow n 20;Void mai n() stude nt s5,s1;char i,j,m5;for (i=0;i<5;i+) cout« ”输入第” <<i nt(i+1)<<”个学生的学号:”;cin> >si. num;cout« ”姓名:”;ci n.get(si. name,9);ci n.readsome(m,5);cout« ”性别:”;cin> >si.sex;ci n.readsome(m,5);coutvv ”输入出生年 月:”;ci n> >si.birth.year>>si.birth.mo nth;co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论