c语言最长字符串 其余补齐,四川省二级C语言29次机试试题.doc

本文包含三套C语言程序试题,主要涉及字符串处理和数值计算。第一套题目要求调试一个程序,找出字符串数组中最长字符串并用星号填充其余字符串。第二套题目要求编写一个函数,删除字符串中的特定字符。第三套题目则要求通过循环计算π的近似值,直到满足特定精度。每套题目都包含了程序调试和编写新程序的任务。
摘要由CSDN通过智能技术生成

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

(第一套)

(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,最后输出结果。

(第二套)

(60分钟)

一、程序调试题(40分)

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

例如,程序运行后,输入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。

(第三套)

(60分钟)

一、程序调试题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值