四川省第21次计算机2级机试试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(第一套)

(60分钟)

一、程序调试题(文件名test1-1.c)(40分)

软盘上有一个名为test1-1.c的C程序文件,其功能是将字符串中的小写字母都改成对应的大写字母,其他字母不变。请更改程序中的错误。

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

#include

#include

char *fun( char str)

{ int i ;

for(i=0 ; str; i++)

if(('a'<=str[i])||(str[i]<='z'))

str[i]+=32;

return *str;

}

main()

{

char str[81];

printf("\n Please enter a string:");

gets(str[81]);

printf("\n The result string is:\n%s" , fun(str));

}

二、编写程序(程序文件名取为test1-2.c)(60分)

在磁盘上的test1-2.txt文件中放有10个不小于2的正整数,用函数调用方式编写程序。要求实现:

1. 在被调函数prime中,判断和统计10个整数中的素数以及个数。

2. 在主函数中将全部素数追加到磁盘文件test1-2.txt的尾部,同时输出到屏幕上。

参考程序:

# include

# include

int prime(int a[],int n)

{ int i,j,k=0,flag=0;

for(i=0;i

{ for(j=2;j

if(a[i]%j==0)

{ flag=0;

break;

}

else flag=1;

if(flag)

a[k++]=a[i];

}

return k;

}

main()

{ int n,i,a[10];

FILE *fp;

fp=fopen("test1-2.txt","r+");

for(n=0;n<10;n++)

fscanf(fp,"%d",&a[n]);

n=prime(a,n);

fseek(fp,0,2);

for(i=0;i

{ printf("%5d",a[i]);

fprintf(fp,"%5d",a[i]);

}

fclose(fp);

}

(第二套)

(60分钟)

一、程序调试题(文件名test2-l.c)(40分)

N个有序数数列已放在一维数组中。下列程序中,函数fi的功能是:利用折半查找算法查找整数m在数组中的位置,返回其下标值;反之返回-1。折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(Iowhigh,查找结束。

请改正程序中的错误,使程序能得出正确的结果。

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

#include

#define N10

void fi(int a[],int m)

{

int low=0,high=N,mid;

while (low<=high)

{

mid=(low+high)/2;

if(m

high=mid-1;

else if(m>=a[mid])

low=mid+1;

else return(mid);

}

return(-1);

}

main()

{

int i, a[N]={-3,4,7,9,13,45,67,89,100,180},k,m;

for(i=0;i

printf("%d ",a[i]);

printf("Enter m: ");

scanf("%d",m);

k=fi(a[],m);

if(k>0) printf("m=%d,index=%d\n",m,k);

else printf("Not be found!\n");

}

二、编写程序(程序文件名取为test2-2.c)(60分)

(l)编写函数void fun(int tt[M][N],int pp[N]),求出二维数组tt每列中的最小元素,并依次放人pp所指一维数组中,二维数组中的数已经在主函数中赋值。

(2)编写函数main,要求在main函数中实现: ①从文件test2-2.dat中读出3行4列的数据到tt数组中;

②调用函数fun; ③将每列中的最小元素输出到屏幕上。

参考程序:

# include

# define M 3

# define N 4

void fun(int tt[M][N],int pp[N]) { int i,j,min;

for(j=0;j

{ min=tt[0];

for(i=0;i

if(tt[i][j]

min=tt[i][j];

pp[j]=min;

}

}

main()

{ int t[M][N];

int p[N],i,j,k;

FILE *fp;

fp=fopen("test2-2.dat","r");

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

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

fscanf(fp,"%d",&t[i][j]);

fclose(fp);

printf("The original data is :\n");

for(i=0;i

{ for(j=0;j

printf("%6d",t[i][j]);

printf("\n");

}

fun(t,p);

printf("\nThe result is :\n");

for(k=0;k

printf("%4d",p[k]);

printf("\n");

}

相关文档
最新文档