实验2(实验结果及实验报告)
实验任务一:
include <stdio.h> int main() { int a=5, b=7, c=100,d, e, f; d = a/b*c; e = a*c/b; f = c/b*a; printf("d=%d, e=%d, f=%d\n",d,e,f); return 0; }
实验报告:
line6:5/7=0;0*100=0
line7:5*100=500;500/7=71
line8:100/7=14;14*5=70
出现该情况的原因有两点:1.a,b,c均被定义为整型数 2.在运算中*与/的优先级相同,且结合性为从左向右结合
实验任务二:
#include <stdio.h> int main() { int x=1234; float f=123.456; double m=123.456; char ch=‘a‘; char a[]="Hello, world!"; int y=3, z=4; printf("%d %d\n", y, z); printf("y=%d, z=%d\n", y,z); printf("%8d,%2d\n", x,x); printf("%f, %8f, %8.1f, %0.2f, %.2e\n",f,f,f,f,f); printf("%lf\n",m); printf("%3c\n", ch); printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a); return 0; }
实验报告:
由运行结果可知:
line12中;%d 的作用为将某数按十进制整数输出
line13中: y=%d 前面有普通字符将普通字符一起输出
line14中:%8d 表示输出数占8位,不足左补空格;%2d 由于原本数占4位,故输出原始数据,保证原数据不丢失
line15中:%f 的作用为将某数按单精度浮点型数据输出;%8f 表示输出数占8位;%8.1f 表示输出数占8位,不足补空格,保留一位小数;%0.2f 表示输出数保留两位小数;%.2e 表示取前两位并以e为指数
line16中:%lf 表示定义输出数为双精度数
line17中:%3c 表示按字符输出
line18中:%s 表示按字符串输出,%15s 表示按字符串输出,占15位,不足左补空格;%10.5 表示占10位,取前五位字符串;%2.5 表示取前五位字符串,占两位,但因为原字符串占5位故输出原数据;%.3表示取前三位字符
原文:https://www.cnblogs.com/WesleyMoob/p/13889322.html