请补充函数fun,该函数的功能是比较字符串str1和str2的大小,井返回比较的结果。例如: 当str1=“cdef",str2=“cde”时,函数fun()返回“>”。注意:部分源程序给出如下。请勿改动主函数main 和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:include< stdio, h>include<conio. h>define N 80char *fun (char *str1,char *str2){char *p1=str1, *p2=s

题目

请补充函数fun,该函数的功能是比较字符串str1和str2的大小,井返回比较的结果。

例如: 当str1=“cdef",str2=“cde”时,函数fun()返回“>”。

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

请勿改动主函数main 和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

include< stdio, h>

include<conio. h>

define N 80

char *fun (char *str1,char *str2)

{

char *p1=str1, *p2=str2;

while (*p1 & & *p2 )

{

if (【 】)

return "<";

if(【 】)

return ">";

p1++;

p2++;

}

if (*p1=*p2)

return "==";

if (*p1==【 】)

return "<";

else

return ">";

}

main()

{

char str1 [N], str2 [N];

clrscr ();

printf ("Input str1: \n");

gets (str1);

printf ("Input str2: \n");

gets (str2);

printf ("\n*****the result*****\n");

printf ("\nstr1 %s str2", fun (str1, str2) );

}


相似考题
参考答案和解析
正确答案:*p1*p2 *p1>*p2 \0’
*p1*p2 *p1>*p2 \0’ 解析:第一空:比较两个字符串的大小,是从第一个字符开始比较,如果两字符不相等,则由字符的大小决定字符串 P2指向字符串str2,如果p1所指的字符小于p2所指的字符,则字符串str1小于字符串str2。第三空:如果p1所指的字符大于p2所指的字符,则字符串str1 大于字符串str2。第三空:如果str1是str2 的前一部分,则str1 的所有字符都等于str2 中的对应字符,而字符串结束标记符‘\0’小于其他字符,所以,这里如果p1所指的字符等于‘\0’,则表示字符串str1小于字符串str2。
更多“请补充函数fun,该函数的功能是比较字符串str1和str2的大小,井返回比较的结果。 例如:当str1=“cdef ”相关问题
  • 第1题:

    使用VC++6.o打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*str1,char*str2),此函数的功能是计算str1中出现str2的个数,当不出现时,则返回0。 例如: str1为“asdfsfdfg” str2为“sf”则返回1 str2为“df”则返回3 注意:不能修改函数的其他部分。 试题程序: include<iostream.h> //注意只能使用int类型,不能类型转换 intfun(char*str1,char*str2) { } voidmain() { charstr1[1024]; charstr2[256]; cout<<"pleaseinputastring:"<<endl; cin.getline(str1,1024); cout<<"pleaseinputotherstring;"<<endl cin.getline(str2,256); cout<<fun(str1,str2); cout<<endl; return; }


    正确答案:
    intfun(char*str1.char*str2)
    {
    intsize=0;
    intstrllen;
    intstr2len;
    for(strllen=0;str1[strllen]!=0;strllen++);
    for(str21en=0;str2[str21en]!=0;str2len++);
    for(inti=0:i<strllen;i++)
    {
    intj=0;
    for(;j<str21en;j++)
    if(strl[i+j]!=str2[j])
    break;
    if(i==str21en)
    {
    ++size;
    i+=j;
    }
    }
    returnsize;
    }
    【解析】本题考查的是字符串查找算法。首先求出两个字符串的长度,然后循环遍历第1个字符串,再使用一个内循环遍历第2个字符串,判断两个字符串相应位置是否一致。如果遍历完第2个字符串,所有位置都一致,则记数值size增1,即找到一个子串。

  • 第2题:

    请补充函数proc(),该函数的功能是:把从主函数中输入的字符串str2接在字符串str1的后面。

    例如,str1=”I am a”,str2=”student”,结果输出:I am a student。

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

    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。

    试题程序:


    正确答案:

    【1】*(pl+i)【2】+p2【3】*p2++
    【解析】要将字符串str2接在字符串str后面,首先要得到字符串str1的长度,因此【1】填“*(p1+i)”。然后将字符串str2中的每一个字符接在字符串str1所有字符的后面,因此【2】填“*p2”;【3】填“*p2++”。

  • 第3题:

    下列说法正确的是()。

    A.strlen()计算的是包含'0'在内的字符串的长度。###SXB###B.字符串不能使用赋值运算符整体复制,必须使用strcpy函数进行字符串的复制。strcpy(str2, str1);是将字符数组str2中的字符串复制到字符数组str1中。###SXB###C.strcat(str2, str1);是将字符数组str2中的字符串连接到字符数组str1中的字符串的末尾,str1中的字符串末尾的空字符'0'将被覆盖。###SXB###D.字符串不能用关系运算符>,<,==直接比较大小,必须使用strcmp函数比较大小,当出现第一对不相等的字符时,就由这两个字符的ASCII码值的大小来决定其所在字符串的大小。
    随机误差

  • 第4题:

    请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2倒置后接在字符串str1后面。

    例如:str1=“How do”,str2=“?od uoy”,结果输出:“How do you do?”。

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

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<stdio.h>

    include<conio.h>

    define N 40

    void fun(char *str1,char *str2)

    {

    int i=0,j=0,k=0,n;

    char ch;

    char *p1=str1;

    char *p2=str2;

    while(*(p1+i))

    i++;

    while(*(p2+j))

    j++;

    n=【 】;

    for(;k=j/2;k++,j--)

    {

    ch=*(p2+k);

    *(p2+k)=*(p2+j);

    *(p2+j)=ch;

    }

    【 】;

    for(;【 】;i++)

    *(p1+i)=*p2++;

    *(p1+i)='\0';

    }

    main()

    {

    char str1[N],str2[N];

    int m,n,k;

    clrscr();

    printf("***Input the string str1 & str2

    ***\n");

    printf("\nstr1:");

    gets(str1);

    printf("\nstr2:");

    gets(str2);

    printf("***The string str1 & str2 ***\n");

    puts(str1);

    puts(str2);

    fun(str1,str2);

    printf("*** The new string ***\n");

    puts (str1);

    }


    正确答案:j-- *(p2+n)='\0' *p2
    j-- *(p2+n)='\0' *p2 解析:第一空:while循环执行后,变量j中保存了字符串str2的长度,而后面的for循环是将字符串str2倒置,即将第一个字符与最后一个字符对调,第二个字符与倒数第二个字符对调,如此循环直到中间的字符。第一次执行循环时,*(p2+j)指向最后一个字符,所以j要减1,并将未减1之前的数赋给n。第二空:将字符串str2倒置后,在字符串的最后要加上结束标记符,'\0'。第三空:当*p2所指的字符为,'\0'时,说明已经将倒置后的字符串str2都接在字符串str1后面了,for循环应该结束。当*p2所指的为其他字符时,for循环要继续执行。

  • 第5题:

    下列说法正确的是()。

    A.strlen()计算的是包含'0'在内的字符串的长度。#B.字符串不能使用赋值运算符整体复制,必须使用strcpy函数进行字符串的复制。strcpy(str2, str1);是将字符数组str2中的字符串复制到字符数组str1中。#C.strcat(str2, str1);是将字符数组str2中的字符串连接到字符数组str1中的字符串的末尾,str1中的字符串末尾的空字符'0'将被覆盖。#D.字符串不能用关系运算符>,<,==直接比较大小,必须使用strcmp函数比较大小,当出现第一对不相等的字符时,就由这两个字符的ASCII码值的大小来决定其所在字符串的大小。
    C 应发合计属于由计算机自动计算的项目。