2011年江苏计算机二级C语言上机考试试题
需积分: 7 35 浏览量
更新于2024-09-10
收藏 29KB DOCX 举报
"江苏2级试卷相关试题,2011年春季江苏省计算机二级考试C语言上机部分,包括改错题和编程题"
在此次江苏省计算机二级考试中,C语言上机部分主要考察了两个方面的知识:一是程序错误检测与修复能力,二是矩阵数据的生成与排序算法实现。
首先,我们来看改错题。该题目的程序功能是加密以"a"开头且以"e"结尾的英文单词,通过循环移位实现加密。程序中存在一些错误,需要考生找出并修正。错误代码中,`if(str[j]=='a'||&&str[k-1]=='e')`这一行有误,`||&&`是不合法的逻辑操作符,应改为`if(str[j]=='a'&&str[k-1]=='e')`。另外,判断单词长度是否为偶数的条件语句`(k-j)%2=0`应该使用等号右边的双等号`==`而非单等号`=`,即`if((k-j)%2==0)`。在主函数中,调用`wordchange`函数时,`wordchange(string[80])`是错误的,应该去掉数组下标,写成`wordchange(string)`。最后,注意题目要求不能添加或删除语句,只能修改已有语句。
改正后的程序如下:
```c
#include<stdio.h>
#include<ctype.h>
void wordchange(char str[])
{
int i, j, k, m;
char c;
for (i = 0; str[i]; i++)
{
for (j = i, k = i; isalpha(str[k]); k++);
if (str[j] == 'a' && str[k - 1] == 'e')
{
if ((k - j) % 2 == 0)
{
c = str[j];
for (m = k - 1; m > j; m--)
str[m] = str[m + 1];
str[k - 1] = c;
}
else
{
c = str[k - 1];
for (m = k - 1; m > j; m--)
str[m] = str[m - 1];
str[j] = c;
}
}
i = k;
}
}
void main()
{
char string[80] = "sheisabletoabideher.";
wordchange(string);
puts(string);
}
```
接下来是编程题,要求编写一个函数`void cresort(int a[][3], int n)`,该函数需要完成两个任务:根据二维数组a的第一列和第二列生成第三列的值,并按照特定规则重新排列数组的行。具体的生成规则和排列规则未在摘要中给出,考生需要根据题目补充的信息来完成这部分编程。
这次考试涉及的C语言知识点包括:
1. 字符串处理
2. 循环结构
3. 条件判断
4. 逻辑运算符的正确使用
5. 数组操作
6. 函数的定义与调用
7. 程序错误检测与修复
考生需要具备扎实的C语言基础,对程序逻辑有清晰的理解,同时能够熟练地根据题目要求进行代码编写和修改。
点击了解资源详情
103 浏览量
点击了解资源详情
2021-11-14 上传
2009-09-09 上传
151 浏览量
116 浏览量
baidu_21949931
- 粉丝: 0
- 资源: 1
最新资源
- RBF神经网络 聚类算法
- Drupal.Creating.Blogs.Forums.Portals.and.Community.Websites
- UML从入门到精通电子书籍
- 悟透javascript
- IMAGE process using MATLAB
- ExtJs+中文手册
- flexelint reference
- 基于SVPWM的永磁同步电动机永磁同步电动机控制系统仿真与实验研究
- 3d游戏程序设计入门
- Hibernate开发指南
- MLDN oracle 语法教程.pdf
- Hibernate实体映射策略复合主键
- 地图学编号的基本知识
- hibernate常見錯誤
- ArcGIS Engine轻松入门
- 计算机网络知识总结 计算机网络 - 学习笔记