C语言程序设计项目化教程(周雅静第3版) 训练及综合练习答案 项目1 训练及作业参考答案.docx
项目一学生成绩的总分与平均分的计算任务1学生成绩的输入、输出实践训练初级训练1 .补充完整程序,请在下列划线上填上正确的答案参考程序#inc1ude"stdio.h"main()printf("*");输出一行星号printf(,'I1oveYou!n");输出I1oveYoU!后,回车printf("*n");输出一行星号)2 .下列程序划线处有错误,请改正并运行。(答案不唯一)参考程序#inc1ude"stdio.h"main()inta,b;scanf("%d%d",&a,&b);printf("a=%dzb=%d"za,b);)3 .用星号(*)输出字母C的图案。提示:可先用*号在纸上写出字母C,再分行输出。(略)4 .小张、小王、小周是今年刚刚进入单位的员工,请输出他们的月收入。已知小张的月总收入是4500元,小王的月总收入是5610.75元,小周的月总收入是5497元。要求输出的形式为:小张的月总收入为:4500元小王的月总收入为:5610.75元小周的月总收入为:5497元参考程序:inc1ude"stdio.h"main()Printf("小张的月总收入为:4500tn");Printf("小王的月总收入为:5610.75Gn");Printf(“小周的月总收入为:5497元r,);)深入训练1 .请用前面所学的输出语句,输出以下的内容:参考程序:#inc1ude"stdio.hmain()(printf(*n,)printf("我喜欢C语言程序设计!n");printf("我会花很多时间去学习,我会投入满腔的热情。n");printf("请看我的实际行动。n");printf(,1*,)2 .有如下程序段,对应正确的数据输入是(A),并将其补充成完整的C程序。参考程序为:#inc1ude"stdio.h"main()(f1oatx,y;scanf("%f%f,&x,&y);printf("a=%f,b=%f'zx,y);)3 .根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为(A)请上机验证之。参考程序为:#inc1ude"stdio.h"main()chars1,s2zs3;scanf("%c%c%c"s1s2s3);输入语句;Printf("%c%c%c",si,s2,s3);)4 .根据题目中已给出的数据的输入和输出形式,程序中输入/输出语句的正确的是(A)o参考程序为:#inc1ude"stdio.h"main()inta;f1oatb;SCanf(”%d%f”,&a,&b);输入语句printf("a+b=%5.3"a+b);输入语句)5 .阅读如下程序,请写出它的运行结果,然后上机验证,分析并体会格式输出的使用O6.略7.为了让小侄子多多练习九九表中的乘法题,小明决定让练习题的数字由电脑随机出题,每次出3题。请编程实现之。(参考例1-13)。参考程序为:#inc1ude<stdio.h>#inc1ude<std1ib.h>/*用到了产生随机数的库函数rand(),所以要包含Std1ib.h*/#inc1ude<time.h>/*用到了产生随机种子time(),所以要包含time.h*/main()intx,y;intz;/*存放产生的随机数,认为是计算机出的数*/*存放从键盘输入的数,即运算结果*/srand(unsigned)time(NU11);/*产生随机种子*/Printf("第1题r,);x=rand();y=rand();x=x%10;y=y%10;Printfd%d*%d=",x,y);scanf("%d"z);Printf("第2题己);x=rand();y=rand();x=×%10;y=y%10;printf(',%d*%d=y);scanf("%d,z);/*产生随机数*/*让产生的随机数变成10以内的数*/*让产生的随机数变成10以内的数*/输出电脑出的练习题输入答案/*产生随机数*/*让产生的随机数变成10以内的数*/*让产生的随机数变成10以内的数*/输出电脑出的练习题输入答案Printf("第3题n");x=rand();y=rand();x=x%10;y=y%10;Printf("%d*%d=",x,y);scanf(,%d"z);/*产生随机数*/*让产生的随机数变成10以内的数*/*让产生的随机数变成10以内的数*/输出电脑出的练习题输入答案任务2总分及平均分的计算实践训练初级训练1 .编程求:从键盘上输入二个整数,求其和、商和余数。参考程序为:inc1ude"stdio.h"main()intx,y;Printf(“请输入二个整数,以空格隔开n”);scanf(",%d%d"z8tx,8ty);Printfr二个整数的和为dn",x+y);Printf("二个整数的商为dn",xy);Printf("二个整数的余数为dn,x%y);)2 .有如下程序,请指出它们的错误原因。题意为:输入二个整数,输出两数之积。参考程序为ttinc1ude"stdio.h"main()intc1,c2,s;还需增加变量Sprintf("请输入二个数c1,c2:*);scanfC%d%d&c1,&c2);应改为:scanfC%d%d&c1,&c2);s=c1*c2;没有定义变量sprintf(*c1*c2=%d*,s);)3 .小明共买了32个气球,其中红气球比黄气球少4个,小明各买多少个汽球?参考程序为:#inc1ude"stdio.h"main()itx,y;x=(32-4)2;y=32-x;Printfd红气球=%dn”,x);Printf("黄气球=%dn,y);)4 .个饲养场养鸡和鸭共3559只,如果鸡减少60只,鸭增加100只,那么,鸡的只数比鸭的只数的2倍少1只。问原来鸡和鸭各有多少只?参考程序为:#inc1ude“stdio.h"main()ints,d,c;s=3559-60+100;d=(s+1)/(2+1);c=s-d;Printf("原先鸭子数=%dn”,d-100);Printf("原先鸡数=%dn”,c+60);)5 .编程求:输入三角形的底和高,求其面积。参考程序为:#inc1ude*stdio.h"main()f1oats,a,h;Printf(“请输入三角形的底和高,以空格隔开n);scanf%f%f*,a,&h);s=a*h2;printf("三角形面积为:6.1fn",s);)6 .编程求:输入三角形三边的长,求三角形的周长。参考程序为:#inc1ude“stdio.hmain()f1oata,b,c,cc;Printf("请输入三角形的三边,以空格隔开r);scanf("%f%f%f”,&a,&b,&c);cc=a+b+c;Printf("三角形边长为:6.1fn”,CC);7 .编程求:输入矩形的长和宽,求对角线的长。参考程序为:#inc1ude*stdio.h"#inc1ude"math.hmain()f1oata,b,cc;Printf("请输入距形的长和宽,以空格隔开n);scanf("%f%f”,&a,&b);cc=sqrt(a*a+b*b);Printf("距形对角线的长:6.1fn”,cc);深入训练1 .改错题。下列程序多处有错,请通过上机改正。使之符合下面的要求。#inc1ude"stdio.h"voidmain()(f1oata,b,c,s,v;Printf("请输入a,b,c:");scanfC%d%d%da,b,c);修改为:scanf(*%f%f%f*,&a,&b,&c);s=a*b;v=a*b*c;printf(,a=%db=%dc=%dn”,a,b,c);/改为printf(*a=%fb=%fc=%fn*,a,b,c);printf("s=%fn”,s,"v=%dn”,v);改为printf(*s=%fv=%fn*,stv);)2 .编辑如下程序:(1)运行结果为:9,11,9,10(2)运行结果为:9,11,8,11(3)运行结果为:9,11,9,11(4)运行结果为:i=9,j=9,m=8,n=93 .略4 .编程求:输入一个华氏温度,要求输出摄氏温度。公式为:c=5(F-32)9o输出要求有文字说明,取2位小数。参考程序为:#inc1ude“stdio.h"main()f1oatf,c;Printf("请输入华氏温度n");scanf("%f",&f);c=5*(f-32)9;Printf("对应的摄氏温度:%6.2fn”,c);)5 .编程求:输入梯形的上底、下底及高,求其面积。参考程序为:#inc1ude"stdio.h"main()f1oata,b,h,s;Printf(请输入梯形上底、下底、高,以逗号隔开n");scanfC%f,%f,%f",&a,&b,&h);s=(a+b)*h2;Printf("对应的梯形面积为:%6.1fn”,s);)6 .交换二个整形变量的值。即若有二个整型变量x=2,y=3,则交换后x=3,尸2。参考程序为:#inc1ude"stdio.hmain()f1oata,b,t;Printf(”请输入2个数,以逗号隔开n");scanf("%f,%f",&a,&b);t=a;a=b;b=t;Printf("交换后二个数为:%6.1f,%6.1fn”,a,b);)7 .设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆柱体积。用SCanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。请编程序。参考程序为:#inc1ude“stdio.h"definePI3.14main()f1oatr,h;f1oatcc,s,v;Printf(“请输入圆柱的半径及高,用逗号隔开n);scanf%f,%f",&r,&h);cc=2*PI*r;s=PI*r*r;v=s*h;printf("圆的周长为%6.1fn”,cc);printf("圆的面积为6.1fn",s);printf("圆柱的体积为6.1fn”,v);)8 .黄气球2元3个,红气球3