2011年江苏计算机二级C语言上机考试试题
需积分: 7 176 浏览量
更新于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语言基础,对程序逻辑有清晰的理解,同时能够熟练地根据题目要求进行代码编写和修改。
2009-10-06 上传
2012-10-10 上传
158 浏览量
2021-11-14 上传
126 浏览量
2011-10-24 上传
2021-10-28 上传
baidu_21949931
- 粉丝: 0
- 资源: 1
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录