為大家收集整理了《2013計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)練習(xí)題及答案(10)》供大家參考,希望對(duì)大家有所幫助?。?!
第一題:給定程序功能是用選擇排序法對(duì)6個(gè)字符串進(jìn)行排序。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的橫線上填入所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
#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;
第三題:編寫(xiě)函數(shù)fun,它的功能是:計(jì)算并輸出下列級(jí)數(shù)和:
例如,當(dāng)n=10時(shí),函數(shù)值為0。909091。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
#include
#include
double fun( int n )
{
}
main()
{
int i;
FILE *out;
printf("%f\n",fun(10));
out=fopen ("out.dat", "w");
for (i = 5; i < 10; i++)
fprintf(out, "%f\n", fun(i));
fclose (out );
}
參考答案:
第三題:double fun(int n)
{double s=0.0;
int i;
for(i=1;i<=n;i++)
s=s+1.0/(i*(i+1));
rerurn s;
}
第一題:給定程序功能是用選擇排序法對(duì)6個(gè)字符串進(jìn)行排序。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在fun函數(shù)的橫線上填入所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
#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;
第三題:編寫(xiě)函數(shù)fun,它的功能是:計(jì)算并輸出下列級(jí)數(shù)和:
例如,當(dāng)n=10時(shí),函數(shù)值為0。909091。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
#include
#include
double fun( int n )
{
}
main()
{
int i;
FILE *out;
printf("%f\n",fun(10));
out=fopen ("out.dat", "w");
for (i = 5; i < 10; i++)
fprintf(out, "%f\n", fun(i));
fclose (out );
}
參考答案:
第三題:double fun(int n)
{double s=0.0;
int i;
for(i=1;i<=n;i++)
s=s+1.0/(i*(i+1));
rerurn s;
}