C语言的几个判断题,求各位大侠帮助啊!

2024-11-23 04:01:45
推荐回答(5个)
回答(1):

1、两个变量交换数据时常使用一个工作变量; //错误,“工作变量”改为“临时变量”。
2、switch后面圆括号内的表达式的值和case后面的常量表达式的值都必须是整型或数字符型,不允许是浮点型;//正确。
3、循环for( ; ; )的循环条件始终为真;//错误。可以为假的,为假时退出循环。
4、break语句执行时退出本层循环,continue语句结束本次循环。//正确。
5、C语言中,用格式符“%s”输入字符数组时,数组名前不能加&;//正确。
6、函数原型说明中,省略形参变量或者将形参变量写成其它名称不影响程序的正确性。//正确。
7、实参向形参进行数值传递时,数值传递的方向是单向的,即形参变量值的改变不影响实参变量的值;//正确。
8、C语言中,结构的成员可以是一维数组或多维数组。 //正确。

回答(2):

全部正确
1. 工作变量, 临时变量, 没有本质差别吧?
2. c语言没有布尔型
3. 空表达式, 其值为真
4. 在循环中, 正确, 但 break 可以用于 switch
5. 数组名本身就是地址型常量, 当然不能再加 &, & a [ 0 ] 这种情况下, 是 & (a [0]), 是对元素取地址, a[0] 不是数组名, 注意运算符的优先级和结合性
6. 那只是一个对函数名这个"地址型常量"的类型说明, 形参变量名称没有意义
7. 正确, c 的函数调用是传值调用, 不是传地址或者引用; 传地址需要把形参指定为地址型
8. 正确, 结构成员类型不受限制.....

回答(3):

1,正确, 工作变量就是临时变量吧? 比如 a =1; b = 2; 要交换ab,一般声明c,使c=a;a=b;b=c; 当然也有不用的方法。
2,错,可以是布尔型,实际上布尔也可以认为是整形或char的一个变种,但的确不允许浮点型。
3,正确, 就如同if()永远为真
4,正确,语法规定,但break另外可用在switch语句内
5,错,数组名前一般不加&,但看scanf里用的什么形式,如scanf("%s", a);此时不加,但也可以用scanf("%s", &a[0]);所以如果只考虑前一种可以认为是对的,但若考虑后一种则应该可以加&
6,正确,原型说明中编译系统只需知道参数类型,以便为在栈中为参数分配足够空间,无需知道参数名称
7,正确,数值传递方式的规定,为避免函数执行的副作用,若要修改参数本身,一般将指向该参数的指针传入函数
8,正确,结构成员没有特殊限制

回答(4):

我觉得"sun_silang"的回答有点问题。
第一题中:工作变量在题中的意思就是临时变量,所以正确
第二题中:不仅只支持数字字符型,还支持其他类型的字符型。所以错误。
第三题中:正确,那是一个无限循环,除非你在循环体中结束。

回答(5):

全错