《c语言程序设计》(钱卫国 张玉生) 书后习题答案

合集下载

c语言程序设计教材全部答案

c语言程序设计教材全部答案
本文由wbb308060955贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机 查看。 C 教材习题答案 教材习题 习题答案 习题 1 一.填空题 1.C 程序是由(函数 )构成的,一个 C 程序中至少包含 (main 函数 ( 函数 ) 是 C 程序的基本单位。 2.C 程序注释是由(/* ) 和( */ ) 所界定的文字信息组成的。 3.函数体一般包括(声明部分) 和(执行部分 ) 。 ) 。因此, 二.判断题 1.一个 C 程序的执行总是从该程序的 main 函数开始,在 main 函数最后结束。 (正确) 2.main 函数必须写在一个 C 程序的最前面。 (错误) 3.一个 C 程序可以包含若干的函数。 (正确) 4.C 程序的注释部分可以出现在 程序的任何位置,它对程序的编译和运行不起任何作用。 但是可以增加程序的可读性 。 (正确) 5.C 程序的注释只能是一行。 (错误) 6.C 程序的注释不能是中文 文字信息。 (错误) 8.可以使用 Turbo C 来编译和连接一个 C 程序。 (正确) 9.可以使用 Turbo C 来运行一个 C 程序。 (正确) 10.可以使用 Turbo C 来实 时调试(即动态调试)一个 C 程序。 (正确) 三、在 c++ 6.0 中输入如下的程序 ,编译、连接通过后显示结果 (1) #include “stdio.h” void main() { printf(“ * ”) printf(“ *** ”); printf(“ ***** ”); printf(“******* ”); } 答案 : * *** ***** ******* (2)已知底和高,计算三角形的面积。 #include “stdio. h” void main() { int bottom,high,area; /*bottom 表示底,high 表示高,area 表示面积*/ bottom=4; high=6; area=bottom*high/2; printf(“the area is %d\n”,area); } 答案: the area is 12 四、算法设计:请试着分别用自然语言或、程序流程图和 NS 图描述如下算法。 1. 设计一个程序在屏幕上显示如下的文字 HELLO WELCOME Y OU 2. 打印出所有的“水仙花数” ,所谓“水仙花数”是指一个三位数,其个位数字 立方 和等于该数本身。例如:153 是一个“水仙花数” ,因为 153=1 的三次方+5 的三 次方+3 的三次方。 3. 对输入的某学生成绩, 如果学习成绩>=90 分的同学 用 A 表示, 60-89 分之间的用 B 表示,60 分以下的用 C 表示。 4. 一个数如果恰 好等于它的因子之和,这个数就称为“完数” 。例如 6=1+2+3.编程 找出 1000 以 内的所有完数。 5. 一只猴子摘了 N 个桃子第一天吃了一半又多吃了一个,第二天又 吃了余下的一半又 多吃了一个,到第十天的时候发现还有一个,问共有多少个桃子。

C语言程序设计教程课后习题答案

C语言程序设计教程课后习题答案

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程序是由若干个函数构成的,其中有且只能有一个___函数。

C语言程序设计教程课后习题答案

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章宏定义的方法设定数组的长度,从而实现对元素个数不同的数组进行排序。

《C语言程序设计》课后习题参考答案

《C语言程序设计》课后习题参考答案
高等院校计算机基础教育规划教材《
――武汉大学出版社
习题
一、选择题
1.A 2. D
二、填空题
1.BASIC、FORTRAN、AL_GOL60和COBOL
2. 8
3.关键字
4.编辑、编译、链接和运行
三、简答题
1.答:
(1)C语言具有结构化的控制语句。C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。
printf("%d",j);
for(j=i-1;j>0;j--)
printf("%d",j);
printf("\n");
}
}
3.用1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,问共有几种兑换方案?每种方案各换多少枚?
[提示:设5分、2分和1分的硬币各换x,y,z枚,依题意有x+y+z=100,5x+2y+z=150,由于每一种硬币都要有,故5分硬币最多可换28枚,2分硬币最多可换73枚,1分硬币可换100-x-y枚,x,y,z只需满足第2个方程即可打印,对每一组满足条件的x,y,z值,用计数器计数即可得到兑换方案的数目。]
switch(m)
{case0:case1:case 2:case3:case 4:case 5:grade='E';break;
case6:grade='D';break;
case 7:grade='C';break;
case8:grade='B';break;
case 9:grade='A';
}
1. A 2.A3.C
二、填空题

(完整版)C语言程序设计课后习题答案

(完整版)C语言程序设计课后习题答案
(1)变量c1、c2应定义为字符型或整形?或二者皆可?
(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?
(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:charc1,c2;与intc1,c2;是否无条件地等价?
解 :#include<stdio.h> void main()
printf(“Verygood!\n”);printf(“\n”);
printf(“**************************”);
}
2.编写一个C程序,输入a、b、c三个值,输出其中最大值。解:
#include<stdio.h> void main()
{
int a,b,c,max;
printf(“请输入三个数a,b,c:\n”);
解 :#include<stdio.h> #include<math.h> void main()
{
double P, r=0.1, n=10;
P=pow((1+r), n);
printf(“%lf\n”, P);
}
3.请编程序将“China”译成密码,译码规律是用原来字母后面的第4个字母代替原来的字母。
printf(“c1=%d c2=%d\n”,c1,c2); printf(“c1=%c c2=%c\n”,c1,c2);
}
第四章
3.写出下面各逻辑表达式的值。设a=3,b=4,c=5。
(1)a+b>c&&b==c
(2)a||b+c&&b-c (3)!(a>b)&&!c||1

C语言程序设计课后习题1-8参考答案

C语言程序设计课后习题1-8参考答案

C语言程序设计课后习题1-8参考答案C语言程序设计课后习题1-8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。

运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。

数据运算包括算术运算和逻辑运算。

控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的。

存储器是计算机中具有记忆能力的部件,用来存放程序和数据。

输入设备是用来输入程序和数据的部件。

输出设备正好与输入设备相反,是用来输出结果的部件。

2、简述计算机的工作原理。

答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。

整个过程由控制器进行控制。

3、计算机软件系统分为哪几类答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。

系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。

这类软件一般与具体应用无关,是在系统一级上提供的服务。

系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。

另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。

应用程序是指某特定领域中的某种具体应用,供最终用户使用的软件,它必须在操作系统的基础上运行。

4、什么叫软件说明软件与硬件之间的相互关系。

答:软件是指计算机程序及有关程序的技术文档资料。

两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。

在不太严格的情况下,认为程序就是软件。

硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作。

在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。

《c语言程序设计教程》课后习题答案

《c语言程序设计教程》课后习题答案
(1) 51 (2) 15 (3) 28 (4) 1 (5) 2 2. 计算下列表达式的值,按%x 格式输出。 已知:unsigned int a=0x2b,b=011; (1) 9 (2) 2b (3) 22 (4) a (5) ffffffca 3. 计算下列各表达式的值,并按%d 格式输出,假设各个表达式是相互独立,前后边无影 响。 已知:int a=8,b=5; (1) 该题有问题,将表达式更改为(a---b)+(--b) 其值为:16 (2) 26 (3) 2 (4) -1 (5) 25 4.计算下列各表达式的值,并按%d 的格式分别输出表达式的值和 a,b 的值 已知:int a=8,b=5; (1) 表达式的值为 :0 a=8 b=5 (2) 表达式的值为:1 a=8 b=5 (3) 表达式的值为:13 a=9 b=4 (4) 表达式的值为:7 a=2 b=8
第一章习题答案 1 判断题
1.× 2.× 3.√ 4.√ 5.√ 6.√ 7.× 8.√ 9.× 10.√ 11.× 12.× 13.√ 14.√ 15.√ 2 单选题 1.A 2.D 3.C 4.B 5.A 3 分析下列程序的输出结果 1. 输出结果为:
I love the Beijing! We are students. 2. 输出结果为: a=5 3. 输出结果为: Enter a string: string↙ string 4. 输出结果为: Enter a and d: 13 25.123↙
(int)x*y 和(int)(x*y) 答:前者不可以,后者可以。 4.已知:int a;,表达式 a=3+19-a=8*2 的值为 6,对吗? 答:不对,该表达式非法,将表达式改为 a=3+19-(a=8*2)才对 5.已知:char ch=’M’;,表达式(ch>=’A’&&ch<=’z’)?(ch+32):ch 的值是什么?(note: 该 表 达 式 有 错 , 请 将 (ch>=’A’&&ch<=’z’=?(ch+32):ch 改 为 (ch>=’A’&&ch<=’z’)?(ch+32):ch ) 答:’m’或 109

(完整版)C语言程序设计课后习题答案

(完整版)C语言程序设计课后习题答案

C语言程序设计(第2版)课后习题答案第一章1.请参照本章例题,编写一个C程序,输出以下信息:**************************Very good!**************************解:#include<stdio.h>void main(){printf(“**************************”);printf(“\n”);printf(“Very good!\n”);printf(“\n”);printf(“**************************”);}2.编写一个C程序,输入a、b、c三个值,输出其中最大值。

解:#include<stdio.h>void 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);}第二章1.假如我国国民生产总值的年增长率为10%,计算10年后我国国民生产总值与现在相比增长多少百分比。

计算公式为P=(1+r)^n,r为年增长率;n为年数;P为与现在相比的百分比。

解:#include<stdio.h>#include<math.h>void main(){double P, r=0.1, n=10;P=pow((1+r), n);printf(“%lf\n”, P);}3.请编程序将“China”译成密码,译码规律是用原来字母后面的第4个字母代替原来的字母。

例如,字母“A”后面第4个字母是“E”,“E”代替“A”。

因此,“China”应译为“Glmre”。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

《C语言程序设计教程》习题参考答案

《C语言程序设计教程》习题参考答案

本文由huangwen199002贡献 doc文档可能在WAP端浏览体验不佳。

建议您优先选择TXT,或下载源文件到本机查看。

语言程序设计教程》 《C 语言程序设计教程》习题参考答案 默认分类 2007-09-10 12:38:44 阅读 6618 评论 13 【习题 1】 一、简答题(在课本中寻找答案,略) 1.1 C 程序的基本结构包括哪些内容? 1.2 如何定义标识符? 1.3 输入格式、输出格式的组成包括哪些内容? 1.4 C 语言函数分为哪两类? 1.5 计算表达式的值应该考虑哪些方面? 1.6 上机调试程序的步骤如何? 二、判断并改错 1.7 C 程序执行的入口是 main()函数,所以 main 函数必须放在程序的开头。

 错误:main 函数可以放在程序的任何位置。

并不限定在程序的开头。

 1.8 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。

 错误:不可以交叉出现,数据说明部分在执行语句部分的前面。

 1.9 编辑与编译不是一回事。

 错误:不是一回事。

编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则 生成目标程序。

 1.10 scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。

 正确 1.11 注释内容太多会影响程序的执行效率。

 错误:不会影响程序的执行效率。

因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容 不会编译到目标程序中。

 1.12 所有的数学公式可以直接出现在源程序中。

 错误:数学公式需要转换成 C 语言能够接受的公式才能出现在源程序中。

 三、编程题 1.13 在屏幕上输出自己名字的拼音。

 提示:中文名字叫“张三”,对应的拼音为“Zhang San”,输出用 printf()函数。

 1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。

 提示:定义圆的半径 r,圆的周长:2*3.14*r,输出结果保留 2 位小数可以用%.2f 1.15 输入两个整数,输出其中最大者。

《c语言程序设计》(钱卫国 张玉生) 书后习题答案

《c语言程序设计》(钱卫国 张玉生) 书后习题答案
structurelinknext6xlinkzacddaadc习题十21649yellow3ccbccabd习题十一包含文件宏定义条件编译是否小写1362dcbaddcdacarea31400002theresultis365若是数字字符则转换成数值否则为第4题空667题空
习题一
高级、流程控制、程序设计语言、输入函数、32、main()、编译、
A B A D B B B C B D C A A C C A C C C D
习题七
0连续数组名越界inta【】={9,4…}0 9 a【8】1 a【2】12
DDCCB BAABB
1空4 6 8 10 str【】=abdef
习题八
取变量的地址0 int内存地址指针表达式
BCCDA DDBCC
5 4952 2 3 3
C C D B D
习题二
# %d %f 2 a=2(%d)%1d pow(x,y)3.0 2.0
C C B A D C A C C
习题三
1或0 char‘’‘E’2!23
D B B B A C D C D D
3 1 3
习题四
Continue do continue for
A C D D A
2 0 1
DCBAD DCDAC
Area=3.140000 2 The result is =365第4题空6 6.7题空
习题五
Return auto sБайду номын сангаасatic extern
C D B D C A D C C B
16 1.00
习题六
Unsigned 32767 double 8 %1d(第5题第二空空)double float x=6c 2 a=3 1(12题没办法输,符号不全)(x>=1&&x<sqrt(10))sqrt(fabs(x))!=4*a/b/c 4

C语言程序设计课后习题答案

C语言程序设计课后习题答案

C语言程序设计(第2版)课后习题答案第一章1.请参照本章例题,编写一个C程序,输出以下信息:**************************V ery good!**************************解:#include<stdio.h>void main(){printf(“**************************”);printf(“\n”);printf(“V ery good!\n”);printf(“\n”);printf(“**************************”);}2.编写一个C程序,输入a、b、c三个值,输出其中最大值。

解:#include<stdio.h>void 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);}第二章1.假如我国国民生产总值的年增长率为10%,计算10年后我国国民生产总值与现在相比增长多少百分比。

计算公式为P=(1+r)^n,r为年增长率;n为年数;P为与现在相比的百分比。

解:#include<stdio.h>#include<math.h>void main(){double P, r=0.1, n=10;P=pow((1+r), n);printf(“%lf\n”, P);}3.请编程序将“China”译成密码,译码规律是用原来字母后面的第4个字母代替原来的字母。

例如,字母“A”后面第4个字母是“E”,“E”代替“A”。

因此,“China”应译为“Glmre”。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为‟C‟、‟h‟、‟i‟、‟n‟、‟a‟,经过运算,使c1、c2、c3、c4、c5分别变为‟G‟、‟l‟、‟m‟、‟r‟、‟e‟,并输出。

(word完整版)C语言程序设计课后习题1-8参考答案

(word完整版)C语言程序设计课后习题1-8参考答案

C语言程序设计课后习题1—8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。

运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。

数据运算包括算术运算和逻辑运算。

控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的.存储器是计算机中具有记忆能力的部件,用来存放程序和数据.输入设备是用来输入程序和数据的部件。

输出设备正好与输入设备相反,是用来输出结果的部件。

2、简述计算机的工作原理。

答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。

整个过程由控制器进行控制。

3、计算机软件系统分为哪几类?答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。

系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。

这类软件一般与具体应用无关,是在系统一级上提供的服务。

系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。

另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。

在操作系统的基础上运行。

4、什么叫软件?说明软件与硬件之间的相互关系。

答:软件是指计算机程序及有关程序的技术文档资料。

两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。

在不太严格的情况下,认为程序就是软件。

硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作.在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。

C语言程序设计课后答案

C语言程序设计课后答案

第一章1.以下不合法的用户标识符是A.j2_KEYB.DoubleC.4dD._8_2.以下叙述中错误的是A.C语言源程序经编译后生成后缀为.obj的目标程序B.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令3.下列符号中,正确的C++标识符是______。

A)、enumB)、2bC)、foo-9D)_324.下列叙述中错误的是A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行5.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是A)大写字母B)连接符C)数字字符D)下划线6.以下叙述中错误的是A)C语言是一种结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计提倡模块化的设计方法7.对于一个正常运行的C程序,以下叙述中正确的是A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束8.c语言源程序名的后缀是a).exe b).c c).obj d).cp9.可在c程序中用做用户标识符的一组标识符是a)and b)date c)hi d)case _2007 y-m-d dr.tom bigl 10.以下叙述中正确的是a)c语言程序将从源程序中第一个函数开始执行b)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行c)c语言规定必须用main作为主函数名,程序将从此开始执行,在此结束d)main可作为用户标识符,用以命名任意一个函数作为主函数11.以下叙述中正确的是( )A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中12.以下选项中不合法的标识符是( )A)print B)FOR C)&a D)_0013.以下叙述中正确的是A)C程序的基本组成单位是语句B)C程序中每一行只能写一条语句C)简单C语句必须以分号结束D)C语句必须在一行内写完14.计算机能直接执行的程序是A)源程序B)目标程序C)汇编程序D)可执行程序2009年3月15.一下选项中合法的标识符是A)1_1B)1-1C)_11D)1_ _2009年9月16.以下选项中,能用作用户标识符的是A)voidB)8_8C)_0_D)unsigned2010年3月17. 以下叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可以作为单独文件形式存在18.以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以再使用之前的任何位置进行定义C)在C语言算术的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示19. 以下C语言用户标示符中,不合法的是A)_1 B)AaBc C)a_b D)a--b2010年9月20.以下关于结构化程序设计的叙述中正确的是A)一个结构化程序必须同时由顺序、分支、循环三种结构组成B)结构化程序使用goto语句会很便捷C)在C语言中,程序的模块化是利用函数实现的D)由三种基本结构构成的程序只能解决小规模的问题21.以下关于简单程序设计的步骤和顺序的说法中正确的是A)确定算法后,整理并写出文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构22.以下叙述中错误的是A)C程序在运行过程中所有计算都以二进制方式进行B)C程序在运行过程中所有计算都以十进制方式进行C)所有C程序都需要编译链接无误后才能运行D)C程序中整型变量只能存放整数,实型变量只能存放浮点数第三章1.下面说法错误的是:( C )A. do…while{}语句至少执行一次循环B. break语句可以跳出switch语句和循环语句C. 每个if一定有一个else和它对应D. 每个else一定有一个if和它对应2.以下程序输出结果为:#include “stdio.h”main(){Char c=’c’;printf (“%c”,c+2); }输出结果是:(B)A.有语法错误,不能通过编译B. eC. 99D.c3.判断字符串a和b相等的正确表达式是:( C )A.if(a=b)B.if(strcpy(a,b))C.if(strcmp(a,b)= =0)D. if(a= =b)4.与y=a>b?a:b语句等价的程序段的是:( A )A.if (a>b) y=a; else y=b;B. if (a>b) y=b; else y=a;C. if (a>b) y=a; y=b;D. if (a>b) y=b; y=a;5.运行以下程序段时编译出错,其原因是:( D )char c1=’a’,c2=’123’;printf(“%c,%d\n”,c1,c2);A.字符串要用“123”表示B. ’123’只能赋值给字符数组C. C2是字符变量,不能用%d格式输出D. ’123’不是正确的字符常量,不能赋值给字符变量C26.下列程序执行后输出结果是:(A)main(){int m=3;printf(“f(%d)=%d”,m,(m>=0?1:0))}A. f(3)=1B. f(3)=0C. f(3)=3D. f(1)=37. 下列程序执行后输出结果是:(A)main(){int x=1,y=2,a=0,b=0;switch(x){case 1:switch(y){case 0:a++;case 1: b++;}break;case 2:a++;b++;break;}printf(“a=%d,b=%d\n”,a,b);}A. a=0,b=0B. a=1,b=0C. a=0,b= 1D. a=1,b=18.以下程序执行后输出的结果是:(C)main(){int a,b,x=45;a=b=0;if(!a) x--;if(b) x=30;else x=40;printf(“x=%d\n”,x);}A. x=0B. x=30C. x=40D. x=449.判断char型变量ch是否为大写字母的正确表达式是(C)。

《C语言程序设计》课后习题答案(第四版)

《C语言程序设计》课后习题答案(第四版)

第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务141-5 #include <stdio.h>int main ( ){ printf ("**************************\n\n");printf(" Very Good!\n\n");printf ("**************************\n");return 0;}1-6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max); return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用N S流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3C语句573.3.1C语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5); // 存活期存款。

C语言程序设计习题解答

C语言程序设计习题解答

《C语言程序设计》习题解答沈国荣隋雪莉闵芳目录第1章C语言程序设计概述 1第2章数据类型及其运算 2第3章语句与输入输出3第4章选择结构程序设计 4第5章循环结构程序设计7第6章数组9第7章函数12第8章编译预处理14第9章指针15第10章结构体与共用体18第11章位运算21 第12章文件操作22第1章C语言程序设计概述ACBBDCBAC、填空题1.函数、main()函数2./* 、*/3..C、.OBJ、.EXE4•顺序结构、选择结构、循环结构三、编程题1.【参考代码】#i nclude<stdio.h>int main(){抽湩晴?(学校名称)\n );27/ 1抽湩晴?(姓名)\n );return 0 ;}2.【参考代码】#i nclude<stdio.h>int main(){抽湩晴?(学校名称)\n (姓名)\n );return 0 ;}第2章数据类型及其运算、选择题B B A CDC 、C CD A B 20 19 12 16 13 15 18 14 11 17 ADCDCDC 注:第5 题B 选项为:’\'' '\017' '\t'二、填空题1.字母、数字、下划线2.1、4、4、83.-164. 3.55.06.97. 68.-609.y%2==110.1、0、1三、程序阅读题1. b2.03.04.10,25.9,10,9,106.3,1,0,07.3,20,30,127/ 2第3章语句与输入输出ACBBDCBCC二、填空题1.123.472. D3.回车4.10,2三、程序阅读题1.2612.203.201,104.y=4630 y=46305.*3.140000,3.142*6.c:dec=120,oct=170,hex=78,ASCII=x7.x=1 y=2 *sum*=310 squared is : 1008. 2 48 20.2 20.29.x+y+z=4810.55, ,A四、编程题1.【参考代码】#include<stdio.h> int main( ) { char ch;牰湩晴尨请输入一个字符:\n); scanf(%c,&ch);printf(%c 的ASCII 码为:%d\n, ch,ch); return 0 ;}2.【参考代码】#include<stdio.h>#define PI 3.1416int main( ){ double r, h; double cl,cs,cv;牰湩晴尨请输入圆的半径:); 27/ 3 scanf(%lf, &r); 牰湩晴尨请输入圆柱高:); scanf(%lf, &h);cl=2*PI*r; cs=PI*r*r;cv=PI*r*r*h;牰湩晴尨圆的周长为:%.4lf\n, cl); 牰湩晴尨圆的面积为:%.4lf\n, cs); 牰湩晴尨圆柱的体积为:%.4lf\n, cv); return 0 ;}3.【参考代码】#i nclude<stdio.h>int main(){int splitl nt, on e,te n,hu ndred;抽湩晴尨输入要处理的整数:);sca nf(%d, &splitl nt);hundred = splitI nt/100;ten = split In t_xOO1O_O/1O;one = split In t_x0010_;抽湩晴尨个位:%d,十位:%d,百位:%d\n,one,ten,hundred); return 0 ;}第4章选择结构程序设计BBCC二、程序阅读题10 1.2,2,2 2.6 3.97,b 4.c=-1 5.8888 6.20,0 7.2,1 8.1.19.2.22,127/ 4-2,210. a=1,b=3三、程序完善题1.a>b、c>x四、编程题1.【参考代码】#include<stdio.h> int main( ) {int a, b, c,d,min; 牰湩晴尨输入4 个整数:); scanf(%d%d%d%d,&a,&b,&c,&d); if(a < b) min = a; else min = b; if(c < min) min=c; if(d<min) min=d; printf(%d\n,min);return 0 ;}2.【参考代码】#include<stdio.h> int main( ){int num,a,b,c,d; 牰湩晴尨请输入一个四位整数:); scanf(%d,&num);a=num/1000; b=num_x0010_00/100; c=num_x0010_0/10;d=num_x0010_; 牰湩晴尨各位数字之和为:%d\n,a+b+c+d); return 0 ;}3.【参考代码】#include<stdio.h> int main( ){int x; 牰湩晴尨请输入x:); scanf(%d,&x); printf(y 的值为:); if(x<0) printf(%d\n,x);else if(x<50)27 / 5else if(x<100)printf(%d\n,4*x+1);elseprintf(%d\n,5*x);return 0 ;}4.【参考代码】#include<stdio.h>int main( ){int dj;float zl,je,yfk;牰湩晴尨请输入等级( 1~4): ); scanf(%d,&dj);if (dj>4||dj<1){牰湩晴尨无此等级的苹果!\n); return 0;}牰湩晴尨请输入重量(公斤) : ); scanf(%f,&zl););switch (dj){case 1 : je=5.5*zl; break;case 2 : je=4.3*zl; break;case 3 : je=3.0*zl; break;case 4 : je=2.5*zl; break;}牰湩晴尨您选择苹果级别: %d 级\n,dj); 牰湩晴尨您购买苹果重量: %.2f 公斤\n,zl); 牰湩晴尨您应付金额为: %.2f 元\n,je););牰湩晴尨顾客所付金额: ); scanf(%f,&yfk);if (yfk<je){printf(Data Error!\n);return 0;}牰湩晴尨应找您: %.2f 元\n,yfk -je);return 0 ;}27/ 6第5章循环结构程序设计一、选择题.1 2 3 4 5 6 7 8(1) 8(2) 9 10 11BBCBCCBBBDBA二、程序阅读题1.1,2,02. m=4, n=23.A2C4E64.1325. 46.k=0,m=57.x=88. 1.69.998988三、程序完善题1.( ch > 'Z' && ch <= 'Z' + 4 ) ||(ch > 'z' )ch-262.k k/10 continue3.i + t * 10s = s + t4.fabs( t ) >= 1e -6 f = -f5.i<10 j%3 !=0printf( Output : \n );四、编程题1.【参考代码】#i nclude<stdio.h> int main(){intn , i , j , k ; printf( Output : \n );for(n = 100 ; n<1000 ; n++ ){i= n % 10 ;/* 个位*/j = ( n / 10 ) % 10 ;/* 十位*/k = n / 100 ;/* 百位*/if ( n == i * i * i + j * j * j + k * k * k )printf( %d\n , n ) ;}return 0 ;}2.【参考代码】#include<stdio.h> int main ( )27 / 7 {int i , m , n , t , p , k ; printf( Please input: ) ; scanf ( %d,%d , &m , &n ) ; if( m < n ){ t = n ; n = m ; m = t ;}p = m * n ;while ( n != 0 )/* 余数不为0 ,继续相除,直到余数为0 */{i = m % n ; m = n ; n = i ;} k = p / m ;printf( %d,%d\n , m , k );return 0 ;}3.【参考代码】#include<stdio.h> int main( ) {int i , n , t , sum ;t = 1 ;sum = 0 ;printf( Please input: n = ) ;sea nf( %d , &n );for( i = 1 ; i <= n ; i++ ){t = t * i ;sum = sum + t ;}printf( !+2!+ …+%d!= %d\n , n , sum ); return 0 ;}4.【参考代码】#i nclude<stdio.h>int main(){int i , m ;double sum = 0 , k = 1 ;27/ 8printf( Please in put : m=);sea nf( %d , &m );for( i = 1 ; i <= m ; i++ ){sum = sum + k / i ;k = -k ;}printf( sum=%4.2f\n , sum );return 0 ;}数组章第6 一、选择题1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16BDDDBDCDCBDCDD二、程序阅读题1 82430,24125t*M6mo7 fwo三、程序完善题1 k = i j = i a[k] = max a[j] = max2sum += score[i] score[i]<avg) ;4j = strle n( str ) —1str[j] = k5( c = getchar( ) ) != '#' num[c-'A'] += 1 四、编程题1.【参考代码】#include<stdio.h> #define N 5int main( ){int a[N] , i , j , r , temp ;printf( Please input %d numbers\n , N ) ; for( i = 0 ; i < N ; i++ ) scanf( %d , &a[i] ) ;for( i = 0 ; i < N - 1 ; i++ ){27/ 9r = i ;for( j = i + 1 ; j < N ; j++ )if( a[j] < a[r] )r = j ;if( r != i ){temp = a[r] ;a[r] = a[i] ;a[i] = temp ;}printf( The array after sort:\n ) ;for( i = 0 ; i < N ; i++ )printf( ] , a[i] ) ;) ;return 0 ;}2.【参考代码】#include<stdio.h>int main( ){int a[10] = { 1 , 2 , 3 , 6 , 7 , 8 , 9 , 10 } ;int x , j , k = 0 ;printf( Please input :x= ) ; scanf( %d , &x) ;if( x > a[7] )a[8] = x ;else{for( j = 0 ; j < 8 ; j++ )if( x < a[j] )break ;for(k = 8 ; k > j ; k -- )a[k] = a[k - 1] ;a[j] = x ;for( j = 0 ; j < 9 ; j++ )printf( ] , a[j] ) ;) ;return 0 ;}3.【参考代码】#include<stdio.h>int main( )27/ 10{int a[5][5] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21, 22,23,24} ; int i , j ,sum = 0 ;for ( i = 0 ; i < 5 ; i++ ){for ( j = 0 ; j < 5 ; j++)printf( M , a[i][j] ) ;) ;}for( i =0 ;i < 5 ; i++ )sum += a[i][i] ;printf( sum=M\n , sum ) ;return 0 ;}4.【参考代码】#include<stdio.h>int main( ){char s1[100] , s2[30] ;int i , j ;printf( Please input s1: ) ;gets( s1 ) ;printf( Please input s2: ) ;gets( s2 ) ;for( i = 0 ; s1[i] != '\0' ; i++ ) ;for( j = 0 ; s2[j] != '\0' ; j++ , i++ ) s1[i] = s2[j] ;s1[i] = '\0' ;printf( Output\ns1: ) ;puts( s1 ) ;return 0 ;5.【参考代码】#include<stdio.h>int main( ){char s1[100] ;int i ;printf( Please input s1: ) ;gets( s1 ) ;for( i = 0 ; s1[i] != '\0' ; i++ ) ;printf( The length of s1 is %d\n ,i ) ; return 0 ; }27第7章函数、选择题二、程序阅读题1max is 22a=1,b=23 1 114a=11,b=12,c=25 667 8 978 1780 1 2 0 1 2三、程序完善题1 float area ( float r ) retur n s2z = fun( x , y ) z = z * x3cou nt =fun( score ) cou nt++四、编程题1.【参考代码】#i nclude<stdio.h>int main(){void f(i nt n);int n ;printf( Please in put: n= ); sca nf( %d , &n );if( n <= 0)pr intf( Wrong n umber!\n ); elsef( n );return 0 ;}void f(i nt n){if( n % 2 == 1 )pr in tf( %d is a odd n umber.\ n , n );elseprintf( %d is a even number.\n , n );}2.【参考代码】#i nclude < stdio.h >#include < math.h > 27/ 12int main( ){void f( int m ) ;int m ;printf( Please input: m= ) ;scanf( %d , &m ) ;f( m ) ;return 0 ;}void f( int m ){int i , k ;k = sqrt( m );for(i = 2 ; i <= k ; i++ )if( m % i == 0 ) break; if (i >= k + 1 )printf( %d is a Prime Number.\n , m ) ; elseprintf( %d is not a Prime Number.\n , m ) ; } 3.【参考代码】#include<stdio.h>int gys( int m , int n ){int r ;r = m % n ;while( r != 0 ){m = n ;n = r ;r = m % n ;}return n ;}int gbs( int m , int n , int r ){return m * n / r ;}int main( ){int m , n , t;printf( Please input(m,n):);sea nf( %d%d , &m , &n );27/ 13if( m < n ){t = m ;m = n ;n = t ;}t = gys( m , n );printf( gys=%d\n , t );t = gbs( m , n , t );printf( gbs=%d\n , t );return 0 ;}4.【参考代码】#i nclude<stdio.h>int main(){void mystrcat( char s1[100] , char s2[30]); char s1[100] , s2[30];printf( Please in put s1:);gets( si );printf( Please in put s2:);gets( s2 );mystrcat( si , s2 );printf( Output\ns1:);puts( si );return 0 ;}void mystrcat( char s1[100] , char s2[30]) {int i , j ;for( i = 0 ; s1[i] != '\0' ; i++ );for( j = 0 ; s2[j] != '\0' ; j++ , i++ )s1[i] = s2[j];s1[i] = '\0';}编译预处理章第8 一、选择题1 2 3 4 5 6BADD二、程序阅读题16,1827/ 1421535第9章指针一、选择题二、填空题1.地址,NULL (或0)2 . char a, *p; ,sea nf(%c, &a); ,p=&a;3.*m4.for( k=0; k<10; k++ )5.*(p+i) ,p[i],*(x+i)6.str[i]或*( str + i ) ,i三、程序阅读题1.gae2.bcdABCD3.7, 8, 84.8 45. 3 14 26.efgh7.w,o ne8.7四、程序完善题*( a + i )1. a[i]2.*p!='\0' *p -'0'3.p1 p2-x4.max(int a , int b );p = max四、编程题1.【参考代码】#include<stdio.h> void sort( int *a , int *b , int *c );int main(){int m , n , t ; printf( Please input(m n t): ) ; scanf( %d%d%d , &m , &n , &t ) ; sort( &m , &n , &t ) ;27 / 15 printf( The result is :%d\t%d\t%d\n , m , n , t ) ; return 0 ;}void sort( int *a , int *b , int *c ){int temp ;if( *a > *b ) { temp = *a ; *a = *b ; *b = temp ; } if( *a > *c ) { temp = *a ; *a = *c ; *c = temp ; } if( *b > *c ) { temp = *b ; *b = *c ; *c = temp ; }}2.【参考代码】程序1:#include <stdio.h>int strcompare( char *str1 , char *str2 );int main( ){int m ;char s1[20] , s2[20] , *p1 , *p2 ; printf( Please input(string1): ) ;scanf( %s , s1 ) ;printf( Please input(string2): ) ; scanf( %s , s2 ) ;m = strcompare ( s1 , s2 ) ;printf( The result of strcompare is: %d\n , m ) ; return 0 ;}int strcompare( char *str1 , char *str2 ) {int i = 0 ;while( ( *( str1 + i ) == *( str2 + i ) ) &&( *( str1 + i ) != '\0' ) ) i++ ;return( *( str1 + i ) - *( str2 + i ) ) ;}程序2:#include <stdio.h>int strcompare( char *str1 , char *str2 );int main( ){int m ;char s1[20] , s2[20] , *p1 , *p2 ;printf( Please input(string1): ) ;scanf( %s , s1 ) ;printf( Please input(string2): ) ;27 / 16scanf( %s , s2 ) ;p1 = s1 ;p2 = s2 ;m = strcompare ( p1 , p2 ) ;printf( The result of strcompare is: %d\n , m ) ; return 0 ;}int strcompare( char *str1 , char *str2 ){int i = 0 ;while( ( *( str1 + i ) == *( str2 + i ) ) &&( *( str1 + i ) != '\0' ) ) i++ ;return( *( str1 + i ) - *( str2 + i ) ) ;}程序3:#include <stdio.h>int strcompare( char str1[] , char str2[] );int main( ){int m ;char s1[20] , s2[20] , *p1 , *p2 ;printf( Please input(string1): ) ;scanf( %s , s1 ) ;printf( Please input(string2): ) ;scanf( %s , s2 ) ;p1 = s1 ;p2 = s2 ;m = strcompare ( pl , p2 );printf( The result of strcompare is: %d\n , m ); return 0 ;}int strcompare( char *str1 , char *str2 ){int i = 0 ;while( ( str1[i] == str2[i] ) &&( str1[i] != '\0')) i++ ;return( str1[i] - str2[i]);}27/ 17第10章结构体与共用体一、选择题.12 3 4 5 6 7 8 9 10 11DCCDCBBDACD二、填空题1.162. p->n ext=head - >n ext head->n ext=p3.p->n ext三、程序阅读题1.51,60,212.163.1001,Cha ngRo ng,1098.0四、程序完善题1.sizeof( struct ps ) 或sizeof( bt )2.p=p- >n ext3.pers on [i].sex五、编程题1.【参考代码】#define N 3#include <stdio.h> struct student {char num[6] ;char name[8] ;int score[2] ; float ave ;} ;void input( struct student stu[N] ) ; void average( struct student stu[N] ) ; int max( struct student stu[N] ) ; int main( ) {int i , j ;struct student stu[N] ;input( stu ) ; average( stu ) ;printf( No\tName\tScore1\tScore2\tAverage\n ) ; for( i = 0 ; i < N ; i++ ){printf( %s\t%s\t , stu[i].num , stu[i].name ) ; for( j = 0 ; j < 2 ; j++ )printf( %d\t , stu[i].score[j] ) ;27 / 18printf( %8.2f\n , stu[i].ave ) ;}i = max( stu ) ;The max is:\n ) ;printf( No\tName\tScore1\tScore2\tAverage\n ) ; printf( %s\t%s\t , stu[i].num , stu[i].name ) ; for( j = 0 ; j < 2 ; j++ ) printf( %d\t , stu[i].score[j] ) ;printf( %5.2f\n , stu[i].ave ) ; return 0;}void input( struct student stu[N]) {int i , j ; for(i=0;i<N;i++){Please input No%d student:\n,i+1); printf(No:);scanf(%s,stu[i].num); printf(Name:);scanf(%s,stu[i].name);for(j=0;j<2;j++){printf(score %d:,j+1); scanf(%d,&stu[i].score[j]);}}}void average( struct student stu[N]){int i , j , sum ;for(i=0;i<N;i++){for(j=0 , stu[i].ave = 0 ;j<2;j++)stu[i].ave += stu[i].score[j];stu[i].ave = stu[i].ave / 2 ;}}int max( struct student stu[N]){int i , max , index;max = stu[0].ave ;index = 0 ;for( i = 1 ; i < N ; i++ )27/ 19{if( max < stu[i].ave ){max = stu[i].ave ;index = i ;}}return index;}2.【参考代码】#include<stdio.h>#include<stdlib.h> struct nodeshort int data ;struct node *next ;} ;typedef struct node NODE ;struct node *CreatLink( ) ;void PrintLink( NODE *head ) ;int max( NODE *head );int main( ){NODE *head ;int max_value ;head = CreatLink( ) ;PrintLink( head ) ;max_value = max( head ) ;printf( The max is:%d\n , max_value ) ; return 0 ;}struct node *CreatLink( ){NODE *head , *p , *q ;short int num ;head = ( NODE * )malloc( sizeof( NODE ) ) ; head->next = NULL ; p = head ;printf( Please input( end of -1)!:\n ) ; scanf( %d , &num ) ;while( num != -1 ){q = ( NODE *)malloc( sizeof( NODE ) ) ;27/ 20q->data = num ;p->next = q ;p = q ;scanf( %d , &num ) ;}p->next = NULL ;return head ;}void PrintLink( NODE *head ){NODE *p;p = head->next ;printf( The data is:\n );while( p != NULL ){printf( M , p ->data ); p = p_>n ext ;});}int max( NODE *head ){NODE *p;short int max = -32768; p = head- >n ext ; while( p != NULL ){if( max < p ->data )max = p->data ; p = p_>n ext ;}return max ;}第11章位运算一、选择题.12 3 4DBCA二、填空题1.0000 11112. x | ff0027/ 213. 4 3三、程序阅读题1.02.11 223.0四、编程题1.【参考代码】#i nclude<stdio.h>int mai n(){short int data , low ,high ;prin tf( Please in put( short in t):);sca nf( %d , & data );low = data & OxOOff ; /* OxOOff 表示低字节全1 */high = data & OxffOO ; /* OxffOO 表示高字节全1 */printf( data:Ox%x,the value of low byte is:0x%x\n , data , high );printf( data:0x%x,the value of high byte is:0x%x\n , data , low ); return 0 ;}2.【参考代码】#in elude <stdio.h> int main(){short int data , result ;prin tf( Please in tput(short in t):);sca nf( %d , & data );result = data A OxOOOf ;/* OxOOOf 表示低4 位全1,高12 位全0 */ printf( The data is 0x%x \nThe result is :0x%x\n , data,result );return 0 ;}第12章文件操作二、填空题1.二进制ASCII(文本)2 . FILE *fp# in elude <stdio.h>27/ 22buf的首地址4. 15.用以获得文件读写位置标记指针的位置, 件开头的字节数、选择题3. n - 1函数返回值为当前文件读写位置标记指针相对于文6.使文件读写位置标记指针重新返回文件的开头三、程序阅读题1. 1 22.end3. 34.hello,四、程序完善题1. ! feof (fp) fgetc (fp)2.fopen (“ num.dat”,”r”) fp, ” %d” ,&temp ( ch=getchar() )ch , fp3.z++ 五、编程题【参考代码】1.#include<stdio.h> #include<stdlib.h>#include<string.h> int main( ){FILE *fp ; char str[100] , [10] ;int i = 0 ;if( ( fp = fopen( %upper.txt , w+ ) ) == NULL ){printf( Cannot open file!\n ) ; exit( 0 ) ;}printf( Please input(string):\n ) ; gets( str ) ;while( str[i] != '!' ){if( str[i] >= 'a' && str[i] <= 'z' ) str[i] = str[i] - 32 ; fputc( str[i] , fp ) ;i++ ;} rewind( fp ) ;fgets( str , strlen( str ) + 1 , fp ) ;The result is :\n ) ; printf( %s\n , str ) ; fclose( fp ) ; return 0 ;27 / 23 }2.【参考代码】#include<stdio.h>#include<stdlib.h>#define N 5 struct student{char num[10] ; char name[8] ;int score[3] ; float ave ;} stu[N] ;int main( ){int i , j , sum ;FILE *fp ;for( i = 0 ; i < N ; i++ ){Please input student information: \n , i + 1 ) ; printf( No: ) ;scanf( %s , stu[i].num ) ; printf( Name: ) ;scanf( %s , stu[i].name ) ; sum = 0 ;for( j = 0 ; j < 3 ; j++ ){printf( Score%d: , j + 1 ) ; scanf( %d , &stu[i].score[j] ) ; sum += stu[i].score[j] ;}stu[i].ave = sum / 3.0 ;}if( ( fp = fopen( stud.dat , w ) ) == NULL ){printf( cannot open stud for write!\n ) ; exit( 0 ) ;}for( i = 0 ; i < N ; i++ ){fwrite( &stu[i] , sizeof( struct student ) , 1 , fp ) ; }fclose( fp ) ;if( ( fp = fopen( stud.dat ,) ) == NULL )27/ 24printf( cannot open stud for read!\n ) ;exit( 0 ) ;}No\tName\tScore1\tScore2\tAverage\n ) ;for( i = 0 ; i < N ; i++ ){fread( &stu[i] , sizeof( struct student ) , 1 , fp ) ;%s\t%s\t%d\t%d\t%5.2f\n , stu[i].num , stu[i].name , stu[i].score[0] , stu[i].score[1] , stu[i].score[2] ,stu[i].ave ) ;}fclose( fp ) ;return 0 ;}3.【参考代码】#include<stdio.h> #include<stdlib.h>#define N 5struct student{char num[10] ;char name[8] ;int score[3] ;float ave ;} stu[N] ;int main( ){int i , j , min , index ;FILE *fp ;struct student temp ;/* 从stud.dat 文件中读入数据,存放在stu 数组中*/if( ( fp = fopen( stud.dat ,) ) == NULL ){printf( cannot open stud for read!\n ) ;exit( 0 ) ;}The data is : ) ;No\tName\tScore1\tScore2\tAverage\n ) ;for( i = 0 ; i < N ; i++ ){fread( &stu[i] , sizeof(struct student ) , 1 , fp ) ;%s\t%s\t%d\t%d\t%5.2f\n , stu[i].num , stu[i].name , stu[i].score[0] , stu[i].score[1] , stu[i].score[2] ,stu[i].ave ) ;}27/ 25{fclose( fp ) ;/* 对stu 数组中数组元素按其平均值数据域排序*/for( i = 0 ; i < N -1 ; i++ ){min = stu[i].ave ;index = i ;for( j = i + 1 ; j < N ; j++ ){if( min > stu[j].ave )index = j ;}if( index != i ){temp = stu[i] ;stu[i] = stu[index] ;stu[index] = temp ;}}/* 将排序之后的stu 数组存放在stu_sort 文件中*/if( ( fp = fopen( stu_sort.dat , w ) ) == NULL ){printf( cannot open stud for write!\n ) ;exit( 0 ) ;}for( i = 0 ; i < N ; i++ ){fwrite( &stu[i] , sizeof(struct student) , 1 , fp ) ;}fclose( fp ) ;/*将stu_sort 文件中的数据,读出存放在stu 数组中*/ if( ( fp = fopen( stu_sort.dat ,) ) == NULL )27 / 27printf( cannot open stud for read!\n ) ;exit( 0 ) ;}The result is :) ;/* 将stu 数组中的数据输出*/No\tName\tScore1\tScore2\tAverage\n ) ;for( i = 0 ; i < N ; i++ ){fread( &stu[i] , sizeof(struct student) , 1 , fp ) ;%s\t%s\t%d\t%d\t%5.2f\n , stu[i].num , stu[i].name , stu[i].score[0] , stu[i].score[1] ,stu[i].score[2] , stu[i].ave ) ;27/ 26}fclose( fp ) ;return 0 ;}。

C语言程序设计教程课后习题参考答案

C语言程序设计教程课后习题参考答案

《C语言程序设计教程》课后习题参考答案习题11.(1)编译、链接.exe(2)函数主函数(或main函数)(3)编辑编译链接2.(1)-(5):DDBBC(6)-(10):ABBBC3.(1)答:C语言简洁、紧凑,使用方便、灵活;C语言是高级语言,同时具备了低级语言的特征;C语言是结构化程序设计语言,具有结构化的程序控制语句;C语言有各种各样的数据类型;C语言可移植性好;生成目标代码质量高,程序执行效率高。

(2)编辑、编译、链接、执行(3)一个C程序由一或多个函数组成,一函数若干条语句构成,每条语句的末尾必须以分号结束。

(4)标识符,关键字,运算符,分隔符,常量,注释符等4. 从键盘输入一个双精度小数,打印出它的余弦值。

#include <stdio.h>#include <math.h>main( ){double x;scanf(“%lf”, &x);printf(“%lf\n”, cos(x) );}第2章1.(1)BDE、ACFG(2)D(3)C(4)C2.(1)错(2)错(3)错(4)对(5)错3.(1)a=3,b=-27(2)a=11,b=6,c=6(3)3(4)1010110(5)-998(6)1)202)83)704)05)06)04.(1)#include <stdio.h>main( ){double r, h ,v;r = 2.5;h = 3.5;v = 3.14*r*r*h;printf(“v=%lf\n”, v);}(2)#include <stdio.h>main( ){char ch;ch = getchar( );printf(“%c\n”, ch + 32);}(3)#include <stdio.h>main( ){printf(“ *\n”);printf(“ ***\n”);printf(“ *****\n”);printf(“*******\n”);}(4)#include <stdio.h>main( ){double x;scanf(“%lf”, &x);printf(“%d , %lf\n”, (int)x, x – (int)x );}(5)#include <stdio.h>main( ){double a=3, b=5;double result = (-2 * a + ( 4*a – b )/( 2*a + b ) )/( (a - 4*b)/(a + b) );printf(“%lf\n”, result);}习题31.(1)D(2)AD(3)C(4)B(5)A(6)-(10):BDACB2.(1)3.141593,3.1416,3.142(2)c=K(3)| 123.46|,|123 |(4)x= 1.23,y= 50.00(5)03.(1)scanf(%f”, c); 改为:scanf(“%f”, &c);f = (9/5)*c+32;改为:f = (9.0/5)*c + 32;printf(“摄氏温度%f度相当于华氏温度%f度”, &c, &f); 改为:printf(“摄氏温度%f度相当于华氏温度%f度”, c, f); (2)补充定义:int h;h = 500/60改为: h = 500 / 60;m = 500% 60 改为:m = 500%60;printf(“500分钟是%d小时%d分钟,”&h, &m); 改为:printf(“500分钟是%d小时%d分钟” , h, m);4.(1)#include<stdio.h>main( ){char x,y;scanf(“%c%c”, &x, &y);printf(“%d\n”, (x-‘0’) + (y-‘0’) );}(2)#include <stdio.h>main( ){char x, y;char tmp;printf(“Input two characters:”);scanf(“%c%c”, &x, &y);printf(“Before swap: x=%c, y=%c\n”, x, y);tmp = x;x = y;y = tmp;printf(“After swap: x=%c, y=%c\n”, x, y); }(3)#include <stdio.h>main( ){char ch;ch = getchar( );printf(“%c\n”, ch - 32);}第4章1.(1)-(5):CAACA2.(1)BBB(2)AAABBBCCC(3)end(4)d=20(5)s=2,t=3(6)firstthird(7)y=0y=5y=10y=53.(1)y<z x<z x<y(2)ch>=’A’ && ch<=’Z’ch>=’a’&&ch<=’z’ch = ch-32(3)x>2&&x<=10x>-1&&x<=2(4)t=x;x=y;y=t;4.(1)#include <stdio.h>main( ){int x, y , z, t;scanf(“%d%d%d”, &x, &y, &z);if ( x>y ){ t=x; x=y; y=t;}if( x > z ){t = x; x = z; z= t; }if( y > z ){t = y; y= z; z = t;}printf(“%d %d %d\n”, x, y ,z);}(2)#include <stdio.h>main( ){int score;scanf(“%d”, &score);if ( score < 0 || score > 100 )printf(“成绩不合理\n”);else if( score>=90 )printf(“优秀\n”);else if( score>=80 )printf(“良好\n”);else if( score >= 70 )printf(“中等\n”);else if( score >= 60 )printf(“及格\n”);elseprintf(“不及格\n”);}(3)#include <stdio.h>main( ){int n;int g,s,b,q;//各位上的数值scanf(“%d”, &n);g = n%10;//个位s = n/10%10;//十位b = n/100%10;//百位q = n/1000%10;//千位if( n < 10 ) //一位数{printf(“%d\n”, 1);//位数printf(“%d\n”, g); //各位上的数值}else if ( n < 100 ) //两位数{printf(“%d\n”, 2);//位数printf(“%d %d\n”, g,s);}else if ( n < 1000 ) //三位数{printf(“%d\n”, 3);//位数printf(“%d %d %d\n”, g, s, b);}else if ( n < 10000 ) //四位数{printf(“%d\n”, 4);//位数printf(“%d %d %d %d\n”, g, s, b, q);}}(4)#include <stdio.h>main( ){int n;scanf(“%d”, &n);if( n % 3==0 && n%5==0 && n%7==0 )printf(“能同时被3、5、7整除\n”);else if( n%3==0 && n%5==0)printf(“能被3和5整除\n”);else if( n%3==0 && n%7==0 )printf(“能被3和7整除\n”);else if( n%5==0 && n%7==0 )printf(“能被5和7整除\n”);else if( n%3==0 || n%5==0 || n%7==0 ){if( n%3==0 )printf(“能被3整除\n”);else if( n%5==0 )printf(“能被5整除\n”);elseprintf(“能被7整除\n”);}elseprintf(“不能被3、5、7中任一个数整除\n”);}(5)#include <stdio.h>main( ){int carType;//车型。

C语言程序设计》课后习题详细答案

C语言程序设计》课后习题详细答案

《全国计算机等级考试二级教程——C语言程序设计》习题分析与详细解答第一章程序设计基本概念习题分析与解答1.1 【参考答案】EXE1.2 【参考答案】[1].C [2].OBJ [3].EXE1.3 【参考答案】[1]顺序结构[2]选择结构[3]循环结构第二章C程序设计的初步知识习题分析与解答一、选择题2.1 【参考答案】B)2.2 【参考答案】D)2.3 【参考答案】B)2.4 【参考答案】A)2.5 【参考答案】C)2.6 【参考答案】A)2.7 【参考答案】B)2.8 【参考答案】B)2.9 【参考答案】D)2.10 【参考答案】C)2.11 【参考答案】B)2.12 【参考答案】B)2.13 【参考答案】A)二、填空题2.14 【参考答案】[1]11 [2]122.15 【参考答案】[1]4.2 [2]4.22.16 【参考答案】[1]{ [2]} [3]定义[4]执行2.17 【参考答案】[1]关键字[2]用户标识符2.18 【参考答案】[1]int [2]float [3]double2.19 【参考答案】float a1=1.0, a2=1.0;或float a1=1, a2=1;(系统将自动把1转换为1.0)2.20 【参考答案】存储单元2.21 【参考答案】 3.52.22 【参考答案】[1]a*b/c [2]a/c*b [3]b/c*a2.23 【参考答案】把10赋给变量s2.24 【参考答案】[1]位[2]1位二进制数据(0或1)2.25 【参考答案】[1]8 [2]127 [3]01111111 [4]-128 [ 5 ] 10000000 2.26 【参考答案】[1]32767 [2]-32768 [3]10000000000000002.27 【参考答案】[1]十[2]八[3]十六三、上机改错题2.28 【分析与解答】第1行的错误:(1) include是一个程序行,因此在此行的最后不应当有分号(;)。

C语言程序设计习题答案(1 5章)

C语言程序设计习题答案(1 5章)
4
case 6:m=2;break; case 7:m=3;break; case 8:m=4;break; default:m=5;break; } printf("m=%d\n",m); } Cprogram\xt4_4_1b.c #include "stdio.h" main() {int a,m; scanf("%d",&a); m=0; switch(a/10) {default:m++; case 8:m++; case 7:m++; case 6:m++; case 5:case 4:case 3:case 2: case 1:case 0:m++; } printf("m=%d\n",m); } 2. 编写程序,从键盘输入一个整数,打印出它是奇数还是偶数。 答:程序参见文件 Cprogram\xt4_4_2.c #include "stdio.h" main() {int a; scanf("%d",&a); if(a%2==1) printf("%d is a odd number !\n",a); else printf("%d is a even number !\n",a); } 3. 编写程序,从键盘输入一个字符,判别它是否是小写字母,如果是,将它转换为大写字母;如果不是, 不转换。然后输出最后得到的字符。 答:程序参见文件 Cprogram\xt4_4_3.c #include "stdio.h" main() {char ch; scanf("%c",&ch); if(ch>='a' && ch<='z') ch=ch-32; printf("%c\n",ch); } 4. 编写程序,从键盘输入一个不多于 4 位的正整数,打印出它是几位数。 答:程序参见文件 Cprogram\xt4_4_4.c #include "stdio.h" main()

C语言程序设计教程 课后习题参考答案-推荐下载

C语言程序设计教程 课后习题参考答案-推荐下载
f = (9/5)*c+32; 改为:f = (9.0/5)*c + 32; printf(“摄氏温度%f 度相当于华氏温度%f 度”, &c, &f); 改为:
printf(“摄氏温度%f 度相当于华氏温度%f 度”, c, f);
(2)
补充定义:int h;
h = 500/60
改为: h = 500 / 60;
句;C 语言有各种各样的数据类型;C 语言可移植性好;生成目标代码质量高,
程序执行效率高。
(2)编辑、编译、链接、执行
(3)一个 C 程序由一或多个函数组成,一函数若干条语句构成,每条语句的
末尾必须以分号结束。
(4)标识符,关键字,运算符,分隔符,常量,注释符等
4. 从键盘输入一个双精度小数,打印出它的余弦值。
1 4)0
0 5)0
6)0
double r, h ,v; r = 2.5; h = 3.5; v = 3.14*r*r*h; printf(“v=%lf\n”, v); }
(2) #include <stdio.h> main( ) {
char ch; ch = getchar( ); printf(“%c\n”, ch + 32); }
m = 500% 60 改为: m = 500%60;
printf(“500 分钟是%d 小时%d 分钟,”&h, &m)d 小时%d 分钟” , h, m);
4. (1) #include<stdio.h> main( ) {
char x,y; scanf(“%c%c”, &x, &y); printf(“%d\n”, (x-‘0’) + (y-‘0’) ); } (2) #include <stdio.h> main( ) { char x, y; char tmp; printf(“Input two characters:”); scanf(“%c%c”, &x, &y); printf(“Before swap: x=%c, y=%c\n”, x, y);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档