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

题目

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

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若给fun函数的形参s传送字符串:"]]6354abcc" (其中]表示空格字符),则函数的返回值是【19】。

#include <ctype.h>

long fun(char s[])

{long n;int sign;

for(;isspace(*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

第2题:

假定输入的字符串中只包含字母和*号。请编写函数 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()库函数。

第3题:

以下函数 fun 的功能是返回 str 所指字符串中以形参 c 中字符开头的后续字符串的首地址 , 例如 : st r所指字符串为 : 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( 【 1 2 】 );

}


正确答案:
(12) 【 12 】 p+n
解析 : n++ 到一定数值 , 就找到所指的字符 , 返回 c 的地址。

第4题:

请编写一个函数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;
}

第5题:

假定输入的字符串中只包含字母和*号。请编写函数 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中,最后记得在字符串最后加上结束标志位。

第6题:

LTRIM(S)是去空格函数,返回S字符串去掉左边空格后的字符串。()


参考答案:正确

第7题:

假定输入的字符串中只包含字母和*号。请编写函数 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以后的所有*号保留下来。

第8题:

假定输入的字符串中只包含字母和*号。请编写函数 fun(),它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。

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

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

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

试题程序;

include <stdio. h>

include <conio. h>

void fun (char *a)

{

}

main()

{

char s[81];

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

gets (s);

fun (s);

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

puts (s);

}


正确答案:void fun (char *a) { char*p=a; while(*P==‘+’) p++; /*指针p指向字符串第一个字母*/ for(;*p!=‘\0’;p++a++) *a=*p; /*从第—个字母开始其后的字符都放入指针a所指的字符串中*/ *a=‘\0’; /*在字符串最后加上结束标记符*/ }
void fun (char *a) { char*p=a; while(*P==‘+’) p++; /*指针p指向字符串第一个字母*/ for(;*p!=‘\0’;p++,a++) *a=*p; /*从第—个字母开始,其后的字符都放入指针a所指的字符串中*/ *a=‘\0’; /*在字符串最后加上结束标记符*/ } 解析:在前面的改错题和编程题中,相关试题已经出现好多次了,我们在此提供另一种解答方法。
#includestring.h>
void fun (char *a)
{char *p=a;
while (*p==‘*’)p++;
strcpy(a,p);
}

第9题:

请编写函数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表明不是回文)。

第10题:

假定输入的字符串中只包含字母和*号。请编写函数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,就进行截取。

更多相关问题