1. 在Dev Cpp 平台输出 “Hello World!” 语句。
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
2. 在Dev Cpp平台上新建一个项目,仿照截图,输入程序代码。观察其输出。
#include <stdio.h>
int main()
{
int a = 1;
float b = 2.5;
char c = 'A';
printf("a = %d\n", a); /* 按整型格式输出变量a的值 */
printf("b = %f\n", b); /* 按实型格式输出变量b的值 */
printf("c = %c\n", c); /* 按字符型格式输出变量c的值 */
printf("End of program\n"); /* 输出一行字符串 */
}
3 在Dev Cpp平台上新建一个项目,仿照截图,输入程序代码。观察其输出。
#include <stdio.h>
main()
{
printf("Data type Number of bytes\n");
printf("----------------------------------------------------\n");
printf("char %d\n", sizeof(char)); /* 计算并显示字符型所占内存空间大小 */
printf("int %d\n", sizeof(int)); /* 计算并显示整型所占内存空间大小 */
printf("short int %d\n", sizeof(short int)); /* 计算并显示短整型所占内存空间大小 */
printf("long int %d\n", sizeof(long int)); /* 计算并显示长整型所占内存空间大小 */
printf("float %d\n", sizeof(float)); /* 计算并显示单精度浮点型所占内存空间大小 */
printf("double %d\n", sizeof(double)); /* 计算并显示双精度浮点型所占内存空间大小 */
}
4. 输入书本P48「温度转换」的代码,并观察其输出。
#include <stdio.h>
int main()
{
double temC, temF; /*存储摄氏温度和华氏温度*/
temF = 100; /*为变量temF赋值*/
temC = 5 * (temF - 32) / 9; /*将表达式的运算结果赋值给temC*/
printf("华氏温度%5.2f 对应的摄氏温度是%5.2f\n", temF, temC); /*输出对应温度*/
return 0;
}
5. 输入书本P52「三角形周长」的代码,并观察其输出。
#include <stdio.h>
int main()
{
int a = 6, b = 5, c = 5; /*给变量a、b和c赋值*/
int triC; /*定义变量triC*/
triC = a + b + c; /*将周长计算结果赋值给triC*/
printf("三角形的周长是:%d\n", triC); /*输出周长triC*/
return 0;
}
6. 溢出问题
short short_value = 32767; // short占2个字节,最大值32767;
short_value += 1;
printf(“%d”, short_value);
上述结果输出值为:short_value = -32768, 请分析这个值是怎么得到的?
答:由于short占2个字节,范围为-32768~32767,当short_value += 1时,会数值溢出,所以输出-32768。
7. 求值:
(a)
-30 * 3 + 21 / 6
= -90 + 3
= -87
(b)
-30 + 3 * 21 / 6
= -30 + 63 / 6
= -30 + 10
= -20
(c)
30 / 3 * 21 % 6
= 10* 21 % 6
= 210 % 6
= 0
(d)
-30 / 3 * 21 % 4
= -10 * 21 % 4
= -210 % 4
= -2
8. 假设i,j, k 都是整数,说明表达式 i != j < k的含义。
答:!= 表示等于,< 表示小于,< 的优先级比 != 高,那么先判断 j 是否小于 k,如果 j 小于 k,则结果为真,否则为假。然后再判断 i 是否不等于 j < k 的结果,如果 i 不等于 j<k,则结果为真,否则为假。
9. 赋值完毕,i, d 的值分别为多少?
int i ; double d;
(a) d = i = 3.5;
(b) i = d = 3.5;
(a)先将 3.5 赋值给 i ,由于 i 为整型,所以此时 i 为 3 ,再把 3 赋值给 d ,由于 d 是双精度实型,所以此时 d 为 3.0 。即 i = 3 , d = 3.0。
(b)先将 3.5 赋值给 d,因为d 为双精度实型,所以此时 d = 3.5 ,再把 3.5 赋给 i ,因为 i 为整型,所以此时 i = 3 。即 i = 3 , d = 3.5。
11. 假设有如下定义:
char cval;
int ival;
unsigned int ui;
float fval;
double dval;
请回答下列表达式是否又发生类型转换。请将有发生的情况指出来。
- cval = ‘a’ + 3;
- fval = ui – ival * 1.0;
- dval = ui * fval;
- cval = ival + fval + dval;
答:
1.'a'转换为 int ,‘a’ 与 3 相加,结果转换为 char
2.ival 转换为 double ,ui 转换为 double,结果转换为 float
3.ui 转换为 float ,结果转换为 double
4.ival 转换为 float,与fval相加后的结果转换为,double,最后的结果转换为char