三級C語言程式設計

三級C語言程式設計

三級C語言程式設計是為了適應現代社會對計算機人才的需要,在大多數大學普及的一門計算機編程初級課程。三級C語言程式設計是C語言的入門課,為學生了解編程,在編程上不斷深入打下基礎。三級C語言程式設計每年有一次考試,每個學校按國家標準獨立設立考場,考試分筆試和機試兩部分,考試通過者發三級C語言計算機證書。

三級C語言簡介

三級C語言程式設計是全國計算機等級考試NCRE三級網路技術資料庫技術信息管理技術上機考試考核內容。一般每次考試題庫由100道C語言程式設計題組成(俗稱“南開百題”)。上機考試時每個考生從百題題庫中隨機抽選一題,在規定的時間內完成其程式設計要求。

考試時間

2009年上半年考試時間定於3月28日至4月1日,下半年為9月19日至23日。一般上午考筆試,上機考試從筆試的當天下午開始,有時是第二天上午。具體見考試通知或考生准考證。
上機考試時間為60分鐘。

上機環境

Visual C++6.0

題型分類

求取給定範圍的多個素數

數位分解後按數位數字篩選統計並排序
以待定字母分割字元串並重組
按結構體成員進行多關鍵字排序
字元串排序
數據相鄰數篩選統計並排序
字元替換
字元串搜尋
以遞推關係求數列值
用疊代法求方程的根
對給定範圍內的數進行篩選並統計
判斷迴文數
數值篩選與統計
數位分解並重組後再篩選統計並排序
計算方差
選票問題
SIX與NINE問題
特殊排序
出圈問題
結構體篩選並排序
字元串循環位移

例題參考

題目

已知數據檔案IN.DAT存有200個四位數,並以調用讀函式readDat()把這些數存入數組a中,請考生編制一函式jsVal(),其功能是:如果四位數 各位上的數字均是0或2或4或6或8,則統計出滿足此條件的個數CNT,並把這些四位數按從大到小的順序存入數組b中。最後main()函式調用寫函式writeDat()把結果cnt以及數組b中符合條件的四位數輸出到OUT.DAT中。
注意:部分程式已給出。
程式中已定義數組a[200],b[200];已定義變數:cnt。
請勿改動數據檔案IN.DAT中的任何數據及主函式main()、讀函式readDat和寫函式writeDat()的內容。

某考生的程式

(因為此處沒有數據檔案IN.DAT,所以讀者拷貝該程式,編譯能通過,但執行不起來)
#include <stdio.h>
#define MAX 200
int a&#91;MAX&#93;, b&#91;MAX&#93;, cnt = 0;
void jsVal()
{
int m,j,k,gg,ss,bb,qq,data;
for(m=0;m<200;m++)
{qq=a&#91;m&#93;/1000;
bb=a&#91;m&#93;%1000/100;
ss=a&#91;m&#93;%100/10;
gg=a&#91;m&#93;%10;
if(qq%2==0&&bb%2==0&&ss%2==0&&gg%2==0)

{
b&#91;cnt&#93;=a&#91;m&#93;;
cnt++;
}
m++;
}
for(j=0;j<cnt-1;j++)
for(k=j+1;k<cnt;k++)
if(b&#91;j&#93;<b&#91;k&#93;)
{
data=b&#91;k&#93;;
b&#91;k&#93;=b&#91;j&#93;;
b&#91;j&#93;=data;
}
}
void readDat()
{
int i;
FILE *fp;
fp = fopen("IN.DAT", "r");
for (i=0; i<MAX; i++)
fscanf(fp, "%d,", &a&#91;i&#93;);
fclose(fp);
}
void writeDat()
{
FILE *fp;
int i;
fp = fopen("OUT.DAT", "w");
fprintf(fp, "%d\n", cnt);
for (i=0; i<cnt; i++)
fprintf(fp, "%d\n", b&#91;i&#93;);
fclose(fp);
}
void main()
{
int i;
readDat();
jsVal();
printf("滿足條件的數=%d\n", cnt);
for (i=0; i<cnt; i++)
printf("%d ", b&#91;i&#93;);
printf("\n");
writeDat();
}
以上運行的結果是
滿足條件的數=4
6662 4602 2668 2264
正確答案應該如下
滿足條件的數=6
6662 6604 4602 2842 2668 2664評分參考

(一般採用評分軟體評分)
本題共100分。
執行檔 已生成
輸出檔案 存在
第1行數據應為:6 結果不正確;
第2行數據應為:6662 結果正確;
第3行數據應為:6604 結果不正確;
第4行數據應為:4602 結果不正確;
第5行數據應為:2842 結果不正確;
第6行數據應為:2668 結果不正確;
第7行數據應為:2264 結果不正確;
本題共應輸出7行數據,1行結果正確,得14分。
如果所編程式編譯不成功,或者執行檔未生成,直接判0分。因此在上機考試成績中,0分和100分的分布比例比較大。

參考程式

void jsVal()
{
int bb&#91;4&#93;;
int i, j, k, flag;
for (i=0; i<200; i++)
{
bb&#91;0&#93; = a&#91;i&#93;/1000;
bb&#91;1&#93; = a&#91;i&#93;%1000/100;
bb&#91;2&#93; = a&#91;i&#93;%100/10;
bb&#91;3&#93; = a&#91;i&#93;%10;
for (j=0; j<4; j++)
{
if (bb&#91;j&#93;%2 == 0)
{
flag = 1;
}
else
{
flag = 0;
break;
}
}
if (flag == 1)
{
b&#91;cnt&#93; = a&#91;i&#93;;
cnt++;
}
}
for (i=0; i<cnt-1; i++)
for (j=i+1; j<cnt; j++)
if (b&#91;i&#93; < b&#91;j&#93;)
{
k = b&#91;i&#93;;
b&#91;i&#93; = b&#91;j&#93;;
b&#91;j&#93; = k;
}
}

相關詞條

相關搜尋

熱門詞條

聯絡我們