C语言测试试题与解析
需积分: 10 170 浏览量
更新于2024-07-30
收藏 107KB DOC 举报
"这是一份关于C语言的测试试题及答案,旨在帮助学习者巩固C语言的基础知识,包括程序结构、逻辑运算、字符串处理、数组、指针、函数调用以及循环控制等核心概念。"
1. C语言程序的执行起点: 一个C语言程序的执行总是从主函数`main()`开始。
2. 逻辑表达式求值: 表达式`x||y+z&&y-z`中,`||`操作符具有短路特性,如果`x`非零(即为真),整个表达式的值就是真,因此不考虑后面的`y+z&&y-z`。所以,如果`x=2`,则表达式值为真(1)。
3. 字符串结束标志: 在C语言中,字符串是以字符`\0`作为结束标志的。
4. 判断小写字母的表达式: 能正确表示“当ch为小写字母时为真,否则为假”的C语言表达式是`'a'<=ch&&ch<='z'`。
5. while与do-while循环的区别: do-while循环的循环体至少无条件执行一次,而while循环在执行前先检查条件,如果条件不满足则不执行循环体。
6. 字符串复制: 将`s1`的值复制到`s2`中,正确的C语言语句是`s2 = strcpy(s2, s1)`。注意,这里假设`s2`有足够的空间容纳`s1`的内容。
7. 数组作为函数参数: 当用数组名作为函数调用的实参时,传递给形参的是数组的首地址,即实际传递的是指针。
8. 指针与字符串: 语句`char s[]="world", *p;`定义了一个字符串`s`和一个指针`p`,执行`p=s`后,`*(p+5)`的值是`\0`,因为`p+5`指向了字符串末尾的结束符。
9. 函数指针声明: 语句`int(*p)()`声明了一个函数指针`p`,它指向一个返回整型值且没有参数的函数。
10. 全局变量的作用范围: 全局变量在整个源文件中都是可见的,其作用范围从定义位置开始直到文件结束。
二、程序分析:
1. 这段代码使用while循环和if-else结构,当i为偶数时,不打印并跳过下一次循环(continue语句)。因此,程序将打印1到10之间所有的奇数,结果为:`1 3 5 7 9`。
2. 此程序使用嵌套循环打印星号图案,形成一个倒置的金字塔。结果是:
```
*
***
*****
*******
```
3. 程序计算3x3矩阵对角线元素之和,矩阵为:
```
1 1 1
0 1 2
0 0 3
```
对角线元素和为1+1+3,程序将打印`5`。
4. 该程序有两个函数`main()`和`num()`,`num()`内的变量与`main()`内的变量同名但不共享值。在`num()`内部,`x`和`y`的值分别为15和5,但不会影响`main()`中的`x`和`y`。因此,`main()`的输出为`5,11`。
5. 这个程序首先定义了一个数组`a`,然后定义了一个指针`p`指向数组的第一个元素。第一次`printf`打印数组第一个元素`1`和第三个元素`5`,第二次`printf`打印数组第四个元素`9`和原指针`p`所指元素`1`,但`p`之后自增,变为指向数组第二个元素`3`。因此,输出为:
```
1,5
9,3
```
2013-05-14 上传
点击了解资源详情
227 浏览量
2013-04-01 上传
110 浏览量

huxianfa
- 粉丝: 0
最新资源
- nitroproof:伪造硝基服务器防弹命令与操作指南
- Flash 8 中文教程手册:全面入门指南
- USB Redirector 6.0 汉化版:实现USB设备远程共享
- C#实现:在Windows窗体下探索生命游戏的奥秘
- 7805与7905封装的Tob263:深入解析与应用
- STM32旋转倒立摆控制源码解析
- z-tree增删改查实现与右键菜单仿IMO办公软件教程
- 深入解读EXFAT文件系统及其存储原理
- Extjs4中文API文档发布:汉化80%快速易用
- 摇不停DJ舞曲网:官方免费高音质在线播放器
- TortoiseSVN 1.8.8.25755版本发布:免费开源的版本控制客户端
- Python网络编程:掌握socket编程的要点
- MATLAB如何高效读取txt文件方法详解
- Unigui按钮特效实现与Delphi应用技巧
- Android界面优化:深入应用XML Shape技术
- 霹雳游侠制作的绿色网络电台软件体验