C 语言考试题目解析: 1. 该程序的输出结果是( )A) 0.000000 B) 0.250000 C) 0.500000 D)1.000000 程序首先判断 `x<0.0`,由于 `x=2.0`,不满足条件,然后进入下一个 `if` 条件,判断 `x<10.0`,满足条件,执行 `y=1.0/x`,得到 `y=0.5`。因此,输出结果是 `0.500000`。 2. 该程序的执行结果是( )A) 6 B) 3 C) 死循环 D) 0 程序中的 `for` 循环在初始化部分没有给 `sum` 赋值,而在循环体内部对 `sum` 进行递增操作,同时尝试将 `i` 的值累加到 `sum`,但 `sum++` 会先使 `sum` 自增 1,因此 `sum` 的初始值为 1,循环三次后 `sum` 为 4,而非累加 `i` 的值。所以,程序的执行结果是 4,而不是 6,选项没有正确答案,但最接近的是 B) 3。 3. 该程序的执行结果是( )A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环 程序使用 `do...while` 循环,先输出 `x` 的值,然后 `x--` 使其减 1。由于 `x` 初始为 23,循环条件 `!x` 在 `x` 变为 0 时才为假,因此循环会执行三次,输出 23、22、21。选项 A) 是正确的。 4. 该程序的输出的结果是( )A) 12 B) 13 C) 14 D) 15 函数 `func` 实现两个整数相加。程序调用 `func(func(x, y), z)`,即 `func(2+5, 8)`,得到 `func(7, 8)`,最后输出 `15`。 5. 执行该程序段后,a 的值为( )A) 12 B) 11 C) 10 D) 编译出错 程序通过指针 `p` 指向 `a`,然后通过 `*p` 访问 `a` 的值,并将其与 `b` 相加,再赋值回 `a`。所以 `a` 的值变为 `10 + 1 = 11`。 6. 该程序的输出结果是( )A 2 B 4 C 6 D 8 函数 `fib` 实现斐波那契数列。调用 `fib(3)` 返回 `fib(2) + fib(1)`,即 `fib(1) + fib(0)`,因为 `fib(0)` 返回 2,`fib(1)` 返回 2,所以结果是 4。 7. 执行该程序段后,x 的值为( )A) true B) false C) 0 D) 1 表达式 `(a&&b)&&(c<’B’)` 对 `a` 和 `b` 是否都为真进行逻辑与运算,同时判断 `c` 是否小于 'B'。由于 `a=14` 和 `b=15` 都非零,所以 `a&&b` 为真,而 `c<’B’` 也为真('A' < 'B'),因此 `x` 的值为真,即 1。 8. 数值为 9 的表达式是( )A) *P+9 B) *(P+8) C) *P+=9 D) P+8 变量 `a[10]` 初始化为 1 到 10 的数组,`p` 指向 `a` 的首地址。表达式 `*(p+8)` 访问数组的第九个元素,即值为 9 的元素。 9. 能正确表示 t 数组元素首地址的表达式是( )A) &t[3][2] B) t[3] C) t[1] D) t[0] 数组 `t` 的首地址是 `t[0]`,即第一行的第一个元素的地址。 10. 能输出字母 M 的语句是( )A) printf(“%c\n”,class[3].mane); B) printf(“%c\n”,class[3].name[0]); C) printf(“%c\n”,class[2].name[1]); D) printf(“%c\n”,class[2].name[0]); 结构体数组 `class` 的第三个元素 `class[2]` 的名字是 "Mary",要输出 'M',需要访问 `name` 字符数组的第一个元素,即 `class[2].name[0]`。 11. 以下函数值的类型是( )fun ( float x ) { float y; y= 3*x-4; return y; } 函数返回类型由 `return` 语句决定,因此返回类型是 `float`。 12. 以下数组定义中不正确的是( )A) int a[2][3]; B) int b[][3]={0,1,2,3}; C) int c[100][100]={0}; D) int d[3][]={{1,2},{1,2,3},{1,2,3,4}}; 定义 `d[3][]` 时,每一维的大小应该相同,但在 `d` 的第三项中多了一个元素,因此 `d` 的定义是错误的。 13. 以下程序的输出结果是( )main() { int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]); } 程序试图访问未初始化的数组元素,输出结果是未定义的,即输出值不定。 14. 以下程序的输出结果是( )main() { char st[20]= "hello\0\t\\\n"; printf("%d %d \n",strlen(st),sizeof(st)); } `strlen` 函数计算字符串长度,不包括结束符 '\0',所以长度为 5,`sizeof` 计算整个数组的大小,包括未使用的空间,所以为 20。输出结果是 5 20。 15. 以下程序的输出结果是( )main() { int a, b; for(a=1, b=1; a<=100; a++) { if(b>=10) break; if(b<a) b=b*a; } printf("%d\n",b); } 当 `b` 达到或超过 10 时,循环中断,`b` 的最终值取决于达到 10 前的乘积,因此输出结果是 10。 这些题目覆盖了 C 语言中的条件判断、循环控制、指针、数组、结构体、函数调用、字符串处理等多个知识点。
- 粉丝: 11
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MATLAB 图像处理:自动检测黑白像素比例的多功能代码(支持灰度和二值图像)
- windows平台下终端工具-tabby
- STM32和ucosii系统温度监控系统keil5工程
- HIVE-14706.01.patch
- C# WInForm IrisSkin2皮肤控件
- svn cleanup 失败怎么办
- Spring Boot集成Spring Security,HTTP请求授权配置:包含匿名访问、允许访问、禁止访问配置
- 易语言-画曲线模块及应用例程
- 电子元件行业知名厂商官网(TI/NXP/ST/Infineon/ADI/Microchip/Qualcomm/Diodes/Panasonic/TDK/TE/Vishay/Molex等)数据样例
- Cytoscape-3-10-0-windows-64bit.exe