niusouti.com

编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。注意:部分源程序给出如下.请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include<conio.h>include<stdio.h>include<string.h>fun(char (*a) [81], int num, char *max){}main (){char ss[l0] [81],*ps;int n, i=0

题目

编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。

注意:部分源程序给出如下.

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include<conio.h>

include<stdio.h>

include<string.h>

fun(char (*a) [81], int num, char *max)

{

}

main ()

{

char ss[l0] [81],*ps;

int n, i=0;

clrscr();

prlntf("输入若干个字符串");

gets(ss[i]);

puts(ss[i]);

while(!strcmp(ss[i], "****")==0)

/*用****作为结束输入的标志*/

{

i++;

gets(ss[i]);

puts(ss[i]);

}

n=i;

ps=fun(ss,n,&ps);

print~("\nmax=%s\n",ps);

}


相似考题
参考答案和解析
正确答案:fun(char (*a)[81] int num char *max) { int i=0; max=a[0]; for (i=0; inum; i++) /*找出最长的一个字符串*/ if(strlen(max)strlen(a[i])) max=a[i]; return max; /*传回最长字符串地址*/ }
fun(char (*a)[81], int num, char *max) { int i=0; max=a[0]; for (i=0; inum; i++) /*找出最长的一个字符串*/ if(strlen(max)strlen(a[i])) max=a[i]; return max; /*传回最长字符串地址*/ } 解析:做本题之前,我们先应该明白ss是一个指向一维数组的指针变量,max是指向指针变量的指针变量。所以引用时要注意加上*。我们不可能只用max,因为ss[0]是一个数组地址而不是一个指针的地址。
更多“编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用**** ”相关问题
  • 第1题:

    应用中,C++中的字符指针在大多数情况下都指的是一个字符串(字符串数组首地址)。


    A

  • 第2题:

    编写函数get_max,其功能是将字符串s中最大字符的地址返回,再编写一个主函数,调用该函数,将字符串s中从最大字符开始的子串中小写字母转换成大写字母,然后输出新字符串s。例如,假设s的内容为“qwertyou”,则从最大字符’y’开始的子串为“you”,处理后的s为“qwertYOU”。 函数形式为:char *get_max(char s[])


    错误

  • 第3题:

    删除字符:输入一个字符串s,再输入一个单个字符c,将字符串中所有的c字符删除后输出该字符串。要求定义和调用函数delchar(char *s,char c),该函数将字符串s中出现的所有c字符删除。编写相应程序。


    可用cin.get() 或者 getchar()

  • 第4题:

    有一个字符串,通过指针,将此字符串中从第m个字符开始的n个字符复制到另一个字符串。


    A

  • 第5题:

    主函数传入字符串,单词之间以空格分隔,被调用函数中找出最长的单词,在主函数中输出此单词. 忽略单词中的非字母字符,单词长度相同的单词以最后一个作为输出单词。


    Rtrim$