1[單選題] 以下敘述中正確的是
A.由printf輸出的數據都隱含左對齊
B.scanf和printf是c語言提供的輸人和輸出語句
C.賦值語句是一種執行語句,必須放在函數的可執行部分
D.由printf輸出的數據的實際精度是由格式控制中的域寬和小數的域寬來完全決定的
參考答案:C
參考解析:sCanf和printf是C語言提供的輸入輸出函數,所以B錯誤。由printf輸出的數據都隱含右對齊,所以A錯誤。printf輸出數據所占的寬度由系統決定,所以D錯誤。
2[單選題] 若有以下程序
則程序的輸出結果是
A.17,289B.49,2401C.17,37D.49,289
參考答案:C
參考解析:本題考查宏定義,宏定義只是做個簡單的替換,執行S(k+j)=k+j*k+j=17,T(k+j)=S(k+j)*S(k+j)=k+j*k+j*k+j$k+j=37,選項C正確。
3[單選題] 設有定義:int a=64,b=8;,則表達式(a&B)||(a&&B)和(a|B)&&(a||B)的值分別為
A.1和1B.1和0C.0和1D.0和0
參考答案:A
參考解析:常用的位運算符有:“~”按位求反,“<<”左移,“>>”右移,“&”按位與,“^”按位異或,“|”按位或。邏輯或運算符“||”,計算左表達式值,如果為真,則不計算右表達式,而整個表達式為真,若左表達式為假,再計算右表達式,然后做或運算。邏輯與運算符“&&”,計算左表達式值。如果為假則不計算右表達式。而整個表達式為假,若左表達式為真,再計算右表達式,然后做與運算。a=64=1000000B,b=8=1000B,a&b=0為假,a&b為真,(a&B)||(a&&B)為真,值為1。a|b=1001000B為真,a||b為真,則(a|B)&&(a||B)為真,值為1。A選項正確。
4[單選題] 有以下程序:
程序運行后的輸出結果是( )。
A.3,5B.5,3C.35,35D.8,8
參考答案:B
參考解析:運算符為按位異或運算符,即0^1=1,1‘0=1,1^1=0,∞=0;經計算可得X=x^y,Y=x^y,X=x^y,作用是交換x,Y的值。因此答案為B選項。
5[單選題] 下列敘述中正確的是( )。
A.循環隊列有隊頭和隊尾兩個指針,因此,循環隊列是非線性結構
B.在循環隊列中,只需要隊頭指針就能反映隊列中元素的動態變化情況
C.在循環隊列中,只需要隊尾指針就能反映隊列中元素的動態變化情況
D.循環隊列中元素的個數是由隊頭指針和隊尾指針共同決定的
參考答案:D
參考解析:循環隊列有隊頭和隊尾兩個指針,但是循環隊列仍是線性結構的,所以A錯誤;在循環隊列中只需要隊頭指針與隊尾兩個指針來共同反映隊列中元素的動態變化情況,所以B與C錯誤。
6[單選題] 以下結構體類型說明和變量定義中正確的是( )。
參考答案:B
參考解析:本題考查結構體的相關知識,選項A中struct REC后面不能有分號,C選項中typedef struct REC的后面也不能有分號,選項D中REC已經是結構體變量,不能當做結構體類型來使用。
7[單選題] 假定已建立以下鏈表結構,且指針P和q已指向如圖所示的結點:
則以下選項中可將q所指結點從鏈表中刪除并釋放該結點的語句組是( )。
A.p一>next=q一>next;flee(q);
B.p=q一>next;free(q);
C.p=q;free(q);
D.(*p).next=(幸q).next;ffee(p);
參考答案:A
參考解析:本題考查刪除鏈表中的結點操作,其方法是將要刪除結點的上個結點的下個結點指向要刪除結點的下個結點,然后釋放該要刪除結點,所以選項A正確。
8[單選題] 若有以下程序
則程序的輸出結果是
A.earlsB.ahabjC.ckbdlD.black
參考答案:D
參考解析:程序首先初始化字符數組a[5][10]和二維數組p[6][2]。執行for循環語句,循環變量i從0取值到5,得到字符數組W[]的值,并通過字符串輸出函數pats進行輸出操作。w[0]=a[0][1]、w[1]=a[1][5]、w[2]=a[0][0]、w[3]=a[0][2]、w[4]=a[1][4]、w[5]=a[4][4];因此最后字符數組W的結果為black。因此D選項正確。
9[單選題] 若有以下程序
則程序的輸出結果是
A.3B.7C.6D.10
參考答案:D
參考解析:第—個if語句a!=1條件為假,所以執行dse后的語句r=1。第二個if語句b==2條件成立,執行r+=2,r的值變為3,第三個if語句c!=3條件為假,所以不做任何操作。執行下面的r+=3操作,r的值變為6。判斷第四個訌條件,d==4條件成立,執行r+=4操作,結果為10。
10[簡答題]N名學生的成績已在主函數中放人一個帶頭節點的鏈表結構中,h指向鏈表的頭節點。請編寫函數fun,其功能是:求出平均分,并由函數值返回。
例如,若學生的成績是:85 76 69 85 91 72 64 87,則平均分應當是:78.625。注意:部分源程序在文件PROGl.C中。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填人你編寫的若干語句。
參考解析:
【考點分析】
本題考查:鏈表的操作,對鏈表的主要操作有以下幾種:建立鏈表、結構的查找與輸出、插入一個結點、刪除一個結點。
【解題思路】
題目要求求鏈表中數據域的平均值,應首先使用循環語句遍歷鏈表,求各結點數據域中數值的和,再對和求平均分。遍歷鏈表時應定義一個指向結點的指針P,因為“頭結點”中沒有數值,所以程序中讓P直接指向“頭結點”的下一個結點,使用語句STREC+P=h÷next。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |