江苏省计算机等级考试C语言上机模拟题 下载本文

内容发布更新时间 : 2024/5/16 3:57:35星期一 下面是文章的全部内容请认真阅读。

如对您有帮助,欢迎下载支持,谢谢!

江苏省等级考试(2级C)上机模拟题

模拟题一

一、改错题(18分)

【题目】

函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上各元素之和,返回此和数。

含有错误的程序如下:

#include #include #define M 5

int fun(int n,int xx[][]) { int i,j,sum;

printf(\ for(i=0;i

for(i=0;i

sum+=xx[i][i]+xx[i][n-i]; return(sum); }

main( )

{int aa[M][M]={ {1,2,3,4,5},{4,3,2,1,0},

{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};

clrscr( );

printf (\} 【要求】

1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。

2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译处理命令,但不能增加其他语句,也不能删去整条语句。

3.改正后的源程序(文件名myf1.c)必须放在考试软盘的根目录下,供阅卷用,否则不予评分。

二、编程题(22分)

【题目】

1.编写函数fun,函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符平移到字符串的最后,把第m+1到最后的字符串移到字符串的前部。例如:字

1

如对您有帮助,欢迎下载支持,谢谢!

符串中原有的内容为:ABCDEFGHIJK,m的值为3,则移动后,字符串中的内容应该是:DEFGHIJKABC。

2.编写main函数,在main函数中初始化一个字符串,调用函数fun,将结果字符串及函数返回值写入到文件myf2.out中。

【要求】

1.源程序文件名必须取为myf2.c,输出结果文件名为myf2.out。

2.数据文件的打开、使用、关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。

3.源程序文件和运行结果文件均需要保存在考试软盘的根目录中供阅卷使用。 4.不要复制扩展名为obj和exe的文件到考试软盘上。

模拟题二

一、改错题(18分)

【题目】

函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。

例如,在调用fun函数之前给a输入字符串:ABCDEFGHIJK, 调用函数之后,字符数组b中的内容则为:ABC DEF GHI JK。 含有错误的程序如下: #include

void fun(char *p, char *b) { int i, k=0; while(*p) { i=1;

while( i<3 && *p )

{

b[k]=p;

k++; p++; i++; } if(*p) {

b[k++]=\ } }

b[k]= ''\\0''; }

main()

{ char a[80],b[80];

printf(\ \ gets(a); printf(\ puts(a); fun(a,b);

printf(\ \ puts(b); printf(\}

【要求】

1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。

2

如对您有帮助,欢迎下载支持,谢谢!

2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译处理命令,但不能增加其他语句,也不能删去整条语句。

3.改正后的源程序(文件名myf1.c)必须放在考试软盘的根目录下,供阅卷用,否则不予评分。

二、编程题(22分)

【题目】

1.编写main函数,将N名学生的成绩在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。并调用函数fun,将结果及函数返回值写入到文件myf2.out中。

2.请编写函数fun,它的功能是:求出这N个学生的平均分,由函数值返回。

例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625。 【要求】

1.源程序文件名必须取为myf2.c,输出结果文件名为myf2.out。

2.数据文件的打开、使用、关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。

3.源程序文件和运行结果文件均需要保存在考试软盘的根目录中供阅卷使用。 4.不要复制扩展名为obj和exe的文件到考试软盘上。

模拟题三

一、改错题(18分)

【题目】

N个有序整数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值,反之,则返回-1。

提示:折半查找的基本算法是:每次查找前先确定数组中待查的范围,low和high,然后把m与中间位置(mid)中元素的值进行比较,如果m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中,反之,下一次的查找范围落在中间位置之前的元素中。直到low

含有错误的程序如下: #include #define N 10

void fun (int a[ ], int m) { int low=0, high=N-1, mid; while (low<=high) { mid=(low+high)/2; if(m<=a[mid]) high=mid-1;

else if (m>=a[mid]) low=mid+1; return (mid); }

return (-1); } main ()

{ int i, a[N]={-3,4,7,9,13,45,67,89,100,180}, k, m; printf (“a数组中的数据如下:”); for (i=0; i

3