說(shuō)明:滿分為100分,60分及格。前兩題為DOS操作題,每題15分,共計(jì)30分;后兩題為C語(yǔ)言編程題或調(diào)試題,共計(jì)70分; 測(cè)試時(shí)間60分鐘。
一、DOS操作題
1 刪除當(dāng)前目錄下的目錄ZSF\DAS。
答案:RD ZSF\DAS
2 將當(dāng)前目錄下的目錄KUY\GWE中的文件BTY.EXE改名為KJH.EXE。
答案:REN KUY\GWE\BTY.EXE KJH.EXE
二、調(diào)試修改程序題
下面程序中函數(shù)fun的功能是:根據(jù)整型形參m,計(jì)算如下公式的值:y=1+1/2!+1/3!+1/4!+...+1/m!
例如:若m=6,則應(yīng)輸出:1.718056。
請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include〈conio.h〉
#include〈stdio.h〉
/ *錯(cuò)誤在fun函數(shù)中 * /
double fun(int m)
{int y=1, t=1;
int i;
for(i=2; i〈=m; i++)
{t=t*1/i; y+= t; }
return(y);
}
main()
{int n;
clrscr();
printf("Enter n: ");
scanf("%d", &n);
printf("\nThe result is %1f\n", fun(n));
}
答案:對(duì)fun子程序進(jìn)行修改,修改以后的程序如下:
double fun(int m)
{ double y=1, t=1; /*類型應(yīng)為 double*/
int i;
for(i=2; i〈=m; i++)
{t=t*1.0/i; y+= t; }
/* 此處應(yīng)為 double 類型的數(shù)據(jù)進(jìn)行運(yùn)算*/
return(y);
} 三、編程題
請(qǐng)編一個(gè)函數(shù)int fun(int pm),它的功能是:判斷pm是否是素?cái)?shù)。若pm是素?cái)?shù),返回1;若不是素?cái)?shù),返回0。pm的值由主函數(shù)從鍵盤讀入。
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。
#include 〈conio.h〉
#include 〈stdio.h〉
#include 〈math.h〉
int fun(int a)
{ /*答案開始 */
┇
┇
/*答案結(jié)束 */
}
main() / * 主函數(shù)* /
{ int x;
clrscr();
printf("\nPlease enter a number:");
scanf("%d", &x);
printf("%d\n", fun(x));
}
答案:在函數(shù)fun中添加程序段如下:
int fun(int a)
{ /*參考答案開始 */
int i;
if(a==2) return 1;
i=2;
while ((a%i)!=0 && i〈=sqrt((float) a)) i++;
if ((a%i)==0)
{ printf("%d not is a prime!",a); return 0; }
printf("%d is a prime!",a); return 1;
/*參考答案結(jié)束 */ }
一、DOS操作題
1 刪除當(dāng)前目錄下的目錄ZSF\DAS。
答案:RD ZSF\DAS
2 將當(dāng)前目錄下的目錄KUY\GWE中的文件BTY.EXE改名為KJH.EXE。
答案:REN KUY\GWE\BTY.EXE KJH.EXE
二、調(diào)試修改程序題
下面程序中函數(shù)fun的功能是:根據(jù)整型形參m,計(jì)算如下公式的值:y=1+1/2!+1/3!+1/4!+...+1/m!
例如:若m=6,則應(yīng)輸出:1.718056。
請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include〈conio.h〉
#include〈stdio.h〉
/ *錯(cuò)誤在fun函數(shù)中 * /
double fun(int m)
{int y=1, t=1;
int i;
for(i=2; i〈=m; i++)
{t=t*1/i; y+= t; }
return(y);
}
main()
{int n;
clrscr();
printf("Enter n: ");
scanf("%d", &n);
printf("\nThe result is %1f\n", fun(n));
}
答案:對(duì)fun子程序進(jìn)行修改,修改以后的程序如下:
double fun(int m)
{ double y=1, t=1; /*類型應(yīng)為 double*/
int i;
for(i=2; i〈=m; i++)
{t=t*1.0/i; y+= t; }
/* 此處應(yīng)為 double 類型的數(shù)據(jù)進(jìn)行運(yùn)算*/
return(y);
} 三、編程題
請(qǐng)編一個(gè)函數(shù)int fun(int pm),它的功能是:判斷pm是否是素?cái)?shù)。若pm是素?cái)?shù),返回1;若不是素?cái)?shù),返回0。pm的值由主函數(shù)從鍵盤讀入。
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。
#include 〈conio.h〉
#include 〈stdio.h〉
#include 〈math.h〉
int fun(int a)
{ /*答案開始 */
┇
┇
/*答案結(jié)束 */
}
main() / * 主函數(shù)* /
{ int x;
clrscr();
printf("\nPlease enter a number:");
scanf("%d", &x);
printf("%d\n", fun(x));
}
答案:在函數(shù)fun中添加程序段如下:
int fun(int a)
{ /*參考答案開始 */
int i;
if(a==2) return 1;
i=2;
while ((a%i)!=0 && i〈=sqrt((float) a)) i++;
if ((a%i)==0)
{ printf("%d not is a prime!",a); return 0; }
printf("%d is a prime!",a); return 1;
/*參考答案結(jié)束 */ }

