(按照作业要求,本文档分为【实验结论】和【实验总结与体会】两部分)
【实验结论】
Part 1:格式化输出函数printf()和格式化输入函数scanf()
(1)几种常用的格式字符:
%d: 按十进制整数输出 %f: 按浮点数输出 %s: 按字符串输出
%c: 按字符输出 %e(或%E): 按指数形式输出
(2)几种常用的修饰符:
m: 输出数据域宽,数据长度<m,左补空格;否则按实际输出
.n:对实数,指定小数点后位数(四舍五入),对字符串,指定实际输出位数
l: 在d、o、x、u前,指定输出精度为long型;在e、f、g前,指定输出精度为double型
格式说明形式:%[<修饰符>]<格式字符>
实例:
%5d: 按宽度5输出一个整型数据,不足前补空格,超过按原样输出,按宽度5
%.3f:单精度浮点型,保留3位小数
%lf: 按双精度浮点型输出
%6.2f:按数据域宽6输出单精度浮点型数据,保留2位小数
%4.2s:按数据域宽4,输出位数2输出字符串型数据
特别地,当以double双精度浮点型输入数据时,必须使用%lf
Part 4:switch语句体验练习
程序源码:
1 /* 2 switch语句使用示例 3 输入1,2,3...的不同整数,显示不同提示信息 4 */ 5 #include <stdio.h> 6 int main() { 7 int level; 8 printf("输入现在状态等级(1-5): "); 9 scanf("%d",&level); 10 switch(level) { 11 case 1: printf("high翻了:)\n"); break; 12 case 2: printf("low爆了:(\n"); break; 13 default: printf("一言难尽,无法概括。。。\n"); 14 } 15 return 0; 16 }
运行结果(case后语句序列中有break):
运行结果(case后语句序列中无break):
两者区别:
·当有break时,遇到break语句,程序就跳出这一层 switch语句结构,转到其结构后面的语句执行;
·当没有break语句时,程序就会一直执行下去,直到遇到break语句或该switch结构结束。在该程序中即为输入1,会执行case1及其之后的所有语句,直到该switch结构结束。
Part 5:简单编程小练习
程序源码:
1 /* 2 编程模拟用户做选择题的情况:要求用户从键盘输入一个答案选项(A,B,C,D)之一, 3 如果用户答案是‘A’,则输出提示信息"Binggo,you are right~" ,否则输出提示信息 4 "try again~"。 5 */ 6 #include <stdio.h> 7 int main() { 8 char answer; 9 printf("请输入你的答案(A,B,C or D):"); 10 scanf("%c",&answer); 11 switch(answer) { 12 case 'A': printf("inggo,you are right~\n");break; 13 default: printf("try again~\n"); 14 } 15 return 0; 16 }
运行测试截图:
Part 5:拓展练习
程序功能:判断三角形的形状——已知三个数,判断这三个数能否构成三角形的三条边;如果能构成三角形,判断所构成三角形的形状。
源代码:
1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 float a,b,c; 6 printf("请输入三条边长:"); 7 scanf("%f%f%f",&a,&b,&c); 8 if(a<=0||b<=0||c<=0) 9 { 10 printf("三角形的边长不能为0或负,请重新输入!\n"); 11 exit(0); 12 } 13 if(a+b<=c||a+c<=b||b+c<=a) 14 { 15 printf("不能构成三角形,请重新输入!\n"); 16 exit(0); 17 } 18 else if(a==b&&b==c) 19 printf("是等边三角形\n"); 20 else if(a==b||b==c||a==c) 21 printf("是等腰三角形\n"); 22 else 23 printf("是一般三角形\n"); 24 return 0; 25 }
运行结果截图:
【实验总结与体会】
·格式化输入scanf()函数的地址符'&'容易遗漏,修饰符对字符串型数据和其他类型数据的作用有所区别,双精度浮点型数据的输入必须使用%lf,输入浮点数时,不能指定小数部分位数;
·基于Part3部分的if语句的使用已经初步理解并掌握,有关else的从属问题还需要进一步加强理解;
·格式字符与输出项个数应相同,按先后顺序一一对应;
PS:给别人的评论
http://www.cnblogs.com/cnx1252/
https://www.cnblogs.com/bu-xiu/
https://home.cnblogs.com/u/zpy73363668/