lizhuolin
1. 在Dev Cpp 平台输出 “Hello World!” 语句。(请用CSDN的Markdown语法提交代码+运行结果的截图,后面的题目同理,不再重复)
2. 在Dev Cpp平台上新建一个项目,仿照截图,输入程序代码。观察其输出。
3 在Dev Cpp平台上新建一个项目,仿照截图,输入程序代码。观察其输出。(请用CSDN的Markdown语法提交代码+运行结果的截图)
4. 输入书本P48「温度转换」的代码,并观察其输出。
5. 输入书本P52「三角形周长」的代码,并观察其输出。
6. 溢出问题:
short short_value = 32767; // short占2个字节,最大值32767; short_value += 1; printf(“%d”, short_value); |
上述结果输出值为:short_value = -32768, 请分析这个值是怎么得到的?
在这段代码中,short_value的初始值为32767,这是short类型能够表示的最大值。然后对short_value进行加1操作,这将导致short_value的值溢出,即它的值超出了short类型的最大值。当short_value的值超过了最大值,它将回滚到最小值,即-32768。因此,最终输出的结果为short_value = -32768。
7. 求值:
(a)-30 * 3 + 21 / 6
(b) -30 + 3 * 21 / 6
(c) 30 / 3 * 21 % 6
(d) -30 / 3 * 21 % 4
a= -87,b= -20,c= 0,d= -2
8. 假设i,j, k 都是整数,说明表达式 i != j < k的含义。
首先,小于运算符(<)的优先级高于不等于运算符(!=),因此 j < k 会首先被计算。如果 j 小于 k,则 j < k 的结果为真(即1),否则为假(即0)。
所以,比较 j 和 k 的大小,如果 j 小于 k,则 i 不等于 1,即 i 的值为 0 或 1,取决于 i 的初始值;如果 j 不小于 k,则 i 不等于 0,即 i 的值为 1。
9. 赋值完毕,i, d 的值分别为多少?
int i ; double d; (a) d = i = 3.5; i为3 d为3.0 (b) i = d = 3.5; i为3 d为3.5 |
10. 请查询资料了解「条件运算符」的语法、例子等。
条件运算符(Conditional Operator),也称为三目运算符(Ternary Operator),是C语言中的一种运算符,其语法形式为:
```
表达式1 ? 表达式2 : 表达式3
```
其中,表达式1是一个条件表达式,如果其值为真,则整个表达式的值为表达式2的值,否则为表达式3的值。
下面是一个使用条件运算符的例子:
#include <stdio.h>
int main()
{
int a = 10, b = 20, max;
max = (a > b) ? a : b;
printf("max = %d\n", max);
return 0;
}
```
在上面的示例中,我们使用条件运算符来比较两个整数 a 和 b 的大小,并将较大的值赋给变量 max。如果 a 大于 b,则表达式 (a > b) 的值为真(即非零值),则整个表达式的值为 a,否则为 b。在这个例子中,由于 b 的值大于 a,因此整个表达式的值为 b,将 b 的值赋给了变量 max,最终输出 max 的值为 20。
条件运算符通常用于简化if语句的写法,例如:
if (x > 0) {
y = x;
} else {
y = -x;
}
```
可以简化为:
y = (x > 0) ? x : -x;
```
这样可以使代码更加简洁和易读。需要注意的是,条件运算符的优先级较低,因此在使用时需要加上括号来明确运算的顺序。
11. 假设有如下定义:
char cval; int ival; unsigned int ui; float fval; double dval; |
请回答下列表达式是否又发生类型转换。请将有发生的情况指出来。下列表达式是否又发生类型转换。请将有发生的情况指
|
cval = ‘a’ + 3; 会发生类型转换。表达式右侧的 ‘a’ 是一个字符常量,它的ASCII码值为97,加上整数3后,会得到一个整数100,然后将这个整数转换为字符类型,赋值给变量 cval。
fval = ui - ival * 1.0; 会发生类型转换。表达式右侧的 ival * 1.0 会先将整数 ival 转换为浮点数,然后进行乘法运算,得到一个浮点数结果,再将无符号整数 ui 转换为浮点数,最终进行减法运算,将结果赋值给变量 fval。
dval = ui * fval; 会发生类型转换。表达式右侧的 ui 会先被转换为浮点数,然后与浮点数变量 fval 相乘,得到一个浮点数结果,最终将结果赋值给变量 dval。
cval = ival + fval + dval; 会发生类型转换。表达式右侧的三个操作数都是不同类型的数值,因此会发生隐式类型转换。首先将整数 ival 转换为浮点数,然后将浮点数变量 fval 和 dval 相加,得到一个浮点数结果,最后将结果转换为字符类型,赋值给变量 cval。需要注意的是,由于浮点数转换为字符类型时会发生截断,因此最终结果可能不是预期的字符。