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