C语言程序设计教程第二版答案 高教版 谭浩强 张基温(材料)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c程序设计谭浩强答案”。
C语言程序设计教程第二版
高等教育出版社
谭浩强 张基温 唐永炎 等
第1章
1.1 请叙述什么是高级语言?
高级语言主要是指和机器硬件环境无关的程序设计语言。1.2 什么是过程化语言?什么是非过程化语言?
所谓面向过程语言,就是把解题过程看作是数据被加工的过程。其主要特点是数据与算法的分离。如C,PASCAL。可将过程程序设计语言简单地看作:程序=算法+数据结构。
非过程化语言的特点是数据和算法是一个有机的整体。如C++。1.3 请简述建立C语言程序的过程。
编辑,编译,连接,运行。File1.c file1.obj file1.exe 1.4 请编写一个程序,能显示出以下两行文字:
I am a student.I love China.//FileName:THQCh1_04.c #include int main(){ printf(“I am a student.n”);printf(“I love China.n”);return 0;} 1.5 编一程序,从键盘输入两个整数,输出此两数之和。//FileName:THQCh1_05.c #include int main(){ int x,y;printf(“请输入两个整数x y,中间用空格隔开”);scanf(“%d%d”,&x,&y);printf(“x与y的和为%d.n”,x+y);return 0;} 1.6 调用库函数,求以下的函数值:
(1)cos3.5678(2)lg90(3)e2.567(4)5
(5)tan0.78563
//FileName:THQCh1_06.c #include #include int main(){ printf(“cos3.5678=%fn”,cos(3.5678));printf(“lg90=%fn”,log10(90));printf(“exp(2.567)=%fn”,exp(2.567));printf(“sqrt(5)=%fn”,sqrt(5));printf(“tan(0.78563)=%fn”, tan(0.78563));return 0;} 1.7 编写一个求三个整数之和的程序。//FileName:THQCh1_07.c #include int SumofThreeNum(int x,int y,int z);int main(){ int x,y,z;printf(“请输入三个整数,中间用空格分隔(x y z):”);scanf(“%d%d%d”,&x,&y,&z);printf(“三个数的和为%dn”,SumofThreeNum(x,y,z));return 0;} int SumofThreeNum(int x,int y,int z){ return x+y+z;} 1.8 编写一个求a+│b│的程序。//FileName:THQCh1_08.c #include #include int SumofAandAbsB(int a,int b);//求a与b的绝对值的和 int main(){ int x,y;printf(“请输入两个整数,中间用空格分隔(x y):”);scanf(“%d%d”,&x,&y);printf(“三个数的和为%dn”,SumofAandAbsB(x,y));return 0;}
int SumofAandAbsB(int a,int b){ return a+abs(b);} 1.9 编写一个求0~100之间全部偶数之和的程序。//FileName:THQCh1_09.c #include #include int SumofOddBetween0_100();//求0与100之间的偶数的和 int main(){ printf(“0与100之间的偶数的和为%dn”,SumofOddBetween0_100());return 0;}
int SumofOddBetween0_100(){ int i,sum=0;for(i=0;i
if(i%2==0)sum=sum+i;} return sum;} 1.10 编写一个程序,从5个整数中找出最小的数,并显示此数。int FindMinNum(int a[],int k);//从k个整数中找出最小的数 { if(n
2.1 为什么C语言中每个数据都要属于一个特定的类型?
因为不同的类型在内存中所占的存储空间不同,将数据区分为不同的类型可以更好地组织数据,提高数据处理的效率。
2.2 指出数的定点形式与浮点形式有何不同。
定点数不含指数部分,浮点数含指数部分。2.3 计算机中表示的数是连续的吗?
不是。
2.4 写一个程序测试你所用的C版本中的float型数据所占的字节数。int main(){ printf(“float型数据的长度为%dn”,sizeof(float));return 0;} 2.5 写一个程序测试一下把带小数的float和double型数据用printf函数输出时,小数部分截断还是四舍五入? #include int main(){ float a;double b;a=3.1415926;b=3.14***935;printf(“a=%8.6fnb=%17.15fn”,a,b);return 0;} 运行结果: a=3.141593 b=3.14***94 这说明在截断时,按四舍五入来处理的。
2.6 下列常数中哪些是合法的C常量那些是非法的C常量?对合法者指出其类型,对非法者指出原因。
3-0.-0x2aL 0x7g e3
003
23.e-5 ‘n’
“x-y” ‘{’
12.5e
“105”
0‘105’ “35′53” 3+5 357″
π
e 2E5 ‘AB’
0x2.5b 03e5 ±7f 7ff 2e-310 12356e 3e+2.3 5e+0 1g3 合法的常量如下:
-0.-0x2al 0003 5e+0 3.e-5 2E5 ‘{’ ‘n’ “105” “x-y” “35′53”
不合法的常量如下: 32 0x7g e3 212.5e ‘105’ “35′53” 3+5 0357″ π e ‘AB’ 0x2.5b 03e5 ±7f 7ff 2e-310 12356e 3e+2.3 1g3 2.7 下面语句的执行结果是什么?
(1)printf(“ 07 ABC 11 DE 12 FGH xA”);(2)printf(“nABCtDEnFGHn”);(3)printf(“n why is 21+31 equal to %d?nn”,21+31);(1) 07执行响铃,然后输出ABC; 11执行Tab键的功能; 12为换行; xA也为换行;
(2)换行然后输出ABC,执行Tab键,输出DE,换行输出FGH,再换行;(3)换行后,输出why is 21+31 equal to 52? 然后两次换行。2.8 在下列符号中,你可以选用哪些作变量名?哪些不可以?为什么?
a3B 3aB π
+a b *x s b5
if
next day e2 ok? Intger maxnumber i*j 可作变量名的有:
a3B s next intger maxnumber 2.9 写出下面程序段执行后变量a,b,c的值。
char a=’2’,b=’a’;int c;c=a+b;a=c;
a的ASCII码为147,为图形符号ô;b的值为’a’;c的值为147。2.10 写出下面程序的输出结果。main(){ int x;x=-3+4*5-6;printf(“%dn”,x);x=3+4%5-6;printf(“%dn”,x);x=-3*4%-6/5;printf(“%dn”,x);x=(7+6)%5/2;printf(“%dn”,x);} 1 0 1 2.11 写出下面程序的输出结果。main(){ printf(“%d%d%d%dn”,1+2,5.2,-2*4,11%3);printf(“%.5f%.5f%.5fn”,1.+2.,5.12,-2.*4.);}
32-82 3.000005.12000-8.00000 2.12 写出下面程序的执行结果。int main(){ int x=2,y,z;x*=3+2;printf(“%dn”,x);x*=y=z=4;printf(“%dn”,x);x=y=1;z=x++-1;printf(“%d,%dn”,x,z);z+=-x+++(++y);printf(“%d,%dn”,x,z);return 0;}40 2,0 3,0 2.13 写出下面程序的运行结果。int main(){ int x=40,y=4,z=4;x=y==z;printf(“%dn”,x);x=x==(y-z);printf(“%dn”,x);return 0;} 0 2.14 写出下面程序的执行结果。int main(){ int x,y,z;x=y=z=3;y=x++-1;printf(“%dt%dt”,x,y);y=++x-1;printf(“%dt%dt”,x,y);y=z--+1;printf(“%dt%dt”,x,y);y=z--+1;printf(“%dt%dt”,x,y);y=--z+1;printf(“%dt%dt”,x,y);return 0;}2 5 4 2 4 1 2.15 写出下面程序的输出结果。int main(){ int i,j;i=16;j=(i++)+i;printf(“%dn”,j);i=15;printf(“%dt%dn”,++i,i);i=20;j=i--+i;printf(“%dn”,j);i=13;printf(“%dt%dn”,i++,i);return 0;}
16 15 40 13 132.16 写出下列表达式的值。
(1)1
x=1 y=0 z=0 x=1 y=1 z=0 x=1 y=1 z=1 x=0 y=-1 z=-1 x=0 y=-1 z=0 x=0 y=0 z=-1 2.18 用C语言描述下列命题。
(1)a小于b或者小于c。(2)a或b都小于c。(3)a或b中有一个小于c。(4)a非负整数。(5)a是奇数。
(6)a不能被b整除。
(7)角A在第一或第三象限。
(8)a是一个带小数的正数,而b是一个带小数的负数。(1)a=0&&a=PI&&a0)&&(floor(b)!=b&&b
2.19 写出下面程序的输出结果。int main(){ int x=1,y=1,z=1;y=y+z;x=x+y;printf(“%dn”,x=z>=x)?1:0);printf(“%dn”,z>=y&&y>=x);return 0;}2 3 3 0 1 2.20 若x=3,y=z=4,求下列表达式的值。
(1)(z>=y>=x)?1:0(2)z>=y&&y>=x(1)0(2)1 2.21 若x=3,y=2,z=1,求下列表达式的值。
(1)xy?x++:y++);printf(“%dt%dt”,y,z);x=3;y=z=4;printf(“%dt”,(z>=y>x)?1:0);printf(“%dn”,z>=y&&y>=x);return 0;}5 6 6 9 7 9 0 1 2.23 用条件表达式描述:
(1)取三个数中的最大者。
(2)任意两数存放在变量c1与c2中,让小数存放在c1中,大数存放在c2中,并输出大数。
(1)设三个数分别为a,b,c,表达式如下:
(max1=(a>b)?a:b)>c?max1:c(2)设任意两数分别为a,b,表达式如下:
c2=(a>b)?a:b;c1=(a
128234.889999-123.456700 234.8902.349e+002 0234.8902.349e+002-123.457-123.456700-1.234567e+002 ***128% 2.26 有一字符串s的值为”ABCDEFGHIJKL”,写出执行完下面的程序段后的输出结果。int main(){ char s[]=“ABCDEFGHIJKL”;printf(“%%%20s%%n”,s);printf(“%%%-20s%%n”,s);printf(“%%%020s%%n”,s);printf(“%%%-020s%%n”,s);return 0;}
% ABCDEFGHIJKL% %ABCDEFGHIJKL % %00000000ABCDEFGHIJKL% %ABCDEFGHIJKL % 2.27 写出下面程序的输出结果。int main(){ char c;short i;c='A';i=65;printf(“c:dec=%d oct=%o hex=%x ASCII=%cn”,c,c,c,c);printf(“i:dec=%d oct=%o hex=%x unsigned=%un”,i,i,i,i);c='x';i=-4;printf(“c:dec=%d oct=%o hex=%x ASCII=%cn”,c,c,c,c);printf(“i:dec=%d oct=%o hex=%x unsigned=%un”,i,i,i,i);return 0;}
c:dec=65 oct=101 hex=41 ASCII=A i:dec=65 oct=101 hex=41 unsigned=65 c:dec=120 oct=170 hex=78 ASCII=x i:dec=-4 oct=177774 hex=fffc unsigned=65532 2.28 指出下面程序段中的错误,并改正。int main(){ int a;float b;fchar c;seanf(“%c%d%c%f;c,b,a,b);return 0;} char c;scanf(”%c%f%d%fn”,&c,&b,&a,&b);2.29 当输入流为”56789 012345a72”时,执行下面的程序段。
int i,j;float x,y;char c;scanf(“%2d%f%f%c%d”,&i,&x,&y,&c,&j);
56, 789.000000, 12345.000000, a, 72 2.30 请说明C语言的数据类型,并指出C语言有哪些特点?
整型字符型单精度型基本类型实型浮点型双精度型枚举类型数据类型
数组类型构造类型结构体类型共用体类型指针类型空类型 C语言的数据类型丰富,功能强。C语言兼有高级语言和低级语言的功能,灵活方便。缺点是较复杂,危险性高,不易掌握。
2.31 C语言为什么要规定对所有的变量要“先定义,后使用”?这样做有什么好处?
(1)因为如果不加定义,就无从知道标识符是变量还是别的程序实体;
(2)如果不加定义,就不知道它的类型,也就无法为其分配指定大小的存储单元;(3)如果不加定义,就无法在编译阶段对其进行检查,以确定其合法性。2.32 请将下面各数用八进制和十六进制数表示:
(1)10
(2)32
(3)75
(4)–617(5)–111(6)2483(7)–28654(8)21003(1)012 0xa(2)040 0x20(3)0113 0x4b(4)037777776627 0xfffffd97(5)037777777621 0xffffff61(6)04663 0x9b3(7)037777710022 0xffff9012(8)051013 0x520b 2.34 写出以下程序的运行结果。int main(){ char c1='a',c2='b',c3='c',c4='101',c5='116';printf(“a%cb%ctc%ctabcn”,c1,c2,c3);printf(“tb%c %cn”,c4,c5);return 0;}
aabb cc abc A N 2.35 要将“China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E”,用“E”代替“A”。因此,“China”应译为“Glmre”。请编一程序,用赋初值的方法使c1,c2,c3,c4,c5五个变量的值分别为‘C’,‘h’,‘i’,‘n’,‘a’,经过运算,使c1,c2,c3,c4,c5分别变为‘G’,‘l’,‘m’,‘r’,‘e’,并输出。int main(){ char c1,c2,c3,c4,c5;printf(“请输入五个字符:”);scanf(“%c %c %c %c %c”,&c1,&c2,&c3,&c4,&c5);c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf(“加密后的结果为:%c%c%c%c%cn”,c1,c2,c3,c4,c5);return 0;} 2.36 程序能否写成如下形式: int main(){ int c1,c2;c1=97;c2=98;printf(“%c %cn”,c1,c2);return 0;}
程序输出a b 2.37 求下面算术表达式的值。(1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x/y 设a=2,b=3,x=3.5,y=2.5(1)2.500000(2)3.700000 2.38 写出以下程序的运行结果。int main(){ int i,j,m,n;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%dn”,i,j,m,n);return 0;} 9,11,9,10 2.40 写出下面表达式运算后a的值,设原来a=12。
(1)a+=a(2)a-=2(3)a*=2+3(4)a%=(n%=2)(设n的值等于5)(5)a/=a+a(6)a+=a-=a*=a(1)24
(2)10
(3)60
(4)0(5)0
(6)0 2.41 什么是算术运算?什么是关系运算?什么是逻辑运算? 算术运算:+-* / % ++--关系运算: == >=
2.43 写出下面各逻辑表达式的值,设a=3,b=4,c=5。(1)a+b>c && b==c(2)a||b+c && b-c(3)!(a>b)&&!c &&!1(4)!(x=a)&&(y=b)&& 0(5)!(a+b)+c-1 && b+c/2(1)0(2)1(3)0(4)0(5)1 2.44 C语言为什么要把输入输出的功能用函数来实现,而不作为语言的基本部分? 因为输入输出的对象是数据,而数据是以介质为载体的,因此进行输入输出就要与各种外部设备打交道。由于不同的系统进行输入输出的差异较大,所以必须使用函数和操作系统进行交互,以便存取不同的设备文件。2.45 若a=3,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= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.60 y+z=-1.20 z+x=-2.40 u= 51274 n= 128765 c1=’a’ or 97(ASCII)c2=’b’ or 98(ASCII)int main(){ int a=3,b=4,c=5;double x=1.2,y=2.4,z=-3.6;unsigned int u=51274,n=128765;char c1='a',c2='b';printf(“a=%2d b=%2d c=%2dn”,a,b,c);printf(“x=%f,y=%f,z=%fn”,x,y,z);printf(“x+y=%5.2f y+z=%5.2f z+x=%5.2fn”,x+y,y+z,z+x);printf(“u=%6u n=%10un”,u,n);printf(“c1=%c or %d(ASCII)n”,c1,c1);printf(“c2=%c or %d(ASCII)n”,c2,c2);return 0;} 2.46 请写出下面程序的输出结果: int main(){ int a=5,b=7;float x=67.8564,y=-789.124;char c='A';long n=1234567;unsigned u=65535;printf(“%d%dn”,a,b);printf(“%3d%3dn”,a,b);printf(“%f,%fn”,x,y);printf(“%-10f,%-10fn”,x,y);printf(“%8.2f,%8.2f,%.4f,%.4f,%3f,%3fn”,x,y,x,y,x,y);printf(“%e,%10.2en”,x,y);printf(“%c,%d,%o,%xn”,c,c,c,c);printf(“%ld,%lo,%xn”,n,n,n);printf(“%u,%o,%x,%dn”,u,u,u,u);printf(“%s,%5.3sn”,“COMPUTER”,“COMPUTER”);return 0;} 57 5 7 67.856400,-789.124023 67.856400 ,-789.124023 67.86,-789.12,67.8564,-789.1240,67.856400,-789.124023 6.785640e+001,-7.89e+002 A,65,101,41 1234567,4553207,12d687 65535,177777,ffff,65535 COMPUTER, COM 2.47 用下面的scanf函数输入数据,使a=3,b=7,x=8.5,7=71.82,c1=’A’,c2=’a’,问在键盘上如何输入? int main(){ int a,b;float x,y;char c1,c2;scanf(“%d %d %f %f %c %c”,&a,&b,&x,&y,&c1,&c2);printf(“%d %dn”,a,b);printf(“%f %fn”,x,y);printf(“%c %cn”,c1,c2);return 0;} 2.48 用下面的scanf函数输入数据,使a=10,b=20,c1=’A’,c2=’a’,x=1.5,y=-3.75,z=67.8,请问在键盘上如何输入数据? int main(){ int a,b;char c1,c2;float x,y,z;scanf(“%d %d %c %c %f %f %f”,&a,&b,&c1,&c2,&x,&y,&z);
printf(“%d %dn”,a,b);printf(“%f %f %fn”,x,y,z);printf(“%c %cn”,c1,c2);return 0;} 2.49 设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,然后输出计算结果。输出时要求有文字说明并取小数点后两位数字,请编程序。
#define Pi 3.1415926 int main(){ double r,h;scanf(“%lf %lf”,&r,&h);printf(“圆的周长=%.2fn”,2*Pi*r);printf(“圆的面积=%.2fn”,Pi*r*r);printf(“圆球表面积=%.2fn”,Pi*r*r/6);printf(“圆球体积=%.2fn”,4*Pi*r*r*r/3);printf(“圆柱体积=%.2fn”,Pi*r*r*h);return 0;} 2.50 输入一个华氏温度的取值F,要求输出摄氏温度的取值C。公式为
C=5(F-32)/9 输出要有文字说明,取两位小数。#include double CentigradeTemperture(double Fahrenheit);int main(){ double F;printf(“请输入华氏温度:”);scanf(“%lf”,&F);printf(“摄氏温度为%.2fn”, CentigradeTemperature(F));return 0;} double CentigradeTemperature(double Fahrenheit){ return 5*(Fahrenheit-32)/9;} 2.51 编程序:用getchar函数读入两个字符c1,c2,然后分别用putchar函数和printf函数输出这两个字符,并思考以下问题:(1)变量c1,c2应定义为字符型还是整型,或二者皆可?(2)要求输出c1和c2的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整型变量与字符变量是否在任何情况下都可以互相代替?如:
char c1,c2;与 int c1,c2;是否无条件等价? int main(){ char c1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);printf(“n%c %cn”,c1,c2);return 0;}(1)二者皆可。
(2)用printf函数将printf(“n%c %cn”,c1,c2)改成printf(“n%d %dn”,c1,c2)即可。(3)不是,整型可以代替字符型,但字符无法完全替代整型。第3章
3.1 写出下面程序的执行结果。int main(){ int value1,value2,sum;value1=50;value2=25;sum=value1+value2;printf(“The sum of %d and %d is %dn”,value1,value2,sum);return 0;}
The sum of 50 and 25 is 75 3.2 请设计下列算法:
(1)有两盘磁带,A录英语,B录音乐,把它们交换过程。(2)依次输入10个数,找出最大数。(3)把三个任意数按大小顺序排列。(4)判断一个整数n能否倍和5整除。(5)求两个正整数m和n的最大公约数。
(1)int a,b,c;c=a;a=b;b=c;(2)int max(int a[],N){ int a;int i;for(i=0;i
if(ab){
if(a>c)
if(b>c)printf(“%d %d %d”,a,b,c);
else printf(“%d %d %d”,a,c,b);
else printf(“%d %d %d”,c,a,b);} else{
if(b>c)
if(a>c)printf(“%d %d %d”,b,a,c);
else printf(“%d %d %d”,b,c,a);
else printf(“%d %d %d”,c,b,a);} return 0;}(4)int main(){ int a;scanf(“%d”,&a);if(a%3 && a%5)printf(“不能被3和5整除n”);else
if(a%3)printf(“不能被3整除但可以被5整除n”);
else if(a%5)printf(“不能被5整除但可以被3整除n”);else printf(“既可以被3整除也可以被5整除n”);return 0;}(5)int MaxSameNum(int m,int n){ int u,v,r;u=m;v=n;if(u*v!=0){
while(r=u%v)
{
u=v;v=r;
}
return v;} else
return 0;} 3.3 有下列条件语句:
if(a
(2)检查其中有无多余的判断条件或矛盾的判断条件。(3)重写一个等效的、简洁的条件语句。if(a=d */ else{ /* d
}
} } else x=7;检查: if(a
} } else x=7;3.4 写出下面程序的执行结果。int main(){ int x,y=1,z;if(y!=0)x=5;printf(“x=%dt”,x);if(y==0)x=3;else x=5;printf(“x=%dtn”,x);z=-1;if(z
if(y>0)x=3;
else x=5;printf(“x=%dtn”,x);if(z=y
if(y==0)x=5;
} else x=7;printf(“x=%dt”,x);printf(“z=%dtn”,z);if(x=z=y)x=3;printf(“x=%dt”,x);printf(“z=%dtn”,z);return 0;x=5 x=5 x=3 x=7 z=-1 x=3 z=1 3.5 设计一个从五个数中取最大数及最小数的程序。
int main(){ double n,max,min;printf(“enter 5 real numbers:n”);scanf(“%lf”,&n);max=n;min=n;while(scnaf(“%lf”,&n)!=EOF){
if(n>max)max=n;
if(n
int main(){ float a,b,c,x;printf(“nPlease enter 3 Reals:n”);scanf(“%f %f %f”,&a,&b,&c);if(a
x=a;
a=b;
b=x;} if(b>c)printf(“%ft%ft%fn”,a,b,c);else
if(c>a)printf(“%ft%ft%fn”,c,a,b);
else printf(“%ft%ft%fn”,a,c,b);return 0;} 3.7 设计一个判断输入年份是否闰年的C程序。#include int IsLeap(int year);int main(){ int year;printf(“请输入年份:”);scanf(“%d”,&year);if(IsLeap(year))
printf(“%d是闰年!n”,year);else
printf(“%d不是闰年!n”,year);return 0;} int IsLeap(int year){ if(year%4==0 && year%100!=0 || year%400==0)
return 1;else
return 0;} 3.8 由键盘输入三个数,计算以这三个数为边长的三角形面积。#include #include double TriArea(double a,double b,double c);int main(){ float a,b,c;printf(“请输入三角形的三个边长,中间用空格分隔:”);scanf(”%f %f %f”,&a,&b,&c);printf(“三角形的面积是%lfn”,TriArea(a,b,c));return 0;} double TriArea(double a,double b,double c){ double s,s1;if((a+b)>c &&(b+c)>a &&(c+a)>b){
s=(a+b+c)/2;
s1=s*(s-a)*(s-b)*(s-c);
s=sqrt(s1);
return s;} else
return 0;} 3.9 由键盘输入一个数,打印出它的类型标识符。int main(){ int label;char c;printf(“nPlease enter 1 number:”);c=getchar();while(c!=‟n‟){ if(c==‟.‟)label =1;c=getchar();} if(label==1)printf(“nfloat”);else printf(“nint”);return 0;} 3.10 指出下面程序的打印结果。int main(){ int n=0;while(n++
3.11 把下列程序改写得更合理。(1)while(A){ if(B)continue;C;}(2)do{ if(!A)continue;else B;C;}while(A)(1)while(A){ if(!B)C;}(2)do{ if(A){
} }while(A)3.12 指出下面三个程序的功能。当输入为“quert?”时,它们的执行结果是什么?(1)int main(){ char c;c=getchar();while(c!=‟?‟){
putchar(c);
c=getchar();} return 0;}(2)int main(){ char c;while((c=getchar())!=‟?‟)putchar(++c);}(3)int main(){ while(putchar(gechar())!=‟?‟);}
(1)的功能是显示从键盘输入的每一个字符,当输入?时结束。当输入“quwet?”时,执行结果是quwet。
(2)的功能是显示从键盘输入的每一个字符的下一个字符,当输入?时结束。当输入“quwet?”时,执行结果是rvfsu。
(3)的功能与(1)相同,但输出结果多一个?。
3.13 把由键盘输入的数列(如1,3,5,7,9,…)按相反的顺序输出。#include #define N 100 int main(){ int a[N];int k;int i;printf(“请输入数列的长度:”);scanf(“%d”,&k);printf(“请输入数列各元素:n”);for(i=0;i
scanf(“%d”,&a[i]);for(i=k;i>0;i--)printf(“%dn”,a[i-1]);return 0;} 3.14 打印ASCII码值为32~255的ASCII码值、字符对照表。int main(){ int i;for(i=32;i
if(i%8==0)printf(“n”);
printf(“4d %c”,i,i);} return 0;} 3.15 打印形状为直角三角形的九九表。int main(){ int i,j;printf(“*”);for(i=1;i
printf(”%2d”,i);
for(j=1;j
printf(“%4d”,j*k);
printf(“n”);} return 0;} 3.16 计算e的值。
e=1 + 1/1!+ 1/2!+ 1/3!+ …
使误差小于给定的精度δ。#include #define N 1000 #define M((N-1)/3+1)int e[M]={1};//每次计算三位 void mdiv(int m,int e[]);int main(){ int i;for(i=N;i>=1;i--){
mdiv(i,e);
e[0]++;} printf(“e=%d.”,e[0]);for(i=1;i
if(e[i]
else
if(e[i]
else printf(“%d”,e[i]);
printf(“ ”);} printf(“n”);return 0;}
void mdiv(int m,int e[]){ long int rem=0,d;
for(int i=0;i
d=e[i];
e[i]=(d+rem)/m;
rem=(d+rem)%m*1000;} } 3.17 递增的牛群:若一头母牛,从第四年开始每年生一头母牛。按此规律,第n年时有多少头母牛?
#include #define N 20 int main(){ int i;int a[N];a[0]=1;a[1]=1;a[2]=1;a[3]=2;
/*从第i年开始,三年前的小牛已可以生产,即a[i-3]属于可生产牛,则第i年将新增小牛数a[i-3]头。
将上年(i-1年)牛的总数a[i-1]加上新生小牛数a[i-3],即为第i年牛的总数a[i-1]+a[i-3]=a[i]。*/
for(i=3;i
a[i]=a[i-3]+a[i-1];for(i=0;i
printf(“%dn”,a[i]);return 0;} 3.18 把一元人民币换成5分、2分和1分的硬币,有多少种换法 #include int main(){ int x,y,z;int Total=100;int Times=0;
for(x=0;x
for(y=0;y
z=Total-5*x-2*y;
Times++;
printf(“%d个5分,”,x);
printf(“%d个2分,”,y);
printf(“%d个1分n”,z);
} } printf(“共有%d”种换法n“,Times);return 0;} 3.19 百马百担问题。有100匹马,驮100担货,大马驮3担,中马驮2担,两个小马驮1担。问有大,中,小马各多少匹? int main(){ int x,y,z;int HorseTotalNum=100;int BurdenTotalNum=100;int Times=0;
for(x=0;x
for(y=0;y
for(z=0;z
if(x+y+z==HorseTotalNum && 6*x+4*y+z==2*BurdenTotalNum){
Times++;
printf(”大马%d个,“,x);
printf(”中马%d个,“,y);
printf(”小马%d个n“,z);
}
} printf(”共有%d种组合n“,Times);return 0;} 3.20 车票问题。某铁路线上共有10个车站,问需准备几种车票? int main(){ int i,j,station,Total=0;printf(”请输入车站的数量:“);scanf(“%d”,station);for(i=1;i
for(j=i;j
Total+=2;Printf(”共需%d种车票n“,Total);return 0;} 3.21 验证欧拉公式a(n)=n*n-n+41是-39~40之间的素数通项公式 #include #include int main(){ int i,j,p;for(i=-39;;i++){
p=i*i-i+41;
printf(”n=%dtp=(%d)*(%d)-(%d)+41=%dt”,n,n,n,n,p);
for(j=2;j
if(!(p%j)){
printf(“errorn”);
return 0;
}
printf(“OKn”);} return 0;} 3.22.延长数列。将下列数列:
1,1,1,1,2,1,1,3,3,1,1,4,6,4,1,1,5,10,10,5,1,… 延长到55个。int main(){ int a[60];int i,j,k=0;for(i=1;;i++){
if((k+1)>55)break;
a[k+1]=1;
for(j=2;j
if((k+j)>55)break;
a[k+j]=a[k-(i-1)+(j-1)]+a[k-(i-1)+j];
}
if((k+j)>55)break;
a[k+=i]=1;} for(i=1;i
int main(){ int k;//倒数第k个站点
double Distation;//当前站点离终点的距离
double x;//下一站点离本站的距离
double Total;//当前站点的储油量
//显然,算法结束的条件是,当前站点离终点的距离Distation>1000 //倒数第一个站点的初条件是
k=0;Distation=0;Total=0;
//从下一站点到本站的距离为x,//从下一站点跑到本站点k需要跑2k+1次x距离,//用以保证本站点有足够的油量储备
//下一站点的油量储备应为500*(k+1),或者本站点的油量储备为500k
while(Distation
//显示当前站点号,当前站点离终点距离,当前站点储油量
printf(“倒数第%d个站点,”,k);
printf(“该站点距终点的距离为%lfkm”,Distation);
printf(“当前站点油量储备为%ldn”,Total);
x=500.0/(2*k+1);
Distation=Distation+x;
Total=Total+500;
k++;}
//当前站点已经越过起点,所以应回到前一站点重新计算
Distation=Distation-x;Total=Total-500;k--;
x=1000-Distation;Distation=Distation+x;Total=Total+(2*k+1)*x;printf(“倒数第%d个站点,”,k);printf(“该站点距终点的距离为%lfkm ”,Distation);printf(“当前站点油量储备为%lf升n”,Total);return 0;} 3.24.印度国王的奖励。相传古代印度国王奖励他的聪明能干的宰相达依尔(国际象棋的发明者),问他要少摸?达依尔回答:“陛下只要在国际象棋棋盘的第一个格子上放一粒麦子,第二个格子上放二粒麦子,以后每个格子的麦子都按前一格的两倍计算,如果陛下按此法给我64格的麦子,我就感激不尽,其他什么也不要了。”国王想:“这还不容易!”就让人扛了一袋麦子,但很快用光了,再扛出一袋还不够,请您为国王算一算共要给达依尔多少
8小麦?(设一立方小麦约1.4×10粒)int main(){ int i,frame;double wheattal=0;double wheatfnu=1;printf(“请输入棋盘格数:”);scanf(“%d”,frame);for(i=0;i
wheattal+=wheatfnu;
wheatfnu+=wheatfnu;} printf(“小麦的总量约为%lfn”,wheattal/1.4e8);return 0;} 3.25 输入两个正整数m和n,求其最大公约数和最小公倍数。int GreatestCommonDivisor(int m,int n)/*返回最大公约数*/ { int u,v,r;if(m==0 || n==0)return 0;u=m;v=n;while(r=u%v){
u=v;
v=r;} return v;} int LeastCommonMultiple(int m,int n)/* 返回最小公倍数 */ { int u;u=GreatestCommonDivisor(m,n);if(!u)return 0;return u*(m/u)*(n/u);} 3.26 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。#define N 100 int main(){ char s[N];char *p;int i=0,j=0,k=0,m=0;gets(s);p=s;while(*p!=' '){
if(*p64)i++;
else
if(*p==32)j++;
else
if(*p47)k++;
else m++;
p++;} printf(“英文字符个数为:%dn”,i);printf(“空格数为:%dn”,j);printf(“数字个数为:%dn”,k);printf(“其它字符个数为:%dn”,m);return 0;} 3.27 求Sn=a + aa + aaa + … + aa…a(n个a)之值,其中a是一个数字。long int SumOfaa(int a,int k){ if(a
return 10*(SumOfaa(a,k-1)-SumOfaa(a,k-2))+a+SumOfaa(a,k-1);} 3.28 求n!(即求1!+2!+3!+…+20!)。
n120long int SumOfRfact(int k){ if(k
if(k
else
} 3.29 求
100return k*(SumOfRfact(k-1)-SumOfRfact(k-2))+SumOfRfact(k-1);50101 kkk1k1k1k2long int SumOfk(int k){ int i,sum=0;if(k
for(y=0;y
for(z=0;z
if(x*x*x+y*y*y+z*z*z==x*100+y*10+z){
printf(“%dn”,x*100+y*10+z);
i++;
} printf(“共有%d个水仙花数n”,i);return 0;} 3.31 一个数如果恰好等于它的因子之和,这个数就称之为“完数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数。并按下面的格式输出其因子。#define N 1000 int AllFactors(int a[],int k);int OverNum(int k);int main(){ int i,k=0;for(i=1;i
if(OverNum(i)){
printf(“%d is OverNumn”,i);
k++;
} } printf(“There are %d OverNumsn”,k);return 0;} /* 求k的所有因子,因子保存在数组a中,返回因子的个数 */ int AllFactors(int a[],int k){ int i;int m=1;/* 用以记录因子的个数 */ if(k
if(k%i==0){ /* i是因子 */
a[m++]=i;/* 因子送数组保存 */
} } return m;} int OverNum(int k){ int a[100];int j,m;int sum=0;m=AllFactors(a,k);/* 记录因子个数 */ for(j=0;j
return 1;else
return 0;} 3.32 有一分数序列: 23581321,,,… 1235813求出这个序列的前20项之和。#define N 20 double SumFractions(int k);int main(){ printf(“%lfn”,SumFractions(N));return 0;} double SumFractions(int k){ int i;double sum=0.0;double a=2.0,b=1.0,temp;for(i=0;i
sum=sum+a/b;
temp=a;
a=a+b;
b=temp;} return sum;} 3.33 一个球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?
double TotalDistance(double Height,double Times,double Ratio);double ReboundingDistance(double Height,double Times,double Ratio);int main(){ double Height,Times,Ratio;printf(“请输入小球的高度,反弹次数,反弹高度比例:”);scanf(“%lf%lf%lf”,&Height,&Times,&Ratio);printf(“反弹的总距离为%lf米n”,TotalDistance(Height,Times,Ratio));printf(“最后一次反弹的高度为%lf米n”,ReboundingDistance(Height,Times,Ratio));return 0;} double TotalDistance(double Height,double Times,double Ratio){ int i;double sum=0.0;double h;h=Height;for(i=0;i
if(i==0)sum=sum+h;else sum=sum+2*h;
h=h*Ratio;} return sum;} double ReboundingDistance(double Height,double Times,double Ratio){ int i;double h;h=Height;for(i=0;i
h=h*Ratio;} return h;} 3.34 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。已经每天早上都吃了前一天剩下的一半零一个。到第10天早上再想吃时,见只剩下一个桃子了。求第一天共摘多少桃子? int MonkeyEatPeach(int days);int main(){ int days;printf(“请输入猴子吃桃的天数:”);scanf(“%d”,&days);printf(“猴子总共摘了%d个桃子n”,MonkeyEatPeach(days));return 0;} int MonkeyEatPeach(int days){ int i,sum=1;for(i=0;i
sum=2*(sum+1);return sum;} 3.35 用迭代法求x=a的近似根。求平方根的迭代公式为
xn11a xn2xn-5要求前后两次求出的x的误差的绝对值小于10。
double ApproximateSqrtRoot(double a,double precision);int main(){ double a,prec;printf(“请输入欲求平方根的数及精度:”);scanf(“%lf%lf”,&a,&prec);printf(“%lf的平方根近似为%lfn”,a,ApproximateSqrtRoot(a,prec));return 0;} double ApproximateSqrtRoot(double a,double precision){ double x1=a,x2;x2=(x1+a/x1)/2;if(aprecision){
x1=x2;
x2=(x1+a/x1)/2;} return x2;} 3.36 用牛顿迭代法求方程在1.5附近的根。
322x-4x+3x-6=0
/* 牛顿迭代法解方程 */ double NewtonSolvingEquation(double x,double precision){ double x1,x2;x1=x;x2=x1-func1(x1)/dfunc1(x1);while(fabs(x1-x2)>precision){
x1=x2;
x2=x1-func1(x1)/dfunc1(x1);} return x2;} double func1(double x)/* 方程f(x)=0的函数f(x)*/ { return 2*x*x*x-4*x*x+3*x-6;} double dfunc1(double x)/* f(x)的导函数 */ { return 6*x*x-8*x+3;} 3.37 用二分法求方程在(-10,10)之间的根。
322x-4x+3x-6=0 /* 二分法解方程 */ double BinarySolvingEquation(double x1,double x2,double precision){ double a,b,c;a=x1;b=x2;while(fabs(a-b)>precision){
c=(a+b)/2;
if(func1(c)*func1(a)
else a=c;} return a;} double func1(double x)/* 方程f(x)=0的函数f(x)*/ { return 2*x*x*x-4*x*x+3*x-6;} 3.38 打印出以下图案。
* *** ***** ******* ***** *** * void ShowSpace(int k);int main(){ int MaxStarNum;int i,j;int bl,el;/* bl为起始位置,el为本行图案长度 */ scanf(“%d”,&MaxStarNum);if(MaxStarNum%2==0)return 0;/* 最大长度不是奇数,不符合题意退出 */ for(i=0;i
if(i
bl=MaxStarNum/2-i;
el=2*i+1;
}
else{/* 计算下半区每行图案起始位置和长度 */
bl=i-MaxStarNum/2;
el=MaxStarNum-(2*(i-MaxStarNum/2));
}
ShowSpace(bl);/* 图案前的空格数 */
for(j=bl;j
printf(“n”);} return 0;} void ShowSpace(int k){ int i=0;while(i++
for(B='X';B
for(C='X';C
if(A!='X' && C!='X' && C!='Z' && A!=B && B!=C && C!=A)
printf(“A vs %c, B vs %c, C vs %cn”,A,B,C);return 0;} 3.40 有三个整数a,b,c,由键盘输入,输出其中最大的数。int Max3(int a,int b,int c);int main(){ int a,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“最大的数是%dn”,Max3(a,b,c));return 0;} int Max3(int a,int b,int c){ int temp;temp=a>b?a:b;return temp>c?temp:c;} 3.41 有一函数:
x1xy2x11x10
3x11x10编写一程序,输入x,输出y值。
double funcy(double x);int main(){ double x,y;scanf(“%lf”,&x);y=funcy(x);printf(“最大的数是%lfn”,y);return 0;} double funcy(double x){ if(x
if(x
else return 3*x-11;} 3.42 给出百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。90分以上为’A’,81~89分为’B’,70~79分为’C’,60~69分为’D’,60分以下为’E’。int main(){ double score;scanf(“%lf”,&score);if(score>100 || score=90)printf(“An”);else
if(score>=80)printf(“Bn”);
else
if(score>=70)printf(“Cn”);
else
if(score>=60)printf(“Dn”);
else printf(“En”);return 0;} 3.43 给一个不多于5位的正整数,要求:(1)求出它是几位数;(2)分别打印出每一位数字;(3)按逆序打印出各位数字,例如原数为321,应输出123。int main(){ int i,k;int a[5];unsigned int x;scanf(“%u”,&x);if(x>99999 || x
if(a[1])printf(“4位数n”);
else
if(a[2])printf(“3位数n”);
else
if(a[1])printf(“2位数n”);
else printf(“1位数n”);/* 计算无效0的个数 */ k=0;while(k=k;i--)printf(“%d ”,a[i]);printf(“n”);return 0;} 3.44 企业发放的奖金根据利润提成。利润(I)低于或等于10万元的,奖金可提10%;利润高于10万元,低于20万元(100000
if(I
bouns=10*0.1+(I-10)*0.75;
else
if(I
bouns=10*0.1+10*0.75+(I-20)*0.05;
else
if(I
bouns=10*0.1+10*0.75+20*0.05+(I-40)*0.03;
else
if(I
bouns=10*0.1+10*0.75+20*0.05+
20*0.03+(I-60)*0.15;
else
bouns=10*0.1+10*0.75+20*0.05+
20*0.03+40*0.15+(I-100)*0.01;printf(“本月总奖金数为%lf万元n”,bouns);return 0;} 3.45 输入四个整数,要求按大小顺序输出 #define N 4 int bubble(int a[],int k);int main(){ int i;int a[N];for(i=0;i
for(i=0;i
printf(“n”);} return 0;}
int bubble(int a[],int k){ int i,j;int t,temp;if(k
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
} } return 1;} 3.46 有四个圆塔,圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1,见图 3.12。这四个塔的高度都为10米,塔以外无建筑物。今输入任一点的坐标,求该点相应的高度(塔外的高度为0)。double TowerHeight(double x,double y,double z);int main(){ double x,y,z;scanf(“%lf %lf %lf”,&x,&y,&z);printf(“该点的高度为%lfn”,TowerHeight(x,y,z));return 0;} double TowerHeight(double x,double y,double z){ if((x-2)*(x-2)+(y-2)*(y-2)
(x+2)*(x+2)+(y-2)*(y-2)
(x-2)*(x-2)+(y+2)*(y+2)
(x+2)*(x+2)+(y+2)*(y+2)
return z;else
return 0;} 第4章
函 数
4.1 指出下列程序中的错误或不合理之处,并改正之。int main(){ int s,x,n;s=power(x,n);} power(y){ int i,p=1;for(i=1;i
p=p*y;}
int power(int x,int n);int main(){ int s,x,n;scanf(“%d %d”,&x,&n);s=power(x,n);printf(“%s=%dn”,s);return 0;} int power(int x,int n){ int i,p=1;for(i=1;i
p=p*x*i;return p;} 4.2 编写程序在屏幕上画一条正弦曲线。#include #include #include #define PI 3.1415926 void ShowSpace(int k);int main(){ int i;int SetLoc=20;int CurLoc;int Amplitude=10;int Angle=15;for(i=0;i
CurLoc=(int)(SetLoc+Amplitude*sin(i*PI/180));
if(CurLoc
ShowSpace(CurLoc-1);
printf(“*”);
ShowSpace(SetLoc-CurLoc-1);
printf(“I”);
}
else{
if(CurLoc==SetLoc){
ShowSpace(SetLoc-1);
printf(“*”);
}
else{
ShowSpace(SetLoc-1);
printf(“I”);
ShowSpace(CurLoc-SetLoc-1);
printf(“*”);
}
}
printf(“n”);} return 0;} void ShowSpace(int k){ int i=0;while(i++ #define N 100 int a[N];int AllFactors(int a[],int k);int main(){ int i,t,k;scanf(“%d”,&k);t=AllFactors(a,k);if(t)
for(i=0;i
printf(“没有公因子n”);printf(“n”);return 0;} int AllFactors(int a[],int k){ int i;int m=0;/* 用以记录因子的个数 */ int u=k;/* 用以保存余数 */ for(i=2;i
while(u%i==0){ /* i是因子 */
a[m++]=i;/* 因子送数组保存 */
u=u/i;/* 余数 */
} } return m;} 4.5 写出计算Ackermann函数Ack(m,n)的递归函数。对于m≥0,n≥0,Ack(m,n)定义为:
Ack(0,n)=n+1 Ack(m,0)=Ack(m-1,1)Ack(m,n)=Ack((m-1),Ack(m,n-1))对m>0,n>0要求显示计算过程。long int ack(int m,int k);int main(){ int m,k;printf(“请输入m,n的值:”);scanf(“%d %d”,&m,&k);printf(“%dn”,ack(m,k));return 0;}
long int ack(int m,int k){ if(m
printf(“ack(%d,%d)=%dn”,m,k,k+1);
return k+1;} else
if(!k){
printf(“ack(%d,%d)=ack(”%d,1)n“,m,k,m-1);
return ack(m-1,1);
}
else{
printf(”ack(%d,%d)=ack(%d,ack(%d,%d))n“,m,k,m-1,m,k-1);
return ack((m-1),ack(m,k-1));
} } 4.6 写出计算Hermite多项式Hn(x)值的递归函数。Hn(x)定义如下:
H0(x)=1
H1(x)=2x
Hn(x)=2xHn-1(x)-2(n-1)Hn-2(x)
(对x>1)#include #include double Hermite(double x,int k);int main(){ int k;/* k阶Hermite多项式 */ double x;/* Hermite函数的自变量取值 */ printf(”请输入Hermite函数的阶数n和自变量x:“);scanf(”%d %lf“,&k,&x);printf(”%lfn“,Hermite(x,k));return 0;} double Hermite(double x,int k){ if(k
if(k
else{
if(x
else
return 2*x*Hermite(x,k-1)-2*(k-1)*Hermite(x,k-2);
} } } 4.7 写一个求n个数的最大公约数和最小公倍数的递归函数。int TwoCommonDivisor(int m,int n)/*两个数的最大公约数*/ { int u,v,r;if(m==0 || n==0)return 0;u=m;v=n;while(r=u%v){
u=v;
v=r;} return v;} int TwoCommonMultiple(int m,int n)/*两个数的最小公倍数*/ { int u;u=TwoCommonDivisor(m,n);if(!u)return 0;return u*(m/u)*(n/u);} int MaxCommonDivision(int a[],int k)/*最大公约数*/ { if(k
return TwoCommonDivisor(MaxCommonDivision(a,k-1),a[k-1]);} } int MinCommonMultiple(int a[],int k)/*最小公倍数*/ { if(k
return TwoCommonMultiple(MinCommonMultiple(a,k-1),a[k-1]);} } 4.8 写一个将整数转换成字符串的函数。
/* 由于一个2字节整数的取值范围为-32768~32767,所以待转换的数最大不超过5位数*/ int IntegerToString(int k,char s[]);int main(){ int i=109;char s[10];if(IntegerToString(i,s))printf(”%sn“,s);else printf(”Errorn“);return 0;} int IntegerToString(int k,char s[]){ int k1,j,i=0;char str[20];if(k32767)return 0;if(k
str[i++]=k1%10+'0';}while((k1/=10)>0);if(k
for(j=0;j
printf(”n“);} for(i=0;i
for(j=0;j
printf(”n“);} return 0;} int ran(){ static int see=1234,n;printf(”(see=%4d)“,see);n=(see%1000)/10;return n;} int rand(){ int see=1234,n;printf(”(see=%5d)“,see);see=(see+25543)%7415;n=(see%1000)/10;return n;}
(see=1234)23(see=1234)23(see=1234)23(see=1234)23(see=1234)23(see=1234)23(see= 1234)53(see= 1234)53(see= 1234)53(see= 1234)53 4.12 指出下列程序中各变量的存储属性,并写出程序的执行结果。#include int Reset();int Next(int j);int Last(int j);int New(int i);int i=1;int main(){ int i,j;i=Reset();for(j=1;j
printf(”i=%d;j=%d;n“,i,j);
printf(”Next(i)=%dn“,Next(i));
printf(”Last(i)=%dn“,Last(i));
printf(”New(i+j)=%dn",New(i+j));} return 0;} int Reset(){
《C语言程序设计教程(第二版)》习题答案 说明1.本习题答案是我自己做的,错误和疏漏在所难免。编程题全部调试通过,但选择题和填空题不敢保证全对。2.凡未指明解题所用的程序设......
2 第1章 程序设计基础知识一、单项选择题(第23页) 1-4.CBBC 5-8.DACA 二、填空题(第24页) 1.判断条件 2.面向过程编程 3.结构化 4.程序 5.面向对象的程序设计语言 7.有穷性......
C语言设计 学习笔记早晨: 06:40起床 07:20——08:20 上午: 08:30——10:30 10:50——11:30 中午: 12:00——02:00 下午: 02:30——04:30 晚上: 05:30——08:00 08:00——09:00......
第一章 程序设计和C语言 【第15页】 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("*******......
《C语言程序设计教程》课后题答案第一章一选择题1.A 2.B 3.C 4.D 5.B 6.C 二.填空题 1.程序 2.算法3.main或主 4.编译 5.编译 6..obj 7.库函数8.文本或ASCII码三、编程......