- 相關(guān)推薦
計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)精選模擬題及答案
導(dǎo)語(yǔ):勤加練習(xí)是通過(guò)計(jì)算機(jī)等級(jí)考試的有效方式,以下是小編為大家精心整理的計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)精選模擬題及答案,歡迎大家參考!
給定程序的功能是調(diào)用fun函數(shù)建立班級(jí)通訊錄。通訊錄中記錄每位學(xué)生的編號(hào)、姓名和電話號(hào)碼。班級(jí)的人數(shù)和學(xué)生的信息從鍵盤讀入,每個(gè)人的信息作為一個(gè)數(shù)據(jù)塊寫(xiě)到名為myfile5.dat的二進(jìn)制文件中。
請(qǐng)?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
給定源程序:
#include
#include
#defineN5
typedefstruct
{intnum;
charname[10];
chartel[10];
}STYPE;
voidcheck();
intfun(___1___*std)
{
___2___*fp;inti;
if((fp=fopen("myfile5.dat","wb"))==NULL)
return(0);
printf(" Outputdatatofile! ");
for(i=0;i fwrite(&std[i],sizeof(STYPE),1,___3___);
fclose(fp);
return(1);
}
main()
{STYPEs[10]={{1,"aaaaa","111111"},{1,"bbbbb","222222"},{1,"ccccc","333333"},
{1,"ddddd","444444"},{1,"eeeee","555555"}};
intk;
k=fun(s);
if(k==1)
{printf("Succeed!");check();}
else
printf("Fail!");
}
voidcheck()
{FILE*fp;inti;
STYPEs[10];
if((fp=fopen("myfile5.dat","rb"))==NULL)
{printf("Fail!! ");exit(0);}
printf(" Readfileandoutputtoscreen: ");
printf(" numnametel ");
for(i=0;i {fread(&s[i],sizeof(STYPE),1,fp);
printf("m%s%s ",s[i].num,s[i].name,s[i].tel);
}
fclose(fp);
}
解題思路:
本題是要求把指定的學(xué)生記錄輸出到指定的文件中。程序中 共有三處要填上適當(dāng)?shù)膬?nèi)容,使程序能運(yùn)行出正確的結(jié)果。
第一處:結(jié)構(gòu)定義自變量,因此應(yīng)填寫(xiě)STYPE。
第二處:在所填行的下面一行,使用fopen來(lái)創(chuàng)建一個(gè)二進(jìn)制文件,但文件流的變量名fp已經(jīng)給出,這樣,此處只能填寫(xiě)FILE。
每三處:fwrite是把變量中的內(nèi)容寫(xiě)入指定文件中,再根據(jù)fwrite參數(shù)的使用要求,所以只能填寫(xiě)文件流變量fp。
***************************************************
給定程序MODI1.C中函數(shù)fun的功能是:先將在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序連接到t串的后面。
例如:當(dāng)s中的字符串為:"ABCDE"時(shí),則t中的字符串應(yīng)為:"ABCDEEDCBA"。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
給定源程序:
#include
#include
voidfun(char*s,char*t)
{inti,sl;
sl=strlen(s);
for(i=0;i<=s1;i++)
t[i]=s[i];
for(i=0;i t[sl+i]=s[sl-i-1];
t[sl]=’