二級C語言培訓(xùn)材料(印刷)_第1頁
二級C語言培訓(xùn)材料(印刷)_第2頁
二級C語言培訓(xùn)材料(印刷)_第3頁
二級C語言培訓(xùn)材料(印刷)_第4頁
二級C語言培訓(xùn)材料(印刷)_第5頁
已閱讀5頁,還剩130頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

目錄

第一章考試大綱..........................................2

第二章考試時間及考試題型................................3

一、考試時間.................................................................3

二、考試題型.................................................................3

第三章考試環(huán)境..........................................3

一、考試軟件環(huán)境............................................................3

二、考試系統(tǒng)使用............................................................3

第四章考試內(nèi)容..........................................7

一、常見考點................................................................7

二、考試樣卷...............................................................12

2013年4月試題庫........................................19

第一套題....................................................................19

第二套題....................................................................32

第三套題...................................................................44

第四套題....................................................................56

第五套題....................................................................67

第六套題....................................................................78

第七套題....................................................................89

第八套題...................................................................101

第九套題...................................................................113

第十套題...................................................................123

第一章考試大綱

?基本要求

1,熟悉VisualC++6.0集成開發(fā)環(huán)境。

2.掌握結(jié)構(gòu)化程序設(shè)計的方法,具有良好的程序設(shè)計風(fēng)格。

3.掌握程序設(shè)計中簡單的數(shù)據(jù)結(jié)構(gòu)和算法并能閱讀簡單的程序。

4.在VisualC++6.0集成環(huán)境下,能夠編寫簡單的C程序,并具有基本的糾錯和調(diào)試程

序的能力

?考試內(nèi)容

一、C語言程序的結(jié)構(gòu)

1.程序的構(gòu)成,main函數(shù)和其他函數(shù)。

2.頭文件,數(shù)據(jù)說明,函數(shù)的開始和結(jié)束標志以及程序中的注釋。

3.源程序的書寫格式。

4.C語言的風(fēng)格。

二、數(shù)據(jù)類型及其運算

1.C的數(shù)據(jù)類型(基本類型,構(gòu)造類型,指針類型,無值類型)及其定義方法。

2.C運算符的種類、運算優(yōu)先級和結(jié)合性。

3.不同類型數(shù)據(jù)間的轉(zhuǎn)換與運算。

4.C表達式類型(賦值表達式,算術(shù)表達式,關(guān)系表達式,邏輯表達式,條件表達式,逗

號表達式)和求值規(guī)則。

三、基本語句

I.表達式語句,空語句,復(fù)合語句。

2.輸入輸出函數(shù)的調(diào)用,正確輸入數(shù)據(jù)并正確設(shè)計輸出格式。

四、選擇結(jié)構(gòu)程序設(shè)計

1.用if語句實現(xiàn)選擇結(jié)構(gòu)。

2.用switch語句實現(xiàn)多分支選擇結(jié)構(gòu)。

3.選擇結(jié)構(gòu)的嵌套。

五、循環(huán)結(jié)構(gòu)程序設(shè)計

1.for循環(huán)結(jié)構(gòu)。

2.while和do-while循環(huán)結(jié)構(gòu)。

3.continue語句和break語句。

4.循環(huán)的嵌套。

六、數(shù)組的定義和引用

1.一維數(shù)組和二維數(shù)組的定義、初始化和數(shù)組元素的引用。

2.字符串與字符數(shù)組。

七、函數(shù)

1.庫函數(shù)的正確調(diào)用。

2.函數(shù)的定義方法。

3.函數(shù)的類型和返回值。

4.形式參數(shù)與實在參數(shù),參數(shù)值傳遞。

5.函數(shù)的正確調(diào)用,嵌套調(diào)用,遞歸調(diào)用。

6.局部變量和全局變量。

7.變量的存儲類別(自動,靜態(tài),寄存器,外部),變量的作用域和生存期。

八、編譯預(yù)處理

1.宏定義和調(diào)用(不帶參數(shù)的宏,帶參數(shù)的宏)。

2.文件包含“處理。

九、指針

1.地址與指針變量的概念,地址運算符與間址運算符。

2.一維、二維數(shù)組和字符串的地址以及指向變量、數(shù)組、字符串、函數(shù)、結(jié)構(gòu)體的指針變

量的定義。通過指針引用以上各類型數(shù)據(jù)。

3.用指針作函數(shù)參數(shù)。

4.返回地址值的函數(shù)。

5.指針數(shù)組,指向指針的指針。

十、結(jié)構(gòu)體(即“結(jié)構(gòu)”)與共同體(即“聯(lián)合”)

1,用typedef說明一個新類型.

2.結(jié)構(gòu)體和共用體類型數(shù)據(jù)的定義和成員的引用。

3.通過結(jié)構(gòu)體構(gòu)成鏈表,單向鏈表的建立,結(jié)點數(shù)據(jù)的輸出、刪除與插入。

十一、位運算

1.位運算符的含義和使用。

2.簡單的位運算。

十二、文件操作

只要求緩沖文件系統(tǒng)(即高級磁盤I/O系統(tǒng)),對非標準緩沖文件系統(tǒng)(即低級磁盤I/O系

統(tǒng))不要求。

1.文件類型指針(FILE類型指針)

2.文件的打開與關(guān)閉(fopen,fclose)。

3.文件的讀寫(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函數(shù)的應(yīng)用),文

件的定位(rewind,fseek函數(shù)的應(yīng)用)。

第二章考試時間及考試題型

一、考試時間

考試時間為120分鐘。時間由考試系統(tǒng)自動進行計時,提前5分鐘自動報警來提醒考試及時

存盤。考試時間用完,考試系統(tǒng)將自動鎖定計算機,考試將不能繼續(xù)進行考試。

二、考試題型

二級C語言滿分100分,共有四種類型的考題,即選擇題(40分)、程序填空題(18分、

程序修改題(18分)和程序設(shè)計題(24分)

第三章考試環(huán)境

一、考試軟件環(huán)境

操作系統(tǒng):中文Windows7

應(yīng)用軟件:MicrosoftVisualC++6.0和MSDN6.0

二、考試系統(tǒng)使用

1、首先雙擊桌面上的無紙化考試系統(tǒng)圖標

2、出現(xiàn)如下圖所示界面

3、單擊“開始登錄”按鈕,出現(xiàn)如下圖所示窗口,輸入考生的準考證號

4、單擊“登錄”按鈕,出現(xiàn)如下圖所示確認考生信息窗口

5、如信息有錯,則單擊“重輸考號”按鈕,重新錄入考生信息;如信息無誤,單擊“開始

考試”按鈕,會出現(xiàn)提示“正在抽取試題,請稍候。。。。”,如下圖所示:

6、試

題抽

取成

功,

會出

現(xiàn)如

下圖

所示

考試

內(nèi)容

和考

試須

知窗口:

全國計見機3

考試內(nèi)容

k考生必縝在自己的考生文件夾下進

行考試,必須使用標準C答虺,否則

將影響考叢成績:‘一一

2.作答選擇題時鍵推被.使用鍵

盤無效,考生31使用鼠標答題:

3.選抨18部分只能進入一次.退出后

不能再次進入:

4.逸抨題部分不單獨計時.

一考總時間;120

考武局余時間:I29TT9

開始考試并計時

7、勾選復(fù)選框“已閱讀“,單擊”開始考試并計時”按鈕,出現(xiàn)如下圖所示試題窗口

8、按照窗口提示內(nèi)容進行答題操作,考題的四個部分答題順序可自由選擇。

9、做完所有的題目以后,單擊窗口上的‘像"暹出‘按鈕,彈出提示信息,如下圖所示:

①確認要保存并退出選擇題系統(tǒng)嗎?

若要退出,則考生不能再次進入!

10、如果確認交卷,則單擊“確認”按鈕,出現(xiàn)如下圖所示提示信息:

系統(tǒng)正在進行交卷處理,請稍候!

11、交卷成功,則會出現(xiàn)考生成績。

第四章考試內(nèi)容

一、常見考點

總體上必須清楚的:

1)程序結(jié)構(gòu)是三種:順序結(jié)構(gòu),循環(huán)結(jié)構(gòu)(三個循環(huán)結(jié)構(gòu)),選擇結(jié)構(gòu)(if和switch)

2)讀程序都要從main。入口,然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。

3)計算機的數(shù)據(jù)在電腦中保存是以二進制的形式.數(shù)據(jù)存放的位置就是它的地址.

4)bit是位是指為?;蛘?。byte是指字節(jié),一個字節(jié)=8個位.

概念??嫉降模?/p>

1)編譯預(yù)處理不占運行時間。C語言編寫的程序稱為源程序,它以ASCII數(shù)值存放在文本

文件中。通過編譯命令將無語法錯誤的“源程序”(.c)編譯為二進制的“目標程序”(.obj),

再通過組建命令,將“目標程序”鏈接為一個可執(zhí)行程序(.exe)。

2)每個C語言程序中main函數(shù)是有且只有一個。

3)函數(shù)可以嵌套調(diào)用,但不能嵌套定義。

4)算法是一定要有輸出的,但可以沒有輸入。

5)break可用于循環(huán)結(jié)構(gòu)和switch語句。

6)逗號運算符的優(yōu)先級別最低。

?C語言程序設(shè)計的基礎(chǔ)知識

1)合法的用戶標識符考查:

合法的要求是由字母,數(shù)字,下劃線組成。有其它元素就錯了。

并且第一個必須為字母或則是下劃線。第一個為數(shù)字就錯了。

關(guān)鍵字不可以作為用戶標識符號。maindefinescanfprintf都是關(guān)鍵字。迷惑你的地方

If是可以做為用戶標識符。因為If中的第一個字母大寫了,所以不是關(guān)鍵字。

2)實型數(shù)據(jù)的合法形式:

考試口訣:e前e后必有數(shù)字,e后必須為整數(shù)。.

3)字符數(shù)據(jù)的合法形式::

T是字符占一個字節(jié),"1"是字符串占兩個字節(jié)(含有一個結(jié)束符號)。

'0'的ASCII數(shù)值表示為48,宣的ASCH數(shù)值是97」A*的ASCII數(shù)值是65。

4)整型一般是兩個字節(jié),字符型是一個字節(jié),雙精度一般是4個字節(jié):

考試時候一般會說,在16位編譯系統(tǒng),或者是32位系統(tǒng)。碰到這種情況,不要去管,

一樣做題。掌握整型一般是兩個字節(jié),字符型是一個字節(jié),雙精度一般是4個字節(jié)就可以了。

5)轉(zhuǎn)義字符的考查:

在程序中inta=0x6d,是把一個十六進制的數(shù)給變量a,注意這里的OX必

須存在。

在程序中inta=06d,是一個八進制的形式。

在轉(zhuǎn)義字符中,'\x6d'才是合法的,o不能寫,并且x是小寫。

'\141'是合法的。

'\108'是非法的,因為不可以出現(xiàn)8。

轉(zhuǎn)義字符意義ASCH碼值(十進制)

\a響鈴(BEL)007

\b退格(BS)008

\f換頁(FF)012

\n換行(LF)010

\r回車(CR)013

\t水平制表(HT)009

\v垂直制表(VT)011

\\反斜杠092

\?問號字符063

\,單引號字符039

\"雙引號字符034

\0空字符(NULL)000

\ddd任意字符三位八進制

\xhh任意字符二位十六進制

6)算術(shù)運算符號的優(yōu)先級別:

同級別的有的是從左到右,有的是從右到左。

7)強制類型轉(zhuǎn)換:

一定是(int)a不是int(a),注意類型上一定有括號的。

注意(int)(a+b)和(int)a+b的區(qū)別。前是把a+b轉(zhuǎn)型,后是把a轉(zhuǎn)型再加b。

8)表達式的考查:

是表達式就一定有數(shù)值。

賦值表達式:表達式數(shù)值是最左邊的數(shù)值,a=b=5;該表達式為5,常量不可以賦值。

自加、自減表達式:假設(shè)a=5,++a(是為6),a++(為5);

運行的機理:++a是先把變量的數(shù)值加上1,然后把得到的數(shù)值放到變量a中,然后再用這

個++a表達式的數(shù)值為6,而a++是先用該表達式的數(shù)值為5,然后再把a的數(shù)值加上1為6,

再放到變量a中。進行了++a和a++后在下面的程序中再用到a的話都是變量a中的6了。

考試口訣:++在前先加后用,++在后先用后加。

逗號表達式:優(yōu)先級別最低;表達式的數(shù)值逗號最右邊的那個表達式的數(shù)值。

(2,3,4)的表達式的數(shù)值就是4。

9)位運算的考查:

例1:chara=6,b;

b=a?2;這種題目的計算是先要把a的十進制6化成二進制,再做位運算。

一定要記住,在沒有舍去數(shù)據(jù)的時候,<<左移一位表示乘以2:>>右移一位表示除以2。

10)018的數(shù)值是非法的,八進制是沒有8的,逢8進1。

11)%符號兩邊要求是整數(shù)。不是整數(shù)就錯了。

輸入輸出函數(shù)

1)printf函數(shù)的格式考查:

%d對應(yīng)整型;%c對應(yīng)字符;%f對應(yīng)單精度等等。寬度的,左對齊等修飾。

%ki對應(yīng)longint;%lf對應(yīng)double。

2)scanf函數(shù)的格式考察:

注意該函數(shù)的第二個部分是&a這樣的地址,不是a;

Scanf("%d%d%*d%d”,&a,&b,&c);跳過輸入的第三個數(shù)據(jù)。

3)putchar,getchar函數(shù)的考查:

chara=getchar()是沒有參數(shù)的,從鍵盤得到你輸入的一個字符給變量a。

putchar('y')把字符y輸出到屏幕中。

4)如何實現(xiàn)兩個變量x,y中數(shù)值的互換

不可以把x=y,y=x;要用中間變量t=x;x=y;y=t?

5)如何實現(xiàn)保留三位小數(shù),第四位四舍五入的程序

x=(int)(x*1000+0.5)/1000.0

這個有推廣的意義,注意x=(int)x這樣是把小數(shù)部分去掉。

?選擇結(jié)構(gòu)程序設(shè)計

特別要注意:c語言中是用非0表示邏輯真的,用0表示邏輯假的。

1)關(guān)系表達式:

表達式的數(shù)值只能為1(表示為真),或0(表示假)

當(dāng)關(guān)系的表達是為真的時候得到1。如9>8這個是真的,所以表達式的數(shù)值就是1;

2)邏輯表達式:

只能為1(表示為真),或0(表示假)

a)共有&&II:三種邏輯運算符號。

b):>&&>11優(yōu)先的級別。

c)注意短路現(xiàn)象。考試比較喜歡考到。

d)要表示x是比。大,比10小的方法。kxvIO是不可以的(一定記住)。是先計算

0<x得到的結(jié)果為1或則0;再用0,或1與10比較得到的總是真(為1)。所以一定要用

(Ckx)&&(x<10)表示比0大比10小。

3)if語句

if~else配對原則:else總是與最接近的if且沒有else與之配對的if配對。

4)條件表達式:

表達式1?表達式2:表達式3

注意是當(dāng)非0時候是表達式2的數(shù)值,當(dāng)為0是就是表達式3的數(shù)值。

考試口訣:真前假后。

5)switch語句:

a)一定要注意有break和沒有break的差別,沒有break時候,只要有一個case匹配了,

剩下的都要執(zhí)行,有break則是直接跳出了swich語句。

b)switch只可以和break一起用,不可以和continue用。

?循環(huán)結(jié)構(gòu)

1)三種循環(huán)結(jié)構(gòu):

a)for();while();do-while。三種。

b)for循環(huán)當(dāng)中必須是兩個分號,千萬不要忘記。

c)寫程序的時候一定要注意,循環(huán)一定要有結(jié)束的條件,否則成了死循環(huán)。

d)do-while()循環(huán)的最后一個while。;的分號-定不能夠丟。(當(dāng)心上機改錯)

2)break和continue的差別

記憶方法:

break:是打破的意思,(破了整個循環(huán))所以看見break就退出整個一層循環(huán)。

continue:是繼續(xù)的意思,(繼續(xù)循環(huán)運算),但是要結(jié)束本次循環(huán),就是循環(huán)體

內(nèi)剩下的語句不再執(zhí)行,跳到循環(huán)開始,然后判斷循環(huán)條件,進行新一輪的循環(huán)。

3)嵌套循環(huán)

就是有循環(huán)里面還有循環(huán),這種比較復(fù)雜,要一層一層一步一步耐心的計算,一般記住

兩層是處理二維數(shù)組的。

4)while((c=getchar())!='\n')和while(c=getchar()!='\n')的差別

先看a=3!=2和(a=3)!=2的區(qū)別:

(!=號的級別高于=號所以第一個先計算3!=2)第一個a的數(shù)值是得到的1;第二個a

的數(shù)值是3。

考試注意點:括號在這里的重要性。

?函數(shù)

函數(shù):是具有一定功能的一個程序塊;

1)函數(shù)的參數(shù),返回值:

main()

(

inta=5,b=6,c;

c=add(a,b);

printf("%d”,c);

)

調(diào)用函數(shù)

a,b是實參

整個函數(shù)得到一個數(shù)值就是Add函數(shù)的返回數(shù)值。

intadd(intx,inty)

(

intz;

z=x+y;

returnz;

)

被調(diào)用函數(shù)x,y是形式參數(shù)

函數(shù)返回數(shù)值是整型

z就是這個add函數(shù)計算后得到的結(jié)果,就是函數(shù)返回給主程序的返回數(shù)值。

程序是在從上往下順序執(zhí)行,當(dāng)碰到了函數(shù)add后,把a,b的數(shù)值穿給調(diào)用函數(shù),程序暫

時中斷等待返回數(shù)值。當(dāng)?shù)玫搅朔祷財?shù)值后,再順序的往下執(zhí)行

2)一定要注意參數(shù)之間的傳遞

實參和形參之間傳數(shù)值,和傳地址的差別。(考試的重點)

傳數(shù)值的話,形參的變化不會改變實參的變化。

傳地址的話,形參的變化就會有可能改變實參的變化。

3)函數(shù)聲明的考查:

一定要有:函數(shù)名,函數(shù)的返回類型,函數(shù)的參數(shù)類型。

不一-定要有:形參的名稱。

?指針

指針變量的本質(zhì)是用來放地址,而一般的變量是放數(shù)值的。

int*p

*p++和(*p)++的之間的差別:改錯題目中很重要

*P++是地址會變化。

(*p)++是數(shù)值會要變化。

?數(shù)組

1)一維數(shù)組的重要概念:

對a[10]這個數(shù)組的討論。

1、a表示數(shù)組名,是第一個元素的地址,也就是元素a⑼的地址。

2、a是地址常量,所以只要出現(xiàn)a++,或者是a=a+2賦值的都是錯誤的。

3、a是一維數(shù)組名,所以它是列指針,也就是說a+1是跳一列。

對a網(wǎng)網(wǎng)的討論。

a[0]>a[l]>a[2]也都是地址常量,不可以對它進行賦值操作,同時它們都是列指針,a[O]+l,

a[l]+l,a⑵+1都是跳一列。

注意a和a[0]、a[l]>a[2]是不同的,它們的基類型是不同的。前者是一行元素,后三

者是一列元素。

二維數(shù)組做題目的技巧:

如果有a[3][3]={1,2,3,4,5,6,7,8,9}這樣的題目。

步驟一:把他們寫成:第一列第二列第三列

a[0]123一>第一行

a[11456一〉第二行

a[2]789一〉第三行

步驟二:這樣作題目間很簡單:

*(a[O]+l)我們就知道是第一行的第一個元素往后面跳一列,那么這里就是元素,所以

是1。

*(a川+2)我們就知道是第二行的第一個元素往后面跳二列。那么這里就是a[l]⑵元素,所以

是6。

一定記?。褐灰嵌S數(shù)組的題目,一定是寫成如上的格式,再去做題目,這樣會比較簡單。

數(shù)組的初始化,一維和二維的,-維可以不寫,二維第二個一定要寫

inta[]={1,2}合法。inta[][4]={2,3,4}合法。但inta[4][]={2,3,4}非法。

二維數(shù)組中的行指針

inta[l][2];

其中a現(xiàn)在就是一個行指針,a+1跳一行數(shù)組元素。搭配(*)p⑵指針

a[0],a[l]現(xiàn)在就是一個列指針。a[O|+l跳一個數(shù)組元素。搭配*p|2]指針數(shù)組使用

還有記住脫衣服法則:

a[2]變成*(a+2)a⑵[3]變成*(a+2)⑶再可以變成*(*(a+2)+3)

這個思想很重要!

數(shù)組名:表示第一個元素的地址。數(shù)組名不可以自加,是地址常量。

函數(shù)名:表示該函數(shù)的入口地址。

字符串常量名:表示第一個字符的地址。

二、考試樣卷

一、選擇題(每題1分,共40分)

1、下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是——

A、雙向鏈表B、循環(huán)鏈表C、二叉鏈表D、循環(huán)鏈表

2、在下列鏈表中,能夠從任意一個結(jié)點出發(fā)直接訪問到所有結(jié)點的是一

A、單鏈表B、循環(huán)鏈表C、雙向鏈表D、二叉鏈表

3、下列與棧與關(guān)聯(lián)的是——

A、數(shù)組的定義與使用B、操作系統(tǒng)的進程調(diào)度

C、函數(shù)的遞歸調(diào)用D、選擇結(jié)構(gòu)的執(zhí)行

4、下面對軟件特點的描述不正確的是——

A、軟件是一個邏輯實體,具有抽象性

B、軟件開發(fā)、運行對計算機系統(tǒng)具有依賴性

C、軟件開發(fā)涉及軟件知識產(chǎn)權(quán)、法律及心理等社會因素

D、軟件運行存在磨損和老化問題

5、下面屬于黑盒測試方法的是——

A、基本路徑測試B、等價類劃分C、判定覆蓋測試D、語句覆蓋測試

6、下面不屬于軟件設(shè)計階段任務(wù)的是——

A、軟件的功能確定B、軟件的總體結(jié)構(gòu)設(shè)計

C、軟件的數(shù)據(jù)設(shè)計D、軟件的過程設(shè)計

7、數(shù)據(jù)庫管理系統(tǒng)是——

A、操作系統(tǒng)的一部分B、系統(tǒng)軟件C、一種編譯系統(tǒng)D、一種通信軟件系統(tǒng)

8、在E-R圖中,表示實體的圖元是一一

A、矩形B、橢圓C、菱形D、圓

9、有兩個關(guān)系R和T如下:

加o

A。

aaIP2d

2P

4Pbp4^

2。3Pa3〃

d3〃2

。。d。2P

由關(guān)系R得到關(guān)系T的操作是

A、選擇B、交C、投影D、并

10、對圖書進行編目時,圖書有如下屬性:ISBN書號,書名,作者,出版社,出版日期。

能作為關(guān)鍵字的是一一

A、IBSN書號B、書名C、作者、出版社D、出版社、出版日期

11、構(gòu)成C程序的三種基本結(jié)構(gòu)是

A、順序結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)、遞歸結(jié)構(gòu)B、順序結(jié)構(gòu)、嵌套結(jié)構(gòu)、遞歸結(jié)構(gòu)

C、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)D、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、嵌套結(jié)構(gòu)

12、C語言編譯程序的功能是——

A、執(zhí)行一個C語言編寫的源程序B、把C源程序翻譯成ASCII代碼

C、把C源程序翻譯成機器代碼D、把C源程序與系統(tǒng)提供的庫函數(shù)組合成一個二進制

執(zhí)行代碼

13、下列形式中不合法的常量是一一

A、2.E8B、-.28C、-028D、2e-8

14、以下不是C語言字符型或字符串常量的是——

A、"it's"B、"0"C、'a=0'D、''010'

15、C語言程序中,若函數(shù)無返回值,則應(yīng)該對函數(shù)說明的類型是——

A、intB、doubleC、charD、void

16、若變量已經(jīng)正確定義并賦值,則錯誤的賦值語句是——

A、a+=a+1B、a=sizeof(double);C、a=dllcD、a+l=a

17、若有定義:inta=l,b=2,c=3;則執(zhí)行表達式(a=b+c)ll(++b)后,a,b,c的值依次為——

A、1,2,3B、5,3,2C、5,2,3D、5,3,3

18、有以下程序

#include“stdio.h"

main()

(

intk=10;

printf("%4d,%o,%x\n'',k,k,k);

)

程序的運行結(jié)果是一一(口代表一個空格)

A、10,12,aB、□□IO,012,aC、010,12,aD、口口10,12,a

19、設(shè)有:chars[5],c;則調(diào)用函數(shù)scanf能正確給s和c讀入數(shù)據(jù)的是一

A、scanf("%s%c”,s,c);B>scanf("%d%c”,&s,&c);

C、scanf("%d%c”,s,&c);D、scanf("%s%d”,s,&c);

x

20、設(shè)x,y,z均為實型變量,代數(shù)式」一在C語言中的正確寫法是——

yxz

A、x/y*zB、x%y%zC、x/y/zD、x*z/y

21、有以下程序

#include"stdio.h"

main()

(

inti,j,k,a=5,b=6;

i=(a==b)?4-+a:—b;

j=a++;k=b;

printf(u%d,%d,%d\nM,i,j,k);

)

程序的運行結(jié)果是一一

A、7,6,5B、5,5,5C^7,5,5D>5,6,5

22、設(shè)變量x為longint型并已經(jīng)正確賦值,以下表達式中能將x的百位上的數(shù)字提取出來

的是——

A、x/10%100B、x%10/10C、x%100/10D、x/100%10

23、有以下程序

#include"stdio.h"

main()

(

inti,j,x=0;

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

(

x++;

fdr(j=O;j<=3;j++)

{if(j%2==0)continue;x++;}

x++;

)

printf("x=%d\n”,x);

)

程序的運行結(jié)果是——

A、x=4B、x=6C、x=8D、x=12

24、有以下程序

#include"stdio.h"

main()

(

intsum=0,x=5;

do{sum+=x;}while(!—x);

printf(n%d\n",sum);

)

程序的運行結(jié)果是一一

A、0B、5C、14D、15

25、有以下程序

#includenstdio.h"

main()

(

charch=Z;

ch=(ch-'A,+l)%26+'A';

putchar(ch);

)

程序的運行結(jié)果是一

A、ZB、YC、BD、A

26、以下函數(shù)的功能是:計算a的n次方作為函數(shù)值返回

doublefun(doublea,int)

(

inti;

doubles=1.0;

fbr(i=l;i<=n;i++)

returns;

為實現(xiàn)上述功能,函數(shù)中下劃線處應(yīng)填入的是——

A、s*iB、s*aC、s+i*iD、s+a*a

27、在C語言程序中,下列說法正確的是——

A、函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套

B、函數(shù)的定義不可以嵌套,但是函數(shù)的調(diào)用可以嵌套

C、函數(shù)的定義和調(diào)用均不可以嵌套

D、函數(shù)的定義和調(diào)用均可以嵌套

28、若主函數(shù)中定義語句:inta[10],b[10],c;在主函數(shù)前定義的fun函數(shù)首部為:voidfun(intx[]),

則以下選項中錯誤的調(diào)用語句是一一

A、fun(b);B、fun(&c);C、fun(&a[3]);D、fun(b[l]);

29、有以下程序

#include"stdio.h"

main()

(

intk,n=0;

charc,str[]=nteachn;

for(k=0;str[k];k+4-)

(

c=str[k];

switch(k)

(

caseLease3:case5:putchar(c);printf(n%d",4-4-n);break;

default:putchar('N');

)

)

)

程序運行的結(jié)果是——

A、NeINNB、ela2e3C、NelNc2ND、NalNNNN

30、以下敘述中錯誤的是——

A、同-個數(shù)組中所有元素的類型相同

B、不可以跳過前面的數(shù)組元素,給后面的元素賦初值

C、定義語句:inta[10]={0};給a數(shù)組中所有的元素賦初值0

D、若有定義語句:inta[4]={1,2,3,4,5};編譯時將忽略多余的初值

31、執(zhí)行以下程序段后,s的值為:

inta[]={l,2,3,4,5,6,7,8,9},s=0,k;

for(k=0;k<8;k+=2)

s+=*(a+k);

printf("%d",s);

A、13B、16C、17D、45

32、有以下程序

#include"stdio.h"

#defineN4

voidfun(inta|||N],intb[|)

inti;

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

b[i]=a[i][N-l-i];

)

main()

{intx[N][N]={1,2,3,4,5,6,7,8,9,W,11,12,13,14,15,16),y[N],i;

fun(x,y);

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

printf(H%d;;y[i]);

printf(n\nn);

)

程序的運行結(jié)果是一一

A、1,2,3,4,B、3,6,9,12,

C、4,7,10,13,D、1,5,9,13,

33、有以下程序

#include"stdio.h"

#include"string.h"

main()

(

charstr[]={HHello,Beijing"};

printf("%d,%d\n”,strlen(str),sizeof(str));

)

程序的運行結(jié)果是一一

A、13,13B、13,14C、13,15D、14,15

34、有以下程序

#include"stdio.h"

voidfun(char(*p)[6])

{

inti;

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

printf(M%cu,p[i][i]);

printf("\n");

}

main()

(

chars[6][6]={,,ABCDE',,,,abcden,,,12345',,,,FGHIJ,,,,,fghij,,,,,5432r,);

fiin(s);

)

程序的運行結(jié)果是一一

A、Aa1FB、Ab3IC、ABCDD、fghij

35、有以下程序

#include"stdio.h"

intfun(intn)

(

if(n)returnfun(n-l)+n;

elsereturn0;

)

main()

(

printf("%d\n”,fun(3));

)

程序的運行結(jié)果是一一

A、4B、5C、6D、7

36、有以下程序

#include"stdio.h"

#defineM5

#definef(x,y)x*y+M

main()

(

intk;

k=f(2,3)*f(2,3);

printf("%d\n”,k);

}

程序的運行結(jié)果是一一

A、22B、41C、100D、121

37、有以下定義:

structdata

{inti;charc;doubled;}x;

以下敘述錯誤的是一一

A、x的內(nèi)存地址與x.i的內(nèi)存地址相同

B、structdata是一個類型名

C、初始化時,可以勸x的所有成員同時賦初值

D、成員i、c和d是占用的同一個存儲空間

38、有以下程序

#include"stdio.h"

#include"string.h"

typedefstruct{charname[9];charsex;floatscore[2];}STU;

voidf(STU*a)

{

strcpy(a->name,"Zhao");

a->sex='m';

a->score[1]=90.0;

}

main()

STUc={“Qian”,£95.0,92.0},*d=&c;

f(d);

printf(H%s,%c,%2.0f,%2.0f\n*',d->name,c.sex,c.score[0],c.score[l]);

)

程序的運行結(jié)果是一

A、Qian,f,95,92B、Zhao,f,95,90

C、Zhao,m,95,90D、Zhao,f,95,92

39、若有以下定義

structtt{charname[10];charsex;}aa={“aaaa",'F'},*p=&aa;

則錯誤的語句是一

A、scanf("t%c,,,aa.sex);B、aa.sex=getchar();

C^printf(u%c\n,,,(*p).sex)D^printf(tt%c\n,,,p->sex

40^若有說明:typedefstruct{inta;charc;}W;則以下敘述中正確的是----

A、編譯后系統(tǒng)為W分配5個字節(jié)

B、編譯后系統(tǒng)為W分配6個字節(jié)

C、編譯后系統(tǒng)為W分配8個字節(jié)

D、編譯后系統(tǒng)不為W分配存儲空間

二、程序填空題

1、程序通過定義學(xué)生結(jié)構(gòu)體變量,存儲了學(xué)生的學(xué)號、姓名和3門課的成績。所有學(xué)生數(shù)

據(jù)均以二進制方式輸出到文件中。函數(shù)fun的功能是重寫形參filename所指文件中最后一

個學(xué)生的數(shù)據(jù),即用新的學(xué)生數(shù)據(jù)覆蓋該學(xué)生原來的數(shù)據(jù)。其它學(xué)生的數(shù)據(jù)不變。

請在程序的卜.劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。

注意:源程序存放在考生文件夾下的Blank.c中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

源程序如下:

#include<stdio.h>

#defineN5

typedefstructstudent

longsno;

charname[10];

floatscore[3];

}STU;

voidfun(char*filename,STUn)

FILE*fp;

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

fp=fopen(------1------,"rb+");

/*,**,**不^^und*不*****不**不****/

fseek(fp,-lL*sizeof(STU),------------2——);

/********found*******字*******/

fwrite(------3------,sizeof(STU),l,fp);

fclose(fp);

main()

STU

t[N]={{10001,“MaChao”,91,92,77},{10002,“CaoKai”,75,60,88},{10003,“LiSi”,85,70,78},{10004

,TangFang,1,90,82,87},{10005,nZhangSan,,,95,80,88}};

STUn={10006,"ZhaoSi\55,70,68},ss[N];

inti,j;

FILE*fp;

fp=fopen(nstudent.datnwbH);

fwrite(t,sizeof(STU),N,fp);

fclose(fp);

fp=fopen("student.dat',,',rbn);

fread(ss,sizeof(STU),N,fp);

fclose(fp);

printf(M\nTheoriginaldata:\n\nH);

for(j=0;j<N;j++)

{printf(n\nNo:%ldName:%-8sScore:M,ss[j].sno,ss[j].name);

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

printf(M%6.2f',ss[j].score[i]);

printf("\n");

)

funC'student.dat'^n);

printf("\nThedataaftermodifing:\n\nM);

fp=fopen(,'student.dat",,,rbH);

fread(ss,sizeof(STU),N,fp);

fclose(fp);

for(j=0;j<N;j++)

{printf(u\nNo:%ldName:%-8sScore:M,ss[j].sno,ss[j].name);

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

printf("%6.2f',ss[j].score[i]);

printf("\n");

)

)

三、程序修改題(見教材P263)

四、程序設(shè)計題(見教材P264)

2013年4月試題庫

第一套題

一、選擇題

道在【筍題菜單上選擇【選擇題】命令,啟動選擇題測試程序,按照題目

上的內(nèi)容進行答J題。

使

If*思1

t,

退

K一

s辭

1*題

分不

一.

(起拉題(a)~(?)每小■1分,共g分)

I下列A)、B).C),D)麗選項中,只有一個選項是正確的.

1)算法的有窮性是指

OA)算法程序所處理的數(shù)據(jù)量是有限的

OB)算法程序的長度是有限的

OC)算法只能被有限的用戶使用

OD)算法程序的運行附間是有限的

2)下列數(shù)據(jù)錯構(gòu)中,能夠按照'先進后出"原則存取數(shù)據(jù)的是

OA)隊列

OB)棧

Oc)二叉樹

OD)循環(huán)隊列

3)下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是

OA)逐步求精

OB)自頂向下

OC)可封裝

OD)模塊化

4)有三個關(guān)系R、S和T如下?

RST

BCDBCD

a0klM二a0kl

b1nlMM

匚NM

EJEJEJ

由關(guān)系R和S通過運等得到關(guān)系T.則所使用的運篁為

OA

OB

笛卡爾積

Oc

自然連接

OD

5)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是

OA)帶跳隊列

OB)循環(huán)隊列

Oc)帶鏈棧

OD)二叉樹

6)軟件設(shè)計中劃分模塊的一個準則是

OA)高內(nèi)聚低耦合

OB)高內(nèi)聚高耦合

Oc)低內(nèi)聚高耦合

OD)低內(nèi)聚低耦合

7)下列敘述中正確的是

OA)棧是'、先進先出"的統(tǒng)性表

OB)隊列是“先進后出”的線性表

OC)有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈式存儲結(jié)構(gòu)

OD)循環(huán)隊列是非線性結(jié)構(gòu)

8)數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是

OA)數(shù)據(jù)庫管理員培訓(xùn)

OB)數(shù)據(jù)庫維護

OC)數(shù)據(jù)庫系統(tǒng)設(shè)計

OD)數(shù)據(jù)庫設(shè)計

9)在E-R圖中,用來表示實怵聯(lián)系的圖形是

OA)橢圓形

OB)菱形

OC)三角形

OD)矩形

10)軟件詳細設(shè)計產(chǎn)生的圖如下:

OA)H-S圖

OB)程序流程圖

OC)E-R圖

OD)PAD圖

11)設(shè)有定義:

intx=2;

以下表達式中,值不為6的是

O

Ox*=x+l

O2*x,x+=2

Ox++,2*x

x?=(l+x)

12)以下選項中.能用作數(shù)據(jù)常量的是

OA)1151

OB)0115

OC)1.5el.5

OD)0118

13)按照C語言規(guī)定的用戶標識符命名規(guī)則,不能出現(xiàn)在標識符中的是

oA

大寫字母

oB

連接符

oc

下劃線

oD

數(shù)字字符

14)有以下程序

#Include<stdio.h>

main()

{intx,y,z;

x=y=l;

z=x++ry++/++y;

prxntf(Sd\n”,x,y,z);

)

程序運行后的酷出結(jié)果是

o

A3/1

o3

B3/

o

c2z1

o2

D3/

下列敘述中錯誤的是

o

一個C函數(shù)可以單獨作為一個C程序文件存在

o

o一個C語言程序只能實現(xiàn)一種算法

oC程序可以由一個或多個函數(shù)組成

-C程序可以由多個程序文件組成

l

o設(shè)變量已正確定義并戚值,以下正確的表達式是

ox=y+z+5,++y

ox=25%5.0

ox=y*5=x+z

int(15.8

17)有以下程序

#Include<stdio.h>

main()

XIB

(mtx=35B;z

rb))

B=((x)&£(■?

pr工ntf("§d\n",B

}

程序運行后的輸出結(jié)果是

o1

oAB)35

)

o0

oC)66

I))

18)有以下程序

^include<stdio.h>

main()

(doublex=2.0,y;

if(x<0.0)y=0.0;

elseIf((x<5.0)&&(!x))y=l.0/(x+2.0

elseif(x<10.0)y=l.0/x;

elsey=10.0;

prlntf「%f\n",y);

o程序i立行后的輸出結(jié)果是

oABJJ0.250000

o0.500000

oCJ0.000000

D)1.000000

19)有以下程序

#xncludeOtdio.h>

ncLin()

{inta=3;

do

,r

{prlntf(%dza-=2);

while(!(--a));

pxrintf;

)

程序運行后的輸出結(jié)果是

o1/2

oA:1o

oB3/

oc/

D1/ox

20)有以下程序

#Include<stdio.h>

main()

{int1,sum;

for(i=l;x<6;1+,)sure+=i

prlntf(rr^dXn**,sum);

oA程序運行后的驗出結(jié)果是

oB15

oc16

o0

D隨機值

oA與數(shù)學(xué)表達式xZyNz時應(yīng)的C語言表達式是

oB(x>=y)II(y>=x)

oc|x>=y)1(y>=s)

oD(x>=y>=x)

(x>=y)&&(y>=z)

2o2)若變屋已正確定義,以下選項中非法的表達式是

oA)a1=4II*b1

oB)(x=y=20,x*3)

oC)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論