第二套上機(jī)試卷
一、改錯(cuò)題
【知識(shí)點(diǎn)】整數(shù)數(shù)位處理、數(shù)字字符與相應(yīng)數(shù)字的轉(zhuǎ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ò)誤的修改必須要理解程序后方能改正。
使用putchar函數(shù)必須在程序開頭加上文件包含#include "stdio.h";scanf語句中必須是地址序列,故scanf("num=%d",num);應(yīng)改為scanf("num=%d",&num);,且調(diào)式時(shí)注意將“num=”原樣輸入;某數(shù)字若轉(zhuǎn)換為相應(yīng)數(shù)字字符,應(yīng)加上字符'0'或48(字符'0'的ASCII碼值),故digit[n++]=m%10;應(yīng)改為digit[n++]=m%10+'0';;最后輸出時(shí),n已在前面多加了一次,故而輸出時(shí)應(yīng)先減1,故for(;n>=0;n--)中第一個(gè)表達(dá)式應(yīng)加上n--或--n或n=n-1。
【答案】①在程序開頭加上#include "stdio.h"
、趯⒃谖逍械膕canf("num=%d",num);改為scanf("num=%d",&num);
、蹖⒃谑恍械膁igit[n++]=m%10;改為digit[n++]=m%10+'0';
、軐⒃谑械膄or(;n>=0;n--)改為for(n--;n>=0;n--)
二、編程題
【知識(shí)點(diǎn)】字符串應(yīng)用、數(shù)據(jù)文件的使用
【解析】注意,按要求必須調(diào)用函數(shù),且使用數(shù)據(jù)文件完成輸出。使用數(shù)據(jù)文件有5大步驟:①#include
【注意】fopen("A:\\myf2.out","w")中盤符A:后要加雙斜杠表示根目錄,因?yàn)镃語言用轉(zhuǎn)義字符'\\'才能表達(dá)字符\;另外,文件的命名一定要嚴(yán)格按照規(guī)定處理,千萬不要隨便命名。
【參考答案】
#include "stdio.h"
int compress(char s[])
{int n,k=0,count=0;
if(s[0]!=NULL) n=k+1;
while(s[n]!=NULL)
{if(s[k]= =s[n]){n++;count++;}
else {s[++k]=s[n];n++;}
}
s[++k]='\0';
return count;
}
main()
{char num[100];
int count=0;
FILE *fp;
fp=fopen("A:\\myf2.out","w");
gets(num);
count=compress(num);
fprintf(fp,"%s",num);
printf("%d",count);
fclose(fp); }
運(yùn)行結(jié)果如下:
@ I wil sucesful & and you to ! #
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試沖刺備考指導(dǎo)專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |