第 1 頁:選擇題 |
第 5 頁:基本操作題 |
第 6 頁:程序改錯題 |
第 7 頁:程序設計題 |
第 8 頁:參考答案 |
21.B。【解析】y--的作用是先取其值作為表達式的值,然后Y的值減1存入Y。當y>0時循環繼續,直到y=0時循環結束,然后Y值減l存入Y中,所以選B。
22.C。【解析】本題中,語句printf函數輸出的是字符指針S所指變量的ASCIl表對應值,即ASCIl表中值為s[0]+2的字符。所以選C。
23.B。【解析】字符數組長度為7,因為C語言中系統會在字符串末尾加入一個字符’\0’,而x[O]=0的作用是將一個整數0存入字符數組中,系統會自動將整型數0轉換成字符’\o’。所以輸出為7,0。
24.D。【解析】本題考查函數返回值作參數,最初n=1,f(n)=f(1)=2,將f(n)的結果代入第二個f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。
25.C。【解析】A中P是指針,沒有初始化,且取P的地址即類型為指向地址的地址,與輸出參數類型不符。B中指針P沒有初始化,且P所指變量值不明。D*p是整型變量,&k是整型變量的地址。所以選C。
26.D。【解析】本題int*p[4]的作用是聲明一個指針數組,每個元素都是int*型指針。
27.D。【解析】選項A、B中n為變量,C語言中不允許動態定義數組維數,即維數不能是變量。選項C無此語法。
28.D。【解析】選項A中,其他元素會自動以0填充。選項C中維數是常量表達式,故沒錯。
29.D。【解析】本題考查參數的按值傳遞。調用f(r),函數創建一個整型指針P,然后將r的值傳給P,即P也指向a,p=p+3,輸出P所指變量的值,即數組右移3位,即a[O+3]的值4,然后,函數結束,指針P被銷毀,r中的值不變,還指向a[0],所以輸出為4,1。
30.A。【解析】對下標為偶數的元素進行降序排序,下標為奇數元素保持不變。
31.A。【解析]strcmp(char*,char*),函數strcmp用于比較兩個字符串的長度,長者為大,若字符個數也一樣,則從左至右依次比較相同位上的字符,字符大小按ASCIl表值計算,直到最后一個字符,若還相同,則兩個字符串相等,返回值0。選項A中if(strcmp(s2,sl)=
=0)ST,若s2等于sl,則返回值0,0等于0,所以邏輯表達式strcmp(s2,sl)= =0為真,執行ST。
32.C。【解析】C項復制時沒有復制結束串“\0”。
33.B。【解析】C語言中以字符’\0’作為字符串結束的標志。本題中字符串a實際為“ABCD”,函數str-cat將串a和串b連接,所以選B。
34.C。【解析】循環語句while(p[i],依次從字符串的首字符開始處理,若處理到了最后一個字符即 p[i]=’\0’則停止。“p[i-1]=p[i-1]=’a’+’A’;”實現字符的替換。
35.D。【解析】本程序主要考查遞歸函數。fun(7),首先將參數代入函數,因為(7/2)>1,所以執行f(3),依此類推直到f(1.5),(1.5/2)<1,所以執行打印函數,此時X值為3,然后退出f(1.5),返回f(3),打印x值即7。所以選D。
36.B。【解析】本題考查靜態變量,C語言中靜態變量的生存期是從程序的開始到結束。本題中靜態變量x,隨著每次進入循環不斷增長5次,返回的值分別為2、3、4、5、6。所以S=1+2+3+4+5+6=21, 選B。
37.A。【解析】本題中,首先創建一個動態內存,然后將地址分別存入指針a、b、c中,即a、b、c都指向相同.的變量。分別給a、b、c所指的變量賦值,最終a、b、c所指的變量中的值為3,最后打印a、b、c所指的變量
38.C。【解析】函數sizeof( )的參數為C中定義或者用戶自定義的數據,作用是返回參數所指的數據類型所占用的內存空間的字節數。本題中A是整型,B是雙精浮點數,分別占4個字節和8個字節。所以選C。
39.B。【解析】語句typedef struct S{int g;char h;)T的作用是用T作為struct S{int g;char h;)的簡寫,所以選B。
40.D。【解析】124的2進制值為1111100,要輸出為248即124*2,則2進制值為11111000,即右移l位,所以選D。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |