四川省二级c语言29次机试试题及

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

(第一套)

(60分钟)

一、程序调试题(40分)

磁盘上有一程序test1-1.c,其中函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长

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

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

源程序如下:

# include

# include

# define M 5

# define N 20

void fun(char (*ss)[N])

{ int i,j,k=0,n,m,len;

for(i=0;i

{ len=strlen(ss[i]);

if(i=0) n=len;

if(len

{ n=len;

k=i;

}

}

for(i=0;i

if(i!=k)

{ m=n;len=strlen(ss);

for(j=len;j>=0;j--)

ss[i][m--]=ss[i][j];

for(j=0;j

ss[i][j]='*';

}

}

void main()

{ char ss[M][N];

int i;

FILE *fp;

fp=fopen("test1-1.in","r");

if(fp==NULL)

{ printf("File cannot open!\n");

exit(0);

}

for(i=0;i

fscanf("%s",ss[i]);

printf("\nThe original strings are:\n");

for(i=0;i

printf("%s\n",ss[i]);

printf("\n");

fun(ss);

for(i=0;i

printf("%s\n",ss[i]);

fclose(fp);

}

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

程序的功能是:删除一个字符串中指定的字符。

编写fun函数,其功能是删除一个字符串中指定的字符。假设字符串为:turbo c and borland c++,指定要删除的字符为n,则删除后的字符串变为:turbo c ad borlad c++。如果输入的字符在字符串中不存在,则字符串照原样输出。同一字母的大、小按不同字符处理。

在main函数中输入一个字符串(可以有空格)和一个要删除的字符,调用函数fun,最后输出结果。

一、程序调试题(40分)

磁盘上有一个名为test2-1.c 的C 程序,其中函数fun 的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:

⋯+-+-≈71

51314

例如,程序运行后,输入0.0001,则程序输出3.1414 。 请改正程序中的错误,使程序能得出正确的结果。 注意:不得增行或删行,也不得更改程序结构。 源程序如下:

# include # include float fun(float num) { int s;

float n,t,pi;

t=1;pi=0;n=1;s=1; while(t>=num)

{ pi=pi+t; n=n+2; s=-s; t=s%n; }

pi=pi*4; return; }

main() {

float n1,n2; FILE *fp;

fp=fopen("test2-1.out","r"); if(fp==NULL)

{ printf("\nFile cannot open!\n"); exit(0); }

printf("Enter a float number:"); scanf("%f",&n1); n2=fun();

printf("%6.4f\n",n2);

fprintf(fp,"Result=%6.4f\n",n2); fclose(fp); }

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

编写函数fun ,其功能是:将形参指针a 指向的字符顺序放入形指针c 指向的字符串中,再把形参指针b 指针的字符串逆序放入形参指针c 指向的字符串中。注:不能使用字符串的复制和连接函数。

例如:a 指向的字符串为adcb ,b 指向的字符串为213,则字符串c 中的内容为adcb312。

一、程序调试题(40分)

磁盘上有一个名为test3-1.c的C程序文件,其中函数fun的功能是:将数组a中n个整数进行移动,大于等于0的数放在数组的前面,小于0的数放在后面。

例如:数组中的数为:12 -34 56 -9 -10 25 9 -8 24 90,移动后的结果为:12 56 25 9 24 90 -34 -9 -10 -8

在main函数中,从一文本文件test3-1.in中读取10个整数放入整型数组中,调用函数fun,并输出最后的结果。

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

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

源程序如下:

# include

void fun(int a[],int n)

{

int i,j=0,b[20];

for(i=0;i

if(a[i]>=0)

b[j]=a[i];

for(i=0;i

if(a[i]>0)

b[j++]=a[i];

for(i=0;i

a[i]=b[i];

}

void main()

{

int a[10],i;

char filename[20];

FILE *fp;

printf("Input filename:");

scanf("%c",filename);

if((fp=fopen(filename,"r"))==NULL){

printf("Cannot open the file.\n");

exit(0);

}

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

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

fun(a,10);

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

printf("%4d",a+i);

fclose(fp);

}

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

编写函数fun,函数fun的功能是:将字符串s最右边的n个字符赋值到新串t中,若n大于s的长度,则将s复制到t中。注:不能使用字符串的复制函数。

相关文档
最新文档