请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
double f1(double x)
{return x*x;}
double f2(double x, double y)
{return x*y;}
/**********found**********/
__1__ fun(int i, double x, double y)
{if (i==1)
/**********found**********/
return __2__(x);
else
/**********found**********/
return __3__(x, y);
}
main()
{double x1=5, x2=3, r;
r = fun(1, x1, x2);
r += fun(2, x1, x2);
printf("\nx1=%f, x2=%f, x1*x1+x1*x2=%f\n\n",x1, x2, r);
}
解题答案:
/**********第一空**********/
double fun(int i, double x, double y)
/**********第二空**********/
return f1(x);
/**********第三空**********/
return f2(x, y);
****************************************** [NextPage] 二.改错题:给定程序MODI1.C中函数fun的功能是: 比较两个字符串,将长的那个字符串的首地址作为函数值返回。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
/**********found**********/
char fun(char *s, char *t)
{int sl=0,tl=0; char *ss, *tt;
ss=s; tt=t;
while(*ss)
{sl++;
/**********found**********/
(*ss)++;
}
while(*tt)
{tl++;
/**********found**********/
(*tt)++;
}
if(tl>sl) return t;
else return s;
}
main()
{char a[80],b[80];
printf("\nEnter a string : "); gets(a);
printf("\nEnter a string again : "); gets(b);
printf("\nThe longer is :\n\n\"%s\"\n",fun(a,b));
}
解题答案:
/**********found**********/
char *fun(char *s,char *t)
/**********found**********/
ss++;
/**********found**********/
tt++;
******************************************
[NextPage] 三、程序题:请编写函数fun,函数的功能是: 移动字符串中的内容,移动的规则如下: 把第1到第m个字符, 平移到字符串的最后, 把第m+1到最后的字符移到字符串的前部。
例如, 字符串中原有的内容为: ABCDEFGHIJK, m的值为3, 则移动后, 字符串中的内容应该是: DEFGHIJKABC。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
#define N 80
void fun1(char *w) /* 本函数的功能是将字符串中字符循环左移一个位置 */
{
int i; char t;
t=w[0];
for(i=0;i<(int)strlen(w)-1;i++)
w[i]=w[i+1];
w[strlen(w)-1]=t;
}
void fun(char *w, int m) /* 可调用fun1函数左移字符 */
{
}
main()
{char a[N]= "ABCDEFGHIJK";
int m;void NONO ();
printf("The original string:\n");puts(a);
printf("\n\nEnter m: ");scanf("%d",&m);
fun(a,m);
printf("\nThe string after moving:\n");puts(a);
printf("\n\n");
NONO();
}
void NONO ()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ; char a[N] ; int m, i ;
rf = fopen("in.dat","r");
wf = fopen("out.dat","w");
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d %s", &m, a);
fun(a, m);
fprintf(wf, "%s\n", a);
}
fclose(rf); fclose(wf);
}
参考答案:
void fun1(char *w) /* 本函数的功能是将字符串中字符循环左移一个位置 */
{
int i; char t;
t=w[0];
for(i=0;i w[i]=w[i+1]; w[strlen(w)-1]=t; } void fun(char *w, int m) /* 可调用fun1函数左移字符 */ { int i; for(i = 0 ; i < m ; i++) fun1(w); }
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|