填空題:
請(qǐng)補(bǔ)充fun函數(shù),該函數(shù)的功能是:把一個(gè)證書(shū)轉(zhuǎn)換成字符串,并到序保存在字符數(shù)組str中。例如:當(dāng)n=12345678時(shí),str=“87654321”。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的橫線上填入所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
填空題:
#include
#include
#define N 80
char str[N];
void fun(long int n)
{
int i = 0;
while (___1___)
{
str[i] = ___2___;
n /= 10;
i++;
}
___3___;
}
main()
{
long int n = 1234567;
printf("****** the origial data ********\n");
printf("n=%ld", n);
fun(n);
printf("\n%s", str);
}
參考答案:
第一處填空:n>0或0 第二處填空:n%10+’0’或’0’+n%10 第三處填空:str[i]=’\0’或str[i]=0 改錯(cuò)題: 下列給定程序中,函數(shù)fun的功能是:從N個(gè)字符串中找出最長(zhǎng)的那個(gè)串,并將其地址作為函數(shù)值返回。各字符串在主函數(shù)中輸入,并放入一個(gè)字符串?dāng)?shù)組中。 請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。 注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)! 改錯(cuò)題:#include #include #define N 5 #define M 81 /********found********/ fun(char (*sq)[N]) { int i; char *sp; sp = sq[0]; for (i=0; i if (strlen(sp) < strlen(sq[i])) sp = sq[i]; /********found********/ return sq; } main() { char str[N][M], *longest; int i; printf("Enter %d lines:\n", N); for (i=0; i gets(str[i]); printf("\nThe N string :\n", N); for (i=0; i puts(str[i]); longest = fun(str); printf("\nThe longest string :\n"); puts(longest); } 參考答案: 第一處:fun(char (*sq)[N]) 應(yīng)改為 char * fun(char (*sq)[M]) 第二處:return sq;應(yīng)改為 return sp; 編程題: 請(qǐng)編寫(xiě)函數(shù)fun,其功能是:將兩個(gè)兩位數(shù)的正證書(shū)a、b合并形成一個(gè)證書(shū)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的千位和十位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的百位和個(gè)位上。 例如,當(dāng)a=45,b=12,調(diào)用該項(xiàng)函數(shù)后,c=4152。 請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。 參考答案: 編程題:#include #include void fun (int a, int b ,long *c) { } main () { int a,b; long c; FILE *out; printf ("Input a, b:"); scanf("%d%d", &a, &b); fun (a, b, &c); printf ("The result is: %d\n", c); out=fopen ("out.dat", "w"); for (a = 10; a < 20; a++) { fun(a, 109-a, &c); fprintf(out, "%d\n", c); } fclose (out ); } 輸入fun函數(shù):void fun (int a, int b, long*c) { *c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10; }
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |