实验2
// ex1.cpp
#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;
}
line 6:a除以b的商乘以c;
line 7:a乘以c的积除以b取商;
line 8:c除以b的商乘以a;
不同原因:计算顺序不同

// ex2.cpp
#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;
}
line 12:输出y,z的值;
line 13:输出y= ,z= ;
line 14:最小宽度为8个字符输出x,不足位前补空格;
line 15:保留小数点后六位输出, 保留八位数输出,保留一位小数左边补齐三个空格输出,保留两位小数输出,保留两位小数以指数形式输出;
line 16:以double型输出,保留小数点后六位;
line 17:在a字符前空两格输出;
line 18:直接输出,最小宽度为15个字符输出,前用五个空格代替输出五个字符 ,至少输出两个字符 ,保留前三位输出。

// ex3.cpp
#include <stdio.h>
int main() {
double x,y;
char c1,c2,c3;
int a1,a2,a3;
scanf("%d %d %d ",&a1,&a2,&a3);
printf("a1=%d,a2=%d,a3=%d\n",a1,a2,a3);
scanf("%c %c %c ",&c1,&c2,&c3);
printf("c1=%c,c2=%c,c3=%c\n",c1,c2,c3);
scanf("%lf %lf",&x,&y);
printf("x=%.1lf,y=%.1lf\n",x,y);
return 0;
}

// ex4.cpp
//判断字符类型
#include <stdio.h>
int main() {
char x;
x = getchar();
if(x>='1'&&x<='9')
printf("%c是数字字符\n", x);
else if(x>='A'&&x<='Z')
printf("%c是英文字母\n", x);
else
printf("%c是其他字符\n", x);
return 0;
}

// ex5.cpp
#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'||ans1=='Y')&&(ans2=='y'||ans2=='Y'))
printf("\n罗马不是一天建成的:)\n");
else
printf("罗马不是一天毁灭的。。。\n");
return 0;
}
getchar()用来填补回车键,若是不加则将回车键赋值给第二个问

// ex6.cpp
#include <stdio.h>
#include <math.h>
int main() {
int n,q,sum;
q = 2;
printf("请输入一个数,(数字在1-10之间):");
scanf("%d",&n);
sum = pow(q,n)-1;
printf("n=%d时,sum=%d",n,sum);
return 0;
}


浙公网安备 33010602011771号