编程题:
24.请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。
例如,若输入字符串“-1234”,则函数把它转换为整数值-1234。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
long fun ( char *p)
{
}
main()
{
char s[6];
long n;
printf(“Enter a string:\n”);
gets(s);
n = fun(s);
printf(“%ld\n”,n);
}
25.请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字
符串。
例如,输入:beijing shanghai(为回车键),函数将返回shanghai。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
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\n”, fun(a, b ));
}
改错题:
38.下列给定程序中,函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
int fun(int *x,int y)
{
int t;
/********found********/
t = x ;
x = y ;
/********found********/
return(y) ;
}
main()
{
int a = 3, b = 8 ;
clrscr() ;
printf(“%d %d\n”, a, b) ;
b = fun(&a, b) ;
printf(“%d %d\n”, a, b) ;
}
50.下列给定程序中函数fun的功能是:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。例如:当s中的字符串为ABCDE时,则t中的字符串应为EDCBAABCDE。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
#include
void fun(char *s,char *t)
{
int s1, i;
s1 = strlen(s);
/********found********/
for (i=0; i
t[i] = s[s1-i];
for (i=0; i
t[s1+i] = s[i];
t[2*s1] = ‘\0′;
}
main()
{
char s[100], t[100];
clrscr();
printf(“\nPlease enter string s:”);
scanf(“%s”, s);
fun(s, t);
printf(“The result is: %s\n”,t);
}