1-8章习题参考答案全 下载本文

内容发布更新时间 : 2024/12/23 6:35:26星期一 下面是文章的全部内容请认真阅读。

scanf(\ x=(a*a+b*b)/sqrt(3*(a+b)); printf(\}

2.编写程序,从键盘输入一个梯形的上底a、下底b和高h,输出梯形的面积s。

#include #include void main( ) { float a, b,h,s;

scanf(\ s=(a+b)*h/2;

printf(\梯形面积s=%.2f\\n\ }

3.编写程序,在屏幕上输入你姓名的第一个字母,显示出该字母以及下面的信息:

Hello!

This is a c program.

My name is [第一个字母]

#include void main( ) {

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 #include void main() { float x,y;

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 #include void main( )

{ 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 void main( ) { float n, r, s; int m;

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 void main( )

{ int a, b, c, d,t;

scanf(\ if(a

printf(\}

5. 给出一个不超过4位数的正整数,判断它是几位数,并按逆向输出各位数字。例1234,输出为4321。 #include void main( )

{ 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\}