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