填空題
函數(shù)FUN的功能是:逆置數(shù)組元素中的值。形參N給出數(shù)組中的數(shù)據(jù)的個數(shù)。
例如:若A所指數(shù)組中的數(shù)據(jù)依次為:1、2、3、4、5、6、7、8、9,則逆置后依次為:9、8、7、6、5、4、3、2、1。
注意:部分源程序給出如下
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在橫線上填入所編寫的若干表達式或語句。
試題程序:
#include
void fun(int a[], int n)
{
int i, t;
for (i=0; i<___1___; i++)
{
t = a[i];
a[i] = a[n-1-___2___];
___3___ = t;
}
}
main()
{
int b[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}, i;
printf("\nThe original data :\n");
for (i=0; i<9; i++)
printf("%4d ", b[i]);
printf("\n");
fun(b, 9);
printf("\nThe data after invert :\n");
for (i=0; i<9; i++)
printf("%4d ", b[i]);
printf("\n");
}
第1處填空:n/2
第2處填空:i
第3處填空:a[n-i-1]
改錯題
下列給定程序中,函數(shù)fun的功能是:y計算n!.例如給n輸入5,則輸出120.000000.
請改正程序中的錯誤,使程序能輸出 正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
試題 程序:
#include
#include
double fun(int n)
{
double result = 1.0;
/********found********/
if n == 0
return 1.0;
while (n>1 && n<170)
/********found********/
result = n--;
return result;
}
main()
{
int n;
printf("Input N:");
scanf("%d", &n);
printf("\n\n%d!=%1f\n\n", n, fun(n));
}
第1處:if n==0應(yīng)改為if (n==0)
第2處:resylt =n--;應(yīng)改為result *=n--;
編程題
編寫函數(shù)fun,它的功能是:
比較兩 個字符串的長度,(不得調(diào)用C語言中提供的求字符串長度的函數(shù)),函數(shù)返回較長的字符串,若兩 個字符串長度相同,則返回第一個字符串
例如,輸入beijing shanghai
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include
char *fun ( char *s, char *t)
{
}
main( )
{
char a[20],b[10],*p,*q;
int i;
FILE *out;
printf("Input 1th string:");
gets(a);
printf("Input 2th string:");
gets( b);
printf("%s\n", fun(a, b ));
out=fopen("out.dat", "w");
fprintf(out, "%s", fun("hunan", "changsha"));
fclose(out);
}
答案是:
char *fun(char *s,char *t)
{
char *p,*t1=t,*s1=s;
int n=0,m=0;
while(*s1)
{
n++;
s1++;
}
while(*t1)
{
m++;
t1++;
}
if(n>=m)
p=s;
else
p=t;
return p;
}
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |