❶ 用C語言實現一個小學生口算及自測系統,實現自動出題,根據答題情況評分並記載入檔案,並能根據成績進行排
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//產生 [a,b] 區間的隨機數
#define RANDOM(a,b) (rand()%((b+1)-(a)) + (a))
//產生 1-20 的整數,如要改變算術范圍,則修改這個宏的參數即可
#define GEN_VALUE() RANDOM(1, 20)
int main()
{
int v1, v2, t, r, a;
char op, ops[] = { '+', '-', '*', '/' };
srand( (unsigned)time(NULL) ); //用當前時間初始化隨機數種子
printf( "請答題 Ctrl+C 結束... " );
while(1)
{
v1 = GEN_VALUE(); //隨機生成第1個算數
v2 = GEN_VALUE(); //隨機生成第2個算數
op = ops[ RANDOM(0,3) ]; //隨機決定是哪個運算符
//保證第1個算數大於第2個算數,如不需要,則把這個判斷刪除即可
if( v1<v2 )
{
t = v1;
v1 = v2;
v2 = t;
}
//如果運算符為除法,且v1不能被v2整除則重新生成題目
if( op=='/' && v1%v2!=0 )
continue;
//計算正確的結果
switch(op)
{
case '+': a=(float)v1+(float)v2; break;
case '-': a=(float)v1-(float)v2; break;
case '*': a=(float)v1*(float)v2; break;
case '/': a=(float)v1/(float)v2; break;
}
//輸出算式
printf( "%d%c%d=", v1, op, v2 );
//等待輸入結果
scanf( "%d", &r );
if( r == a )
printf( " 答對嘍! " );
else
printf( " 答錯嘍!正確答案是:%d ", a );
}
}
❷ 計算機二級的c語言,後面有一個編程題如何給分的
不管你程序寫怎麼樣。只看結果。對了滿分不對0分。編程題滿分為24分。
如果有out.dat文件,將該文件和標准答案的out.dat文件對比,看相符的比例是多少而給分,如果完全相同則是100分,如果沒有out.dat文件,則比較考生編寫的代碼和標准答案的代碼的相符情況,按相符度給分。
(2)c語言編程題自動評分擴展閱讀:
1、仔細檢查題目。
2、一定要考慮諸如除零、溢出、類型轉換、精確度等細節。
3、不要使用快捷鍵。熱鍵在考試中可能是危險的,因為UCDOS熱鍵與TC沖突,CTRL+F9將變成全形半形轉換。
4、不要載入任何輸入方法。
用於計算機測試的DOS環境內存非常有限。如果您載入了任何輸入方法,那麼在編譯程序時可能會耗盡內存,這樣就會遇到麻煩。
❸ 計算機c語言二級上級考試編程題不是0分就是40分
是的,計算機C語言上機編程題要麼0分要麼40分。所以建議你把前兩題(填空和改錯)都做對。
最後一道自己嘗試著去做,別輕易的放棄。
❹ 國家c語言二級要是編程題怎麼給分的
計算機二級考試已實行多年,評分標准十分嚴謹。對於編程題,作為內評分依據的答案包含容了各種情況,而並不是死板的一種標准答案。只要靠上了答案的某種情況,就不用擔心不得分。
輸入一個職工的月薪salary,輸出應交的個人所得稅tax。
tax=rate*(salary-850)。
當salary<=850時,rate=0%;
當850<salary<=1350時,rate=5%;
當1350<salary<=2850時,rate=10%;
當2850<salary<=5850時,rate=15%;
當5850<salary時,rate=20%。
(4)c語言編程題自動評分擴展閱讀:
計算機對除機器語言以外的源程序不能直接識別、理解和執行,都必須通過某種方式轉換為計算機能夠直接執行的。這種將高級程序設計語言編寫的源程序轉換到機器目標程序的方式有兩種:
1、解釋方式:計算機對高級語言書寫的源程序一邊解釋一邊執行,不能形成目標文件和執行文件。
2、編譯方式:經過對源程序的詞法分析、語法分析、語意分析、代碼生成和代碼優化等階段將所處理的源程序轉換為用二進制代碼表示的目標程序,然後通過連接程序處理將程序中所用的函數調用、系統功能調用等嵌入到目標程序中,構成一個可以連續執行的二進制執行文件。
❺ 學渣求問C語言操作題怎麼評分的
評分標準是對比那個out文件,逐行按比例給分。我昨天剛回答了一個,會在答案末尾復制粘貼過來。
思路和方法不影響得分,只要答案正確就可以。
模擬軟體確實有可能有bug,你用的哪家的軟體?最好把題面和程序都發上來讓我看看。
下面是編程題具體評分准則:
程序編寫,即俗稱的編程題:
答題方式:
題目中有明確敘述,要求書寫程序的某一部分,以實現題目要求的功能。通常要求書寫的位置是某個指定函數的函數體,或者部分主函數的函數體,代碼量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文件內容如下:
2
3
5
7
11
13
一共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文件內容如下:
1
2
3
5
7
11
13
結果可想而知,逐行判定,最終肯定判0分。
額外要說明的是,大部分模擬軟體,不會進行逐行按比例給分,而是一旦out文件內容與命題組答案」不完全匹配「,直接判0分,而考試時一定是逐行按比例給分的,這點無需擔心。
③程序書寫正確無bug,但是改動過程序命令禁止改動的其他部分,例如fprintf函數,請參考②
❻ 江蘇計算機二級c語言編程題是怎麼評分的
不是的,結果是一部分,過程一部分,過程占的比例大。
二級c都考了這么多年了,如果存在樓主說的bug,以現在的技術早就修補了。
建議樓主去某寶買個二級題庫,自帶考試軟體,評分規則一樣,可以先做兩套練練手。
❼ c語言程序設計題自動評分是怎麼實現的
處8分。
編程題是60分,主函數編寫正確10分
fun函數編寫正確10分
演算法正確20分
引用fun函數正確10分
全程序正確10分
❽ 計算機C語言二級編程題如何評分的呢
直接看的功能,結果正確就給分,結果錯了就沒分了
原因有2個,對於函數編寫的人 需要完成函數的功能,對於函數使用的人 只想看到結果是否正確
你將來到公司做項目,也是這樣,各個工程師負責自己的功能,完成後交給項目經理,他不看你功能是怎麼完成的,只管用,用出來的結果錯了,他就找你 讓你去改
第二 計算機2級這種東西就是政府拿來掙錢的,你看他考的標准,89年的標准,現在是2014年,早tm過時了,這種東西 不會費勁找人一條一條看語句的
❾ 計算機等級考試2級 C語言 最後一道編程題是怎麼給分的呢
這就要看是機試還是筆答題了,機試一般都是通過預先准備的測試用例來自動打分,只要你的程序能通過各種測試用例,那麼就給全分,否則就是零分;筆答題如果是人工批改那就靈活的多,也可能必須按照標准答案上的演算法才給分(這樣的題一般都有演算法復雜度要求)