國家二級C語言機(jī)試(選擇題)模擬試卷20_第1頁
國家二級C語言機(jī)試(選擇題)模擬試卷20_第2頁
國家二級C語言機(jī)試(選擇題)模擬試卷20_第3頁
國家二級C語言機(jī)試(選擇題)模擬試卷20_第4頁
國家二級C語言機(jī)試(選擇題)模擬試卷20_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

國家二級C語言機(jī)試(選擇題)模擬試

卷第1套

一、選擇題(本題共25題,每題1.0分,共25分。)

1、下列關(guān)于棧的敘述中正確的是()。

A、棧底元素定足最后入棧的元素

B、棧頂元素一定是最先入棧的元素

C、棧操作遵循先進(jìn)后出的原則

D、以上說法均錯誤

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:棧頂元素總是最后被插入的元素,從而也是最先被刪除的元素;棧底

元素總是最先被插入的元素,從而也是最后才能被刪除的元素。棧的修改是按后進(jìn)

先出的原則進(jìn)行的,因此,棧稱為先進(jìn)后出表,或后進(jìn)先出表,所以選擇C選

項。

2、某系統(tǒng)結(jié)構(gòu)圖如下圖所示(圖中佗5)

|某系統(tǒng)|

I功能111孕艇I???能n

I功能2.1]⑼功能2.3|/\

畫直口國題目該系統(tǒng)結(jié)構(gòu)圖的寬度是()。

A^n

B、3

C、2

D、1

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:寬度指整體控制跨度(橫向最大模塊數(shù))的表示。本題中第1層有1個

模塊,第二層有n個模塊(注意位5),第3層有5個模塊,故寬度為n。

R

ABCD

aa24

be12

cc114

3、關(guān)系R經(jīng)過運(yùn)算QA=BAS4AD>3(R)的結(jié)果為()。ee61

A、(a,a,2,4)

(e,e,6,1)

C、(c,c,11,4)

D、(a,a,2,4)和(e,e,6,1)

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:選擇運(yùn)算是在二維表中選出符合條件的行,形成新的關(guān)系的過程。設(shè)

關(guān)系的邏輯條件為F,則關(guān)系R滿足F的選擇運(yùn)算可寫成OF(R)。本題中條件為

“A=BAC>4AD>3”(A為并且的意思),只有(c,c,11,4)滿足。

4、若有定義intx,y;并已正確給變量賦值,則以下選項中與表達(dá)式(x-y)?(x++):

(y++)中的條件表達(dá)太(x—y)等價的是()。

A、(x一y<0IIx-y>0)

B、(x—y<0)

C、(x—y>0)

D、(x一y==0)

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:條件表達(dá)式“x=表達(dá)式1?表達(dá)式2:表達(dá)式3”的含義是:先求解表達(dá)

式1,若為非0(真),則求解表達(dá)式2,將表達(dá)式2的值賦給x:若表達(dá)式1的值為

0(假),則求解表達(dá)式3,將表達(dá)式3的值賦給X。本題中與表達(dá)式1:(x—y)等價

的是(x—y<0IIx—y>0)o

5、下面對對象概念描述正確的是

A、對象間的通信靠消息傳遞

B、對象是名字和方法的封裝體

C、任何對象必須有繼承性

D、3寸象的多態(tài)性是指一個對象有多個操作

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:對象是面向?qū)ο蠓椒ㄖ凶罨镜母拍?,操作描述了對象?zhí)行的功能,

通過消息傳遞,還可以為其他對象使用。操作過程是被封裝在對象中,用戶看不

到,稱之為對象的封裝性。對象的多態(tài)性是指同一個操作可以是小同對象的行為。

不是所有的對象都必須有繼承性。

6、表達(dá)式3.6—5/2+1.2+5%2的值是()。

A、1.8

B、2.8

C、3.8

D、3.3

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:表達(dá)式的計算過程為:3.6—5/2+1.2+5%2=3.6—

2+1.2+1=3.8o此題要注意整數(shù)相除會丟掉小數(shù)位,5/2的結(jié)果是2,而不

2.5,因為除法運(yùn)算符兩邊的數(shù)值類型均為整型,故運(yùn)算結(jié)果的數(shù)值類型也被認(rèn)定

為整型。

7、有以下程序:#includeinta=l,b=2;voidfunl(inta,intb){prinff("%d%d",

a,b);)voidtun2(){a=3.b=4;)voidmain(){tunl(5,6);tun2();pnnff(fc%%

d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是()。

A、1256

B、5634

C、5612

D、3456

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:funl是輸出局部變量的值,fun2是把全局變量的值改成3,4,所以

輸出結(jié)果是5634。

8、C源程序中不能表示的數(shù)制是

A、八進(jìn)制

B、十進(jìn)制

C、二進(jìn)制

D、十六進(jìn)制

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:在C語言的源程序中,數(shù)值可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制來表

示。不用二進(jìn)制來表示。

9、下列關(guān)于C語言文件的敘述中正確的是()。

A、文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件

B、文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

C、文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

D、文件由字符序列組成,其類型只能是文本文件

標(biāo)準(zhǔn)答案:c

知識點(diǎn)解析?:本題考查文件的概念。文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或

文本文件,所以答案為C選項。

10、以下關(guān)于宏的敘述中正確的是

A、宏定義必須位于源程序中所有語句之前

B、宏名必須用大寫字母表示

C、宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時間

D、宏替換沒有數(shù)據(jù)類型限制

標(biāo)準(zhǔn)答案:D

知識點(diǎn)解析:本題考查宏替換的規(guī)則。宏替換分為簡單的字符替換和帶參數(shù)的宏替

換兩類。使用宏時應(yīng)注意以下幾點(diǎn):①宏定義儀儀是符號替換,不是賦值語句,

因此不做語法檢查;②為了區(qū)別程序中其他的標(biāo)識符,宏名的定義通常用大寫字

母,但不是必須用大寫:③雙引號中出現(xiàn)的宏名不替換;④使用宏定義可以嵌

套,即后定義的宏中可以使用先定義的宏。

T

11有三個關(guān)系R,S和T如下圖所不:則

由關(guān)系R和S得到關(guān)系T的運(yùn)算是

A、自然連接

B、交

C、除

D、并

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:從關(guān)系R、S和T的結(jié)構(gòu)可以得出關(guān)系T是由關(guān)系R,S經(jīng)過除運(yùn)算

后得到的。

12、若有定義語句charc='\101';則變量c在內(nèi)存中占

A、2個字節(jié)

B、3個字節(jié)

C、1個字節(jié)

D、4個字節(jié)

標(biāo)準(zhǔn)答案:c

知識點(diǎn)解析:每個字符變量被分配一個字節(jié)的內(nèi)存空間,因此只能存放一個字符。

字符值是以ASCH碼的形式存放在變量的內(nèi)存單元之中的。

13、有以下程序#include#includevoidfun(int*pl,int*p2,int*s){s=(int*)calloc(l,

sizcof(int));*s=*pl+*p2;frce(s);}main(){inta[2]={1?2),b[2]={40,50},

*q=a;fun(a,b,q);print「("%d\n",*q);}程序運(yùn)行后的輸出結(jié)果是

A、41

B、42

C、0

D、1

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:主函數(shù)定義數(shù)組a,b,q指向數(shù)組a,調(diào)用fun函數(shù)以后形參接收實

參的數(shù)據(jù),pl和p2指向數(shù)組a和b,同時s指向數(shù)組a,在fun函數(shù)中改變了s的

指向和賦值,但是在程序調(diào)用結(jié)束之間形參空間全部釋放,因此對于s的指向改動

不會對主函數(shù)參數(shù)構(gòu)成影響。因此主函數(shù)中數(shù)去*q的值仍然為1。

14^已定義以卜,函數(shù)inifun(int*p){return*p;}fun函數(shù)返回值是

A、不確定的值

B、一個整數(shù)

C、形參p中存放的值

D、形參p的地址值

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:由函數(shù)imfun(inl*p){reuim*p;)的定義可知,返回值為整型指針變量

p所指向的數(shù)據(jù)。

15、汗語句的基本形式是:計(表達(dá)式)語句,以下關(guān)于,、表達(dá)式”值的敘述中正確的是

A、必須是整數(shù)值

B、必須是正數(shù)

C、可以是任意合法的數(shù)值

D、if(a>b){c=a;a=b;b=c;)

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:在if語句中,表達(dá)式可以是任意合法的數(shù)值。當(dāng)其值為非零時,執(zhí)

行if語句,為0時執(zhí)行else語句。

16,有以下程序#includestructtt{intX:structtt*y;}*p;structtta[4]={20,a-1,

15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=l;i<=2;i++){printf("%

d,H,p->x);p=p->y;}}程序的運(yùn)行結(jié)果是

A、20,15,

B、30,17

C、15,30,

D、20,30,

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:程序定義了結(jié)構(gòu)體類型儲其成員包括一個整型數(shù)據(jù)x和指向其自身

結(jié)構(gòu)的指針變量力程序在定義結(jié)構(gòu)體數(shù)組a的同時對其進(jìn)行了初始化.其元素

a⑼的成員y被賦值為元素a[l]的地址,a[l].y被賦值為a⑵的地址,a⑵.y被賦

予a[3]的地址,a[3].y被賦予a[0]的地址。這就形成了一個單向的循環(huán)鏈表,每

個元素的指針成員都指向下一個元素的地址。在主函數(shù)中,通過一個for循環(huán)語

句,輸出該鏈表前2個節(jié)點(diǎn)數(shù)值成員的值,即a[0].x和a[l].X。

17^有以下程序#include<stdio.h>func(intn)voidmain(){staticintnum=I;

{func(3);func(4):printf("\n"):)num=num+n;printf("%d'\num);}程序運(yùn)行

后的輸出是

A、45

B、35

C、48

D、34

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:在函數(shù)func(inm)中定義了局部靜態(tài)變量num,,其初始值等于1,

所以在主函數(shù)中執(zhí)行func(3),輸出4,此時靜態(tài)變量num的值等于4,當(dāng)退出函數(shù)

func⑶時,其值不會丟夫,所以當(dāng)在執(zhí)行func(4)時.輸出8。

18、有以下程序#includeintfun(){staticintx=l;x*=2;returnx;}main(){int

i,s=l;for(i=l;i<=2;i++)s=fun();printfC%d\nn,s);}程序運(yùn)行后的

輸出結(jié)果是

A、4

B、1

C、0

D、8

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:在子函數(shù)fun()中定義局部靜態(tài)變量x,其初值等于1,然后再把其值

擴(kuò)大1倍后返回。在主函數(shù)中執(zhí)行for循環(huán)語句2次,調(diào)用函數(shù)fun()兩次,所以變

量s的值等于4。這里要強(qiáng)調(diào)的一點(diǎn)是當(dāng)函數(shù)fun()執(zhí)行完畢后,局部靜態(tài)變量x的

值不會丟失,仍然有效。

19、有以下程序#include〈stdio.h>voidfun(inta:intb){intt;t=a;a=b;

b=t;)main(){intc[10]={l,2,3,4,5,6,7,g,9,0),i;for(i=0;i<IO;

i+=2)fun(c[i]?c|i+l|);for(i=0;i<10;i++)printf("%d,",c|i|);printf("\n");)

程序的運(yùn)行結(jié)果是

A、2,1,4,3,6,5,8,7,0,9,

B、0,9,8,7,6,5,4,3,2,1,

C、1,2,3,4,5,6,7,8,9,0,

D、0,1,2,3,4,5,6,7,8,9,

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:c語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳

遞.只由實參傳給形參,而不能由形參傳I川來給實參C在調(diào)用函數(shù)時,給形參分配

存儲單元,并將實參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實參單

元仍保留并維持原值。由此可知,在本題中,函數(shù)fun(inta,inlb)的功能是實現(xiàn)形

參整形變量a和b值的互換。當(dāng)在主函數(shù)中調(diào)用fun(c[i],c[i+l])時,把實參變量

疝和c[i+l]的值賦給形參變量a和b,執(zhí)行完函數(shù)fun(c[i],c[i+l])時,形參變量a

和b的值發(fā)生了互換,實參變量c[i]和c[i+l]的值并沒有發(fā)生互換,所以輸出的值

為1,2,3,4,5,6,7,8,9,0。

20、卜面選項中的程序段,沒有編譯錯誤的是

A、char*sp,S[10];sp="Hello";

B、char*sp,s[10];s="Hel]oH;

C、charstrl110]="computer",str2|IO|;str2=str1;

D、charmark[];mark="PROGRAM7";

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:選項B中數(shù)組名為常量,不能賦值,選項C字符數(shù)組之間無法完成

賦值操作,選項D和選項B相同,無法對數(shù)組進(jìn)行賦值。

21、以下函數(shù)不能用于向文件中寫入數(shù)據(jù)的是

A、fwrite

B、foutc

C、ftell

D、fprintf

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:本題考查文件操作。ttell函數(shù)返回文件指針的當(dāng)前位置,其他的都寫

文件函數(shù)。

22、以下敘述中正確的是

A、如果函數(shù)帶有參數(shù),就不能調(diào)用自己

B、所有函數(shù)均不能接受函數(shù)名作為實參傳入

C、函數(shù)體中的語句不能出現(xiàn)對自己的調(diào)用

D、函數(shù)名代表該函數(shù)的入口地址

標(biāo)準(zhǔn)答案:D

知識點(diǎn)解析:木題考查函數(shù)調(diào)用相關(guān)知識,B選項中函數(shù)可以接受函數(shù)名作為實參

傳入,引用函數(shù)名也是指針,C、A選項是錯誤的,因為遞歸函數(shù)就能調(diào)用自己。

23、有以下程序(strcpy為字符串復(fù)制函數(shù),sircat為字符串連接函數(shù))include

#includemain(){chara[10]="abc",b[10]="OI2'\c[IO]=Mxyzn;strcpy(a+1,b+2);

puts(strcat(a,c+l));}程序運(yùn)行后的輸出結(jié)果是

A、a!2xyz

B、bc2yz

C>a2yz

D、12yz

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:本題考查字符串處理函數(shù)strcpy和strcat,執(zhí)行完strcpy(a+1,b+2);

后,a變?yōu)閍2,執(zhí)行完strcal(a,c+l)后,a菱為a2yz,所以答案為C選項。

24、軟件生命周期是指

A、軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程

B、軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程

C、軟件的開發(fā)過程

D、軟件的運(yùn)行維護(hù)過程

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱

為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用

為止的整個時期都屬于軟件生命周期。

25有以下程序#includemain(){inta=2,b;b=a<<2;printf(n%d\n",b);}程序運(yùn)行后

的輸出結(jié)果是

A、2

B、4

C、6

D、8

標(biāo)準(zhǔn)答案:D

知識點(diǎn)解析:本題考查位運(yùn)算符,題目中將a向左移兩位,左移兩位表示乘以4,

所以答案為8,選項D正確。

家二級C語言機(jī)試(選擇題)模擬試

卷第2套

一、選擇題(本題共25題,每題1.0分,共25分。)

1、下列選項中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。

A、軟件測試

B、概要設(shè)計

C、軟件維護(hù)

D、詳細(xì)設(shè)計

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:軟件生命周期分為軟件定義期、軟件開發(fā)期和運(yùn)行維護(hù)期3個時期,

其中的軟件開發(fā)期包括概要設(shè)計、詳細(xì)設(shè)計、實現(xiàn)和測試4個階段。

2、有以下程序#inchidemain(){inta=0,b=0;/*給a賦值a=10;b=20:給b賦值

*/printf("a+b=%d\n'\a+b);/*輸出計算結(jié)果*/}程序運(yùn)行后的輸出結(jié)果是

A、a+b=30

a+b=10

C、出錯

D、a+b=O

標(biāo)準(zhǔn)答案:D

知識點(diǎn)解析:C語言規(guī)定,在字符“/*”和其后緊跟的第一個字符“*/”中間的部分

是注釋內(nèi)容,且注釋部分的內(nèi)容不參與程序的編譯和運(yùn)行,因此,本題中程序語句

<4a=10;b=20;”沒有執(zhí)行。

3、下列敘述中正確的是()。

A、數(shù)據(jù)庫的數(shù)據(jù)項之間無聯(lián)系

B、數(shù)據(jù)庫中任意兩個表之間一定不存在聯(lián)系

C、數(shù)據(jù)庫的數(shù)據(jù)項之間存在聯(lián)系

D、數(shù)據(jù)庫的數(shù)據(jù)項之間以及兩個表之間都不存在段系

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:數(shù)據(jù)庫的數(shù)據(jù)項之間以及表之間都存在聯(lián)系。

4、軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬

于應(yīng)用軟件的是()。

A、編譯程序

B、操作系統(tǒng)

C、教務(wù)管理系統(tǒng)

D、匯編程序

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:編譯軟件、操作系統(tǒng)、匯編程序都屬于系統(tǒng)軟件,只有C)教務(wù)管理

系統(tǒng)才是應(yīng)用軟件。

5、在軟件開發(fā)中,需求分析階段可以使用的工具是

A、N.S圖

B、DFD圖

C、PAD圖

D、程序流程圖

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:在軟件開發(fā)中,需求分析階段常使用的工具有數(shù)據(jù)流圖(DFD),數(shù)據(jù)

字典(DD)、判斷樹和判斷表。

6、以下選項中,值為1的表達(dá)式是()。

A、1-,0,

B、1八0'

C、T-0

D、,\0,-,0,

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:'\0',空值,其ASCH碼值為O,所以B選項的值為1。字符O的

ASCH碼值為48,所以A、C、D選項的值均不為1。

7、設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號,姓名,性別,年齡,身份證號),課

程C(課號,課名),選課SC(學(xué)號,課號,成績),則表SC的關(guān)鍵字(鍵或碼)為

()。

A、

學(xué)

B、

學(xué)

、課

學(xué)

C名

、姓成績

DC

知識點(diǎn)解析:學(xué)號是學(xué)生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的

關(guān)鍵字就應(yīng)該是與前兩個表能夠直接聯(lián)系且能唯一定義的學(xué)號和課號,所以選擇

Co

8、函數(shù)rewind(fp)的作用是()。

A、使fp指定的文件的位置指針重新定位到文件的開始位置

B、將fp指定的文件的位置指針指向文件中所要求的特定位置

C、使fp指定的文件的位置指針向文件的末尾

D、使fp指定的文件的位置指針自動移至下一個字符位置

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:位置指針重返文件頭指針rewind的調(diào)用形式為:rewind(fp):,

rewind(fp)的功能是:使fp指定的文件的位置指針重返定位到文件的開始位置°

9、有以下程序:#includemain(){intx=l,y=2,z=3;if(x>y)if(y

A、1

B、41

C、2

D、331

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:else總是與離它最近的if配對,所以第一個if語句的判斷條件不成

立,不再執(zhí)行第二個if語句和與第二個if語句配對的else語句,而是直接執(zhí)行打

印x++的操作,打印x的值1以后再加lo

10、以下關(guān)于return語句的敘述中正確的是

A、一個自定義函數(shù)中必須有一條return語句

B、一個自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句

C、定義成void類型的函數(shù)中可以有帶返回值的return語句

D、沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時不能返回到調(diào)用處

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:return語句主要用于返回函數(shù)的值。在一個自定義函數(shù)中,可以根據(jù)

不同的情況設(shè)置多條reiurn語句返回函數(shù)的值。

A^選擇

B、投影

C、交

D、并

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:由關(guān)系R和T所包含的元素可知,關(guān)系R經(jīng)過選擇操作就可以得到

關(guān)系T。

12、有以下程序:#include<stdio.h>main(){FJLE*fp;charstr[10];

fp=fopen("myfile.dat","w");fputs(nabcn?fp);felose(fp);

fp=fopen("myfile.dat","a+");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,

"%sn,str);puts(str);felose(fp);}程序的運(yùn)行結(jié)果是()。

A、abc

B、28c

C、ad9c28

D、因類型不一致而出錯

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:本題考查文件操作函數(shù):fprintf()函數(shù)。fprintf()函數(shù)向文件輸出,將

輸出的內(nèi)容輸出到硬盤上的文件,或是相當(dāng)于在文件的設(shè)備上執(zhí)行兩次fprintf

后,文件中有abc28,所以C選項正確。

13、有以下程序(字母A的ASCII代碼為65)includemain(){charcl=W,c2

=Y;printfiT%d,%d\n”,cl,c2);}程序運(yùn)行后的輸出結(jié)果是()°

A、65,89

B、A,Y

C、65,90

D、輸出格式不合法,輸出出錯信息

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:考查字符型數(shù)據(jù)。字符常量與其ASCH碼值一一對應(yīng),在計算的時

候,一般是字符數(shù)據(jù)對應(yīng)的ASCII碼參與運(yùn)算,輸出時會根據(jù)格式控制符輸出對

應(yīng)的字符或者ASCII碼、所以答案選Ac

14、有如下程序段:intx=12;doubley=3.141593;printf("%d%8.6f',x,y);其輸出結(jié)

果是()。

A、123.141593

B、123.141593

C、12,3.141593

D、123.1415930

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:考查printf函數(shù)的格式輸出。除了格式控制符外,其余均按照雙引號

內(nèi)原樣輸出。變量x、y輸出時中間沒有其他字符,所以選項C)錯誤;”%8.6「表

示控制輸出寬度為8(包括小數(shù)點(diǎn)),右對齊,小數(shù)點(diǎn)后保留位數(shù)為6,所以輸出

結(jié)果為選項A)。

15、有以卜程序#includemain(){inta=7;while(a-);printf("%d\n'\a);}程序運(yùn)

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

A、0

B、-1

C、1

D、7

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:a--的含義是先用后減1,所以當(dāng)a的值為0時,跳出循環(huán),但是仍要執(zhí)行

a—,a的值變?yōu)?1。

16、以下敘述中錯誤的是

A、函數(shù)可以返回地址值

B、改變函數(shù)形參的值,不會改變對應(yīng)實參的值

C、當(dāng)在程序的開頭包含頭文件sidio.h時,可以給指針變量賦NULL

D、可以給指針變量賦一個整數(shù)作為地址值

標(biāo)準(zhǔn)答案:D

知識點(diǎn)解析:指針變量的值只能是存儲單元地址,而不能是一個整數(shù),選項D的

描述是錯誤,為待選答案。函數(shù)可以返回內(nèi)存空間的地址,同時函數(shù)形參和實參分

別占用不同的內(nèi)存單兀,改變形參的值不會改變對應(yīng)實參的值,在頭文件sidio.h

中,NuLL被定義為void型的指針。

17、有以下程序main。{intij;for(i=l;i<4;i++){for(j=i;j<4:j++)printf("%

d*%d=%d”,i,j,i*j);printf("\n");)}

A、1*1=11*2=21*3=32*1=22*2=43*1=3

B、1*1=11*2=22*2=41*3=32*3=63*3:9

C、1*1=11*2=21*3=32*2=42*3=63*3=9

D、1*1=12*1=22*2=.43*1=33*2=63*3=9

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:外層for循環(huán)的自變量i從I開始,每次循環(huán)后增1,直到i等于3結(jié)

束。對于外層循環(huán)自變量i的每一個值,內(nèi)層循環(huán)的自變量j每次從i開始,每次

循環(huán)后增1,直到j(luò)等于3結(jié)束。所以在每次外循環(huán)開始后,內(nèi)層循環(huán)在一行先打

印i*戶兩個乘數(shù)的積,然后回車換行,下次循環(huán)從卜一行開始打印輸出結(jié)果。

18、若有以下程序lypedefstructstu{chamame[10],gender;in(score;)STU;

voidf(char*P){strcpy(P,"Qian''):}main(){STUa={,,Zhao,\,m',290},b;

b=a;f(b.name);b.gender=T;b.score=350;printf(''%s,%c,%d,

a.name,a.gender,a.score);printR''%s,%c,%d\n”,b.name,

b.gender,b.score);}則程序的輸出結(jié)果是

A、Zhao,m,290,Zhao,m,290

B、Qian,f,350,Qian,f350

C^Zhao,m,290,Qian,f,35O

D、Zhao,m,290,Zhao,C350

標(biāo)準(zhǔn)答案:c

知識點(diǎn)0析:主函數(shù)中結(jié)構(gòu)體變量定義同時賦初值。執(zhí)行b=a;語句后,b的數(shù)據(jù)

和a的數(shù)據(jù)相同,調(diào)用函數(shù)f(b-name),形參指針p接收實參b.name的地址,此

時p和b.name指向同一個存儲空間,流程轉(zhuǎn)到f執(zhí)行,p指向的存儲空間存放字

符串"oianH流程結(jié)束返回主函數(shù)。主函數(shù)中變量b的其他成員存放數(shù)據(jù)。因此a

的數(shù)據(jù){"zhao",'m,,290),b的數(shù)據(jù)為{"QJanLf,350}。注意本題結(jié)構(gòu)體

STU類型變量a和b中的name成員為數(shù)組,不是指針,它具有白己的存儲空間。

19、設(shè)有定義:structcomplex{intreal,unreal;}datal={1,8},data2;則以下賦

值語句中錯誤的是

A、data2=(2,6);

B、data2=data1;

C^data2.real=datal.real;

D、data2.real=datal.unreal;

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:本題主要考查結(jié)構(gòu)體變量的定義與初始化。題目中定義了complex類

型的結(jié)構(gòu)體變量daial和data2,并對datal進(jìn)行了初始化??梢杂靡粋€結(jié)構(gòu)體變量

對另一個結(jié)構(gòu)體變量賦值,用一個結(jié)構(gòu)體變量的成員對另一個結(jié)構(gòu)體變量的成員賦

值。

20、以下敘述中正確的是

A、函數(shù)的返回值不能是結(jié)構(gòu)體類型

B、函數(shù)的返回值不能是結(jié)構(gòu)體指針類型

C、在調(diào)用函數(shù)時,可以將結(jié)構(gòu)體變量作為實參傳給函數(shù)

D、結(jié)構(gòu)體數(shù)組不能作為參數(shù)傳給函數(shù)

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:和普通變量相似,結(jié)構(gòu)體變量也可以作為函數(shù)實參或者形參,函數(shù)的

返1口1值也可以是結(jié)構(gòu)體類型C

21、有以卜程序#includemain(){FILE*pf;char*sl="China'\*s2="Beijing";

pf=fopen(',abc.dat,',',wb+');fwrite(s2,7,l,pf);rewind(pf);/*文件位置指針回至I」文件開

頭*/fwrite(s1,5,1,pf);fclose(pf);}以上程序執(zhí)行后abc.dat文件的內(nèi)容是()。

A、Chinang

B、China

C>ChinaBeijing

D、BeijingChina

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:語句“fwrile(s2,7,l,pD;”將指針s2指向的7個字節(jié)的數(shù)據(jù)寫入到

abc.dat文件中,而后將文件指針fp重定向指向文件首,再執(zhí)行語句

時將si指向的5個字符寫入當(dāng)前文件,原先寫入的數(shù)據(jù)會被部分

覆蓋,最后文件中的內(nèi)容為Chinang,答案選A。

22、設(shè)有如下定義strucl{inln;charc;}a[2],*p=a;則以下錯誤引用結(jié)構(gòu)體成員n的

是()。

A、(*a)->n

B、a|O].n

C、p->n

D、(*p).n

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:結(jié)構(gòu)體變量對其成員變量的引用用“.”運(yùn)算符,而結(jié)構(gòu)體指針引用成

員變量使用指向運(yùn)算符(*a)與a[0]等價,引用成員變量n應(yīng)該使用”.“運(yùn)算

符,所以答案選A。

23有以下程序#includemain(){inta[]={2,4,6,8,10),x,*p,y=l;p=&a[l];

for(x=O;x<3;x++)y+=*(p+x);printf("%d\n",y);)程序的輸出結(jié)果是

A、13

B、19

C、Il

D、15

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:本題通過語句將指針變量p指向了存儲單元a[了即伎得

p[0]的值為4,y的初始值為1,然后通過3次for循環(huán),使得y的值分別加上

p[0]、p[l]和p⑵,那么y=l+4+6+8,所以輸出的y的值為19。

24、有以下程序#includeintfun(intx){intp;if(x==0||x==l)return(3);p=x-fun(x-2);

returnp;)main(){printf("%d\n",fun(7));)執(zhí)行后的輸出結(jié)果是

A、2

B、3

C、7

D、0

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:因為fun(intx)是一個遞歸函數(shù),所以主函數(shù)中fun(7)經(jīng)過3次遞歸調(diào)

用,其過程可以描述為"fim(7)=7-fun(5)=7?(5-fun(3))=7-(5-(3-fun(l)))=7-(5-(3-3))=7-

5=2",所以最后輸出結(jié)果為2。因此A選項正確。

25、設(shè)有定義:intx[2][3];則以下關(guān)于二維數(shù)組x的敘述錯誤的是

A、元素x[0]可看作是由3個整型元素組成的一維數(shù)組

B、數(shù)組x可以看作是由x|0]和x[11兩個元素組成的一維數(shù)組

C、可以用x[0]=0;的形式為數(shù)組所有元素賦初值0

D、x[0]和x[l]是數(shù)組名,分別代表一個地址常量

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:x[0]可看作是由3個整型元素組成的一維數(shù)組,不可以用語句

x[0]=0;為數(shù)組所有元素賦初值0。因此C選項正確。

國家二級C語言機(jī)試(選擇題)模擬試

卷第3套

一、選擇題(本題共25題,每題1.0分,共25分。)

1、有以下程序:#includemain(){inti,array[6]={1,5,0,4);for(i=0;i<5;

i++)printf,%d",array[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。

A、04040

B、15040

C、15540

D、12120

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:本題主要考查一維數(shù)組的輸出。由于數(shù)組中有6個元素,但初始化數(shù)

組的時候只給出4個元素,所以array[5]=0,array[6]=0,前面幾位元素依次輸出,

不夠位數(shù)補(bǔ)0,所以選項B正確。

2、若a是數(shù)值類型,見邏輯表達(dá)式(a==l)II(a!=l)的值是()。

A、1

B、0

C、2

D、不知道a的值,不能確定

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:邏輯或“II”要求只要兩邊的運(yùn)算對象有一個非零,結(jié)果就為真。雖

然不知道a的值,但是若a為1,則左邊運(yùn)算對象為1:若a的值不是1,則右邊運(yùn)

算對象的值為1,所以總能保證一邊非零。

3、有以下程序:#includemain(){chars[]-kabode,,js+=2;prinfR"%d\n",

s[0]);}程序的運(yùn)行結(jié)果是()。

A、輸出字符c的ASCH碼

B、程序出錯

C、輸出字符c

D、輸出字符a的ASCH碼

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:本題重點(diǎn)考查數(shù)組名的概念。在C語言中,數(shù)組名類似于一個指向

數(shù)組首地址的指針常量,一旦定義就不能修改其內(nèi)容。所以本題中的飛+=2”;語句

讓數(shù)組名s的內(nèi)容加2是錯誤的,編譯無法通過,因此B選項正確。

RST

mmprq

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

系R和S通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為

A、笛卡爾積

B、交

C、并

D、自然連接

標(biāo)準(zhǔn)答案:D

知識點(diǎn)解析?:在實際應(yīng)用中,最常用的連接是一個叫自然連接的特例。它滿足下面

的條件:兩關(guān)系間有公共域;通過公共域的相等值進(jìn)行連接。通過觀察三個關(guān)系

R,S,T的結(jié)果可知關(guān)系T是由關(guān)系R和S進(jìn)行自然連接得到的。

5、層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是()o

A、記錄長度

B、文件的大小

C、聯(lián)系的復(fù)雜程度

D、數(shù)據(jù)之間的聯(lián)系方式

標(biāo)準(zhǔn)答案:D

知識點(diǎn)解析:層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),網(wǎng)狀模型是一個不加任何條件限制

的無向圖,關(guān)系模型采用二維表來表示,所以三種數(shù)據(jù)庫的劃分原則是數(shù)據(jù)之間的

聯(lián)系方式。

6、若要定義一個具有5個元素的整型數(shù)組,以下錯誤的定義語句是()。

A、inta[5]={1};

B、intb[]={l,2,3,4,5);

C、imC[2+3]

D、inti=5,d|i)

標(biāo)準(zhǔn)答案:D

知識點(diǎn)解析:本題考查一維數(shù)組的定義,C語言中一維數(shù)組的長度表達(dá)式必須是常

量;選項A正確:選項B初始化了5個元素,因此數(shù)組長度為5;選項C常量表

達(dá)式2+3的值為5,正確;選項D數(shù)組長度不是常量表達(dá)式,錯誤。

7、下列敘述中正確的是

A、對象標(biāo)識具有唯一性

B、屬性是對象的動態(tài)屬性

C、任何對象都必須有多態(tài)性

D、對象是對象屬性和方法的封裝體

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:每個對象都有自身唯一的標(biāo)識,通過這種標(biāo)識,可找到相應(yīng)的對象。

在對象的整個生命期中,它的標(biāo)識都不改變,不同的對象不能有相同的標(biāo)識。

8、不屬于對象構(gòu)成成份的是

A、規(guī)則

B、屬性

C、標(biāo)識

D、方法(或操作)

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:對象由屬性、方法和標(biāo)識構(gòu)成。

9、有以下程序#includemain(){intx=l,y=0,a=0,b=0;switch(x){case1:

switch(y){case0:a++;break;case1:b++;break;)case2:a++;b++;

break:}primf("a=%d,b=%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是

A、a=l,b=l

B、a=l,b=0

C、a=2,b=l

D^a=2,b=2

標(biāo)準(zhǔn)答案:c

知識點(diǎn)解析:本題考查的是用switch語句實現(xiàn)多分支選擇結(jié)構(gòu),首先進(jìn)入第一個

switch(x)判斷,進(jìn)入case1中進(jìn)行嵌套判斷,如果switch(y)也成立,a自加1,遇

到break,退出嵌套,接著執(zhí)行case2,a自加為2,b自加為1,遇到break,結(jié)束

循環(huán),此時a=2,b=lo

10、若有以下程序#includeint*t){int*k:if(*s<*t){k=s;s=t:t=k;}

returns;)main()(inti=3?j=5,*p=&i,*q=&j,*r;r=f(p,q);printf("%d,%

d,%d,%d,%d\n”,i,j,*p,*q,*r);}則程序的輸出結(jié)果是

A、3,5,5,3,5

B、5,3,5,3,5

C、5,3,3,5,5

D、3.5.3.5.5

標(biāo)準(zhǔn)答案:D

知識點(diǎn)解析:本題考查了返回值為指針的函數(shù),函數(shù)f的主要功能為第一個參數(shù)小

于第二個參數(shù),那么交疾指針的指向,這對于實參指向的數(shù)據(jù)時沒有影響的。最后

返回比較大的元素的地址。主函數(shù)中p指向i,q指向j,調(diào)用r=f(p,q),返回q的

地址,因止匕*p=3,*q=5,*r=5o

11、有以下程序#includeVstdio.n>main(){inta=l,b=0;pnntf(M%d,”,

b=a+b);printf("%d\n',a=2*b);}程序運(yùn)行后的輸出結(jié)果是

A、1,0

B、3,2

C、I,2

D、0,0

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:在主函數(shù)中定義了兩個整型變量a和b,并把它們的初值分別設(shè)置為

1和0;在第二條語句中,首先計算出a和b的和等于1,把此值賦給變量b,并在

屏幕上輸出此時變量b的值1;在第三條語句中,計算出2乘以1的積等于2,把

2賦給變量a,再把變量a的值在屏幕上輸出。

12、有以下程序#includeVstdio.h>main(){intx=8;for(;x>0;x--){if(x%

3){printf("%d,",x—);continue;}printf("%d,",—x);}}程序的運(yùn)行結(jié)果是

A、8,7,5,2,

B、9,7,6,4,

C>7,4,2,

D、8,5,4.2,

標(biāo)準(zhǔn)答案:D

知識點(diǎn)解析:表示先執(zhí)行程序,再令x的值減1:而表示令x的值減1,

再執(zhí)行程序。x=8時,x%3為非0值,執(zhí)行語句“{print(”%d,",x-):

continue:}",輸出“8,”,此時經(jīng)過x--,x的值變?yōu)?,跳出此次循環(huán):執(zhí)行“x-

-,x=6,x%3=0”,后面語句不執(zhí)行,執(zhí)行語句“printf("%d,",??x);”,輸出

“5,”;執(zhí)行for語句中的X--,得到x=4,判斷x%3,輸出“4,”,執(zhí)行兩次x-

后,x=2,執(zhí)行“{primff%d,”,X-);continue;}”后,輸出“2,”;然后執(zhí)行兩次

X--后,X—0,不符合“x>0",循環(huán)全部結(jié)束o

13、有以下程序段structst{intx;int*y;)*pt;inta[]={1,2),b[]={3,4);

structstc[2]=(10,a,20,b);pt=c:以下選項中表達(dá)式的值為11的是

A、pt->x

B、*pt->y

C^++pt->x

D、(pt++)->x

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:由題目的已知條件可知,m指向結(jié)構(gòu)體數(shù)組c[2]的第一元素c[0],所

以pt->x=10,執(zhí)行白加運(yùn)算后為11。

14、有以下程序main(){inta=0,b=0,c=0,d=0;if(a=l)b=l;c=2:elsed=3;

printf(n%d,%d,%d,%d\n",a,b,c,d);}程序輸出

A、0,0,0,3

B、1,1,2,0

C、編譯有錯

D、0,1,2,0

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:if語句的格式為:ifr表達(dá)式)語句1else語句2if和else是C語言的

關(guān)鍵字?!罢Z句1”稱為if子句,“語句2”稱為else子句,這些子句只允許為一條語

句,若需要多條語句時,則應(yīng)該使用復(fù)合語句。因此題目“if(a=l)b=l;c=2;else

d=3;",if分支有兩條語句,沒構(gòu)成復(fù)合語句。

15、以F敘述中正確的是

A、循環(huán)發(fā)生嵌套時,最多只能兩層

B、三種循環(huán)for,while,do-while可以互相嵌套

C、循環(huán)嵌套時,如果不進(jìn)行縮進(jìn)形式書寫代碼,則會有編譯錯誤

D、for語句的圓括號中的表達(dá)式不能都省略掉

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:在一個循環(huán)體內(nèi)又完整包含了另一個循環(huán),稱為循環(huán)嵌套。循環(huán)的嵌

套可以多層,但每一層循環(huán)在邏輯上必須是完整的。for循環(huán)、while循環(huán)、do-

whilc循環(huán)可以互相嵌套,但每層循環(huán)在邏輯上必須完整。而在for語句中,for語

句中的表達(dá)式可以部分或全部省略,但兩個";不可省略。

16、有以下程序main(){charcl,c2;cl='A'+'8'-'4';c2='A+8'-'5';

printf(u%c,%d\nu,cl,c2);}已知字母A的ASCII碼為65,程序運(yùn)行后的輸出結(jié)果是

A、D,69

B、E,68

C、E,D

D、輸出無定值

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:字符變顯cl的ASCH值等于69,而字符變顯c2的ASCH值等于

68,當(dāng)分別以字符和整型輸出cl和c2的ASCII碼道時,其結(jié)果為E,68。

17、以下選項中,沒有編譯錯誤的是

A、charstr3[]={,d\V,V,V,'g',,\0>

B、charstrl[5]="pass'\str2[6];str2=strl;

C>charname[10];nams="china";

D、charstr4[J;str4="helloworld";

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:選項A)是定義了字符數(shù)組4r3□:并對其賦初值n選項B)中語句

str2二strl非法,字符數(shù)經(jīng)不能直接賦值。選項C),D)和選項B)一致。

18、有以下程序#includeVstdio.h>main()(inta[]={10,20,30,40],*p=a.

i:for(i=0;i<=3;i++){a[i]=*p;p++:}prin>f("%d\n”,a⑵b}程序運(yùn)行后的

輸出結(jié)果是

A、20

B、30

C、10

D、40

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:因為指針變量p的初始值指向數(shù)組a,所以執(zhí)行for循環(huán)語句后,數(shù)

組a中的元素的值不變?:

19、以下.程序用來統(tǒng)計文件中字符的個數(shù)(函數(shù)feof用以檢查文件是否結(jié)束,結(jié)束

時返回非零)#inck】deVstdio.h>main(){FILE*fp;longnum=0;

fp=fopen("fname.dat'\"r");while(){fgetc(fp);num++;)printf("num=%

d\n'\num);felose(fp);}下面選項中,填入橫線處不能得到正確結(jié)果的是

A、feof(fp)

B、feof(fp)==NULL

C>!feof(fp)

D、feof(fp)==0

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:feof函數(shù)用來判斷文件是否結(jié)束。如果遇到文件結(jié)束:,函數(shù)feof(fp)

的值為1,否則為0。題目橫線用于判斷文件不結(jié)束,讀出字符。文件不結(jié)束feof

值為0,若執(zhí)行循環(huán)則應(yīng)用表達(dá)式!feof(fp)。

20、有以下程序段int*p;p=malloc(sizeof(int));若要求使p指向一個

int型的動態(tài)存儲單元,在橫線處應(yīng)填入的是()。

A、(int*)

B、int

C、int*

D、(*int)

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:語句“maHoc(sizeof(int))”為動態(tài)分配了一塊內(nèi)存,因為p為int型指

針,所以需要使用強(qiáng)制轉(zhuǎn)換將該內(nèi)存地址轉(zhuǎn)換成int*類型后再指給p,填入的內(nèi)容

為(im*),答案選A。

21、下列敘述中正確的是

A、線性表鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空間一般要少于順序存儲結(jié)構(gòu)

B、線性表鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)的存儲空間都是連續(xù)的

C、線件表鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空間可以是連續(xù)的,也可以是不連續(xù)的

D、以上說法均錯誤

標(biāo)準(zhǔn)答案:c

知識點(diǎn)解析:線性表的順序存儲結(jié)構(gòu)具備如下兩個基本特征:(1)線性表中的所

有元素所占的存儲空間是連續(xù)的;(2)線性表中各數(shù)據(jù)元素在存儲空間中是按邏

輯順序依次存放的。用一組任意的存儲單元來依次存放線性表的結(jié)點(diǎn),這組存儲單

元既可以是連續(xù)的,也可以是不連續(xù)的,甚至是零散分布在內(nèi)存中的任意位置上

的。因此C正確。

22、下列描述中不屬于軟件需求分析階段任務(wù)的是()。

A、編寫軟件需求規(guī)格說明書

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

C、軟件的需求分析

D、軟件的需求評審

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:軟件需求是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計約束等

方面的期望。需求分析階段的工作可以分為4個方面:需求獲取、需求分析、編寫

需求規(guī)格說明書和需求評審。軟件的總體結(jié)構(gòu)設(shè)計屬于軟件設(shè)計階段的任務(wù)。故本

題答案為B選項。

23、算術(shù)運(yùn)算符和圓括號有不同的運(yùn)算優(yōu)先級,對于表達(dá)式:a+b+c*(d+e),關(guān)于

執(zhí)行順序,以下說法正確的是()。

A、先執(zhí)行(d+e)得「2,再執(zhí)行c*己得「3,再執(zhí)行a+b得rl,最后執(zhí)行rl+r3得表

達(dá)式最后結(jié)果

B、先執(zhí)行a+b得門,再執(zhí)行(d+e)得己,再執(zhí)行c水也得「3,戰(zhàn)后執(zhí)行rl+g得表

達(dá)式最后結(jié)果

C、先執(zhí)行(d+e)得己,再執(zhí)行c*r2得「3,再執(zhí)行b+r3得r4,最后執(zhí)行a+r4得表達(dá)

式最后結(jié)果

D、先執(zhí)行a+b得再執(zhí)行rl+c得r5,再執(zhí)行(d+e)得己,最后執(zhí)行r5*r2得表

達(dá)式最后結(jié)果

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:題意中的表達(dá)式,圓括號的優(yōu)先級最高,乘法運(yùn)算符次之,加法運(yùn)算

符最低。同優(yōu)先級中,加法運(yùn)算符的結(jié)合性從左向右結(jié)合,所以題干中的表達(dá)式執(zhí)

行順序是:先執(zhí)行a十b得rl,接著執(zhí)行(d+e)得r2,再執(zhí)行是r2得3最后執(zhí)行

rl+r3得表達(dá)式最后結(jié)果。故本題答案為B選項。

24>有以下程序#include<stdio.h>main()(intt;scanf("%d",&t);

if(t++<6)printf(',%d\nt);elseprintf("%d\n",t-);printf("\n");)

執(zhí)行時輸入6并按<En〔er>,則輸出結(jié)果是()。

A、6

B、8

C、7

D、5

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:后綴自增運(yùn)算“t++”表示先運(yùn)算,再自加。語句“if(t++<6)printf("%d

\n",t);elseprintf("%d\n",t--);”中t的初值為6,則堂++V6”條件為假,t自增

至7,執(zhí)行“printf("%d\n",t??);”,此時匚7,輸出I值為7,之后進(jìn)行自減操

作,即1=6。因此輸出的結(jié)果為7。故本題答案為C選項。

25、設(shè)文件指針fp已定義,執(zhí)行語句"fp=fopen(“file”,”w");"后,下列針對文本

文件file操作敘述的選項中正確的是()。

A、只能寫,不能讀

B、寫操作結(jié)束后可以從頭開始讀

C、可以在原有內(nèi)容后追加寫

D、可以隨意讀和寫

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:本題考查文件操作函數(shù)fopen。以““產(chǎn)方式打開文件時只能寫,不能

讀。故本題答案為A選項。

國家二級C語言機(jī)試(選擇題)模擬試

卷第4套

一、選擇題(本題共25題,每題1.0分,共25分。)

1、以下選項中關(guān)于程序模塊化的敘述錯誤的是

A、把程序分成若干相對獨(dú)立、功能單一的模塊,可便于重復(fù)使用這些模塊

B、可采用自底向上、逐步細(xì)化的設(shè)計方法把若干獨(dú)立模塊組裝成所要求的程序

C、把程序分成若干相對獨(dú)立的模塊,可便于編碼和調(diào)試

D、可采用自頂向下、逐步細(xì)化的設(shè)計方法把若干獨(dú)立模塊組裝成所要求的程序

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:如果應(yīng)用結(jié)構(gòu)化程序設(shè)計方法設(shè)計程序,那么可采用自頂向下,逐步

細(xì)化的設(shè)計方法把若干獨(dú)立模塊組裝成所要求的程序。

2、我們所寫的每條C語句,經(jīng)過編譯最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令。關(guān)于轉(zhuǎn)

換以下說法錯誤的是

A、一條C語句可能會被轉(zhuǎn)換成多條機(jī)器指令

B、一條C語句對應(yīng)轉(zhuǎn)換成一條機(jī)器指令

C、一條C語句可能會被轉(zhuǎn)換成零條機(jī)器指令

D、某種類型和格式的C語句被轉(zhuǎn)換成機(jī)器指令的條數(shù)是陶定的

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:由C語言編寫的程序,通過編譯、鏈接轉(zhuǎn)換成可以讓機(jī)器識別的01

二進(jìn)制指令。這些二進(jìn)制指令命令機(jī)器計算,這些就是機(jī)器指令,而C語言的語

言條數(shù)和機(jī)器指令的條數(shù)不是一對一的關(guān)系。

3、面向?qū)ο蠓椒ㄖ?,實現(xiàn)對象的數(shù)據(jù)和操作結(jié)合于統(tǒng)一體中的是()。

A、結(jié)合

B、封裝

C、隱藏

D、抽象

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析?:對象的基本特點(diǎn)是:標(biāo)識唯一性、分類性、多態(tài)性、封裝性、模塊獨(dú)

立性好。封裝是指隱藏對象的屬性和實現(xiàn)細(xì)節(jié),將數(shù)據(jù)和操作結(jié)合于統(tǒng)一體中,僅

對外提供訪問方式。B選項正確。

4、以下敘述中正確的是

A、程序必須包含所有三種基本結(jié)構(gòu)才能成為一種算法

B、如果算法非常復(fù)雜,則需要使用三種基本結(jié)構(gòu)之外的語句結(jié)構(gòu),才能準(zhǔn)確表達(dá)

C、只有簡單算法才能在有限的操作步驟之后結(jié)束

D、我們所寫的每條C語句,經(jīng)過編譯最終都將轉(zhuǎn)爽成二進(jìn)制的機(jī)器指令

標(biāo)準(zhǔn)答案:D

知識點(diǎn)解析:C語句構(gòu)成了函數(shù),函數(shù)構(gòu)成的程序,經(jīng)過編譯轉(zhuǎn)換成二進(jìn)制代碼后

可以運(yùn)行,算法是指為解決某個特定問題而采取的確定且有限的步驟,可以利用代

碼來描述算法,而算法+數(shù)據(jù)結(jié)構(gòu)才是程序,結(jié)構(gòu)化的程序由順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

和選擇結(jié)構(gòu)三種基本結(jié)溝組成。由這三種基本結(jié)構(gòu)組成的算法可以解決任何復(fù)雜的

問題,反之則不一定,所有算法必須在有限步驟后結(jié)束。

5、數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法

圖符的是()。

A、加工

B、控制流

C、數(shù)據(jù)存儲

D、數(shù)據(jù)流

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度來刻畫數(shù)據(jù)流從輸入到輸出的移動

變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)

源)等。本題答案為B選項。

6、設(shè)棧的順序存儲空間為S(l:m),初始狀態(tài)為t。尸m+1?,F(xiàn)經(jīng)過一系列入棧與退

棧運(yùn)算后,top=20,則當(dāng)前棧中的元素個數(shù)為

A、30

B、20

C、m-19

D、m-20

標(biāo)準(zhǔn)答案:C

出棧

入校

知識點(diǎn)解析:根據(jù)題意,??臻g如卜.圖所示。棧是向

上增長的,每次壓入一個元素,棧的TOP指針向上移動一位。當(dāng)壓入第一個元素

時,TOP指針指向m+l-l=m;當(dāng)壓入第二個元素時,TOP指針指向m+l-2=m-

1;......;以此類推,當(dāng)壓入第N個元素時,TOP指針指向m+l-N=20;則N=m+l?

20=m-19o因此選項C正確。

7、下列敘述中正確的是()。

A、在鏈表中,如果每個結(jié)點(diǎn)有兩個指針域,則該鏈表一定是非線性結(jié)構(gòu)

B、在鏈表中,如果有兩個結(jié)點(diǎn)的同一個指針域的值相等,則該鏈表一定是非線性

結(jié)構(gòu)

C、在鏈表中,如果每個結(jié)點(diǎn)有兩個指針域,則該鏈表一定是線性結(jié)構(gòu)

D、在鏈表中,如果有兩個結(jié)點(diǎn)的同一個指針域的值相等,則該鏈表一定是線性結(jié)

構(gòu)

標(biāo)準(zhǔn)答案:B

知識點(diǎn)解析:判斷一個非空的數(shù)據(jù)結(jié)構(gòu)是否為線性結(jié)構(gòu)必須滿足以下兩個條件:

①有且只有一個根結(jié)點(diǎn);②每一個結(jié)點(diǎn)最多有一個前件,也最多有一個后件。選

項R)中,如果有兩個結(jié)點(diǎn)的同一個指針域的值相等,則說明至少有一個結(jié)點(diǎn)有兩

個前件,不符合線性結(jié)溝的定義,所以答案選B),

8、軟件(程序)調(diào)試的任務(wù)是()。

A、診斷和改正程序中的錯誤

B、盡可能多地發(fā)現(xiàn)程序中的錯誤

C、發(fā)現(xiàn)并改正程序中的所有錯誤

D、確定程序中錯誤的性質(zhì)

標(biāo)準(zhǔn)答案:A

知識點(diǎn)解析:在對程序進(jìn)行了成功的測試之后將進(jìn)入程序調(diào)試(通常稱Debug,即

排錯)。程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。它與軟件測試不同,軟件測

試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于一定的調(diào)試

工具去執(zhí)行并找出錯誤的具體位置。軟件測試貫穿整個軟件生命期,調(diào)試主要在開

發(fā)階段。

9、對于長度為n的線性表,在最壞情況下,下列各排序法所對應(yīng)的比較次數(shù)中正

確的是

A、冒泡排序為n/2

B、冒泡排序為n

C、快速排序為n

D、快速排序為n(n—1)/2

標(biāo)準(zhǔn)答案:D

知識點(diǎn)解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過n/2

遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n—1)/

2。快速排序法也是一種互換類的排序方法,但由于它比冒泡排序法的速度快,因

此,稱為快速排序法。

10、軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬

于應(yīng)用軟件的是

A、編譯程序

B、操作系統(tǒng)

C、教務(wù)管理系統(tǒng)

D、匯編程序

標(biāo)準(zhǔn)答案:C

知識點(diǎn)解析:編譯程序和匯編程序

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論