《計(jì)算機(jī)等級(jí)考試上機(jī)》由會(huì)員分享,可在線閱讀,更多相關(guān)《計(jì)算機(jī)等級(jí)考試上機(jī)(32頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,*,*,計(jì)算機(jī)等級(jí)考試,上機(jī)指導(dǎo),上機(jī)考試評(píng)分原理分析,上機(jī)考試是由計(jì)算機(jī)對(duì)考生的答題結(jié)果進(jìn)行判斷的,而不是人為閱卷,即計(jì)算機(jī)評(píng)分!,等級(jí)考試的上機(jī)考試是分批進(jìn)行的,在相鄰兩批考次之間,由監(jiān)考人員做該批考次結(jié)束前的“收分”工作(實(shí)際上是由計(jì)算機(jī)完成的)。也就是說(shuō),當(dāng)你考完機(jī)試后,你的上機(jī)成績(jī)就已經(jīng)出來(lái)了,只是我們不知道結(jié)果罷了。當(dāng)然,監(jiān)考人員也不知道,因?yàn)樽詈蠓謹(jǐn)?shù)是加密的!,評(píng)分程序在評(píng)改你的上機(jī)成績(jī),先從對(duì)應(yīng)的考生文件夾中讀取考生的答題文件,再對(duì)這些文件按照評(píng)分程序進(jìn)行對(duì)比,然后給出相應(yīng)的分?jǐn)?shù),最后,系統(tǒng)
2、自動(dòng)將你的考生文件中的所有文件全部刪除!,上機(jī)考試評(píng)分原理分析,對(duì)于題空題和改錯(cuò)題,評(píng)分程序先是讀取考生文件夾下的BLAN.C和MODI.C文件,再找到其中需要填空和改錯(cuò)的代碼所在的行數(shù),最后與評(píng)分程序中的提供的數(shù)據(jù)進(jìn)行對(duì)比。需要提醒考生注意的是,填空題和改錯(cuò)題的要求中明確聲明:不得刪減或增加程序行,就是這個(gè)道理;,對(duì)于編程題,評(píng)分程序先是讀取考生文件夾下的擴(kuò)展名為.DAT的文件,再其中的數(shù)據(jù)與評(píng)分程序中的提供的數(shù)據(jù)進(jìn)行對(duì)比,因此,考生在編程后,一定要運(yùn)行程序,以生成擴(kuò)展名為.DAT的輸出文件!,上機(jī)考試評(píng)分原理分析,評(píng)分程序是按照最終生成的文件給分的!由上述結(jié)論可以推出如下事實(shí):,1.只要考
3、生能生成最終答案文件,均可得分!,2.很多最終答案文件只有少數(shù)若干行數(shù)據(jù),分?jǐn)?shù)由正確答案的行數(shù)決定!例如,真考題庫(kù)中有這樣一道題,要求用迭代方法計(jì)算cos(x)-x=0的一個(gè)近似根,其答案是0.739085,最終要求生成的文件OUT.DAT中只有一行數(shù)據(jù)。有這個(gè)文件,并且該文件只有一行數(shù)據(jù)0.739085的話,就可以得到100分!無(wú)所謂你是否編寫了程序!當(dāng)然,有多行答案的文件的格式是由程序中的輸出部分決定的(而這個(gè)部分是不允許考生修改的!),考生必須能夠看懂輸出程序段的輸出格式,否則會(huì)適得其反!,上機(jī)考試兩點(diǎn)重要注意事項(xiàng),注意事項(xiàng)1:,大家做上機(jī)的填空、改錯(cuò)、編程題的時(shí)候請(qǐng)務(wù)必做到兩件事情:,
4、一是編譯運(yùn)行確認(rèn)無(wú)誤!,二是切記一定要保存!,特別提醒:,a、如果沒有保存,無(wú)論是填空、改錯(cuò)還是編程題你都不能得分,相當(dāng)于沒有做。,b、如果編程題沒有運(yùn)行即使保存了都有可能不得分,所以“編譯并運(yùn)行”和“保存”兩件事情請(qǐng)大家都務(wù)必辦到。,c、萬(wàn)一有些同學(xué)不能完整的做完某一個(gè)題目無(wú)論是填空、改錯(cuò)還是編程,也就是說(shuō)你根本無(wú)法運(yùn)行這個(gè)程序,也請(qǐng)你把你會(huì)做的那部分填上去并保存,或許運(yùn)氣好會(huì)有步驟分,就當(dāng)“死馬當(dāng)活馬醫(yī)”嘛,因?yàn)樯蠙C(jī)考試的評(píng)分是以機(jī)器評(píng)分為主、人工評(píng)分為輔結(jié)合進(jìn)行的),上機(jī)考試兩點(diǎn)重要注意事項(xiàng),注意事項(xiàng)2:,很多同學(xué)在做完了前一題(例如填空BLANK1.C或改錯(cuò)MODI1.C等)沒有關(guān)閉工
5、作區(qū)就直接打開下面的題目做(即使你點(diǎn)擊blank1.c文件右上角的叉叉關(guān)閉了這個(gè)文件也不行,必須關(guān)閉整個(gè)工作區(qū)),這樣你運(yùn)行的時(shí)候永遠(yuǎn)不會(huì)正確,所以大家做完了前一題后務(wù)必關(guān)閉工作區(qū)再做下一題(操作步驟為:打開主菜單:文件-關(guān)閉工作區(qū),很簡(jiǎn)單的),當(dāng)然,如果你萬(wàn)一不會(huì)關(guān)閉工作區(qū),干脆做完一題就把整個(gè)VC6.0關(guān)閉,然后重新啟動(dòng)VC6.0再打開下一題做也行的。,1、填空題,請(qǐng)補(bǔ)充函數(shù)fun(),該函數(shù)的功能是:把從主函數(shù)中輸入的字符串str2接在字符串str1的后面。,例如:str1=“How do”,str2=“you do?”,結(jié)果輸出:How do you do?,注意:部分源程序給出如下。
6、,請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的橫線上填入所編寫的若干表達(dá)式或語(yǔ)句。,試題程序:,#include,#include,#define N 40,void fun(char*str1,char*str2),int i=0;,char*p1=str1;,char*p2=str2;,while(【1】),i+;,for(;【2】;i+),*(p1+i)=【3】;,*(p1+i)=0;,main(),char str1N,str2N;,clrscr();,printf(*Input the string str1&,str2*n);,printf(nstr1:);,ge
7、ts(str1);,printf(nstr2:);,gets(str2);,printf(*The string str1,puts(str1);,puts(str2);,fun(str1,str2);,printf(*The new string*n);,puts(str1);,答案及評(píng)析:,【1】*(p1+i),【2】*p2,【3】*p2+,【解析】填空1:變量i用來(lái)記錄字符串str1的長(zhǎng)度,當(dāng)指針指到字符串str1結(jié)束標(biāo)志符0時(shí),while循環(huán)結(jié)束,變量i停止累加。,填空2:指針p2指向字符串str2,通過for循環(huán)將字符串str2接在str1后面,循環(huán)結(jié)束的條件是指針p2所指的字符是字
8、符串結(jié)束標(biāo)志符0。,填空3:指針p2最初指向字符串str2的首字符,通過自加1,使指針p2依次向后移動(dòng),指向str2的各個(gè)字符,實(shí)現(xiàn)將字符串str2接在str1后面的功能。,請(qǐng)補(bǔ)充函數(shù)fun(),該函數(shù)的功能是求一維數(shù)組xN的平均值,并對(duì)所得結(jié)果進(jìn)行四舍五入(保留兩位小數(shù))。例如:當(dāng)x10=15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0,結(jié)果為:avg=15.030000。,注意:部分源程序給出如下。,請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的橫線上填入所編寫的若干表達(dá)式或語(yǔ)句。,試題程序:,#include,#inclu
9、de,double fun(double x10),int i;,long t;,double avg=0.0;,double sum=0.0;,for(i=0;i10;i+),【1】;,avg=sum/10;,avg=【2】;,t=【3】;,avg=(double)t/100;,return avg;,main(),double avg,x10=15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0;,int i;,clrscr();,printf(nThe original data is:n);,for(i=0;i10;i+),printf(%
10、6.1f,xi);,printf(nn);,avg=fun(x);,printf(average=%fnn,avg);,答案及評(píng)析:,【1】sum+=xi,【2】avg*1000,【3】(avg+5)/10,【解析】填空1:通過for循環(huán)求出10個(gè)數(shù)的累加和,存于變量sum中。填空2:為了實(shí)現(xiàn)四舍五入保留兩位小數(shù)的功能,應(yīng)將平均值先擴(kuò)大1000倍。填空3:將平均值加上5,再除以10,實(shí)現(xiàn)四舍五入的功能。,請(qǐng)補(bǔ)充函數(shù)fun(),該函數(shù)的功能是:從a到z統(tǒng)計(jì)一個(gè)字符串中所有字母字符各自出現(xiàn)的次數(shù),結(jié)果保存在數(shù)組alf中。注意:不區(qū)分大小寫,不能使用字符串庫(kù)函數(shù)。,例如,輸入:“A=abc+5*c”
11、,結(jié)果為:a=2,b=1,c=2。,注意:部分源程序給出如下。,請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的橫線上填入所編寫的若干表達(dá)式或語(yǔ)句。,試題程序:,#include “stdio.h”,#include “,#define N 100,void fun(char*tt,int alf),int i;char*p=tt;,for(i=0;i=A&*p=a&*p=z),alf*p-a+;,【3】;,main(),char strN;,char a=a;,int alf26,k;,clrscr();,printf(nPlease enter a char string:)
12、;,scanf(%s,str);,printf(n*The original string*n);,puts(str);,fun(str,alf);,printf(n*The number of letter*n);,for(k=0;k26;k+),if(k%5=0),printf(n);,printf(%c=%d,a+k,alfk);,printf(n);,答案及評(píng)析:,【1】alfi=0,【2】*p+=32,【3】p+,【解析】填空1:數(shù)組alf26用來(lái)存放字母字符出現(xiàn)的次數(shù),在使用之前需要清零。填空2:題目要求不區(qū)分大小寫,所以可以先將所有的大寫字母都轉(zhuǎn)換為對(duì)應(yīng)的小寫字母,然后一并記錄出
13、現(xiàn)的次數(shù)。將大寫字母轉(zhuǎn)換為對(duì)應(yīng)的小寫字母,只需將ASCII碼加上32就可以了。填空3:指針p指向字符串tt,通過p自加1來(lái)移動(dòng)指針,訪問字符串中的所有字符。,請(qǐng)補(bǔ)充函數(shù)fun(),該函數(shù)的功能是:分類統(tǒng)計(jì)一個(gè)字符串中元音字母和其他字符的個(gè)數(shù)(不區(qū)分大小寫)。,例如,輸入aeiouAOUpqrt,結(jié)果為A:2 E:1 I:1 O:2 U:2 other:4。,注意:部分源程序給出如下。,請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的橫線上填入所編寫的若干表達(dá)式或語(yǔ)句。,試題程序:,#include,#include,#define N 100,void fun(char*st
14、r,int bb),char*p=str;,int i=0;,for(i=0;i6;i+),【1】;,while(*p),switch(*p),case A:,case a:bb0+;break;,case E:,case e:bb1+;break;,case I:,case i:bb2+;break;,case O:,case o:bb3+;break;,case U:,case u:bb4+;break;,default:【2】;,【3】,main(),char strN,ss6=AEIOU;,int i;,int bb6;,clrscr();,printf(Input a string:
15、n);,gets(str);,printf(the string is:n);,puts(str);,fun(str,bb);,for(i=0;i=A)&(tti=A)&(tti=a)&(tti=z),【解析】錯(cuò)誤1:函數(shù)的返回值是字符串的首地址,是指針類型,所以在函數(shù)名前要加*號(hào)。,錯(cuò)誤2:題目要求將小寫字母改為大寫字母,所以if語(yǔ)句的判斷條件是小寫字母。,下列給定程序中,函數(shù)fun()的功能是:先從鍵盤上輸入一個(gè)3行3列的矩陣的各個(gè)元素的值,然后輸出主對(duì)角線元素之積。,請(qǐng)改正函數(shù)fun()中的錯(cuò)誤,使它能得出正確的結(jié)果。,注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。,
16、試題程序:,#include,int fun(),int a33,mul;,int i,j;,mul=1;,for(i=0;i3;i+),/*found*/,for(i=0;j3;j+),scanf(%d,for(i=0;i3;i+),/*found*/,mul=mul*aij;,printf(Mul=%dn,mul);,main(),fun();,答案及評(píng)析:,(1)錯(cuò)誤:for(i=0;j3;j+),正確:for(j=0;j0),/*found*/,s=s%100;,*t=s%10*s1+*t;,s1=s1*10;,main(),long s,t;,clrscr();,printf(nPlease enter s:);,scanf(%ld,fun(s,printf(The result is:%ldn,t);,答案及評(píng)析:,(1)錯(cuò)誤:int fun(long s,long*t),正確:void fun(long s,long*t),(2)錯(cuò)誤:s=s%100;,正確:s=s/100;,【解析】錯(cuò)誤1:函數(shù)由指針來(lái)完成參數(shù)的傳遞,所以沒有返回值,應(yīng)定義函數(shù)的類型為void。,錯(cuò)誤2