二級C語言筆試23_第1頁
二級C語言筆試23_第2頁
二級C語言筆試23_第3頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、二級C語言筆試23(總分:86.00,做題時間:90分鐘)1. 一、B選擇題(/B(總題數(shù):50,分?jǐn)?shù):50.00)若變量已正確定義并賦值,下面符合C語言語法的表達(dá)式是(分?jǐn)?shù):1.00)A. m:=5B. c=b=a=lVC. float8%52. x+5=y+2解析:解析選項A)中的賦值方法為Pascal語言賦值格式;C語言中賦值直接為“=”,無冒號;選項D)中“x+5=y+2賦值格式錯誤,賦值號左邊不可以出現(xiàn)常量,也不可以同時出現(xiàn)兩個變量。選項C)應(yīng)改為(float)8%3數(shù)據(jù)處理的最小單位是(分?jǐn)?shù):1.00)A. 數(shù)據(jù)B. 數(shù)據(jù)元素C. 數(shù)據(jù)項V數(shù)據(jù)結(jié)構(gòu)解析:解析數(shù)據(jù)處理的最小單位是數(shù)據(jù)

2、項;由若干數(shù)據(jù)項組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計算機(jī)識別、存儲和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運算。故正確答案為選項C)o下列程序是用來判斷數(shù)組中特定元素的位置所在。如果輸入如下整數(shù):876675896101301401980431451777#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k)inti;*k=0;for(i=0;ivt;i+)if(s*k<si)*k=i;returns*k;main()inta10=876,675,896,101,301,401,980,4

3、31,45l,777,k;clrscr();fun(a,10,&k);printf("%d,%d/n",k,ak);則輸出結(jié)果為(分?jǐn)?shù):1.00)A. 7,431B. 6C. 9806,980V解析:解析本題中直接使用指針變量k,但在使用時要注意對k的指針運算。此外,一開始應(yīng)知道*k的值為數(shù)組中的某一下標(biāo)值,即*k=0,本函數(shù)的功能是找出數(shù)組中的最大元素的位置及最大元素的值。3. 在軟件測試設(shè)計中,軟件測試的主要目的是(分?jǐn)?shù):1.00)A. 實驗性運行軟件B. 證明軟件正確C. 找出軟件中全部錯誤盡可能多地發(fā)現(xiàn)軟件中的錯誤V解析:解析使用人工或自動手段來運行或測定某

4、個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實際結(jié)果之間的差別。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。有下面程序段#include"stdio.h"#include"string.h"main()chara320="china";"isa",bigcountry!";chark100=0,*p=k;inti;for(j=0;j<3;i+)p=strcat(p,ai);i=strlen(p)printf("%d/n

5、",i);則程序段的輸出結(jié)果是(分?jǐn)?shù):1.00)A. 18B. 19VC. 2021解析:解析字符串連接函數(shù)strcat的調(diào)用形式如下:strcat(s1,s2)。此函數(shù)用來把s2所指字符串的內(nèi)容連接到s1所指的字符串后面,并自動覆蓋s1串末尾的尾標(biāo),函數(shù)返回s1的地址值。4. 假定int類型變量占用兩個字節(jié),有定義:intx10=(0,2,4;,則數(shù)組x在內(nèi)存中占字節(jié)數(shù)是(分?jǐn)?shù):1.00)A. 3B. 6C. 1020V解析:解析x數(shù)組共有10個元素,在花括弧內(nèi)只提供3個初值,這表示只給前面的3個成員賦值,后7個元素的值為0,所以,一共有20個字節(jié)。5. 下列關(guān)于復(fù)合語句和空語句的

6、說法錯誤的是(分?jǐn)?shù):1.00)A. 復(fù)合語句是由“”開頭,由“”結(jié)尾的B. 復(fù)合語句在語法上視為一條語句C. 復(fù)合語句內(nèi),可以有執(zhí)行語句,不可以有定義語句部分VC程序中的所有語句都必須由一個分號作為結(jié)束解析:解析復(fù)合語句內(nèi),不僅可以有執(zhí)行語句,而且還可以有定義語句部分。定義語句應(yīng)該出現(xiàn)在可執(zhí)行語句前面。main()(intG=5,k;voidprt_char()以下程序有語法錯誤,有關(guān)錯誤原因的正確說法是k=prt_char(G);(分?jǐn)?shù):1.00)A. 語句voidprt_char();有錯,它是函數(shù)調(diào)用語句,不能用void說明B. 變量名不能使用大寫字母C. 函數(shù)說明和函數(shù)調(diào)用語句之間有矛

7、盾V19, 函數(shù)名不能使用下劃線解析:解析在C語言中,對于返回值是其他類型的函數(shù),若把函數(shù)定義放在調(diào)用之后,應(yīng)該在調(diào)用之前對函數(shù)進(jìn)行說明,或稱為函數(shù)原型說明。函數(shù)說明句中的類型必須與函數(shù)返回類型一致,函數(shù)說明可以是一條獨立的語句,也可以與普通變量一起出現(xiàn)在同一個語句中。對于函數(shù)值為整型的函數(shù)的說明,prt_char中定義時是void類型,那天返回值與k=prt_char();矛盾。所以本題的錯誤之處在于“函數(shù)說明和函數(shù)調(diào)用語句之間有矛盾。”"Adam”,16,,根據(jù)上述定義,能輸出字母M的語句是有如下定義structpersoncharname9;intage;structperso

8、nclass10="John",17,"paul","Mary”,18,class3.nam;,1),1),0)(分?jǐn)?shù):1.00)A. printf("%c/n"B. printf("%c/n"C. printf("%c/n"printf("%c/n"解析:解析這是一個給結(jié)構(gòu)體數(shù)組賦初值的問題。它的賦初值過程與上述二維數(shù)組賦初值很相似。只是這里的大括號中的初始值沒有按行給出(也即沒有用大括號分開來),

9、在這種情況下,初始值將按數(shù)組的各個元素在內(nèi)存中的存放次序逐個逐個地賦給各元素。現(xiàn)在結(jié)構(gòu)體數(shù)組的各個元素在內(nèi)存中的存放次序是這樣的:,class0.age,,class1.age,由此可以知道,包含字母'M的字符串"Mary”賦值給了元素class2.namq則與字符M先相對應(yīng)的表達(dá)式是0。若程序執(zhí)行時的輸入數(shù)據(jù)是"2473",則下述程序的輸出結(jié)果是#include<stdio.h>voidmain()intcs;while(cs=getchar()!=;'/n')

10、switch(cs-'2')case0case1:putchar(cs+4);case2:putchar(cs+4);break;case3:putchar(cs+3);default:putchar(cs+2);(分?jǐn)?shù):1.00)A. 668977VB. 668966C. 66778776688766解析:解析本題主要考查了switch語句的使用方法。switch語句的執(zhí)行過程為:進(jìn)入switch結(jié)構(gòu)后,對條件表達(dá)式進(jìn)行運算,然后從上至下去找與條件表達(dá)式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語句,直到遇到break語句,則跳出switch語句,如果各

11、case都不匹配時則執(zhí)行default后面的語句。6. 一些重要的程序語言(如C語言和Pascal語言)允許過程的遞歸調(diào)用。而實現(xiàn)遞歸調(diào)用中的存儲分配通常用(分?jǐn)?shù):1.00)A. 棧VB. 堆C. 數(shù)組鏈表解析:解析一些較流行的程序語言允許過程的遞歸調(diào)用。遞歸調(diào)用就是過程調(diào)用本身。遞歸實現(xiàn)的是:當(dāng)過程每一次執(zhí)行后,都能返回到最近一次調(diào)用它的過程中。這樣各調(diào)用點之間形成一種后進(jìn)先出關(guān)系,而棧結(jié)構(gòu)正適合來存儲這些調(diào)用點。7. 已知如下定義,則sizeof(a)的值是structinti;charc;doublea;a;(分?jǐn)?shù):1.00)A. 8B. 9C. 1011V解析:解析結(jié)構(gòu)體在內(nèi)存中是連續(xù)

12、存放的,一個結(jié)構(gòu)體類型的變量所占用的空間是其所有成員所占空間的總和。double類型所占的空間為8個字節(jié)。13.若有定義:char*st="howareyou"(分?jǐn)?shù):1.00);下列程序段中正確的是A. chara11,*p;strcpy(p=a+1B. chara11;strcpy(+a,s;C. chara11;strcpy(a,s;,&st4);VD.chara,*p;strcpy(p=&a1,st+2);解析:解析本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達(dá)式對字符數(shù)組賦值,如下面的語句就是非法的:strl="

13、;China”,如果想把"China”這5個字符放到數(shù)組strl中,除了逐個地輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個字符串復(fù)制到一字符數(shù)組中。例如:strcpy(strl,"China");或strcpy(strl,str2);注意,不能企圖用以下語句來實行賦值(將str2的值傳給strl):strl=str2;不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)其中,需要注意的是,字符數(shù)組1的長度不應(yīng)小于字符串2的長度,“字符數(shù)組T必須寫成數(shù)組名形式,如(strl),“字符串2

14、”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。14. 有如下程序inta10=1,2,3,4,5,6,7,8,9,10;int*p=&a3,b;b=p5;則b的值是(分?jǐn)?shù):1.00)A. 5B. 6C. 9V15. 8解析:解析p=&a3將指針指向數(shù)組a的第4個元素,p5指向數(shù)組a的第9個元素,而a8=9,所以b=9o下面能正確進(jìn)行字符串賦值操作的是(分?jǐn)?shù):1.00)A. chars5="ABCDE"B. chars5=('A','B','C','D

15、','E'C. char*s;s="ABCDE”;Vchar*s;chara;scanf("%s",&;解析:解析如果一個字符數(shù)組用來存儲字符串,那么在定義該字符數(shù)組時,數(shù)組的大小應(yīng)該比它將要實際存放的字符串長度大1,所以選項A)和B)錯。選項D)e本身就是一個字符指針,不需再取地址。16. 下列選項中錯誤的說明語句是(分?jǐn)?shù):1.00)A. chara='t','o','y','o','u','/0'B. chara="toyo

16、u/0"C. chara="toyou/0";chara='toyou/0'V解析:解析通過賦初值的方式給一維數(shù)組賦字符串,可以用給一般數(shù)組賦初值的相同方式給一維字符數(shù)組賦字符串,也可以在賦值時直接賦字符串常量。選項B)和C)后面的'/0'是多余的,不過也不錯,在C語言中,系統(tǒng)會自動在字符串的結(jié)尾處加上一個字符/0'作為串的結(jié)束標(biāo)記。17. 有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;執(zhí)行該程序段后,a的值為(分?jǐn)?shù):1.00)A. 12B. 11VC. 10編譯出錯解析:解析p=&a表達(dá)

17、式的含義是將變量a的地址賦給指針變量p;a=*p+b表達(dá)式的含義是指針變量p所存地址對應(yīng)的值與b的和賦給a。18. 以下程序的輸出結(jié)果是main()charx=040;printf("%o/n”,xvv1);(分?jǐn)?shù):1.00)A. 100VB. 80C. 6432解析:解析左移1位,相當(dāng)于乘以2,題中的x的值是一個八進(jìn)制,轉(zhuǎn)換為十進(jìn)制數(shù)是32,再乘以2,x的值為64,以。八進(jìn)制形式輸出,顯示為100o假定當(dāng)前盤符下有兩個文本文件,如下文件名a1.txta2.txt內(nèi)容123#321#則下面程序段執(zhí)行后的結(jié)果為#include"stdio.h"voidfc(FILE

18、*p)charc;while(c=fgetc(p)!='#')putchar(c);main()FILE*fp;fp=fopen("a1.txt","r");fc(fp);fclose(fp);fp=fopen("a2.txt","r");fc(fp);fclose(fp);putchar('/n/);(分?jǐn)?shù):1.00)A. 123321VB. 123C. 321以上答案都不正確解析:解析本題的功能是順序的讀兩個文本文件,依次輸出。當(dāng)打開文件時出現(xiàn)錯誤,fopen函數(shù)將返回NULL。19.

19、現(xiàn)在有以下定義,inta;doubleb;floatc;chark;則下面的表達(dá)式a/b+c-k值的類型為:(分?jǐn)?shù):1.00)A. intB. doubleVC. floatchar解析:解析雙目運算中兩邊運算量類型轉(zhuǎn)換規(guī)律:運算數(shù)1運算數(shù)2轉(zhuǎn)換結(jié)果類型短整型長整型短整型->長整型整型長整型整型->長整型字符型整型字符型->整型有符號整型無符號整型有符號整型->無符號整型整型浮點型整型->浮點型在a/b的時候,a,b的類型不一致,根據(jù)類型轉(zhuǎn)換規(guī)則,把整型轉(zhuǎn)換成double類型,之后的加,減類似。轉(zhuǎn)化規(guī)則為char,shorttinttunsignedtlongtd

20、oubleafloat若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是(分?jǐn)?shù):1.00)A. bdgcefhaB. gdbecfhaC. bdgaechfgdbehfcaV解析:解析前序遍歷的第一個結(jié)點a為樹的根結(jié)點;中序遍歷中a的左邊的結(jié)點為a的左子樹,a右邊的結(jié)點為a的右子樹;再分別對a的左右子樹進(jìn)行上述兩步處理,直到每個結(jié)點都找到正確的位置。下面程序的輸出結(jié)果是#includevstdio.h>main()inta=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf("%d/n”,*p+9);

21、(分?jǐn)?shù):1.00)A. 0B. 1C. 10V9解析:解析此題考查了指針引用一維數(shù)組元素的方法。*p+9因為運算符“*”的優(yōu)先級高于“+”,所以輸出結(jié)果為p指向的元素1,然后加9,值為10。20. 下面各選項中,均是C語言合法標(biāo)識符的選項組是(分?jǐn)?shù):1.00)A. 33weautoB. _23me_3ewVC. _433e_elseER-DF32解析:解析合法的標(biāo)識符是由字母、數(shù)字和下劃線組成,并且第一個字符必須為字母或下劃線,用戶定義的標(biāo)識符不能與關(guān)鍵字相同。選項A),數(shù)字不能為第一個字母,auto為關(guān)鍵字;選項C)中,也是數(shù)字不能為第一個字母,else為關(guān)鍵字;選項D)中負(fù)號不合法。以下程

22、序的輸出結(jié)果是main()inta,i=a=0;for(i=1;i<5;i+)switch(i)case0:case3:a+=2;case1:case2:a+=3;default:a+=5;printf("%d/n",a);(分?jǐn)?shù):1.00)A. 31VB. 13C. 1020解析:解析本題考查用于多分支選擇的switch語句,其一般形式為:switch(表達(dá)式)case常量表達(dá)式1:語句1;case常量表達(dá)式2:語句2;case常量表達(dá)式n:語句n;default:語句n+1;其語義是:計算表達(dá)式的值。并逐個與其后的常量表達(dá)式值相比較,當(dāng)表達(dá)式的值與某個常量表達(dá)式的

23、值相等時,即執(zhí)行其后的語句,然后不再進(jìn)行判斷,繼續(xù)執(zhí)行后面所有case后的語句。如表達(dá)式的值與所有case后的常量表達(dá)式均不相同時,則執(zhí)行default后的語句。21. 數(shù)據(jù)庫系統(tǒng)的核心是(分?jǐn)?shù):1.00)A. 數(shù)據(jù)庫B. 數(shù)據(jù)庫管理系統(tǒng)VC. 模擬模型軟件工程解析:解析數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,簡稱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)的核心。現(xiàn)有如下程序段#include"stdio.h"main()(intk30=(12,324,4

24、5,6,768,98,21,34,453,456);intcount=0,i=0;while(ki)(if(ki%2=0|ki%5=0)count+;i+;printf("%d,%d/n”,count,i);)則程序段的輸出結(jié)果為(分?jǐn)?shù):1.00)A. 7,8B. 8,8C. 7,108,10V解析:解析在C語言中,定義一維數(shù)組的語句一般形式如下:類型名數(shù)組名常量表達(dá)式;一維數(shù)組的引用形式為:數(shù)組名下標(biāo)表達(dá)式。count表示能被2整除或被5整除的個數(shù),i則計算有多少個數(shù)組元素。22. 以下變量x,y,z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式子x+y+z的C語言表達(dá)式是(

25、分?jǐn)?shù):1.00)A. x/y*zVB. x*(1/(y*)C. x/y*1/zx/y/z解析:解析本題中,“()”的優(yōu)先級是最高的,“*”和“/”的優(yōu)先級別相同,運算方向是從左向右。以下程序的運行結(jié)果為#include"stdio.h"main()(intm,n;for(m=0,n=10;nxn;m+=3n-);printf("%d,%d/n",m,n);)(分?jǐn)?shù):1.00)A. 6,7B. 7,6C. 9,7V7,9解析:解析for后一對括號中的表達(dá)式可以是任意有效的C語言表達(dá)式。該題目的循環(huán)體部分為空語句,循環(huán)控制條件為gn,每一次m增3,n減1,每

26、當(dāng)循環(huán)體執(zhí)行結(jié)束時,循環(huán)控制變量m,n就會分別被增3和減1。23. 當(dāng)k的值不為0時,在下列選項中能夠?qū)的值賦給變量mn的是(分?jǐn)?shù):1.00)A. m=k=nB. (m=&&(n=VC. (m=|(n=(k=&&(n=解析:解析&&H在某種情況下會實行“短路規(guī)則”,即當(dāng)邏輯與前面一個表達(dá)式的值為假的時候,后面一個表達(dá)式就不需要計算,這個邏輯表達(dá)式一定為假;當(dāng)邏輯或前面一個表達(dá)式為真的時候,后面一個表達(dá)式就不需要計算,這個邏輯或表達(dá)式一定為真。選項A)是將n的值賦值給m和k。選項C)就是進(jìn)行了短路規(guī)則,當(dāng)m=k賦值后,m得到的新值不為0,即為真,

27、邏輯或后面的表達(dá)式就不被計算,所以n沒有被賦值。D)答案沒有什么意義。24. 開發(fā)軟件時對提高開發(fā)人員工作效率至關(guān)重要的是(分?jǐn)?shù):1.00)A. 操作系統(tǒng)的資源管理功能B. 先進(jìn)的軟件開發(fā)工具和環(huán)境VC. 程序人員的數(shù)量計算機(jī)的并行處理能力解析:解析軟件工程鼓勵研制和采用各種先進(jìn)的軟件開發(fā)方法、工具和環(huán)境。工具和環(huán)境的使用又進(jìn)一步提高了軟件的開發(fā)效率、維護(hù)效率和軟件質(zhì)量。25. 關(guān)于printf()函數(shù)的返回值敘述正確的是(分?jǐn)?shù):1.00)A. 通常是本次調(diào)用中輸出字符的個數(shù)VB. 通常是輸出的第一個數(shù)值C. 通常返回布爾值真通常返回非零值解析:解析printf函數(shù)的返回值通常是本次調(diào)用中輸出

28、字符的個數(shù)。scanf函數(shù)在調(diào)用結(jié)束后將返回一個函數(shù)值,其值等于得到輸入項的個數(shù)。26. 已知intk=10,m=3n;則下列語句輸出結(jié)果是printf("%d/n",n=(k%mk/m);(分?jǐn)?shù):1.00)A. 2B. 3VC. 45解析:解析表達(dá)式n=(k%mk/m)實際上是將k/m的結(jié)果賦值給了n。逗號表達(dá)式中最后一個表達(dá)式的值是該逗號表達(dá)式的值,所以輸出結(jié)果為k/m。27. 設(shè)有數(shù)組定義:chararray="China",則數(shù)組array所占的空間為(分?jǐn)?shù):1.00)A. 4個字節(jié)B. 5個字節(jié)C. 6個字節(jié)V7個字節(jié)解析:解析在給數(shù)組賦值時,

29、可以用一個字符串作為初值,這種方法直觀,方便而且符合人們的習(xí)慣。數(shù)組array的長度不是5,而是6,這點必須要注意。因為字符串常量的最后由系統(tǒng)加上一個/0',因此,上面的初始化與chararray='C','h','i','n','a','/0';等價。下面程序的文件名為t.exe,在DO"輸入的命令行參數(shù)如下:ttomeetme回車則程序輸出的結(jié)果是#include"stdio.h"main(argc,argv)intargc;char*argv;inti;p

30、rintf("%d/n",argc);(分?jǐn)?shù):1.00)A. 3B. 4VC. 2以上答案都不正確解析:解析argc中存入的是命令行中字符串的個數(shù)。argv是一個指向字符型的指針數(shù)組的指針。28. 在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為(分?jǐn)?shù):1.00)A. 32B. 31C. 16V15解析:解析所謂滿二叉樹是指這樣的一種二叉樹:除最后一層外,每一層上的所有結(jié)點都有兩個葉子結(jié)點。這就是說,在滿二叉樹中,層上的結(jié)點數(shù)都達(dá)到最大值,即在滿二叉樹的第k層上有2k-1個結(jié)點,且深度為m的滿二叉樹有2疑個結(jié)點。29. 下列語句中,錯誤的是(x,y,a,b假設(shè)已經(jīng)定義好)(分?jǐn)?shù):1

31、.00)A. while(x=5;B. dox+while(x=10);VC. while(0);d02;while(a=;解析:解析do和while之間只能是一條可以執(zhí)行的語句。分號是語句的一部分。d-while執(zhí)行多條語句時,應(yīng)用“”括起來,組成復(fù)合語句。若有以下程序#include<stdio.h>inta=2,4,6,8;main()inti;int*p=a;for(i=0;iv4;i+)ai=*p;printf("%d/n”,a2);上面程序輸出結(jié)果是(分?jǐn)?shù):1.00)A. 6B. 8C. 42V解析:解析在C語言中,數(shù)組元素下標(biāo)是從0開始的;指針變量p指向數(shù)組

32、的首地址。for循環(huán)語句中,指針變量p始終指向數(shù)組的首地址,因而執(zhí)行循環(huán)賦值語句后數(shù)組各元素的值均變?yōu)?。30. 以下對結(jié)構(gòu)體類型變量的定義中,不正確的是(分?jǐn)?shù):1.00)A. typedefstructaaintn;floatm;AA;AAtdl;B. #defineAAstructaaAAintn;floatm;tdl;C. structintn;floatm;aa;structaatdl;Vstructintn;floatm;tdl;解析:解析定義結(jié)構(gòu)體類型的變量有幾種的方法如下:定義結(jié)構(gòu)體類型的同時,定義結(jié)構(gòu)體類型的變量,如下面的定義中在定義結(jié)構(gòu)體類型aa的同時定義了該類型的變量tdl

33、o上述B)項中將宏名AA用宏體structaa替換進(jìn)去后,與該定義形式一樣,因此是正確的。這一定義形式中,結(jié)構(gòu)體類型名明是可以省略的,因此,D)項也是正確的。structaa.tdl;先定義結(jié)構(gòu)體類型,然后再定義結(jié)構(gòu)體類型的變量,形式如下:structaa-;structaatdl;這種定義形式也可演變?yōu)?,先用類型定義語句typedef將該結(jié)構(gòu)體類型定義成一個類型名AA,然后直接用該類型名AA去定義一個變量(這時不再需要使用關(guān)鍵字struct了)。這就是A)項的形式。以下程序的輸出結(jié)果是intf()staticinti=0;ints=1;s+=i;i+;returns;main()inti,a

34、=0;for(i=0;i<5;i+)a+=f();printf("%d/n",a);(分?jǐn)?shù):1.00)A. 20B. 24C. 2515V解析:解析對函數(shù)的靜態(tài)局部變量是在編譯時就賦初值,即只賦初值一次,在程序運行時它已有初值,以后每次調(diào)用函數(shù)時不再重新賦值,而只是保留上次函數(shù)調(diào)用結(jié)束時的值。31. 若w=l,x=2,y=3,z=4,則條件表達(dá)式w<x?w:y<z?y:z的值是(分?jǐn)?shù):1.00)A. 4B. 3C. 21V解析:解析本題考查了條件表達(dá)式的計算方法。條件表達(dá)式的運算順序是從右至左,所以本題先計算條件表達(dá)式y(tǒng)<z?y:z的值,為3,然后再

35、計算條件表達(dá)式w<x?w:3的值,為1。32. C語言中,能識別處理的文件為(分?jǐn)?shù):1.00)A. 文本文件和數(shù)據(jù)塊文件B. 文本文件和二進(jìn)制文件VC. 流文件和文本文件數(shù)據(jù)文件和二進(jìn)制文件解析:解析在計算機(jī)中,對于輸入輸出均采用數(shù)據(jù)流的形式。文件按照存取方式分為順序存取文件和隨機(jī)存取文件。按照存儲形式分為二進(jìn)制文件和文本文件。文本文件存儲的是一個ASCII碼,文件的內(nèi)容可以直接進(jìn)行輸入輸出。二進(jìn)制文件直接將字符存儲,不能將二進(jìn)制文件的內(nèi)容直接輸出到屏幕上。所以,C語言所能夠處理文件是按照存放形式分為文本文件和二進(jìn)制文件。33. 下列程序的輸出結(jié)果是#include"stdio

36、.h"#defineM(x,y)x%ymain()(inta,m=12,n=100;a=M(n,m);printf("%d/n”,a-);(分?jǐn)?shù):1.00)A. 2B. 3C. 4V5解析:解析帶參數(shù)的宏定義命令行形式如下:#define宏名(形參表)替換文本在編譯的時候編譯預(yù)處理程序用“替換文本”來替換宏,即M(n,m)被替換為n%m之后計算,將計算的結(jié)果賦給a。注意,宏替換是在編譯時由預(yù)處理程序完成的,宏替換不占用運行的時間,而函數(shù)調(diào)用是在程序運行時進(jìn)行的,在函數(shù)的調(diào)用過程中需要占用一系列的處理時間。下列程序的運行結(jié)果是#include"stdio.h&quo

37、t;main()(intx=-9,y=5,z=8;if(x<y)if(y<0)z=0;elsez+=1;printf("%d/n”,z);(分?jǐn)?shù):1.00)A. 6B. 7C. 89V解析:解析if.else語句的執(zhí)行過程如下,首先計算if后面一對圓括號內(nèi)表達(dá)式的值,若表達(dá)式的值為非0,執(zhí)行if子句,然后跳過else子句,去執(zhí)行if語句后的下一條語句;若表達(dá)式的值為0,跳過if子句,去執(zhí)行else子句,接著去執(zhí)行if語句后的下一條語句。C語言的語法規(guī)定,else子句總是與前面最近的不帶else的if匹配,與書寫格式無關(guān),本題目的后一個ifelse相當(dāng)于嵌套在第一個if子句

38、里,相當(dāng)于x<y&&yv0時,z=0;當(dāng)x<y&&y>=0時,z=z+1。34. 軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括軟件開發(fā)技術(shù)和(分?jǐn)?shù):1.00)A. 消除軟件危機(jī)B. 軟件工程管理VC. 程序設(shè)計自動化實現(xiàn)軟件可重用解析:解析軟件工程的目標(biāo)是,在給定的成本、進(jìn)度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。基于這一目標(biāo),軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。35. 下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是(分?jǐn)?shù):1.00)A.

39、數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余VB. 數(shù)據(jù)庫系統(tǒng)避免了一切冗余C. 數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)解析:解析數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值。36. 以下對C語言函數(shù)的有關(guān)描述中,正確的是(分?jǐn)?shù):1.00)A. 在C語言中調(diào)用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參VB. C函數(shù)既可以嵌套定義又可以遞歸調(diào)用C. 函數(shù)必須有返回值,否則不能使用函數(shù)函數(shù)必須有返回值,返回值類型不定解析:解析C語言中的函數(shù)可以進(jìn)行遞歸調(diào)用,但是不能在函數(shù)中定義函數(shù),函數(shù)不必要

40、有返回值,若有返回值,則返回值類型必確定。37. 下列關(guān)于C語言的說法不正確的是(分?jǐn)?shù):1.00)A. C語言既具有高級語言的一切功能,也具有低級語言的一些功能B. C語言中的每一條執(zhí)行語句都必須用分號結(jié)束,分號不是C語言的一部分,是語句之間的分隔符號VC. 注釋可以出現(xiàn)在程序中任意合適的地方命令行后面不能加分號,命令行不是C語言的語句解析:解析分號是C語言的一部分,不是語句之間的分隔符號。C語言中的每一條執(zhí)行語句都必須用分號“;”結(jié)束,分號是C語言的一部分,不是語句之間的分隔符號。38. 索引屬于(分?jǐn)?shù):1.00)A. 模式B. 內(nèi)模式VC. 外模式概念模式解析:解析內(nèi)模式(Internal

41、Schema)又稱物理模式(PhysicalSchema),它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑。39. 現(xiàn)有如下定義:inta,b,*p,*q;,則下列賦值語句錯誤的是(分?jǐn)?shù):1.00)A. p=&a;B. q=&b;C. p=q;p=a;V解析:解析給一個指針變量賦值可以通過以下方法:通過求地址運算(&)獲得地址,通過指針變量獲得地址,通過標(biāo)準(zhǔn)函數(shù)獲得地址值。一個指針沒有指向一個空間的時候,不能賦予一個固定的值,而且不加星號的指針指的是地址。若有下面的說明和定義,則sizeof(structaa)的

42、值是structaaintrl;doubler2;floatr3;unionuucharu15;longu22;ua;mya;(分?jǐn)?shù):1.00)A. 30B. 29C. 2422V解析:解析本題主要考查結(jié)構(gòu)體變量和共用體變量所占存儲空間大小的計算方法。結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和,每個成員分別占有自己的內(nèi)存單元;共用體變量所占的內(nèi)存長度等于最長的成員的長度。結(jié)構(gòu)體變量aa中,成員r1占2個字節(jié),r2占8個字節(jié),r3占4個字節(jié),共用體ua占8個字節(jié),所以共占用2+8+4+8=22個字節(jié)。二、B填空題/B(總題數(shù):18,分?jǐn)?shù):36.00)在樹形結(jié)構(gòu)中,樹根結(jié)點沒有U【1】/Uo(

43、分?jǐn)?shù):2.00)填空項1:(正確答案:前件)解析:解析在樹形結(jié)構(gòu)中,每一個結(jié)點只有一個前件,稱為父結(jié)點,沒有前件的結(jié)點只有一個,稱為樹的根結(jié)點;每一個結(jié)點可以有多個后件,它們都稱為該結(jié)點的子結(jié)點。沒有后件的結(jié)點稱為葉子結(jié)點。Jackson結(jié)構(gòu)化程序設(shè)計方法是英國的M.Jackson提出的,它是一種面向U【2】/U的設(shè)計方法。(分?jǐn)?shù):2.00)填空項1:(正確答案:數(shù)據(jù)結(jié)構(gòu))解析:解析結(jié)構(gòu)化分析方法主要包括:面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA-Structuredanalysis),面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD-Jacksonsystemdevelopmentmethod)和面向數(shù)據(jù)結(jié)

44、構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD-Datastructuredsystemdevelopmentmethod)。40. 面向?qū)ο蟮哪P椭校罨镜母拍钍菍ο蠛蚒【3】/Uo(分?jǐn)?shù):2.00)填空項1:(正確答案:類)解析:解析面向?qū)ο竽P椭?,最基本的概念是對象和類。對象是現(xiàn)實世界中實體的模型化;將屬性集和方法集相同的所有對象組合在一起,可以構(gòu)成一個類。41. 軟件設(shè)計模塊化的目的是U【4】/Uo(分?jǐn)?shù):2.00)填空項1:(正確答案:降低復(fù)雜性)解析:解析模塊化是指解決一個復(fù)雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程,由此分解來降低復(fù)雜性。42. 數(shù)據(jù)模型按不同應(yīng)用層次分成3種類型

45、,它們是概念數(shù)據(jù)模型、U【5】/U和物理數(shù)據(jù)模型。(分?jǐn)?shù):2.00)填空項1:(正確答案:邏輯數(shù)據(jù)模型)解析:解析數(shù)據(jù)是現(xiàn)實世界符號的抽象,而數(shù)據(jù)模型(datamodel)則是數(shù)據(jù)特征的抽象,它從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束行為,為數(shù)據(jù)庫系統(tǒng)的信息表示與操作提供一個抽象的框架。數(shù)據(jù)模型按不同的應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型(conceptualdatamodel)、邏輯數(shù)據(jù)模型(logicdatamodel)、物理數(shù)據(jù)模型(physicaldatamodel)。43. 以下程序運行后的輸出結(jié)果是U【6】/U。main()intx=0210;printf("

46、%X/n”,x);(分?jǐn)?shù):2.00)填空項1:(正確答案:88)解析:解析以0開頭的數(shù)是八進(jìn)制數(shù)。所以x=0210表示八進(jìn)制數(shù)210o”%x”表示以16進(jìn)制的形式輸出,所以輸出結(jié)果為88o閱讀下面程序,則執(zhí)行后的輸出結(jié)果是U【7】/U。#include"stdio.h"main()intx,y,z;x=1;y=2;z=3;if(x>y)if(x>z)printf("%d”,x);elseprintf("%d",y);printf("%d/n",z);(分?jǐn)?shù):2.00)填空項1:(正確答案:3)解析:解析C語言的語

47、法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合。因為x不大于y,所以執(zhí)行printf("%d/n",z);語句。44. 用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁?。st=(char*)U【8】/U;(分?jǐn)?shù):2.00)填空項1:(正確答案:malloc(11)或malloc(sizeof(char)*11)。)解析:解析malloc函數(shù)的參數(shù)可以是一個具體的常數(shù),也可以是一個表達(dá)式。在本題中,可以是malloc(11),也可以借助于sizeof運算符來表示。閱讀下面程序,則程序的執(zhí)行結(jié)果為U【9】/U。#includ

48、e"stdio.h"main()inta=30,b=20,z;z=fun(a+b,a-b);printf("%d/n",z);fun(inta,intb)intz;z=a/b;returnz;(分?jǐn)?shù):2.00)填空項1:(正確答案:5)解析:解析函數(shù)調(diào)用的時候,函數(shù)名字必須與所調(diào)用的函數(shù)名完全一致,形參與實參類型要一致,在沒有給出函數(shù)返回值類型的情況下,默認(rèn)為整形,當(dāng)返回值為整型的函數(shù)放到主函數(shù)后面時,可以不需要事先說明就調(diào)用這個函數(shù)。return既可以返回一個普通常量,也可以返回一個指針變量。以下程序的輸出結(jié)果是U【10】/U。main()inty=9

49、;for(;y>0;y-)if(y%3=0)printf("%d",-y);continue;(分?jǐn)?shù):2.00)填空項1:(正確答案:852)解析:解析循環(huán)前,變量y的值為9,其中的循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值減1。循環(huán)體是當(dāng)y能被3整除時輸出表達(dá)式-y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán)。所以程序輸出852。45. 下列語句的輸出結(jié)果是U【11】(/U)。ch

50、ara=3;printf("%d,%q%x%u/n",a,a,a,a);(分?jǐn)?shù):2.00)填空項1:(正確答案:31,37,1f,31)解析:解析此題考查了printf函數(shù)的格式字符,題中d是以十進(jìn)制形式輸出,。是以八進(jìn)制形式輸出,x是以十六進(jìn)制形式輸出,u以不帶符號的十進(jìn)制數(shù)輸出。下述程序的輸出結(jié)果是U【12】/U。#include<stdio.h>intfun(intx)intp;if(x=0|x=1)return3;elsep=x-fun(x-2);returnp;voidmain()printf("/n%d",fun(9);(分?jǐn)?shù):2.00)填空項1:(正確答案:7)解析:解析此題考查的是函數(shù)的遞歸調(diào)用。x=0或x=1是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結(jié)果。以下函數(shù)用來在w數(shù)組中插入x。n所指向的存儲單元中存放w數(shù)組中字符個數(shù)。數(shù)

溫馨提示

  • 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

提交評論