版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吹塑機(jī)生產(chǎn)環(huán)保管理制度
- 安全生產(chǎn)制度制定流程
- 教育所安全生產(chǎn)責(zé)任制度
- 2025年公共設(shè)施維護(hù)與管理標(biāo)準(zhǔn)操作手冊
- 賓館客房服務(wù)與管理手冊
- 2026年醫(yī)療器械研發(fā)工程師中級模擬考試卷
- 2026年電工技術(shù)初級實(shí)操技能測試題
- 民營企業(yè)解散清算專項(xiàng)法律服務(wù)工作方案
- 公司強(qiáng)制解散清算專項(xiàng)法律服務(wù)方案
- 小學(xué)四年級語文上冊期末試卷及答案
- 交通運(yùn)輸安全檢查與處理規(guī)范(標(biāo)準(zhǔn)版)
- UCL介紹教學(xué)課件
- 扁鵲凹凸脈法課件
- 2026年開封大學(xué)單招職業(yè)適應(yīng)性測試題庫及完整答案詳解1套
- 建筑施工現(xiàn)場材料采購流程
- DB31∕T 1234-2020 城市森林碳匯計(jì)量監(jiān)測技術(shù)規(guī)程
- 園林綠化施工工藝及注意事項(xiàng)
- 2025年高中語文必修上冊《登泰山記》文言文對比閱讀訓(xùn)練(含答案)
- 2025年金蝶AI蒼穹平臺新一代企業(yè)級AI平臺報(bào)告-
- 2025中國機(jī)械工業(yè)集團(tuán)有限公司(國機(jī)集團(tuán))社會招聘19人筆試參考題庫附答案
- 二年級上冊100以內(nèi)的數(shù)學(xué)加減混合口算題500道-A4直接打印
評論
0/150
提交評論