好文档 - 专业文书写作范文服务资料分享网站

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档

天下 分享 时间: 加入收藏 我要投稿 点赞

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档

四川省计算机等级考试二级C语言机试题(第二十八次)

2009-11-06 16:45

四川省计算机等级考试二级C语言机试题(第二十八次) 2009-03-29 16:44:17 (第一套) (60分钟)

一、程序调试题(40分)

磁盘上有一C程序test1-1.c,其功能是:将具有N个元素的数组的后m个元素移到前m个位置。例如,若输入m=3,数组元素为:1 2 3 4 5 6 7 8 9 10,则输出结果为:8 9 10 1 2 3 4 5 6 7。要求将结果显示在屏幕上并写入文件test1-1.dat中。 请更改程序中的错误,使程序能得出正确结果。 注意:不得增行或删行,也不得更改程序结构。 源程序如下: # include \# define N 10 void main()

{ int a[N],k,m,r,*t; FILE *fp;

fp=fopen(test1-1.dat,\

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 if(fp==NULL)

{ printf(\ exit(0); }

printf(\scanf(\

printf(\for(k=0;k

for(k=N-1;k>0;k--) a[k]=a[k-1]; a[k]=t; }

for(k=0;k

fprintf(fp,\}

fclose(fp); }

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 二、编写程序test1-2.c(60分)

编写函数fun,函数fun的功能是:求出满足“百位减十位等于个位”的所有三位整数,并按降序存入形参数组a中,满足条件下的三位数总个数作为函数值返回。

main函数中调用函数fun,并按一行5个数输出结果。 (第二套) (60分钟)

一、程序调试题(40分)

磁盘上有一个名为test2-1.c的C程序,其功能是将一个文本文件test2-1.in逐行逆置复制到另一个文件test2-1.out中。

test2-1.out文件名在命令行中给出。请改正程序中的错误,使程序能得出正确的结果。注意:不得增行或删行,也不得更改程序结构。 源程序如下:

# include \# include \void rev(void); FILE *f1,*f2;

void main(int argc,char *argv[])

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 { char ch; if(argc>2)

{ printf(\ exit(0); }

if((f1=fopen(*argv[1],\{ printf(\ exit(0); }

if((f2=fopen(\{ printf(\ exit(0); }

while(!feof(f2)) { void rev();

fputc('\\n',f1); }

fclose(f1); fclose(f2); }

void rev(void) { char c;

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 if(!feof(f2)||((c=fgetc(f2))!='\\n')) { rev();

fputc(c,f2); } }

二、编写程序test2-2.c(60分)

从键盘上输入整数m和k,将大于且紧靠m的k个素数存入数组xx中,将结果显示在屏幕上。要求:

(1)在num函数中完成找出紧靠m的k个素数,并存入数组xx中。函数num的定义形式为:void num(int m,int k,int xx[]) (2)main函数完成数据的输入和输出。 (第三套) (60分钟)

一、程序调试题(40分)

磁盘上有一个名为test3-1.c的C程序文件,其中函数fun的功能是:找出被2、3、5整除时余数均为1的最小的10个自然数,并存放到一个整型数组中。

在main函数中调用函数fun,输出最后结果,并将结果输出到文本

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 文件test3-1.txt中。

请改正程序中的错误,使其能得到正确的结果。 注意:不得增行或删行,也不得更改程序结构。 源程序如下:

# include void fun(int a[]) { int i; int cnt=0;

for(i=1;cnt<10;i++)

if(i%2==1||i%3==1||i%5==1) { a[cnt]=i; cnt++; } }

void main() {

int a[10]; int i; FILE *fp;

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 if((fp=fopen(\{ printf(\ exit(0); } fun();

for(i=0;i<10;i++) { printf(\ fprintf(\}

fclose(fp); }

二、编写程序test3-2.c(60分) 按要求编写程序:

(1)编写函数fun,其功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中。例如:形参s所指字符串为:abcdef35agd3khe7,则数字出现的次数为4次。

(2)在main函数中,从已有文件test3-2.in中读出一行字符(字符个数不超过80个)到字符数组str中,调用函数fun,统计出数字出现的次数,并在屏幕上输出结果。

四川省计算机等级考试二级C语言机试题(第二十七次)

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 2009-11-06 16:46

四川省计算机等级考试二级C语言机试题(第二十七次) 2009-03-29 16:43:11 (第一套) (60分钟)

一、程序调试题(40分)

磁盘上有一个名为test1-1.c的C程序,其功能是:利用折半查找法查找整数m在含有N个有序整数的一维数组中的位置。若找到,则返回其下标,反之,则返回-1。请更改程序中的错误,使之能输出正确结果。

注意:不得增行或删行,也不得更改程序结构。 源程序如下:

# 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

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 high=mid-1; else if(m>a[mid]) low=mid+1; else return ; }

return -1; }

void main() {

int i,a[]={-3,4,7,9,11,13,45,60,66,70},k,m; printf(\for(i=0;i

printf(\printf(\scanf(\k=fun(a[N],m); if(k>=0)

printf(\else

printf(\

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 }

二、编写程序test1-2.c(60分)

用指针编程实现:将用户输入的由数字字符和非数字字符组成的字符串(字符个数不超过256个)中的数字提取出来,例如:输入“asd123rt456,lg789”,则提取的数字分别是123、456和789。将结果显示在屏幕上,同时输出到文件test1-2.dat中(要求每个数字一行)。 (第二套) (60分钟)

一、程序调试题(40分)

磁盘上有一个名为test2-1.c的C程序,其功能是统计字符串中大写字母的个数。在main函数中输入一个字符串(字符个数不超过80个),并输出统计结果。在UpperNum()函数中统计字符串str中的大写字母个数,并作为函数值返回。

注意:不得增行或删行,也不得更改程序结构。 源程序如下:

# include \# include \

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 int UpperNum(char str[]) {

int n,i=0; while((str+i)) {

if(isupper(str[i])) n++; i++; } return i; }

void main() {

char str[];

printf(\gets(str);

printf(\is: %d\\n\}

二、编写程序test2-2.c(60分)

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 按要求编写程序:

(1)编写一个字符串比较函数mystrcpy,其功能是:对两个字符串进行比较,若这两个字符串相等,则返回0,若这两个字符串不等,则返回它们第一个不同字符的ASCII码之差。

(2)编写main函数:从文件test2-2.dat中读两个字符串分别赋给两个一维字符数组,调用mystrcpy函数,输出比较结果。 (第三套) (60分钟)

一、程序调试题(40分)

磁盘上有一个名为test3-1.c的C程序文件,其功能是:从键盘上输入一个100~1000之间的数,找出其中三位数字相等的所有整数并输出。请改正程序中的错误。

注意:不得增行或删行,也不得更改程序结构。 源程序如下:

# include \# define N 100 int fun(int s,int n) { int i,j,k,a,b,c;

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 j=0;

for(i=100;i<=n;i++) {

k=j; a=k; k/=10; b=k; k/=10; c=k;

if(a==b||a==c) s[j++]=i; } return i; }

void main() {

int a[N],n,num=0,i; do

{ printf(\ scanf(\}while(n>1000) num=fun(a,n);

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 printf(\for(i=0;i

二、编写程序test3-2.c(60分) 按要求编写程序:

(1)编写函数fun,其功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中。例如:形参s所指字符串为:abcdef35agd3khe7,则数字出现的次数为4次。

(2)在main函数中,从已有文件test3-2.in中读出一行字符(字符个数不超过80个)到字符数组str中,调用函数fun,统计出数字出现的次数,并在屏幕上输出结果。 (第四套)(60分钟) 一、程序调试题(40分)

给定程序test4-1.c,其功能是:输入一个整数k(2<=k<=10000),输出它的所有质因子(即所有为素数的因子)。例如,若输入2310,则输出2、3、5、7、11。请改正程序中的错误,使程序能得出正确

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 结果。

注意:不得增行或删行,也不得更改程序结构。 源程序如下:

# include \int fun1(int *n) { int i;

for(i=2;i<=n;i++) if!(n%i) return 0; return ; }

void main() { int j,k;

printf(\scanf(\

printf(\for(j=2;j<=k;j++)

if(!(k%j)&&fun1(j))

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 printf(\printf(\}

二、编写程序test4-2.c(60分)

磁盘上已有文件test4-2.dat,文件中有3个字符串,请将3个字符串中的小写字母全部转换为大写字母,然后将转换后的结果输出到屏幕上。

要求:定义convert函数,用于实现小写字母转换成大写字母。在main函数中完成文件夹的打开和读数据,调用convert函数,输出转换后的结果。 (第五套)(60分钟) 一、程序调试题(40分)

给定程序test5-1.c,其功能是:求出数组中值最大的元素在数组中的下标,并将最大值增添在数组的最后。

例如,数组中的数据为:876 675 896 101 301 401 980 431 451 777 输出结果如下:

The index of max is :6

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 The result:

876 675 896 101 301 401 980 431 451 777 980 请改正程序中的错误,使程序能得出正确结果。、 注意:不得增行或删行,也不得更改程序结构。 源程序如下:

# include \# define N 80

void fun(int *s,int *t,int k) { int i,m; *k=0; m=*s;

for(i=1;i<(*t-1);i++) if(m

m=*(s+i); *k=i; } s[i+1]=m;

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 *t++; }

void main() {

int a[N]={876,675,896,101,301,401,980,431,451,777}; int i,n=10,mi; fun(a[N],&n,&mi);

printf(\printf(\

for(i=0;i

二、编写程序test5-2.c(60分) 用函数调用方式编写程序。要求实现:

(1)编写fun函数,其功能是计算并比较两个字符串的长度(要求不得使用标准库函数strlen),返回较长字符串的指针。若两个字符串长度相等,则返回第一个字符串的指针。

(2)编写main函数,在其中输入两个字符串,打开文件test5-2.dat,将fun函数计算出的两个字符串长度和返回结果分别显示在屏幕上,同时写入到文件test5-2.dat中。

四川省计算机等级考试二级C语言机试题(第二十八次)

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 2009-11-06 16:45

四川省计算机等级考试二级C语言机试题(第二十八次) 2009-03-29 16:44:17 (第一套) (60分钟)

一、程序调试题(40分)

磁盘上有一C程序test1-1.c,其功能是:将具有N个元素的数组的后m个元素移到前m个位置。例如,若输入m=3,数组元素为:1 2 3 4 5 6 7 8 9 10,则输出结果为:8 9 10 1 2 3 4 5 6 7。要求将结果显示在屏幕上并写入文件test1-1.dat中。 请更改程序中的错误,使程序能得出正确结果。 注意:不得增行或删行,也不得更改程序结构。 源程序如下: # include \# define N 10 void main()

{ int a[N],k,m,r,*t; FILE *fp;

fp=fopen(test1-1.dat,\

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 if(fp==NULL)

{ printf(\ exit(0); }

printf(\scanf(\

printf(\for(k=0;k

for(k=N-1;k>0;k--) a[k]=a[k-1]; a[k]=t; }

for(k=0;k

fprintf(fp,\}

fclose(fp); }

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 二、编写程序test1-2.c(60分)

编写函数fun,函数fun的功能是:求出满足“百位减十位等于个位”的所有三位整数,并按降序存入形参数组a中,满足条件下的三位数总个数作为函数值返回。

main函数中调用函数fun,并按一行5个数输出结果。 (第二套) (60分钟)

一、程序调试题(40分)

磁盘上有一个名为test2-1.c的C程序,其功能是将一个文本文件test2-1.in逐行逆置复制到另一个文件test2-1.out中。

test2-1.out文件名在命令行中给出。请改正程序中的错误,使程序能得出正确的结果。注意:不得增行或删行,也不得更改程序结构。 源程序如下:

# include \# include \void rev(void); FILE *f1,*f2;

void main(int argc,char *argv[])

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 { char ch; if(argc>2)

{ printf(\ exit(0); }

if((f1=fopen(*argv[1],\{ printf(\ exit(0); }

if((f2=fopen(\{ printf(\ exit(0); }

while(!feof(f2)) { void rev();

fputc('\\n',f1); }

fclose(f1); fclose(f2); }

void rev(void) { char c;

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 if(!feof(f2)||((c=fgetc(f2))!='\\n')) { rev();

fputc(c,f2); } }

二、编写程序test2-2.c(60分)

从键盘上输入整数m和k,将大于且紧靠m的k个素数存入数组xx中,将结果显示在屏幕上。要求:

(1)在num函数中完成找出紧靠m的k个素数,并存入数组xx中。函数num的定义形式为:void num(int m,int k,int xx[]) (2)main函数完成数据的输入和输出。 (第三套) (60分钟)

一、程序调试题(40分)

磁盘上有一个名为test3-1.c的C程序文件,其中函数fun的功能是:找出被2、3、5整除时余数均为1的最小的10个自然数,并存放到一个整型数组中。

在main函数中调用函数fun,输出最后结果,并将结果输出到文本

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 文件test3-1.txt中。

请改正程序中的错误,使其能得到正确的结果。 注意:不得增行或删行,也不得更改程序结构。 源程序如下:

# include void fun(int a[]) { int i; int cnt=0;

for(i=1;cnt<10;i++)

if(i%2==1||i%3==1||i%5==1) { a[cnt]=i; cnt++; } }

void main() {

int a[10]; int i; FILE *fp;

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 if((fp=fopen(\{ printf(\ exit(0); } fun();

for(i=0;i<10;i++) { printf(\ fprintf(\}

fclose(fp); }

二、编写程序test3-2.c(60分) 按要求编写程序:

(1)编写函数fun,其功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中。例如:形参s所指字符串为:abcdef35agd3khe7,则数字出现的次数为4次。

(2)在main函数中,从已有文件test3-2.in中读出一行字符(字符个数不超过80个)到字符数组str中,调用函数fun,统计出数字出现的次数,并在屏幕上输出结果。

四川省计算机等级考试二级C语言机试题(第二十八次)答案

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 2009-11-06 16:48

四川省计算机等级考试二级C语言机试题(第二十八次)答案 2009-03-29 16:44:46 28-1套 参考答案:

一、程序调试题(文件名为 test1-1.c)( 40 分 ) # include \# define N 10 void main() { int

a[N],k,m,r,*t; /* 改为:t */ FILE *fp;

fp=fopen(test1-1.dat,\改为:\if(fp==NULL)

{ printf(\ exit(0); }

printf(\

scanf(\ /* 改为:&m */

printf(\

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 for(k=0;k

scanf(\ /* 改为:a+k */ for(r=0;r

for(k=N-1;k>0;k--) a[k]=a[k-1];

a[k]=t; /* 改为:a[0] */ }

for(k=0;k

fprintf(fp,\}

fclose(fp); }

评分标准:每改对一处得8分

二、编程题(程序文件取名为 test1-2.c)(评分标准:

1 / 1

60分) 小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 1.fun函数编写:

1) 函数定义正确,能正确的定义和使用返回值 10分 2) 参数定义、传递正确 10分

3) 算法正确,能按要求求出所有满足条件的二位数 15分 2.main函数:

1) 能正确定义数组,并能正确进行输出 15分 2) 能正确调用函数 10分 参考程序:

# include int fun(int a[]) {

int i,j=0;

for(i=999;i>=100;i--)

if(i/100-i/10==i) { a[j]=i;

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 j++; } return j; }

void main() {

int a[100]; int i,n; n=fun(a);

for(i=0;i

printf(\

if((i+1)%5==0) printf(\ } }

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 28-2套 参考答案:

一、程序调试题(文件名为 test2-1.c)( 40 分 ) # include \ # include \ void rev(void); FILE *f1,*f2;

void main(int argc,char *argv[]) { char ch;

if(argc>2) /* 改为:{ printf(\ exit(0); }

if((f1=fopen(*argv[1],\ { printf(\

1 / 1

/* 改为: argv[1] */ < */小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 exit(0); }

if((f2=fopen(\ { printf(\ exit(0); }

while(!feof(f2)) { void

rev(); /* 去掉void */ fputc('\\n',f1); }

fclose(f1); fclose(f2); }

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 void rev(void) { char c;

if(!feof(f2)||((c=fgetc(f2))!='\\n')) /* ||改为:&& */ { rev();

fputc(c,f2); /* f2改为:f1 */ } }

评分标准:每改对一处得8分

二、编程题(程序文件取名为 test2-2.c)(60分) 评分标准:

1、输入、输出方法正确 10分 函数定义及参数传递正确 10分 3、求素数方法正确 20

分 4、将素数正确存入数组xx中 1 / 1

、 2 10

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 分

5、输出结果正确 10分 参考程序:

# include

void num(int m,int k,int xx[]) {

int data=m+1; int half,n=0,i; while(1) {

half=data/2;

for(i=2;i<=half;i++) if(data%i==0) break; if(i>half)

xx[n++]=data;

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 if(n>=k) break; data++; } }

void main() {

int m,n,xx[10000]; printf(\ scanf(\ num(m,n,xx); for(m=0;m

printf(\printf(\ }

28-3套 参考答案:

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 一、程序调试题(文件名为 test3-1.c)( 40 分 ) # include void fun(int a[]) { int i; int cnt=0;

for(i=1;cnt<10;i++) 为: <= */

if(i%2==1||i%3==1||i%5==1) /* { a[cnt]=i; cnt++; } }

void main() {

1 / 1

改为:&& */改 /* 小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 int a[10]; int i; FILE *fp;

if((fp=fopen(\{ printf(\ exit(0); }

fun(); /* 改为:fun(a) */ for(i=0;i<10;i++) { printf(\

fprintf(\ /* 改为:fp,\ }

fclose(fp);

1 / 1

改为:NULL */ 小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 }

评分标准:每改对一处得8分

二、编程题(程序文件取名为 test3-2.c)(60分) 评分标准:

1.fun函数编写40分:

1) 函数定义、形参书写正确、有正确的返回值 10分 2) 能正确的求出最大值和最小值 20分 3) 能正确的求出平均分 10分 2.main函数20分:

1) 能正确定义实参一维数组,并能正确的对整型数组进行输入 10分

2) 正确调用fun函数并输出正确结果 10分 参考程序:

# include double fun(int a[],int n)

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 {

int i,max,min; double s=0,aver; max=min=a[0]; for(i=0;i

s=s+a[i];

if(maxa[i]) min=a[i]; }

aver=(s-max-min)/(n-2); return aver; }

void main() { int a[100],i,n;

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 double aver;

printf(\ scanf(\

printf(\ for(i=0;i

scanf(\ aver=fun(a,n);

printf(\

四川省计算机等级考试二级C语言机试题(第二十七次)答案 2009-11-06 16:48

四川省计算机等级考试二级C语言机试题(第二十七次)答案 2009-03-29 16:43:50 27-1套 参考答案:

一、程序调试题(文件名为 test1-1.c)( 40 分 ) # include \ # define N 10

void fun(int a[],int

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 m) /* 改为: int */ { int low=0,high=N-1,mid; while(low<=high)

{ mid=(low+high)%2; / */

if(ma[mid])

low=mid+1; else

return ; /* 改为: return mid */ }

return -1; }

1 / 1

改为: /* 小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 void main() {

int i,a[]={-3,4,7,9,11,13,45,60,66,70},k,m; printf(\ for(i=0;i

printf(\ printf(\

scanf(\ /* 改为:&m */

k=fun(a[N],m); /* 改为:a */ if(k>=0)

printf(\ else

printf(\

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 }

评分标准:每改对一处得8分

二、编程题(程序文件取名为 test1-2.c)(60分) 评分标准:

1、while循环编写正确,数字提取正确 文件打开、关闭、数据写入正确 15分

3、指针定义和使用正确 5分 确 5分 5、程序结构合理 参考程序:

# include # define LEN 256 void main()

{ char line[LEN],b[20],*ptr1,*ptrb; int n=0,j,a[50]; FILE *fp;

printf(\gets(line); ptr1=line; while(*ptr1!='\\0')

1 / 1

30分 、屏幕输出正 5分 、 2 4 小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 { ptrb=b;

for(j=0;*ptr1>='0' && *ptr1<='9';ptr1++,ptrb++,j++) *ptrb=*ptr1; if(j) { *ptrb='\\0'; *(a+n)=atoi(b); n++; }

if(*ptr1!='\\0') ptr1++; }

fp=fopen(\if(fp==NULL)

{ printf(\ exit(0); }

printf(\for(j=0;j

{ printf(\

fprintf(fp,\}

fclose(fp);

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 }

27-2套 参考答案:

一、程序调试题(文件名为 test2-1.c)( 40 分 ) # include \# include \int UpperNum(char str[]) {

int n,i=0; while((str+i)) */ {

if(isupper(str[i])) n++; i++; }

return i; }

void main() {

char str[]; /* 改为:n=0 */ 改为:*(str+i) /* 改为:n */ /* 改为:

/* 1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 str[80] */

printf(\gets(str);

printf(\is: %d\\n\改为:str */ }

评分标准:每改对一处得8分

二、编程题(程序文件取名为 test2-2.c)(60分)评分标准:

1、被调函数编写正确(具体参照程序注释)(30分)2、文件打开、关闭、数据读入正确 (15分)

3、函数调用正确(5分) 4、屏幕输出正确(5分) 结构合理(5分) 参考程序:

# include # include

int mystrcmp(char *q1,char *q2)

1 / 1

、程序 5小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 {

int k=0,t;

while(*(q1+k)!='\\0'||*(q2+k)!='\\0') /* 5分 */ { if(*(q1+k)!=*(q2+k)) */

{ t=*(q1+k)-*(q2+k); break; } else

t=0; /* 5分 */ k++; /* 5分 */ }

return t; /* 5分 */ }

void main()

1 / 1

分 /* 10小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 {

FILE *fp; int t;

char s1[20],s2[20];

fp=fopen(\ if(fp==NULL)

{ printf(\ exit(0); }

fgets(s1,80,fp); fgets(s2,80,fp); puts(s1); puts(s2);

t=mystrcmp(s1,s2);

printf(\1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 fclose(fp); }

27-3套 参考答案:

一、程序调试题(文件名为 test3-1.c)( 40 分 ) # include \ # define N 100

int fun(int s,int n) /* 改为:*s */ { int i,j,k,a,b,c; j=0;

for(i=100;i<=n;i++) {

k=j; /* 改为: a=k; k/=10; b=k;

1 / 1

i */小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 k/=10; c=k;

if(a==b||a==c) /* 改为:&& */ s[j++]=i; }

return i; /* 改为:j */ }

void main() {

int a[N],n,num=0,i; do

{ printf(\ scanf(\

}while(n>1000) /* 改为:while(n>1000); */num=fun(a,n);

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 printf(\ for(i=0;i

printf(\ printf(\ }

评分标准:每改对一处得8分

二、编程题(程序文件取名为 test3-2.c)(60分) 评分标准:

1、被调函数编写正确(具体参照程序注释)(30分) 2、文件打开、关闭、数据读入正确 (15分)

3、函数调用正确(5分) 4、屏幕输出正确(5分) 5、程序结构合理(5分) 参考程序:

# include

void fun(char *s,int *t) /* 函数定义、形参书写正确10分 */

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 { int i;

*t=0; /* 5分 */

for(i=0;*(s+i)!='\\0';i++) /* 算法正确,指针使用正确 15分 */

if(*(s+i)>='0'&& *(s+i)<='9') (*t)++; }

void main() {

char str[80]; FILE *fp; int i=0,count;

if((fp=fopen(\ { printf(\ exit(0);

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 }

while(!feof(fp)) { str[i]=fgetc(fp); i++; }

str[i]='\\0'; fclose(fp); fun(str,&count);

printf(\ }

第27-4套 参考答案

一、程序调试题(文件名为 test4-1.c)# include \

int fun1(int *n) 为: n */

1 / 1

分 ) 改( 40 /* 小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 { int i;

for(i=2;i<=n;i++) /* 改为:< */

if!(n%i) /* 改为:(!(n%i)) */ return 0;

return ; /* 改为:return 1 */ }

void main() {

int j,k;

printf(\ scanf(\ /* 改为:&k */ printf(\ for(j=2;j<=k;j++)

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 if(!(k%j)&&fun1(j)) printf(\ printf(\ }

评分标准:每改对一处得8分

二、编程题(程序文件取名为 test4-2.c)(60分) 评分标准:

1、被调函数编写正确(具体参照程序注释)(30分) 2、文件打开、关闭、数据读入正确 (15分)

3、函数调用正确(5分) 4、屏幕输出正确(5分) 5、程序结构合理(5分) 参考程序:

# include

void convert(char str[]) /* 函数定义、形参书写正确10分 */ { int i=0;

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 while(str[i]!='\\0') /* 5分 */ { if(str[i]>='a' && str[i]<='z') /* 5分 */

str[i]-=32; /* 5分 */

i++; /* 5分 */ } }

void main() {

FILE *fp; char str[100];

if((fp=fopen(\ { printf(\ exit(0);

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 }

while(!feof(fp)) { fgets(str,81,fp); convert(str); puts(str); }

fclose(fp); }

第27-5套 参考答案

一、程序调试题(文件名为 test5-1.c)# include \ # define N 80

void fun(int *s,int *t,int

k) {

1 / 1

分 ) /* 改为:*k */ ( 40 小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 int i,m; *k=0; m=*s;

for(i=1;i<(*t-1);i++) if(m

m=*(s+i); *k=i; } s[i+1]=m;

*t++; 为:(*t) */ }

void main()

/* 改

/* 1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 {

int a[N]={876,675,896,101,301,401,980,431,451,777}; int i,n=10,mi;

fun(a[N],&n,&mi); /* 改为:a */ printf(\ printf(\

for(i=0;i

评分标准:每改对一处得8分

二、编程题(程序文件取名为 test4-2.c)(60分) 评分标准:

1、被调函数编写正确(具体参照程序注释)(30分) 2、文件打开、关闭、数据读入正确 (15分)

3、函数调用正确(5分) 4、屏幕输出正确(5分) 5、程序

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 结构合理(5分) 参考程序:

# include # define N 80

char *fun(char *s,char *t) 函数定义、形参书写正确10分 */ { char *p,*ss,*tt; ss=s; tt=t; while(*ss)

{ n++; ss++; } 分 */ while(*tt)

{ m++; tt++; } 分 */

if(n>=m) 1 / 1

/*

/* 5 /* 5 小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 /* 5分 */ p=s; else

p=t; return

p; /* 5分 */ }

void main() { char a[N],b[N]; FILE *fp;

printf(\ gets(a);

printf(\ gets(b);

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 fp=fopen(\ if(fp==NULL)

{ printf(\ exit(0); }

printf(\

printf(\ fprintf(fp,\

fprintf(fp,\ fclose(fp); }

四川省计算机等级考试二级C语言机试题(第二十六次)答案 2009-11-06 16:49

四川省计算机等级考试二级C语言机试题(第二十六次)答案 2009-03-29 16:42:42 26-1套 参考答案:

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 一、程序调试题(文件名为 test1-1.c)( 40 分 ) #include

void selectsort(int *a,int n) {

int i,j,p,temp; for(i=0;i

p=i;

for(j=1;ja[j]) < */ p=j; temp=a[p];

a[p]=a[j]; a[j]=temp; /* 改为:j=i+1 */ /* 改为: /* 改为:a[i] */ /* 改为:a[i] */

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 } }

void main() {

int x[8],i; for(i=0;i<8;i++) x[i]=rand()0;

selectsort(x[],8); /* 改为:x for(i=0;i<8;i++)

printf(\ printf(\ }

评分标准:每改对一处得8分

二、编程题(程序文件取名为 test1-2.c)(60分) 参考程序:

1 / 1

*/小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 #include #define MAX 10 struct aa {

char name[20]; char number[20]; }s[MAX];

int search(struct aa t[],char *st,int *p) {

int j,flag=0; for*j=0;j

if(strcmp(t[j].name,st)==0) { flag=1; *n=j; }

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 return flag; }

void main() {

char ch[20]; int I,k=0; FILE *fp;

if((fp=fopen(\ {

printf(\ exit(0); }

for(i=0;i

fscanf(fp,\ fclose(fp);

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 printf(\ gets(ch);

if(search(s,ch,&k))

printf(\ else

printf(\ }

26-2套 参考答案:

一、程序调试题(文件名为 test2-1.c)( 40 分 ) #include void main() {

int b[16],x,k,r,i;

printf(\

scanf(\

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 /* 改为:&x */ printf(\ k=-1; do

{ r=x/8; /* 改为:%8 */ k++; *(b+k)=r;

x%=8; /* 改为:/=8 */

}while(x=0); /* 改为:x!=0 */ for(i=k;i>=0;i--)

printf(\ /* 改为:*(b+i)或b[i] */ printf(\

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 }

评分标准:每改对一处得8分

二、编程题(程序文件取名为 test2-2.c)(60分) 参考程序:

# include # define N 1000

void fun(char *t ,int a[]) { int I;

for(i=0;i<=25;i++) a[i]=0;

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

if('a'<=t[i]&&t[i]<'z') a[t[i]-'a']++; }

void main()

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 { char s[N],ch; int c[26],i=0; FILE *fp;

if((fp=fopen(\ {

printf(\ exit(0); }

while(!feof(fp)) {

s[i]=fgetc(fp); i++; }

fclose(fp); s[i]='\\0';

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 fun(s,c);

for(i=0;i<=25;i++) { printf(\ if((i+1)==0) printf(\ }

printf(\ }

26-3套 参考答案:

一、程序调试题(文件名为 test3-1.c)# include # include void fun(int

m) */

1 / 1

分 ) 改为:( 40 /* int 小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 { int i,j,k;

for(i=m;;i++) /*改为:m+1 */ {

j=sqrt(i);

for(k=2;k<=j;k++) if(i%k!=0) == */

if(k */ return(i); } }

void main() {

int m,n;

1 / 1

改为:

break; /* 小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 printf(\ scanf(\

fun(m); /* 改为:n=fun(m) */

printf(\ }

评分标准:每改对一处得8分

二、编程题(程序文件取名为 test3-2.c)(参考程序:

# include void fun(char *s) { int i;

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

if(s[i]>='0'&&s[i]<='9')

1 / 1

60分) 小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 s[i]='0'+('9'-s[i]); }

void main() {

FILE *fp; char str[80]; int i=0;

if((fp=fopen(\ {

printf(\ exit(0); }

while(!feof(fp)) {

str[i]='\\0';

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 fclose(fp);

printf(\ fun(str);

printf(\ printf(\ } }

四川省计算机等级考试二级C语言机试题(第二十六次) 2009-11-06 16:51

四川省计算机等级考试二级C语言机试题(第二十六次) 2009-03-29 16:42:13

(第一套) (60分钟)

一、程序调试 有一程序其功能是:调用selectsort()函数,利用选择排序算法,对主函数产生的8个随机整数按降序排序。 请改正程序中的错误,使它能得出正确结果。 注意:不得增行或删行,也不得更改程序结构。

#include void selectsort(int *a,int n)

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 { int i,j,p,temp; for(i=0;i

for(j=1;ja[j])

p=j; temp=a[p]; a[p]=a[j]; a[j]=temp;} }

void main() { int x[8],i; for(i=0;i<8;i++) x[i]=rand()0; selectsort(x[],8); for(i=0;i<8;i++) printf(\

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 printf(\ }

二、编写程序 有一test1-2.txt文件,文件中含有10位学生的姓名和电话号码,用结构体和函数调用方式编写程序。要求实现: 1、 在被调函数search()中,能根据学生姓名,查找学生,并返回是否查找成功。 2、 在主函数中,将test1-2.txt文件中的数据读入到结构体数组中,输入待查学生的姓名,调用search()函数,最后输出待查学生的电话号码。 (第二套) (60分钟) 一、程序调试 有一程序,其功能是:输入一个整数,计算其八进制并输出。 请改正程序中的错误,使它能得出正确结果。 注意:不得增行或删行,也不得更改程序结构。 #include void main() { int b[16],x,k,r,i;

printf(\ scanf(\

printf(\ k=-1;

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 do {

r=x/8; k++; *(b+k)=r; x%=8; } while(x=0); for(i=k;i>=0;i--) printf(\ printf(\ }

二、编写程序 有一test2-2.txt文件,文件中包含有若干行字符串(每行字符串之间用换行做分隔),用函数调用方式编写程序,要求实现: 1、在函数fun()中统计这若干行字符串中26个小写字母(a-z)各自出现的次数,并依次存放在主函数中定义的一维数组中。 2、在了数中读入这若干行字符串,调用fun()函数后,输出相应的结果。 (第三套) (60分钟) 一、程序调试 有一程序,其中fun()函数的功能是:找出一个大于形参m且紧随m的素数,并作为函数值返回。主函数输入m,调用fun函数,输出素数。 请改正程序中的错误,使它能得出正确结果。 注意:不得增行或删行,也不得更改程序结

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 构。

#include#include void fun(int m) { int i,j,k; for(i=m;;i++) { j=sqrt(i); for(k=2;k<=j;k++) if(i%k!=0) break; if(k

void main()

{ int m,n; printf(\ scanf(\ fun(m);

printf(\ }

二、编写程序 编写fun()函数,其功能是:形参指针变量1 / 1

s所指字

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档 符串中的数字字符进行转换,若数字字符是‘0’~‘9’,则将‘0’转换成‘9’,‘1’转换成‘8’,‘2’转换成‘7’,……,‘9’转换成‘0’若是其它字符则保持不变。 在main()函数中,从文件test3-2.dat中读一行字符(不超过80个)给一维字符数组str,调用fun()函数进行数字字符转换,并将转换前的字符串和转换后的结果输出到屏幕上。

1 / 1

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档

小学教育四川省计算机等级考试二级C语言机试题第二十八次文档四川省计算机等级考试二级C语言机试题(第二十八次)2009-11-0616:45四川省计算机等级考试二级C语言机试题(第二十八次)2009-03-2916:44:17(第一套)(60分钟)一、程序调试题(40分)磁盘上有一C程序test1-1
推荐度:
点击下载文档文档为doc格式
23h5s7aeex1xu1x81dzc4m0xd0pwbf00njw
领取福利

微信扫码领取福利

微信扫码分享