网站二维码制作,wordpress设置网站背景图片,宁波网站建设培训学校,群晖wordpress无法修改端口第39套#xff1a;
给定程序中#xff0c;函数fun的功能是:在形参ss所指字符串数组中#xff0c;删除所有串长超过k的字符串#xff0c;函数返回所剩字符串的个数。ss所指字符串数组中共有N个字符串#xff0c;且串长小于M。 请在程序的下划线处填入正确的内容并把下划线…第39套
给定程序中函数fun的功能是:在形参ss所指字符串数组中删除所有串长超过k的字符串函数返回所剩字符串的个数。ss所指字符串数组中共有N个字符串且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行也不得更改程序的结构
给定源程序
#include stdio.h
#include string.h
#define N 5
#define M 10
int fun(char (*ss)[M], int k)
{ int i,j0,len;
for(i0; i __1__ ; i)
{ lenstrlen(ss[i]);
if(len __2__)
strcpy(ss[j],__3__);
}
return j;
}
main()
{ char x[N][M]{Beijing,Shanghai,Tianjing,Nanjing,Wuhan};
int i,f;
printf(\nThe original string\n\n);
for(i0;iN;i)puts(x[i]); printf(\n);
ffun(x,7);
printf(The string witch length is less than or equal to 7 :\n);
for(i0; if; i) puts(x[i]);printf(\n);
} 解题思路 本题是根据给定的字符串数组中删除串长大于某个值的字符串。 第一处利用for循环从几个字符串中进行查找程序中已经给定了N个字符串所以应填N。 第二处串长由形参k来传递所以应填k。 第三处如果字符串ss[i]的串长小于k则该字符串仍存在原字符串数组中位置由变量j 来控制所以应填ss[i]。 给定程序MODI1.C中函数fun的功能是逐个比较p、q所指两个字符串对应位置中的字符把ASCII值大或相等的字符依次存放到c所指数组中形成一个新的字符串。 例如若主函数中a字符串为aBCDeFgH 主函数中b字符串为ABcd 则c中的字符串应为aBcdeFgH。 请改正程序中的错误使它能得出正确结果。 注意不要改动main函数不得增行或删行也不得更改程序的结构。 给定源程序
#include stdio.h
#include string.h
void fun(char *p ,char *q, char *c)
{
int k 1;
while( *p ! *q )
{ if( *p*q ) c[k]*q;
else c[k]*p;
if(*p) p;
if(*q) q;
k;
}
}
main()
{ char a[10]aBCDeFgH, b[10]ABcd, c[80]{\0};
fun(a,b,c);
printf(The string a: ); puts(a);
printf(The string b: ); puts(b);
printf(The result : ); puts(c);
} 解题思路 第一处: 存放字符串初始位置也是从0开始存放的由于k是控制c字符串的位置值所以k值应为0。 第二处: 判断两个字符串中是否有字符串结束符产生所以应改为while( *p || *q ) 而不是两字符串中对应位置的值不相等。 假定输入的字符串中只包含字母和号。请编写函数fun它的功能是:除了字符串前导的号之外,将串中其它号全部删除。在编写函数时,不得使用C语言提供 的字符串函数。函数fun中给出的语句仅供参考。 例如字符串中的内容为ABCDEFG*****删除后, 字符串中的内容应当是****ABCDEFG。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容仅在函数fun的花括号中填入你编写的若干语句。 给定源程序
#include stdio.h
void fun( char *a )
{
int i0,k;
while(a[i]*) i;
ki1;
while(a[i]!\0) /* 以下程序段实现非*字符前移 */
{
}
a[i1]\0;
}
main()
{ char s[81];
printf(Enter a string:\n);gets(s);
fun( s );
printf(The string after deleted:\n);puts(s);
NONO();
}解题思路 本题是考察字符串的操作。
使用while循环语句求出字符串前导*号的个数。使用while循环语句判断a[i]是否是字符串结束符标志如果不是字符串结束标志则再判断是否是字符号如果不是号则把a[i]字符存入a[k]中如果是号则跳过该号直至字符串结束为止。 参考答案
void fun( char *a )
{
int i0,k;
while(a[i]*) i;
ki;
while(a[i]!\0) /* 以下程序段实现非*字符前移 */
{
if(a[i] ! *) a[k]a[i];
i;
}
a[k]\0;
}