计算机二级C语言上机题库及答案
二、改错题:
给定程序MODI1.C中函数fun的功能是:将字符串中的字符按逆序输出,但不改 变字符串中的内容。
例如,若字符串为abcd,则应输出:dcba。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
/************found************/
fun (char a)
{if (*a)
{fun(a+1);
/************found************/
printf("%c" *a);
}
}
main()
{char s[10]="abcd";
printf("处理前字符串=%s\n处理后字符串=", s);
fun(s); printf("\n");
}
解题答案:
/************found************/
void fun(char *a)
/************found************/
printf("%c", *a);
******************************************
三、程序题:
请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言 提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同, 则返回第一个字符串。
例如,输入beijing shanghai (为回车键), 函数将返回shanghai。
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
char *fun (char *s, char *t)
{
}
main()
{char a[20],b[20];
void NONO ();
printf("Input 1th string:");
gets(a);
printf("Input 2th string:");
gets(b);
printf("%s\n",fun (a, b));
NONO ();
}
void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i ;
char a[20], b[20] ;
fp = fopen("in.dat","r");
wf = fopen("out.dat","w");
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%s %s", a, b);
fprintf(wf, "%s\n", fun(a, b));
}
fclose(fp);
fclose(wf);
参考答案:
{
int i;
char *p=s, *q=t;
for(i=0;*p && *q; i++) {
p++; q++;
}
if(*p == 0 && *q == 0) return s ;
if(*p) return s ;
else return t ;
}
【计算机二级C语言上机题库及答案】相关文章: