当前位置:文档之家› 程序设计基础-c语言-第三章程序结构-教材习题答案-科学出版社

程序设计基础-c语言-第三章程序结构-教材习题答案-科学出版社

程序设计基础-C语言(科学出版社教材)第三章-程序结构教材习题答案1.0编写程序使整形变量:a=3,b=4,c=5,p=0xfffe,q=0xffff;浮点型变量:x=1.2,y=2.4,z=3.6;无符号型变量:u=5127486,n=128765,字符型变量:c1=’a’,c2=’b’;#include <stdio.h>void main(){int a,b,c,p,q;float x,y,z;unsigned int u,n;char c1,c2;a=3;b=4;c=5;p=0xfffe;q=0xffff;x=1.2;y=2.4;z=-3.6;u=5127486;n=128765;c1='a';c2='b';printf("a=%d b=%d c=%d\n",a,b,c);printf("p=%#x q=%#x\n",p,q);printf("x=%f,y=%f,z=%f\n",x,y,z);printf("x+y=%.2f y+z=%.2f x+z=%.2f\n",x+y,y+z,x+z);printf("u=%8u n=%8u\n",u,n);printf("c1='%c' or %d\n",c1,c1);printf("c2='%c' or %d\n",c2,c2);}2.0 读入三个双精度数,求出它们的平均值并保留此平均值小数点后二位,最后输出结果。

#include <stdio.h>void main(){double a,b,c,d;printf("请输入三个双精度数:");scanf("%lf,%lf,%lf",&a,&b,&c);d=(a+b+c)/3;printf("d=%.2lf",d );}3.0 编写一个程序,要求输入三个整数值a,b,c,把c中的值赋给b, 把b中的值赋给a, 把a中的值赋给c,最后输出a,b,c.#include <stdio.h>void main(){int a,b,c,t;printf("输入三个整数值:");scanf("%d,%d,%d",&a,&b,&c);t=a;a=b;b=c;c=t;printf("a=%d,b=%d,c=%d\n",a,b,c);}4.0 编写一个程序,要求输入一个华氏温度,输出对于的摄氏温度。

华氏温度与摄氏温度转换公式为:c=5/9*(F-32).结果保留二位小数。

#include <stdio.h>void main(){float F;float C;printf("请输入一个华氏温度F=");scanf("%f",&F);C=5.0/9.0*(F-32.0);printf("对应的摄氏温度C=%.2f\n",C);}5.0 编写一个程序,要求输入一个三位数,正确的分量出它的个位,十位,百位,并在屏幕显示出来#include <stdio.h>void main(){int a,a100,a10,a1;printf("请输入一个三位整数:");scanf("%d",&a);if(100<=a && a<=999){a100=a/100;a=a%100;a10=a/10;a1=a%10;printf("百位数是%d,十位数是%d,个位数是%d\n",a100,a10,a1);}else{ printf("输入的数据不是一个3位整数!\n");}}6.0 编写一个程序,输入一个整数,输出它是奇数还是偶数#include <stdio.h>void main(){int a,b;printf("请输入一个整数:");scanf("%d",&a);b=a%2;if(b==0)printf("偶数a=%d\n",a);elseprintf("奇数a=%d\n",a);}7.0x(x1)y2x1(1x10)3x11(x10)<⎧⎪=-<=<⎨⎪->=⎩编写程序,输入x,对应输出Y值。

#include <stdio.h>void main(){int x,y;printf("输入x值:");scanf("%d",&x);if (x<1){ y=x;}else{ if (1<=x && x<10)y=2*x-1;elsey=3*x-11;}printf("%d\n",y);}8.0 编写一个程序,要求由键盘输入3个数,判断它们是否能构成三角形的三边。

若能,请判断构成的是等腰,等边还是普通三角形。

#include <stdio.h>#include <math.h>void main(){unsigned int i_a,i_b,i_c;float f_s;printf("请输入3个数作为三角形的三条边,中间用空格隔开:");scanf("%u %u %u",&i_a,&i_b,&i_c);if((i_a+i_b)>i_c && (i_a+i_c)>i_b && (i_c+i_b)>i_a){ f_s=((float)(i_a+i_b+i_c))/2;f_s=sqrt(f_s*(f_s-i_a)*(f_s-i_b)*(f_s-i_c));printf("该3个数可构成一个三角形,其面积是%.2f\n",f_s);if((i_a=i_b)&&(i_a=i_c)){ printf("该三角形是等边三角形\n");}else{ if((i_a=i_b) || (i_a=i_c) || (i_b=i_c)){ printf("该三角形是等腰三角形\n");}else{ printf("该三角形是一般三角形\n");}}}else{ printf("该3个数不能构成一个三角形\n");}}9.0 编写程序,输入某年某月,求该月有多少天。

#include <stdio.h>void main(){unsigned int i_Year,i_Month;char i_Days;printf("请输入年月,中间用空格隔开:");scanf("%u %u",&i_Year,&i_Month);if(1<=i_Month && i_Month<=12){ switch(i_Month){ case 1:;case 3:;case 5:;case 7:;case 8:;case 10:;case 12:i_Days=31;break;case 4:;case 6:;case 9:;case 11:i_Days=30;break;case 2:if(i_Year%4==0 && i_Year%100!=0 || i_Year%400==0)i_Days=29;elsei_Days=28;}printf("%d年%d月是%d天\n",i_Year,i_Month,i_Days);}else{ printf("月只能是1~12,输入错误,无法计算");}}10.0 编写程序,对给定的一个百分制成绩,输出对于的五分制成绩,设90分以上为A,80到89分为B,70到79分为C,60到69为D,60分以下为E,用IF和switch语句分部实现。

#include <stdio.h>void main(){int i_a;//成绩int i_grade;//成绩等级printf("请输入成绩:");scanf("%d",&i_a);printf("用if语句判断的等级是:");if (i_a>=90){ printf("A");}else{ if(80<=i_a && i_a<=89){ printf("B");}else{ if(70<=i_a && i_a<=79){ printf("C");}else{ if(60<=i_a && i_a<=69){ printf("D");}else{ printf("E");}}}}printf("\n");printf("用switch语句判断的等级是:"); i_grade=i_a/10;switch(i_a/10){ case 10:;case 9:printf("A");break;case 8:printf("B");break;case 7:printf("C");break;case 6:printf("D");break;default:printf("E");}printf("\n");}11循环输入若干个数据,以-1表示输入结束,计算输入的这些数据平均值。

#include <stdio.h>void main(){int a;//记录当前输入的数int num;//记录当前输入的数据个数int sum;//记录当前所有数据的和float average;//记录平均值//赋初值sum=0;num=0;//输入开始printf("输入一组整型数据,如果输入的数据是-1,则说明该组数据输入完成,下面开始输入\n");scanf("%d",&a);while(a!=-1){ num++;sum=sum+a;scanf("%d",&a);}//输入结束//计算和输出if(num==0){ printf("没有输入数据,无平均数!");}else{ average=(float)sum/(float)num;// 强制int转换为float,然后计算,如果不要强制转换,即average=sum/num,你可试一试,看结果有什么不同printf("输入了%d个数据,其平均数是:%.2f\n",num,average);}}12 编程计算1+2+3+4+……n的值超过500的第一个和值为多少;n的值为多少。

相关主题