c++习题及其解答(第3版)_周霭如

合集下载

[华工课件]C++程序设计基础(第三版)chap2-程序控制结构

[华工课件]C++程序设计基础(第三版)chap2-程序控制结构
max = b ; else max = a ; max 5
cout << "max = " << max << endl;
:
输出
max = 5
华南理工大学计算机学院 周霭如 2008
2.1.1 if 语句
2.1.1 if 语句
例:
:
a
7
b
3
if ( b > a )
max = b ; else max = a ; max
else 语句2 ; true (非0)
表达式
false (0)
语句 1
语句 2
华南理工大学计算机学院 周霭如 2008
2.1.1 if 语句
2.1.1 if 语句
例:
:
a
3
b
5
if ( b > a )
max = b ; else max = a ; max
cout << "max = " << max << endl;
2.1.1 if 语句
2.if 语句的嵌套
if 语句中的执行语句如果又是另一个if语句,称为嵌套if语句 if 与 else 的配对关系:C++规定,else 总是与它接近的if 配对 使用复合语句,可以改变条件语句的执行流程
华南理工大学计算机学院 周霭如 2008
2.1.1 if 语句
2.1.1 if 语句
例:
:
a
3
b
5
max = a ;
if ( b > a) max = b ; cout << "max = " << max << endl; : max 5

C语言程序设计(第三版)的习题集库答案.doc

C语言程序设计(第三版)的习题集库答案.doc

C 语言程序设计(第三版)习题库1、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。

请编程序。

#include <stdio.h>main(){float r,h,C1,Sa,Sb,Va,Vb;scanf(__”%f ”__,&r);scanf(”%d ”,__&h _);;C1=2*3.14*r;Sa=3.14*r*r;Sb=4*Sa;Va=4*3.14*r*r*r/3;Vb=Sa*h;printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb );}2、输入一个华氏温度,要求输出摄氏温度。

公式为 c=5(F-32)/9输出要求有文字说明,取位2小数。

#include <stdio.h>main(){float F,c;scanf("%f",&F);____c=5*(F-32)/9______;printf("c=%.2f",c);}3、有一函数:⎪⎩⎪⎨⎧≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。

#include <stdio.h>main(){int x,y;printf("输入x :");scanf("%d",&x);if(x<1) { /* x<1 */y=x;printf("x=%3d, y=x=%d\n",x,y);} else if (____x<10_______){ /* 1≤x -10 */_____y=2*x-1_______;printf("x=%3d, y=2*x-1=%d\n",x,y);} else{ /* x≥10 */y=3*x-11;printf("x=%3d, y=3*x-11=%d\n",x# include "stdio.h"main(){int x,y;scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d",y);}# include "stdio.h"main(){int x,y;scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d\n",y);}# include "stdio.h"main(){int x,y;scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d",y);}scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}# include "stdio.h" main(){int x,y;scanf("%d",&x);if(x<1)y=x;else if(x>=1 && x<10)y=2*x-1;elsey=3*x-11;printf("%d",y);},y);}}4、给定一个不多于5位的正整数,要求:①求它是几位数;②按逆序打印出各位数字。

C程序设计第三版答案

C程序设计第三版答案

C程序设计第三版答案1.5请参照本章例题,编写一个C程序,输出以下信息:************Very Goodj!************解:main(){printf(" ************ \n");printf("\n");printf(" Very Good! \n");printf("\n");printf(" ************\n");}1.6编写一个程序,输入a b c三个值,输出其中最大者。

解:main(){int a,b,c,max;printf("请输入三个数a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf("最大数为:%d",max);}第三章3.3 请将下面各数用八进制数和十六进制数表示:(1)10 (2)32 (3)75 (4)-617(5)-111 (6)2483 (7)-28654 (8)21003解:十八十六(10)=(12)=(a)(32)=(40)=20(75)=(113)=4b(-617)=(176627)=fd97-111=177621=ff912483=4663=963-28654=110022=901221003=51013=520b3.5字符常量与字符串常量有什么区别?解:字符常量是一个字符,用单引号括起来。

字符串常量是由0个或若干个字符而成,用双引号把它们括起来,存储时自动在字符串最后加一个结束符号'\0'.3.6写出以下程序的运行结果:#include<stdio.h>void main(){char c1='a',c2='b',c3='c',c4='\101',c5='\116';printf("a%c b%c\tc%c\tabc\n",c1,c2,c3);printf("\t\b%c %c\n",c4,c5);解:程序的运行结果为:aabb cc abcA N3.7将"China"译成密码.密码规律:用原来的字母后面第4个字母代替原来的字母,例如,字母"A"后面第4个字母是"E",用"E"代替"A".因此,"China"应译为"Glmre".请编一程序,用赋初值的议程使c1,c2,c3,c4,c5分别变成'G','1','m','r','e',并输出.main(){char c1="C",c2="h",c3="i",c4='n',c5='a';c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);}3.8例3.6能否改成如下:#include<stdio.h>void main(){int c1,c2;(原为 char c1,c2)c1=97;c2=98;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);}解:可以.因为在可输出的字符范围内,用整型和字符型作用相同.3.9求下面算术表达式的值.(1)x+a%3*(int)(x+y)%2/4=2.5(x=2.5,a=7,y=4.7)(2)(float)(a+b)/2+(int)x%(int)y=3.5(设a=2,b=3,x=3.5,y=2.5)3.10写出下面程序的运行结果:#include<stdio.h>void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d\n",i,j,m,n);}解:结果: 9,11,9,10第4章,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1='a',c2 ='b'.想得到以下的输出格式和结果,请写出程序要求输出的结果如下: a= 3 b= 4 c= 5x=1.200000,y=2.400000,z=-3.600000x+y= 3.60 y+z=-1.20 z+x=-2.40u= 51274 n= 128765c1='a' or 97(ASCII)c2='B' or 98(ASCII)解:main(){int a,b,c;long int u,n;float x,y,z;char c1,c2;a=3;b=4;c=5;x=1.2;y=2.4;z=-3.6;u=51274;n=128765;c1='a';c2='b';printf("\n");printf("a=%2d b=%2d c=%2d\n",a,b,c);printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z);printf("x+y=%5.2f y=z=%5.2f z+x=%5.2f\n",x+y,y+z,z +x);printf("u=%6ld n=%9ld\n",u,n);printf("c1='%c' or %d(ASCII)\n",c1,c2);printf("c2='%c' or %d(ASCII)\n",c2,c2);}4.5请写出下面程序的输出结果.结果:575 767.856400,-789.12396267.856400 ,-789.12396267.86,-789.12,67.856400,-789.123962,67.856400,-78 9.1239626.785640e+001,-7.89e+002A,65,101,411234567,4553207,d68765535,17777,ffff,-1COMPUTER, COM4.6用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a',问在键盘上如何输入?main(){int a,b;float x,y;char c1,c2;scanf("a=%d b=%d,&a,&b);scanf(" x=%f y=%e",&x,&y);scanf(" c1=%c c2=%c",&c1,&c2);}解:可按如下方式在键盘上输入:a=3 b=7x=8.5 y=71.82c1=A c2=a说明:在边疆使用一个或多个scnaf函数时,第一个输入行末尾输入的"回车"被第二个scanf函数吸收,因此在第二\三个scanf函数的双引号后设一个空格以抵消上行入的"回车".如果没有这个空格,按上面输入数据会出错,读者目前对此只留有一初步概念即可,以后再进一步深入理解.4.7用下面的scanf函数输入数据使a=10,b=20,c1='A',c2='a',x=1.5,y=-3.75,z=57.8,请问在键盘上如何输入数据?scanf("%5d%5d%c%c%f%f%*f %f",&a,&b,&c1,&c2,&y,&z); 解:main(){int a,b;float x,y,z;char c1,c2;scanf("%5d%5d%c%c%f%f",&a,&b,&c1,&c2,&x,&y,&z);}运行时输入:10 20Aa1.5 -3.75 +1.5,67.8注解:按%5d格式的要求输入a与b时,要先键入三个空格,而后再打入10与20。

C程序设计习题答案第3版.doc

C程序设计习题答案第3版.doc

C程序设计习题答案第3版111111111111111111111111习题答案第一章1. 5# inelude <stdio.h>void main (){printf (〃* * * * * * * * *\n Very good! \n* ******* *\n〃); }1.6(法一)#inelude <stdio.h>main (){int a, b, c, max;scanf (〃%d, %d, %d〃,&a, &b, &c);max=(a>b) ?a:b;ma.x= (max>c) ?ma.x: c;printf (z/max=%d\n z,, max);}(法二)main () int a, b, c, max;scanf (〃%d, %d, %d〃,&a, &b, &c); if (a>b&&a>c) ma.x=a.;else if (b>c)ma.x=b;elsemax二c;printf (,,max=%d\n,z, max);}(法三)# include <stdio.h>void main(){int max(int x,int y, int z);int a, b, c, d;scanf (〃%d, %d, %d〃,&a, &b, &c);d=max (a, b, c);printf (,,max=%d\n,z, d);}int max(int x,int y, int z){int A, B;if(x>y) A二x;else A二y;if(z>A) B=z;else B二A;return(B);}第三章3.3(1)(10) 10= (12) 8= (a) 16(2)(32)10=(40)8=(20)16(3)(75) 10=(113)8= (4b)16(4)(-617)10=(176627)8= (fd97)16(5)(-111)10二(177621)8二(ff91)16(6)(2483) 10二(4663)8二(963) 16(7)(-28654) 10=(110022)8=(9012) 16(8)(21003) 10= (51013)8=(520b)163.6aabb (8)cc (8)abc(7) AN3.7main (){char cl二'C‘, c2二,h,, c3二'i , c4二,n , c5二'a'; cl+二4, c2+=4, c3+=4, c4+=4, c5+=4;printf (〃%c%c%c%c%c\rT, cl, c2, c3, c4, c5);}3.8main(){int cl,c2;cl二97;c2二98;printf (,z%c %c〃, cl, c2);}3.9=2. 5=3. 51""Lo亠 m 4 i・ a •避X—s 3■ , ■(g n r+i 4 nb3i a An c+ybyUycy •n3■1oggooofloatx, y fcharcl 》c2-aH3-b"4-CH5-X H 1・ 2・y H 2・4・Z H I 3・6.UH51274mH128765・ c H y 巴-C2—b 》-printf(、丿rr)-printf(、、au%2dbQ2dc*2dxrr“ p b“ c)-printf (、、X Q 8・6f 》y 28・6f 』Z 29・6f-rr,><y,z)八printf(、、x +y u %5・2fy+ZH%5・2fZ+XH%5・2fxn 、「x+y “y+z,z+x)-printf(、、UH%61dn=%91d\n 、「u,n)-printf (、、c l !l手cJ r手d(ASCII)cl 》cl)八printf(、、C 2''手c 》or手d(ASCII)\n 、、,c2,C2)-5 767. 856400, -789. 12396267.856400, -789. 12396267. 86-789. 12, 67. 856400, -789. 123962, 67. 856400, -789. 1239626. 785640e+001,-7. 89e+002A, 65, 101,411234567, 4553207,d68765535, 177777, ffff,-lCOMPUTER, COM4.6a=3 b二7/x二& 5 y二71.82/cl二A c2=a/4.710 20Aal.5 -3. 75 +1.4,67.8/(空3)10(空3)20Aal.5(空1)-3. 75(空1)(随意输入一个数),67.8 回车4.8main(){float pi, h, r, 1, s, sq, sv, sz;pi二3.1415926;printf (z,input r, h\n〃);scanf (〃%f, %f&r, &h);1二2*pi*r;s二t*r*pi;sq二4*pi*r*r;sv=4.0/3. 0*pi*r*r*r;sz=pi*r*r^h;printf (z,l=%6. 2f\rT, 1); printf (,z s=%6・ 2f\rT, s);printf(〃sq=%6・ 2f\rT, sq) printf (z,vq=%6・ 2f\n〃, sv) printf (,z vz=%6・ 2f\n", sz) }4.9ma.in(){float c, f;scanf &f);c=(5. 0/9. 0) * (f-32); printf(〃c=%5・ 2f\n〃,c);}4.10ttinclude^stdio. h" ma.in(){char cl,c2;scanf (〃%c, %c〃, &cl, &c2); putchar (cl);putchar (c2);printf(〃\rT);printf (〃%c%c\n〃, cl, c2);第五章5.3(DO (2)1 (3)1 (4)0 (5)15.4main (){int a, b, c;scanf (〃%d, %d, %d〃,&a, &b, &c); if (a<b) if (b<c)printf(〃max=%d\rT,c);elseprintf ("max^d'rT, b); else if(a<c)printf (z,max=%d\n〃, c);elseprintf (,,max=%d\n,z, a);}main (){int a, b, c, temp, max;scanf (〃%d, %d, %d〃,&a, &b, &c); temp二(a>b)?a:b; max二(c>temp)?c:temp; printf(〃max=%d〃,max);}5.5ma.in(){int x, y;scanf&x);if (x<l) y二x;else if (x〈10) y二2*xT ;else y二3*xTl;printf(〃y=%d〃,y);(case 9-g r a d e 'l >breakscasep ?g r a d e ''》-break-case7-g r a d e 'l a breakscase6-grade'lIy-break-case5-case4-case3-case2-case r rcase5?grade 1!E V -printf 弋score"手d 》gradeH%c 、「score 》grade)-5・6)main((inb score,templogic-char grade-logical-while(logic)(scanf(、gd、、,Kscore)-if(score〉H0&&score〈H100)logic"。

C程序设计课后答案

C程序设计课后答案

C程序设计(第三版)习题答案(1-6章)谭浩强著(1)2008-04-10 20:58习题答案第一章1.5# include <stdio.h>void main(){printf("* * * * * * * * *\n Very good!\n* * * * * * * * *\n"); }1.6(法一)#include <stdio.h>main(){int a,b,c,max;scanf("%d,%d,%d",&a,&b,&c);max=(a>b)?a:b;max=(max>c)?max:c;printf("max=%d\n",max);}(法二)main(){int a,b,c,max;scanf("%d,%d,%d",&a,&b,&c);if(a>b&&a>c)max=a;else if (b>c)max=b;elsemax=c;printf("max=%d\n",max);}(法三)# include <stdio.h>void main(){int max(int x,int y,int z);int a,b,c,d;scanf("%d,%d,%d",&a,&b,&c);d=max(a,b,c);printf("max=%d\n",d);}int max(int x,int y,int z){int A,B;if(x>y) A=x;else A=y;if(z>A) B=z;else B=A;return(B);}第三章3.3(1)(10)10=(12)8=(a)16(2)(32)10=(40)8=(20)16(3)(75)10=(113)8=(4b)16(4)(-617)10=()8=(fd97)16(5)(-111)10=()8=(ff91)16(6)(2483)10=(4663)8=(963)16(7)(-28654)10=()8=(9012)16(8)(21003)10=(51013)8=(520b)163.6aabb (8)cc (8)abc(7)AN3.7main(){char c1='C',c2='h',c3='i',c4='n',c5='a';c1+=4, c2+=4, c3+=4, c4+=4, c5+=4;printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);}3.8main(){int c1,c2;c1=97;c2=98;printf("%c %c",c1,c2);}3.9(1)=2.5(2)=3.53.109,11,9,103.12(1)24 (2)10 (3)60 (4)0 (5)0 (6)0第四章4.4main(){int a,b,c;long int u,n;float x,y,z;char c1,c2;a=3;b=4;c=5;x=1.2;y=2.4;z=-3.6;u=51274;n=;c1='a';c2='b';printf("\n");printf("a=%2d b=%2d c=%2d\n",a,b,c);printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z);printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x); printf("u=%6ld n=%9ld\n",u,n);printf("c1='%c'or %d(ASCII)\n",c1,c1);printf("c2='%c'or %d(ASCII)\n",c2,c2);}4.5575 767.,-789.67.,-789.67.86 -789.12,67.,-789.,67.,-789.6.e+001,-7.89e+002A,65,101,41,,d68765535,,ffff,-1COMPUTER, COM4.6a=3 b=7/x=8.5 y=71.82/c1=A c2=a/4.710 20Aa1.5 -3.75 +1.4,67.8/(空3)10(空3)20Aa1.5(空1)-3.75(空1)(随意输入一个数),67.8回车4.8main(){float pi,h,r,l,s,sq,sv,sz;pi=3.;printf("input r,h\n");scanf("%f,%f",&r,&h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;sv=4.0/3.0*pi*r*r*r;sz=pi*r*r*h;printf("l=%6.2f\n",l);printf("s=%6.2f\n",s);printf("sq=%6.2f\n",sq);printf("vq=%6.2f\n",sv);printf("vz=%6.2f\n",sz);}4.9main(){float c,f;scanf("%f",&f);c=(5.0/9.0)*(f-32);printf("c=%5.2f\n",c);}4.10#include"stdio.h"main(){char c1,c2;scanf("%c,%c",&c1,&c2);putchar(c1);putchar(c2);printf("\n");printf("%c%c\n",c1,c2);}第五章5.3(1)0 (2)1 (3)1 (4)0 (5)15.4main(){int a,b,c;scanf("%d,%d,%d",&a,&b,&c);if(a<b)if(b<c)printf("max=%d\n",c);elseprintf("max=%d\n",b); else if(a<c)printf("max=%d\n",c); elseprintf("max=%d\n",a); }main(){int a,b,c,temp,max;scanf("%d,%d,%d",&a,&b,&c); temp=(a>b)?a:b;max=(c>temp)?c:temp;printf("max=%d",max);}5.5main(){int x,y;scanf("%d",&x);if(x<1)y=x;else if(x<10)y=2*x-1;else y=3*x-11;printf("y=%d",y);}5.6main(){int score,temp,logic;char grade;logic=1;while(logic){scanf("%d",&score);if(score>=0&&score<=100)logic=0;}if(score==100)temp=9;elsetemp=(score-score%10)/10;switch(temp){case 9:grade='A';break;case 8:grade='B';break;case 7:grade='C';break;case 6:grade='D';break;case 5:case 4:case 3:case 2:case 1:case 0:grade='E';}printf"score=%d,grade=%c",score,grade);}5.7main(){long int num;int indiv,ten,hundred,thousand,ten_thousand,place;scanf("%ld",&num);if(num>9999) place=5;else if(num>999) place=4;else if(num>99) place=3;else if(num>9) place=2;else place=1;printf("place=%d\n",place);ten_thousand=num/10000;thousand=(num-ten_thousand*10000)/1000;hundred=(num-ten_thousand*10000-thousand*1000)/100;ten=(num-ten_thousand*10000-thousand*1000-hundred*100)/10;indiv=num-ten_thousand*10000-thousand*1000-hundred*100-ten*10;switch(place){case5:printf("%d,%d,%d,%d,%d\n",ten_thousand,thousand,hundred,ten,indiv);printf("%d,%d,%d,%d,%d\n",indiv,ten,hundred,thou sand,ten_thousand);break;case 4:printf("%d,%d,%d,%d\n",thousand,hundred,ten,indiv);printf("%d,%d,%d,%d\n",indiv,ten,hundred,thousan d);break;case 3:printf("%d,%d,%d\n",hundred,ten,indiv);printf("%d,%d,%d\n",indiv,ten,hundred);break;case 2:printf("%d,%d\n",ten,indiv);printf("%d,%d\n",indiv,ten);break;case 1:printf("%d\n",indiv);printf("%d\n",indiv);}}5.8main(){long i;float bonus,bon1,bon2,bon4,bon6,bon10;bon1=*0.1;bon2=bon1+*0.075;bon4=bon2+*0.05;bon6=bon4+*0.03;bon10=bon6+*0.015;scanf("%ld",&i);if(i<=1e5)bonus=i*0.1;else if(i<=2e5)bonus=bon1+(i-)*0.075;else if(i<=4e5)bonus=bon2+(i-)*0.05;else if(i<=6e5)bonus=bon4+(i-)*0.03;else if(i<=1e6)bonus=bon6+(i-)*0.015;else bonus=bon10+(i-)*0.01;printf("bonus=%10.2f",bonus);}main(){long i;float bonus,bon1,bon2,bon4,bon6,bon10;int branch;bon1=*0.1;bon2=bon1+*0.075;bon4=bon2+*0.05;bon6=bon4+*0.03;bon10=bon6+*0.015;scanf("%ld",&i);branch=i/;if(branch>10)branch=10;switch(branch){case 0:bonus=i*0.1;break;case 1:bonus=bon1+(i-)*0.075;break; case 2:case 3:bonus=bon2+(i-)*0.05;break; case 4:case 5:bonus=bon4+(i-)*0.03;break; case 6:case 7case 8:case 9:bonus=bon6+(i-)*0.015;break; case 10:bonus=bon10+(i-)*0.01;}printf("bonus=%10.2f",bonus);}4.9main(){int t,a,b,c,d;scanf("%d,%d,%d,%d",&a,&b,&c,&d); if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("%d %d %d %d\n",a,b,c,d);}5.10main(){int h=10;float x,y,x0=2,y0=2,d1,d2,d3,d4; scanf("%f,%f",&x,&y);d1=(x-x0)*(x-x0)+(y-y0)*(y-y0);d2=(x-x0)*(x-x0)+(y+y0)*(y+y0);d3=(x+x0)*(x+x0)+(y-y0)*(y-y0);d4=(x+x0)*(x+x0)+(y+y0)*(y+y0);if(d1>1&&d2>1&&d3>1&&d4>1)h=0; printf("h=%d",h);第六章循环控制6.1main(){int a,b,num1,num2,temp;scanf("%d,%d",&num1,&num2);if(num1<num2){temp=num1;num1=num2;num2=temp;}a=num1;b=num2;while(b!=0){temp=a%b;a=b;b=temp;}printf("%d\n",a);printf("%d\n",num1*num2/a);}6.2#include"stdio.h"main(){char c;int letters=0,space=0,digit=0,other=0;while((c=getchar())!='\n'){if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++;else if(c==' ')space++;else if(c>='0'&&c<='9')digit++;else other++;}printf("letters=%d\nspace=%d\ndigit=%d\nother=%d\n",letters,space,dig it,other);}6.3main(){int a,n,count=1,sn=0,tn=0;scanf("%d,%d",&a,&n);while(count<=n){tn+=a;sn+=tn;a*=10;++count;}printf("a+aa+aaa+...=%d\n",sn);}main(){float n,s=0,t=1;for(n=1;n<=20;n++){t*=n;s+=t;}printf("s=%e\n",s);}6.5main(){int N1=100,N2=50,N3=10;float k;float s1=0,s2=0,s3=0;for(k=1;k<=N1;k++)s1+=k;for(k=1;k<=N2;k++)s2+=k*k;for(k=1;k<=N3;k++)s3+=1/k;printf("s=%8.2f\n",s1+s2+s3);}6.6main(){int i,j,k,n;for(n=100;n<1000;n++){i=n/100;j=n/10-i*10;k=n%10;if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)printf("n=%d\n",n);}}6.7#define M 1000main(){int k0,k1,k2,k3,k4,k5,k6,k7,k8,k9;int i,j,n,s;for(j=2;j<=M;j++){n=0;s=j;for(i=1;i<j;i++){if((j%i)==0){n++;s=s-i;switch(n){case 1:k0=i;break;case 2:k1=i;break;case 3:k2=i;break;case 4:k3=i;break;case 5:k4=i;break;case 6:k5=i;break;case 7:k6=i;break;case 8:k7=i;break;case 9:k8=i;break;case 10:k9=i;break;}}}if(s==0){printf("j=%d\n",j);if(n>1)printf("%d,%d",k0,k1);if(n>2)printf(",%d",k2);if(n>3)printf(",%d",k3);if(n>4)printf(",%d",k4);if(n>5)printf(",%d",k5);if(n>6)printf(",%d",k6);if(n>7)printf(",%d",k7);if(n>8)printf(",%d",k8);if(n>9)printf(",%d\n",k9);}}}运行结果:j=61,23,2155j=281,24,21557,,2155j=4961,24,21558,,,,,,2155main(){static int k[10];int i,j,n,s;for(j=2;j<=1000;j++){n=-1;s=j;for(i=1;i<j;i++){if((j%i)==0){n++;s=s-i;k[n]=i;}}if(s==0){printf("j=%d\n",j);for(i=0;i<n;i++)printf("%d,",k[i]);printf("%d\n",k[n]);}}}6.8main(){int n,t,number=20;float a=2;b=1;s=0;for(n=1;n<=number;n++){s=s+a/b;t=a,a=a+b,b=t;}printf("s=%9.6f\n",s);}6.9main(){float sn=100.0,hn=sn/2;int n;for(n=2;n<=10;n++){sn=sn+2*hn;hn=hn/2;}printf("sn=%f\n",sn);printf("hn=%f\n",hn);}6.10main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;x2=x1;day--;}printf("x1=%d\n",x1);}6.11#include"math.h"main(){float a,xn0,xn1;scanf("%f",&a);xn0=a/2;xn1=(xn0+a/xn0)/2;do{xn0=xn1;xn1=(xn0+a/xn0)/2;}while(fabs(xn0-xn1)>=1e-5);printf("a=%5.2f\n,xn1=%8.2f\n",a,xn1); }6.12#include"math.h"main(){float x,x0,f,f1;x=1.5;do{x0=x;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;}while(fabs(x-x0)>=1e-5);printf("x=%6.2f\n",x);}6.13#include"math.h"main(){float x0,x1,x2,fx0,fx1,fx2;do{scanf("%f,%f",&x1,&x2);fx1=x1*((2*x1-4)*x1+3)-6;fx2=x2*((2*x2-4)*x2+3)-6;}while(fx1*fx2>0);do{x0=(x1+x2)/2;fx0=x0*((2*x0-4)*x0+3)-6;if((fx0*fx1)<0){x2=x0;fx2=fx0;}else{x1=x0;fx1=fx0;}}while(fabs(fx0)>=1e-5);printf("x0=%6.2f\n",x0);}6.14main(){int i,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-i;j++)printf(" ");for(k=0;k<=2*i;k++)printf("*");printf("\n");}for(i=0;i<=2;i++){for(j=0;j<=i;j++)printf(" ");for(k=0;k<=4-2*i;k++)printf("*");printf("\n");}}6.15main(){char i,j,k;for(i='x';i<='z';i++)for(j='x';j<='z';j++){if(i!=j)for(k='x';k<='z';k++){if(i!=k&&j!=k){if(i!='x'&&k!='x'&&k!='z')printf("\na--%c\tb--%c\tc--%c\n",i,j,k);}}}}7.1用筛选法求100之内的素数./*用筛选法求100之内的素数*/#include<math.h>#define N 101main(){int i,j,line,a[N];for(i=2;i<N;i++) a[i]=i;for(i=2;i<sqrl(N);i++)for(j=i+1;j<N;j++){if(a[i]!=0 && a[j]!=0)if(a[j]%a[i]==0)a[j]=0;printf("\n");for(i=2,line=0;i<N;i++){ if(a[i]!=0){printf("%5d",a[i]);line++;if(line==10){printf("\n");line=0;}}}7.2用选择法对10个数排序./*选择法排序.*/#define N 10main(){ int i,j,min,temp,a[N];/*输入数据*/for (i=0;i<N;i++){ printf("a[%d]=",i);scanf("%d",&a[i]);}printf("\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");/*排序*/for (i=0;i<N-1;i++){ min=i;for(j=i+1;j<N;j++)if(a[min]>a[j]) min=j;temp=a[i];a[i]=a[min];a[min]=temp;}/*输出*/printf("\n排序结果如下:\n");for(i=0;i<N;i++)printf("%5d",a[i]);}7.3对角线和:/*计算矩阵对角线元素之和*/main(){float a[3][3],sum=0;int i,j;printf("请输入矩阵元素:\n");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%f",&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][i];printf("对角元素之和=6.2f",sum); }7.4插入数据到数组/*插入数据到数组*/main(){int a[11]={1,4,6,9,13,16,19,28,40,100}; int temp1,temp2,number,end,i,j;for (i=0;i<10;i++)printf("%5d",a[i]);printf("\n");printf("输入插入数据:"); scanf("%d",&number);end=a[9];if(number>end)a[10]=number;else{for(i=0;i<10;i++){ if(a[i]>number) {temp1=a[i];a[i]=number;for(j=i+1;j<11;j++){temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}for(i=0;j<11;i++)printf("a%6d",a[i]);}7.5将一个数组逆序存放。

C++程序设计基础(第3版)习题及其解答

C++程序设计基础(第3版)习题及其解答

C ++程序基础(第3版)答案习题1及其解答1.1选择题1.一个最简单的C++程序,可以只有一个( c )。

(a) 库函数(b) 自定义函数(c) main函数(d) 空函数2.用C++语言编制的源程序要变为目标程序必须要经过( d )。

(a) 解释(b) 汇编(c) 编辑(d) 编译3. C++程序中的简单语句必须以( b )结束。

(a) 冒号(b) 分号(c) 空格(d)花括号4.有说明 int a=0; double x=5.16; 以下语句中,( c )属于编译错误。

(a) x=a/x; (b) x=x/a; (c) a=a%x; (d) x=x*a;5. 执行C++程序时出现的“溢出”错误属于( c )错误。

(a) 编译(b) 连接(c) 运行(d) 逻辑6.下列选项中,全部都是C++关键字的选项为( c )。

(a) while IF Static (b) break char go(c) sizeof case extern (d) switch float integer7. 按C++标识符的语法规定,合法的标识符是( a )。

(a) _abc (b) new (c) π(d) “age“8.C++语句中,两个标识符之间( a )不能..作为C++的分隔符。

(a) 数字(b) ; (c) : (d) +9.下列正确的八进制整型常量表示是( b )。

(a) 0a0 (b) 015 (c) 080 (d) 0x1010.下列错误的十六进制整型常量表示是( c )。

(a) 0x11 (b) 0xaf (c) 0xg (d) 0x1f11.在下列选项中,全部都合法的浮点型数据的选项为( b )。

(a) -1e3.5 15. 2e-4 (b) 12.34 -1e+5 0.1E-12(c) 0.2e-2 -12345. e-5 (d) 5.0e(1+4) 0.1 8e+212.下列正确的字符常量为( d )。

《C语言程序设计教程》(第三版)课后习题参考答案(精选5篇)[修改版]

《C语言程序设计教程》(第三版)课后习题参考答案(精选5篇)[修改版]

第一篇:《C语言程序设计教程》(第三版)课后习题参考答案C语言程序设计课后习题参考答案习题一一、单项选择题1、C2、B3、B4、C5、D6、A7、C8、A二、填空题1、判断条件2、面向过程编程3、结构化4、程序5、面向对象方法6、基本功能操作、控制结构7、有穷性8、直到型循环结构9、算法10、可读性11、模块化12、对问题的分解和模块的划分习题二一、单项选择题1、B2、D3、C4、B5、A二、填空题1、主2、C编译系统3、结构化4、程序5、面向对象方法6、.OBJ7、库函数8、直到型循环结构习题三一、单项选择题1、D2、B3、A4、C9、B10、C11、A12、D13、C17、B18、C19、C20、D21、A25、D26、A二、填空题1、补码2、10^-138~10^1 38、15~166、A7、B6、D7、B14、B15、C22、D8、C8、D16、A24、D、A3、实4、单目运算符、自右向左5、函数调用6、65,89习题四一、单项选择题1、D2、C3、D4、A5、D6、B7、A8、C9、B10、B二、填空题1、两, ;2、5.1690003、-200 2500、i=-200,j=2500回车、i=-200回车j=2500回车4、a=98,b=765.000000,c=4321.0000005、100 25.81 1.89234、100,25.81,1.89234、100回车25.81回车1.89234回车6、0,0,37、38、scanf(“%lf %lf %lf”,&a,&b,&c);9、13 13.000000 13.00000010、c=b-a;a=b+c;习题五一、单项选择题1、B2、D3、C4、B5、B6、D7、A8、B二、填空题1、1 、02、k!=03、if(x>4||xelse printf(“error!”); 4、if(((x>=1&&x=200&&x Printf(“%d”,x);5、16、17、10! Right!8、a=09、2,110、0习题六一、单项选择题9、D1、B2、C3、C4、B5、C6、B7、C8、A二、填空题1、无穷次2、83、205、3.66、*#*#*#$7、828、d=1.0 、k++、k9、!(x习题七一、单项选择题1、B2、D3、C4、C5、A二、填空题1、1 2 4 8 16 32 64 128 256 5122、a[age]++、i=18;i3、break、i==84、a[i]>b[i]、i3、j5、b[j]=0、b[j]=a[j][k]习题八一、单项选择题1、B3、C4、A5、A9、D10、B11、A12、C13、A二、填空题1、return1、return n+sum(n-1)2、return1、n*facto(n-1)习题九一、单项选择题1、D2、C3、D4、A5、C9、B10、C11、A13、B17、C18、A19、B20、C二、填空题1、int 、return z2、*p++3、’\0’、++4、p、max*q6、A7、D6、A7、C14、C15、B6、C7、C14、A15、D8、A8、D8、C习题十一、单项选择题1、D2、D3、A4、5、B6、A7、C8、B9、D10、11、C12、D13、D14、C二、填空题1、34 122、ARRAY a[10],b[10],c[10];3、2 34、ab、cd5、(*b).day、b->day6、adghi mnohi no7、(struct node *)、!=’\n’、p=top;8、p1=p1->next9、(struct list *)、(struct list *)、return (n)习题十一一、单项选择题1、A2、A3、B4、A5、B9、A10、B11、B12、B13、C17、D二、填空题1、ASCII(文本)、二进制2、pf=fopen(“A:\zk04\data xfile.dat”,”w”);3、fputc()、fputs()、fscanf()、fread()4、(后两个空)文件结束符、非0值7、B14、C15、D8、A16、A第二篇:C语言程序设计教程课后习题参考答案《C语言程序设计教程》课后习题参考答案习题1 1. (1)编译、链接.exe (2)函数主函数(或main函数)(3)编辑编译链接2.(1)-(5):DDBBC (6)-(10):ABBBC 3.(1)答:C语言简洁、紧凑,使用方便、灵活;C语言是高级语言,同时具备了低级语言的特征;C 语言是结构化程序设计语言,具有结构化的程序控制语句;C语言有各种各样的数据类型;C语言可移植性好;生成目标代码质量高,程序执行效率高。

C程序设计基础(第三版)周霭如习题及其解答(第3版).doc

C程序设计基础(第三版)周霭如习题及其解答(第3版).doc

习题1‎答1.1选择题1.‎C++‎( c )。

(a) 库函数(b) 自定义函数(c) main函数(d) 空函数2.用C++‎‎‎经过( d )。

(a) 解释(b) 汇 (c) 辑(d)译3. C++‎句 ( b )结束。

(a) 冒号(b) 分号(c) 空格(d)花括号4. 说明 int a=0; double x=5.16; 下 句 ( c )译 ‎。

(a) x=a/x; (b) x=x/a; (c) a=a%x; (d)x=x*a;5. 执行C++‎“溢 ” ( c ) 。

(a) 译(b) 连接 (c) 运行 (d) 逻辑6.下列选项 全部都是C++ 选项‎( c )。

(a) while IF Static(b) break char go1(c) sizeof case extern(d) switch float intege r7. 按C++‎定 ‎是( a )。

(a) _abc (b) new (c) π(d)“age“8.C++ 句 ‎间( a )不能..作 C++ 分隔 。

(a) 数 (b) ; (c) : (d) +9.下列 ‎‎表示是( b )。

(a) 0a0 (b) 015 (c) 080 (d)0x1010.下列 ‎六‎表示是( c )。

(a) 0x11 (b) 0xaf (c) 0xg (d) 0x1f 11. 下列选项 ‎全部都 ‎ 数 ‎选项 ( b )。

(a) -1e3.5 15. 2e-4 (b) 12.34 -1e+5 0.1E-12(c) 0.2e-2 -12345. e-5 (d) 5.0e(1+4)0.1 8e+212.下列 ‎( d )。

(a) “a”(b) ‘name’(c) a (d) ‘\101’213.下列选项 ( d )不能 ‎.a和b 值。

(a) t=b; b=a; a=t; (b) a=a+b; b=a-b; a=a–b; (c) t=a; a=b; b=t; (d) a=b; b=a;14. 下列 句‎ 是‎( a )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题1及其解答1.1选择题1.一个最简单的C++程序,可以只有一个( c )。

(a) 库函数(b) 自定义函数(c) main函数(d) 空函数2.用C++语言编制的源程序要变为目标程序必须要经过( d )。

(a) 解释(b) 汇编(c) 编辑(d) 编译3. C++程序中的简单语句必须以( b )结束。

(a) 冒号(b) 分号(c) 空格(d)花括号4.有说明 int a=0; double x=5.16; 以下语句中,( c )属于编译错误。

(a) x=a/x; (b) x=x/a; (c) a=a%x; (d) x=x*a;5. 执行C++程序时出现的“溢出”错误属于( c )错误。

(a) 编译(b) 连接(c) 运行(d) 逻辑6.下列选项中,全部都是C++关键字的选项为( c )。

(a) while IF Static (b) break char go(c) sizeof case extern (d) switch float integer7. 按C++标识符的语法规定,合法的标识符是( a )。

(a) _abc (b) new (c) π(d) “age“8.C++语句中,两个标识符之间( a )不能..作为C++的分隔符。

(a) 数字(b) ; (c) : (d) +9.下列正确的八进制整型常量表示是( b )。

(a) 0a0 (b) 015 (c) 080 (d) 0x1010.下列错误的十六进制整型常量表示是( c )。

(a) 0x11 (b) 0xaf (c) 0xg (d) 0x1f11.在下列选项中,全部都合法的浮点型数据的选项为( b )。

(a) -1e3.5 15. 2e-4 (b) 12.34 -1e+5 0.1E-12(c) 0.2e-2 -12345. e-5 (d) 5.0e(1+4) 0.1 8e+212.下列正确的字符常量为( d )。

(a) “a”(b) ‟(c) a (d) (101)13.下列选项中,( d )不能..交换变量a和b的值。

(a) t=b; b=a; a=t; (b) a=a+b; b=a-b; a=a–b;(c) t=a; a=b; b=t; (d) a=b; b=a;14.关于下列语句叙述错误的是( a )。

int i=10, *p=&i;(a) p的值为10 (b) p指向整型变量i(c) *p表示变量i的值(d) p的值是变量i的地址15.有以下变量说明,下面不正确...的赋值语句是( b )。

int a=5, b=10, c; int *p1 = &a, *p2 = &b;(a) *p2 = b ; (b) p1 = a ;1(c) p2 = p1 ; (d) c = *p1 *( *p2 ) ;16.有以下变量说明,下面正确的语句是( b )。

int a=10, b; int &pa=a, &pb=b;(a) &pb = a; (b) pb = pa; (c) pb = &pa; (d) *pb = *pa; 17.执行下面语句序列后,a和b的值分别为( b )。

int a = 5 , b = 3 , t ;int &ra = a ;int &rb = b ;t = ra ; ra = rb ; rb = t ;(a) 3和3 (b) 3和5 (c) 5和3 (d) 5和518. 在下列运算符中,( d )优先级最高。

(a) <= (b) *= (c) + (d) *19.在下列运算符中,( d )优先级最低。

(a) ! (b) && (c) != (d) ? :20.设 int i=1, j=2; 则表达式 i+++j 的值为( c )。

(a) 1 (b) 2 (c) 3 (d) 421.设 int i=1, j=2; 则表达式 ++i+j 的值为( d )。

(a) 1 (b) 2 (c) 3 (d) 422.在下列表达式选项中,( c )是正确。

(a) ++(a++) (b) a++b (c) a+++b (d) a++++b23.已知 int i=0, j=1, k=2; 则逻辑表达式 ++i||--j&&++k 的值为( b )。

(a) 0 (b) 1 (c) 2 (d) 324. 执行下列语句后,x的值是( d ),y的值是( c )。

int x, y ;x = y = 1; ++ x || ++ y ;(a) 不确定(b) 0 (c) 1 (d) 225.设x为整型变量,不.能.正确表达数学关系 1<x<5 的C++逻辑表达式是( a )。

(a) 1< x <5 (b) x==2||x==3||x==4(c) 1<x && x<5 (d) !(x<=1)&&!(x>=5)26. 已知 int x=5; 执行下列语句后,x的值为( c )。

x += x -= x * x;(a) 25 (b) 40 (c) –40 (d) 2027. 设 int a=1, b=2, c=3, d=4; 则以下条件表达式的值为( a )。

a <b ? a :c <d ? c : d(a) 1 (b) 2 (c) 3 (d) 428. 以下逗号表达式的值为( d )。

( x = 4 * 5, x * 5 ), x + 25(a) 25 (b) 20 (c) 100 (d) 45231.2把下列数学表达式写成c++算术表达式1.yx +++111112. x{x[x(ax+b)+c]+d}+e3. ln (1+|ba b a -+|10) 4.48cos 21π+5. cot )11(22x x +- 6. lg(a 2+ab+b 2)【解答】1. 1/(1 + 1/(1 + 1/(x + y)))2. x * ( x * ( x * ( a * x + b ) + c ) + d ) + e3. log( 1 + pow( fabs( ( a + b )/( a – b ) ),10)4. sqrt( 1 + 3.14159/2 * cos( 48 * 3.14159/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.3 用逻辑表达式表示下列条件1. i 被j 整除2. n 是小于正整数k 的偶数3. 1≤x<104. x ,y 其中有一个小于z5. y ∉[–100,–10],并且 y ∉ [10,100]6. 坐标点(x, y )落在以(10, 20)为圆心,以35为半径的圆内7. 三条边a ,b 和c 构成三角形8. 年份Year 能被4整除,但不能被100整除或者能被400整除 【解答】 1. i%j == 02.(n<k )&&(n%2 == 0)3. 1<=x && x<104. x<z||y<z5. !( y>=-100 && y<=-10 ) && !( y>=10 && y<=100 )6. sqrt(pow((x-10),2) + pow((y-20),2))< 357. a+b>c && b+c>a && c+a>b8. (year%4 == 0) && (year%100!=0)||(year%400==0)1.4 阅读下列程序,写出执行结果1.#include <iostream> using namespace std; int main(){ int a = 1, b = 2; bool x, y;cout << (a++)+(++b) << endl;cout << a % b << endl;x = !a>b;y = a-- && b;cout << x << endl;cout << y << endl;}【解答】4212.#include <iostream>using namespace std;int main(){ int x,y,z,f;x = y = z = 1;f = --x || y-- && z++;cout << "x = " << x << endl;cout << "y = " << y << endl;cout << "z = " << z << endl;cout << "f = " << f << endl;}【解答】x=0y=0z=2f=13.#include <iostream>#include<iomanip>using namespace std;int main(){ int a=123;int &ra=a;int *pa=&a;cout<<setw(5)<<dec<<a<<setw(5)<<oct<<ra<<setw(5)<<hex<<*pa<<endl;}【解答】4123 173 7b1.5 思考题1.什么叫数据类型?变量的类型定义有什么作用?【解答】数据“类型”是对数据的抽象。

类型相同的数据有相同的表示形式、存储格式以及相关的操作。

定义一个变量时,计算机根据变量的类型分配存储空间,并以该类型解释存放的数据。

2.普通数据类型变量和指针类型变量的定义、存储、使用方式上有何区别?请编写一个程序验证之。

【解答】变量类型定义存储使用方式数据类型标识符数据值通过名访问即直接访问对变量内容操作指针类型 * 标识符地址值通过指针变量的地址值间址访问对象验证程序:#include<iostream>using namespace std;int main(){ int a,b,c;cout<<"a,b,c= ";cin>>a>>b>>c; //对普通数据类型变量赋值int *pa=&a,*pb=&b,*pc=&c; //用变量地址值初始化指针变量cout<<"a,b,c= "<<a<<", "<<b<<", "<<c<<endl; //名访问,输出a,b,c的值cout<<"pa,pb,pc= "<<pa<<", "<<pb<<", "<<pc<<endl; //输出指针变量的地址值//间址访问,输出pa,pb,pc指向的变量的赋值cout<<"*pa,*pb,*pc= "<<*pa<<", "<<*pb<<", "<<*pc<<endl;}3.什么叫数据对象的引用?对象的引用和对象的指针有什么区别?请用一个验证程序说明之。

相关文档
最新文档