C语言期末复习选择题集锦

需积分: 9 0 下载量 25 浏览量 更新于2024-09-08 收藏 54KB DOC 举报
"统计复习题.doc" 这是一份关于C语言的期末复习资料,涵盖了选择题、计算题和实际应用等内容。以下是对题目中涉及的知识点的详细解释: 1. **字符常量**:在C语言中,字符常量由单引号 `' '` 包围,合法的字符常量包括字母、数字、转义序列(如 `\n` 表示换行)。选项B的 `\080` 不是合法的八进制转义序列,因为八进制数字不能以0开头。选项C的 `‘\n’` 是合法的,表示换行。选项D缺少单引号,所以答案可能是C或D,具体要看题目的完整信息。 2. **浮点数运算和精度**:在C语言中,除法运算 `/` 如果两边都是整数,则结果为整数(向下取整),如果至少有一个是浮点数,则结果为浮点数。表达式 `x=2,y=x+5/2` 中,`5/2` 结果为2(整数除法),然后加上2,得到4,所以答案可能是D。 3. **递减操作符**:`--x` 在表达式中先将x的值减1,然后返回减1后的值;`y--` 后缀递减则先返回y的当前值,再将其减1。因此,如果x=10,y=3,`printf("%d,%d\n",--x,y--)` 打印的是9和3,答案是B。 4. **输入格式**:`scanf` 函数用于从标准输入读取数据。给定的输入格式中,`%f` 用于读取浮点数。选项A的10会被解释为整数,不是浮点数,因此不正确。其他选项根据浮点数的输入规则分析是否符合。 5. **do-while循环**:do-while循环至少会执行一次,条件在循环体后检查。`x=3`,循环体内 `x-=2` (x减去2),第一次执行后x变为1,`!x` 为假(0),结束循环。因此输出是1,答案是A。 6. **switch语句**:没有break语句,意味着case的执行会贯穿到下一个case。因此,当x=1时,case1和case2都会被执行,a增加2,b增加1。输出是a=2,b=1,答案是D。 7. **结构体定义**:C语言中,结构体定义需要使用 `struct` 关键字。选项B定义了一个名为s的结构体变量,其中包含一个double类型的a和一个char数组b。选项C和D没有正确地定义结构体变量。选项A缺少结构体变量名。 8. **注释**:在C语言中,多行注释使用 `/* ... */` 括起来,单行注释使用 `//` 开始。 9. **运算符优先级**:`=` 是赋值运算符,优先级最低。`*` 是乘法,`!=` 是不等于,`+` 是加法,它们的优先级都高于 `=`。 10. **表达式求值**:表达式 `(j=3,j++)` 首先执行赋值 `j=3`,然后返回j的值(此时为3),之后j自增变为4。因此表达式的值是3。 11. **ASCII码**:字符 `'a'` 的ASCII码是97,执行 `printf("%d", 'a'+2);` 将输出97+2的结果,即99,对应的字符是 `'c'`。 以上是对复习题中部分知识点的详细解析,涵盖字符常量、算术运算、循环、开关语句、结构体、注释、运算符优先级以及ASCII码等基础概念。理解并掌握这些知识点对于学习C语言至关重要。