2015-09-13 06:30:02
阅读( 168 )
编程题:
52.编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。
例如,分别输入下面两个字符串:
FirStString–
SecondString
则程序输出:FirstString–SecondString
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
void fun(char p1[], char p2[])
{
}
main()
{
char s1[80], s2[40] ;
clrscr() ;
printf(“Enter s1 and s2:\n”) ;
scanf(“%s%s”, s1, s2) ;
printf(“s1=%s\n”, s1) ;
printf(“s2=%s\n”, s2) ;
printf(“Invoke fun(s1,s2):\n”) ;
fun(s1, s2) ;
printf(“After invoking:\n”) ;
printf(“%s\n”, s1) ;
}
56.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是;除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。
例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的则内容应当是ABCDEFG*******。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
void fun( char *a, char *p)
{
}
main()
{
char s[81],*t;
printf(“Enter a string:\n”);
gets(s);
t=s;
while(*t)
t++;
t–;
while(*t==’*')
t–;
fun( s , t );
printf(“The string after deleted:\n”);
puts(s);
}
改错题:
87.下列给定程序中,函数fun的功能是:给一维数组a输入任意4个整数,并按如下的规律输出。例如输入1、2、3、4,程序运行后将输出以下方阵:
4 1 2 3
3 4 1 2
2 3 4 1
1 2 3 4
请改正函数fun中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#define M 4
/********found********/
int fun(int a)
{
int i,j,k,m;
printf(“Enter 4 number : “);
for(i=0; i
scanf(“%d”,&a[i]);
printf(“\n\nThe result :\n\n”);
for(i=M;i>0;i–)
{
k=a[M-1];
/********found********/
for(j=M-1;j>0;j–)
a[j]=a[j+1];
a[0]=k;
for(m=0; m
printf(“%d “,a[m]);
printf(“\n”);
}
}
main()
{
int a[M];
fun(a);
printf(“\n\n”);
}
89.下列给定程序中,函数fun的功能是:求整数x的y次方的低3位值。例如,整数5的6次方为15625,此数的低3位值为625。
请改正函数fun中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
long fun(int x,int y,long *p)
{
int i;
long t=1;
/********found********/
for(i=1; i
t=t*x;
*p=t;
/********found********/
t=t/1000;
return t;
}
main()
{
long t,r;
int x,y;
printf(“\nInput x and y: “);
scanf(“%ld%ld”,&x,&y);
t=fun(x,y,&r);
printf(“\n\nx=%d, y=%d, r=%ld, last=%ld\n\n”,x,y,r,t);
}
分享给朋友:
亲~ 如果您有更好的答案 可在评论区发表您独到的见解。
您想查看更多的信息:
面试题