实验二
Part1: 格式化输出函数printf()和格式化输入函数scanf()
1.在c程序开发环境下输入并运行程序ex2_1.c,运行程序,观察运行结果。
输入该段代码:
#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("%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; }
运行结果如图

各行分别为:
输入整形数据;
输入单精度数据;
输入双精度数据;
输入字符型数据;
输入数组;
而后输出为:
按照十进制类型输出y,z的值;
按照十进制输出y=和z=的值;
将x按照占8个数位输出,不足的用0来补充,将x按照2个数位输出;
将f分别按(小数,占8数位的小数,整数部分占8位小数部分取一位,小数部分占两位整数部分不变,指数)形式输出;
double型数据固定输出语句;
输出字符型数据;
分别取不同位数的字符型数据输出。
2.在c程序开发环境下输入程序ex2_2.c,查找并修改错误
/* 《C语言程序设计教程学习指导》p119 实验内容(2) 这是一个格式化输入输出函数及格式符使用练习 找出两处错误,修改并运行程序 为a1,a2,a3,c1,c2,c3,x,y输入数据,使得: a1=1,a2=2,a3=3,c1='a',c2='b',c3='c', x=1.5, y=2.5 */ #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;
}
Part4: switch语句体验练习
/* switch语句使用示例 输入1,2,3...的不同整数,显示不同提示信息 */ #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;
}
实验结果如图:


去掉break,语句即不能在本句停止运行,有可能导致程序运算出错。
如图:

part5: 简单编程练习
设计的代码为:
#include <stdio.h> int main() { int answer; printf("输入你的答案(A,B,C or D): "); scanf("%d",&answer); if(answer == 'A') printf("biggo,you are right\n"); else printf("try it again\n"); return 0;}
Part6: 拓展练习(===选做===)
输入年份,判断是否为闰年。
#include <stdio.h> #include <stdlib.h> int main() { int year; scanf("%d",&year); if(year<=0) { printf("输入数据错误\n"); exit(0); } if(year%100!=0&&year%400==0||year%4==0) printf("%d是闰年\n",year); else printf("%d不是闰年\n",year); return 0; }
之前由于将%写成&出现错误,一直找没找到(挥手)(微笑)。
修改后运行如图

去掉#include <stdlib.h>和exit(0)后仿佛也没有什么变化...

完成。
浙公网安备 33010602011771号