实验2
实验报告
任务1
#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; }

任务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; }

代码中12~13行输出了整型数据
%8d表示以8位输出,由于原数据为四位,故在左侧用空格补足八位,%2d以两位输出,为避免损失,输出原数据。
15行中,%f表示输出浮点型;%8输出八位;%8.1f输出八位数据,保留一位小数;%0.2f输出两位小数;%.2e按指数形式输出,保留两位小数。
%lf:输出双精度型数据
%3c:输出三位字符
%s:按字符串输出;%15s:输出十五位字符串;%10.5:输出占十位,取了前五位%2.5s:取前五位,占两位,为防损失输出五位。%.3e以指数形式输出,保留三位,a为字符串,输出三位。
任务3
#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("%lf,%1f\n", x, y); return 0; }

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

任务5
#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罗马不是一天毁灭的。。。\n"); return 0; }


去掉第六行的“getchar()”后程序只接受了ans1就结束了

任务6
#include<stdio.h> #include<math.h> int main() { int n, sum; scanf_s("%d", &n); int k = n + 1; sum = 1 * (1 - pow(2,k))/ (1 - 2); printf("当n=%d时,sum=%d", n, sum); return 0; }



实验总结
任务1:程序进行计算时从左到右进行,由于代码中的数据都为整型,计算时结果只保留整数部分,因此会产生损失。各步计算顺序不同,产生的误差自然也不同。
任务2:
代码中12~13行输出了整型数据
%8d表示以8位输出,由于原数据为四位,故在左侧用空格补足八位,%2d以两位输出,为避免损失,输出原数据。
15行中,%f表示输出浮点型;%8输出八位;%8.1f输出八位数据,保留一位小数;%0.2f输出两位小数;%.2e按指数形式输出,保留两位小数。
%lf:输出双精度型数据
%3c:输出三位字符
%s:按字符串输出;%15s:输出十五位字符串;%10.5:输出占十位,取了前五位%2.5s:取前五位,占两位,为防损失输出五位。%.3e以指数形式输出,保留三位,a为字符串,输出三位。
任务5:代码中第六行内容删除后,运行时只能接收一个回答。
浙公网安备 33010602011771号