C語言程式設計錯題集(1)

2021-10-17 14:43:34 字數 2483 閱讀 4203

假設有變數定義如下 int a, k; 則以下哪條語句不能確保將變數k的值變為0:

a.k = a + ~a + 1;

b.k ^= k;

c.k = (k && !a) || (!k && a);

d.k = k && !k;

正確答案:c

解析:(1)對a選項,~ 表示按位取反,運算物件是二進位制資料,1變0,0變1。所有正整數的按位取反是其本身+1的負數,所有負整數的按位取反是其本身+1的絕對值,零的按位取反是 -1。例如,7的二進位制為0000 0111,取反1111 1000,表示-8,即 ~ 7的值為-8。故a不符合題意。

(2)對選項b,異或運算子( ^ )的運算規則是參與運算的兩個值,如果兩個相應位相同,則結果為0,否則為1。即: 0 ^ 0 =0 ; 0 ^ 1 =1 ; 1 ^ 0 =1; 1 ^ 1=0 。例如:3 ^ 5 = 0000 0011 ^ 0000 0101 =0000 0110 ,即 3 ^ 5 = 6 。故b不符合題意。

▁▁▁▁▁ 不是合法的常量。

a.38

b.038

c.3e8

d."\38"

正確答案:b

解析:對選項a,38是十進位制常量,合法;對選項b,以0開頭,表示八進位制,其中不能出現8、9,故038不是合法常量;對選項c,3e8是實型常量(e的前面必須有數字,e的後面必須是整數),合法;對選項d,"\38"表示乙個轉義字元,是特殊的字元常量,合法。

▁▁▁▁▁ 是合法的c識別符號。

a.tom

b.char

c.1st

d.you&me

正確答案:a

解析:合法識別符號:(1)只能由字母,數字和下劃線組成,且不能以數字開頭;(2)關鍵字是保留字,不能用來做識別符號;(3)大小寫字母表示不同意義, 即代表不同的識別符號。

若有定義:char ch=』\x42』;則變數ch中包含( )個字元。

a.1b.2

c.4d.定義不合法

正確答案:a

解析:』\x42』是轉義字元,x表示42是十六進製制數,42是字母a的ascii碼值。

若有定義語句:int x=12,y=8,z;,在其後執行語句z=0.9+x/y;,則z 的值為 ▁▁▁▁▁ 。

a.1.9

b.1c.2

d.2.4

正確答案:b

解析:x的值為12,y的值為8,則 x/y 的值就是1,因為z的型別是int,所以0.9+1變成int的值就是1。

有下列語句組:short a=127,b=035;printf(「a+b=%x\n」,a+b);執行後顯示( )。

a.a+b=162

b.a+b=156

c.a+b=9c

d.a+b=a2

正確答案:c

解析:a=127,十進位制;b=035,八進位制,即為十進位制29;a+b的和等於十進位制156,轉化為十六進製制得 9c 。

假設下列op1(運算元1)、op(操作符)、op2(運算元2三個)變數都被正確宣告。 如果執行語句 scanf (」% d% c% f」 ,& op1,& op,& op2) ; ,op1、 op 和 op2的值分別為1、 * 和2.0,則輸入必須為()。

a.1.02

b.12

c.1 * 2

d.1 * 2.0

正確答案:b

設 c=『w』,a=1,b=2,d=-5, 則表示式 『x』+1>c, 『y』!=c+2, -a-5b<=d+1, b==(a=2)的值分別為▁▁▁、▁▁▁、▁▁▁、▁▁▁ 。

正確答案:1 0 1 1

解析:(1)c=『w』,其ascii碼值為119,'x』的ascii碼值為120,則 『x』+1>c 即120+1>119為真,值為1;(2)'y』的ascii碼值為121,『y』!=c+2 即 121!=119+2 為假,值為0;(3)-a-5b<=d+1 即 -1-5*2<=-5+1 為真,值為1;(4)b==(a=2) 即 2==2 為真,值為1 。

下列語句中,▁▁▁▁▁可輸出「☼」字元(ascii 碼為 15)。

a) putchar(『☼』);

b) putchar(15);

c) putchar(』\17』);

d) printf("%c", 『\xf』);

注:請按順序填大寫字母。

正確答案:bc

以下**執行後,填寫相應變數的值:a=▁▁▁ ,b=▁▁▁,c=▁▁▁ 。

int a=8, b=5, c=1;

c=(a=8,b);

正確答案:8 5 5

解析:c=(a=8,b) 是乙個逗號表示式,c 的值是整個逗號表示式的值,逗號表示式從左向右計算,最右邊的值是逗號表示式的值。

以下程式的輸出結果是▁▁▁▁▁ 。

int main(void)

正確答案:25 21 37

解析:(1) a = 25,十進位制;(2)b = 025,以0開頭,八進位制;(3)c = 0x25,以0x開頭,十六進製制(0x是十六進製制的字首,h是十六進製制的字尾)。

以上。

C語言程式設計錯題集

2019 03 06 1.下列程式段輸出結果為 int x 1,y 012 printf d y x a.20 b.10 c.12 d.24 2.以下表示式x 1 用在if的條件中時,和哪個是等價的 a.x 1 b.x 0 c.x 1 d.x 0 3.對於以下 unsigned short sht ...

C語言錯題集

c語言錯題集 1 continue 不是結束本次迴圈,而是終止整個迴圈的執行。錯誤 用continue語句提前結束本次迴圈 2 直接訪問就是直接利用變數的位址進行訪問直接訪問 正確3 共用體變數可以作結構體的成員,結構體變數也可以作共用體的成員。正確4 列舉型別中的元素都具有乙個整型值。正確5 函式...

c語言錯題集

在 c 語言程式中 凡是沒有出現儲存類說明符的變數都是自動類的。1分 t f正確答案是t 兩指標變數相減所得之差是兩個指標所指陣列元素之間相差的元素個數。1分 t f正確答案是t 根據宣告int a 10 p a 下列表示式錯誤的是 d 2分 a 9 p 5 a p 以下陣列定義中錯誤的是 2分 i...