第一篇:計(jì)算機(jī)等級(jí)考試三級(jí)C語言上機(jī)試題總結(jié)
計(jì)算機(jī)等級(jí)考試三級(jí)C語言上機(jī)試題總結(jié)
一、替換字符。
形如這樣:函數(shù)ReadDat()實(shí)現(xiàn)從文件ENG.IN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中;請(qǐng)編制函數(shù)encryptChar(),按給定的替代關(guān)系對(duì)數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對(duì)應(yīng)的位置上,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件PS10.DAT中。
替代關(guān)系:f(p)=p*11 mod 256(p是數(shù)組中某一個(gè)字符的ASCII值,f(p)是計(jì)算后新字符的ASCII值),如果原字符的ASCII值是偶數(shù)或計(jì)算后f(p)值小于等于32,則該字符不變,否則將f(p)所對(duì)應(yīng)的字符進(jìn)行替代。
二、字符串左右排序和比較。
形如這樣:函數(shù)ReadDat()實(shí)現(xiàn)從文件in.dat中讀取20行數(shù)據(jù)存放到字符串?dāng)?shù)組xx中(第行字符串長(zhǎng)度均小于80)。請(qǐng)編制函數(shù)jsSort(),其函數(shù)的功能是:以行為單位對(duì)字符串按給定的條件進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件out.dat中。
條件:從字符串中間一分為二,左邊部分按字符的ASCII值升序排序,排序后左邊部分與右邊部分進(jìn)行交換。如果原字符串長(zhǎng)度為奇數(shù),則最中間的字符不參加處理,字符仍放在原位置上。
三、正整數(shù)排序求平均值(包括將數(shù)拆散、求最大最小值)。
形如這樣:在文件中有200個(gè)正整數(shù),且每個(gè)數(shù)均在1000至9999之間。函數(shù)ReadDat()讀取這200個(gè)數(shù)存放到數(shù)組aa中。請(qǐng)編制函數(shù)jsSort(),其函數(shù)的功能是:要求按每個(gè)數(shù)的后三位的大小進(jìn)行升序排列,然后取出滿足此條件的前10個(gè)數(shù)依次存入數(shù)組b中,如果后三位的數(shù)值相等,則按原先的數(shù)值進(jìn)行降序排列。最后調(diào)用函數(shù)WriteDat()把結(jié)果bb輸出到文件out.dat中。
四、產(chǎn)品五個(gè)因素的比較排列,是結(jié)構(gòu)體操作問題。
形如這樣:已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價(jià)dj(整型),數(shù)量sl(整型),金額je(長(zhǎng)整型)四部分組成。其中:金額=單價(jià)*數(shù)量計(jì)算得出。函數(shù)ReadDat()是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請(qǐng)編制函數(shù)SortDat(),其功能要求:按產(chǎn)品代碼從大到小進(jìn)行排列,若產(chǎn)品代碼相同,則按金額從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT10.DAT中。
五、素?cái)?shù)。
形如這樣:請(qǐng)編寫一個(gè)函數(shù)jsValue(int m,int k,int xx[]),該函數(shù)的功能是:將大于整數(shù)m且緊靠m的k個(gè)素?cái)?shù)存入數(shù)組xx傳回。
最后調(diào)用函數(shù)writeDat()讀取10組數(shù)據(jù),分別得出結(jié)果且把結(jié)果輸出到文件out.dat中。
六、數(shù)字排序。
形如這樣:在文件in.dat中有200組數(shù)據(jù),每組有3個(gè)數(shù),每個(gè)數(shù)均是三位數(shù)。函數(shù)ReadDat()讀取這200組數(shù)據(jù)存放到結(jié)構(gòu)數(shù)組aa中,請(qǐng)編制函數(shù)jsSort(),其函數(shù)的功能是:要求在200組數(shù)據(jù)中找出條件為每組中的第一個(gè)數(shù)大于第二個(gè)數(shù)加第三個(gè)數(shù)的之和,其中滿足條件的個(gè)數(shù)作為函數(shù)jsSort()的返回值,同時(shí)把滿足條件的數(shù)據(jù)存入結(jié)構(gòu)數(shù)組bb中,再對(duì)bb中的數(shù)據(jù)按照每組數(shù)據(jù)的第一個(gè)數(shù)加第三個(gè)之和的大小進(jìn)行升序排列(第一個(gè)數(shù)加第三個(gè)數(shù)的和均不相等),排序后的結(jié)果仍重新存入結(jié)構(gòu)數(shù)組bb中,最后調(diào)用函數(shù)WriteDat()把結(jié)果bb輸出到文件out.dat中。
部分源程序已給出。
七、其他數(shù)學(xué)計(jì)算。
形如這樣:某級(jí)數(shù)的前兩項(xiàng)A1=1,A2=1,以后各項(xiàng)具有如下關(guān)系:
An=An-2+2An-1 下列程序的功能是:要求依次對(duì)于整數(shù)M=100,1000和10000求出對(duì)應(yīng)的n值,使其滿足:Sn
Sn=A1+A2+...+An,并依次把n值存入數(shù)組單元b[0],b[1]和b[2]中,請(qǐng)編制jsValue()函數(shù)來實(shí)現(xiàn)此功能,最后調(diào)用函數(shù)writeDat()把數(shù)組b[]中的值輸出到out.dat文件中。
八、數(shù)字或字符移位后的計(jì)算。
形如這樣:函數(shù)ReadDat()實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,請(qǐng)編制函數(shù)StrCharJR(),其函數(shù)的功能是:以行為單位把字符串中所有字符的ASCII值右移4位,然后把右移后的字符ASCII值再加上原字符的ASCII值,得到新的字符仍存入原字符串對(duì)應(yīng)的位置上。最后把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)writeDat()把結(jié)果xx輸出到文件OUT8.DAT中。
九、學(xué)生成績(jī),結(jié)構(gòu)體問題。
形如這樣:下列程序的功能是:已知學(xué)生的記錄由學(xué)號(hào)和學(xué)習(xí)成績(jī)構(gòu)成,N名學(xué)生的數(shù)據(jù)已存入a數(shù)組中。找出成績(jī)最低的學(xué)生記錄(假定最低成績(jī)的記錄是唯一的),通過形參返回。請(qǐng)編寫函數(shù)mm(STU a[],STU *s)實(shí)現(xiàn)程序要求,最后調(diào)用函數(shù)reawriteDAT()把結(jié)果輸出到文件out.dat中。
例如: KS01 87 KS09 67
KS11 97
則調(diào)用該函數(shù)后,輸出The lowest:KS19,67
十、字符串(單詞)的倒置和刪除。
形如這樣:函數(shù)ReadDat()實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,請(qǐng)編制函數(shù)StrOL(),其函數(shù)的功能是:以行為單位對(duì)行中以空格或標(biāo)點(diǎn)符號(hào)為分隔的所有單詞進(jìn)行倒排。最后把已處理的字符串(應(yīng)不含標(biāo)點(diǎn)符號(hào))仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)writeDat()把結(jié)果xx輸出到文件OUT6.DAT中。
例如:原文: You He Me I am a student.結(jié)果:Me He You
student a am I
原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格。
十一、選票問題。
形如這樣:現(xiàn)有一個(gè)10個(gè)人100行的選票數(shù)據(jù)文件IN.DAT,其數(shù)據(jù)存放的格式是每條記錄的長(zhǎng)度均為10位,第一位表示第一個(gè)人的選中情況,第二位表示第二個(gè)人的選中情況,依此類推 :內(nèi)容均為字符0和1,1表示此人被選中,0表示此人未被選中,若一張選票人數(shù)小于等于5個(gè)人時(shí)被認(rèn)為無效的選票。給定函數(shù)ReadDat()的功能是把選票數(shù)據(jù)讀入到字符串?dāng)?shù)組xx中。請(qǐng)編制函數(shù)CountRs()來統(tǒng)計(jì)每個(gè)人的選票數(shù)并把得票數(shù)依次存入yy[0]到y(tǒng)y[9]中。把結(jié)果yy輸出到文件OUT.DAT中。
部分源程序已給出。
十二、出圈問題。
形如這樣:設(shè)有n個(gè)人圍坐一圈并按順時(shí)針方向從1到n編號(hào),從第s個(gè)人開始進(jìn)行1到m的報(bào)數(shù),報(bào)數(shù)到第個(gè)m人,此人出圈,再?gòu)乃南乱粋€(gè)人重新開始1到m的報(bào)數(shù),如此進(jìn)行下去直到所有的人都出圈為止?,F(xiàn)要求按出圈次序,每10人一組,給出這n個(gè)人的順序表。請(qǐng)考生編制函數(shù)Josegh()實(shí)現(xiàn)此功能并調(diào)用函數(shù)WriteDat()把結(jié)果p輸出到文件OUT.DAT中。
設(shè)n=100,c=1,m=10.(1)將1到n個(gè)人的序號(hào)存入一維數(shù)組p中;
(2)若第i個(gè)人報(bào)數(shù)后出圈,則將p[i]置于數(shù)組的倒數(shù)第i個(gè)位置上,而原來第i+1個(gè)至倒數(shù)第i個(gè)元素依次向前移動(dòng)一個(gè)位置;
(3)重復(fù)第(2)步直至圈中只剩下p[1]為止。
部分源程序已給出。
十三、進(jìn)制轉(zhuǎn)換。
形如這樣:請(qǐng)編制函數(shù)readdat()實(shí)現(xiàn)從文件in.dat中讀取100個(gè)十六進(jìn)制數(shù)到字符串?dāng)?shù)組xx中
;再編制函數(shù)h16to2(),將xx中的十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)并把已轉(zhuǎn)換的二進(jìn)制數(shù)仍
存放在字符串?dāng)?shù)組xx,最后調(diào)用函數(shù)writedat()把結(jié)果輸出到out.dat文件中。
原始數(shù)據(jù)文件存放的格式是:每行存放10個(gè)數(shù),并用逗號(hào)隔開。(每個(gè)數(shù)均大于0且小于
等于2000)
部分源程序已給出。
第二篇:計(jì)算機(jī)三級(jí)(C語言)上機(jī)考試題型總結(jié)與注意事項(xiàng)
C語言 三級(jí)上機(jī)考試題型總結(jié)與注意事項(xiàng)
按前面的分題型講解,三級(jí)上機(jī)考試100道題被分為9大題型。每種題型在題庫(kù)中占的比例也已經(jīng)在題型名字后面的括號(hào)中注明。
題型
一、結(jié)構(gòu)體數(shù)組排序問題(11%)
題型
二、對(duì)四位數(shù)先篩選再處理的問題(35%)
題型
三、整數(shù)處理問題(17%)
題型
四、對(duì)字符數(shù)組中的字符進(jìn)行替換的問題(18%)
題型
五、對(duì)字符串?dāng)?shù)組進(jìn)行排序的問題(6%)
題型
六、特殊排序問題(5%)
題型七、二次排序問題(2%)
題型
八、選票統(tǒng)計(jì)問題(3%)
題型
九、數(shù)列問題(3%)
注意事項(xiàng): 應(yīng)考策略:
1、首先仔細(xì)審題,看清題目要求,避免眼高手低。
2、在頭文件下面,看清試題程序中已經(jīng)定義的變量及其類型。
3、試題程序中已經(jīng)定義的結(jié)果變量不要重復(fù)定義(中間變量沒關(guān)系)。
4、看清試題程序中定義好的變量后,注意試題程序中有沒有進(jìn)行初始化。重復(fù)初始化沒關(guān)系,但是不進(jìn)行初始化會(huì)出問題。
5、按照題目要求,仔細(xì)分析,平穩(wěn)答題,時(shí)間絕對(duì)夠用。
6、答完題先保存,再編譯,有語法錯(cuò)誤則改正,編譯通過后則運(yùn)行。
7、以運(yùn)行結(jié)果為準(zhǔn),檢查是否具有題目要求的功能,以排除邏輯錯(cuò)誤。
8、時(shí)間很充足,急著早交卷沒用,確定無誤后再交卷。
常見小錯(cuò)誤
1、字符串的比較沒有使用strcmp()函數(shù)。
2、把等號(hào)錯(cuò)寫為賦值符號(hào)。
3、在程序進(jìn)行中,尤其是多次循環(huán)的程序中,沒有考慮到變量值的變化。
4、沒有注意循環(huán)的作用范圍,少寫{}。
5、沒有注意運(yùn)算符的優(yōu)先級(jí)。
還有很多其它的小錯(cuò)誤,在上機(jī)的過程中會(huì)出現(xiàn)。不上機(jī)運(yùn)行,總是會(huì)有想不到的錯(cuò)誤,多上機(jī)運(yùn)行,也可以發(fā)現(xiàn)很多小技巧。
常用運(yùn)算符優(yōu)先級(jí)(從高到低)
1、[ ]
。(結(jié)構(gòu)體成員引用運(yùn)算符)
2、++---(負(fù)號(hào))()(強(qiáng)制轉(zhuǎn)換運(yùn)算符)*(指針運(yùn)算符)&(取地址運(yùn)算符)
3、*(乘)/ %
4、+
5、<<
>>
6、<
<=
>
>=
7、==!=
8、&&
9、||
10、=
+=
*=
/=
%=(賦值運(yùn)算符號(hào))
11、,(逗號(hào))
C語言 三級(jí)上機(jī)考試中最常用的基礎(chǔ)知識(shí): 2010-04-22 21:
51一、上機(jī)考試題中的常用操作
上機(jī)考試題中有許多操作經(jīng)常用到,以下是幾種非常常用的,還有一些更細(xì)節(jié)的東西在以后的具體題目中會(huì)著重分析。
1、對(duì)數(shù)組元素進(jìn)行排序
如對(duì)數(shù)組a[N]進(jìn)行從小到大排列(或叫升序排列),程序如下:
int i,j,t;for(i=0;i
從數(shù)組中的第一個(gè)元素開始,與它后面的所有元素依次進(jìn)行比較,如果發(fā)現(xiàn)前面的比后面的大,就進(jìn)行交換,否則不進(jìn)行處理。a[0]將是N個(gè)元素中最大的,a[1]將是除a[0]以外的元素中最大的。這樣一直到倒數(shù)第二個(gè)元素。最后一個(gè)元素后面沒有元素了,所以i 這種操作的特點(diǎn): 當(dāng)i變化以后,第i個(gè)元素之前的元素就已經(jīng)確定了,只有后面的元素才會(huì)在程序往下執(zhí)行時(shí)發(fā)生變化。比如對(duì)數(shù)據(jù)3,2,1,6,5進(jìn)行升序排列,程序執(zhí)行時(shí)數(shù)據(jù)的狀態(tài)變化為: 1,x,x,x,x 1,2,x,x,x 1,2,3,x,x 1,2,3,5,6 所以說,如果要求將a[N]中最小的10個(gè)元素按從小到大的順序排列到數(shù)組的前部的話,則只須對(duì)數(shù)組的前10個(gè)元素進(jìn)行處理,相應(yīng)的程序改為: int i,j,t;for(i=0;i<10;i++)for(j=i+1;j 而不必對(duì)i>=10 的元素處理。