scanf(\ x=(a*a+b*b)/sqrt(3*(a+b)); printf(\}
2.编写程序,从键盘输入一个梯形的上底a、下底b和高h,输出梯形的面积s。
#include
scanf(\ s=(a+b)*h/2;
printf(\梯形面积s=%.2f\\n\ }
3.编写程序,在屏幕上输入你姓名的第一个字母,显示出该字母以及下面的信息:
Hello!
This is a c program.
My name is [第一个字母]
#include
char name;
name=getchar(); putchar(name); printf(\
printf(\ printf(\ }
第4章习题 一、选择题
1 B
2 B 3 C 4 B 5 C 6 A C 7 B 8 A 9 C 10 C 二、填空题
1. ! && || 2. 1 3. a b 4. 1 5. 0
6. x%4= =0 && x0!=0 7. 5 6 8. A
9. x<0 || x>10 && x<50 10. -1
三、程序分析题
1. No 2. -2 3. 5 3 2 4. #& 5. (1)2 (2)3
CC
a=2,b=2,c=4
四、编程题
1. 有一个函数如下:
x2-2 (x<5)
y= 3x+5 (5≤x<50) x-4x?1
(x≥50)
编写程序,输入x的值,计算相应的y值输出(保留3位小数)。
#include
scanf(\ if(x<5) y=x*x-2; else if(x<50) y=3*x+5;
else y=x-sqrt(4*x-1); printf(\}
2.编写一个程序,根据输入的三角形的三条边判断是否能组成三角形,如果可以则输出它的面积和三角形类型(等边、等腰、直角、一般三角形)。
#include
{ float a, b, c, s, area;
scanf(\ if(a+b>c && b+c>a && a+c>b) { s=(a+b+c)/2;
area=sqrt(s*(s*(s-a)*(s-b)*(s-c))); printf(\ if(a==b && b==c) printf(\等边三角形\\n\
else if(a==b || a==c || b==c) printf(\等腰三角形\\n\
else if((a*a + b*b== c*c)||(a*a + c*c== b*b)||(b*b + c*c == a*a)) printf(\直角三角形\\n\
else printf(\一般三角形\\n\ }
else printf(\不能组成三角形\\n\}
3.设奖金税率r有如下的要求 (n代表奖金) : 0 n<1000 5% 1000≤n<2000 r= 8% 2000≤n<3000 10% 3000≤n<6000 15% 6000≤n
用switch多分支选择语句编写程序,输入奖金值,计算并输出相应的税率和实际应得奖金值。
#include
printf(\请输入奖金值:\ scanf(\ if(n>=6000) m=6;
else m=n/1000; switch(m)
{ case 0: r=0; break; case 1: r=0.05; break; case 2: r=0.08; break; case 3: case 4:
case 5: r=0.1; break; case 6: r=0.15; break; }
s=n-r*n;
printf(\税率r=%.0f%%, 奖金值n=%.2f, 实际应得奖金值s=%.2f\\n\n, s); }
4. 从键盘输入任意4个数a、b、c、d,按照从大到小的顺序排列后重新输出。
#include
{ int a, b, c, d,t;
scanf(\ if(a
printf(\}
5. 给出一个不超过4位数的正整数,判断它是几位数,并按逆向输出各位数字。例1234,输出为4321。 #include
{ int num,i,j,k,m;
printf(\输入一个少于4位的正整数:\ scanf(\
if(num>=0 && num<=9999)
{ if(num>1000 && num<=9999) { printf(\是一个4位数\\n\
m=num; /*求个位上的数字*/ k=num/10; /*求十位上的数字*/ j=num/100; /*求百位上的数字*/ i=num/1000; /*求千位上的数字*/
printf(\逆序数为:%d%d%d%d\\n\ }
else if(num>=100)
{ printf(\是一个3位数\\n\ m=num; /*求个位上的数字*/ k=num/10; /*求十位上的数字*/ j=num/100; /*求百位上的数字*/ printf(\逆序数为:%d%d%d\\n\ }
else if(num>=10)
{printf(\是一个2位数\\n\ m=num; /*求个位上的数字*/ k=num/10; /*求十位上的数字*/ printf(\逆序数为:%d%d\\n\ } else
{printf(\是一个1位数\\n\ printf(\逆序数为:%d\\n\ } }
else printf(\是一个无效的数\\n\}