c语言程序的设计科学出版社课后习题解答.doc

上传人:s****u 文档编号:12811926 上传时间:2020-05-26 格式:DOC 页数:28 大小:57.50KB
返回 下载 相关 举报
c语言程序的设计科学出版社课后习题解答.doc_第1页
第1页 / 共28页
c语言程序的设计科学出版社课后习题解答.doc_第2页
第2页 / 共28页
c语言程序的设计科学出版社课后习题解答.doc_第3页
第3页 / 共28页
点击查看更多>>
资源描述
. . . .第3章 习题解答 第1章 1.C 语言程序主要由预处理命令、函数、注释等组成。 2.填空 (1)分号 (2)main (3)stdio.h 3. 源程序: #include main( ) printf(“*n”); printf(“Hello World!n”); printf(“*”); 4. 源程序: #include main( ) int a, b, c; /* 定义变量 */ scanf(“%d”, &a); /* 输入第一个整数 */ scanf(“%d”, &b); /* 输入第二个整数 */ c=a-b; /* 计算差 */ printf(“%d-%d=%d”,a,b,c); /* 输出结果 */ 5. (1) (2)x=10; (3)printf(“s=%dn”,s); 第2章 1. (1) c (2) a (3) b g (4) a d e (5) d 2. a. 5 b. 295 c. 4 d. 29 e. 9 3. a.x=4,y=6 b. x=4,y=3 f.x=3,y=6 4. 16 5. #include main() int a,b,c; scanf(%d%d,&a,&b); c=a*b; printf(%d*%d=%d,a,b,c); 第3章 1. (1) b (2) b (3) d (4) a (5) b 2. (1)&a,&b (2)l,s 3. printf(“x=%.2f,y=%.2fn”,x,y); 4. #include main() int num1,num2,num3,sum; float average; scanf(%d%d%d,&num1,&num2,&num3); sum=num1+num2+num3; average=sum/3.0; printf(sum=%d,average=%.2fn,sum,average); 5. #include main() int hour,minute,second,total; /* 定义变量代表时、分、秒和总秒数 */ scanf(%d,&total); hour=total/3600; minute=total%3600/60; second=total%3600%60; printf(%dhours:%dminutes:%dsecondsn,hour,minute,second); 第4章 1. (1) a (2) b (3) b (4) b (5) b 2. 0 3. (1) 6 (2) 4 (3) 1 (4) 1 4. #include main( ) int x,y; scanf(%d,&x); if (x-5 & x0 & x10) y=2*x+1; printf(x=%d,y=%dn,x,y); 5. #include main( ) int score,rank; /* score 表示成绩,rank 表示级别 */ printf(Please input score:); scanf(%d,&score); rank=score/10; switch(rank) case 10: case 9: printf(成绩等级为:An); break; case 8: printf(成绩等级为:Bn); break; case 7: printf(成绩等级为:Cn); break; case 6: printf(成绩等级为:Dn); break; default:printf(成绩等级为:En); break; 6. #include void main() int n; printf(Please input the digit:); scanf(%d,&n); switch(n) case 1:printf(Jan n);break; case 2:printf(Feb n);break; case 3:printf(Mar n);break; case 4:printf(Apr n);break; case 5:printf(May n);break; case 6:printf(Jun n);break; case 7:printf(Jul n);break; case 8:printf(Agu n);break; case 9:printf(Sep n);break; case 10:printf(Oct n);break; case 11:printf(Nov n);break; case 12:printf(Dec n);break; 第5章 1. (1) b (2) a (3) b (4) d (5) d 2. 7,1 3. y=-1 4. m=6 5. 10,14 6. 3 7. 5 8. ABABCDCD 9. # include main ( ) int i; long int sum=0; for (i=2;i=200;i+=2) sum+=i; printf(2+4+6+.+200=%ld,sum); 10. #include main() long int n; int sum = 0; printf(Please input the nber:); scanf(%ld,&n); while(n != 0) sum += n % 10; n /= 10; printf(%dn, sum); 第6章 1. (1) d (2) b (3) d (4) c (5) a 2. 11 3. 3 4. 5689 5. 12,6 6. (1) i- (2) n 7. (1) char k; (2) ij 8. #include main( ) float a10; int i; float sum=0,average; for (i=0;i10;i+) printf(a%d=?,i); scanf(%f,&ai); sum+=ai; average=sum/10; printf(average is %.2fn,average); 9. #include #define N 10 main( ) int aN,i,target,found; for (i=0;iN;i+) scanf(%d,&ai); printf(Please input a number:); scanf(%d,&target); i=0; while(iN & target != ai) i+; found = iN?i:-1; printf(%dn,found); 10. #include #define N 80 main( ) char strN; int len=0,i=0; printf(Please input a string:); gets(str); while (stri+ != 0) len+; printf(the length of string is %d.n,len); 第7章 1. 21 2. 136 3. 16 4. (1) func (2) m+ 5. 9 6. 1,6,3,2,3 7. 2,5,1,2,3,-2 8. #include int fun(int a,int b,int c); main( ) int a,b,c,max; printf(Please input three numbers:); scanf(%d%d%d,&a,&b,&c); max=fun(a,b,c); printf(Max is %d.n,max); int fun(int a,int b,int c) int max; max= ab?(ac?a:c):(bc?b:c); return max; 9. #include long int sum(int n); main( ) int n; printf(n=?); scanf(%d,&n); printf(Sum=%ld.n,sum(n); long int sum(int n) if (n = = 1 ) return 1; else return sum(n-1)+n; 10. #include void fun(n); main( ) int n; printf(n=?); scanf(%d,&n); fun(n); void fun(n) if (n = = 0) return; else fun(n/2); printf(%-2d,n%2); 第8章 1. (1) b (2) d (3) b (4) c (5) c 2. 8 3. 123456789 4. 2 3 4 5 6 5. 345 6. 1 2 3 4 5 6 7. bi 8. bcdefgha 9. p=sum 10. #include #include main() char str80; char *p1, *p2; gets(str); p1=str; p2=str+strlen(str)-1; while (p1p2 & *p1+ = *p2- ) ; puts( p1p2 ? 不是回文 : 是回文 ); 第9章 1. a. #define F(x) (x)*(x)*(x) b. #define F(x) (x)%4 c. #define F(x,y) (x)*(y)100?1:0 2. a. 4 b. 4 c. #define DOUBLE(x) 2*(x) 3. d 4. -20 5. N is undefined 6. 7.5 7. y=6 8. #include #define SWAP(a,b) int temp;temp=a;a=b;b=temp; main() int x,y; printf(x=?); scanf(%d,&x); printf(y=?); scanf(%d,&y); SWAP(x,y) printf(x=%d,y=%d.n,x,y); 第10章 1. struct student int sno; char sname10; char sex; stu1,stu2; 2. 12 3. 合法的有a,b,d c.改成 s.u.rectangle.length=25; e.改成 s.u.circle.radius=5; f.改成 s.u.circle.radius=5; 4. a,b,c,d (说明:变量 b 有确定的值之后,b+是合法的。) 5. 改为 typedef struct product char name10; float price; PRODUCT; PRODUCT products10; 6. (1) struct employee (2) printemp(emp) 7. 2 4 3 9 8 8. #include struct time_struct int hour; int minute; int second; ; main( ) struct time_struct time; printf(Input time?n(Example 18:28:38)n); scanf(%d:%d:%d,&time.hour,&time.minute,&time.second); printf(Time is %d:%d:%dn,time.hour,time.minute,time.second); 9. #include struct time_struct int hour; int minute; int second; time; void enter_time(); void display_time(); main( ) enter_time(); display_time(); void enter_time() printf(Enter the time(example 18:28:38)?); scanf(%d:%d:%d,&time.hour,&time.minute,&time.second); void display_time() printf(Time is %d:%d:%d.n,time.hour,time.minute,time.second); 10. #include #define N 3 struct hotel char name31; /*旅馆名称*/ char address31;/*旅馆地址*/ int grade; /*旅馆级别*/ float average_charge; /*平均房价*/ int number; /*房间数量*/ hN= h1,上海路,5,500.00,80, h2,北京大街,5,480.00,70, h3,南京大街,3,300.50,100 ; main( ) int grade,i; printf(请输入级别(3-5)?); scanf(%d,&grade); for (i=0;iN;i+) if (hi.grade=grade) printf(名称:%sn 地址:%sn 级别:%dn平均房价%.2fn 房间数量:%dn, hi.name,hi.address,hi.grade,hi.average_charge,hi.number); 第11章 1. (1) c (2) d (3) b (4) b (5) b 2. Basican 3. fgetc(fp) 4. “record.dat”, “w” 5. #include #include #include typedef struct Employee int id; char name20; char gender20; int age; char address20; Employee; int main(void) FILE *fp; char another,choice; Employee emp; long int recsize; fp=fopen(employee.dat,rb+); if(fp=NULL) fp=fopen( employee.dat,wb+); if(fp=NULL) printf(Cant Open File); exit(0); recsize=sizeof(emp); while(1) printf(1.添加记录 2.显示男员工 3.退出n); printf(Enter your choice(1-3):); fflush(stdin); scanf(%c,&choice); switch(choice) case1: fseek(fp,0,SEEK_END); another=Y; while(another=Y| another=y) printf(输入信息(id 姓名 性别 年龄 住址):n); scanf(%d %s %s %d %s,&emp.id,&emp.name,&emp.gender,&emp.age,&emp.address); fwrite(&emp,recsize,1,fp); printf(是否继续 (Y/N): ); fflush(stdin); another=getchar(); break; case 2: printf(学号t 姓名t性别t 年龄t住址n); rewind(fp); while(fread(&emp,recsize,1,fp)=1) if (strcmp(emp.gender,男)=0) printf(%dt%st%st%dt%sn, emp.id,emp.name,emp.gender,emp.age,emp.address); break; case 3: fclose(fp); exit(0); 6. #includestdio.h #includestdlib.h #define M 2 #define stu struct student stu int num; char name20; float s1; float s2; float s3; float avg; ; main() stu stM; FILE *fp; int i; printf(请输入 5 名同学生的成绩,按照学号,姓名,成绩 1,成绩2,成绩 3 的顺序,中间用空格隔开:n); for(i=0;iM;i+) scanf(%d%s%f%f%f,&sti.num,sti.name,&sti.s1,&sti.s2,&sti.s3); sti.avg=(sti.s1+sti.s2+sti.s3)/3; if(fp=fopen(stud.rec,wb)=NULL) printf(cannot open filen); for(i=0;iM;i+) if(fwrite(&sti,sizeof(stu),1,fp)!=1) printf(file write errorn); fclose(fp); fp=fopen(stud.rec,rb); printf(numtnametscore1tscore2tscore3taveragen); for(i=0;iM;i+) fread(&sti,sizeof(stu),1,fp); printf(%dt%st%.2ft%.2ft%.2ft%.2fn,sti.num,sti.name,sti.s1,sti.s2,sti.s3,sti.avg); fclose(fp); 第12章 1. a. 2 b. 4 c. 11 d. 4 e. -15 f. 28 g. -36 2. 程序设计分析:先将整数x 右移4 位,将该整数机内码的第4 到7 位移至第0 到3 位, 然后与0x000f(0000000000001111)进行位与运算,所保留的低4 位就是所要的结果 #include void main() int x,y; scanf(%d,&x); y=x4; y=y&0x000f; printf(47位的十六进制数:y=%#xn,y); 3. d 4. (1) p!=NULL (2)p=p-next 5. p=p-next 6. 略 欢迎您的光临,Word文档下载后可修改编辑.双击可删除页眉页脚.谢谢!希望您提出您宝贵的意见,你的意见是我进步的动力。赠语; 1、如果我们做与不做都会有人笑,如果做不好与做得好还会有人笑,那么我们索性就做得更好,来给人笑吧! 2、现在你不玩命的学,以后命玩你。3、我不知道年少轻狂,我只知道胜者为王。4、不要做金钱、权利的奴隶;应学会做“金钱、权利”的主人。5、什么时候离光明最近?那就是你觉得黑暗太黑的时候。6、最值得欣赏的风景,是自己奋斗的足迹。7、压力不是有人比你努力,而是那些比你牛几倍的人依然比你努力。 专业资料 精心整理
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!