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

下載本文檔

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

文檔簡介

二級C語言-4-2(總分79,做題時間90分鐘)一、選擇題1.

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

。A.軟件測試

B.概要設(shè)計

C.軟件維護(hù)

D.詳細(xì)設(shè)計A

B

C

D

分值:2答案:C[解析]軟件的生命周期可分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個階段。其中軟件定義階段的主要工作有可行性研究與計劃制定和需求分析等;軟件開發(fā)階段的主要工作有概要設(shè)計、詳細(xì)設(shè)計和測試等;軟件運(yùn)行維護(hù)階段的主要工作是軟件的運(yùn)行及后期的維護(hù)等。2.

以下函數(shù)返回a所指數(shù)組中最大值所在的下標(biāo)值,在下畫線處應(yīng)填入的內(nèi)容是

fun(int*a,intn)

{

inti,j=0,p;

p=j;

for(i=j;i<n;i++)

if(a[i]>a[p])______;

return(p);

}A.i=p

B.a[p]=a[i]

C.p=j

D.p=iA

B

C

D

分值:2答案:D[解析]該題目要求的是最大數(shù)的位置(下標(biāo))。程序通過對a所指數(shù)組中的元素進(jìn)行逐個比較,記錄最大數(shù)的下標(biāo)i,并把該下標(biāo)記錄在變量p中,所以,如果a[i]>a[p]關(guān)系成立,則應(yīng)該把i的值賦給p,這樣才滿足題目的要求。3.

在C語言中,函數(shù)的隱含存儲類別是()******D.無存儲類別A

B

C

D

分值:1答案:A4.

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

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

B.自然連接

C.笛卡兒積

D.交A

B

C

D

分值:1答案:D[解析]在關(guān)系運(yùn)算中,交的定義如下:設(shè)R1和R2為參加運(yùn)算的兩個關(guān)系,它們具有相同的度n,且相對應(yīng)的屬性值取自同一個域,則為交運(yùn)算,結(jié)果仍為度等于n的關(guān)系,其中,交運(yùn)算的結(jié)果既屬于R1,又屬于R2。5.

已知a的ASCⅡ碼為97,執(zhí)行下面兩個語句后,輸出的結(jié)果為______。

charc1=97;c2=98;

printf("%d%c",c1,c2);A.97

98

B.97

b

C.a

98

D.a

bA

B

C

D

分值:1答案:B[解析]整型數(shù)據(jù)和字符數(shù)據(jù)可以通用,變量c1和c2被定義為字符型,語句c1=97和c2=98的作用相當(dāng)于執(zhí)行c1='a'和c2='b'兩語句。在輸出語句中,%d%c是輸出格式符,要求在相應(yīng)位置上分別輸出一個整數(shù)和一個字符。6.

下列選項中,能正確定義數(shù)組的語句是A.intnum[0..2008];

B.intnum[];

C.intN=2008;

intnum[N];

D.#defineN2008

intnum[N];A

B

C

D

分值:2答案:D[解析]定義數(shù)組時,數(shù)組大小只能是常量。選項C中是變量,選項B中沒有指定數(shù)組大小,所以選項C和B錯誤的。選項A的表示方法顯然是錯誤的。選項D中的N是符號常量,滿足數(shù)組定義的語法要求。7.

下列定義不正確的有______。A.#definePI

3.141592

B.#defineS345;

C.intmax(x,y);

intx,y;

{}

D.intmax(int,int);A

B

C

D

分值:1答案:C[解析]定義函數(shù)時,函數(shù)頭后不能加分號。8.

有以下程序:

#include<stdio.h>

voidfun(char*c,intd)

{

*c=*c+1;d=d+1;

printf("%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,B,B,a

D.a,B,a,BA

B

C

D

分值:2答案:A[解析]函數(shù)fun的第一個參數(shù)傳指針,可以將更改后的值傳回調(diào)用函數(shù),第二個參數(shù)傳值,不能將更改后的值傳回調(diào)用函數(shù),故選A)。9.

以下敘述中正確的是(

)。A.調(diào)用printf函數(shù)時,必須要有輸出項

B.使用putchar函數(shù)時,必須在之前包含頭文件stdio.h

C.在C語言中,整數(shù)可以以十二進(jìn)制、八進(jìn)制或十六進(jìn)制的形式輸出

D.調(diào)用getchar函數(shù)讀入字符時,可以從鍵盤上輸入字符所對應(yīng)的ASCII碼A

B

C

D

分值:1答案:B[解析]本題考查了C語言的一些基本概念。printf()函數(shù)可以只有控制項而沒有輸出項,例如,printf("Hello!");,所以選項A)不正確。C語言中不支持整數(shù)以十二進(jìn)制輸出,因此選項C)不正確。getchar()函數(shù)從鍵盤讀入一個字符,而不管該字符為數(shù)字還是字母,因此輸入ASCII碼的話,只能讀到第1個數(shù)字字符,所以選項D)不正確。故應(yīng)該選擇B),putchar是C語言中的庫函數(shù),使用時必須包含stdio.h。10.

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

#include<stdio.h>

inta[3][3]={1,3,5,7,9,11,13,15,17,},*p;

main()

{

p=(int*)malloc(sizeof(int));

f(p,a);

printf("%d\n",*p);

free(p);}

f(int*s,intp[][3])

{

*s=p[1][1];}A.1

B.7

C.9

D.13A

B

C

D

分值:2答案:C[解析]本題考查了二維數(shù)組元素引用的方法。題中用動態(tài)存儲分配函數(shù)malloc分配了一個int型數(shù)據(jù)長度大小的內(nèi)存,然后指針p指向這段內(nèi)存,函數(shù)f()中對p所指向的數(shù)據(jù)進(jìn)行了賦值,p[1][1]為二維數(shù)組第二行第二列的元素,對應(yīng)于實參a的元素9,所以輸出結(jié)果為9。11.

設(shè)有intx=11;則表達(dá)式(x++*1/3)的值是______。A.3

B.4

C.11

D.12A

B

C

D

分值:1答案:B12.

若有以下程序段

int

m=0xabc,n=0xabc;

m-=n;

printf("%X\n".m);

執(zhí)行后輸出結(jié)果是A.0X0

B.0x0

C.0

D.0XABCA

B

C

D

分值:1答案:C[解析]本題考核的知識點是C語言中的自反賦值運(yùn)算符。

“m-=n”相當(dāng)于“m=m-n”,兩個相等的數(shù)相減,其值為0。所以,C選項為所選。13.

在以下給出的表達(dá)式中,與while(E)中的(E)不等價的表達(dá)式是______。A.(E>0||E<0)

B.(E==0)

C.(!E==0)

D.(E!=0)A

B

C

D

分值:1答案:B[解析]while語句中條件表達(dá)式E的值不為0即為真,認(rèn)為滿足條件,所以與B選項中表達(dá)式的含義正好相反,選擇B選項。14.

有以下程序

#include<stdio.h>

voidfun(int*s,intn1,intn2)

{

inti,j,t;

i=n1;j=n2;

while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}

}

main()

{

inta[10]={1,2,3,4,5,6,7,8,9,0),k;

fun(a,0,3);fun(a,4,9);fun(a,0,9);

for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");

}

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

。**

**

**

**A

B

C

D

分值:1答案:C[解析]fun()函數(shù)的功能為使數(shù)組中的元素逆序。15.

以下語句或語句組中,能正確進(jìn)行字符串賦值的是________。A.char*sp;*sp="right!";B.chars[10];s="right!";C.chars[10];*s="right!";D.char*sp="right!";A

B

C

D

分值:2答案:D16.

有以下程序:

#include<stdio.h>

main()

{FILE*pf;

char*s1="China",*s2="Beijing":

pf=fopen("abc.dat","wb+");

fwrite(s2,7,1,pf);

rewind(pf);

/*文件位置指針回到文件開頭*/

fwrite(s1,5,1,pf);

fclose(pf);

}

以上程序執(zhí)行后abc.dat文件的內(nèi)容是

。A.China

B.Chinang

C.ChinaBeijingD.BeijingChinaA

B

C

D

分值:2答案:B[解析]本題考查函數(shù)fwrite的使用。函數(shù)fwrite的調(diào)用形式為:intfwrita(char*pt,unsignedn,F(xiàn)ILE*fp);其功能是把pt所指向的n*size個字節(jié)輸出到fp所指文件中,第二次調(diào)用該函數(shù)時,從文件的第一個位置開始寫入,之前已有的會被覆蓋掉,如果第二次寫入的長度沒有第一次的長,則后面短出的部分保留原樣。17.

下列敘述中正確的是______。A.循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是非線性結(jié)構(gòu)

B.在循環(huán)隊列中,只需要隊頭指針就能反映隊列中元素的動態(tài)變化情況

C.在循環(huán)隊列中,只需要隊尾指針就能反映隊列中元素的動態(tài)變化情況

D.循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定的A

B

C

D

分值:4答案:D[解析]循環(huán)隊列有隊頭和隊尾兩個指針,但是循環(huán)隊列仍是線性結(jié)構(gòu)的,所以A錯誤;在循環(huán)隊列中只需要隊頭指針與隊尾兩個指針來共同反映隊列中元素的動態(tài)變化情況,所以B與C錯誤。18.

有以下程序:

voidchange(intk[]){k[0]=k[5];)

main()

{intx[10]={1,2,3,4,5,6,7,8,9,10},n=0;

while(n<=4)(change(&x[n]);n++;}

for(n=0;n<5;n++)printf("%d",x[n]);

printf("\n");

}

程序運(yùn)行后的輸出結(jié)果是______。A.678910

B.13579

C.12345

D.62345A

B

C

D

分值:2答案:A[解析]本題主要考查數(shù)組元素的地址作為實參,當(dāng)n=0時,把x[0]的地址傳遞給被調(diào)函數(shù)change(),即把形參k和實參x指向同一個存儲單元,執(zhí)行被調(diào)函數(shù)后k[0]=6,即x[0]=6;當(dāng)n=1時,執(zhí)行被調(diào)函數(shù)后x[1]=7,以此類推,最后得到x數(shù)組的值為6,7,8,9,10。19.

設(shè)有定義:intk=1,m=2;noatf=7;則下列選項中錯誤的表達(dá)式是

。A.k=k>=k

B.-k++

C.k%int(f)

D.k>=f>=mA

B

C

D

分值:1答案:C[解析]在C語言中,求余運(yùn)算符“%”兩邊的運(yùn)算對象都應(yīng)為整型數(shù)據(jù),所以需要對變量f進(jìn)行強(qiáng)制類型轉(zhuǎn)換,正確的寫法為k%(int)f。在C語言中,邏輯運(yùn)算符與賦值運(yùn)算符、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符之間從高到低的運(yùn)算優(yōu)先次序是:!(邏輯“非”)、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、&&(邏輯“與”)、‖(邏輯“或”)、賦值運(yùn)算符。根據(jù)運(yùn)算符的優(yōu)先級與結(jié)合性,對于選項A),先計算k>=k的值(為真,即1),再用1對k進(jìn)行賦值。對于選取項B),先計算k什的值,再對其取負(fù)數(shù)。對于選項D),先計算k>=f的值(為假,即0),再用0與m進(jìn)行比較,故最終結(jié)果為0。20.

以下選項中,不能正確賦值的是______。A.chars1[10];s1="chest";

B.chars2[]={'C','t','e','s','t'};

C.chars3[20]="Chest";

D.char*s4="Ctest\n"A

B

C

D

分值:1答案:A[解析]語言中不能將字符串常量直接賦給數(shù)組。但在賦初值時可以。21.

下列敘述中正確的是

。A.算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)

B.算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)

C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止

D.以上3種描述都不對A

B

C

D

分值:2答案:C[解析]算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)。算法的空間復(fù)雜度是指算法執(zhí)行過程中所需的存儲空間。22.

下列敘述中不正確的是

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

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

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

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

B

C

D

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

以下有4組用戶標(biāo)識符,其中合法的一組是______。A.For

-sub

Case

B.4d

DO

Size

C.f2_G3

IF

abc

D.WORD

void

defineA

B

C

D

分值:2答案:C[解析]選項A中有非法標(biāo)識符-sub,選項B中有非法標(biāo)識符4d,選項D中有C語言保留字void。24.

對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是A.快速排序

B.冒泡排序

C.直接插入排序

D.堆排序A

B

C

D

分值:2答案:D[解析]在最壞情況下,快速排序、冒泡排序和直接插入排序需要的比較次數(shù)都為n(n-1)/2,堆排序需要的比較次數(shù)為nlog2n。25.

有下列函數(shù):

intfun(char*s)

{char*t=s;

while(*t++);

return(t-s);

}

該函數(shù)的功能是

。A.比較兩個字符串的大小

B.計算s所指字符串占用內(nèi)存字節(jié)的個數(shù)

C.計算s所指字符串的長度

D.將s所指字符串復(fù)制到字符串t中A

B

C

D

分值:2答案:C[解析]在函數(shù)fun(char*s)中,首先用字符指針變量t指向s,而循環(huán)語句while(*t++);的功能是使指針變量t指向字符串變量s的末尾,這時退出循環(huán),因而語句return(t-s);返回的就是字符串s所指字符串的長度。26.

已有定義:chara[]="xyz",b[]={'x','y','z'};,以下敘述中正確的是A.數(shù)組a和b的長度相同

B.a數(shù)組長度小于b數(shù)組長度

C.a數(shù)組長度大于b數(shù)組長度

D.上述說法都不對A

B

C

D

分值:1答案:C[解析]a數(shù)組存放的是字符串,系統(tǒng)會自動在字符串的最后加上一個“\0”,所以a數(shù)組的長度為4,而b數(shù)組的長度為3,故a數(shù)組長度大于b數(shù)組長度。27.

在關(guān)系數(shù)據(jù)庫模型中,通??梢园?

)稱為屬性,其值稱為屬性值。A.記錄

B.基本表

C.模式

D.字段A

B

C

D

分值:1答案:D[解析]數(shù)據(jù)庫表中字段轉(zhuǎn)化為屬性,把記錄的類型轉(zhuǎn)化為關(guān)系模式。28.

執(zhí)行以下程序時輸入1234567<CR>,則輸出結(jié)果是

#include<stdio.h>

main()

{inta=1,b;

scanf("%3d%2d",&a,&b);

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

}A.12367

B.12346

C.12312

D.12345A

B

C

D

分值:1答案:D[解析]scanf函數(shù)中的格式控制說明為“%3d%2d”,分別選中輸入中的3位和2位,因此a=123,b=45。因此正確答案為D)。29.

以下能正確定義的數(shù)組并正確賦初值的語句是A.intN=5,b[N][N];

**a[1][2]={{1},{3}};

C.intc[2][]={{1,2},{3,4}};

D.intd[3][2]={{1,2},{3,4}};A

B

C

D

分值:1答案:D[解析]本題考核的知識點是二維數(shù)組的定義以及數(shù)組元素初始化。選項A中,數(shù)組的長度使用了變量N,而在c中是不能用變量來定義數(shù)組的的長度的,故選項A錯誤。在c語言中,給二維數(shù)組賦初值時,行數(shù)不能超過定義的行數(shù),每行的初值個數(shù)不能超過定義時的列數(shù),故選項B錯誤。選項C數(shù)組的第二維下標(biāo)缺省,而在C中,數(shù)組的第二維下標(biāo)不能缺省,故選項C錯誤。所以,D選項為所選。30.

為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,通常也把這種圖稱為

A.PAD圖

B.N-S圖

C.結(jié)構(gòu)圖

D.數(shù)據(jù)流圖A

B

C

D

分值:1答案:B31.

若有語句:char*line[5];,以下敘述中正確的是

。A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char的指針變量

B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組

C.定義line是一個指針數(shù)組,語句中的*號稱為間址運(yùn)算符

D.定義line是一個指向字符型函數(shù)的指針A

B

C

D

分值:2答案:A[解析]C語言中[]比*優(yōu)先級高,因此line先與[5]結(jié)合,形成line[5]形式,這是數(shù)組形式,它有5個元素,然后再與line前面的“+”結(jié)合,表示此數(shù)組是一個指針數(shù)組,每個數(shù)組元素都是一個基類型為char的指針變量。32.

下列敘述中正確的是A.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間具有密切的聯(lián)系

B.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象都是公用的

C.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間相對獨立,相互依賴性小

D.上述三種說法都不對A

B

C

D

分值:2答案:C[解析]本題考查了面向?qū)ο蟮幕靖拍睢?/p>

[解題要點]在面向?qū)ο蟪绦蛟O(shè)計中所使用的對象,其數(shù)據(jù)和操作是作為平等伙伴出現(xiàn)的。因此,對象具有很強(qiáng)的自含性,此外,對象所固有的封裝性,使得對象的內(nèi)部實現(xiàn)與外界隔離,具有較強(qiáng)的獨立性。

[考點鏈接]對象的定義。33.

在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換為關(guān)系模式的過程屬于

。A.需求分析階段

B.邏輯設(shè)計階段

C.概念設(shè)計階段

D.物理設(shè)計階段A

B

C

D

分值:1答案:B[解析]數(shù)據(jù)庫設(shè)計階段主要包括需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計。其中,邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換為關(guān)系模式。34.

有以下程序

main()

{

intx[]={1,3,5,7,2,4,6,0},i,j,k;

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

for(j=2;j>=i;j--)

if(x[j+1]>x[j])

{k=x[j];

x[j]=x[j+1];

x[j+1]=k;

}

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

for(j=4;j<7-i;j++)

if(x[j]>x[j+1])

{k=x[j];x[j]=x[j+1];

x[j+1]=k;

}

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

printf("%d",x[i]);

printf("\n");

}

程序運(yùn)行后的輸出結(jié)果是______。A.75310246

B.01234567

C.76310462D.13570246A

B

C

D

分值:1答案:A[解析]在程序中,第一個for循環(huán)內(nèi)部實現(xiàn)的是對數(shù)組中前四個元素進(jìn)行降序排序,第二個for循環(huán)內(nèi)部實現(xiàn)的是對數(shù)組后四個元素進(jìn)行升序排序,因此數(shù)組x中的最后結(jié)果應(yīng)該是前四個降序,后四個升序。最終結(jié)果為{7,5,3,1,0,2,4,6}。35.

有以下函數(shù):

fun(char*a,char*b)

{

while((*a!='\0')&&(*b!='\0')&&(*a==*b))

{

a++;b++;}

return(*a-*b);

}

該函數(shù)的功能是______。A.計算a和b所指字符串的長度之差

B.將b所指字符串連接到a所指字符串中

C.將b所指字符串連接到a所指字符串后面

D.比較a和b所指字符串的大小A

B

C

D

分值:2答案:D[解析]本題的函數(shù)fun的最后一個語句是“return(*a-*b);”,也就是返回指針a所指單元的值與指針b所指單元的值的差。顯然這不可能是計算a和b所指字符串的長度之差,因此選項A的說法是錯誤的。由于函數(shù)中并沒有出現(xiàn)。a=*b的賦值操作,所以選項B的連接字符串的說法也是錯誤的。同理,由于沒有*a現(xiàn)*a=*b的賦值操作,所以選項C的復(fù)制字符串的說法也是錯誤的。排除了三個選項后,就可以斷定正確選項是D。二、填空題36.

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

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

分值:1答案:x=11[解析]在對無符號數(shù)的右移是高位補(bǔ)0。37.

若有定義:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},<1,3,5,7}},則初始化后,a[2][2]得到的初值是______。

分值:2答案:8[解析]二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個一維數(shù)組都有4個元素,a[0]的元素為a[0][0]、a(0][1]、a[0][2]、a[0][3]38.

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

。

main()

{intx=0;

sub(&x,8,1);

printf(“%d\n”,x);

}

sub(int*a,intn,intk)

{

if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

分值:1答案:7[解析]在主函數(shù)中定義了一個變量x并賦初值0,然后執(zhí)行函數(shù)調(diào)用語句,該語句的執(zhí)行過程為sub(&x,8,1)調(diào)用sub(&a,4,2),sub(&a,4,2)調(diào)用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括號里的判斷為假,遞歸結(jié)束,執(zhí)行其后的*a+=k;語句此時x=x+k=0+4=4,回退到上一層調(diào)用函數(shù)sub(&x,4,2)中,執(zhí)行后面的語句,x=x+k=4+2=6,再回推到最上一層調(diào)用函數(shù)sub(&x,8,1)執(zhí)行后面的語句,x=x+k=6+1=7,所以最后輸出7。39.

以下程序運(yùn)行后的輸出結(jié)果是______。

fun(inta)

{

intb=0;

staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{

inti,a=5;

for(i=0;j<3;i++)printf("%d%d",i,fun(a));

printf("\n");

}

分值:2答案:010111212[解析]本題考查靜態(tài)局部變量。靜態(tài)局部變量的作用域和普通局部變量一樣,但它的生存期將延長到程序運(yùn)行結(jié)束。主函數(shù)中,用一個for循環(huán)輸出循環(huán)變量i和fun(a)的值。第一次調(diào)用時,b=0,c=3,所以返回5+1+4=10;第二次調(diào)用時,因為c是靜態(tài)局部變量,它仍保存上次調(diào)用結(jié)束時的值4,所以返回值為5+1+5=11;以此類推,第三次調(diào)用返回值是12。所以,最終輸出:010111212。40.

以下程序從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁眨?/p>

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(______);

ch=fgetc(fp);

whlie(!feof(fp)){putchar(ch);ch=fgetc(fp);)

putchar('\n');felose(fp);

}

分值:4答案:“filea.dat”,“r”[解析]本題首先應(yīng)該打開filea.dat文件再讀取字符,空白處應(yīng)為以只讀方式打開文件。41.

軟件工程研究的內(nèi)容主要包括:______技術(shù)和軟件工程管理。

分值:2答案:軟件開發(fā)[解析]軟件工程包括軟件開發(fā)技術(shù)和軟件工程管理。其中軟件開發(fā)技術(shù)包括:軟件開發(fā)方法學(xué)、開發(fā)過程、開發(fā)工具和軟件工具環(huán)境,其主體內(nèi)容是軟件開發(fā)方法學(xué):軟件工程管理包括:軟件管理學(xué)、軟件工程經(jīng)濟(jì)學(xué)、軟件心理學(xué)等內(nèi)容。42.

若從鍵盤輸入58,則以下程序的輸出結(jié)果是

main()

{

inta;

scanf(“%d”,&A);

if(a>50)printf(“%d”,A);

if(a>40)printf(“%d”,A);

if(a>30)printf(“%d”,A);

}

分值:1答案:585858[解析]在程序中,執(zhí)行scanf()語句后,a被賦值為58。接著執(zhí)行第一個if語句,因為,a=58>50,執(zhí)行第一個if語句后面的輸出語句,輸出58;接著執(zhí)行第二個if語句,因為,a=58>40,執(zhí)行第二個if語句后面的輸出語句,輸出58;接著執(zhí)行第三個if語句,因為,a=58>30,執(zhí)行第三個if語句后面的輸出語句,輸出58,所以最后的輸出為585858。43.

下列的for語句的循環(huán)次數(shù)為______。

for(x=1,y=0;(y!=19)&&(x<7);x++);

分值:2答案:6[解析]分析程序可知,每循環(huán)一次,x的值加1,然后檢測循環(huán)控制條件(y!=19)&&(x<7),因y的值不變,故滿足x<7時循環(huán)6次。44.

以下程序用來輸出結(jié)構(gòu)體變量ex所占存儲單元的字節(jié)數(shù),請?zhí)羁铡?/p>

structst

{

charname[20];doublescore;};

main()

{

structstex;

pfintf("exsize:%d\n",sizeof(______));}

分值:2答案:structst或ex[解析]考查了結(jié)構(gòu)體變量的存儲分配結(jié)構(gòu)。

[解題要點]結(jié)構(gòu)體類型數(shù)據(jù),其數(shù)據(jù)成員各自占據(jù)不同的存儲空間,整個結(jié)構(gòu)體變量所占存儲單元的字節(jié)數(shù)為每一個數(shù)據(jù)成員所占的存儲空間的和。

[考點鏈接]共用體變量所占存儲單元字節(jié)數(shù)的計算。45.

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

#indude<stdio.h>

main()

{intY,a;

y=2,a=1;

while(y--!=-1)

{do{a*=y;a++;}while(y--);}

printf("%d,%d",a,y);}

分值:2答案:1,-2[解析]考查嵌套的循環(huán)結(jié)構(gòu)。題中外層while循環(huán)的循環(huán)條件是y--!--1,即y>=0;內(nèi)層do…while循環(huán)的循環(huán)條件是y--,即y-->0,y>=1。46.

關(guān)系表達(dá)式x<y<z,用C語言的表達(dá)式為

。

分值:1答案:(x<y)&&(y<z)[解析]x<y<z的意思是y大于x并且y小于z。在C語言中,表達(dá)“并且”用邏輯與運(yùn)算符“&&”。47.

執(zhí)行以下程序時輸入1234567<CR>,則輸出結(jié)果是______。

#include

<stdio.h>

main()

{

inta=1,b;

scanf("%2d%2d",&a,&b);prinff("%d

%dhn",a,b);

}

分值:0答案:12

34

[解析]本題考查的知識點是:Scanf()函數(shù)。scanf()是標(biāo)準(zhǔn)輸入函數(shù);其第1個參數(shù)為格式控制字符串。其中“%2d”表示讀入一

溫馨提示

  • 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

提交評論