二級C語言筆試-58-真題(含答案與解析)-交互_第1頁
二級C語言筆試-58-真題(含答案與解析)-交互_第2頁
二級C語言筆試-58-真題(含答案與解析)-交互_第3頁
二級C語言筆試-58-真題(含答案與解析)-交互_第4頁
二級C語言筆試-58-真題(含答案與解析)-交互_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

二級C語言筆試-58(總分100,做題時(shí)間90分鐘)一、選擇題1.

下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?

)。A

多態(tài)性B

繼承C

封裝性D

模塊化

分值:2答案:D[解析]面向?qū)ο笤O(shè)計(jì)方法與面向過程設(shè)計(jì)方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題.其特點(diǎn)包括:分類性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)。2.

表示關(guān)系a≤b≤c的C語言表達(dá)式為(

)。A

(a<=b)&&(b<=c)B

(a<=b)and(b<=c)C

(a<=b<=c)D

(a<=b)&(b<=

分值:2答案:A[解析]本題考查邏輯與運(yùn)算符&&。在C語言中使用運(yùn)算符“&&”連接兩個(gè)表達(dá)式,也可以表示邏輯與運(yùn)算符。在C語言中不允許出現(xiàn)a<=b<=c這種格式。3.

若a、b、c、d都是int型變量且都已經(jīng)正確賦初值,則下列不正確的賦值語句是(

)A

a+d;B

a++;C

a=b=c=d=100;D

a=(b=3)+(d=5);

分值:2答案:A[解析]C語言規(guī)定,賦值號的右邊可以是一個(gè)賦值表達(dá)式,因此選項(xiàng)C)、選項(xiàng)D)正確;在選項(xiàng)B)中,a++是一個(gè)自加1的表達(dá)式,a被重新賦值,因此它是一個(gè)合法的賦值表達(dá)式:選項(xiàng)A)中,a+d是一個(gè)算術(shù)表達(dá)式,雖然最后有一個(gè)分號,但這個(gè)表達(dá)式中沒有賦值操作,因此它不是一條賦值語句。4.

下列敘述中不正確的是(

)。A

在C語言中調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參B

在C的函數(shù)中,最好使用全局變量C

外部變量可以在函數(shù)之間傳遞數(shù)據(jù)D

自動變量實(shí)質(zhì)上是一個(gè)函數(shù)內(nèi)部的局部變量

分值:2答案:B[解析]編譯時(shí),編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運(yùn)行中,當(dāng)局部變量所在的函數(shù)被調(diào)用時(shí),編譯系統(tǒng)根據(jù)需要要臨時(shí)分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運(yùn)行的自始至終都占用固定的單元。在考慮內(nèi)存不定的情況下,最好使用全局變量。5.

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

)。A

1-'0'B

1-'\0'C

'1'-0D

'\0'-'0'

分值:2答案:B[解析]在C程序中,字符量可參與任何整數(shù)運(yùn)算。字符參與運(yùn)算時(shí),首先要將字符轉(zhuǎn)換為對應(yīng)的ASCII碼值再參與整數(shù)運(yùn)算。字符'1'對應(yīng)的ASCII碼值是49,字符'0'對應(yīng)的ASCII碼值是48,字符'\0'是字符串結(jié)束標(biāo)識符NULL,其對應(yīng)的ASCII碼值是0。6.

定義下列結(jié)構(gòu)體(聯(lián)合)數(shù)組:

structst

charname[15];

intage;

a[10]="ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17;

執(zhí)行語句printf["%d,%c",a[2].age,*(a[3].name+2))的輸出結(jié)果為(

)。A

15,AB

16,HC

16,AD

17,H

分值:2答案:C[解析]本題主要考查結(jié)構(gòu)體數(shù)組。a[2].age為結(jié)構(gòu)體a[2]的age成員,即160a[3].name為指向結(jié)構(gòu)體a[3]的name成員的第一個(gè)元素的指針,即指向“Z”,(a[3].name+2)將指針后移兩位指向第三個(gè)元素“A”,*(a[3]).name+2))是取指針?biāo)赶虻刂返膬?nèi)容。7.

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

)。

main()

intx=1,y=3,a=0;

while(x++!=(y-=1))

a+=1;

if(y<x)break;

printf("%d,%d,%d\n",x,y,A

;

A)

分值:2答案:D[解析]本題考查while循環(huán)。第一次循環(huán),先拿x的值和(y-1)比較,此時(shí)x=1,y-1-2,循環(huán)條件成立,比較完將x的值加1,此時(shí)x=2,進(jìn)入循環(huán),a-a+1=1,判斷if語句的控制條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二欲循環(huán),先拿x的值和(y-1)比較,此時(shí)x-2,y-1=1,循環(huán)條件成立,比較完將x的值加1,此時(shí)x=3,進(jìn)入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<x成立,執(zhí)行break語句退出循環(huán)。8.

有下列程序:

main()

intx=5;

do

printf("%d",x-=4);

while(!(--x));

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

)。A

1B

20C

14D

死循環(huán)

分值:2答案:C[解析]本題考查do…while循環(huán)。①執(zhí)行printf語句,x=x-41,輸出1,判斷while循環(huán)的控制條件,--x=0,則(!(--x))非零,循環(huán)條件成立,執(zhí)行下一次循環(huán);②執(zhí)行printf語句,x=x-4=-4,輸出-4,判斷while循環(huán)的控制條件,--x=-5,則(!(--x))為零,循環(huán)條件不成立,結(jié)束循環(huán)。9.

在C語言中,下列關(guān)于文件操作的敘述正確的是(

)。A

對文件操作必須先關(guān)閉文件B

對文件操作必須先打開文件C

對文件操作順序沒有統(tǒng)一規(guī)定D

以上全錯

分值:2答案:B[解析]本題考查對文件的操作。文件打開后才可以對文件進(jìn)行操作,使用結(jié)束后要關(guān)閉文件。對文件的操作都是順序讀寫,即從文件的第一個(gè)數(shù)據(jù)開始,依次進(jìn)行讀寫。10.

執(zhí)行語句printf("%u\n",+12345)的輸出結(jié)果是(

)。A

12345B

0C

-1D

非定值

分值:2答案:A[解析]“%u”表示輸出無符號的整數(shù)(注意:如果輸出值前有符號,將自動轉(zhuǎn)化為相應(yīng)的無符號數(shù)輸出)。11.

有以下程序:

#include<stdio.h>

main()

inta=6,b=7,m=1;

switch(a%2)

case0:m++;break;

case1:m++;

switch(b%2)

defaut:m++;

case0:m++;break;

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

A

1B

2C

3D

4

分值:1答案:B[解析]本題考查swish語句。第一個(gè)switch語句,因?yàn)閍=6,a%2=0,所以執(zhí)行case0,將m加1,遇到break語句跳出switch語句,結(jié)束循環(huán)。12.

有下列程序:

fun(intx)

intp;

if(x==0‖x==1)return(3);

p=x-fun(x-2);

returnp;

main()

printf("%d\n",fun(7));

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

)。A

7B

3C

2D

.0

分值:1答案:C[解析]因?yàn)樵诤瘮?shù)fun(intx)中,如果參數(shù)x等于0或1時(shí),返回值3。否則p=x-fun(x-2)這是一個(gè)遞歸函數(shù),所以在主函數(shù)調(diào)用fun(7)時(shí),其過程為:

"fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1)))=7-(5-(3-3))=7-5=2",所以最后的輸出結(jié)果為2。13.

利用fseek函數(shù)可實(shí)現(xiàn)的操作是(

)。A

實(shí)現(xiàn)文件的順序讀寫B(tài)

改變文件的位置指針C

實(shí)現(xiàn)文件的隨機(jī)讀寫D

以上答案均正確

分值:1答案:D[解析]改變文件位置指針函數(shù)fseek()的功能是:①改變文件的位置指針;②輔助實(shí)現(xiàn)文件的順序讀寫;③輔助實(shí)現(xiàn)文件的隨機(jī)讀寫。14.

有下列二叉樹,對此二叉樹中序遍歷的結(jié)果為(

)。

A

B

C

D

分值:1答案:B[解析]對二叉樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。在遍歷左、右子樹時(shí),注意依舊按照“左子樹—根結(jié)點(diǎn)—右于樹”的順序。本題的遍歷順序是這樣的;

①首先訪問左子樹:BDEY;②在左子樹BDEY中,也按中序遍歷,先訪問左于樹DY;在左子樹DY中,也按中序遍歷,先訪問左子樹,左子樹沒有,則訪問根結(jié)點(diǎn)D,然后訪問右子樹Y;③接著訪問根B,再訪問右子樹E;④訪問左子樹BDEY后,接著訪問根結(jié)點(diǎn)A,接著訪問右于樹CFXZ:⑤右子樹CFXZ的訪問順序同理可得:FCZX。15.

若有定義:"inta[2][3];"則對a數(shù)組的第i行第j列無素的正確引用為(

)。A

*(*(a+i)+j)B

(a+i)[j]C

*(a+i+j)D

*(a+i)+j

分值:1答案:A[解析]本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:

①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。16.

若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是(

)。

Structstu

inti;

intname;

st,*p;

p=&st;A

st.iB

*p.iC

(*p).iD

p->i

分值:1答案:B[解析]本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.1,也可以用等價(jià)的指針形式,即(*p).i和p->i。17.

下列關(guān)于棧的描述中錯誤的是(

)。A

棧是先進(jìn)先出的線性表B

棧只能順序存儲C

棧具有記憶作用D

對棧的插入與刪除操作中,不需要改變棧底指針

分值:1答案:B[解析]棧是限定只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都是在棧頂進(jìn)行,它們的操作特點(diǎn)是先進(jìn)后出,因此具有記憶作用。??梢圆捎庙樞虼鎯?,也可以采用鏈?zhǔn)酱鎯Α?8.

下列敘述中錯誤的是(

)。A

一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)B

數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率無關(guān)C

數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)D

數(shù)據(jù)的存儲結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的

分值:1答案:B[解析]數(shù)據(jù)的存儲結(jié)構(gòu)分為順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu),一個(gè)數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)。順序結(jié)構(gòu)中數(shù)據(jù)元素所占的存儲空間是連續(xù)的,而鏈?zhǔn)酱鎯Y(jié)構(gòu)中,數(shù)據(jù)元素所占的存儲空間不一定是連續(xù)的。數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)。19.

下列敘述中錯誤的是(

)。A

線性表是由n個(gè)元素組成的一個(gè)有限序列B

線性表是一種線性結(jié)構(gòu)C

線性表的所有結(jié)點(diǎn)有且僅有一個(gè)前件和后件D

線性表可以是空表

分值:1答案:C[解析]線性表是一種線性結(jié)構(gòu),由n(n≥0)個(gè)元素組成,所以線性表可以是空表。但是在線性表中,第一個(gè)結(jié)點(diǎn)沒有前件,最后一個(gè)結(jié)點(diǎn)沒有后件,其他結(jié)點(diǎn)有且只有一個(gè)前件和后件,所以選項(xiàng)C)是錯誤的。20.

下列選項(xiàng)中不會引起二義性的宏定義是(

)。A

#defineS(x)X*XB

#defineS(x)(x)*(x)C

#defineS(x)(x*x)D

#defineS(x)((x)*(x))

分值:1答案:D[解析]本題考查帶參數(shù)的宏的替換。有些參數(shù)表達(dá)式必須加括號,否則,在實(shí)參表達(dá)式替換時(shí),會出現(xiàn)錯誤。21.

若有"doublea;",則正確的輸入語句是(

)。A

scanf("%1f",a);B

scanf("%f",&a);C

scanf("%1f",&a)D

scanf("%1e",&a);

分值:2答案:D[解析]函數(shù)scanf()的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項(xiàng)地址表”是要輸入的變量的地址。

本題中定義變量a為雙精度型變量,雙精度變量的格式符為“1e”;變量的地址用取地址符“&”加變量名表示,如變量a的地址為“&a”。22.

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

)。

#include<stdio.h>

main()

inta=4;

printf("%d\n",(a+=a-=a*A

);

&nbs

分值:2答案:D[解析]表達(dá)式a+=a-=a*a看起來復(fù)雜,其實(shí)將它分成兩個(gè)表達(dá)式來計(jì)算就簡單了:①第一個(gè)表達(dá)式(a-=a*a)=(a-a-a*a=-2):②第二個(gè)表達(dá)式(a+=a-=a*a)=(a=a+a=-24)。23.

有下列程序:

#include<stdio.h>

main()

charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

程序運(yùn)行后,若從鍵盤輸入(從第1列開始)

123<CR>

45678<CR>

則輸出結(jié)果是(

)。A

1267B

1256C

1278D

1245

分值:2答案:D[解析]當(dāng)用scanf函數(shù)從鍵盤愉入數(shù)據(jù)時(shí),每行數(shù)據(jù)的末尾按下回車鍵(Enter鍵)之前,可以任意修改。但按下回車鍵putchar(c1)(Enter鍵)之后,scanf函數(shù)即接受了這一行數(shù)據(jù),不能再回去修改。所以本題中,當(dāng)輸入123<CR>時(shí),變量c1、c2、c3的值分別為1、2、3,當(dāng)輸入45678<CR>時(shí),變量c5、c6的值4和5。所以用輸出函數(shù)putchar(c1)輸出1,putchar(c2)輸出2,printf("%c%c\n,c5,c6)輸出45。所以選項(xiàng)D)為正確答案。24.

若有運(yùn)算符:>、*=、<<、%、sizeof,則它們按優(yōu)先級(由低至高)的正確排列次序?yàn)?

)。A

*=<<

%

sizeofB

<<

*=

%

sizeofC

%=

<<

sizeof

%D

*=

<<

%

sizeof

分值:2答案:D[解析]本題主要考查算術(shù)運(yùn)算的優(yōu)先級。順序如下;

*=、>、<<、%、sizeof的優(yōu)先級依次遞增。25.

下列不屬于軟件工程的3個(gè)要素的是(

)。A

工具B

過程C

方法D

環(huán)境

分值:2答案:D[解析]軟件工程包括3個(gè)要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制、管理。26.

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

)。

#include<stdio.h>

intfun(intx)

intp;

if(x==0‖x==1)

return3;

else

p=x-fun(x-2);

returnp;

voidmain()

printf("\n%d",fun(5));

A

5B

3C

7D

1

分值:2答案:A[解析]本題考查函數(shù)的遞歸調(diào)用。在函數(shù)遞歸調(diào)用時(shí),fun(5):a=5-fun(3)->fun3=a=3-fun(1)->fun(1):a-3,反推回去fun(3):a=3-3=0->fun(5):a=5-0=5,最后的計(jì)算結(jié)果為5。27.

下列選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是(

)。A

x%2==1B

x/2C

x%2!=0D

x%2==0

分值:2答案:D[解析]因?yàn)閤的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1。所以選項(xiàng)D)等于關(guān)系表達(dá)式的結(jié)果為假,即等于0。28.

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

)。

point(char*pt);

main()

charb[4]='a','c','s','f,*pt=b;

pt=point(pt);

printf("%c\n",*pt);

point(char*p)

p+=3;

returnp;

A

sB

cC

fD

a

分值:2答案:C[解析]本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。函數(shù)point的參數(shù)為字符指針,當(dāng)執(zhí)行函數(shù)point時(shí),剛開始指針p指向“a”,經(jīng)過+3操作后,指針p指向“f”所以最后的輸出結(jié)果是f。29.

設(shè)計(jì)軟件結(jié)構(gòu)是在軟件生命周期的(

)。A

軟件定義期B

軟件開發(fā)期C

軟件維護(hù)期D

以上3個(gè)都不是

分值:2答案:B[解析]設(shè)計(jì)軟件結(jié)構(gòu)是在軟件概要設(shè)計(jì)階段進(jìn)行的,而概要設(shè)計(jì)屬于軟件開發(fā)期。30.

字符串"\\\"ABCDEF\"\\"的長度是(

)。A

15B

10C

7D

8

分值:2答案:B[解析]本題涉及字符串最基本的兩個(gè)概念:①字符串的長度是指字符串中字符的個(gè)數(shù),但不包括字符串結(jié)束符;②以反斜杠“\”開頭的特殊字符序列,意思是把反斜杠后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來的含義,不包含在字符串長度之內(nèi),“\”連同后面的字符為一個(gè)長度。31.

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

)。

#include<stdio.h>

voidmain()

inta=0,b=1,c=2;

if(++a>0‖++b>0)

++c;

printf("%d,%d,%d",a,b,c);

A

0,1,2B

1,2,3C

1,1,3D

1,2,2

分值:2答案:C[解析]本題考查if語句。先判斷if語句的條件是否成立,++a=1>0,此條件成立,又因?yàn)槭沁M(jìn)行邏輯或運(yùn)算,在已知其中一個(gè)運(yùn)算對象為真的情況下,不必判斷另外一個(gè)運(yùn)算符的真假,即不進(jìn)行++b操作,就可以直接得出整個(gè)表達(dá)式的值為邏輯1,執(zhí)行下列的++c。32.

下列工具中為需求分析常用工具的是(

)。A

PADB

PFDC

N-SD

DFD

分值:2答案:D[解析]需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細(xì)設(shè)計(jì)的常用工具,不是需求分析的工具。33.

下列說法正確的是(

)。A

一個(gè)C程序可以有多個(gè)主函數(shù)B

一個(gè)C語言的函數(shù)中只允許有一對花括號C

C程序的書寫格式是自由的,一個(gè)語句可以寫在一行上,也可以寫在多行內(nèi)D

在對C程序進(jìn)行編譯時(shí),可以發(fā)現(xiàn)注釋行中的拼寫錯誤

分值:2答案:C[解析]本題涉及C語言基本的3個(gè)知識點(diǎn),①C語言規(guī)定一個(gè)程序只允許有一個(gè)主函數(shù),一個(gè)函數(shù)內(nèi)可以允許有多個(gè)花括號;②C語言的標(biāo)識符是由字母、數(shù)字、下畫線組成的,可以是大寫字母,而且標(biāo)識符區(qū)分字母的大小寫:③C程序的注釋部分僅僅是方便程序員閱讀,提高程序的可讀性和可移植性,它并不參與程序的編譯,所以編譯器也就不會發(fā)現(xiàn)注釋行中的錯誤。34.

若有下列定義,則對a數(shù)組無素地址的正確引用是(

)。

inta[5],*p=a;A

p+5B

*a+1C

&a+1D

&a[0]

分值:2答案:D[解析]本題考查如何引用數(shù)組元素的地址。

選項(xiàng)A)中,p+5引用的是a[5]的地址,而數(shù)組a只有5個(gè)元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯誤;選項(xiàng)B)中,*a+1指的是將數(shù)組a的第一個(gè)元素加1;選項(xiàng)C)中,這種引用方式錯誤;選項(xiàng)D)中,&a[0]引用的是數(shù)組的首地址。35.

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

)。

#include<stdio.h>

#include<string.h>

main()

chara[]="\n123\\";

printf("%d,%d\n",strlen(A

,sizeof(a));

分值:2答案:A[解析]轉(zhuǎn)義字符'\n'表示換行,'\\'表示反斜杠,函數(shù)strlen()是計(jì)算字符串的長度,不包括文件結(jié)束標(biāo)志('\0'),函數(shù)sizeof()統(tǒng)計(jì)字符串所占的字節(jié)數(shù)。36.

已有定義int(*q)(),指針q可以(

)。A

指向函數(shù)的入口地址B

代表函數(shù)的返回值C

表示函數(shù)的類型D

表示函數(shù)返回值的類型

分值:2答案:A[解析]本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標(biāo)識符(*指針變量名)()。其中,“類型標(biāo)識符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。37.

下列敘述中正確的是(

)。A

在模塊化程序設(shè)計(jì)中,一個(gè)模塊應(yīng)該盡量多的包括與其他模塊聯(lián)系的信息B

在自頂向下、逐步細(xì)化的設(shè)計(jì)過程中,首先應(yīng)設(shè)計(jì)解決問題的第一個(gè)細(xì)節(jié)C

在模塊化程序設(shè)計(jì)中,一個(gè)模塊內(nèi)部的控制結(jié)構(gòu)也要符合結(jié)構(gòu)化原則D

在程序設(shè)計(jì)過程中,不能同時(shí)采用結(jié)構(gòu)化程序設(shè)計(jì)方法與模塊化程序設(shè)計(jì)方法

分值:2答案:C[解析]在模塊化程序設(shè)計(jì)中,模塊之間的聯(lián)系可以通過程序的控制結(jié)構(gòu)來實(shí)現(xiàn),在自頂向下、逐步細(xì)化的設(shè)計(jì)過程中,首先要考慮全局目標(biāo),而不是細(xì)節(jié)。在程序設(shè)計(jì)中模塊化和結(jié)構(gòu)化可以同時(shí)使用,一個(gè)模塊的內(nèi)部結(jié)構(gòu)也要符合結(jié)構(gòu)化設(shè)計(jì)原則。38.

設(shè)有下列語句

inta=1,b=2,c;

c=a^(b<<2);

執(zhí)行后,C的值為(

)。A

6B

7C

8D

9

分值:2答案:D[解析]變量b的初值等于2,所以表達(dá)式b<<2表示b的值二進(jìn)制左移兩位,即擴(kuò)大4倍,所以變量b的等于8。然后與a的值1進(jìn)行異或運(yùn)算,得9。39.

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

)。A

125B

n/2C

nD

n+1

分值:2答案:C[解析]對線性表進(jìn)行順序查找時(shí),從表中的第一個(gè)元素開始,將給定的值與表中逐個(gè)元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個(gè)元素或查找失敗,這兩種情況都需要將這個(gè)元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。40.

若變量已正確定義,下列正確的程序段是(

)。A

while(ch=getchar()=='\N')putchar(ch);B

while((ch=getchar())=='\n')putchar(ch);C

while((ch=getchar())!='\N')putchar(ch);D

while((ch=getchar())!='\n')putchar(ch);

分值:2答案:D[解析]本題考查兩個(gè)知識點(diǎn):①C語言用'\n'這個(gè)字符常量表示換行;②函數(shù)getchar()的作用是從終端輸入一個(gè)字符,當(dāng)遇到換行時(shí)結(jié)束輸入。二、填空題1.

算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和______復(fù)雜度。

分值:2答案:空間[解析]衡量一個(gè)算法的復(fù)雜度有兩個(gè)指標(biāo):時(shí)間復(fù)雜度和空間復(fù)雜度。前者用來衡量執(zhí)行算法時(shí)所需要的計(jì)算工作量,而后者用來衡量執(zhí)行算法所需要的存儲空間。2.

按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。

分值:2答案:線性結(jié)構(gòu)[解析]數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊(duì)列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。3.

樹中度為零的結(jié)點(diǎn)稱為______。

分值:2答案:葉子結(jié)點(diǎn)[解析]樹中度為零的結(jié)點(diǎn),也就是沒有后件的結(jié)點(diǎn),稱為葉子結(jié)點(diǎn)。4.

在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和方法的機(jī)制稱為______。

分值:2答案:繼承[解析]在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,某些屬性和方法是可以共享的,由于類從父類中繼承而來,這樣提高了軟件的可重用性。5.

軟件是程序、數(shù)據(jù)和______的集合。

分值:2答案:相關(guān)文檔[解析]計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。6.

若x和a均是int型變量,則計(jì)算完x=(a=4,6*2)后的x值為______。

分值:2答案:12[解析]x=(表達(dá)式1,表達(dá)式2,…)的形式,結(jié)果為最后一個(gè)表達(dá)式的值:x=(a=4,6*2)=2*6=12。7.

若a是int型變量,則下列表達(dá)式的值為______。

(a=2*3,a*2),a+4

分值:2答案:10[解析]此題考查逗號表達(dá)式。逗號表達(dá)式的值是最后一個(gè)表達(dá)式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以返回值a+4=6+4=10。8.

下列程序段是從鍵盤輸入的字符中統(tǒng)計(jì)小寫字母的個(gè)數(shù),用換行符結(jié)束循環(huán)。請?zhí)羁铡?/p>

intn=0,c;

c=getchar();

while(c!='\n')

if(______)

n++;

分值:2答案:c>='a'&&c<='z'[解析]小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\n'判斷是用換行符結(jié)束循環(huán)。9.

下列程序的運(yùn)行結(jié)果是______。

#include<stdio.h>

main()

inta,b,c,n;

a=2;b=0;c=1;n=1;

while(n<=3)

c=c*a;b=b+c;++n;

printf("b=%d",b);

分值:2答案:b=14[解析]分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a-2:b=b+c=2;n=2。第2次:c=c*a=4;b=b+c=6;n=3。第3次:c=c*a=8;b=b+c=14。當(dāng)n=4時(shí),判斷條件不滿足,退出循環(huán)。10.

下列程序的輸出結(jié)果是______。

main()

inti=0,a=0;

while(i<20)

for(;;)

if((i%10)==0)break;

elsei--;

i+=11;

a+=i;

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

分值:2答案:32[解析]while(表達(dá)式)的功能是:首先計(jì)算表達(dá)式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計(jì)算表達(dá)式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假時(shí),結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句;i=0時(shí)滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。11.

下列程序的運(yùn)行結(jié)果是______。

#include<stdio.h>

longfunc(intx)

longp;

if(x==0‖x==1)

return(1);

p=x*func(x-1);

return(p);

main()

printf("%d\n",func(4));

分值:2答案:24[解析]本題考查函數(shù)的循環(huán)調(diào)用。p=x*func(x-1),當(dāng)x=4時(shí),不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結(jié)果為4*3*2*1-24。12.

下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個(gè)二維數(shù)組b中。請?zhí)羁铡?/p>

main()

inta[2][3]=1,2,3,4,5,b[3][2],i,j;

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

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

分值:2答案:b[j][i]=a[i][j][解析]本題考查二維數(shù)組的基本知識。它是要將一個(gè)二維數(shù)組,的行和列元素互換后存放到另一個(gè)二維數(shù)組b中,只要將數(shù)組a的行標(biāo)和列標(biāo)互換,然后賦給數(shù)組b即可。13.

下列程序的運(yùn)行結(jié)果是______。

#include<stdio.h>

main()

intfun();

fun();

fun()

staticinta[4]=1,2,3,4;

in

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論