。1)空1是文件filename的打開方式,由于學(xué)生數(shù)據(jù)是以二進(jìn)制方式輸出到文件中,因此打開文件應(yīng)該是“二進(jìn)制讀”或“二進(jìn)制讀寫”方式,因此應(yīng)填入:“rb”或“rb+”。(2)空2是條件表達(dá)式,比較兩個學(xué)號的大小,按照學(xué)號從小到大排序。由上下文可以知道,應(yīng)該填入:>s[j].sno 或 >=s[j].sno。(3)空3是要把排序后的學(xué)生數(shù)據(jù)輸出到filename所指的文件中,因此應(yīng)該填入:fwrite。
二、改錯題
給定程序中,函數(shù)fun的功能是:將一個由八進(jìn)制數(shù)字字符組成的字符串轉(zhuǎn)換為與其值相等的十進(jìn)制整數(shù)。規(guī)定輸入的字符串最多只能包含5位八進(jìn)制數(shù)字字符。
例如,若輸入:77777,則輸出將是:19607。
請改正程序中的錯誤,使其能得出正確結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
#include <stdio.h>
int fun(char *p)
{
int n;
n=*P-'o';
p++;
while( *p!=0 )
{
n=n*7+*P-'o';
p++;
}
return n;
}
main()
{
char s[6];
int i; intn;
printf("Enter a string(Ocatal
digits):");
gets(s);
if(strlen(s)>5)
{
printf("Error: String too longer!\n");
exit(0);
}
for(i=0; s[i]; i++)
if(s[i]<'0'||s[i]>'7')
{ printf("Error:%c not is ocatal
digits!\n",s[i]);
exit(0); }
printf("The original string: ");
puts(s);
n=fun(s);
printf("\n%s is convered to integer
number: %d\n",s,n);
}
【答案與解析】
相關(guān)推薦:2009年9月計(jì)算機(jī)等級考試二級C語言模擬試題(1)北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |