版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
为使用《C Primer Plus》学习C的初学者准备的。
- 通过测试(编写有问题的程序)观察系统如何处理整数上溢、浮点数上溢和浮点数下溢的情况。
#include <stdio.h>
int main(int argc, char const **argv) {
/*32位的有符号整型的上界是2^32-1(4294967295) 再加一就溢出了(想要深入了解可以看看计算机组成原理)*/
int a = 4294967295;
a = a + 1;
printf("%d\n", a);
/*10e100次方上溢 0.00000000012下溢*/
float b = 10e100;
printf("%f", b);
b = 0.00000000012;
printf(" %f", b);
return 0;
}
- 编写一个程序,要求提示输入ASCII码,然后打印输入的字符。
#include <stdio.h>
int main(int argc, char const **argv) {
char c;
printf("Input a number:");
scanf("%d", &c);
//%c表示字符格式输出
printf("%d in ASCII is %c.", c, c);
return 0;
}
- 编写一个程序,发出一声警报。然后打印下面的文本。
#include <stdio.h>
int main(int argc, char const **argv) {
/*转义字符\a代表警报*/
printf("\a");
printf("Started by the sudden sound, Sally shouted,\n");
/*想要输出"得使用转义字符*/
printf("\"By the Great Pumpkin, what was that!\"");
return 0;
}
- 编写一个程序,读取一个浮点数,先打印成小数点形式,再打印成指数形式。然后,如果系统支持,再打印成p计数法(十六进制计数法)。按以下格式输出(实际显示指数位数可能因系统而异)。
#include <stdio.h>
int main(int argc, char const **argv) {
float f;
printf("Enter a float-point value:");
scanf("%f", &f);
printf("fixed-point notation:%f\n", f);
printf("exponential notation:%e\n", f);
printf("p notation:%a\n", f);
return 0;
}
- 一年大约有3.156*107秒。编写一个程序,提示用户输出年龄,然后输出对应的秒数。
#include <stdio.h>
int main(int argc, char const **argv) {
/*用float可能会溢出(我没多想,你可以试试)*/
double d = 3.165e7;
int age;
printf("Input your age:");
scanf("%d", &age);
/*整型和浮点型进行运算会自动转成浮点型*/
printf("The result is %.0lfs.", age*d);
return 0;
}
- 1个水分子的质量约为3.0*10-23克。1夸脱水大约是950克。编写一个程序,提示用户输入水的夸脱数,并显示水分子的数量。
#include <stdio.h>
int main(int argc, char const **argv) {
double d = 3.0e-23;
double a;
printf("输入水的夸脱数:");
scanf("%lf", &a);
printf("%lf夸脱水中水分子的数量是:%.0lf", a, (a*950)/d);
return 0;
}
- 1英寸相当于2.54厘米。编写一个程序,提示用户输入身高(英寸),然后以厘米为单位显示身高。
#include <stdio.h>
int main(int argc, char const **argv) {
float f;
printf("输入身高(英寸):");
scanf("%f", &f);
printf("你的身高是%.2f(cm)", f*2.54);
return 0;
}
- 在美国的体积测量系统中,1品脱等于2杯,一杯等于8盎司,1盎司等于2大汤勺,1大汤勺等于3茶勺。编写一个程序,提示用户输入杯数,并以品脱、盎司、汤勺、茶勺显示等价容量。
#include <stdio.h>
int main(int argc, char const **argv) {
float f;
printf("输入杯数:");
scanf("%f", &f);
float pint = f / 2;//品脱
float ounce = f * 8;//盎司
float spoon = ounce * 2;//汤勺
float s = spoon * 3;//药勺 不知道英文是什么 就这样命名吧
printf("品脱:%.1f 盎司:%.1f 汤勺:%.1f 药勺:%.1f", pint, ounce, spoon, s);
return 0;
}