第 1 頁:選擇題 |
第 3 頁:程序改錯題 |
第 4 頁:簡單應(yīng)用題 |
第 5 頁:綜合應(yīng)用題 |
21在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是( )。
A.可行性分析報告
B.軟件需求規(guī)格說明書
C.概要設(shè)計說明書
D.集成設(shè)計計劃
參考答案:B
參考解析:需求分析是對獲取的需求進(jìn)行分析和綜合最終給出系統(tǒng)的解決方案和目標(biāo)系統(tǒng)的邏輯模型。需求分析的最終結(jié)果是生成軟件需要規(guī)格說明書,可以為用戶、分析人員和設(shè)計人員之間的交流提供方便,可以直接支持目標(biāo)確認(rèn),又可以作為控制軟件開發(fā)進(jìn)程的依據(jù)。
22在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是( )。
A.軟件集成測試計劃
B.軟件詳細(xì)設(shè)計說明書
C.用戶手冊
D.軟件需求規(guī)格說明書
參考答案:D
參考解析:
需求分析階段只能產(chǎn)生需求分析規(guī)格說明書。A測試說明書是軟件測試階段生成的;B軟件詳細(xì)設(shè)計說明書是設(shè)計階段生成;C用戶手冊是軟件發(fā)布時隨軟件一同交付給用戶的。
23生成派生類對象時,派生類構(gòu)造函數(shù)調(diào)用基類構(gòu)造函數(shù)的條件是( )。
A.無需任何條件
B.基類中顯式定義了構(gòu)造函數(shù)
C.派生類中顯式定義了構(gòu)造函數(shù)
D.派生類構(gòu)造函數(shù)明確調(diào)用了基類構(gòu)造函數(shù)
參考答案:D
參考解析:派生類的構(gòu)造函數(shù)必須通過調(diào)用基類的構(gòu)造函數(shù)來初始化基類子對象。所以在定義派生類的構(gòu)造函數(shù)時,除了對自己的類據(jù)成員進(jìn)行初始化外,還必須負(fù)責(zé)調(diào)用基類構(gòu)造函數(shù),使基類的數(shù)據(jù)成員得以初始化。
24下列選項(xiàng)中不屬于字符常量的是( )。
A.'C'B."C"C.'\xCC'D.'\072'
參考答案:B
參考解析:字符常量是用一對單引號括起來的,而字符串常量是用雙引號括起來的字符序列,所以選項(xiàng)B不正確;選項(xiàng)C中'\xCC'是十六進(jìn)制表示的轉(zhuǎn)義字符;選項(xiàng)D中'\O72'是八進(jìn)制表示的轉(zhuǎn)義字符。
25有下列程序:
#include
voidmain( )
{char*s={"ABC");
do
{printf("%d",*s%10);s++;
}while(*s);
}
注意:字母A的ASCIl碼值為65。程序運(yùn)行后的輸出結(jié)果是( )。
A.5670B.656667C.567D.ABC
參考答案:C
參考解析:本題考查d0…while語句,至少執(zhí)行一次循環(huán)體,依次輸出ABC,這三個字母的ASCIl值對10求模的余數(shù),字母A的ASCIl值對10求模的余數(shù)為5,字母B的ASCIl值對10求模的余數(shù)為6,字母c的ASCIl值對10求模的余數(shù)為7。所以正確答案為選項(xiàng)C。
26數(shù)據(jù)庫管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語有是( )。
A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言
參考答案:A
參考解析:數(shù)據(jù)模式是由數(shù)據(jù)定義語言(DataDefini-tionLanguage,DDL)來描述、定義的,體現(xiàn)、反映了數(shù)據(jù)庫系統(tǒng)的整體觀。
27有如下程序:
#include
usingnamespacestd;
classAA{
public;
AA( ){cOUt<<'1';)
};
classBB:publicAA{
intk;
public:
BB( ):k(0){tout<<'12';}
BB(intn):k(n)(cout<<'3';)
};
intmain( ){
BBb(4),c;
return0;
}
運(yùn)行時的輸出結(jié)果是( ).
A.1312B.132C.32D.1412
參考答案:A
參考解析:當(dāng)基類的構(gòu)造函數(shù)默認(rèn)或無參時,派生類可省對基類構(gòu)造函數(shù)的顯示調(diào)用,但系統(tǒng)會自動調(diào)用該類的缺省構(gòu)造函數(shù),且先調(diào)用基類的構(gòu)造函數(shù)后調(diào)用派生類的構(gòu)造函數(shù)。
28下列關(guān)于宏的敘述中正確的是( )。
A.宏名必須用大寫字母表示
B.宏定義必須位于源程序中所有語句之前
C.宏替換沒有數(shù)據(jù)類型限制
D.宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時間
參考答案:C
參考解析:本題考查宏的相關(guān)知識點(diǎn)。宏名沒有大小寫限制;宏定義可以放在程序中的任何位置,其有效范圍是從定義開始到文件結(jié)束;宏替換可以代替任何數(shù)據(jù)類型,不受數(shù)據(jù)類型的限制;函數(shù)影響運(yùn)行時間,宏調(diào)用影響編譯時間。
29下列敘述中正確的是( )。
A.算法就是程序
B.設(shè)計算法時只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計
C.設(shè)計算法時只需要考慮結(jié)果的可靠性
D.以上三種說法都不對
參考答案:D
參考解析:程序可以實(shí)現(xiàn)算法,所以A錯。設(shè)計算法除了考慮數(shù)據(jù)結(jié)構(gòu)外,還需考慮結(jié)果的可靠性,以及算法效率,等等。
30若已定義
inta[]={1,2,3,4,5,6,7,8,9,10},p=a,i=5;
則對數(shù)組元素不正確的引用是( )。
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
參考答案:D
參考解析:數(shù)組和指針的關(guān)系非常密切,因?yàn)閿?shù)組名稱單獨(dú)使用是表示數(shù)組的首地址。故可用的表示可能是a[i],p[i],*(P{i),同樣&(a[i])表示地址,因此*(&a[i])等同于a[i]。本題答案為D。
31控制格式輸入/輸出的操作中,設(shè)置域?qū)挼暮瘮?shù)是( )。
A.WSB.octC.setfill(int)D.setw(int)
參考答案:D
參考解析:本題需要考生記憶一些輸入/輸出控制操作字,oct為八進(jìn)制,setfill為設(shè)置填充符,setw為設(shè)置域?qū)挕?/P>
32有下列二叉樹,對此二叉樹前序遍歷的結(jié)果是( )。
A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXYZD.ABDYECFXZ
參考答案:D
參考解析:對二叉樹的前序遍歷是指:先訪問根結(jié)點(diǎn),然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時,先訪問根結(jié)點(diǎn),再依次訪問其虛、右子樹。記住三種遍歷的順序:①前序,訪問根→按前序遍歷左子樹→按前序遍歷右子樹;②中序,按中序遍歷左子樹→訪問根→按中序遍歷右子樹;③后序,按后序遍歷左子樹→按后序遍歷右子樹→訪問根。
33設(shè)有宏定義“#definelsDIV(k,n)((k%n==1?1:0)”且變量m已正確定義并賦值,則宏調(diào)用“l(fā)sDIV(m,5)&&IsDIV(m,7)”為真時所要表達(dá)的是( )。
A.判斷m是否能被5或者7整除
B.判斷m是甭能被5和7整除
C.判斷m被5或者7整除是否余1
D.判斷m被5和7整除是否都余l(xiāng)
參考答案:D
參考解析:本題考查宏定義,宏定義IsDIV(k,n)的意思是如果k對n.求模的余數(shù)為1,其值等于1,否則其值等于0。本題中宏調(diào)用表達(dá)式是兩個宏調(diào)用之間的邏輯與運(yùn)算,所以選項(xiàng)D正確。
34以下程序的輸出結(jié)果是( )。
#include
longfun(intn)
{longS;
if(n==1‖n==2)s=2;
elses=n-fun(n-1):
returnS;
}
voidmain(){cout<
A.1B.2C.3D.4
參考答案:A
參考解析:題中fun函數(shù)進(jìn)行了遞歸調(diào)用,第1次調(diào)用對:fun(3)n=3,S=3-fun(2),第二次調(diào)用時:fun(2)n=2,s=2,返回第一次調(diào)用后,s=3-2=1。
35下列程序的執(zhí)行結(jié)果是( )。
#include
#include
classTestClass
{
public:
intX,y;
TestClass(){x=y=0;}
TestClass(inta,intb)(x=a;y=b;}voiddisp()
{
cout<<"x="<
}
};
voidmain()
{
TestClasss1(2,3);
s1.disp();
}
A.x=2,y=2B.x=2,y=3C.x=3,y=2D.x=3,y=3
參考答案:B
參考解析:由主函數(shù)入手,定義了類TestClass的對象s1(2,3),當(dāng)類對象進(jìn)入其作用域時調(diào)用構(gòu)造函數(shù),構(gòu)造函數(shù)應(yīng)該是調(diào)用具有參數(shù)的“TestClass(inta,intb){x=a;y=b;}”,然后調(diào)用成員函數(shù)disp(),則輸出為“cout<<"x="<
36有下列程序:
#include
intfun(int(*s)[4],intn,intk)
{intm,i;
m=s[O][k];
for(i=1;im)m=s[i]
[k];
returnm;
}
voidmain( )
{inta[4][4]=({1,2,3,4),{11,12,13,14},{21,
22,23,24},{31,32,33,34)};
printf(”%d\n”,fun(a,4,O));
}
程序的運(yùn)行結(jié)果是( )。
A.4B.34C.31D.32
參考答案:C
參考解析:在程序中fun函數(shù)的功能在于求取三維數(shù)組S中1至n行中每行第k個元素中的最大者。注意:i=0時為第一行,故fun(a,4,O)在于求取11、21、31中的最大值,顯然為31。
37有如下程序:
#include
voidmain()
{charch[2][5]={"6937","8254"),*p[2];
inti,j,s=0;
for(i=0;i(2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>'\0';j+=2)
s=10*s+p[i][j]-'0';
cout<
該程序的輸出結(jié)果是( )。
A.69825B.63825C.6385D.693825
參考答案:C
參考解析:該題需要搞清楚以下幾點(diǎn):④定義了一個指針數(shù)組char*p[2]后,程序中第一個循環(huán)“for(i=0;i(2;i++)p[i]=ch[i]”的作用是使指針數(shù)組的p[0]元素(它本身是一個指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p[1]元素指向了二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組P和二維數(shù)組ch建立起了一種對應(yīng)關(guān)系,以后對二維數(shù)組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或p[i][j]。②對二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串“6937”,第二行ch[1]中的內(nèi)容為字符串“8254”。③程序中第二個循環(huán)中的循環(huán)體“s=s*10+p[i][j]-'0'”的功能是這樣的,每執(zhí)行一次,將s中的值乘以10(即將s中的數(shù)值整體向左移動一位,并在空出來的個位上添一個0),再將當(dāng)前p[i][i]中的字符量轉(zhuǎn)換為相應(yīng)的數(shù)字,然后把這個數(shù)字加到s的個位上。④注意到內(nèi)層循環(huán)的循環(huán)條件p[i][j]>'\0'是指p[i][j]中的字符只要不是字符串結(jié)束標(biāo)志'\0'就繼續(xù)循環(huán),語句j+=2;是使下標(biāo)j每次增加2,即一個隔一個地從p[i]所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p[0]所指向的字符串“6937”中一個隔一個地取出字符,分別是“6”和“3”,然后從p[1]所指向的字符串“8254”中一個隔一個地取出字符,分別是“8”和“5”,同時經(jīng)過轉(zhuǎn)換和相加運(yùn)算后,結(jié)果s中的值應(yīng)該是6385。
38為了提高函數(shù)調(diào)用的實(shí)際運(yùn)行速度,可以將較簡單的函數(shù)定義為( )。
A.內(nèi)聯(lián)函數(shù)B.重載函數(shù)C.遞歸函數(shù)D.函數(shù)模板
參考答案:A
參考解析:內(nèi)聯(lián)函數(shù)一般是程序代碼少于10行的函數(shù),在編譯過程中,直接在調(diào)用點(diǎn)處被展開,不會因函數(shù)調(diào)用帶來巨大的系統(tǒng)開銷,因此能提高實(shí)際運(yùn)行速度。
39下列選項(xiàng)中屬于面向?qū)ο笤O(shè)計方法主要特征的是( )。
A.繼承B.自頂向下C.模塊化D.逐步求精
參考答案:A
40下列程序輸出的結(jié)果是( )。
#include
funl(chara,charb){charC;c=a;a=b;b=C;)
fun2(char*a,charb){charC;c=*a;*a=b;b=c;)
fun3(char*a,char*b){charC;C=*a;*a=*b;*b=C;)
voidmain( )
{
chara,b;
a='A';b='B';fun1(a,b);putchar(a);putchar(b);
a='A';b='B';fun2(&a,b);putchar(a);putchar(b);
a='A';b='B';fun3(&a,&b);putchar(a);putchar(b);
putchar('\n');
}
A.BABBABB.ABBBBAC.ABBABAD.ABABBA
參考答案:B
參考解析:由程序中的主函數(shù)main入手,分別調(diào)用fun1,fun2,fun3函數(shù),得出輸出結(jié)果。其中,3個函數(shù)都是實(shí)現(xiàn)的兩個形參的交換功能,只是值傳遞的方式不同,有的是引用,有的是傳值。第一個函數(shù)中參數(shù)采用的是值傳遞的方式,形參的變化不影響實(shí)參。所以d調(diào)用funl后,實(shí)參a和b并沒有交換,仍然是AB。第二個調(diào)用中,實(shí)參a采用的是地址,即傳遞的是地址,所以形參a的改變會影響實(shí)參a的值,即BB。同理,調(diào)用fun3后為BA。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |