若给fun函数的形参S传送字符串:”abe.6354abc”,则函数的返回值是_________。(字符串中包括空格)

题目

若给fun函数的形参S传送字符串:”abe.6354abc”,则函数的返回值是_________。(字符串中包括空格)


相似考题
更多“ 若给fun函数的形参S传送字符串:”abe.6354abc”,则函数的返回值是_________。(字符串中包括空格) ”相关问题
  • 第1题:

    假定输入的字符串中只包含字母和*号。请编写函数 fun(),它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的K度,形参h给出了字符串中前导*号的个数,形参e给出了字符山中最后*号的个数。在编写函数时,不得使用c语言提供的字符串函数。

    例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是A*BC*DEF*G。

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

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

    试题程序:

    include <stdio.h>

    include <conio.h>

    void fun (char *a;int n ,int h ,int e)

    {

    }

    main ( )

    {

    char s [81],*t,*f;

    int m=0,tn=0, fn=0;

    printf("Enter a string :\n");

    gets (s);

    t=f=s;

    while (*t)

    {t++;m++; } /*m为字符串的长度*/

    t--; /*指针t指身字符串尾部*/

    while (*t=='*')

    {t--; tn++; }

    /*指针t指向最后一个字母,tn统计尾部'*'的个数*/

    while (*f=='*' )

    {f++;fn++;}

    /*指针f指向第一个字母,tn统计导'*'的个数*/

    fun( s, m, fn, tn);

    printf ("The string after deleted: \n");

    puts (s);

    }


    正确答案:void fun (char *a int n int h int e) { int ij=0 for (i=h; in-e; i++) /*第一个字母和最后一个字母之间的字符全不删除*/ a[j++]=a[i]; a[j]='\0; /*在字符串最后加上结束标记*/ }
    void fun (char *a, int n ,int h , int e) { int i,j=0 for (i=h; in-e; i++) /*第一个字母和最后一个字母之间的字符全不删除*/ a[j++]=a[i]; a[j]='\0; /*在字符串最后加上结束标记*/ } 解析:注意循环变量i的初值(h)和终止值(n-e),由于h和e分别是a中的前导*和尾部*的个数,n是字符串的长度,所以从a[h])到a[n-e-1]之间的所有字符都要留下,而其他字符均删除。删除操作(即留下相应字符)现己由循环完成。
    本题技巧部分:
    void fun(char *a, int n, int h, int e )
    {a[n-e]='\0;
    strcpy(a,a+h);}
    另外,请注意,a(n-e]的作用是使最后一个字母后出现字符串结束符。木程序采用了strcpy()库函数。

  • 第2题:

    假定输入的字符串中只包含字母和*号。请编写函数 fun(),它的功能是:使字符串中前部的*号不得多余n个;若多余n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。

    例如,字符串中的内容为****A*BC*DEF*G*******,若 n的值为2,删除后,字符串中的内容则应当是 **A*BC*DEF*G*******;若n的值为4,则字符串中的内容仍为****A*BC*DEF*G******。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。

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

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

    试题程序:

    include <stdio.h>

    include <conio.h>

    void fun (char Aa, int n)

    {

    }

    main ()

    { char s[81];int n;

    printf ("Enter a string : \n") ;gets (s);

    printf ("Enter n : "); scanf ("%d", &n);

    fun( s,n );

    printf("The string after deleted :\n");

    puts (s);

    }


    正确答案:void fun(char *aint n) { int i=0k=0; char *p*t; p=t=a; /*开始时p与t同时指向数组的首地址*/ while(*t==‘*’) /*用k来统计前部星号的个数*/ {k++; t++;} if(k>n) /*如果k大于n则佼p的前部保留n个星号其后的字符依次存入数组a中*/ {while(*P) {a[i]=*(p+ k-n); i++ p++; } a[i]=‘\0’; /*在字符串最后加上结束标志位*/ } }
    void fun(char *a,int n) { int i=0,k=0; char *p,*t; p=t=a; /*开始时,p与t同时指向数组的首地址*/ while(*t==‘*’) /*用k来统计前部星号的个数*/ {k++; t++;} if(k>n) /*如果k大于n,则佼p的前部保留n个星号,其后的字符依次存入数组a中*/ {while(*P) {a[i]=*(p+ k-n); i++ p++; } a[i]=‘\0’; /*在字符串最后加上结束标志位*/ } } 解析:while() 循环的作用是计算出前部星号的个数;if()的作用是判断星号个数是否多于n个,若是则只保留n个星号,即从字符串前部的倒数第n个星号开始,到最后一个字符都存入数组a中,最后记得在字符串最后加上结束标志位。

  • 第3题:

    请编写一个函数fun(),它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较K的字符串。若两个字符串长度相等,则返回第1个字符串。

    例如,输入beijing<CR>shanghai<CR>(<CR>为回车键),函数将返回shanghai。

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

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

    试题程序:

    include<stdio.h>

    char *fun(char *s, char *t)

    {

    }

    main()

    {

    char a[20],b[10],*p,*q;

    int i;

    printf ("Input 1th string: ");

    gets(a);

    printf{"Input 2th string: ");

    gets(b);

    printf("%s",fun(a,b));

    }


    正确答案:char *fun(char *s char *t) { int ii; for(i=0;s[i]!= '\0';i++); /*求字符串的长度*/ for(j=0;t[i]!= '\0';j++); if(i>=j) /*比较两个字符串的长度*/ return s; /*函数返回较长的字符串若两个字符串长度相等则返回第1个字符串*/ else return t; }
    char *fun(char *s, char *t) { int i,i; for(i=0;s[i]!= '\0';i++); /*求字符串的长度*/ for(j=0;t[i]!= '\0';j++); if(i>=j) /*比较两个字符串的长度*/ return s; /*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/ else return t; } 解析:本题中,第1个for循环的作用是求出s的字符个数i,第2个for循环的作用是求出t的字符个数j,因为任何循环都要控制一条语句,所以在每一个for循环条件后面必须要有一个分号。
    本题也可用如下技巧:
    char*fun(char*s,char*t)
    {if(strlen(s)>=strlen(t)return s;
    else return t;
    }

  • 第4题:

    若给fun函数的形参s传送字符串:"abc-6354abc",则函数的返回值是( )。(字符串中包括空格)

    long fun(char S[])

    {long n;int sign;

    for(;isspace(*s)||islower(*s);s++);

    sign=(*s=='-')?-1:1;

    if(*s=='+'||*s=='-')s++;

    for(n=0;isdigit(*s);s++)

    n=10*n+(*S-'0');

    return sign*n;

    }


    正确答案:-6354
    -6354 解析:本题的考查点是函数的返回值。这个函数的目的是提取出由函数的形参传送来的字符串中的数字字符,并通过相应字符位置计算出它们数值形式的幂,最后返回字符串中的数字字符的数值形式,所以函数的返回值应当是“-6354”。

  • 第5题:

    str是全部由小写字母字符和空格字符组成的字符串,由 num传入字符串的长度。请补充函数fun(),该函数的功能是:统计字符串str中的单词个数,结果由变量num传回。每个单词之间都由空格隔开,并且字符串str开始不存在空格。

    例如:str=“how do you do”,结果为:num=4。

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

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

    试题程序:

    include <stdio.h>

    define N 80

    void fun(char *s,int *num)

    {

    int i,n=0;

    for(i=0;【 】;i++)

    {

    if(s[i]>='a',&&s[i]<='z',&&(s[i+1)==’’||s[i+1]=='\0'))

    【 】;

    }

    【 】;

    }

    main()

    {

    char str[N];

    int num=0;

    printf("Enter a string:\n");

    gets(str);

    while(str[num])

    num++;

    fun(str,&num);

    printf("The number of word is:

    %d\n\n",num);


    正确答案:i*num n++ *num=n
    i*num n++ *num=n 解析:第一空:*num传入字符串的长度,所以for循环中变量i的变化范围是从0到*num-1。第二空:如果当前判断的字符是小写字母,并且它的下一个字符是空格或者是字符串结束标记符,则表示当前字符是一个单词的最后一个字母,统计单词数的变量n要加上1。第三空:题目要求结果由变量num传回,所以要将n的值赋给指针num所指的单元。

  • 第6题:

    请编写一个函数void fun(char ss[]),该函数将字符串ss翻转,如ss为“123abc”则翻转后为“cba321”。注意:用数组方式及for循环来实现该函数。

    注意:部分源程序已存在文件test16_2.cpp中。

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

    文件test16_2.cpp 的内容如下:

    include<iostream.h>

    include<string.h>

    void fun (char ss[]);

    void main ( )

    {

    char s[80];

    cout<< "请输入字符串: ";

    cin>>s;

    fun(s);

    cout<< "逆序后的字符串: "<< s<<end1;

    }

    void fun(char ss[])

    {

    }


    正确答案:void fun(char ss[]) { int n=strlen(ss); for(int i=0;i(n/2); i++) { char c=ss[i]; ss[i]=ss[n-1-i]; ss[n-1-i]=c; } }
    void fun(char ss[]) { int n=strlen(ss); for(int i=0;i(n/2); i++) { char c=ss[i]; ss[i]=ss[n-1-i]; ss[n-1-i]=c; } } 解析:本题考查的是考生利用数组及for循环、if条件判断等基本控制语句解决实际问题的能力,基本算法是根据字符串的对称性把对应的两个字符串互相换位。

  • 第7题:

    给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。

    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

    注意:源程序存放在考生文件夹下的BLANKl.C中。

    不得增行或删行,也不得更改程序的结构!


    正确答案:(1)N (2)substr (3)0
    (1)N (2)substr (3)0 解析:本题中函数fun的功能是在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。
    在fun函数中,利用循环逐个查找ss所指字符串数组中的每一个字符串,并判断是否含有substr所指的子串,有则输出。

  • 第8题:

    若已经定义了如下函数  FUN(*p)  { return *p; }  则该函数的返回值是()。 

    • A、不确定的值
    • B、形参p中存放的值
    • C、形参p所指的存储单元中的值
    • D、形参p的地址值

    正确答案:C

  • 第9题:

    函数ALLTRIM()作用是()。

    • A、给字符串尾部增加空格
    • B、去掉字符串尾部空格
    • C、去掉字符串前后空格
    • D、去掉字符串首部空格

    正确答案:C

  • 第10题:

    单选题
    数据结构里,关于字符串函数strcmp()描述错误的是()。
    A

    函数功能是比较两个字符串的大小。

    B

    字符串1等于字符串2,函数返回值等于true

    C

    字符串1大于字符串2,函数返回值是1。

    D

    字符串1小于字符串2,函数返回值是-1。


    正确答案: D
    解析: 暂无解析

  • 第11题:

    单选题
    已定义以下函数      Int fun(int *p)      {return *p;}  则fun函数返回值是()
    A

    不确定的值

    B

    一个整数

    C

    形参P中存放的值

    D

    形参P的地址值


    正确答案: C
    解析: 暂无解析

  • 第12题:

    单选题
    若已经定义了如下函数  FUN(*p)  { return *p; }  则该函数的返回值是()。
    A

    不确定的值

    B

    形参p中存放的值

    C

    形参p所指的存储单元中的值

    D

    形参p的地址值


    正确答案: A
    解析: 暂无解析

  • 第13题:

    假定输入的字符串中只包含字母和*号。请编写函数 fun(),它的功能是:除了尾部的,:号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言的字符串函数。

    例如,若字符串中的内容为****A*BC*DEF*G******,删除后,字符串中的内容应当是ABCDEFG******。

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

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

    试题程序:

    include<conio. h>

    include<stdio. h>

    void fun(char *a, char *p)

    {

    }

    main ( )

    char s[81],*t;

    printf ("Enter a string: \n ");

    gets (s);

    t=s;

    while (*t)

    t++;

    t--; /*指针t指向字符串尾部* /

    while (*t== '*' )

    t--; /*指针t指向最后一个字母*/

    fun (s, t);

    printf ("The string after deleted: \n");

    puts (s);

    }


    正确答案:void fun(char *a char *p) { char *t=a; for (; t=p; t++) if(*t!='*') * (a++)=*t; /*将p以前所有不是*号的字符保留下来*/ for (;*t!='\0' ;t++) * (a++) =.t; / * 将p以后的所有*号保留下来*/ *a='\0'; / *在字符串最后加上结束标记位*/
    void fun(char *a, char *p) { char *t=a; for (; t=p; t++) if(*t!='*') * (a++)=*t; /*将p以前所有不是*号的字符保留下来*/ for (;*t!='\0' ;t++) * (a++) =.t; / * 将p以后的所有*号保留下来*/ *a='\0'; / *在字符串最后加上结束标记位*/ 解析:本题曾在历年上机考试及模拟试题中多次出现,一般用两个循环语句来实现。第1个循环的作用是将p以前所有不是*号的字符保留下来,即删除所有的*号。第2个循环的作用是将p以后的所有*号保留下来。

  • 第14题:

    请编写函数fun(),该函数的功能是判断字符串是否为回文,若是则函数返回1,主函数中输出YES:否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。

    例如:字符串LEVEL是回文,而字符串123312就不是回文。

    注意;部分源程序已存在文件test26_.cpp中。

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

    文件test26_2.cpp的内容如下:

    include<iostream.h>

    include<stdio.h>

    define N 80

    int fun(char*str)

    {

    }

    void main()

    {char s[N];

    cout<<"Enter a string:"<<endl;

    gets{s);

    cout<<"\n\n";

    puts(s);

    if(fun(s))

    cout<<"YES\n";

    else

    cout<<"NO\n";

    }


    正确答案:int fun(char*str) {int in=Ofg=1; char*p=str; while(*p) {n++; p++;} for(i=0;in/2;i++) if(str[i]==str[n-1-i]) ; else {fg=O;break;} return fg; }
    int fun(char*str) {int i,n=O,fg=1; char*p=str; while(*p) {n++; p++;} for(i=0;in/2;i++) if(str[i]==str[n-1-i]) ; else {fg=O;break;} return fg; } 解析:解答本题的主要思路是:首先要利用循环中指针的移动来求得字符串的长度n,然后用一个for循环依次取得数组中的前半部分元素,用取得的前半部分内的元素逐个与后半部分内的对应位置的元素进行比较,如果相同,不做任何工作,接着取下一个元素,继续比较:如果不相同,可以判断该字符串肯定不是回文,就给标志变量fg赋值0(fg的初始值为1)。最终把fg作为函数的返回值返回(fg值为1表明是回文,fg值为0表明不是回文)。

  • 第15题:

    假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串的前导*号不得多于n个;若多于n个,则删除多余的*号:若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。

    例如,字符串中的内容为:******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为;*******A*BC*DEF*G****。n的值在主函数中输入。

    在编写函数时,不得使用C语言提供的字符串函数。

    注意:部分源程序在文件PROGl.C文件中。

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


    正确答案:
    解析:该程序功能是根据字符串前导的“*”号个数进行相关操作。解题过程首先确定字符串尾,然后由串头开始对字符进行判断,同时对“*”字符进行统计,如果大于n,就进行截取。

  • 第16题:

    以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如,str所指字符串为Hello!,c中的字符为e,则函数返回字符串ello!的首地址。若str所指字符串为空或不包含c中的字符,则函数返回NULL,请填空。char *fun(char *str,char c){ int n=0; char *p=str; if(p!=NULL) while(p[n]!=c&&p[n]!=’\0’) n++; if(p[n]==’\0’) return NULL; return();}


    正确答案:p+n
    在本题中,函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址。
    在本题的程序中,fun函数带有两个形参,其中一个是指针str,它指向字符串的首地址,另一个是字符变量c。程序首先定义了一个整型变量n,从程序中可知,它是字符串str中参数c相对于首地址的偏移量,然后定义了一个指针变量p,指向字符串str的首地址,然后执行条件语句,如果字符串不为空,则执行循环语句,循环结束的条件是要么字符串结束,要么找到形参c中对应的字符。根据循环结束的条件我们可以判断,其非死循环,循环结束后,从程序中可以看出,判断循环结束的原因是否因为字符串结束而结束的,如果是,说明没找到形参c中对应的字符,返回NULL。
    如果不是,则说明是因为找到了形参c中对应的字符而结束循环的。根据题目要求,需要返回以形参c中字符开头的后续字符串的首地址,而这时以形参c中字符开头的后续字符串的首地址为p+n。

  • 第17题:

    请编写一个函数fun(),它的功能是将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。

    例如,若输入字符串“-1234”,则函数把它转换为整数值 -1234。

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

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

    试题程序:

    include <stdio.h>

    include <string.h>

    long fun(char *p)

    {

    }

    main ( )

    {

    char s[6];

    long n;

    printf("Enter a string:\n");

    gets(s);

    n=fun(s);

    printf("%ld\n",n);

    }


    正确答案:long fun (char *p) { long n=0; int flag=1; if(*p=='-') /*负数时置flag为-1*/ {p++;flag=-1;} else if(*p=='+') /*正数时置flag为1*/ p++; while(*p!='\0') {n=n*10+*p-'0'; /*将字符串转成相应的整数*/ p++; } return n*flag; }
    long fun (char *p) { long n=0; int flag=1; if(*p=='-') /*负数时置flag为-1*/ {p++;flag=-1;} else if(*p=='+') /*正数时置flag为1*/ p++; while(*p!='\0') {n=n*10+*p-'0'; /*将字符串转成相应的整数*/ p++; } return n*flag; } 解析:if()的作用是判断它是正数还是负数。while()循环的作用是将字符串转成相应的整数。注意*p是一个字符如'9', '4',并不是一个数,要将其转成相应的数字必须令其减去'0'(不是'\0'),即*p-'0'就得到*p这个字符的相应数字。如'0'-'0'=0, '8'-'0'=8等。必须在程序的前面加#includestdlib.h>,函数atol()的作用是将字符串p转成长整型数,它是一个库函数。

  • 第18题:

    给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。

    例如,形参s所指的字符串为:This is a C languageprogram.,函数的返回值为6。

    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

    注意:源程序存放在考生文件夹下的BLANKl.C中。

    不得增行或删行,也不得更改程序的结构!


    正确答案:(1)n++ (2)0 (3)s++
    (1)n++ (2)0 (3)s++ 解析:本题中函数fun的功能是计算出形参s所指字符串中包含的单词个数,作为函数值返回。单词之间是以空格隔开的,因此在字符串里面搜索空格,找到一个空格则单词数量加1,如此搜索完整个字符串便可得到单词数量。

  • 第19题:

    已定义以下函数      Int fun(int *p)      {return *p;}  则fun函数返回值是()

    • A、不确定的值
    • B、一个整数
    • C、形参P中存放的值
    • D、形参P的地址值

    正确答案:B

  • 第20题:

    数据结构里,关于字符串函数strcmp()描述错误的是()。

    • A、函数功能是比较两个字符串的大小。
    • B、字符串1等于字符串2,函数返回值等于true
    • C、字符串1大于字符串2,函数返回值是1。
    • D、字符串1小于字符串2,函数返回值是-1。

    正确答案:B

  • 第21题:

    单选题
    函数ALLTRIM()作用是()。
    A

    给字符串尾部增加空格

    B

    去掉字符串尾部空格

    C

    去掉字符串前后空格

    D

    去掉字符串首部空格


    正确答案: C
    解析: 暂无解析

  • 第22题:

    单选题
    有以下函数:int fun(char *s,char *t){ while((*s)&&(*t)&&(*t++==*s++)); return (*s-*t);}函数的功能是(  )。
    A

    求字符串的长度

    B

    比较两个字符串的大小

    C

    将字符串s复制到字符串t中

    D

    连接字符串s和字符串t


    正确答案: C
    解析:
    函数体执行过程为:将两个字符串首地址传入函数,分别赋给指针s与t,在函数体内s与t所指向的字符串的字符不为'\0'时,判断两个指针指向的字符是否相同,若相同则两个指针分别加一指向下一个字符,若不同则退出while循环,返回不相同的字符的ASCII码值之差。返回值大于0表示字符串s>t;返回值小于0表示s<t;返回值为0,表示s=t。函数实现了比较两个字符串大小的功能。答案选择B选项。

  • 第23题:

    问答题
    规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。例如,字符串中的内容为“****A*BC*DEF*G*******”,若n的值为4,删除后,字符串中的内容应;“****A*BC*DEF*G****”;若n的值为7,则字符串中的内容仍为“****A*BC*DEF*G*******”。n的值在:函数中输入。编写函数时,不得使用C语言提供的字符串函数。  注意:部分源程序给出如下。  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include void fun(char *a,int n){}main(){ char s[81]; int n; printf(Enter a string:); gets(s); printf(Enter n:); scanf(%d,&n); fun(s,n); printf(The string after deleted:); puts(s);}

    正确答案:

    void fun(char *a,int n)
    {
    int i=0,k=0;
    char *p,*t;
    p=t=a;
    while(*t)
    t++;
    t--;
    while(*t=='*')
    {
    k++;
    t--;
    }
    if(k>n)
    {
    while(*p&&p<t+n+1)
    {
    a[i]=*p;
    i++;
    p++;
    }
    a[i]='\0';
    }
    }
    解析: 通过第一个while循环统计出字符串的有效长度,不包括最后的结束符;第二个while循环统计字符串尾部*号的个数,循环结束时,k值记录了原字符串结尾星号的数目,t指向字符串中最后一个不为星号的字符的下标。然后通过if语句比较尾部*号数是否多于n个,若大于则保留n个*号和其余字符,总共需要保留的字符数是t+n+1,1是指最后的结束符。