杭州电子科技大学C程序设计期末考试试题
需积分: 0 117 浏览量
更新于2024-08-04
收藏 50KB DOCX 举报
"2014春C程序设计期末试卷(A)1"
这篇试卷主要测试学生对C语言编程的基础知识,包括变量命名、注释、运算符优先级、表达式求值、数组、结构体、指针以及文件操作等方面的理解。以下是试卷中涉及的一些关键知识点的详细解释:
1. **变量命名**:C语言中,变量名可以由字母、数字和下划线组成,但不能以数字开头。任何英语单词理论上可以作为变量名,但应避免使用保留字。
2. **注释与执行效率**:在C语言中,注释不会影响编译后的可执行程序的执行效率,因为编译器会忽略注释。
3. **运算符优先级**:`x*=y+8` 等同于 `x = x * (y + 8)`,乘法和除法运算符的优先级高于加法和减法。
4. **表达式求值**:表达式 `2.5+7%3*(int)(2.5+4.7)%2/4` 的值是整数部分,即2,因为 `%` 运算符只对整数有效,所以 `(int)(2.5+4.7)` 结果为 `7`,然后 `7%2` 为 `1`,最后 `1/4` 在C语言中按整数除法计算,结果为 `0`。
5. **函数返回值**:C语言中,函数只能返回一个值,所以 `return(a,b);` 是不合法的。
6. **循环语句**:`for(i=0;i<=n;i++);` 执行结束后,由于分号的存在,`i` 的值会是 `n+1`,因为循环会执行到 `i` 大于 `n`。
7. **字符串内存占用**:定义 `chars[]="hello";`,数组 `s` 占用的字节数是7,因为字符串以空字符 `\0` 结尾,所以包含6个字符加上结束符1个。
8. **指针与数组**:`int*ptr;*ptr=20;printf("%d",*ptr);` 可以输出 `20`,前提是 `ptr` 已经初始化指向了一个有效的内存地址。
9. **结构体内存分配**:定义结构体类型后,每个结构体实例会为其成员分配内存。
10. **文件操作**:在文件未达到结束标志时,`feof(fp)` 返回 `0` 表示文件未结束。
试题二中的一些知识点:
1. **浮点数表示**:合法的浮点数可以是 `-e3`、`1.5e-.4`、`-.60`,但 `123e` 缺少指数部分。
2. **字符判断**:检查 `char` 型变量 `c1` 是否为小写字母,正确的表达式是 `(c1 >= 'a') && (c1 <= 'z')`。
3. **循环条件**:执行 `while(x = i--);` 后,`x` 为 `0`,`i` 为 `-1`,因为 `i--` 先返回 `i` 的当前值,然后减1。
4. **逻辑表达式**:所有选项都检查 `k` 是否为偶数,但 `!k%2 == 1` 相当于 `k % 2 != 0` 的否定,即 `k % 2 == 0`,因此与其他选项不同。
5. **数组初始化**:数组 `a[3][2]` 没有完全初始化,因此 `a[2][1]` 的值是不确定的;`a[3][2]` 是非法访问,因为数组大小是 `3x2`;`a[1][1]+1` 的值不是 `6`,因为数组没有初始化;`a[0][0]` 未初始化,其值也是不确定的。
6. **一维数组定义**:合法的一维数组定义是 `int n; scanf("%d", &n); int a[n];`,因为数组大小可以在运行时由用户输入决定。其他选项如 `int a[10.5];` 和 `#define n 10` 都是错误的,因为数组大小必须是常量表达式,而 `inta[n+5];` 在 `n` 未定义时也是错误的。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-07-11 上传
2010-12-02 上传
2022-08-08 上传
2021-09-21 上传
点击了解资源详情
2022-08-08 上传
whph
- 粉丝: 28
- 资源: 305
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析