c++解析与实训参考答案.docx
- 文档编号:7320450
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:107
- 大小:47.60KB
c++解析与实训参考答案.docx
《c++解析与实训参考答案.docx》由会员分享,可在线阅读,更多相关《c++解析与实训参考答案.docx(107页珍藏版)》请在冰点文库上搜索。
c++解析与实训参考答案
《解析与实训》习题及实验
参考解答
第一章
一、选择题
1.A2.D3.A4.B5.A6.D7.D8.C9.D10.C
11.D12.C13.B14.A15.C16.B17.A18.B19.B20.D
21.A22.D23.B24.B25.B26.A27.C28.B29.D30.C31.A
注:
第八题选项印刷错,应为:
A.c1="2"B.c1=’\x255’C.c1=’\255’D.c1="A"
二、填空题
1.#include
2.编译连接
3..cpp.obj.exe
4.十
5.setw()iomanip.h
6.abc
7.ab(注:
输出第二项是空格)
8.10
9.1
10.字符
11.八十六
12.4.0
13.;(分号)
14.10570
15.60
16.8
17.7
18.15
19.int(x)或(int)x
三、编程题
1.
#include
#definePI3.1415926
voidmain()
{
floatr,h,area;
cout<<"输入圆柱体的半径和高(r,h):
"< cin>>r>>h; area=PI*r*r*h; cout<<"圆柱体的体积为: "< } 2. #include voidmain() { intx,a,b,c,m,n; cout<<"输入一个三位整数x: "< cin>>x; a=x/100; b=x/10%10; c=x%10; m=c*100+b*10+a; n=m-x; cout<<"反序组成的新3位整数为: "< cout<<"新3位整数减去原3位整数的值为: "< } 四、实验 1. #include voidmain() { cout<<"中华人民共和国"< } 2. #include voidmain(void) {inta,b,c; cin>>a>>b; c=a+b; cout<<"c="< } 3.结果: 10101 (1)结果为: 101616810 (2)换成dec结果为: a10108a 换成oct结果为: 1220201012 4. #include #include voidmain(void) {inta,b,c,s,area; cout<<"输入三角形三边长a,b,c: "< cin>>a>>b>>c; s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); cout<<"三角形面积为: "< } 第二章 一、选择题 1.B2.A3.A4.C5.B6.C7.B8.B9.B10.D 11.B12.D13.D14.D15.A16.D17.C18.C19.A20.C 21.B22.A23.D24.A25.B26.B27.D28.C29.B30.D 31.B32.A33.C34.C 二、填空题 1.选择结构循环结构 2.if 3.breakcontinue 4.循环语句switch语句 5.循环语句 6.11结束循环体的语句 7.60,30 8.d=20 9.1 10.10 11.y=0y=5y=30error 12.117 13.2,3 14.2,3 15.# 16.s=6,k=5 17.5711 13 18.02468 19. ****** ** ** ****** 20. (1)Year/4! =0 (2)Year/100! =0 (3)Year/400! =0 21. (1)a (2)t=a;a=d;d=t; (3)b 22. (1)c+=5 (2)c=c-21 23. (1)ch>='a'&&ch<='z'||ch>='A'&&ch<='Z' (2)ch-=32 (3)ch+=32 24. (1)x>2&&x<=10 (2)x>-1 (3)y=-1 25. (1)inti=200 (2)i<=300 (3)i/100+i/10%10+i%10==12&&(i/100)*(i/10%10)*(i%10)==42 26. (1)i<=100 (2)t=s/i (3)s=-s 27. (1)n(或n! =0) (2)n<0 (3)n/=10 28. (1)n=k*k (2)b=n/10%10 (3)a==b||b==c||c==a 29. (1)i<=30 (2)a=a*2 30. (1)m=n (2)m (3)k>s 31. (1)x1 (2)x1=x2 32. (1)d<=4 (2)a+i*d 三、编程题 1. #include voidmain() {intx,y,t,m,n; cout<<"输入两个整数(x,y): "< cin>>x>>y; if(x>y){t=x;x=y;y=t;} for(inti=x;i>0;i--) if(x%i==0&&y%i==0){m=i;break;} for(i=y;;i++) if(i%x==0&&i%y==0){n=i;break;} cout< "< cout< "< } 2. #include voidmain(void) {ints; charscore; do{ cout<<"请输入百分制分数(0-100): "; cin>>s; }while(s<0||s>100); switch(s/10){ case10: case9: score='A';break; case8: score='B';break; case7: score='C';break; case6: score='D';break; default: score='E';break; } cout<<"百分制分数为: "< "< } 3. #include #include voidmain(void) {floata,b,c; cout<<"输入三角形的三边: "; cin>>a>>b>>c; if(a+b>c&&b+c>a&&c+a>b) {if(a==b&&b==c) cout<<"三角形是等边三角形。 \n"; elseif(a==b||b==c||c==a) cout<<"三角形是等腰三角形。 \n"; elseif(a*a+b*b==c*c||b*b+c*c==a*a||c*c+a*a==b*b) cout<<"三角形是直角三角形。 \n"; elsecout<<"三角形是一般三角形。 \n"; } elsecout<<"三边不构成三角形。 \n"; } 四、实验 1. #include voidmain(void) {doubles=1.0; doublen=1.0; for(intj=1;j<=30;j++) {n/=j; s+=n; } cout<<"s="< } 2. #include voidmain(void) {inta,b,c,t; cout<<"请输入三个互不相同的整数: "; cin>>a>>b>>c; if(a>b){t=a;a=b;b=t;} if(a>c){t=a;a=c;c=t;} if(b>c){t=b;b=c;c=t;} cout< } 3. #include #include voidmain() { floatx0,x1,x2,fx0,fx1,fx2; do{ cout<<"inputx1,x2: "; cin>>x1>>x2; fx1=x1*x1-2-x1;//求出x1点的函数值fx1 fx2=x2*x2-2-x2;//求出x2点的函数值fx2 }while(fx1*fx2>0);//保证在指定范围内有根,即fx的符号相反 do{ x0=(x1+x2)/2; fx0=x0*x0-2-x0;//求出中点x0点的函数值fx0 if((fx0*fx1)<0){//若fx0和fx1符号相反 x2=x0;//则用x0点替代x2点 fx2=fx0; } else{ x1=x0;//否则用x0点替代x1点 fx1=fx0; } }while(fabs((double)fx0)>=1e-5);//判断x0点的函数与x轴的距离 cout<<"x="< } 4. #include #include voidmain() { ints; for(intm=2;m<1000;m++) { s=0; for(inti=1;i if(m%i==0)s+=i; if(s==m){ cout< "; for(i=1;i if(m%i==0)cout< cout<<'\n'; } } } 第三章 一、选择题 1.C2.C3.D4.C5.C6.D7.D8.D9.C10.B 11.D12.D13.D14.A15.C16.D17.B18.B19.A20.A 21.D22.A23.D24.C25.B 26.A27.D28.C29.C 二、填空题 1. (1)首 (2)被改变 2. (1)‘\0’ (2)0 3. (1)字符型 (2)cin.getline(str,79) 4. (1)2 (2)10(3)20 5.m*i+j+1 6. (1)10 (2)20(含结束标记) 7.下标3 8. (1)2 (2)8(3)4 9. (1)*(x+i) (2)*(p+i)(3)p[i] 10.“ab” 11. (1)*(*(m+i)+j) (2)*(m[i]+j)(3)(*(m+i))[j](4)*(&m[0][0]+10*i+j) 12. (1)定义了指向一维数组的指针(二维数组的行指针),所指向的一维数组有5个元素 (2)列数为5的二维数组(3)定义了一个指针数组,该数组有5个元素(4)5个整型地址 13.Theindexis: 7 14.1346 15.9765432 16.51234 17.Howdoesshe 18.n=16 19.#&*&% 20.ASZ 21.min=-3,row=3,col=0 22. (1)235711 (2)1317192329 23. (1)123 (2)14(3)36 24.07142128 25. (1)0123abc (2)23abc(3)89 26.ab567fgh 27. (1)a[i] (2)continue 28. (1)a[i] (2)5(3)a[i]=a[j],a[j]=m,m=a[i] 29. (1)n (2)n%10(3)p1++,p2--(4)b 30. (1)n*n (2)m[i]=a%10(3)t*=10(4)k==n*n 31. (1)continue (2)num++(3)num或num! =0 32. (1)m=i (2)n=i(3)a[m]=min,a[n]=max或i=a[m],a[m]=a[n],a[n]=i 33. (1)i<10 (2)i=0(3)(i+1)%10(4)(i+1)%3==0 34. (1) (2)b[k]! =0或b[k](3)i%m==0(4)n==0 35. (1)chark (2)strlen(s)-1(3)i++,j--(4)s[i]=s[j] 36. (1)if(j%2! =0)continue (2)a[i]>a[j] 37. (1)intpos=0 (2)a[i]==c(3)break(4)pos 38. (1)0 (2)a(3)sum/n(4)x[i] 39. (1)a[i] (2)i(3)4-i(4)cout< 40. (1)char*p=*p2 (2)*p 三、编程题 //1.合并有序序列{8,6,4}和{9,7,5,3,1} #include voidmain() { inta[20]={8,6,4},b[10]={9,7,5,3,1},c[30]={0}; int*p1,*p2,*p3; cout<<"原数组为: \n"<<"数组a: \t"; for(p1=a;*p1;p1++)cout<<*p1<<'\t'; cout< \t"; for(p2=b;*p2;p2++)cout<<*p2<<'\t'; cout< p1=a,p2=b,p3=c; while(*p1&&*p2){ if(*p1>*p2)*p3++=*p1++; else*p3++=*p2++; } if(*p1==0)while(*p2)*p3++=*p2++; elsewhile(*p1)*p3++=*p1++; cout<<"合并后的数组为: \n"<<"数组c: \t"; for(p3=c;*p3;p3++) cout<<*p3<<'\t'; cout< } //2.二维数组的鞍点 #include voidmain() { inta[4][5]={{23,14,65,7,20},{4,50,56,27,18},{2,3,58,32,29},{69,45,60,72,45}}; introw,col,t,f; cout<<"数组为: \n"; for(inti=0;i<4;i++){ for(intj=0;j<5;j++) cout< cout< } for(i=0;i<4;i++){ f=1; t=a[i][0]; row=i; col=0; for(intj=0;j<5;j++) if(a[i][j]>t){ t=a[i][j]; col=j; } for(intk=0;k<4;k++) if(a[k][col] if(f)cout<<"第"< "< elsecout<<"第"< } } //3.生成折叠矩阵 #include voidmain() { inta[4][4],startnum; cout<<"请输入起始数据startnum: \n"<<"startnum=\t"; cin>>startnum; for(inti=0;i<4;i++){ for(intj=0;j<=i;j++) a[j][i]=startnum++; for(j-=2;j>=0;j--) a[i][j]=startnum++; } cout< \n"; for(i=0;i<4;i++){ for(intj=0;j<4;j++) cout< cout<<'\n'; } cout< } //4.将二维数组的每行元素按降序排列 #include #include voidsort(int*a,intn) { for(inti=0;i intk=i;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 解析 参考答案