C语言试题解析与复习要点

需积分: 10 19 下载量 64 浏览量 更新于2024-09-09 18 收藏 65KB DOC 举报
"C语言试题05" 这是一份关于C语言的选择题试题,适用于复习和自我测试,尤其适合准备专升本考试的学生。试题涵盖了C语言的基础知识,包括标识符的合法性、表达式语法、字符常量、逻辑值表示、变量初始化、位运算、条件语句、输入输出格式、函数调用及返回值、字符串处理、数组和指针操作等核心概念。 1. C语言中的合法标识符可以是字母、数字和下划线的组合,但不能以数字开头,不能包含特殊字符或空格。选项A的`b-b`和C的`<fr>`均不合法,B的`float`是一个保留字,只有D的`_isw`是合法的。 2. 在C语言中,表达式`a*b/c`是合法的浮点数计算,A正确;B的`3.14%2`中 `%` 是整数取模运算符,不适用于浮点数,不合法;C的`2,b`不是一个完整的表达式,D的`a/b/c`是合法的连续除法。 3. 字符常量必须用单引号括起,且不能包含转义序列。选项A的`'n'`是合法的,B的`'1'`也是合法的,C的`"a"`是字符串常量,不是字符常量,D的`'101'`同样不是合法的字符常量,因为它是三个字符。 4. C语言中,逻辑值“真”通常用非零数值表示,因此A的`1`、B的`非0的数`和D的`大于0的数`都表示“真”,而C的`非1的数`不一定是“真”。 5. `float x, y = 3.14;`是错误的,因为逗号运算符在变量定义中表示定义多个变量,但它们的初始值不能通过逗号分隔。正确的写法是分别定义并赋值,如C选项所示:`float x = 3.14, y = 3.14;`。 6. 位运算符`&`表示按位与,`1 & 3`的结果是1,B正确;`1 << 1`是左移一位,结果是2,C错误;`a == 2`是一个条件表达式,如果`a`不等于2,结果为0,否则为1,D错误。 7. 三目运算符`? :`的用法是`条件 ? 表达式1 : 表达式2`。与`if-else`语句等价的写法是A选项:`k = (a > b) ? 0 : 1;`。 8. `scanf`函数的正确格式是要求用户输入匹配的格式,因此应该输入`10,10`,B选项正确。 9. 函数`fun`的参数`c`没有声明为`int`类型,因此传递`c`给`printf`时可能会有类型不匹配的问题,导致结果不确定,D正确。 10. 若未明确指定函数返回类型,默认为`int`,所以A正确。 11. `strlen`函数计算字符串长度,不包括结束的空字符,所以`strlen("hello")`的值是5,B正确。 12. 选项D的`a++`是非法的,因为数组名不能被自增。 13. `&*p`等同于`p`,因为`*p`解引用指针得到变量`x`,再取地址就是指针`p`本身。 14. 使指针`p`为空指针的方法是`p = NULL`,D正确。 15. 结构体定义后,不能直接使用`i`,需要通过结构体变量来访问,所以该表达式不符合C语言语法。 这些题目全面覆盖了C语言的基本概念和操作,通过解答这些题目,考生可以检验自己的C语言基础知识掌握情况。