第 1 頁:選擇題 |
第 3 頁:程序填空題 |
第 4 頁:程序改錯題 |
第 5 頁:程序設(shè)計題 |
21以下程序段完全正確的是( )。
A.int * p;scanf(”%d”,&p);
B.int*p;scanf(”%d”,P);
C.int k,* P:&k;scanf(’’%d”,P);
D.int k,*p;*P=&k;scanf(”%d”,P);
參考答案:C
參考解析:A選項中錯在沒有對指針進行初始化,是無效指針,并且在scanf(”%d”,&p)中無需再進行取地址操作;B選項中沒有對指針進行初始化,是無效指針;D選項中語句+P=&k;的左端t pt是指針所指內(nèi)存空間的值,&k是地址,應(yīng)為P=&k。因此C選項正確。
22有以下程序:
程序運行后的輸出結(jié)果是( )。
A.1002,ZhangDa,1202.0
B.1002,ChangRon9,1202.0
C.1001,ChangRon9,1098.0
D.1001,ZhangDa,1098.0
參考答案:D
參考解析:本題考查結(jié)構(gòu)體的相關(guān)操作以及傳值、傳址的區(qū)別,該題中調(diào)用f函數(shù)后,會生成參數(shù)a的一個副本,而不會改變a的值,所以a值維持原值,選項D正確。
23下列敘述中正確的是( )。
A.棧是一種先進先出的線性表B.隊列是一種后進先出的線性表C.棧與隊列都是非線性結(jié)構(gòu)D.以上三種說法都不對
參考答案:D
參考解析:棧是一種先進后出的線性表,隊列是一種先進先出的線性表,棧與隊列都是線性結(jié)構(gòu)。
24以下定義數(shù)組的語句中錯誤的是( )。
參考答案:B
參考解析:B)選項中定義的數(shù)組為2行4列,而賦值時賦成了3行所以出錯。
25以下程序段中,與語句:k=a>b?(b>c?1:O):0;功能相同的是( )。
參考答案:B
參考解析:條件表達式的含義是,如果表達式1成立,結(jié)果為表達式2的值,如果不成立為表達式3的值。所以題干中k的值這樣取值:如果a>b且b>c,k值結(jié)果為1,如果a>b,且bb與b>c中只要有一個條件不成立,k的值就為0,所以選擇B選項。
26有以下程序:
程序運行后的輸出結(jié)果是( )。
A.3B.4C.lD.9
參考答案:B
參考解析:每次內(nèi)循環(huán)只循環(huán)一次就結(jié)束,第一次外循環(huán)時t=t+b[0][b[0][0]]=1+b][0]=1+0=第二次外循環(huán)時t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循環(huán)時t=t+b[2][b[2][2]]=2+b[2][2]=2+2=4。
27有以下程序:
程序運行后的輸出結(jié)果是( )。
A.321B.12300C.1D.123
參考答案:D
參考解析:程序首先將數(shù)組a[10]中的元素l、2.3分別寫入了文件dl。dat文件中,然后又將dl.dat文件中的數(shù)據(jù)123,整體寫入到了變量n的空間中,所以打印n時輸出的 數(shù)據(jù)為123。
28有以下程序:
當執(zhí)行程序時從鍵盤上輸入Hello Beijing<回車>,則程序運行后的輸出結(jié)果是( )。
A.hello bajiIlgB.Hello BeijingC.HELLO BEIJINGD.hELLO Beijing
參考答案:C
參考解析:主程序讀取整個字符串存于s中,調(diào)用fun函數(shù)。字符指針c指向數(shù)組S。函數(shù)fun的功能是把指針C所指向的字符數(shù)組中的所有小寫字符轉(zhuǎn)換為大寫。囂cts函數(shù)可以把空格作為字符串的一部分輸入,以回車作為輸入結(jié)束。如果·c為小寫字符,則}C={C一32(轉(zhuǎn)大寫)。因此C選項正確。
29以下語句中存在語法錯誤的是( )。
參考答案:A
參考解析:數(shù)組定義后,不可以對數(shù)組整體賦值,s是二維數(shù)組,因SS[1]是一維字符數(shù)組,即字符串,字符串賦值可以使用strcpy(SS[1],”right”);這樣的形式,而選項A中對二維數(shù)組中的第…l維(相當于一個一維數(shù)組)賦值,是不可以的。選項8和D是定義時對數(shù)組初始化,這是可以的。選項c中,將字符串在內(nèi)存中的首地址賦給指針數(shù)組的一個元素,這是可以的。
30有以下程序:
程序運行后的輸出結(jié)果是( )。
A.2.3B.1,3C.1,4D.1,2
參考答案:B
參考解析:在f(int+P,int 4 q)函數(shù)中,執(zhí)行P=P+1是將P所對應(yīng)的地址加1,而0 q=+q+1是將q所指向的n的地址所對應(yīng)的值加1,所以m的得知所對應(yīng)的值沒有變,而n的值則為3了。因此B選項正確。
31下列敘述中正確的是( )。
A.循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)
B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)
C.循環(huán)隊列是非線性結(jié)構(gòu)
D.循環(huán)隊列是一種邏輯結(jié)構(gòu)
參考答案:B
參考解析:在實際應(yīng)用中,隊列的順序存儲結(jié)構(gòu)一般采用循環(huán)隊列的形式。
32有以下程序:
程序執(zhí)行后的輸出結(jié)果是( )。
A.2B.3C.7D.0
參考答案:A
參考解析:因為fun(int x)是一個遞歸函數(shù),所以主函數(shù)中fun(7)經(jīng)過3次遞歸調(diào)用,其過程可以描述為“fun(7)=7一fun(5)=7一(5一fun(3))=7一(5一(3一fun(1)))=7一(5一(3—3))=7—5=2”,所以最后輸出結(jié)果為2。因此.A選項正確。
33軟件詳細設(shè)計生產(chǎn)的圖如右圖:該圖是( )。
A.N—S圖B.PAD圖C.程序流程圖D.E—R圖
參考答案:C
參考解析: N—s圖提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,所以A不對。PAD圖是問題分析圖,它是繼承程序流程圖和方框圖之后提出的又一種主要用于描述軟件詳細設(shè)計的圖形表示工具,所以8不對。E—R圖是數(shù)據(jù)庫中的用于表示E—R模型的圖示工具,所以D不對。根據(jù)圖中所示表示方法是進行軟件詳細設(shè)計時使用的程序流程圖。
34有以下程序:
程序執(zhí)行后的輸出結(jié)果是( )。
A.5B.24C.32D.40
參考答案:C
參考解析:本題的含義是在1—40的蔓敦的范圍中,只有當i的值能被5整除,且i+2的值能被3薹纛時,打印i的值,滿跫這個條件的只有32,選擇c選項。
35若有以下函數(shù)首部:
int fun(double x[10],int*n)
則下面針對此函數(shù)的函數(shù)聲明語句中正確的是( )。
A.int fun(double,int);
B.int fun(double木,int*);
C.int mn(double*x,int n);
D.int fun(double x,intint*n)
參考答案:B
參考解析:函數(shù)聲明的一般形式為:“類型說明符被調(diào)函數(shù)名(類型形參,類型形參,……);”或“類型說明符被調(diào)函數(shù)名(類型,類型,……);”由于函數(shù)首部為int fun(double x[10],int*n),因此B選項正確。
36有以下函數(shù):
函數(shù)的功能是( )。
A.將Y所指字符串賦給x所指存儲空間
B.查找x和y所指字符串中是否有
C.統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)
D.統(tǒng)計x和Y所指字符串中相同的字符個數(shù)
參考答案:C
參考解析:本題中由循環(huán)條件可知遇到‘\0’或x與y所指的字符的值不等中的一個條件時就結(jié)束,所以功能是統(tǒng)計x和Y所指字符串中最前面連續(xù)相同的字符個數(shù)。
37設(shè)有定義:
double a[10],*s=a;
以下能夠代表數(shù)組元素a[3]的是( )。
A.($s)[3]B.}(s+3)C.*s[3]D.}s+3
參考答案:B
參考解析:語句·s=a;表示指針變量s指向一維數(shù)組a的首地址。a[3]表示引用數(shù)組a的第4個元素,+(s+i)表示引用指針8所指數(shù)組a的第i+1個元素,選項A、C、D的表示方法錯誤,只有B選項正確。
38數(shù)據(jù)庫設(shè)計中反映用戶對數(shù)據(jù)要求的模式是( )。
A.內(nèi)模式B.概念模式C.外模式D.設(shè)計模式
參考答案:C
參考解析:數(shù)據(jù)庫系統(tǒng)的三級模式是概念模式、外模式和內(nèi)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個用戶的局部數(shù)據(jù)描述,所以選擇C。內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。
39設(shè)已有定義:float x;,則以下對指針變量P進行定義且賦初值的語句中正確的是( )。
A.int*p=(float)x;B.float*p=&x;C.float p=&x;D.float=1024;
參考答案:B
參考解析:指針是用來存放地址的變量,用(類型名+指針變量名)的形式定義。賦值時應(yīng)將某個變量地址即8Ⅸ賦給指針變量,所以選擇B。
40有以下程序:
程序運行后的輸出結(jié)果是( )。\\
A.Zhao,111,85,90,Qian,f,95,92
B.Zhao,m,85,90,Zha0,m,85,90
C.Qian,f,95,92,Qian,f,95,92
D.Qian,f,95,92,Zha0,m,85,90
參考答案:A
參考解析:本題考查的是函數(shù)調(diào)用時的參數(shù)傳遞問題。程序在調(diào)用函數(shù)f時,傳給函數(shù)f的參數(shù)只是結(jié)構(gòu)變量c在棧中的一個拷貝,函數(shù)f所做所有操作只是針對這個數(shù)據(jù)拷 貝進行的修改,這些都不會影響變量c的值。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |