Part1: 格式化输出函数printf()和格式化输入函数scanf() #include <stdio.h> int main() { int x=1234; float f=123.456; double m=123.456; char ch='a'; char a[]="Hello, world!"; // 定义一个数组a,数组中连续存放了字符串常量hello,world! int y=3, z=4; printf("%d %d\n", y, z); printf("y=%d, z=%d\n", y,z); printf("�,-\n", x,x); printf("%f, �, %8.1f, %0.2f, %.2e\n",f,f,f,f,f); printf("%lf\n",m); printf("<\n", ch);="" printf("%s\ns\n.5s\n%2.5s\n%.3s\n",a,a,a,a,a);="" return="" 0;=""> 此部分主要考察C语言常用输出格式符:在这个程序中,我们会发现第四行输出的最后三位数是“001”而不是“000”,这是由于计算机精度问题造成的;然后就是代码打的是输出“-",结果输出的是”1234”而不是“12”,这是计算机的默认规则,即实际数位超过设定数位按照实际数位输出;还有就是在输入double型数据时scanf()要用%lf。 更改前: #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("%f,%lf",&x,&y); printf("%f,%lf\n",x,y); return 0; } 更改后: #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,%lf\n",x,y); return 0; } 此代码缺少了取地址运算符"&";双精度变量x对应长双精度格式%lf。 Part 2: ①getchar() #include <stdio.h> int main() { char ch; ch = getchar(); // 用户从键盘输入字符,如果输入成功,输入的字符被赋值给ch putchar(ch); // 使用putchar()输出字符变量ch中存放的字符 printf("%c",ch); // 使用printf()和格式符%c输出单个字符 return 0; } ②putchar() #include <stdio.h> int main() { char ch; ch = 'A'; putchar(ch); // 参数ch是字符型变量 putchar(ch 32); // 参数ch 32是字符型表达式 putchar('\x41'); // 参数是字符型常量,是用十六进制表示的转义字符 putchar('\n'); // 参数\n是字符型常量,是转义字符,表示换行 return 0; } Part3:if语句 #include <stdio.h> int main() { int a,b; int t; // 用于交换a和b时,作为中间变量 printf("输入两个整数给a和b:\n"); scanf("%d%d",&a,&b); if(a>b) { t = a; a = b; b = t; } printf("a=%d, b=%d\n",a,b); return 0; } #include <stdio.h> int main() { printf("输入一个整数给n:\n"); scanf("%d",&n); if(n%2) printf("n是奇数.\n"); else printf("n是偶数.\n"); return 0; } #include <stdio.h> int main() { int level; printf("输入现在状态等级(1-5): "); scanf("%d",&level); if(level == 1) printf("high翻了:)\n"); else if(level == 2) printf("low爆了:(\n"); else printf("一言难尽,无法概括。。。\n"); return 0; } Part4: switch语句体验练习 #include <stdio.h> int main() { int level; printf("输入现在状态等级(1-5): "); scanf("%d",&level); switch(level) { case 1: printf("high翻了:)\n"); break; case 2: printf("low爆了:(\n"); break; default: printf("一言难尽,无法概括。。。\n"); } return 0; } 若把case语句后面的break删除,这出现下图所示结果: 这说明switch语句遇到break则跳出,否则一直执行,所以我们在使用switch语句时,应该注意不要漏掉case语句后面的break。 Part 5 方法一:if语句: #include<stdio.h> int main(){ int x; printf("请输入你的答案(A,B,C or D):"); scanf("%c",&x); if(x=='A') printf("Binggo, you are right~"); else printf("try again~"); return 0; } 方法二:switch语句: #include<stdio.h> int main(){ int answer; printf("请输入你的答案(A,B,C or D):"); scanf("%c",&answer); switch(answer){ case'A':printf("Binggo, you are right~");break; default:printf("try again~");break; } return 0; } 总结:在这次实验中,我初步了解了if语句和switch语句的用法,对于精度要求、字符宽度等细节也有了进一步的了解。 |
|