2015-11-20 06:30:05
阅读( 135 )
编程题:
88.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。
例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是****ABCDEFG。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
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);
}
91.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。
例如,当a=45,b=12,调用该函数后,c=5241。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
void fun(int a, int b, long *c)
{
}
main()
{
int a,b;
long c;
clrscr();
printf(” Input a, b: “);
scanf(“%d%d”, &a,&b);
fun(a,b,&c);
printf(” The result is :%ld\n”, c);
}
改错题:
51.下列给定程序中,函数fun的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指字符串中。例如:把3个串abe,CD,EF串连起来,结果是abcCDEF。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
#include
/********found********/
int fun ( char str[][10], int m, char *pt )
{
int k, q, i ;
for ( k = 0; k < m; k++ )
{
q = strlen ( str [k] );
/********found********/
for (i=0; i
pt[i] = str[k,i] ;
pt += q ;
pt[0] = 0 ;
}
}
main( )
{
int m, h ;
char s[10][10], p[120] ;
clrscr() ;
printf(“\nPlease enter m:” ) ;
scanf(“%d”, &m) ;
gets(s[0]) ;
printf( “\nPlease enter %d string:\n”, m );
for ( h = 0; h < m; h++ )
gets( s[h]) ;
fun(s, m, p) ;
printf( “\nThe result is : %s\n”, p) ;
}
54.下列给定程序中,函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。
请改正函数fun中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
/********found********/
double fun(char*s, char*t)
{
int s1=0,t1=0;
char *ss, *tt;
ss=s;
tt=t;
/********found********/
while(*ss)
{
s1++;
(*ss)++;
}
/********found********/
while(*tt)
{
t1++;
(*tt)++;
}
if(t1>s1)
return t;
else
return s;
}
main()
{
char a[80],b[80],*p,*q;
int i;
clrscr();
printf(“\nEnter a string : “);
gets(a);
printf(“\nEnter a string again : “);
gets(b);
printf(“\nThe longer is :\n\n%s\n”,fun(a,b));
}
分享给朋友:
亲~ 如果您有更好的答案 可在评论区发表您独到的见解。
您想查看更多的信息:
面试题