C语言基础复习:160道精选选择题涵盖数据类型与运算

0 下载量 148 浏览量 更新于2024-06-28 收藏 240KB DOC 举报
该文档是一份针对C语言的复习题,共计160题,分为两个部分:基本概念题和程序阅读题。这部分内容主要集中在C语言的基础理论和编程实践上。 1. 计算机程序执行阶段: 计算机可以直接执行的程序是目标程序(选项B),即经过编译器将高级语言源程序(如C语言)转换成机器语言后的可执行文件。源程序(A)需要经过编译和链接等步骤才能变为可执行形式;汇编程序(C)是低级语言,需要进一步转换;而C语言源程序(D)未经编译不能直接运行。 2. C语言程序处理流程: - C语言源程序(A)需要通过编译器编译成目标文件(obj)。 - 后缀为.obj的目标文件经过连接程序(C正确)生成可执行文件(exe)。 - obj和exe文件不是可以直接运行的,需要操作系统支持。 3. C语言赋值语句: A选项中的赋值语句语法错误,应为`x = (y == 5);`。B和C选项使用了不合适的运算符,C选项还涉及到变量未初始化;D选项是正确的赋值语句。 4. 变量赋值和运算符: C选项中的十六进制赋值`x3 = 0x12`是合法的。B选项中`1+2=x2`是不合法的,因为不能在赋值语句左侧使用表达式。 5. 浮点数运算和字符ASCII码: 表达式`x=1, y=x+3/2`的结果是2.5(C选项),因为3/2先算得1.5,加1得到2,但因为x被定义为double类型,结果为2.5。字符'A'的ASCII码值为65,'D'的ASCII码值比'A'大2,所以`c2-2`的结果是66,输出为65, 66(B选项)。 6. 字符数组和输出格式: `main()`中的`printf`会打印字符'a'(小写字母m,B选项),因为字符数组`a1`和`a2`的值被连续打印,且逗号用于分隔,不会作为格式说明符。 7. 逻辑运算符和算术运算: 表达式`!(x+y)+z-1 && y+z/2`首先计算逻辑非,然后进行算术运算,由于`x+y`为7,`y+z/2`为6,最终结果是0(B选项)。 8. 变量操作和语句功能: `x+=y`、`y=x-y`、`x-=y`这组操作等价于`x = x + y; y = x - y; x = x - y;`,其功能是交换x和y的值(A选项)。 9. 运算符优先级和非法表达式: A选项`0<=x<100`是有效的比较表达式;B选项`j==0`是一个简单的条件判断,也可以视为表达式;C选项`(char)(65+3)`将整数转换为字符,合法;D选项`x+1=x+1`没有实际意义,但语法上是合法的。 10. 综合题目的全面性: 该文档涵盖了C语言的多个核心知识点,包括程序执行流程、数据类型、运算符、表达式、赋值语句、字符处理、逻辑运算、算术运算以及常见的编程错误分析等,适合用来复习和巩固C语言基础。通过解答这些题目,学习者可以检验自己的理解和应用能力。