第 1 頁:選擇題 |
第 5 頁:基本操作題 |
第 6 頁:程序改錯題 |
第 7 頁:程序設計題 |
第 8 頁:參考答案 |
21.D。【解析】本題判斷while語句中的邏輯關系的真假。“&&”兩端都為真時結果為真,而題中k的值為0,k++是先使用k的值,再將k加1,而k此時的值為0,結果為假,所以不再執行后面的語句,輸出結果時,k的值自加l為1,n的值仍為2。
22.C。【解析】char類型用于存儲單個字符的簡單變量類型,它可以被指定為一個字符常量或一個整數。
23.A。【解析】本值輸出兩個值,%c為輸出一個字母,0/4d輸出一個數字。“A”的ASCIl碼為65,再加 4之后為69,也就是字母E,所以本題A正確。
24.C。【解析】本題考查函數調用。主函數中調用fun( )函數,p=d++,d=2,選取d的值,再加1,所以輸出P的值為2,再回到主函數中,直接輸出a的值為1。
25.D。【解析】“max=MIN;”語句應放在for循環之前,否則每次循環時都重新賦值,值沒有變化。
26.B。【解析】本題進行了交換,輸出的4個值,前兩個為m和n的值,*P取m的值,*q取n的值,分別為l和2;而“r=P;p=q;q=r;”語句是進行P和q的交換。所以本題輸出結果為1,2,2,1。
27.A。【解析】數組名是一個存放一個數組首地址的值,是一個地址常量。而p=a不是合法的,因為p和a的基本類型不同。
28.C。【解析】本題輸出兩個結果,第一個是求字符串的長度。第二個是輸出的字符串,數組的下標是從0開始的,所以當str取1的時候,應為“One*Dream!”。
29.C。【解析】本題考查嵌套分支語句。共輸出4個值:當i=0時,i%2取余后還是0,則執行ease 0語句,繼續switch語句,此時i為0,數據的下標是從0開始的,a[03的值為2,則a[0]%2=0,繼續執行case 0,數組a[0]++,值變為3,執行break跳出第二重開關語句。出來后繼續執行break,跳出第一重開關語句,繼續循環;輸出第一個值為3。i++后值為1,i%2=1%2取余后值為1,執行case l,將0賦給a[l],退出開關語句,輸出第二個值為0。i++后值為2,i%2=2%2取余后值為0’a[2]的值為5,則a[2]%2=1,繼續執 行case l,數組a[2]--,值變為4,執行break跳出第二重開關語句。出來后繼續執行break,跳出第一重開關語句,繼續循環;輸出第三個值為4。i++后值為3,i%2=3%2取余后值為1,執行case l,將0賦給a[3],退出開關語句,輸出第四個值為0。結果為3 0 4 0。
30.B。【解析】strlen是求字符串的長度,結果為4,sizeof是求數組的長度,而數據在定義時已給出長度為10。
31.D。【解析】用來存放字符量的數組稱為字符數組。字符數組也可以是二維或多維數組,對一個字符數組,如果不作初始化賦值,則必須說明數組長度,還可用printf函數和scarlf函數一次性輸出/輸入一個字符數組中的字符串,而不必使用循環語句逐個地輸入/輸出每個字符。通常用一個字符數組來存放一個字符串。所以D選項不正確。
32.A。【解析】本題函數的功能是將a所指向的字符串賦給b所指向的空間。
33.A。【解析】函數指針的定義格式為函數類型(*指針變量名)(形參列表);函數名和數組名一樣代表了函數代碼的首地址,因此在賦值時,直接將函數指針指向函數名就行了。所以選項A正確。
34.C。【解析】本題考查函數的調用。當執行s=f(a)時,進入fun函數,n=n+(a++),n的值為3,a的值為1,a++的意思是先用a的值,再將a加1為2,所以n的結果為4,也就是主函數中f(a)的結果為4;返回主函數,執行s=s+f(a),s為4,再次調用函數,此時n仍為3,a的值剛才已經自加2,所以計算后n的值為5,a自加l為3。返回主函數,f(a)的結果為5,所以s=4+5=9。
35.A。【解析】本題考查帶參數的宏定義。第一次函數調用求S的值,x=a+1,所以X*X*X應寫成a+1*a+1*a+1,沒有括號優先級,結果為l0,第二次函數調用x*X*X可寫成(a+1)*(a+1)*(a+1), 所以結果為43=64。
36.B。【解析】結構體定義的類型說明的一般形式為:struct結構體標識名{類型名1結構成員名表l;類型名2結構成員名表2;···};。注意:①結構體說明同樣要以分號結尾;②緊跟在結構體類型說明之后進行定義;③在說明一個無名結構體類型的同時,直接進行定義;④先說明結構體類型,再單獨進行變量定義等。所以B選項錯誤。
37.A。【解析】選項B是從鍵盤上輸入字符串,選項C是接收字符,選項D不正確。
38.D。【解析】本題考查了結構體函數的調用。定義了結構體A,A含有三個參數分別是整型,字符型和雙精度型。主函數中調用了fun( ),轉到struct A f(struct A t)函數中,內容分別變成了{1002,Chan-gRong,1202.2),函數調用后,格式仍為struct A a={1001,"ZhangDa",l098.0);的格式。所以D選項為正確答案。
39.C。【解析】本題考查移位運算。將8轉為二進制數為1000,右移一位不足補0,結果為0100,轉化為十進制結果為4。
40.C。【解析】本題考查文件的知識點,文件是由數據序列組成的,可以構成二進制文件或文本文件。
編輯推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |