版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
國家二級(C語言)筆試模擬試卷20
一、公共基礎(chǔ)選擇題(本題共70題,每題7.0分,共
10分。)
1、下列選項中不屬于算法的特性的是
A、確定性
B、可行性
C、有輸出
D、無窮性
標(biāo)準(zhǔn)答案:8
知識點解析:一個算法必須具有五個特性,即有窮性、確定性、可行性,有輸入、
有輸出.其中有窮性是指算法必須總是在執(zhí)行完有窮步之后結(jié)束,而且每步都在有
窮時間內(nèi)完成。D選項不是算法的特性。
2、下列敘述中正確的是
A、線性表是線性結(jié)構(gòu)
B、棧與隊列是非線性結(jié)構(gòu)
C、線性鏈表是非線性結(jié)構(gòu)
D、二叉樹是線性結(jié)構(gòu)
標(biāo)準(zhǔn)答案:1
知識點解析:所謂的線性結(jié)構(gòu)是指:如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件,
即1)有且只有一個根結(jié)點;2)每一個結(jié)點最多有一個前件,也最多有一個后件.所
以同時滿足兩個條件的有隊列,線性表、棧,而二叉樹的結(jié)點可能存在兩個后件,
不是線性結(jié)構(gòu)。正確答案為A。
3、設(shè)有下列二叉樹:對此二叉樹中序遍歷的結(jié)果為
A、ABCDEF
B、DAECF
C、BDAECF
D、DBEFCA
標(biāo)準(zhǔn)答案:4
知識點解析:叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求中序遍
歷,其遍歷順序應(yīng)該為:中序遍歷左子樹訪問根結(jié)點->中序遍歷右子樹.按
照定義,中序遍歷序列是BDAECF,故答案為B。
4、結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是
A、程序的規(guī)模
B、程序的易讀性
C、程序的執(zhí)行效率
D、程序的可移植性
標(biāo)準(zhǔn)答案:2
知識點解析:按結(jié)構(gòu)化程序設(shè)計方法設(shè)計出的程序具有明顯的優(yōu)點,即程序易于理
解、使用和維護,便于控制、降低程序的復(fù)雜性,便于驗證程序的正確性,程序清
晰易讀,可理解性好。所以答案為B。
5、在面向?qū)ο笤O(shè)計中,對象有很多基本特點,其中“從外面看只能看到對象的外部
特性,而對象的內(nèi)部對外是不可見的”這一性質(zhì)指的是對象的
A、分類性
B、標(biāo)識惟一性
C、多態(tài)性
D、封裝性
標(biāo)準(zhǔn)答案:8
知識點解析:從外面看只能看到對象的外部特性,而對象的內(nèi)部,即處理能力的實
行和內(nèi)部狀態(tài),指的是對象的封裝性。
6、用黑盒技術(shù)測試用例的方法之一為
A、因果圖
B、邏輯覆蓋
C、循環(huán)覆蓋
D、基本路徑測試
標(biāo)準(zhǔn)答案:1
知識點解析:黑盒測試主要方法有等價值劃分法、邊界值分析法,錯誤推測法、因
果圖法等.白盒測試的主要方法有邏輯覆蓋、基本路徑測試循環(huán)覆蓋等。只有A
屬于黑盒測試。
7、在進行單元測試時,常用的方法是
A、采用白盒測試,輔之以黑盒測試
B、采用黑盒測試,輔之以白盒測試
C、只使用白盒測試
D、只使用黑盒測試
標(biāo)準(zhǔn)答案:1
知識點解析:白盒測試是測試程序內(nèi)部邏輯結(jié)構(gòu),黑盒測試只依據(jù)程序的需求規(guī)格
說明書,檢查程序的功能是否符合它的功能說明。從程序內(nèi)部的邏輯結(jié)構(gòu)對系統(tǒng)進
行測試才是測試的根本,更容易發(fā)現(xiàn)和解決程序中的問題,因此單元測試時應(yīng)該以
白盒測試為主,而黑盒測試為輔。
8、下面四個選項中,不屬于數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言的是
A、數(shù)據(jù)定義語言
B、數(shù)據(jù)查詢語言
C、數(shù)據(jù)操縱語言
D、數(shù)據(jù)控制語言
標(biāo)準(zhǔn)答案:2
知識點解析:通常數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言有數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言
和數(shù)據(jù)控制語言。其中數(shù)據(jù)操縱語言負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增、刪,改等操
作。所以查詢語言屬于數(shù)據(jù)操縱語言的一部分。
9、在關(guān)系數(shù)據(jù)庫模型中,通??梢园?)稱為屬性,其值稱為屬性值。
A、記錄
B、基本表
C、模式
D、字段
標(biāo)準(zhǔn)答案:8
知識點解析:數(shù)據(jù)庫表中字段轉(zhuǎn)化為屬性,把記錄的類型轉(zhuǎn)化為關(guān)系模式。
10、實體聯(lián)系模型中實體與實體之間的聯(lián)系不可能是
A、一對一
B、多對多
C、一對多
D、對零
標(biāo)準(zhǔn)答案:8
知識點解析:實體聯(lián)系模型中實體與實體之間的聯(lián)系有一對一(1:1),一對多戌多對
—(l:m或m:1),多對多(m:n)其中一對一是最常用的關(guān)系。
二、選擇題(1分)(本題共10題,每題1.0分,共10
分。)
11、下列敘述中正確的是
A、C語言中既有邏輯類型也有集合類型
B、C語言中沒有邏輯類型但有集合類型
C、C語言中有邏輯類型但沒有集合類別
D、C語言中既沒有邏輯類型也沒有集合類型
標(biāo)準(zhǔn)答案:8
知識點解析:本題考核的知識點是c語言數(shù)據(jù)類型,在C語言中沒有邏輯類型,
邏輯類型用整型來表示,故選項A和選項C不正確;C語言中沒有集合類型,故
選項B不正確。所以,D選項為所選。
12、若以下選項中的變量已正確定義,則正確的賦值語句足
A、xl=26.8%3;
B、l+2=x2
C、x3=0x12;
D、x4=1+2=3;
標(biāo)準(zhǔn)答案:4
知識點解析:本題考核的知識點是C語言中對變量賦值的應(yīng)用。賦值操作由賦值
運算符“=”來完成,一般形式為變量:表達式,賦值的方向為由右向左,即將“;”
右側(cè)表達式的值賦給左側(cè)的變量,執(zhí)行步驟是先計算再賦值。選項A中運算符
"%”的運算對象必須為整數(shù),而選項A中26.8不為整數(shù),故選項A不正確;選項
B將一個變量賦值給一個表達式,這在C語言中是不允許的,故選項B不正確;
選項D中也是將一個常量3賦值給一個表達式,故選項D不正確;所以,4個選項
中選項C符合題意。
13、有以下程序main。{intm=3n=4,X;X=-m+-;x=x+8/++n;printf("%d\n",x);)
程序運行后的輸出結(jié)果是
A、3
B、5
C、-1
D、-2
標(biāo)準(zhǔn)答案:8
知識點解析:本題考核的知識點是運算符的優(yōu)先級。主函數(shù)中首先定義了整型變量
m、n和x,并給m和n賦初值為3和4,接著執(zhí)行兩條賦值語句,第一條x=m++
等價于x=-(m++),其值即為第二條x=x+X/++n等價于X=X+8/(++n),即為x=-
3+8/5=-2,因此最后輸出x的值為-2。所以,4個選項中選項D符合題意。
A、T=RAS
B、T=RUS
C、T=RxS
D、T=R/S
標(biāo)準(zhǔn)答案:2
知識點解析:選項A、B、C分別進行交運算、并運算,笛卡爾積運算,選項D不
是關(guān)系運算。T由屬于關(guān)系R以及關(guān)系S的元組組成,簡單來說,就是s和R的元
組之和,是并運算,選項B正確。
15、設(shè)有定義:longx=-123456L;,則以下能夠正確輸出變量x值的語句是
A、printf("x=%d\nn,x);
printf("x=%ld\n",x);
C、printf(nx=%8dL\nH,x);
D、printf("x=%LD\n",x);
標(biāo)準(zhǔn)答案:2
知識點解析:本題考查的知識點是輸出語句printf。的基本用法。x為一個長整型的
變量,而且是一個十進制的數(shù),它的輸出控制符是%Id”,所以排除選項A和選項
C;由于C語言中是區(qū)分大小寫的,“Id”中的“d”不能為大寫,故排除選項D。4個
選項中B正確。
16^有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case0:prinft("%d",i);case
2:prinft("%d',,i);default:prinft(',%d,',i);))程序運行后的輸出結(jié)果是
A、22111
B、21021
C、122
D、12
標(biāo)準(zhǔn)答案:4
知識點解析:本題考核的知識點是for循環(huán)和switch語句的混合應(yīng)用。程序中for
循環(huán)了三次,第一次i=0,執(zhí)行switch語句中case。:分支,直到遇到default語
句,退出switch,這里共執(zhí)行?三個輸出語句分別輸出0,0,0,第二次循環(huán)i=l,
switch語句中沒有匹配的分支,故只執(zhí)行default語句輸出1,退出switch語句;第
三此循環(huán)i=2,從switch語句中的case2:開始執(zhí)行,共執(zhí)行了兩個輸出語句輸出
2、2c最后輸出的結(jié)果為000122.所以.4個選項中選項「符合題意.
17、有以下程序main(){inti=l,j=l,k=2;if((j++||k++)&&i++)printf
(”%d,%d,%d\n”,i,j,k);執(zhí)行后輸出的結(jié)果是
A、1,1,2
B、2,2,1
C、2,2,2
D、2,2,3
標(biāo)準(zhǔn)答案:4
知識點解析:本題考核的知識點是if語句的應(yīng)用。首先計算if語句后面的表達式
值,先計算運算符&&前面括號里的“II”運算.在“II”運算中先計算j++,值為10
的值為2),為真,后面的k++將不再計算,k的值依舊為2。計算&&后面的表達式
i++,值為l(i的值變?yōu)?)。整個表達式的值為真,所以執(zhí)行后面的輸出語句,最
后輸出的i,j和k的值為2,2和2.所以,C選項為所選。
Ix>0
0x?0
18、有一函數(shù)7以下程序段中不能根據(jù)x值正確計算出y值的是
A、if(x>0)y=l;elseif(x==O)y=0;elsey=-l;
B、y=0;if(x>0)y=l;elseif(x<0)y=-l;
C^y=0;if(x>=0);if(x>0)y=l;elsey=-l;
D、if(x>=0)if(x>0)y=l;elsey=0;elsey=-l;
標(biāo)準(zhǔn)答案:4
知識點解析:本題考查的知識點是if語句的嵌套使用.首先檢查訂與else的配
對,然后再分析各分支實現(xiàn)的功能.選項A描述的意思是:在x>二O情況下,則
y為1,否則;在x=O時,y為0,剩下的xVO時,y為-1,滿足本題中函數(shù)的要
求:選項B描述的意思時:初始化y的值為0,在x>0時,給y重新賦值為1,否
則,在xVO時,給y重新賦值為-1,滿足本題中函數(shù)的要求;選項C描述的意思
是:在x>0情況下,如果x>0,則y為1,否則即“c==0”時,y為?1:剩下的xV
0時,y為。.可見答案C實現(xiàn)的結(jié)果不是給定的表達式。選項D中描述的意思
是:在x>=0的情況下,如果x>=0,就給y賦值為1,否則就給y賦值為0,在
不是x>=0的其他情況下,就給y賦值為-1,滿足本題中函數(shù)的要求.所以4個選
項中C為所選。
19、以下敘述中正確的是
A、調(diào)用prinlf函數(shù)時,必須耍有輸出項
B、使用putchar函數(shù)時,必須在之前包含頭文件stdio.h
C、在C語言中,整數(shù)可以以十二進制、八進制或十六進制的形式輸出
D、調(diào)用getchar函數(shù)讀入字符時,可以從鍵盤上輸入字符所對應(yīng)的ASCII碼
標(biāo)準(zhǔn)答案:2
知識點解析:本題考查了C語言的一些基本概念.printf()函數(shù)可以只有控制項而
沒有輸出項,例如:printfC'Hello!");,所以選項A不正確。C語言中不支持整數(shù)
以十二進制輸出,因此選項C不正確。gctchar。函數(shù)從鍵盤讀入一個字符,而不管
該字符為數(shù)字還是字母,因此輸入ASCH碼的話,只能讀到第1個數(shù)字字符,所
以選項D不正確。故應(yīng)該選擇B,pulchar是C語宮中的庫函數(shù),使用時必須包含
sMio.ho
20、以下關(guān)于函數(shù)的敘述中正確的是
A、每個函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))
B、每個函數(shù)都可以被單獨編譯
C、每個函數(shù)都可以單獨運行
D、在一個函數(shù)內(nèi)部可以定義另一個函數(shù)
標(biāo)準(zhǔn)答案:2
知識點解析:本題考查函數(shù)的一些概念.main()函數(shù)是一個程序的主函數(shù),它由系
統(tǒng)調(diào)用,所以選項A不正確。一個C語言源程序文件可以只包含一個函數(shù),每個
源文件都可以被單獨編譯成。obj文件,最后鏈接成可執(zhí)行文件。因此每個函數(shù)都
可以被單獨編譯,選項B正確。一個C程序必須從主函數(shù)main()開始運行,其他
函數(shù)只能是直接或間接被main。函數(shù)調(diào)用才能得以運行,因此選項C錯誤。C語言
不支持函數(shù)的嵌套定義,所有函數(shù)只能是全局函數(shù),所以選項D錯誤。故應(yīng)該選
擇B。
三、選擇題(2分)(本題共30題,每題1.0分,共30
分。)
21、以下程序段中與語句k=a>b?(b>c?l:0):0;功能等價的是()。
A、if((a>B)&&(b:>C))k=l;elsek=0;
B、if(a>B)II(b>C)k=l;elsek=0;
C>if(a<=B)k=0;elseif(b<=e)k=I;
D、if(a>B)k=l;elseif(b>C)k=l;elsek=0;
標(biāo)準(zhǔn)答案:1
知識點解析:分析題目中給出的表達式可知,如果a>b和b>c同時成立,k=l,
否則k=0。所以,4個選項中選項A符合題意。
22、有以下程序:#include<stdio.h>main(){inty=9;for(;y>0;y-)if(y%3==0)
printf("%d",-y);)程序的運行結(jié)果是()。
A、741
B、963
C、852
D、875421
標(biāo)準(zhǔn)答案:4
知識點解析:本題首先令y為9,然后通過一個for循環(huán),當(dāng)y還大于0則循環(huán),
每次循環(huán)讓y遞減1。循環(huán)體中是一條if語句,通過%運算符計算每當(dāng)y能被3整
除的時候,輸出-y的值,即先將y減1,然后輸出y的值。故當(dāng)y等于9、6、3時
會輸出,輸出值分別為8、5、20所以應(yīng)該選擇C。
23已定義以下函數(shù);intfun(inl*p){relurn*p;}fun函數(shù)返回值是()。
A^不確定的值
B、一個整數(shù)
C、形參p中存放的值
D、形參p的地址值
標(biāo)準(zhǔn)答案:2
知識點解析:題目中fun()函數(shù)的返回表達式是*p,所以選項C、D不為所選,而
應(yīng)該是形參p所指內(nèi)容的值,因為p為int型指針,所以該值是一個整數(shù)。故應(yīng)該
選擇Bo
24、以下程序的輸出結(jié)果是()。main(){inta=5,b=4,c=6,d;printf("%d\n",d=a>b?(a
>c?a:C):(B));}
A、5
B、4
C、6
D、不確定
標(biāo)準(zhǔn)答案:4
知識點解析:本題中的printf()函數(shù)中的輸出表達式,首先計算括號內(nèi)的條件表達
式,它的值為6(a>c?a:c中a>e即5>6為假故該表達式的值為c的值即為6),然
后再計算外面表達式(等價于a>b?6:B)的值,同理可得該表達式的值為6,將值6
賦值給d,因此最后輸巴該表達式的值為6,所以,4個選項中C為所選。
25、有以下程序:mam(){inti=10,j=l;printf(,,%d,%d\n,\i-,++j);}執(zhí)行后輸出的
結(jié)果是()。
A、9,2
B、10,2
C、9」
D、10,1
標(biāo)準(zhǔn)答案:2
知識點解析:++、-運算符在變量之前是先使變量的值加1或減1,然后再使用變
量的值:如果在變量之后則先使用變量之前的值,再把變量的值加1或減1。顯
然,程序中表達式的值為10,“十十『'的值為2,所以最后輸出的值為10和2,
所以,B選項為所選。
26、若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯誤的是()。
A、函數(shù)調(diào)用可以作為獨立的語句存在
B、函數(shù)調(diào)用可以作為一個函數(shù)的實參
C、函數(shù)調(diào)用可以出現(xiàn)在表達式中
D、函數(shù)調(diào)用可以作為一個函數(shù)的形參
標(biāo)準(zhǔn)答案:8
知識點解析:在C語言中規(guī)定:有返I川值的函數(shù)調(diào)用,可以作為表達式或表達式
的一部分,也可以作為一條語句,故選項A和選項C正確;而有返回值的函數(shù)調(diào)
用只能作為一個函數(shù)的實參(即將其返回值傳給相應(yīng)的形參),而不能作為形參(因為
行參是在函數(shù)定義時說明的),故選項B正確選項D不正確。所以,4個選項中選
項D符合愿意。
27、有以下函數(shù)定義:voidfun(intn,doubx){……}若以下選項中的變量都已正
確定義并賦值,則對函數(shù)fun的正確調(diào)用語句是()。
A、fun(inty,doublem);
B、k=fun(10,12.5);
C^fun(x,n);
D、voidfum(n,x);
標(biāo)準(zhǔn)答案:4
知識點解析:選項A中應(yīng)將y和m前面的函數(shù)的類型說明符去掉,故選項A不正
確;選項B中函數(shù)傳了2個參數(shù),其中一個為整型一個為浮點型,而fun()函數(shù)在
定義時聲明的2個參數(shù),一個為整型一個為雙精度型,其參數(shù)類型不一致,故選項
B不正確;選項D在調(diào)用函數(shù)時,不應(yīng)該再聲明其返回類型,故選項D不正確。
所以,4個選項中選項C符合題意.
28、有以下程序:fun(intx){intp;if(x==OIIx=l)retum(3);p=x-fun(x-2);return
p;}main(){printf(H%d\n",fun(7);)執(zhí)行后的輸出結(jié)果是()。
A、7
B、3
C、2
D、0
標(biāo)準(zhǔn)答案:4
知識點解析:本題的fun()函數(shù)在x等于?;?時返回3,而在其余情況下返回x-
(r-喊》=1)
fun(X-2),所以本題的遞歸算法可以這樣來表示:|^Mr)=r-AMx-2)(-0由*1>在主
函數(shù)中輸出的結(jié)果是fun(7),而fun(7)=7-fun(5)=7-(5-fiin(3))=7-(5-(3-fun(1)))=7-(5-
(3-3))=7-(5-0)=7-5=2o或本題應(yīng)該選擇Co
29、有以下程序:main(){inta[3][3],*p.i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;
for(i=0;i<3;i++)printf("%d,,,a|IJ|iJ);}程序運行后的輸出結(jié)果是().
A、012
B>123
C、234
D、345
標(biāo)準(zhǔn)答案:8
知識點解析:本題中定義的二維數(shù)組a[3]⑶中9個元素在內(nèi)存中的排列順序是:
a[0][0],a[0][l],a[0][2],a[l][0],a[l][l],a[l][2],a[2][0],a[2][l],a[2][2]o在
主函數(shù)中,首先定義了二維數(shù)組a[3][3],然后定義了一個指針p指向數(shù)組a的第1
個元素a|0]⑼在第一個for循環(huán)中,依數(shù)組a在內(nèi)存中的排列順序為其元素賦從
0?8九個值,然后用第二個for循環(huán)依次輸出⑼,三個元素的
值。所以,4個選項中選項D符合題意。
30、設(shè)函數(shù)fun的定義形式為voidfun(charch,floatx){…}則以卜對函數(shù)fun的調(diào)
用語句中,正確的是(),
A、fun(”abc”,3.0);
B、t=fun(,D;16.5);
C、fiin(,65\2.8);
D、fun(32,32);
標(biāo)準(zhǔn)答案:8
知識點解析:題目中定義的函數(shù)fun()有兩個參數(shù),一個是字符型變量ch,另一個
是浮點型變景x,函數(shù)類型是void即無返回值。選項A調(diào)用fun的第1個參數(shù)是字
符串常量與字符變量不匹配,所以不正確。選項B是有返回值函數(shù)的調(diào)用形式,
不正確。選項C的第1個參數(shù)是錯誤的字符常量,字符常量是用單引號括起來的
-個字符(是轉(zhuǎn)義字符可能有多個字符),故也不正確。選項D使用兩個整型常量調(diào)
用fun這在C語言中是允許的。因為整型到字符型可以自動轉(zhuǎn)換,整型到浮點型也
可以自動轉(zhuǎn)換。故應(yīng)該選擇D。
31、若有定義;imw[3][5];,則以下不能正確表示該數(shù)組元素的表達式是()。
A、*(*w+3)
B、*(w+l)[4]
C、*(*(w+l))
D、*(&w[O][O]+l)
標(biāo)準(zhǔn)答案:2
知識點解析:通過一維數(shù)組名或指向維數(shù)組元素的指針來引用數(shù)組元素有兩種寫
法:a國和*(a+i),它們是等價的。這是一種運算符之間的等價轉(zhuǎn)換,就好像a-(b-
C)等價于a-b+c一樣。知道了這種轉(zhuǎn)換,我們可以將之?dāng)U展到二維數(shù)組甚至任意維
數(shù)組上來。因為H運算符的結(jié)合性是從左至右的,所以等價于(w[i][j],此時
可以先將任意一個口運算符轉(zhuǎn)換為指針形式為:(*(w+i)[j]或*(w[i]+j),或者同時轉(zhuǎn)
換:*(*(w+i)+j)。上述幾種形式都完全等價于w式用。選項A中,*(*w+3)可以看
成*(*(w+0)+3),即w[0][3],是正確的。選項B小,因為口運算符的優(yōu)先級高于*運
算符,所以*(w+l)[4]等價于*((w+l)[4]等價于*(*((w+l)+4)),即*(*(w+5)+0),它等
價于w[5][0],很明顯它超過數(shù)組的范圍了,故不正確。選項C等價于是
下確的。選項D中,&w[0][0]是數(shù)組w第1個元素的地址,它等價于
&*(*(w+0)+0),外面的&和*可以抵消,就好像先乘以個數(shù),然后再除以這個數(shù)一
樣。所以,&w[0][0]等價于*(w+0)+0。BP*Wo所以原式就變?yōu)?(*w+l)等價于
w[O][l],這個也是合法的。綜上所述,本題應(yīng)該選擇B。
32、有以下程序:voidf(intb[]){inti;for(i=2;i<6;i++)b[i]*=2;|main(){int
a[10]={1,2,3,4,5,6,7,8,9,10}5;f(A);for(i=0;i<10;i++)printf("%d,",a[i]);)程序運行
后的輸出結(jié)果是()。
A、1,2345678910.
B、1,2,6,8,10,12,7,8,9,10,
C、1,2,3,4,10,12,14,16,9,10,
D、1,2,6,8/0,12』4』6,9/0,
標(biāo)準(zhǔn)答案:2
知識點解析:本題中,f()函數(shù)通過一個for循環(huán)語句,將傳入數(shù)組的元素從下標(biāo)2
到下標(biāo)5每個自乘以2。因此,調(diào)用結(jié)束時,數(shù)組a中的內(nèi)容為
{1,2,6,8,10,12,7,8,9,10},故本題應(yīng)該選擇B?
33、有以下程序:intfun1(doubleA){returna*=a;)intfun2(doublex,doubley)
{doublea=0,b=0:a=funl(x);b=funl(y);return(int)(a-B);}main(){doublew:
w=fun2(l.l,2.0);……}程序執(zhí)行后變量w中的值是()。
A、5.21
B、5
C、5
D、0
標(biāo)準(zhǔn)答案:4
知識點解析:在funl()函數(shù)中只有一條retum語句,返回的是表達式a*=a的值,該
值等于a*a。但是,由于funl()函數(shù)的返回值類型被定義為im,所以返回值被取
整,即funl()函數(shù)實現(xiàn)的是求一個雙精度數(shù)平方的整數(shù)部分。在fun2()函數(shù)中,分
別對兩個參數(shù)調(diào)用funl{)函數(shù),然后將兩個返回值相加、取整后返回。所以,程序
執(zhí)行后,w中的值是[1.12]+⑵02]=1+4=5(中括號代表截尾取整)。又因為w被定義
為double型,所以變量w中的值應(yīng)該為一個雙精度值5.0。故應(yīng)該選擇C。
34、以下能正確定義一維數(shù)組的選項是()。
A、intnum[]:
#defineN100intnum[N];
C、intnum[0..100|;
D、intN=100;intniim[N];
標(biāo)準(zhǔn)答案:2
知識點解析:選項A定義數(shù)組時省略了長度,而C語言中規(guī)定,只有在定義并同
時進行初始化時,數(shù)組的長度才可以省略,數(shù)組的長度為初始化時候的成員個數(shù),
故選項A錯誤;在C語言中規(guī)定,數(shù)組的長度必須是一個整數(shù)或整型常量表達
式,故選項C不正確:定義時數(shù)組的長度不能使用變顯表示,故選項D不正確,
所以,4個選項中選項B符合題意。
35、有以下程序:#defmeP3voidP(intx){return(p*x*x);}main()
{pritnf("%d\n”,F(3+5);}程序運行后的輸出結(jié)果是(),
A、192
B、29
C、25
D、編譯出錯
標(biāo)準(zhǔn)答案:8
知識點解析:本題是一道陷阱題,考生如果沒注意到F()函數(shù)被定義為void類型的
話,很容易錯選為選項A,其實應(yīng)該選擇選項D,編譯出錯。
36、有以下程序:mam(){chars[]="ABCD",*p;for(p=s+l;p<
s+4;p++)printf("%s\n,\p);)程序運行后的輸出結(jié)果是()。
A、ABCDBCDD
B、ABCD
C、BCD
D、BCDCDD
標(biāo)準(zhǔn)答案:8
知識點解析:本題中首先定義一個字符數(shù)組s,井將字符串“ABCD”存到數(shù)組s
中,定義了一個字符指針變量P,在接下來for循環(huán)中,循環(huán)體共執(zhí)行了三次,第
一次p指向s[l],所以此時輸出的p所指的字符串的值為BCD,第二次循壞p指向
s|2],所以此時輸出的p所指的字符串的值為CD,第三次循環(huán)p指向s[3],因此此
時輸出的p所指的字符串的值為D。所以,4個選項中選項D符合題意。
37、有以下程序:voidfunl(char*p){char*q;q=p;while(*q!='\0'){(*q)++;
q++;}}main(){chara||=)"Program"),*p;p=&a[3];funl(p)printf("%s\n'\A);}程序
執(zhí)行后的輸出結(jié)果是()c
A、Prohsbn
B、Prphsbn
C、Progsbn
D、Erogram
標(biāo)準(zhǔn)答案:1
知識點解析:在函數(shù)funl()中,首先將形參p的內(nèi)容存入臨時指針q中,然后使用
一個while循環(huán),當(dāng)q所指內(nèi)容不是字符串結(jié)束標(biāo)志”'(T時,讓q所指內(nèi)容增1,然
后將指針q增1指向下一個位置。所以函數(shù)funl()實現(xiàn)的功能是:將傳入字符串的
所有字符自增1。主函數(shù),指針p在被傳入funl()函數(shù)之前,初始化指向的是宇符
數(shù)組a的第4個元素,所以最終輸出的結(jié)果應(yīng)該是Prohsbn。故應(yīng)該選擇A。
38、有以下程序:#include<studio.h>#defmeF(X,Y)(X)*(Y)main(){inta=3,
b=4,printf("%d\n",F(a++,b++)):)程序運行后的輸出結(jié)果是().
A、12
B、15
C、16
D、20
標(biāo)準(zhǔn)答案:1
知識點解析:在程序中先用表達式將宏替換掉,則輸出語句中的表達式為
(a++)*(b++),而a++的值為3,b++的值為4。因此最后的值為3*4=12。所以,4個
選項中選項A符合題意。
39、以下語句或語句組中,能正確進行字符串賦值的是()。
A、char*sp;*sp="right!”;
B、chars[10];s="right!H;
C、chars[10];*s="right!H;
D、char*sp="right!";
標(biāo)準(zhǔn)答案:8
知識點解析:在選項A中,首先定義了一個字符指針sp,然后將個字符串賦給甲
所指的地址,這是錯誤的。因為sp是一個未經(jīng)初始化的野指針,不知其指向哪
兒,往一個不確定的地址中寫數(shù)據(jù)很容易讓程序出錯。選項B首先定義了一個字
符數(shù)組,然后將一個字符串賦給數(shù)組名,這是錯誤的。因為數(shù)組名是一個指針常
量,不可以被改變。選項C首先定義了一個字符數(shù)組,然后將一個字符串賦給數(shù)
組的第一個元素,這也是錯誤的。因為字符串在表達式中相當(dāng)于一個常字符指針,
將一個指針值賦給一個字符型變量是行不通的。選項D是定義一個字符指針sp,
同時使其指向一個字符串常量,即將個常字符型指針賦給sp。這是可行的。所
以,4個選項中選項D符合題意。
40、若有定義"int*p[3];”,則以下敘述中正確的是()。
A、定義了一個基類型為ini的指針變量p,該變量具有3個指針
B、定義了一個指針數(shù)組p,該數(shù)組含有3個元素,每個元素都是基類型為int的指
針
C、定義了一個名為*p的整型數(shù)組,該數(shù)組含有3個int類型元素
D、定義了一個可指向一維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有3個血類型元
素
標(biāo)準(zhǔn)答案:2
知識點解析:指針數(shù)組也是一種數(shù)組,所有有關(guān)的概念都適用于它。但它與普通的
數(shù)組又有區(qū)別,它的數(shù)組元素是指針類型,只能用來存放地址。其格式為:存儲類
型數(shù)據(jù)類型*指針數(shù)組名[長度1],其含義為:定義了一個長度1的數(shù)組,其中數(shù)組
元素為相應(yīng)存儲類型的指針,對比定義可知,選項A、C和D都不正確,所以,4
個選項中選項B符合題意。
41、有以下程序:intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}int
f(int(*f1)(),int(*f2)(),intx)returnC2(x)-fl(x);)main(){inti;
i=f(fa,fb,2);printf("%d\n",i);}程序運行后的輸出結(jié)果是()°
A、1268
B、8621
C、8162
D、8612
標(biāo)準(zhǔn)答案:4
知識點解析:函數(shù)f()有3個形式參數(shù)fl、和x,其中fl、t2是指向函數(shù)的指針
變量。在main。函數(shù)中執(zhí)行了函數(shù)調(diào)用從而使f()的形式參數(shù)fl指向了
fa,形式參數(shù)f2指向了把實參2傳給了行參變量x。函數(shù)f()中的return語句中
的相當(dāng)于“fb(2)-fa(2)”(fb⑵的返回值為2*2*2=8,fa(2)返回值為2*2=4)即(8-4),值
為4。函數(shù)f()執(zhí)行后把返回值4賦給了i,輸出i的值是4。所以4個選項中C正
確。
42>有以下程序:main(){inta[][3]={{1,2,3),{4,5,0)),(*pa)[3],i;pa=a;for(i=0;i<
3;i++)if(i<2)pa|l][i|=pa[l][i]-l;elsepa[l][i|=l;
printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結(jié)果是().
A、7
B、6
C、8
D^無確定值
標(biāo)準(zhǔn)答案:1
知識點解析:本題定義了一個指向由3個元素組成的一維數(shù)組的指針變量pa,通
過賦值讓它指向具有2行3列的數(shù)組a,此時用指針變量pa,表示數(shù)組元素
的形式是pa[im][j])。for循環(huán)執(zhí)行了3次;第一次i值為0,執(zhí)行pa[1][0]=pa[1]]0卜
1,執(zhí)行后的值變?yōu)?;第二次i值為1,執(zhí)行執(zhí)行后
的值為4;第三次i值為2,執(zhí)行pa[l]⑵=1,執(zhí)行后a[l]⑵的值變?yōu)?。故
prinff語句輸入的值為2+4+1=7。所以,A選項為所選。
43、有以下函數(shù):fun(char*a,char*b){while((*a!=,\0,)&&(*b!=,\0,)&&(*a=*b))
{a++;b++;}retum(*a-*b);}該函數(shù)的功能是()。
A、計算a和b所指字符串的長度之差
B、將b所指字符串復(fù)制到a所指字符串中
C、將b所指字符串連接到a所指字符串后面
D、比較a和b所指字符串的大小
標(biāo)準(zhǔn)答案:8
知識點解析:本題要求閱讀的代碼是一個函數(shù),閱讀之前先要看清函數(shù)的定義,該
函數(shù)有兩個參數(shù),都是字符指針,這說明它接收的是兩個字符串。該函數(shù)沒有定義
返回類型,C語言規(guī)定函數(shù)的返回類型為int時可以省略,所以切不可將其看成是
無返回類型的void型函數(shù),它是int型函數(shù)。函數(shù)體中除了返回語句外,只有一條
while循環(huán)語句,該循環(huán)的循環(huán)條件為(*a!=)(r)&&〔*b!=,\(r)&&(*a==*B),即當(dāng)a
和b所指處都不是字符結(jié)束符'(T并且a和b所指處的內(nèi)容相等時執(zhí)行循環(huán)。而循
環(huán)體中只是簡單地將指外a和b同時往后移動1位,循環(huán)結(jié)束后返回a所指內(nèi)容減
去b所指內(nèi)容的差。換個角度去考慮,也就是說當(dāng)字符串a(chǎn)或b中有一個結(jié)束了或
者是它們的相同位置小有一個字符不同時,則返回該位置兩個字符之差。若兩者長
度相同而且所有對應(yīng)字符都相同的話,最后返問的是、0-八0,=0,否則的話就返回兩
個字符串第一對不相同的字符之差。這時應(yīng)該可以看出來,這個函數(shù)實現(xiàn)的是對兩
個字符串的比較。所以,4個選項中D正確。
44、有以下程序:voidfun(int*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;i++;
j—;fun(a,ij);}}main(){intx[]={2,6J,8},i;fun(x,0,3);for(i=0;i<4;i++)
printf("%2d",x[i]);printf("\"n);}程序運行后的輸出結(jié)果是().
A、I268
B、8621
C、8162
D、8612
標(biāo)準(zhǔn)答案:4
知識點解析:函數(shù)fun()中用了一個if語句,當(dāng)數(shù)組下標(biāo)i小于數(shù)組下標(biāo)j時,交換
數(shù)組元素a[i]和a[j]的值,并使i值加1,j值減1。其功能就是把數(shù)組a中從下標(biāo)i
到j(luò)的元素首尾互換。主函數(shù)中定義一個數(shù)組,在定義該數(shù)組的時候缺省了定義長
度,定義的同時將其初始化賦值,所以該數(shù)組的長度為初始化該數(shù)組時的元素的個
數(shù)即4,接著調(diào)用「un(a、0.3),其中將a數(shù)組的第一個元素的下標(biāo)0和最后一個元素
的下標(biāo)3傳給了函數(shù)fun(),故執(zhí)行完該函數(shù)后,數(shù)組a中的元素首尾互換,因此
最后依次輸出的數(shù)組a中值為8,1,6和2,所以,4個選項中選項C符合題意。
45、以卜.程序的輸出結(jié)果是()。#include<stdio.h>#include<string.h>mam()
{charb1[8]=nabcdefg",b2[8],*pb=b1+3;while(-pb>=bl)strcpy(b2,pB);
printf("%d\n",strlen(b2));}
A、8
B、3
C、1
D、7
標(biāo)準(zhǔn)答案:8
知識點解析:首先定義了兩個字符數(shù)組bl和b2,并用一個字符串給bl賦初值,
然后定義了一個字符型由針變量pb,通過賦初值使它指向bl|3]。接著執(zhí)行while
循環(huán),該循環(huán)執(zhí)行了3次:第一次判斷條件"__pb>=bl”,使pb的值為“bl+2”,執(zhí)
行“strepy(b2,pB);”后,b2中的內(nèi)容為“cdcfg":第二次判斷條件“--pb>=bl",使
pb的值為“bl+1”,執(zhí)行“strcpy(b2,pB);”后b2的內(nèi)容為“bede兔”第三次判斷條件
“―pb>=bl”使pb的值為“bl”,執(zhí)行“strcpy(b2,pB):”后b2的內(nèi)容為“abcdefg”。
最后輸出b2數(shù)組中存放的字符串長度,顯然是7。(這里還有一個關(guān)鍵點:就是每
當(dāng)執(zhí)行一次while循環(huán)判斷條件,就執(zhí)行一次“--pb”,他使得指針pb自減1,即前
移一位)所以,4個選項中D為所選。
46、有以下程序;main。{intx=3,y=2,z=l;printf("%d\n',,x/y&~z);}程序運行
后的輸出結(jié)果是()。
A、3
B、2
C、I
D、0
標(biāo)準(zhǔn)答案:8
知識點解析:在prinftO函數(shù)的表達式中,前面表達式的值為1(3/2=I)表示為二
進制為00000001,而按位取反運算符“?”國優(yōu)先級高于按位與運算符“&”,先計算
后面的取反運算符“?”。z的二進制表示為00000001,取反后為11111110,員
后進行即"00000001&U111110”可知結(jié)果為00000000,故最后的值為0,所
以,4個選項中選項D符合題意。
47、設(shè)有如下定義:structss{charname[10]intage;charsex;}std[3],*p=std;
下面各輸入語句中錯誤的是()。
A^scanf("%d",&(*p).age);
B、scanf("%st",&std.namc);
C、scanf("%c”,&sld[O].sex);
D^scanf("%c",&(p->sex));
標(biāo)準(zhǔn)答案:2
知識點解析:選項A中“&(*p).age”代表的是std[O].age的地址,是正確的,選項C
也是正確的,選項D先用指針變量引用結(jié)構(gòu)型的成員sex,然后取它的地址,也是
正確的,選項B中的“std.namc”是錯誤的引用,因為std是數(shù)組名,代表的是數(shù)組
的首地址,地址沒有成員“name"。所以B選項為所選。
48、有以下程序:main(){unsignedchara,b,c;a=0x3;b=a|Ox8;c=b<<1;
printf("%d%d\n",b,C);)程序運行后的輸出結(jié)果是(
A、-1112
B、-19
C、1224
D、1122
標(biāo)準(zhǔn)答案:8
知識點解析:將a的值轉(zhuǎn)換為二進制位:00000011,再與0x8的二進制“0000
1000”位與,得到結(jié)果“00001011”賦值給b,b的值為11,再將b左移一位得到;
00010110,賦值給c,c的值為22,所以最后輸出的b,c的值位11,22。所以4
個選項中D正確。
49、以下與函數(shù)fseek(fp,OL,SEEK_SE乃有相同作用的是()。
A、feof(fp)
B、ftell(fp)
C、fgetc(fp)
D、rewind(fp)
標(biāo)準(zhǔn)答案:8
知識點解析:題目中fseek(「p,OL,SEEK_SET)的作用將文件指制定位到文件開始。
feof(fp)的作用是判斷文件指針是否已到文件結(jié)尾,因此選項A不對。ftell(fp)的作
用是獲取當(dāng)前文件指針的位置,因此選項B不對。fgetc(fp)的作用是從文件中讀取
一個字節(jié),因此選項C不對。rcwind(fp)的作用是將文件指針重定位到文件開頭,
所以應(yīng)該選擇D。
50、設(shè)有以下說明語句:typedefstruet{intn;charch[8];}PER;則下面敘述中正
確的是()。
A、PER是結(jié)構(gòu)體變量名
R、PFR是結(jié)構(gòu)體類型名
C>typedefstruct是結(jié)構(gòu)體類型
D、struct是結(jié)構(gòu)體類型名
標(biāo)準(zhǔn)答案:2
知識點解析:本題通過typedef在定義一個結(jié)構(gòu)體類型的同時,把它白定義成類型
名PER,故PER是結(jié)構(gòu)體類型名。所以,4個選項中B為所選。
四、公共基礎(chǔ)填空題(本題共5題,每題7.0分,共5
分。)
51、實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別為算法的【】。
標(biāo)準(zhǔn)答案:空間復(fù)雜度和時間復(fù)雜度
知識點解析:算法的復(fù)雜性是指對一個在有限步驟內(nèi)終止算法和所需存儲空間大小
的估計。算法所需存儲空間大小是算法的空間復(fù)雜性,算法的計算量是算法的時間
復(fù)雜性。
52、數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。
標(biāo)準(zhǔn)答案:存儲結(jié)構(gòu)
知識點解析:數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)
據(jù)的操作運算。
53、一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了
軟件的【】。
標(biāo)準(zhǔn)答案:可重用性
知識點解析:繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減
少了程序中的冗余,提高軟件的可重用性。
54、面向?qū)ο蟮哪P椭?,最基本的概念是對象和【】?/p>
標(biāo)準(zhǔn)答案:類
知識點解析:面向?qū)ο竽P椭?,最基本的概念是對象和類。對象是現(xiàn)實世界中實體
的模型化;將屬性集和方法集相同的所有對象組合在一起,可以構(gòu)成一個類。
55、軟件維護活動包括以下幾類:改正性維護、適應(yīng)性維護、【】維護和預(yù)防性
維護o
標(biāo)準(zhǔn)答案:完善性
知識點解析:軟件維護活動包括以下幾類:改正性維護、適應(yīng)性維護、完善性維護
和預(yù)防性維護。完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需
要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件
的可維護性。
五、填空題(本題共7題,每題分,共7分。)
56、下面程序的輸出是[]omain(){intarr[10],i,k=0;for(i=0;i<10;i++)arr[i]=i;
for(i=l;i<4;i++)k+=arr[i]+i;printf(',%d\n"k);)
標(biāo)準(zhǔn)答案:12
知識點解析:本題通過第一個for循坪將數(shù)組air[0]-air[9]分別賦值為0-9,通過第
二個for循環(huán)的三次循環(huán)累加,求出結(jié)果為1
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技公司年會策劃方案
- 深度解析(2026)《GBT 26436-2025禽白血病診斷技術(shù)》(2026年)深度解析
- 2025福建南平市邵武市金塘工業(yè)園區(qū)專職消防隊專職消防隊員招聘補充14人參考考試題庫及答案解析
- 深度解析(2026)《GBT 26001-2010燒結(jié)路面磚》(2026年)深度解析
- 2026渭南澄城縣征集見習(xí)崗位和見習(xí)人員招募備考筆試試題及答案解析
- 深度解析(2026)《GBT 25907.6-2010信息技術(shù) 維吾爾文、哈薩克文、柯爾克孜文編碼字符集 16點陣字型 第6部分:如克黑體》
- 深度解析(2026)《GBT 25865-2010飼料添加劑 硫酸鋅》(2026年)深度解析
- 深度解析(2026)《GBT 25746-2010可鍛鑄鐵金相檢驗》(2026年)深度解析
- 2025廣東清遠(yuǎn)市清城區(qū)檔案館招聘后勤服務(wù)類人員1人參考考試試題及答案解析
- 2025年昆明市祿勸縣人力資源和社會保障局公益性崗位招聘(5人)參考筆試題庫附答案解析
- 周深的音樂藝術(shù)成就
- 企業(yè)售后服務(wù)管理制度(2025年版)
- 脊柱手術(shù)術(shù)后神經(jīng)監(jiān)測標(biāo)準(zhǔn)化流程
- 2025年上海市辦公室租賃合同示范文本
- 2025年新疆第師圖木舒克市公安招聘警務(wù)輔助人員公共基礎(chǔ)知識+寫作自測試題及答案解析
- 物業(yè)巡檢標(biāo)準(zhǔn)課件
- 羽絨服美術(shù)課件
- 堤防工程施工規(guī)范(2025版)
- 2025天津宏達投資控股有限公司及所屬企業(yè)招聘工作人員筆試備考試題及答案解析
- 統(tǒng)編版高中語文選擇性必修中冊《為了忘卻的記念》課件
- 含微生物有機無機復(fù)合肥料編制說明
評論
0/150
提交評論