C语言程序设计教程(第三版)李凤霞 第四章课后习题答案

一、 单项选择题(P83)
1、putchar()函数可以向屏幕输出一个( )
A)整形变量值 B)实型变量值 C)字符 D)字符或字符变量值
2、以下选项中不是C语句的是( )。
A){int i;i++;printf("%d\n",i);} B);
C)a=5,c=10 D){;}
3、以下合法的C语句是( )。
A){a=b}; B)k=int(a+b); C)k=a+b=c; D)–i;
4、执行以下程序段后,c3的值是( )。
int c1=1,c2=2,c3;
c3=c1/c2;
A)0 B)1/2 C)0.5 D)1
5、若int a,b,c;则为它们输入数据的正确的语句是( )。
A)read(a,b,c); B)scanf("%d%d%d",a,b,c);
C)scanf("%D%D%D",&a,&b,&c); D)scanf("%d%d%d",&a,&b,&c);
6、若float a,b,c; 要通过语句:scanf("%f%f%f",&a,&b,&c); 分别为a,b,c输入10,22,23。以下不正确的输入形式是( )。
A)10 B)10.0,22.0,33.0 C)10.0 D)10 22
22 22.0 33.0 33
33
7、若在键盘上输入:283.1900,想使单精度实型变量c的值为283.19,则正确的输入语句是( )。
A)scanf("%f",&c); B)scanf(“8.4f”,&c);
C)scanf("%6.2f",&c); D)scanf(“8f”,&c);
8、执行语句:printf("|%10.5f|\n",12345.678);的输出是( )。
A)|2345.67800| B)|12345.6780| C)|12345.67800| D)|12345.678|
9、若有以下程序段,其输出结果是( )。
int a=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf("%d,%d,%d\n",a,b,c);
A)3,0,-10 B)0,0,5 C)-10,3,-10 D)3,0,3
10、若a为int类型,且a=125,执行下列语句后的输出是( )。
printf("%d,%o,%x\n",a,a+1,a+2);
A)125,175,7D B)125,176,7f C)125,176,7D D)125,175,2F

二、 填空题
1.{a=3; c+=a-b;}在语法上被认为是________条语句,空语句的形式是______。 (一条 ;)
2.若float x; 以下程序段的输出结果是__________。(5.169000)
x=5.16894
printf("%f\n",(int)(x*1000+0.5)/(float)1000);

3.以下程序段中输出语句执行后的结果依次是___________、
(1)-200 2500 (2)i=-200,j=2500
(3)i=-200
j=2500
int i=-200,j=2500;
printf("(1)%d %d",i,j);
printf("(2)i=%d,j=%d\n",i,j);
printf("(3)i=%d\nj=%d\n",i,j);
4.当运行以下程序时,在键盘上从第一列开始输入9876543210(此处代表按回车键),则程序的输出结果是__________。(a=98, b=765.000000, c=4321.000000)
main()
{int a; float b,c;
scanf("%2d%3f%4f",&a,&b,&c);
printf("\na=%d,b=%f,c=%f\n",a,b,c);
}
5.以下程序段要求通过scanf函数给变量赋制,然后输出变量的值。
写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能输入形式__________、__________ 和 __________。
int k; float a;double x;
scanf("%d%f%lf",&k,&a,&x);
printf(“k=%d,a=%f,x=%f\n”,k,a,x);

三种可能的输入是:
(1) 100<回车> 25.81<回车> 1.89234<回车>
(2) 100<空格> 25.81<空格> 1.89234<回车>
(3) 100 25.81 1.89234<回车>
6.执行下列程序段后,输出结果是__________。(0,0,3)
int a,b,c;
a=b=c=0;
c=(a-=a-3,a=b,b+3);
printf("%d,%d,%d\n",a,b,c);

7.下面程序的输出结果是________。(3)
main()
{int x=10,y=3,z;
printf("%d\n",z=(x%y,x/y));
}
8.若double a,b,c;
要求为a、b、c分别输入10、20、30。输入序列为:(□表示空格)
□ 10.0□□20.0□□30.0
则正确的输入语句是_____________。(输入语句的格式是:
scanf(" %lf %lf %lf",&a,&b,&c);)

9.下面程序的输出结果是__________。(13 13.000000 13.000000)
main()
{double a;float b;int c;
c=b=a=40/3;
printf("%d %f %f\n",c,b,a);
}
10. 若有int a=10,b=20,c=30; 则能使a和c的值互换的语句是________。
三种方法:(1) 增加一个临时变量t。t=a; a=c; c=t;
(2) a=a+c; c=a-c; a=a-c;
(3) a=a+b;c=c-b;

三、编程题
1、 编写程序,输出如下信息:
**********************************
very good!
**********************************
main( )
{ printf(" ***************************\n");
printf(" very good! \n");
printf(" ***************************\n");
}

2、编些程序,输入9时23分并把它化成分钟后输出。(从零点开始计算)
main( )
{ int hour,min;
scanf("%d,%d",&hour,&min);
min=60*hour+min;
printf("%d\n",min);
}

3、 编写程序,分别转换摄氏温度-10℃,0℃,15℃,34℃为华氏温度,摄氏温度与华氏温度满足下列关系式(C表示摄氏温度,F表示华氏温度)
C=(5/9)(f-32)
main( )
{ float c , f;
scanf("%f",&c);
f=32+9.0*c/5;
printf("%f\n",f);
}
按题目要求分别输入-10,0,15和34计算相应的华氏温度。

4、设圆半径为5,编写成,求圆的周长和圆面积。
main()
{ float r,l,s;
scanf("%f",&r);
l=23.141592r;
s=3.14159rr;
printf(“r=%f, l=%f, s=%f\n”,r,l,s);
}

5、编写程序,输入三角形的3个边长A、B、C,求三角形的面积搜索。公式为:

其中,s=(a+b+c)/2
#include<math.h>
main( )
{ float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
if((a+b>c)||(a+c>b)||(b+c>a)) /* 判断两边之和大于第三边 /
{ s=(a+b+c)/2;
area=sqrt(s
(s-a)(s-b)(s-c)); /*调用开方函数,计算面积 */
printf(“area=%f\n”,area);
}
}

6、设a=3,b=4,c=5,d=1.2,e=2.23,f=-43.56,编写程序,使程序输出:
a=□□3,b=4□□□,c=5
d=1.2
e=□□2.23
f=-43.56□□

main( )
{ int a=3,b=4,c=5;
float d=1.2,e=2.23,f=-43.56;
printf(“a=%3d,b=%-4d,c=%d\n",a,b,c);
printf("d=%3.1f\ne=%6.2f\nf=%-10.4f
”,d,e,f);
}

7、编写程序,读入3个整数给a,b,c,然后交换它们中的数,使a存放b的值,b存放c的值,c存放a的值。
main( )
{ int a,b,c,t ;
scanf("%d,%d,%d",&a,&b,&c);
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
t=a;
a=b;
b=c;
c=t;
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
}

8、编写程序输入3个数a,b,c,求它们的平均值,并安如下形式输出:
average of and ** is .
其中,3个数依次表示a,b,c的值,.** 表示a,b,c的平均值
main( )
{ float a,b,c,aver;
printf(“Please input three numbers:\n”);
scanf("%f,%f,%f",&a,&b,&c);
aver=(a+b+c)/3;
printf(“average of %5.2f,%5.2f and %5.2f is %5.2f”,a,b,c,aver);
}

9、执行下列程序,按制定方式输入(□表示空格),能否得到指定的输出结果?若不能,请修改程序,使之能得到指定的输出结果。
输出:2□3□4
输出:a=2,b=3,c=4
x=6,y=24
main( )
{ int a,b,c ,x,y;
scanf("%d %d %d",&a,&b,&c);
x=ab;y=xc;
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
printf(“x=%d,y=%d\n”,x,y);
}

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是筱倩阿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值