实验二
#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; }
理论分析:d=500/7,e=500/7,f=500/7.
实际编译:

原因:a,b,c,d,e,f都是定义的整型,所以运算结果也为整型,故a/b为零,d为零。
任务二:
#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("%1f\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; }

理解:%d:整型;%8d:整型并且占8个字符;%f:浮点型;%8f:8字节浮点型;%8.1f:保留小数点后一位八字节浮点型;%.2e:指数形式,小数点后两位。
任务三:
#include<stdio.h> int main() { double x,y; char c1,c2,c3; int a1,a2,a3; scanf("%d %d %d",&a1,&a2,&a3); printf("%d,%d,%d\n",a1,a2,a3); scanf("%c %c %c",&c1,&c2,&c3); printf("%c,%c,%c\n",c1,c2,c3); scanf("%lf %lf",&x,&y); printf("%.1f,%.1f",x,y); return 0; }

任务四:
#include<stdio.h> int main() { char x; x = getchar(); if( x >= 0 && x <= 9) printf("%c是数字字符\n",x); else if( x >= 'A' && x <= 'z') printf("%c是英文字母\n",x); else printf("%c是其它字符\n",x); return 0; }



实验五:
#include<stdio.h> int main() { char ans1,ans2; printf("复习了没? (输入y或Y表示复习了,输入n或N表示没复习) :"); ans1 = getchar(); getchar(); printf("\n动手敲代码了没? (输入y或Y表示敲了,输入n或N表示木有敲) : "); ans2 = getchar(); if( (ans1 == 'y' && ans2 =='y' ) || (ans1 == 'Y' && ans2 == 'Y')) printf("\n罗马不是一天建成的:)\n"); else printf("\n罗马不是一天毁灭的。。。\n"); return 0; }



若去掉中间的getchar,则第一次输入的y或者n,不仅会判断第一次,也会判断第二次,第二次的判断会依据第一次输入的执行。
任务五:
#include<stdio.h> int main() { int n; while(scanf("%d",&n) != EOF) { int sum=0; int ret=1; int i; for( i = 1;i <= n;i++) { ret *= 2; } sum = ret - 1; printf("n = %d时,sum = %d\n",n,sum); sum = 0; ret = 1; } return 0; }

任务七:
#include<Stdio.h> #include<stdlib.h> #include<windows.h> int main() { int n=9; int count=1; for( n = 9;n > 0;n-=2) { int j; int i; for( i = 1;i <= n;i++) { printf(" 0\t"); } printf("\n"); for( i = 1;i <= n;i++) { printf("<H>\t"); } printf("\n"); for( i = 1;i <= n;i++) { printf("I I\t"); } printf("\n"); } return 0; }


浙公网安备 33010602011771号