1.若x 為整數, c語言 正確 表達 數學 式 0≤x<5的是() 。
a.0<=x<5
b.x=0||x=1||x=2||x=3||x=4
c.x>=0||x<5
d.!(x<0||x>=5)
正確答案: d 你的答案: b (錯誤)
a選項,0<=x<5這種寫法在c語言中是錯誤的,應該寫作:x >= 0 && x < 5; 所以a選項錯誤。
b選項,題幹中說明x是整數,在x=0||x=1||x=2||x=3||x=4中,或運算子連線起來的每個表示式僅有乙個等號,表示的是賦值而非判斷相等,應該寫作x0||x1||x2||x3||x==4,所以b選項錯誤。
c選項,x>=0||x<5相比原有的數學式擴大了範圍,因此c選項是錯誤的。
d選項,!(x<0||x>=5),表示乙個數或者不小於0,或者不大於等於5,即表示這個數大於等於0且小於5,因此能夠正確表達題中的表示式,d選項正確。
綜上,本題選擇d。
2.若有以下說明,則對n的正確訪問語句是( )。
class y
;int y:
:n;y objy;
a.n=1;
b.y::n=1;
c.objy::n=1;
d.y>n
正確答案: b 你的答案: c (錯誤)
a錯在沒有寫出n的作用域。c錯在物件後用作用域識別符號,應該用點。d選項語法就錯誤了,是沒有意義的表示式,類和物件沒法比較。靜態資料成員是使用類名而不是物件名來呼叫 因為靜態資料成員只與類有關 而與具體物件無關,靜態變數是所有類物件都可以共用的,並不是乙個類的物件宣告乙個靜態變數。
3.下面程式段輸出結果是()。
short
int i=
32769;
printf
("%d\n"
,i);
a.32769
b.32767
c.-32767
d.輸出不是確定的數
正確答案: c 你的答案: d (錯誤)
short int 表示範圍: -32768~32767 ,高於最大值輸出最小值
這題考的是溢位,截斷賦值。
32769是int常量,長度是4位元組,二進位制原碼和補碼都是00000000 00000000 10000000 00000001;
將32769賦值給short變數i時,由於i長度是2位元組,發生截斷賦值,只將低16位賦值給i,高16位溢位捨棄,所以i的補碼是10000000 00000001,則原碼是11111111 11111111,值是-32767
4.以下程式的輸出結果為()。
main()
a.11,10
b.9,10
c.010,9
d.10,9
正確答案: b 你的答案: a (錯誤)
0開頭是八進位制,0x是十六進製制
八進位制的10是十進位制的8。
5.下面程式的執行結果:
class a
;class b : public a
;void
seta
(a* data,
int idx)
intmain
(int argc,
char
*ar**)
for(
int i=
0; i<4;
++i)
return0;
}
a.11111111
b.12121212
c.11112222
d.21212121
e.22221111
正確答案: e 你的答案: d (錯誤)
這道題應該注意 指標型別加減 時步長的問題。
a 大小為 4
b 大小為 8
那麼:void seta(a* data, int idx)
1)由於傳入的實參為b型別,大小為8,而形參為a型別,大小為4
data[idx] 取 data + idx 處的元素,這時指標 data加1 的長度不是乙個b長度,而是乙個a長度,或者說是1/2個b長度。這時該函式中 data[0~3] 指向的是原 data[0].a,data[0].b,data[1].a,data[1].b,
由於隱式型別轉換的緣故,data[0].a, data[0].b,data[1].a,data[1].b 處的值全部由於 data[idx].a = 2; 操作變為 2。
這道題如果改為void seta(b* data, int idx),那麼形參中data指標加1步長為8,結果就是21212121。但是由於步長為4,所以結果就是 22221111。
2)因為seta函式引數為類a的指標,所以每當指標+1,指向的是下乙個long型別資料,不是data[1].a,而是data[0].b的位址,所以前面4個資料被賦值為2
Linux易錯題整理
1.etc目錄存放使用者密碼資訊。2.當登入linux時,乙個具有唯一程序id號的shell將被呼叫,這個id是 b a.nidb.pidc.uid d.cid 3.當執行在多使用者模式下時,用ctrl alt f 可以切換6個虛擬使用者終端 4.linux啟動的第乙個程序init啟動的第乙個指令碼...
python基礎易錯題
1.以下 輸入什麼 class person a 1 def init self pass defgetage self print name p person p.getage 結果為 main 2.為了讓下面這段 執行,需要增加哪些 class a object def init self,a,...
c c 易考點整理
對於平時的考試以及找工作的筆試 面試,c c 是必考點,接下來,就對一些易考易錯點進行整理,後續在學習過程中,遇到新的問題會進行補充。new delete 與 malloc free 的區別 malloc 和free 不在編譯器控制許可權之內,不能把建構函式和析構函式的任務強加給他們。include...