《C语言-第四章-控制结构作业解答(一)(共5页).doc》由会员分享,可在线阅读,更多相关《C语言-第四章-控制结构作业解答(一)(共5页).doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 第四章 控制结构作业解答(一)1、 按“体指数”对肥胖程度进行划分: 体指数t = w / h2 (体重w单位为公斤,身高h单位为米) 当t 18时,为低体重; 当18 t 25时,为正常体重; 当25 t 27时,为超重体重; 当t 27时,为肥胖。编程从键盘输入你的身高h和体重w,根据给定公式计算体指数t,然后判断你的体重属于何种类型。【程序】 #include Void main()float h, w, t;printf(Please enter h,w:);scanf(%f, %f, &h, &w);t = w / (h * h);if (t = 18 &
2、 t = 25 & t = 27) printf(t=%ftToo fat!n, t);/main 2、编程设计一个简单的计算器程序,要求根据用户从键盘输入如下形式的表达式: 操作数1 运算符op 操作数2 然后,计算并输出表达式的值 指定的运算符为 加(+) 减(-) 乘(*)除(/)【程序】#include void main()int data1, data2; /*定义两个操作符*/char op; /*定义运算符*/printf(Please enter the expression:);scanf(%d%c%d, &data1, &op, &data2); /*输入运算表达式*/s
3、witch (op) case +: /*处理加法*/printf(%d + %d = %dn, data1, data2, data1 + data2); break;case -: /*处理减法*/printf(%d - %d = %dn, data1, data2, data1 - data2);break;case *: /*处理乘法*/printf(%d * %d = %dn, data1, data2, data1 * data2); break;case /: /*处理除法*/if (0 = data2) printf(Division by zero!n);else print
4、f(%d/%d = %dn, data1, data2, data1/data2); break;default: printf(Unknown operator! n);3、键盘输入任一年的公元年号year,编程判断该年是否是闰年。 判断某一年year是否闰年;闰年的条件符合下列二者之一能被4整除,但不能被100整除;能被100整除。【程序】 # include void main() int year,leap; /leap是1时,表示闰年;是0时,不是闰年 scanf(“%d”,&year); if(year%4=0) if(year%100=0)if(year%400=0) leap=
5、1;else leap=0; else leap=0;else leap=0;if (leap=1) printf(“%d is a leap yearn”,year); /是闰年else printf(“%d is not a leap yearn”,year); /不是闰年/main4、运输公司对用户计算运费。距离(s)越远,每公理运费越低。标准如下: s250km 没有折扣 250s500 2%折扣 500s1000 5%折扣 1000s2000 8%折扣 2000s3000 10%折扣 3000s 15%折扣 设每公理每吨货物的基本运费为p,货物重为w,距离为s,折费为d,则总运费的f
6、的计算公式为:f=p*w*s*(1-d) 要求程序中输入p、w、s, 用switch语句完成该题。【程序】 # include void main() int c,s;float p,w,d,f;scanf(%f,%f,%d”,&p,&w,&s);if(s=3000) c=12;else c=int(s/250);switch(c) case 0:d=0;break; case 1:d=2;break; case 2: case 3:d=5;break; case 4: case 5: case 6: case 7: d=8;break; case 8: case 9: case 10: ca
7、se 11: d=10;break; case 12: d=15;break;f=p*w*s*(1-d/100.0);printf(“总运费=%15.4fn”,f);/main5、教材3.1输入一串字符(按ENTER键结束),将字母转换成大写字母输出。【程序】/* 一个一个得到字符逐个处理,用函数getchar或getch getchar()在stdio.h中预处理 getch()在conio.h中预处理 由习题2.6知道,函数getchar()得到回车键值为n*/#include void main( ) char c; while( (c=getchar() != n ) if( c=a
8、& c=z ) c-=32; putchar(c); 6、教材3.4计算阶乘15!。【程序】/*用int类型和double类型分别求出两个结果因为15!中有2和5的因子, 所以个位数肯定为0,本题目主要理解数据类型的取值范围. */#include #define N 15void main( ) int i, s=1; double S=1; for(i=2; i=N; i+) s *= i; S *= i; printf(%d!=%dn, N,s); printf(%d!=%.0lfn,N,S);7、教材3.5求水仙花数。【程序】/* 函数IsNarcissus(int x)返回真(1)或者假(0): 判断整数x是否为水仙花数*/#include int IsNarcissus(int x) int a,b,c; a = x%10; /取x的个位 b = x/10%10; /十位 c = x/100; /百位 if( a*a*a + b*b*b +c*c*c = x ) return 1; return 0;void main( ) int i; puts(所有水仙花数:); for(i=100; i=999; i+) if( IsNarcissus(i) ) printf(%5dn,i);专心-专注-专业