1.通过试验(即编写带有此类问题的程序)观察系统如何处理整数上溢、浮点数上溢和浮点数下溢的情况。
2.编写一个程序,要求提示输入一个ASCⅡ码值(如,66),然后打印输入的字符。
#include
int main(void)
{
int input;
printf("Enter a value of char int ASCⅡ:");
scanf("%d",&input);
//通过scanf()函数读取用户输入,并存储在input变量中
printf("You input value is %d,and char is %c\n",input,input); //通过转换说明符%d与%c打印整数类型和字符
return 0;
}
运行结果:
3.编写一个程序,发出一声警报,然后打印下面的文本:
Started by the sudden sound, Sally shouted,
"By the Great Pumpkin,what was that!"
#include
int main(void)
{
char ch='\a';
printf("%c",ch);
printf("Started by the sudden sound, Sally shouted,\n");
printf("By the Great Pumpkin,what was that!\n");
return 0;
}
运行结果:
4. 编写一个程序,读取一个浮点数,先打印成小数点形式,再打印成指数形式。然后,如果系统支持,再打印成p计数法。按以下形式输出:
Enter a floating-point value:64.25
fix-point notation:64.250000
exponential notation:6.425000e+01
p notation:0x1.01p+6
#include
int main(void)
{
float input;
printf("Enter a floating-point value:");
scanf("%f",&input);
printf("fix-point notation:%f\n",input);
printf("exponential notation:%e\n",input);
printf("p notation:%a\n",input);
return 0;
}
运行结果(此系统不支持打印成p计数法):
5.一年大约有3.156×107秒。编写一个程序,提示用户输入年龄,然后显示年龄对应的秒数。
#include
int main(void)
{
int year;
float second;
printf("Enter your years:");
scanf("%d",&year);
second=year*365*43200;
printf("you are %e seconds old.\n",second);
return 0;
}
运行结果:
6.1个水分子的质量约为3.0×10 -23克。1夸脱水大约是950克。编写一个程序,提示用户输入水的夸脱数,并显示水分子的数量。
#include
int main(void)
{
float quart,quantity;
printf("Enter how many quart:");
scanf("%d",&quart); //读取用户输入的夸脱数
quantity=quart*3.0e-23;
printf("There are %e molecule\n",quantity); //计算水分子数量
return 0;
}
运行结果:
7.1英寸相当于2.54厘米。编写一个程序,提示用户输入身高(英寸),然后以厘米为单位显示身高。
(1)
#include
int main(void)
{
float inch,cm;
printf("Enter the inch of your heigh:");
scanf("%f",&inch);
cm=2.54*inch;
printf("You are %.2f inch,or %.2f cm heigh\n",inch,cm);
return 0;
}
运行结果:
(2)
#define cm 2.54
#include
int main() {
float inch,height;
//声明变量
printf("Enter the inch of your height:");
//提示用户输入身高
scanf("%f", &inch);
//计算(身高(厘米)=身高(英尺)*2.54)
height = inch * cm;
printf("Hi,your height is %.2f inch,or %.2fcm.\n",inch, height);
//打印结果
return 0;
}
运行结果:
7.在美国的体积测量系统中,1品脱等于2杯,1杯等于8盎司,1盎司等于2大汤勺,1大汤勺等于3茶勺。编写一个程序,提示用户输入杯数,并以品脱、盎司、汤勺、茶勺为单位显示等价容量。思考对于该程序,为何使用浮点类型比整数类型更合适?
#include
int main()
{
float cup;
printf("Enter the cup number:");
scanf("%f", &cup);
printf("%.1f杯等于%.1f品脱\n", cup, cup / 2);
printf("%.1f杯等于%.1f盎司\n", cup, cup * 8);
printf("%.1f杯等于%.1f大汤勺\n", cup, cup * 8 * 2);
printf("%.1f杯等于%.1f茶勺\n", cup, cup * 8 * 2 * 3);
return 0;
}
运行结果:
因为1品脱等于2杯,如果使用整数类型,且输入杯数不是2的倍数,计算过程中的小数位会被舍去,从而导致计算结果不精确。