第四套上機(jī)試卷
一、改錯(cuò)題
含有錯(cuò)誤的源程序如下:
void match(char *pat,char str) ①
{char *p=pat,*q=str;
int i=0; ②
while((*p!=NULL)&&(*q!=NULL))
if(*p= =*q||*p= ='?')p++,q++;
else if(*p= ='*')
{p++;
while(*q!=*p&&*q!=NULL)q++;
}
else i=0;break; 、
if(*p!=NULL||*q!=NULL)i=0;
return i;
}
}
【知識(shí)點(diǎn)】字符串處理、程序的調(diào)試
【解析】程序中的錯(cuò)誤一般可以分為兩類,一類是語法錯(cuò)誤,即程序中有拼寫錯(cuò)誤,書寫不符合C語言的規(guī)定等,此類錯(cuò)誤可通過調(diào)試(按F9鍵),根據(jù)提示進(jìn)行改正。另一類是邏輯錯(cuò)誤,程序調(diào)試已通過(報(bào)Success),但運(yùn)行結(jié)果不正確,此類錯(cuò)誤的修改必須要理解程序后方能改正。
程序中用到系統(tǒng)預(yù)設(shè)的符號(hào)常量NULL,又未加“文件包含”處理,按F9后即編譯時(shí)系統(tǒng)會(huì)報(bào)錯(cuò),故應(yīng)在最前面加上include
【答案】(1)在最前面加上include
(2)加下劃線的部分改為:
、賗nt match(char *pat, char *str)
、趇=1
③{ i=0;break;}
二、編程題
【知識(shí)點(diǎn)】窮舉法、數(shù)據(jù)文件的使用
【解析】將30~50之間的每一個(gè)數(shù)都進(jìn)行判斷,就不會(huì)有遺漏。注意,按要求必須調(diào)用函數(shù),且使用數(shù)據(jù)文件完成輸出。使用數(shù)據(jù)文件有5大步驟:①#include
【注意】fopen("A:\\myf2.out","w")中盤符A:后要加雙斜杠表示根目錄,因?yàn)镃語言用轉(zhuǎn)義字符'\\'才能表達(dá)字符\;另外,文件的命名一定要嚴(yán)格按照規(guī)定處理,千萬不要隨便命名。
【參考答案】
#include
int inv(int x)
{int y;
y=x/10+x%10*10; /*此句可將某兩位正整數(shù)的十位與個(gè)位數(shù)字換位*/
return y;
}
main()
{FILE *out;
int i,j;
if((out=fopen("A:\\myf2.out","w"))= =NULL)
{printf("Open file myf2.out failed!\n");exit(1);}
for(i=30;i<50;i++)
for(j=30;j<50;j++)
if((i/10!=i%10)&&(i*j= =inv(i)*inv(j))) /* i/10!=i%10確保十位與個(gè)位數(shù)字不同*/
fprintf(out,"%d*%d=%d*%d\n",i,j,inv(i),inv(j));
fclose(out); }
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試沖刺備考指導(dǎo)專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |