C语言题目 高手请帮忙!!!最佳答案积分送上!!!

1,若有“char c=1025;printf("%d",c);”结果为? 答案为 1 为什么呢?越详细越好! 为什么char型的1025既没有单引号又没有双引号,不是字符型也不是字 符串型的,输出为什么用“%d”,答案1又是哪来的? 2,编写程序,输入两个双精度的数,求它们的平均值,要求小数点后保留两位小数,第三位小数四舍五入 答案 #include<stdio.h> main() { double f1,f2,avg; scanf("%lf,%lf",&f1,&f2); avg=(f1+f2)/2; printf("avg=%3.2lf\n",avg); } %3.2lf 的含义是什么?可以实现保留两位小数,并对第三位实现四舍五入吗? 3,邮寄包裹,以每1KG为一个记费单位,每个邮包最多10KG,低于1KG的按一个记费单位算,每件邮包的手续费为3元,从A到B的邮寄费是3元/KG #include<stdio.h> main() { float postage; float weight; scanf("%f",&weight); if(weight>10) printf(wrong!); postage=(int)weight*3.0+3.0; printf("postage=%f",postage); } (int)weight是对重量进行取整处理,但是题目中的不足1KG按最小单位记费怎么办呢?应该怎么把那部分的费用算出来,或者这个答案为什么是对的? 4.执行下面的程序后a b k 的值分别为? int a=0,b=0,k=0; for(;a<=5;a++) if(a%2) for(;b<=3;b++) k=a+b; 答案为6.4.4为什么? 5.执行下面程序的输出结果为? #include<stdio.h> main() { int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf("%d,%d,%d\n",x,y,z); } 答案是什么?为什么? 谢谢帮忙!

第1个回答  2019-10-27
1。
1025
写成二进制
0100
0000
0001
char
只有8位,高位被舍弃,故
0000
0001
按10进制输出,即为
1
2.
%3.2lf
的含义是什么?
M.Nlf
M:域宽,即对应的输出项在输出设备上所占字符数
若:实际数据宽度>M,按实际数据宽度输出。
实际数据宽度<M,左边补空。
N:精度,说明输出的实型数的小数位数。
3.
(int)weight*3.0+3.0;
注意,后面加了一个3.0,
当你的weight为
0.9时,(int)weight
=0
上式结果为3.0
4.
for(;a<=5;a++)
当a=6是退出循环。
if(a%2)
for(;b<=3;b++)
k=a+b;
只有当a=1时该循环才会执行
当b=3时得到最终k值
=
1+3
=4

b
=4
时退出循环
5.
结果时
3
2
-1
while(z-->0&&++x<5)
y=y-1;

z=-1时这个条件不再满足。循环结束。
相似回答