第一題:給定程序功能是用選擇排序法對(duì)6個(gè)字符串進(jìn)行排序。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的橫線上填入所編寫的若干表達(dá)式或語句。
#include
#include
#define MAXLINE 20
fun(char *pstr[6])
{
int i, j;
char *p;
for (i=0; i<5; i++)
for (j=i+1; j<6; j++)
if (strcmp(*(pstr+i), ___1___) > 0)
{
p = *(pstr+i);
pstr[i] = ___2___;
*(pstr + j) = ___3___;
}
}
main()
{
int i;
char *pstr[6], str[6][MAXLINE];
for (i=0; i<6; i++)
pstr[i] = str[i];
printf("\nEnter 6 string(1 string at each line): \n");
for (i=0; i<6; i++)
scanf("%s", pstr[i]);
fun(pstr);
printf("The strings after sorting:\n");
for (i=0; i<6; i++)
printf("%s\n", pstr[i]);
}
參考答案:
第一題:第一空:*(pstr+j)or pstr[j]
第二空:pstr[j] or *(pstr+j)
第三空:p
第二題:下列給定程序中,函數(shù)fun 功能是:從整數(shù)1到55之間,選出能被3整除、且有一位上的數(shù)是5的那些數(shù),并把這些數(shù)放在b所指的數(shù)組中,這些數(shù)作為函數(shù)值返回。規(guī)定,函數(shù)中a1放個(gè)位數(shù),a2放十位數(shù)。
請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include
/********found********/
int fun( int *b );
{
int k, a1, a2, i = 0;
/********found********/
for (k=10; k<=55; k++)
{
a2 = k/10;
a1 = k - a2*10;
if ((k%3==0 && a2==5) || (k%3==0 && a1==5))
{
b[i] = k;
i++;
}
}
/********found********/
return k;
}
main()
{
int a[100], k, m;
m = fun(a);
printf("The result is:\n");
for (k=0; k printf("%4d", a[k]); printf("\n"); } 參考答案: 第二題:第一處:int fun(int *b);應(yīng)改為int fun(int *b) 第二處:for(k=10;k<=55;k++)應(yīng)改為for(k=1;k<55;k++) 第三處:return k;應(yīng)改為return I;
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |