省二级 C 语言上机考试模拟题
改错题
第 1 题:
【程序功能】
函数 int word_sort(char s[] ,char w[10][20]) 的功能是:将 s指向的字符串 (英文句子 )中所
有单词取出保存到 w 指向的数组中,再对 w 数组中的单词按字典序排序。函数返回 w 数组中
存储的单词个数。
【测试数据与运行结果】
测试数据: c is a programming language.
运行结果: a c is language programming.
【含有错误的源程序】
#include
#include
#include
#include
int word_sort(char s, char w[10][20])
{
int i = 0, j = 0, k = 0; char b[20];
while (s[i])
{
if (isalpha(s[i]))
w[k][j] = s[i];
else
{
w[k][j] = "\0";
k++;j = 0;
}
i++;
}
for (i = 0;i < k - 1;i++)
for (j = 0;j < k - 1 - i;j++)
if (strcmp(w[j], w[j + 1]) > 0)
{
strcpy(b, w[j]);
strcpy(w[j + 1], w[j]);
strcpy(w[j + 1], b);
}
return k;
}
void main()
{
char sent[80] = "c is a programming language.";
char word[20];
int i, n;
n = word_sort(sent, word);
for (i = 0;i < n;i++)printf("%s", word[i]);
}
【要求】
1.将上述程序录入到文件 myf1.c 中,根据题目要求及程序中语句之间的逻辑关系对程序中
的错误进行修改。
2. 改错时, 可以修改语句中的一部分容, 调整语句次序, 增加少量的变量说明或编译预处理
命令,但不能增加其他语句,也不能删去整条语句。
3. 改正后的源程序 (文件名 myf1.c) 保存在考生文件夹中供阅卷使用,否则不予评分。
第 2 题:
【程序功能】
函数 void ring(int a[] ,int m[] ,int n ,int *max) 的功能是:将 a指向数组中前 n 个正整数
看作一个圆环,在 a数组中查找相邻四个元素之和最大的四个元素 (用下标表示 )及其和值,
将这四个元素的下标依次保存到 m 指向的数组中,最大值 (和值 )保存到 max 指向的变量中。
main 函数调用 ring 函数,在 a 数组的 20 个元素中找出四个元素,