第 1 頁:選擇題 |
第 5 頁:程序填空題 |
第 6 頁:程序改錯題 |
第 7 頁:程序設計題 |
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選項正確。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |