江苏省计算机等级考试上机材料(C语言) 下载本文

My exam number is :0112400123(考生本人准考证号) 【要求】

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

? 数据文件的打开、使用和关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。 ? 源程序文件和运行结果文件必须保存在考试盘的根目录下,供阅卷用。 ? 不要复制扩展名为OBJ和EXE的文件到考试盘上。

模拟测试题三

一、改错题 【程序功能】

统计并输出子串substr在母串string中出现的次数,输出该子串每次出现在母串中的起始位置序号(序号从1开始)。

【测试数据与运行结果】

显示母串:“This is a book.That is a book.” 输入子串:“is” 运行结果:k=3 3 6 21 【含有错误的源程序】 #include #include #define N 20

int str_count(char *string[],char *substr[],int ioc[]) {

int i,j,k,t,m=0;

for(i=0;string[i]!='\\0';i++) {

t=0;

for(j=i,k=0;substr[k]==string[k];k++,j++) if(substr[k+1]=='\\0') {

t=1; break; } if(t)

ioc[++m]=i+1; }

return m; }

main() {

int i,k,ioc[N];

char str[80]=This is a book.That is a book. ,substr[N]; printf(\ printf(\ gets(substr);

k=str_count(str,substr,ioc); printf(\ k=%d\\n\ for(i=1;i<=k;i++)

printf(\ getch(); }

【要求】

? 将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。 ? 改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或者编译预处理命令,但不能增加其他语句,也不能删去整条语句。

? 将改正后的源程序myf1.c保存在考试盘的根目录下,供阅卷用,否则不予评分。

二、编程题 【编程要求】

1.编写函数void squeeze(char *s1,char *s2,char *s3),其功能是:从s1指向的字符串中删去所有在s2指向的字符串中已出现的字符,将从s1中删除的字符保存到s3指向的数组中。

2.编写main函数。用给定的测试字符串s1和s2调用squeeze函数,将处理后的s1字符串和s3字符串保存到结果文件myf2.out中。最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。 【测试数据及运行结果】 测试数据:

s1:“abbcdefgghiijkl”,s2:“bdglkw” 运行结果:

s1: acefhiij, s3:bbdggkl

my exam number is :0112400123(本人准考证号) 【要求】

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

? 数据文件的打开、使用和关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。 ? 源程序文件和运行结果文件必须保存在考试盘的根目录下,供阅卷用。 ? 不要复制扩展名为OBJ和EXE的文件到考试盘上。

模拟测试题四

一、改错题 【程序功能】

函数void yanghui(int y[][N],int x[][N],int n)生成n行杨辉三角形数据构成的矩阵,并将其存放到y指向的二维数组中,再将y数组中的矩阵顺时针旋转90度后存储到x指向的二维数组中。主函数中分别输出n行杨辉三角形及顺时针旋转90度后的n行杨辉三角形。 【测试数据与运行结果】 n=4时应输出 1 1 1 1 2 1 1 3 3 1

1 1 1 1 3 2 1 3 1 1

【含有错误的源程序】 #include #include #define N=10

void yanghui(int y[][N],int x[][N],int n);

void main() {

static int i,j,n,a[N][N],b[N][N]; printf(\ scanf(\ yanghui(a,b,n); for(i=0;i

for(j=0;j<=i;j++)

printf(\ printf(\ }

printf(\ for(i=0;i

for(j=0;j

printf(\ printf(\ }

getch(); }

void yanghui(int y[][N],x[][N],n) {

int i,j; y[0][0]=1;

for(i=1;i

y[i][0]=y[i][i]=1; for(j=1;j

y[i][j]=y[i-1][j+1]+y[i-1][j]; }

for(i=0;i

x[i][j]=y[n-1-j][i]; }

【要求】

? 将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。 ? 改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或者编译预处理命令,但不能增加其他语句,也不能删去整条语句。

? 将改正后的源程序myf1.c保存在考试盘的根目录下,供阅卷用,否则不予评分。

二、编程题 【编程要求】

1.编写函数char *insert(char *p),其功能是:在p指向的字符串中所有数字字符子串前插入一个符号’-’。函数返回p字符串的首地址。

2.编写main函数。用给定的测试字符串初始化数组,调用insert函数对字符串做处理,将结果字符串保存到结果文件myf2.out中。最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。 【测试数据及运行结果】 测试数据:

AB1CD12EF123GH 运行结果:

AB-1CD-12EF-123GH

my exam number is :0112400123(本人准考证号) 【要求】

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

? 数据文件的打开、使用和关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。 ? 源程序文件和运行结果文件必须保存在考试盘的根目录下,供阅卷用。 ? 不要复制扩展名为OBJ和EXE的文件到考试盘上。

模拟测试题五

一、改错题