《c语言程序设计》(钱卫国 张玉生) 书后习题答案
- 格式:docx
- 大小:13.12 KB
- 文档页数:2


C语言程序设计教程课后习题答案第一章C语言程序设计概述-习题答案1算法的描述有哪些基本方法?答1、自然语言2、专用工具2C语言程序的基本结构是怎样的?举一个例子说明。
答1、C语言程序由函数构成;2、“/*”与“*/”之间的内容构成C语言程序的注释部分;3、用预处理命令#include、#define可以包含有关文件或预定义信息;4、大小写字母在C语言中是有区别的;5、除main()函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。
3C语言有什么特点?答1、具有结构语言的特点,程序之间很容易实现段的共享;2、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化;3、运算符丰富,包含的范围很广;4、数据类型丰富;5、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能;6、限制不太严格,程序设计自由度大,这样使C语言能够减少对程序员的束缚;7、生成的目标代码质量,程序执行效率高,同时C语言编写的程序的可移植性好。
4★指出合法与不合法的标识符命名。
答AB12--√ leed_3-- a*b2--× 8stu--× D.K.Jon--× EF3_3--√ PAS--√ if--×XYZ43K2--√ AVE#XY--× _762--√ #_DT5--× C.D--×5说明下列Turbo C热键的功能。
答F2:源文件存盘 F10:调用主菜单 F4:程序运行到光标所在行(用于调试程序)Ctrl+F9:编译并链接成可执行文件 Alt+F5:将窗口切换到 DOS 下,查看程序运行结果。
6说明下列Turbo C方式下输入并运行下列程序,记录下运行结果。
①main(){printf("********************\n");printf(" welcome you \n");printf(" very good \n);printf("********************\n");}②main(){ int a,b,c,t;printf("please input three numbers;");scanf("%d,%d,%d",&a,&b,&c); /*教材S是错误的*/t=max(max(a,b),c);printf("max number is:%d\n",t);}int max(int x, int y){ int z;if(x>y)z=x;else z=y;return(z);}答运行结果:********************welcome youvery good********************运行结果:please input three numbers;3,1,4 /*左侧下划线内容为键盘输入*/max number is:47一个C程序是由若干个函数构成的,其中有且只能有一个___函数。
第1章1-3 CAB4 .c .obj .exe5 /* */6 ;7 算法8 ①中级语言:C语言具有高级语言的先进思想又能直接对存储器进行操作,能进行位运算,能实现汇编语言的大部分功能,生成目标代码质量高,程序执行效率高。
②结构化语言:C语言用函数作为程序模块,以实现程序的模块化,语言简洁、紧凑,具有结构化的特点。
③可移植性好:C语言不包含依赖硬件的输入输出机制,使C语言本身不依赖于硬件系统,可移植性好。
9 #include<>main( ) { ; }10 #include “”main(){printf(“This is my first C Program!”);}第2章1.yes2.-33.2,14.1)a!=b||a<=c 2)x>=4||x<=-45.x>20&&x<30||x<-1006.#include <>main(){int x;printf(“please input an integar:”);scanf("%d",&x);if(x%5==0&&x%7==0) printf("yes\n");else printf("no\n");}7.#include <>main(){int year,month;printf("please input the year and month:");scanf("%d%d",&year,&month);switch(month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf("this month have 31 days.");break;case 4:case 6:case 9:case 11:printf("this month have 30 days.");break;case 2:if(year%4==0&&year%100!=0||year%400==0){printf("this month have 29 days.");break;}else{printf("this month have 28 days.");break;}}}8.#include <>main(){float money;int year;printf("\nplease input the money and the year:");scanf("%f%d",&money,&year);if(year==1) money+=money**12*year;if(year==2) money+=money**12*year;if(year==3||year==4) money+=money**12*year;if(year>=5&&year<=7) money+=money**12*year;if(year>=8) money+=money**12*year;printf("the money is:%f",money);}第3章1#include ""main(){ float x[10],sum=0;int i=0;printf("please input 10 numbers(-10e6<x<10e6)\n");while(i<10){ scanf("%f",&x[i]);sum=sum+1/x[i];i=i+1;}printf("the sum of 10 numbers is %.2f\n",sum);}2#include ""main(){ int x[100],sum=0,aver,i=0;printf("please input numbers until 0\n");scanf("%d",&x[i]);while(x[i]!=0){ sum=sum+x[i];i=i+1;scanf("%d",&x[i]);}printf("the sum is %d\n",sum);printf("the average is %.2f\n",float(sum)/i);}3#include ""#include ""main(){ int i=1,j,f;long int s=0;while(i<=10){ for(f=1,j=1;j<=i;j++)f=f*j;s=s+pow(-1,i-1)*f;i=i+1;}printf("s= %ld\n",s);}4#include ""#include ""main(){ int i=0;float s=;while(2*i+1<=101){ s=s+pow(-1,i)/float(2*i+1);i=i+1;}printf("s= %f\n",s);}5#include ""#include""main(){ int i,j,k,n=0;for(i=1;i<=9;i++)for(j=0;j<=9;j++)for(k=0;k<=9;k++)if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)printf("the %d:%d\n",++n,i*100+j*10+k); printf("the all is %d.\n",n--);}6#include ""main(){ int n,i,j;printf("please input n:");scanf("%d",&n);for(i=0;i<n;i++){ for(j=0;j<n;j++)printf("*");printf("\n");}}7#include ""main(){ char a[81];int i,j=0,k=0,m=0;printf("please input a $(length<=80)\n");for(i=0;(a[i]=getchar())!='\n';i++){ if(a[i]>=65&&a[i]<=90)j++;else if(a[i]==32)k++;else m++;}printf("the upper letter is %d\n",j);printf("the blank is %d\n",k);printf("the other is %d\n",m);}8#include ""main(){ int i,j,k,m=0;for(i=0;i<=20;i++){ for(j=0;j<=50;j++)for(k=0;k<=100;k++)if(i*5+j*2+k==100)printf("the %d wag is 1:%d,2:%d,5:%d\n",++m,k,j,i);}printf("the wags is %d\n",m--);}9#include ""main(){ int i,j,k,m=0;for(i=0;i<=3;i++){ for(j=0;j<=3;j++)for(k=0;k<=6;k++)if(i+j+k==8)printf("the %d wag is white:%d,red:%d,black:%d\n",++m,i,j,k); }printf("the wags is %d\n",m--);}10#include ""main(){ long int n;int i,j,k;printf("please inpur n:");scanf("%ld",&n);if(n%2==1||n<=1){ printf("the input is error.\n");return(1);}for(i=2;i<=n/2;i++){ for(j=2;j<i;j++)if(i/j*j==i)break;if(j==i){for(k=2;k<n-i;k++)if((n-i)/k*k==(n-i))break;if(k==n-i)printf("%ld=%d+%d\n",n,i,n-i);}}}11#include ""main(){int i,j,k,m;for(i=1;i<=9;i++)for(j=0;j<=9;j++)for(k=0;k<=9;k++)for(m=0;m<=9;m++)if((i*1000+j*100+k*10+m)*9==(i+j*10+k*100+m*1000)) printf("the number is:%d\n",i*1000+j*100+k*10+m);}第4章1-5 ABDCB 6-10 BCBCA 11-13 ABA14#include ""main(){float a1,b1,a2,b2,re1,im1,re2,im2,re3,im3;printf("Please input the first number:");scanf("%f %f",&a1,&b1);printf("Please input the second number:");scanf("%f %f",&a2,&b2);re1=a1+a2;im1=b1+b2;printf("(%f+j%f)+(%f+j%f)=%f+j%f\n",a1,b1,a2,b2,re1,im1);re2=a1-a2;im2=b1-b2;printf("(%f+j%f)-(%f+j%f)=%f+j%f\n",a1,b1,a2,b2,re2,im2);re3=a1*a2-b1*b2;im3=a1*b2+a2*b1;printf("(%f+j%f)*(%f+j%f)=%f+j%f\n",a1,b1,a2,b2,re3,im3);}第5章1-5 CACCD 6-7 DA8#include ""main(){char str[100];int num1=0,num2=0,i=0;scanf("%s",str);while(str[i]!='\0'){if(str[i]>='A'&&str[i]<='Z'||str[i]>='a'&&str[i]<='z')num1++;else if(str[i]>='0'&&str[i]<='9')num2++;i++;}printf("num1=%d,num2=%d",num1,num2);}9笔者在程序中直接给数组元素赋了值,读者可以修改为用scanf函数读入数值;另外,还可以用第7章宏定义的方法设定数组的长度,从而实现对元素个数不同的数组进行排序。