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

下載本文檔

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

文檔簡(jiǎn)介

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

卷第1套

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

1、下列描述中正確的是

A、數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)必定是一一對(duì)應(yīng)的

B、由于計(jì)算機(jī)存儲(chǔ)空間是向量式的存儲(chǔ)結(jié)構(gòu),因此,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)一定是線性

結(jié)構(gòu)

C、程序設(shè)計(jì)語言中的數(shù)據(jù)一般是順序存儲(chǔ)結(jié)構(gòu),因此,利用數(shù)組只能處理線性結(jié)

構(gòu)

D、以上三種說法都不對(duì)

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

知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu).數(shù)據(jù)的

邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)

構(gòu))。一般來說,一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),常用的

存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等。

2、下列排序方法中,最壞情況下比較次數(shù)最少的是()。

A、冒泡排序

B、簡(jiǎn)單選擇排序

C、直接插入排序

D、堆排序

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

知識(shí)之解析D:冒泡排序與簡(jiǎn)單插入排序與簡(jiǎn)單選擇排序法在坡壞情況下均需要比較

n(n-l)/2次,而堆排序在最壞情況下需要比較的次數(shù)是nlog2no

3、支持予程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是

A、棧

B、樹

C、隊(duì)列

D、二叉樹

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

知識(shí)點(diǎn)解析:棧是一種限定在一端進(jìn)行插入與刪除的線性表。在主函數(shù)調(diào)用子函數(shù)

時(shí),要首先保存主函數(shù)當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子函數(shù),把子函數(shù)的運(yùn)行結(jié)果返

回到主函數(shù)調(diào)用子函數(shù)時(shí)的位置,主函數(shù)再接著往下執(zhí)行,這種過程符合棧的特

點(diǎn)。所以一般采用棧式存儲(chǔ)方式。

4、冒泡排序在最壞情況下的比較次數(shù)是

A、n(n+l)/2

B、nlog2n

C、n(n-l)/2

D、n/2

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

知識(shí)點(diǎn)解析:對(duì)n個(gè)結(jié)點(diǎn)的線性表采用冒泡排序,在最壞情況下,冒泡排序需要經(jīng)

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

l)/2o

5、對(duì)長(zhǎng)度為n的線性表作快速排序,在最壞情況下,比較次數(shù)為

A、n

B、n—1

C、n(n—1)

D、n(n—1)/2

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

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

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

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

此,稱為快速排序法。

6、下面屬于字符類的實(shí)例是()。

A、’518'

B、5

C、,nm,

D、,,

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

知識(shí)點(diǎn)解析,字符類的數(shù)據(jù)只能包含一個(gè)字符,因此選項(xiàng)A)和選項(xiàng)C)不屬于字

符類的實(shí)例。選項(xiàng)B)使用的中文的雙引號(hào),也不屬于字符類的實(shí)例。選項(xiàng)D)是

一個(gè)轉(zhuǎn)義字符常量,為正確答案。

7^以下程序:#include#includcmain()[charstr[]="abcd\n\123\xab";

printf("%d",strlen(str));)運(yùn)行后的輸出結(jié)果是()。

A、10

B、9

C、7

D、14

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

知識(shí)點(diǎn)解析:本題考查字符串的長(zhǎng)度,需注意轉(zhuǎn)義字符串,例如,“\n”表示換

行,為一個(gè)長(zhǎng)度,123”表示3位八進(jìn)制數(shù)123表示的字符,為一個(gè)長(zhǎng)度,

xab”表示二位十六進(jìn)制數(shù)ab表示的字符,也為一個(gè)長(zhǎng)度。

8、下面屬于黑盒測(cè)試方法的是

A、語句覆蓋

B、邏輯覆蓋

C、邊界值分析

D、路徑覆蓋

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

知識(shí)點(diǎn)解析:采用黑盒技術(shù)設(shè)計(jì)測(cè)試用例的方法有:等價(jià)類劃分、邊界值分析、錯(cuò)

誤推測(cè)、因果圖和綜合策略。

9、表達(dá)式a+=a—=a=9的值是()。

A、0

B、—9

C、18

D、9

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

知識(shí)點(diǎn)解析:賦值語句,從右向左執(zhí)行,先執(zhí)行a=9,再執(zhí)行a—二a,a為0,再

執(zhí)行a+二a,結(jié)果仍為0。

10、以下程序段中不能統(tǒng)計(jì)出一行中輸入字符個(gè)數(shù)(不包含回車符)的是()。

A、for(n=0;getchar()!='\n';n++);

B、n=0;while(getchar(i!=,\n')n+十;

C>n=0;while((ch=getchar())!='\n')n++;

D、n=0;for(ch=getchar();ch!='\n';n++);

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

知識(shí)點(diǎn)解析:本題主要考查循環(huán)的使用。選項(xiàng)A中,使用for循環(huán),n的初值為

0,每次循環(huán)n增加1,循環(huán)的結(jié)束條件是輸入同車符;選項(xiàng)B中,直接判斷

gelchar函數(shù)的返回值是否是回車符,如果不足則n增加,輸入回車符循環(huán)結(jié)束;

選項(xiàng)C首先把輸入的字符放到ch變量中.然后判斷ch是否為I川車符.如果不是則

n增加I,循環(huán)結(jié)束條件是輸入的是同車符;選項(xiàng)D中for循環(huán)的初始條件ch值為輸

入的字符,只有一次輸入,不能統(tǒng)計(jì)輸入的字符數(shù),如果第一次輸入的不是回車符

循環(huán)不能結(jié)束。

11、有以卜程序#includedoublef(doublex);main(){doublea=0;inti;for(i=0;i<

30;i+=10)a+=f((double)i);printf(u%3.0f\nM,a);}doublef(doublex){return

x*x+l;}程序運(yùn)行后的輸出結(jié)果是

A、500

B、401

C、503

D、1404

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

知識(shí)點(diǎn)解析:本題重點(diǎn)考察函數(shù)的定義和調(diào)用,第一次循環(huán),a=0,i=0;返回值

a=o*o+l=l;第二次循環(huán),a=l,i=10;返回值a=10*10+l+l=102;第三次循環(huán),

a=102,i=20;返回值a=20*20+1+102=503;第四次循環(huán),a=503,i=30;不符合

i<30,跳出循環(huán),最后結(jié)果輸出a=503。

12、有以下程序,程序中庫函數(shù)islowcr(ch)用以判斷ch中的字*是否為小寫字*

#include<sldio.h>#include<ctype.h>yoidfun(char*p){inti=0;while(p[i|)

{iffp[i]=>,&&islower(p[i-1]))p[i-1]=p[i-1]=p[i-1A5;i++:))main()

,,,,

{charsl[100]=abcdEFG!;fun(sl);printf。%s\n”,si);}程序運(yùn)行后的輸出結(jié)

果是

A、abcdEFg!

B、abcdEFG!

C^abcdEFg!

D、abcDEFG!

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

知識(shí)點(diǎn)解析:函數(shù)fun(char*p)的功能是如果p|i]指向的字符為空字符并且其前?個(gè)

字符是小寫字*,則把小寫字*變成大字*,所以在主函數(shù)中,執(zhí)行fim(sl)后,小寫

字*b,d都改成大字

13、C語言程序中,運(yùn)算對(duì)象必須是整型數(shù)的運(yùn)算符是

A,/

B、%

C、&&

D、*

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

知識(shí)點(diǎn)解析:%要求參與運(yùn)算的運(yùn)算量為整型,其他三個(gè)運(yùn)算符對(duì)于參與運(yùn)算的運(yùn)

算量沒有直接要求。

14、若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)

A、getc()

B、gets()

C、getchar()

D、scanf()

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

知識(shí)點(diǎn)解析:scanf()語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所

以用scanf()函數(shù)不能輸入空格;getchar。函數(shù)用于輸入字符,其調(diào)用形式為:

ch=getchan[),getchav()函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的一個(gè)字符

賦給變量ch。在輸入時(shí),空格、回車符都將用于字符讀入,而且只有在用戶敲入

Enter.鍵時(shí),讀入才開始執(zhí)行。gets。函數(shù)的調(diào)用形式為:gets(str_adr),其中str_adr

是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指

針變量。gets。函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個(gè)換行符

為止。gelc()函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從

pf指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返回。

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

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

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

A、a=2,b=1

B、a=l,b=l

C、a=l,b=0

D、a=2,b=2

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

知識(shí)點(diǎn)解析?:break語句用于循環(huán)嵌套或者switch選擇嵌套時(shí),只能跳出當(dāng)前層的

switch選擇層或循環(huán)層。本程序中,先執(zhí)行swiich(x),而x=l,執(zhí)行case1對(duì)應(yīng)的

語句塊,進(jìn)入嵌套的選擇語句switch(y),y=0,執(zhí)行case0:a++;break;此時(shí)a=l,

遇到break語句后跳出svvitch(y),沒有遇到break,繼續(xù)執(zhí)行case2:a++;b++;

break;此時(shí)a=2,b=l0遇到break跳出switch(x)。最終a=2,b=l,輸出結(jié)果為

16、若有以下程序typedefstruerstu{char*name,gender:intscore:}STU;void

f(char*p){p=(char*)malloc(lO);strcpy(p,nQian"):)main()(STU

a={NULL,'m',290},b;a.name=(char*)malloc(10);strcpy(a.name,

"Zhao");b=a:f(b.name);b.gender=f;b.score=350;printf("%s,%c,%

d,”,a.name,a.gender?a.score);printf("%s?%c,%d\n”,b.name,

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

A、Zhao,m,290,Qian,f,350

B、Qian,f,350,Qian,f,350

C^Qian,m,290,Qian,f,350

D、Zhao,m,290,Zhao,f,350

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

知識(shí)點(diǎn)解析:函數(shù)f(char*p)的主要功能申請(qǐng)字符串的存儲(chǔ)空間,然后存入字符串

“Qian”,但當(dāng)程序調(diào)用結(jié)束以后,形參指針變量p撤銷,存儲(chǔ)的字符串地址丟失,

而不能更改實(shí)參指針的值。主函數(shù)中結(jié)構(gòu)休變量定義同時(shí)賦初值,初始情況其

name指針成員存儲(chǔ)空,而后語句為其分配存儲(chǔ)空間,存入字符串“Zhao”。執(zhí)行

b=a;語句后,b的數(shù)據(jù)和a的數(shù)據(jù)相同,調(diào)用函數(shù)f以后,b的name成員的值沒

變。

17、有以下程序段inlj;floaty;charname[50];scanf("%2d%f%s",&j,&y,

name);當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為

A、55566.0

B、7777.0

C、566.0

D、566777.0

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

知識(shí)點(diǎn)解析:因?yàn)樵谳斎敫袷娇刂品兄付ㄗ兞縥的輸入格式控制符為“%2d”,即

變量j所占的寬度為2,所以變量j只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到

空格之間的輸入整數(shù)都會(huì)被保存到變量y中,因?yàn)閥為浮點(diǎn)型數(shù)據(jù),所以輸出結(jié)果

為選項(xiàng)C)o

18、有以下程序main(){intx=l,y=0;if(!x)y++;elseif(x-O)if(x)y+=2;else

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

A、2

B、0

C、1

D、3

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

知識(shí)點(diǎn)解析:x=Lif和elseif的條件都不滿足,故y值不改變輸出。

19、以下不合法的字符常量是

A、

B、3

C、、。⑻

D、’\xcc'

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

知識(shí)點(diǎn)解析:在C語言中,一個(gè)字符常量代表ASCH字符集中的一個(gè)字符,在程

序中用單引號(hào)把一個(gè)字符括起來用為字符常量。轉(zhuǎn)義字符常量也是必須括在一對(duì)單

引號(hào)內(nèi),以一個(gè)反斜線開頭后跟一個(gè)特定的字符,用來代表某一個(gè)特定的ASCH

字符。在選項(xiàng)C中,,\018,是用八進(jìn)制數(shù)來代表一個(gè)字符常量,所以其中的數(shù)字只

能小于8,并不包括8。

20、若有以下程序main(){inta=-2,b=0;while(a++)++b;printf(,,%d,%d\n,\a,b);}

則程序的輸出結(jié)果是

A、0,2

B、1,2

C、1,3

D、2,3

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

知識(shí)點(diǎn)解析?:循環(huán)體執(zhí)行兩次,第一次表達(dá)式a++值為-2,a的值為-1,執(zhí)行循環(huán)

體++b,b值為1,第二次表達(dá)式a++值為-1,a的值等于0,執(zhí)行++b,b值為2,

第三次判斷條件a++,表達(dá)式值為0,不執(zhí)行循環(huán)體,但是條件判斷以后,a的值

為lo

21、有以下程序voidfunl(char*p)main(){char*q;{chara[]={"Program"),*p;

q=p;p=&a[3];funl(p);printf("%s\n",a);while(*q!='\O')}{(木q)十十;

q++;}}程序執(zhí)行后的輸出結(jié)果是

A、Prphsbn

B、Prohsbn

C>Progsbn

D、Program

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

知識(shí)點(diǎn)解析:在函數(shù)voidfunl(char*p)中,語句(*q)++的功能是q所指的字符加1,

變成其后面的字符:q++就是指針q指向下一個(gè)字符的位置。所以在主函數(shù)中,語

句p=&a⑶的作用是使指針p指向字符數(shù)組叫中的第四個(gè)字符的位置,即D指向

字符'g':然后調(diào)用函數(shù)funl(p)后,字符'g'變成廿,字符T變成號(hào),字符,,變

成b,字符,m,變成因而字符數(shù)組a[]中的內(nèi)容就成“Prohshn”。

22、有以下程序#include<stdio.h>main(){int

s[l2J={1,2,3,4,4,321,1,1,2,3},cl5J={0),i;for(i=0;i<12;i++)c[s[iJJ++;for(i=l;i<

5;i++)printf("%d'\c(i]);printf("\n");}

A、4332

B、2344

C、1234

D、1123

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

知識(shí)點(diǎn)解析:本題考查for語句的循環(huán)控制,首先定義了兩個(gè)數(shù)組并賦予了初始

值,第一個(gè)for循環(huán)語句循環(huán)12次遍歷s數(shù)組的各個(gè)元素,將s[]中的原素值作為

c口數(shù)組中的下標(biāo),使相應(yīng)的值自加。例如當(dāng)i=0,c[s[O]]++為c[l]++,其值變?yōu)?/p>

1,當(dāng)執(zhí)行i=l,2,…11后,c[l]、c|2hc[3hc[4]分別為4、3、3、2,故選項(xiàng)A為

正確的運(yùn)行結(jié)果。

23、以下選項(xiàng)中,沒有編譯錯(cuò)誤的是

A、charstr3[]={'d','e','b','u','g',''0'};

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

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

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

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

知識(shí)E解析:B選項(xiàng)中,不能直接將字符數(shù)組名直接賦值給另一個(gè)字符數(shù)組名。C

選項(xiàng)賦值錯(cuò)誤,不能將一個(gè)字符串常量賦值給一個(gè)字符指針。D選項(xiàng)定義slr4時(shí)需

要定義其長(zhǎng)度。

24、有以下程序#includcmain(){intc[6]={10,20,30,40,50,60),*p,*s;p=c;s=&c[5];

printfC'%d\n",s-p);)程序運(yùn)行后的輸出結(jié)果是

A、5

B、50

C、6

D、60

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

知識(shí)點(diǎn)解析:首先初始化一維數(shù)組c[6],語句p=c;指將c[0]元素的地址賦給指針

變量p;語句s=&c[5];指將c[5]元素的地址賦給指針變量So程序最后輸出s-p,

即結(jié)果為5。因此A選項(xiàng)正確。

25、以下說法正確的是()。

A、函數(shù)可以返回另一個(gè)函數(shù)的整個(gè)函數(shù)體

B、函數(shù)返回值只能是基本數(shù)據(jù)類型的數(shù)值或指針

C、函數(shù)返回值可以是一個(gè)指向函數(shù)的指針

D、函數(shù)返回值可以是一個(gè)數(shù)組,同時(shí)返回多個(gè)值

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

知識(shí)點(diǎn)解析:函數(shù)的返回值是通過return語句返回,返回值是一個(gè)表達(dá)式,不限于

基本數(shù)據(jù)類型或指針,也可以是結(jié)構(gòu)體類型等,但不能是數(shù)組,選項(xiàng)A、B、D錯(cuò)

誤;函數(shù)的返回值可以是一個(gè)指向函數(shù)的指針,選項(xiàng)C正確;本題答案為C。

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

卷第2套

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

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

A、所謂算法就是計(jì)算方法

B、程序可以作為算法的一種描述方法

C、算法設(shè)計(jì)只需考慮得到計(jì)算結(jié)果

D、算法設(shè)計(jì)可以忽略算法的運(yùn)算時(shí)間

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

知識(shí)點(diǎn)解析:算法是指對(duì)解題方案的準(zhǔn)確而完整的描述,算法不等于數(shù)學(xué)上的計(jì)算

方法,也不等于程序。算法設(shè)計(jì)需要考慮可行性、確定性、有窮性與足夠的情報(bào),

不能只考慮計(jì)算結(jié)果.算法設(shè)計(jì)有窮性是指操作步驟有限且能在有限時(shí)間內(nèi)完成.

如果一個(gè)算法執(zhí)行耗費(fèi)的時(shí)間太長(zhǎng),即使最終得出了正確結(jié)果,也是沒有意義的。

算法在實(shí)現(xiàn)時(shí)需要用具體的程序設(shè)計(jì)語言描述,所以程序可以作為算法的一種描述

方法。

2、下列敘述中正確的是

A、棧是一種先進(jìn)先出的線性表

B、隊(duì)列是一種后進(jìn)先出的線性表

C、棧與隊(duì)列都是非線性結(jié)構(gòu)

D、棧與隊(duì)列都是線性結(jié)構(gòu)

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

知識(shí)點(diǎn)解析:棧是先進(jìn)后出,隊(duì)列是先進(jìn)先出。棧和隊(duì)列都是一種線性表,屬于線

性結(jié)構(gòu)。

下列關(guān)于switch語句和break語句的結(jié)論中,正確的是()。

A、在switch語句中可以根據(jù)需要使用或不使用break語句

B、在switch語句中必須使用break語句

C、break語句是switch語句的一部分

D、以上三個(gè)結(jié)論中有兩個(gè)是正確的

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

知識(shí)點(diǎn)解析:在C語言程序中,從語法上說bteak語句并不是switch語句中的一部

分,在實(shí)際使用過程中也不是必須使用的。break語句是限定轉(zhuǎn)向語句,可以口止

執(zhí)行switch語句,但是執(zhí)行switch語句時(shí)可以不使用break語句。

4、下列各序列中不是堆的是

A、(91,85,53,36,47,30,24,12)

B、(91,85,53,47,36,30,24,12)

C、(47,91,53,85,30,12,24,36)

D、(91,85,53,47,30,12,24,36)

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

知識(shí)點(diǎn)解析:堆可以看成一棵完全二叉樹:任一根節(jié)點(diǎn)>=左右孩子(或者V

二),(大的叫大根堆,小的叫小根堆)。注意一個(gè)堆中的這種性質(zhì)有一致性,不

能既有大于又有小于情況存在。此題可以這么做,把結(jié)點(diǎn)按照完全二叉樹畫出來就

一目了然了。這個(gè)題目很明顯91是最大的根,而選項(xiàng)C是“左根右、'的排序,那么

91的左邊只有47,其他都在右邊,而右邊無法按照此順序排列,所以選項(xiàng)C不是

堆。

5、下列關(guān)于軟件工程的描述中正確的是

A、軟件工程只是解決軟件項(xiàng)目的管理問題

B、軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題

C、軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則

D、軟件工程只是解決軟件開發(fā)中的技術(shù)問題

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

知識(shí)點(diǎn)解析:軟件工程是建立并使用完善的工程化原則,以較經(jīng)濟(jì)的手段獲得能在

實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法。軟件工程主耍思想是強(qiáng)調(diào)在軟件開

發(fā)過程中需要應(yīng)用工程叱原則。

6^若有以下程序,則程序的輸出結(jié)果是#includemain(){inta=0,b=0,c=0:c=(a-

=++a),(a+=b,b+=4);printf("%d,%d,%d\n",a,b,c);)

A、0,4,4

B、1,4,1

C、0,4,0

D、1,4,4

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

知識(shí)點(diǎn)解析:表達(dá)式c=(a-二++a),(a+=b,b+=4)相當(dāng)于逗號(hào)表達(dá)式,首先計(jì)算

c=(a-=++a),其中(a-=++a)等價(jià)于a=a-(++a)得到a的值0,c的值為0,在計(jì)算

(a+=b,b+=4)時(shí),a和b的初值為0,計(jì)算以后,a為0,b為4。

7、按照C語言規(guī)定的用戶標(biāo)識(shí)符命名規(guī)則,不能出現(xiàn)在標(biāo)識(shí)符中的是()。

A、大寫字母

B、下劃線

C、數(shù)字字符

D、連接符

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

知識(shí)點(diǎn)解析:C語言中的標(biāo)識(shí)符由字母、下劃線、數(shù)字組成,且開頭必須是字母或

下劃線,所以D選項(xiàng)中的連接符不合法。

8、有以下程序:charnamcL20J;intnum;scant("namc=%snum=%d",name,

&num);當(dāng)執(zhí)行上述程序,并從鍵盤輸入:name=Li1inun=1001〈回車>后,name

的值為()。

A、nainc=Lilinum=1001

B、name=Lili

C^Lilinum二

D、Lili

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

知識(shí)點(diǎn)解析:在輸入格式控制"name=%snum=%d、'中,普通字符"name=num="在

輸入時(shí)要原樣輸入,而格式控制符%$和%(1對(duì)應(yīng)各自的輸入項(xiàng),將輸入的數(shù)據(jù)賦

給相應(yīng)的輸入項(xiàng)。本題中輸入“惘!1^=1山加111=1001<回車>”后,將字符串Lili賦

給字符數(shù)組name,整數(shù)1001賦給變量num,因此D選項(xiàng)正確。

9、有以下程序:#includeintfun(intx){intP;if(x==0IIx==l)return(3);P=x—

fun(x—2);returnp;}main。{prinff("%d\n”,fun(7));}程序的運(yùn)行結(jié)果是

()。

A、2

B、3

C、7

D、0

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

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

用,其過程可以描述為fun(7)=7一fun(5)=7一(5—fun(3)):7一(5一(3—

fun(l)))=7—*(5—*(3-3))=7-5=2,所以最后的輸出結(jié)果為2,因此A選項(xiàng)正確。

10、有以下程序#includeVstdio.h>intfun(intn){inta:if(n=l)returnl;

a=n+fun(n-l);return(a);)main(){pfintfi(,,%d\n,\fun(5));}程序的輸出結(jié)果是

A、14

B、10

C、15

D、9

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

知識(shí)點(diǎn)解析:函數(shù)fun為遞歸定義的函數(shù),當(dāng)調(diào)用

fun(5)-5+fun(4)T5+4+fun(3)T5+4+3+fUn(2)-5+4+3+2+fun(l),因此最后的結(jié)果

為15o

11、下列敘述中正確的是

A、關(guān)系模式可以沒有候選關(guān)鍵字

B、關(guān)系模式的候選關(guān)鍵字只能有1個(gè)

C、關(guān)系模式必須有2個(gè)以上的候選關(guān)鍵字

D、關(guān)系模式的候選關(guān)鍵字可以有1個(gè)或多個(gè)

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

知識(shí)點(diǎn)解析:關(guān)系的描述稱為關(guān)系模式(Relationschema),形式化地表示為:

R(U,D,dom,F)o其中R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為屈性

組U中屬性所來的域,dom為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集

合。關(guān)系模式的候選關(guān)鍵字可以有1個(gè)或多個(gè)。

12^以下程序的輸出結(jié)果是()。main(){unsignedchara=8,c;c=a>>3:

printf(''%d\n'',c);!

A、1

B、2

C、4

D、64

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

知識(shí)點(diǎn)解析:在程序中對(duì)無符號(hào)字符變量a的值執(zhí)行右移3位運(yùn)算后,相當(dāng)于a/

8,其值等于I,再賦給變量c。

13、以下選項(xiàng)中非法的C語言字符常量是

A、'9'

B、,\09,

C、'\x09'

D、'\x9d'

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

知識(shí)點(diǎn)解析:一個(gè)字符常量代表ASCII字符集中的一個(gè)字符,在程序中用單引號(hào)

把一個(gè)字符括起來。也可以為轉(zhuǎn)移字符,轉(zhuǎn)義字符又稱反斜線字符,這些字符常量

總是以一個(gè)反斜線開頭后跟一個(gè)特定的字符,用來代表某一個(gè)特定的ASCII字

符,這些字符常量也必須括在一對(duì)單引號(hào)內(nèi)。其中反斜線后的八進(jìn)制數(shù)可以不用0

開頭,但是不能有8和9字符出現(xiàn)。反斜線后的十六制數(shù)只可由小寫字母x開頭。

14、若有代數(shù)式M非+,|(其中e僅代表自然對(duì)數(shù)的底數(shù),不是變量),則以下能

夠正確表示該代數(shù)式的c語言表達(dá)式是

A、sqrt(fabs(pow(n,x)+pow(x,e)))

B、sqrt(abs(nAx+eAx))

C、sqrt(fabs(pow(n,x)+exp(x)))

D、sqrt(fabs(pow(x,n)+exp(x)))

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

知識(shí)點(diǎn)解析:n和e的x幕次方,要分別調(diào)用C語言的數(shù)學(xué)庫函數(shù)doublepow(n,

x)和doubleexp(x),因?yàn)檫@兩個(gè)函數(shù)的返回值都為double型,對(duì)其兩者的和計(jì)算絕

對(duì)值,調(diào)用庫函數(shù)doublefabs(pow(n,x)+exp(x)),求出和的絕對(duì)值,再調(diào)用開平

方函數(shù)doublesqrt(fabs(pow(n,x)+exp(x))),這樣汁算出的結(jié)果就是題干中算術(shù)表

達(dá)式的值。

15、有以下程序段intn,t=l,s=0;scanf(H%d",&n);do{s=s++;t=t-2;}

while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤筑入的數(shù)據(jù)應(yīng)該是

A、任意正奇數(shù)

B、任意負(fù)偶數(shù)

C、任意正偶數(shù)

D、任意負(fù)奇數(shù)

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

知識(shí)點(diǎn)解析:本題考查基本輸入和循環(huán)。程序代碼的功能是通過scanf給變量n賦

值,在do…while循環(huán)中,s變量自增,I變量每次減2,1的初值為1,循環(huán)執(zhí)行執(zhí)

行一次后t的值變成.1,然后是-3、-5…,直到t的值和n的值相同循環(huán)結(jié)束,從

t的值的變化可知,t是一個(gè)變化的負(fù)奇數(shù),囚此輸入的n如果是負(fù)奇數(shù),則循環(huán)能

退出,否則是死循環(huán)。

16、有以下程序(strepy為字符串復(fù)制函數(shù),strcat為字符串連接函數(shù))#includeV

stdio.h>#include<string.h>main(){chara[10]=,,abcn?b[10]="012n?

c[10]=nxyz";sircpy(a+1,b+2);puts(strcat(a,c+1));}程序運(yùn)行后的輸出結(jié)果是

A、bc2yz

B、a2yz

C、a!2xyz

D、12yz

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

知識(shí)點(diǎn)解析:程序執(zhí)行“sfrcpy(a+l,b+2)”后,字符數(shù)組a的值為“a2”,再進(jìn)行字符

串的連接“strcat(a,c+1)”,此時(shí)字符數(shù)組a的值為“a2vz”。

17、有以下程序intf(intx);main(){intn=1?m;m=f(f(f(n)));printf("%d\

n",m);)intf(intx){returnx*2;)程序運(yùn)行后的輸出結(jié)果是

A、1

B、2

C、4

D、8

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

知識(shí)點(diǎn)解析:程序考查了函數(shù)的調(diào)用。對(duì)于m=f(f(f(n)));首先計(jì)算最內(nèi)層的函數(shù)

調(diào)用f(n),執(zhí)行f函數(shù),得到返回值2,然后計(jì)算f(2),得到返回值為4,最后計(jì)算

f(4),得到計(jì)算結(jié)果為8。

18、有以下程序程ncludeVsidio.h>main()intf(intx,inty){inta=3,b=4,c=5,

d:{return((y-x)*x);}d=f(f(a,b),f(a,c));printf("%d\n",d);}程序運(yùn)行后

的輸出結(jié)果是

A、10

B、8

C、9

D、7

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

知識(shí)點(diǎn)解析:本題考查函數(shù)的嵌套調(diào)用。首先計(jì)算f(a,b)與f(a,c),f(a,b)=(b-

a)*a=3,f(a,c)=(c-a)*a=6>然后計(jì)算f(3,6)=(6-3)*3=9o

19、按照C語言規(guī)定的用戶標(biāo)識(shí)符命名規(guī)則,不能出現(xiàn)在標(biāo)識(shí)符中的是

A、連接符

B、大寫字母

C、數(shù)字字符

D、下劃線

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

知識(shí)點(diǎn)解析:在C語言中,合法標(biāo)識(shí)符的命令規(guī)則是:標(biāo)識(shí)符可以由字母、數(shù)字

或下劃線組成,并口笫一個(gè)字符必須為字母或下劃線。在C語言的標(biāo)識(shí)符中,大

寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符。選項(xiàng)A是連字符,不在C語言規(guī)定

的命名變量標(biāo)識(shí)符的范圍內(nèi)。

20、以下敘述中正確的是

A、打開一個(gè)已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

B、在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,才能

讀到第1個(gè)數(shù)據(jù)

C、C語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

D、當(dāng)對(duì)文件的讀(寫)操作完成之后.必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

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

知識(shí)點(diǎn)解析:在C語言中,有兩種對(duì)文件的存取方式;順序存取和直接存取;如

果以“a”的方式對(duì)一個(gè)已打開的文件進(jìn)行寫操作后,則原有文件中內(nèi)容將保存,新

的數(shù)據(jù)寫在原有內(nèi)容之后。如果以“a+”的方式為讀和寫而打開一個(gè)文件,則既可以

對(duì)文件進(jìn)行讀,也可以對(duì)文件進(jìn)行寫,而且在讀和寫操作之間不必關(guān)閉文件,可以

從頭開始讀。當(dāng)對(duì)文件的讀(寫)操作完成之后,必須將它關(guān)閉。

21、以下敘述中正確的是

A、用戶自己定義的函數(shù)只能調(diào)用庫函數(shù)

B、不同函數(shù)的形式參數(shù)不能使用相同名稱的標(biāo)識(shí)符

C、在C語言的函數(shù)內(nèi)部,可以定義局部嵌套函數(shù)

D、實(shí)用的C語言源程序總是由一個(gè)或多個(gè)函數(shù)組成

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

知識(shí)點(diǎn)解析:一個(gè)C語言源程序可以由一個(gè)或多個(gè)源文件組成,每個(gè)源文件可由一

個(gè)或多個(gè)函數(shù)組成,這些函數(shù)可以是自定義函數(shù),也可以是庫函數(shù),各個(gè)函數(shù)之間

沒有主從關(guān)系,不能嵌套定義函數(shù)。

22、若有定義語句:imk[2H3|,*pk[3];,則以下語句中正確的是

A、pk=k;

B、pk[0]=k[l][2];

C、pk=k[O];

D、pk[l]=k;

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

知識(shí)點(diǎn)解析:本題考查多維數(shù)組和數(shù)組指針。k是一個(gè)二維數(shù)組,pk是一個(gè)指針數(shù)

組,該數(shù)組有3個(gè)元素,每個(gè)元素都是一個(gè)指向整型對(duì)象的指針。選項(xiàng)A)錯(cuò)誤,

等號(hào)的左邊是一個(gè)數(shù)組地址,不是變量;選頸B)是把元素賦值給pk[O]:選

項(xiàng)C)中等號(hào)左邊不是變量;選項(xiàng)D)類型不匹配,pk[l]是指向一個(gè)整型對(duì)象,而

k是一個(gè)二維數(shù)組首地址。

23、有以下程序#includcmain(){inta=7;while(a-);printf("%d\n",a);}程序運(yùn)

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

A、0

B、1

C、-1

D、7

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

知識(shí)點(diǎn)解析:在while語句中,先判斷while后面的表達(dá)式是否為0,如果為0,則

退出循環(huán),否則執(zhí)行循環(huán)體。在本題中,當(dāng)變量a的值經(jīng)過幾次循環(huán)后,其值等于

0時(shí)?,退出while循環(huán)語句,變量a再執(zhí)行自減運(yùn)算,所以其值等于-1。

24、以下敘述中正確的是

A、函數(shù)調(diào)用“strlen(s);”會(huì)返回字符串s實(shí)際占用內(nèi)存的大小(以字節(jié)為單位)

B、兩個(gè)字符串可以用關(guān)系運(yùn)算符進(jìn)行大小比較

C、當(dāng)拼接兩個(gè)字符串時(shí),結(jié)果字符串占用的內(nèi)存空間是兩個(gè)原串占用空間的和

D、C語言本身沒有提供對(duì)字符串進(jìn)行整體操作的運(yùn)算符

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

知識(shí)點(diǎn)解析:C語言中沒有運(yùn)算符可以處理字符串.耍調(diào)用"string”庫中的函數(shù)來

處理字符串,其中strlen函數(shù)主要測(cè)試字符串中實(shí)際字符的個(gè)數(shù),比實(shí)際占用的內(nèi)

存至2要少一個(gè)。Strcat(sl,s2)函數(shù)用于連接兩個(gè)字符串,是把字符串s2連接到

si的后面。

25、在C語言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是()。

A、auto和static

B、extern和register

C^autoregister

D、static和register

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

知識(shí)點(diǎn)解析:auto:函數(shù)中的局部變量,動(dòng)態(tài)地分配存儲(chǔ)空間,數(shù)據(jù)存儲(chǔ)在動(dòng)態(tài)存

儲(chǔ)區(qū)中,在調(diào)用該函數(shù)時(shí)系統(tǒng)會(huì)給它們分配存儲(chǔ)空間,在函數(shù)調(diào)用結(jié)束時(shí)就自動(dòng)釋

放這些存儲(chǔ)空間。register:為了提高效率,C語言允許將局部變量的值放在CPU

中的寄存器中,這種變量叫“寄存器變量”,只有局部自動(dòng)變量和形式參數(shù)可以作為

寄存器變量。extern:外部變量(即全局變量)是在函數(shù)的外部定義的,它的作用域

為從變量定義處開始,到本程序文件的末尾。如果外部變量不在文件的開頭定義,

其有效的作用范圍只限于定義處到文件終了。static:靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)

類別,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元。在程序整個(gè)運(yùn)行期間都不釋放。

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

卷第3套

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

1、若有說明:typedefstruct(inta;chare;}w;則以下敘述正確的是()。

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

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

C、編譯后系統(tǒng)為w分配58個(gè)字節(jié)

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

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

知識(shí)點(diǎn)解析:w是一個(gè)自定義類型,而不是變量,放編譯后系統(tǒng)不為w分配存儲(chǔ)

空間C當(dāng)使用w定義變量時(shí)才會(huì)為其定義的變量分配存儲(chǔ)空間C

2、設(shè)某二叉樹的后序序列為CBA,中序序列為ABC,則該二叉樹的前序序列為

A、BCA

B、CBA

C、ABC

D、CAB

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

知識(shí)點(diǎn)解析:二叉樹的前序遍歷順序?yàn)槭紫仍L問根結(jié)點(diǎn),再依次訪問左結(jié)點(diǎn)和右結(jié)

點(diǎn)。中序遍歷的順序?yàn)槭紫仍L問左結(jié)點(diǎn),然后依次訪問根結(jié)點(diǎn)和右結(jié)點(diǎn)。后序遍歷

首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn)。根據(jù)后序可以很快確定根結(jié)

點(diǎn),然后可以查看根在中序中位汽,將中序分為左右兩部分,左邊和右邊兩顆樹,

在按照上述方式遞推出確定左子樹的根和右子樹。本題根據(jù)后序,可以確定A為

根結(jié)點(diǎn);根據(jù)B在中序中的位置,可以確定A沒有左子樹,BC為A的右子樹,C

為B的右子樹。本題的具體二叉樹如下:回因此,這棵二叉樹的前序是

ABC,選項(xiàng)C正確。

3、對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為

A、log2n

B、n/2

C、n

D、n+1

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

知識(shí)點(diǎn)解析:在進(jìn)行順序查找過程中,如果被杳的元素是線性表中的最后一個(gè)元

素,或者被查元素根本不在線性表中,則為了查找這個(gè)元素需要與線性表中的所有

元素進(jìn)行比較,這是順序查找的最壞情況,需要比較的次數(shù)為n次。

4、以下選項(xiàng)中,值為1的表達(dá)式是

A、1一,0'

B、T-0

C^1八0'

D、,\0,-,0,

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

知識(shí)點(diǎn)解析:在C程序中,字符量可參與任何整數(shù)運(yùn)算。字符參與運(yùn)算時(shí),首先

要將字符轉(zhuǎn)換為其對(duì)應(yīng)的ASCII碼值再參與整數(shù)運(yùn)算。字符T對(duì)應(yīng)的ASCII碼值

是49,字符,(T對(duì)應(yīng)的ASCII碼值是48,字符、(T是字符串結(jié)束標(biāo)識(shí)符NULL,其

對(duì)應(yīng)的ASCH碼值是0。

5、數(shù)據(jù)庫系統(tǒng)的核心是()。

A、數(shù)據(jù)模型

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

C、數(shù)據(jù)庫

D、數(shù)據(jù)庫管理員

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

知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)(DBMS)是數(shù)據(jù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)

數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。所以,數(shù)

據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。

6、下列排序法中,每經(jīng)過一次元素的交換會(huì)產(chǎn)生新的逆序的是

A、快速排序

B、冒泡排序

C、簡(jiǎn)單插入排序

D、簡(jiǎn)單選擇排序

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

知識(shí)點(diǎn)解析:冒泡排序只交換相鄰元素,但不是每次移動(dòng)都產(chǎn)生新的逆序。簡(jiǎn)單插

入排序的元素移動(dòng)不會(huì)產(chǎn)生新的逆序。快速排序每一次交換移動(dòng)都會(huì)產(chǎn)生新的逆

序,因?yàn)楫?dāng)不會(huì)有新的逆序產(chǎn)生時(shí),本輪比較結(jié)束。故選項(xiàng)A正確。

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

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

B、必須是正數(shù)

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

D、必須是邏輯值

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

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

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

8、若在定義語句:inta,b,c,*p=&c;接著執(zhí)行以下選項(xiàng)中的語句,則能正確

執(zhí)行的語句是

A、scanf("%d%d%dn,a,b,c);

B、scanf("%d”,a,b,c);

C、scanf("%dM,p);

D,scanf("%d",&p);

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

知識(shí)點(diǎn)解析:程序語句inia,b,c,*p=&c;定義了三個(gè)整型變量a,b,c,和一

個(gè)整型指針變量p,并且把變量c的地址賦給p。scanf函數(shù)的一般形式為

“scanf(“格式控制字符串”,地址列表廣,其中的地址列表應(yīng)當(dāng)是存放輸入數(shù)據(jù)變量

的地址。

9、有以下程序:#include#defineS(x)x*xvoidmain(){intk-5>j=2;prinfff'%

d,%d\n”,S(k+j+2),S(+k+2));}程序的運(yùn)行結(jié)果是()。

A、21.18

B、81,81

C、21,21

D、18.18

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

知識(shí)點(diǎn)解析:帶參數(shù)的宏的調(diào)用格式:宏名(實(shí)參表),替換過程是:用宏調(diào)用/供

的實(shí)參字符串,直接替爽宏定義命令行中相應(yīng)形參字符串,非形參字符保持不變。

S(k+j+2)被s換成k+j+2*k+j+2,計(jì)算時(shí)先計(jì)算2:I:k,結(jié)果為21:s(j+k+2)被s

換成j+k+2*j+k+2,計(jì)算時(shí)先計(jì)算2冰j,結(jié)果為18。程序的運(yùn)行結(jié)果是21,18。

10、十進(jìn)制整數(shù)設(shè)為整數(shù)類I,則下面屬于類I的實(shí)例的是

A、一518

B、0.518

C、518E-2

D、.518

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

知識(shí)點(diǎn)解析:整數(shù)的全體構(gòu)成整數(shù)集,整數(shù)集是一個(gè)數(shù)環(huán)。在整數(shù)系中,零和正整

數(shù)統(tǒng)稱為自然數(shù)。一1、一2、-3........—n、…(n為非零自然數(shù))為負(fù)整數(shù)。則正

整數(shù)、零與負(fù)整數(shù)構(gòu)成整數(shù)系。整數(shù)不包括小數(shù)、分?jǐn)?shù)。本題中,選項(xiàng)A是正確

的,選項(xiàng)B是小數(shù),選項(xiàng)C是科學(xué)計(jì)數(shù),也是小數(shù),選項(xiàng)D是小數(shù)。

11、軟件生命周期是指()。

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

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

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

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

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

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

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

為止的整個(gè)時(shí)期都屬于軟件生命周期。

12、以下錯(cuò)誤的定義語句是

A>intx[4][3]={{l,2,3),{1,2,3),{1,2,3},{1,2,3}};

B,intx[][3]={{0},⑴,{1,2,3)):

C>intx[||3|={l,2,3,4};

D、intx[4砌;{{1,2,3),{1,2,3},{1,2,3),{1,2,3)};

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

知識(shí)點(diǎn)解析:一維數(shù)組定義和初始化是允許省略行下標(biāo),不允許省略列下標(biāo)。

13、設(shè)intx=O,*p;下列賦值語句正確的是()。

A、*p=x;

B、p=NULL;

C、p=x;

D、*p=NULL:

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

知識(shí)點(diǎn)解析:定義指針變量時(shí),必須將指針變量初始化為NULL(為空),否則,如

果不賦給它地址,系統(tǒng)會(huì)隨機(jī)給它分配一個(gè)地址.以致出現(xiàn)錯(cuò)誤的運(yùn)算結(jié)果。

14、下列敘述中正確的是()<,

A、循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

B、循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)

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

D、循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)

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

知識(shí)點(diǎn)解析:在實(shí)際應(yīng)用中,隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)一般采用循環(huán)隊(duì)列的形式。

15、關(guān)于結(jié)構(gòu)體函數(shù)的敘述中正確的是()。

A、即使是同類型的結(jié)構(gòu)體變量。也不能進(jìn)行整體賦值

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

C、結(jié)構(gòu)體變量的地址不能作為實(shí)參傳給函數(shù)

D、結(jié)構(gòu)體中可以含有指向本結(jié)構(gòu)體的指針成員

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

知識(shí)點(diǎn)解析:C語言中的結(jié)構(gòu)體變量包含若干成員,這些成員可以是所有變量類

型,甚至可以是正在定義的結(jié)構(gòu)體類型指針。用結(jié)構(gòu)體變量作實(shí)參時(shí),取的是“值

傳遞”的方式,將結(jié)構(gòu)體變量所占的內(nèi)存單元的內(nèi)容全部順序傳遞給形參。形參也

必須是同類型的結(jié)構(gòu)體變量。結(jié)構(gòu)體數(shù)組作為參數(shù)時(shí),采取了“地址傳遞''的方式,

形參須為同類型的結(jié)構(gòu)由針或者形參結(jié)構(gòu)數(shù)組。

16、以下敘述中正確的是

A、當(dāng)用scanf從鍵盤輸入數(shù)據(jù)時(shí),每行數(shù)據(jù)在沒按下回車鍵(Enter鍵)前,可以任

意修改

B、花括號(hào)對(duì){}只能用來表示函數(shù)的開頭和結(jié)尾,不能用于其他目的

C、空語句就是指程序中的空行

D、復(fù)合語句在語法上包含多條語句,其中不能定義局部變量

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

知識(shí)點(diǎn)解析:當(dāng)使用scanf函數(shù)從鍵盤輸入數(shù)據(jù)時(shí),每行數(shù)據(jù)在未按F回車鍵之

前,可以任意修改。但按下回車鍵后,scanf函數(shù)即接受了這一行數(shù)據(jù),不能再修

改。選項(xiàng)A正確,對(duì)于選項(xiàng)B,{}還可以表明復(fù)合語句的開頭結(jié)尾,或者循環(huán)體

的開頭結(jié)尾等,選項(xiàng)B錯(cuò)誤,而空語句為;,不是空行,選項(xiàng)C錯(cuò)誤,在復(fù)合語

句中可以定義變量為局部變量,選項(xiàng)D錯(cuò)誤。

17>以下程序的輸出結(jié)果是()。#includemain(){inta=2,b;b=a<<2:

printf(,,%d\n",b);}

A、2

R、4

C、8

D、16

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

知識(shí)點(diǎn)解析:表達(dá)式aVV2,把a(bǔ)向左移動(dòng)2位,相當(dāng)于擴(kuò)大4倍。即2x2倍。

18、有以下程序#inckide#includevoidfun(chars口[10],intn){chart;intij;

for(i=0;is|j][O]){t=s[i][O];s[i][O]=s[j][O];s[j][O]=t;}}main(){char

ss[5][10|={”bcc”,“bbcc“,“xy”Jaaaacc","aabcc"};fun(ss,5);primf("%s,%s\

n%ss[0],ss[4]);}程序的運(yùn)行結(jié)果是

A、aaaacc,xy

B、bcc,aabcc

C、xy,aaaacc

D、aabcc,bcc

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

知識(shí)點(diǎn)解析:函數(shù)fun(chars[][10],intn)通過兩重for循環(huán)語句,比較二維字符數(shù)

組s口[10]的每個(gè)字符串的首字符大小,如果前一個(gè)字符串首字符大于后一個(gè)字符串

的首字符,則交換這兩個(gè)字符串的首字符。在主函數(shù)中,語句fun(ss,5)的作用是

對(duì)二維字符數(shù)組ss[5][10]的5個(gè)字符串的首字符進(jìn)行從小到大的排序,不影響各個(gè)

字符串另外的字符。所以排序結(jié)束后,5個(gè)字符串的第一個(gè)字符依次變?yōu)閍、a、

b、b和x:最后輸出第1個(gè)和第4個(gè)字符串。

19、以下敘述中錯(cuò)誤的是

A、可以用typedef將已存在的類型用一個(gè)新的名字來代表

B、可以通過typedef增加新的類型

C、用typedef定義新的類型名后,原有類型名仍有效

D、用typedef可以為各種類型起別名,但不能為變量起別名

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

知識(shí)點(diǎn)解析:C語言允許用lypedef說明一利新類型名。lypedef類型名標(biāo)識(shí)符:

其中“類型名”必須是在比語句之前己定義的類型標(biāo)識(shí)符;“標(biāo)識(shí)符”是一個(gè)用戶定義

標(biāo)識(shí)符,用作新的類型名;lypedef語句的作用僅僅是用“標(biāo)識(shí)符”來代表已存在的

“類型名”,并未產(chǎn)生新的數(shù)據(jù)類型,原有類型名依然有效。

20,用樹型結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型是

A、層次模型

B、關(guān)系模型

C、網(wǎng)狀模型

D、運(yùn)算模型

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

知識(shí)點(diǎn)解析:層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),這種結(jié)構(gòu)方式在現(xiàn)實(shí)世界中很普

遍,它們自頂向下、層次分明。

21、有以下程序structS{ima,b;)data[2]={10,100,20,200);

main(){structSp=data[l];printf("%dkn”,++(p.a));}程序運(yùn)行后的輸出結(jié)果是

A、11

B、20

C、21

D、10

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

知識(shí)點(diǎn)解析:在題目中定義了結(jié)構(gòu)體s類型的數(shù)組變量data,并對(duì)其賦初值。在程

序中定義了指向結(jié)構(gòu)體s類型的變量p,并把數(shù)組data的第二個(gè)元素data[11的值賦

給它,所以此時(shí)成員變量p.a的值等于20,在輸出時(shí)分別加1,所以輸入結(jié)臭為

選項(xiàng)Ao

22、下列函數(shù)的功能是voidfun(char*a,char*b){whi1e((*b=*a)!=,\(T){a++;

b++;}}

A、使指針b指向a所指字符串

B、將a所指字符串和b所指字符串進(jìn)行比較

C、將a所指字符串賦給b所指空間

D、檢查a和b所指字符串中是否有

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

知識(shí)點(diǎn)解析:在while語句的條件中是把字符*a的值賦給字符*b,然后再判斷字符

*b的值是否等于字符串的結(jié)束字符當(dāng)不等于結(jié)束字符(,\(T)時(shí),把字符指

針變量a,b分別加1,指它們的下一個(gè)字符,直到字符串a(chǎn)的結(jié)束。這樣程序執(zhí)

行的結(jié)果就是把字符串a(chǎn)賦給了b所指的存儲(chǔ)空間。

23、已定義以下函數(shù)inifun(int*p){rcturn*p;}fun函數(shù)返回值是

A、不確定的值

B、一個(gè)整數(shù)

C、形參p中存放的值

D、形參p的地址值

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

知識(shí)點(diǎn)解析:由函數(shù)intfun(int*p){relum*p}的定義可知,返回值為整型指針變量p

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

24、若有以下函數(shù)首部intfun(doublex[10],intn)則下面針對(duì)此函數(shù)的函數(shù)聲明語

句中正確的是

A^intfun(double,int);

B、intfun(double*x,intn);

C、intfun(double*,int*);

D、intfun(doublex,int*n);

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

知識(shí)點(diǎn)解析:函數(shù)說明的一般形式為:類型名函數(shù)名(參數(shù)類型I,參數(shù)類型

2,……)o因?yàn)楹瘮?shù)inlfun(doublex[IO],in1*n)的第1個(gè)形式參數(shù)是一個(gè)雙精度型

的一維數(shù)組.第2個(gè)參數(shù)是一個(gè)整型指針,并返I對(duì)一個(gè)整型值°一維數(shù)組的名字表

示的是一維數(shù)組的地址。

25有以下函數(shù)intfun(char*x,char*y){intn=0:while((*x=*y)&&*x!=,\

O'){x++;y++;n++;)returnn;)函數(shù)的功能是

A、查找x和Y所指字符串中是否有、(T

B、統(tǒng)計(jì)X和Y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)

C、將v所指字符串賦給x所指存儲(chǔ)空間

D、統(tǒng)計(jì)X和Y所指字符串中相同的字符個(gè)數(shù)

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

知識(shí)點(diǎn)解析:在while循環(huán)中的判斷表達(dá)式為(*乂=*丫)&&**!=,\0"所以只要字符

串x與y的當(dāng)前字符不相等時(shí),循環(huán)就結(jié)束。

26、有以下程序fun(intx,inly)main。{staticinim=0,i=2;{intj=Lm=l,k;

i+=m+1;m=i+x+y;returnm;k=fun(j,m);printf("%d,",k);)k=fun(j,m):

printfC%d\nn,k);}執(zhí)行后的輸出結(jié)果是

A、5,5

B、5,11

C、11,11

D、11,5

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

知識(shí)點(diǎn)解析:子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第

1次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第1次函數(shù)調(diào)用結(jié)束時(shí),

它們的值不釋放保持不變,所以第2次調(diào)用時(shí),局部靜態(tài)變量m和i的初始值分別

為5和3,即在執(zhí)行“i+=m+l”時(shí),i的值為9,因此坡終m的值為11。

27、下面選項(xiàng)中的程序段,沒有編譯錯(cuò)誤的是

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

B、char*sp,s|10];s="Hello";

C^charstrl[10]="computer",str2[10];str2=strl;

D、charmark[l];mark二"PROGRAM”;

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

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

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

28、有以下程序#includcvoidfun(char*c,intd{*c=*c+l;d=d+1;printf(1%

c,%c,",*c,d);)main(){charb=,a\a='A';fun(&b,a);printf("%c,%c

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

A、b,B,b,A

B、b,B,B,A

C、a.R.R.a

D、a,B,a,B

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

知識(shí)點(diǎn)解析:本題中fun函數(shù)的參數(shù)傳遞方式,形參c是傳地址,形參d是傳值,

所以在主函數(shù)中,執(zhí)行fun時(shí),把變量b的地址傳給了c,把a(bǔ)的值傳遞給了d,

經(jīng)過運(yùn)算,輸出的值為b,Bo在主函數(shù)的輸出語句中,輸出變量b的值為b,變

量a的值為A。

29、下面結(jié)構(gòu)體的定義語句中,錯(cuò)誤的是

A、structord{intx;inty;intz;);structorda;

B、structord{intx:inty;intz;)structorda;

C、structord{intx;inty;intz;}a;

D、struct{intx;inty;intz;)a;

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

知識(shí)點(diǎn)解析:在選項(xiàng)B)中,由于在定義完結(jié)構(gòu)體后缺少分號(hào)“;”,所以這是一條

不完整的語句,因而是錯(cuò)誤的。

30、有三個(gè)關(guān)系R、S和T如下:區(qū)則由關(guān)系R和S得到關(guān)系T的操作是

A、自然連接

B、交

C、投影

D、并

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

知識(shí)點(diǎn)解析:關(guān)系R和關(guān)系S有公共域,關(guān)系T是通過公共域的等值進(jìn)行連接的

結(jié)果,符合自然連接,選A。

31、有以下程序#includemain(){charc[2][5]={"6938";,8254n},*p[2];intij,s=0;

for(i=0;i<2;i++)p[i]=c[i];for(i=0;i<2;i++)for(j=0;p[i][j]>0;j+=2)

s=10*s+p[i皿?'0';printfT%d\n”,s);}程序運(yùn)行后的輸出結(jié)果是()。

A、6385

B、9824

C、6982

D、9284

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

知識(shí)點(diǎn)解析:第一個(gè)f。「循環(huán)將數(shù)組中每個(gè)字符串的首地址賦值給了指針數(shù)組p的

元素,所以與等價(jià)。第二個(gè)嵌套for循環(huán)中外層循環(huán)i從0到1,內(nèi)層

循環(huán)j為偶數(shù)且從0遞增,語句“s=10*s+p[i][j]-?0?「用一個(gè)整數(shù)s記錄數(shù)組c中列

下標(biāo)為偶數(shù)的所有數(shù)字,并按照其先后順序放置于整數(shù)s的不同位上,所以計(jì)算得

到的結(jié)果為6385,答案選A。

32、若有以下程序#include<stdio.h>intk=7,m=5;voidf(int**s){int*t=&k;s=&t;

*s=&m;printf("%cl,%d,%d,",k,*t,**s);)main(){inti=3,*p=&i,**

溫馨提示

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

評(píng)論

0/150

提交評(píng)論