第三章 数据和C
编程练习:
通过实验的方法(即编写带有此类问题的程序)观察系统如何处理整数上溢、浮点数上溢和浮点数下溢的的情况。
#include <stdio.h>
int main(void)
{
/* 16位短××× */
short int a = 32767;
printf("a + 1 = %d\n", (short)(a + 1));
/* 32位××× */
int b = 2147483647;
printf("b + 1 = %d\n", b + 1);
unsigned int c = 4294967295;
printf("c + 1 = %u\n", c + 1);
float x = 3.4e38;
printf("x = %f\n", x);
x = x + 0.01e38;
printf("x = %f\n", x);
float y = -3.4e38;
printf("y = %f\n", y);
y = y - 0.01e38;
printf("y = %f\n", y);
return 0;
}
2.编写一个程序,要求输入一个ASCII码值(如 66),然后输出相应的字符
#include <stdio.h>
int main(void)
{
int a;
printf("请输入ASCII码值: ");
scanf("%d", &a);
printf("ASCCII码中%d对应的字字符是:%c\n", a, a);
return 0;
}
3.编写一个程序,发出警报,并打印下列文字:
Startled by the sudden sound, Sally shouted."By the Great Pumpkin, what was that!"
#include <stdio.h>
int main(void)
{
int a;
printf("%c",7);
printf("Startled by the sudden sound, Sally shouted.");
printf(" \"By the Great Pumpkin, what was that! \"\n/");
return 0;
}
4.编写一个程序,读入一个浮点数,并分别以小数形式和指点数形式打印,输出应如同下面格式(实际显示的指数位数也许因系统而不同):
The input is 21.290000 or 2.129000E+001.
#include <stdio.h>
int main(void)
{
float number;
printf("Enter a floating-point value: ");
scanf("%f", &number);
printf("The input is %f or %e.\n", number, number);
return 0;
}
5.一年约有3.156*10^7s。编写一个程序,要求输入您的年龄,然后显示年龄合多少秒。
#include <stdio.h>
int main(void)
{
float g = 3.156e+7;
int age;
printf("请输入你的年龄:\n");
scanf("%d", &age);
printf("哇噻,您知道吗你来这个世上已有%f秒。\n", (float)age * g);
return 0;
}
6.一个水分子的质量约为3.0*10^-23g,1夸脱水大约有950g.编写一个程序,要求输入淡水的夸脱数,然后显示这么多水中包含多少水分子。
#include <stdio.h>
int main(void)
{
float quality = 3.0e-23;
float g = 950;
float quart;
printf("请输入水的容量以夸脱为单位:\n");
scanf("%f", &quart);
printf("%f 夸脱的水中约有 %e 个水分子。\n", quart, quart*g / quality);
return 0;
}
7.1英寸等于2.54cm。编写一个程序 ,要求输入您的身高(以英寸为单位),然后显示该身高值等于多少厘米。如果您愿意,也可以要求以厘米为单位输入身高,然后以英寸为单位进行显示。
#include <stdio.h>
int main(void)
{
float height_c;
float height_e;
float g = 2.54;
printf("请输入你的身高,以厘米为单位:\n");
scanf("%f", &height_c);
height_e = height_c / g;
printf("你的身高转换为英寸为:%f。\n", height_e);
printf("请输入你的身高,以英寸为单位:\n");
scanf("%f", &height_e);
height_c = height_e * g;
printf("你的身高转换为厘米为:%f。\n", height_c);
return 0;
}
转载于:https://blog.51cto.com/xiongyi85/1652474