清华大学C语言练习题
### 清华大学C语言练习题知识点解析 #### C语言概述 **1. C程序的执行起点** - **选项分析**: - A)正确。C程序总是从`main`函数开始执行,并在`main`函数中结束。 - B)错误。C程序的执行并不是从第一个函数开始。 - C)错误。虽然执行始于`main`函数,但并不意味着它会一直执行到程序文件的最后一个函数。 - D)错误。C程序的执行是从`main`函数开始,并非从第一个函数。 **结论**:正确答案是A。 **2. 关于C程序结构的叙述** - **选项分析**: - A)错误。`main`函数不必位于程序的最前面。 - B)错误。C语言允许一行写多条语句,只要用分号分隔。 - C)正确。C语言没有内置的输入输出指令,如输入输出通常通过标准库函数实现,例如`scanf`和`printf`。 - D)错误。编译器不会检查注释中的拼写错误。 **结论**:正确答案是C。 **3. 错误的叙述** - **选项分析**: - A)正确。一个C源程序可以由一个或多个函数组成。 - B)正确。每个C源程序都必须至少包含一个`main`函数。 - C)正确。C程序的基本组成单位是函数。 - D)错误。注释可以在任何位置出现,不一定要放在语句后面。 **结论**:正确答案是D。 **4. `main`函数的位置** - **选项分析**: - A)错误。`main`函数不必位于程序的最开始。 - B)错误。`main`函数的位置不受系统调用的库函数限制。 - C)正确。`main`函数的位置在C语言中是灵活的。 - D)错误。`main`函数不必位于程序的最后。 **结论**:正确答案是C。 **5. C程序的构成** - **选项分析**: - A)错误。C程序是由函数组成的,不一定有主程序和子程序的概念。 - B)正确。C程序由一个或多个函数组成。 - C)错误。“过程”是其他编程语言的概念,C语言中使用“函数”。 - D)错误。C程序是由函数而非子程序组成。 **结论**:正确答案是B。 #### 数据类型、运算符与表达式 **6. 非C语言关键字的选项** - **选项分析**: - A)正确。`define`是预处理指令,`IF`和`type`不是关键字。 - B)错误。`getc`、`char`、`printf`中`char`是关键字。 - C)错误。`include`、`scanf`、`case`中`case`是关键字。 - D)错误。`while`、`go`、`pow`中`while`是关键字。 **结论**:正确答案是A。 **7. 均为C语言关键字的选项** - **选项分析**: - A)错误。`auto`是关键字,但`enum`和`include`不是。 - B)正确。`switch`、`typedef`、`continue`都是关键字。 - C)错误。`signed`是关键字,但`union`和`scanf`不是。 - D)错误。`if`和`struct`是关键字,但`type`不是。 **结论**:正确答案是B。 **8. 不合法的用户标识符** - **选项分析**: - A)错误。`AP_0`和`do`中`do`是关键字,不是合法标识符。 - B)错误。`float`是关键字,不是合法标识符。 - C)正确。`b-a`、`goto`、`int`中`b-a`含有非法字符,`goto`和`int`是关键字。 - D)错误。所有选项都是合法标识符。 **结论**:正确答案是C。 **9. 合法标识符的首字符** - **选项分析**: - A)错误。首字符可以是字母或下划线,但也可以是数字。 - B)错误。首字符可以是字母或下划线。 - C)正确。首字符必须是字母或下划线。 - D)错误。首字符不能是数字。 **结论**:正确答案是C。 **10. 合法整型常量** - **选项分析**: - A)正确。`160`、`-0xffff`、`011`都是合法的整型常量。 - B)错误。`-0xcdf`、`01a`、`0xe`中`01a`不是合法的八进制数。 - C)错误。`-019`不是合法的八进制数,`86,012`和`0668`不是合法的整型常量。 - D)错误。`-0x48a`是合法的十六进制数,但`2e5`和`0x`不是合法的整型常量。 **结论**:正确答案是A。 **11. 不合法整型常量** - **选项分析**: - A)错误。`--0f1`、`-0xffff`、`0011`中`--0f1`不是合法的整型常量。 - B)正确。`-0Xcdf`、`017`、`12,456`中`-0Xcdf`不是合法的十六进制数,`12,456`不是合法的整型常量。 - C)错误。`-018`不是合法的八进制数,但`999`和`5e2`不是整型常量。 - D)错误。`-0x48eg`不是合法的十六进制数,`-068`是合法的八进制数,`03f`是合法的十六进制数。 **结论**:正确答案是B。 **12. 不合法转义字符** - **选项分析**: - A)错误。`\"`和`\\`是合法的转义字符,`\xf`不是。 - B)正确。`\1011`不是合法的八进制数表示,`\`和`\a`是合法的转义字符。 - C)错误。`\011`是合法的八进制数表示,`\f`和`\}`不是合法的转义字符。 - D)错误。`\abc`、`\101`和`x1f`都不是合法的转义字符。 **结论**:正确答案是B。 **13. 合法转义字符** - **选项分析**: - A)正确。`\`、`\\`和`\n`都是合法的转义字符。 - B)错误。`\'`是合法的转义字符,`\017`和`\"`也是合法的转义字符。 - C)错误。`\018`不是合法的八进制数表示,`\f`是合法的转义字符。 - D)错误。`\\0`不是合法的转义字符,`\101`是合法的八进制数表示,`x1f`不是合法的转义字符。 **结论**:正确答案是A。 **14. 字符常量** - **选项分析**: - A)错误。`"c"`是字符串而不是字符常量。 - B)错误。`"\"`不是合法的字符常量。 - C)正确。`'W'`是字符常量。 - D)错误。空字符是合法的字符常量,但通常写作`'\0'`。 **结论**:正确答案是C。 **15. 八进制数或十六进制数** - **选项分析**: - A)错误。`-100`是十进制数,`x8f`是非法的十六进制数表示,`-011`是合法的八进制数。 - B)错误。`0abc`是非法的十六进制数表示,`-017`是合法的八进制数,`0xc`是合法的十六进制数。 - C)正确。`0010`是合法的八进制数,`-0x11`是合法的十六进制数,`0xf1`也是合法的十六进制数。 - D)错误。`0a12`是非法的八进制数表示,`-0x123`是合法的十六进制数,`-0xa`也是合法的十六进制数。 **结论**:正确答案是C。 **16. int、char和short类型所占字节数** - **选项分析**: - A)错误。这些类型的字节数由具体实现决定,不是用户自定义的。 - B)错误。在某些实现中,`int`、`char`和`short`的大小可能不同。 - C)错误。这些类型的字节数是确定的,由具体实现决定。 - D)正确。`int`、`char`和`short`类型在内存中所占用的字节数由具体的实现(即使用的计算机系统)决定。 **结论**:正确答案是D。 **17. 表达式的计算** - **选项分析**: - A)正确。根据运算符优先级和结合性规则,表达式`a/b/c*e*3`的计算结果取决于具体的值。 - B)正确。表达式`3*a*e/b/c`同样取决于具体的值。 - C)错误。表达式`3*a*e/b*c`由于乘除运算符的结合性,计算结果不同于A和B。 - D)正确。表达式`a*e/c/b*3`同样取决于具体的值。 **结论**:正确答案是C。 **18. 表达式的值** - **选项分析**: - A)错误。表达式`16-13%10`的结果是3。 - B)正确。表达式`2+3/2`的结果是2(整数除法)。 - C)错误。表达式`14/3-2`的结果是2。 - D)正确。表达式`(2+6)/(12-9)`的结果是1。 **结论**:正确答案是B和D。 **19. 使值为3的表达式** - **选项分析**: - A)错误。`x%=(k%=5)`不会得到3。 - B)错误。`x%=(k-k%5)`也不会得到3。 - C)正确。`x%=k-k%5`能够使得`x`的值变为3。 - D)错误。`(x%=k)-(k%5)`不会得到3。 **结论**:正确答案是C。 **20. 执行表达式后的值** - **选项分析**: - A)错误。执行`x=(i=4,j=16,k=32)`后,`x`的值将是32。 - B)错误。同上,`x`的值是32。 - C)正确。执行`x=(i=4,j=16,k=32)`后,`x`的值是32。 - D)错误。同上,`x`的值是32。 **结论**:正确答案是C。 **21. 逗号运算符** - **选项分析**: - A)正确。在C语言中,逗号运算符的优先级是最低的。 - B)正确。`APH`和`aph`是两个不同的变量。 - C)正确。赋值表达式执行后,目标变量的值被更新,源变量的值不变。 - D)错误。当从键盘输入数据时,可以根据变量的类型输入相应的数据。 **结论**:正确答案是D。 **22. 字符常量** - **选项分析**: - A)正确。`'\'`、`'\\'`和`\n`都是合法的转义字符。 - B)错误。`'\'`不是合法的转义字符,`'\017'`是合法的八进制数表示,`'\"'`是合法的转义字符。 - C)错误。`\018`不是合法的八进制数表示,`\f`是合法的转义字符。 - D)错误。`\\0`不是合法的转义字符,`\101`是合法的八进制数表示,`x1f`不是合法的转义字符。 **结论**:正确答案是A。 **23. sizeof运算符** - **选项分析**: - A)错误。`sizeof(float)`返回`float`类型的大小,不是一个双精度表达式。 - B)正确。`sizeof(float)`是一个整型表达式,返回`float`类型的字节数。 - C)错误。`sizeof`不是函数调用。 - D)错误。`sizeof`是一个运算符,用于获取类型或变量的大小。 **结论**:正确答案是B。 以上是针对给定练习题的知识点解析,涵盖了C语言的基础概念、数据类型、运算符、表达式等方面的内容。通过解答这些问题,可以帮助学生更好地理解C语言的核心概念和技术细节。
剩余38页未读,继续阅读
- qq_316017812015-11-07这个练习题很有挑战性,有助于能力的提升
- 粉丝: 1
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助