計算機二級c語言上機三道題都編譯執行出結果,而且結果都正確了

2021-03-28 14:32:04 字數 4233 閱讀 8189

1樓:匿名使用者

全國計算機等級考試二級c的程式題共有三道,分別是填空、改錯、程式設計,分值方面填空佔18分,改錯18分,程式設計24分,總分60分。而卷面總分(選擇+程式)60分以上,才會判定成績就合格,才能夠領到證書。

各題詳細答題方式和評分準則如下:

1、填空題:

答題方式:

在指定位置,也就是標記有類似

for(i=0; ____1____ ; i++)

這種位置作答。

答題時,將「____1____」雙引號內的部分完全刪除,然後把作答的答案填補進去,也就是「將類似__1__這種位置標記替換為作答的答案」。

題面會給出「例如輸入***資料,得到***資料」的註解,可以藉此編譯執行程式,通過輸入和輸出的結果來判定程式是否正確。

評分準則:

填空題的評分準則並非以程式本身「能否正確執行」為準則,而是通過類似」對比答題的程式文字與命題組答案,逐行按比例給分「的方式來評分,也就是很多人所謂的「逐項(或逐個答題位置給分)「。

上述描述資訊量過大,下面舉例說明:

①題面有明文要求,只允許在指定位置作答,不許新增或刪除空格、回車之類的字元,不許增減程式**行數,更不許改動題面的程式原始**。

例如:題面如下:

int i,j,sum=0;

/**************found********************/

for(i=0; __1__ ;i++) //假設答案應為i<10或其他等價寫法

sum+=i;

答題後排版如下:

int i,j,sum=0;

/**************found********************/

for(i=0; i<10 ;i++) sum+=i; //注意這裡刪除了一個回車符

卷面要求對應行數(第3行)應為

for(i=0; i<10 ;i++)

評分時判定該行內容為

for(i=0; i<10 ;i++) sum+=i;

文字與命題組答案不符,故該處答案不予給分。

同時,由於更改了行數,後續程式文字均會受影響,從而影響正常得分。

②關於上文中所謂的「命題組答案」

仍以int i,j,sum=0;

/**************found********************/

for(i=0; __1__ ;i++) //假設答案應為i<10或其他等價寫法

sum+=i;

為例。正確答案應該是i<10或其他等價寫法,那麼命題組會將各種「正常的」寫法作為命題組答案編撰以供評分。依舊舉例說明,等價寫法包括:

i<=9

i<9+1

i<=10-1

後續有無數種寫法就不一一例舉了

明顯只有i<10和<=9是正常寫法,後續寫法都過於奇葩,故此處在考試時只有寫入i<10或<=9才會得到正常的分數,其他寫法均不給分。

另外,這裡無需擔心,命題組很貼心的將各種常見寫法都納入到」命題組答案「中,只要不是過於特立獨行的答案,均會在考試中得到本該有的分數。

總結:填空題,在程式能夠「執行出正確的答案」,並且沒有違反①和②所強調的事項,均會得到本該有的分數。

①項通常不會違反,被此項影響得分的人數很少

②項不管是考試還是練習,在」能夠執行處正確的答案「前提下依舊丟分的幾乎全都是因為此項。

例如考試時,答案過於特立獨行,將i=i+1;寫成i=i+3-2;

而市面上絕大多數的等考模擬軟體,鑑於各種原因,都沒有使用」命題組答案「給出的姑且稱為」正確答案庫「的答案範圍,而是每個位置只給出一種在該模擬軟體中可以得分的答案寫法,其他」考試時將會正常得分「的答案寫法,造成考試時能夠得分但是在使用這些模擬軟體時均得不到分數的情況,也就是學生們經常詢問的問題:

」老師,i=i+1;和i+=1;不是一樣嗎?為什麼這道題寫i=i+1;才給分,另一道題只有寫i+=1;才給分?「

2、改錯題:

答題方式和評分準則完全等同與填空題,不再重複敘述

3、程式編寫,即俗稱的程式設計題:

答題方式:

題目中有明確敘述,要求書寫程式的某一部分,以實現題目要求的功能。通常要求書寫的位置是某個指定函式的函式體,或者部分主函式的函式體,**量6-10行左右。

評分準則:

程式設計題,評分依據是」能夠執行出正確的結果「,即評分依據有兩個關鍵點,一是執行,二是結果正確。

此題評分準則依舊是跟」命題組答案「對照,依舊是對比文字後逐行按比例給分,而命題組答案在此題中將會是唯一的。

程式設計題的評分依據,是程式編譯執行後得到的一個所謂的」out檔案「,該檔案在考生資料夾下,由程式設計執行時產生,檔名中通常帶有」out」字樣,各題具體的檔名,檢視程式設計題中呼叫fopen函式時所書寫的檔名就可以確認。

例如某題面中存在如下語句:

fopen(fp,"out.dat",w);

那麼該題目對應的評分依據就是對應考生資料夾下的名為「out.dat」的檔案。

程式設計題的評分,是將out檔案的內容與命題組答案對比,逐行按比例給分。

影響得分的專案如下:

①程式存在error,無法通過編譯:

無法編譯,就無法執行。沒有執行,就不會產生out檔案。沒有out檔案,那麼將會得到「指定檔案未找到」的錯誤,此題判0分。

另外還有一點要注意,有個別模擬軟體曾經出現過,題目中指定檔名為"out.dat",但是題面程式**中建立的卻是"ps35.out",造成「指定檔案未找到」判0分的情況。

這屬於模擬軟體的bug,不會在考試中發生。

②程式通過編譯且能夠執行,但是**本身存在bug。

舉個例子,寫程式找出1-15之間的素數。

命題組給出的out檔案內容如下:23

571113

一共6行,因為程式設計題總分24分,所以每行佔4分。

如果考生答題過程中程式書寫沒有錯誤的話,一定會得到跟命題組內容與格式完全一樣的答案(檔案的書寫由題面的fprintf函式負責,不允許考生改動,故檔案格式是已經被指定的),將會得到滿分24分。

如果**有誤,程式判定過程中將7判定為非素數,得到的out檔案內容與命題組答案對比及評分細則如下:

2 2 匹配,得4分

3 3 匹配,得4分

5 5 匹配,得4分

7 11 不匹配,得0分

11 13 不匹配,得0分

13 不匹配,得0分

故此題得分僅12分。

如果上述數值均正確判斷,但是錯誤的將1判斷為素數,out檔案內容如下:12

35711

13結果可想而知,逐行判定,最終肯定判0分。

額外要說明的是,大部分模擬軟體,不會進行逐行按比例給分,而是一旦out檔案內容與命題組答案」不完全匹配「,直接判0分,而考試時一定是逐行按比例給分的,這點無需擔心。

③程式書寫正確無bug,但是改動過程式命令禁止改動的其他部分,例如fprintf函式,請參考②

總結:由於②導致該題丟分的機率是最高的,一定要小心再小心。**出現問題時,別心急。很多時候,將已經書寫完畢的**整體刪掉,重新書寫,是最省事省力的解決bug的方案。

最後,補充一點,萬一程式原始結構被破壞,彆著急,不要冒險關閉vc6,只要按下ctrl+z組合鍵,就能逐步恢復之前的樣式。因為ctrl+z組合鍵的功能是」撤銷「

2樓:匿名使用者

理論知識可能沒過

c語言的考試分為理論知識和上機操作

只有兩部分都達到60分考試才通過

3樓:匿名使用者

你得到的結果可能只是片面的。 對於其他測試資料不一定正確,所以可能還有bug

4樓:匿名使用者

執行正確不能說明你程式沒有問題

5樓:匿名使用者

你做出來了 但是你儲存好了嗎?

計算機二級考試,c語言。 最後一道題,程式結果顯示正確,但是每次執行時都會彈出一個''程式執行時遇到 20

6樓:babyy小不點

在這樣的話如果**有對的應該會有一點分數吧,不過機器閱卷也不知道能不能判斷出來 ,如果寫好了是沒有錯誤跟警告,跟你說的這種錯誤你就改改**了。

7樓:你個曉都比

樓主 有分沒有。。我也遇到了

8樓:偉丶戀

樓主有分嗎?是怎麼算的?

全國計算機二級C語言上機考試執行和編譯都可以,但是執行出的結

額,其實吧,因為已經給出了空格要求填空,就說明分數已經細化到了每一個填空空格,如果沒有細化到每一個空格,直接看執行結果,那麼空格填空,沒有任何意義。那麼的那麼肯定是不會一分都沒有的,但是因為你說答案稍微有點不一樣,所以肯定不會得滿分的了吧 別糾結了,好好看其他的書吧,等個把月就知道結果了,機考的分數...

計算機二級C語言上機考試,只執行但沒有儲存,會有分嗎

應該不會的,如果沒有儲存的話,怎麼會執行,執行的是什麼啊,所以系統已經自動幫你儲存過一次了.如果考試系統,連這點問題都搞不定,也太垃圾了參加考試的學生,不可能都很熟悉考試系統,很多人都是第一次.考試系統讓你儲存,只是為了方便你,如果沒有儲存資訊可能會丟失,也只是可能而已,實際上系統會幫你儲存一次,讓...

計算機二級C語言最後一道程式設計題漏洞技巧有哪些

網上碰到有二級c的作弊方法,提到了通過更改out.dat檔案的內容,達到作弊的目的,自己也在二級c語言的模擬考試環境下測試過,可用,滿分,24分就來了,至於真正的二級c考試,有人說能用,也有人說,不能用,只有試試就知道了,第一次考二級,也沒試過,所以不知道是不是能用。具體如下 電腦常見問題解決 1 ...