C語言變數賦值二道題,C語言。。。第二道選擇題

2023-01-25 12:20:28 字數 3378 閱讀 3176

1樓:匿名使用者

(1)選a。你看得書可能有錯誤,在定義變數型別的時候直接賦值int a=b=c=5;

這樣賦值是可以的。但是不能這樣寫:

int a,b,c;

a=b=c=5;

這樣就錯了。也就是說在定義型別時直接賦值,可以出現「a=b=c=5」這種形式,否則不行,必須寫成:

int a,b,c;

a=5;

b=5;

c=5;

(2)選d和a。因為a也不對,'a'+'b'才是a和b的ascii碼相加後的值,'a+b'則只能看成是一個字串,一個字串當然不能賦給一個字元變數,樓主可以上機試驗一下,這種賦值是提示錯誤的。b是正確的,'\0'是一個字元,表示空操作,就是什麼也不幹。

c也正確,'7'+'9'表示'7'和'9'的ascii碼相加後的值所對應的字元,應該是'p'。d就不說了,明顯錯誤的。所以這道題如果不是樓主打錯就應該是出錯了。

2樓:匿名使用者

第一題明顯沒有對的

第二題'a+b'可以理解成256進位制,賦值給ch的是最低8位的'b'。注意字元常量的型別是int,你在''裡最多可以寫4個字元**義算一個字元)。比如'1234'相當於0x31323334

'\0' 這就是0

d首先""就不對 "\"這樣就更不對了

3樓:匿名使用者

這麼久的題目了..我來糾正下吧

首先是第二題 d ch="\" " "這個符號是字串 ,所以"/"並沒錯,而選項a;因為 ' ' 符號是用在單個字元的所以是錯的,所以選a

然後是第一題 這個地方選項a是錯的,如果你是以考試為主你相信書就好了,其實這題我認為是個語文問題..題目說:整型變數a,b和c併為其賦初值5,「併為其」是不是指的是c呢?

這下大家明白答案了吧,是b哦

4樓:匿名使用者

1> a

排除法就可以知道了。

b只給c賦值了a,b沒有

c和d沒有定義

2> d

2>a:'a+b'是指a和b的ascii相加的值b:'\0'表示結束符或空字元

c:是'7'的ascii加上『9』的asciid:是兩個字元是一個字串『\』和『\0』

5樓:

(1)b a是錯的。在程式中編譯一下就知道了,它會報錯,所b和c沒有宣告。

(2)d是錯的。它什麼也不是。

\0是換行符也就是回車,

6樓:牛清潤

第一題選a:以上說的很清楚 我不重複了

第二題選d:a相當於將ab兩個字元的ascii碼相加 然後取對應的字元賦給ch

c與之類似

d錯誤 \可以是一個字元 但不能成為一個字串

7樓:柯南

書上對了,c,d沒有定義型別先排除,b只對c賦值了。a從右往左讀5賦給c,c賦給b,b再付給a。第二題a不對\0是轉義字元和\n類似

8樓:匿名使用者

第二題的ch='\0'是一個空字元,就是null

9樓:匿名使用者

1.a2.d

這都是上機驗證過的,別聽樓上自以為是

c語言。。。第二道選擇題

10樓:寒寒家

答案應該選c

注意這幾天就可以了:

1. 逗號表示式返回的是最後一個表示式的結果2. 賦值語句的優先順序高於逗號表示式

3. 逗號表示式從左往右算

拿c舉例,運算順序如下:

1. x = 6

2. x+1

3. y = 6

4. x+y; 也就是 6+6 並且這是最後一個表示式,所以是整個逗號表示式的返回值,所以返回12.

11樓:匿名使用者

選c這裡主要考察的都是,逗號表示式的有關知識(x=6,x+1,y=6,x+y) 計算的順序,是從左往右,以最後一個逗號後的表示式的結果為整個表示式的結果

該逗號表示式由四個表示式組成,先計算第一個x=6再計算x+1 ,結果是7

再計算y=6

最後計算x+y 結果為12 ,作為整個表示式的結果。因此,選c其餘的表示式的結果都為7

c語言程式設計第二道求x =1-1/2!+1/4!-1/6!…精確到小數點後五位

c語言中static變數的賦值問題

12樓:小夏在深圳

static int a = 0; // 執行期時初始化一次, 下次再呼叫時, 不進行初始化工作如下:

printf(「%d」,a);

a++;

int main()

staticlocalvar(); // 第一次呼叫, 輸出a=0

staticlocalvar(); // 第二次呼叫, 記憶了第一次退出時的值, 輸出a=1

return 0;

擴充套件資料

1、static對全域性變數的修飾,可以認為是限制了只能是本檔案引用此變數。有的程式是由好多.c檔案構成。

彼此可以互相引用變數,但加入static修飾之後,只能被本檔案中函式引用此變數。

2、static對棧變數的修飾,可以認為棧變數的生命週期延長到程式執行結束時。一般來說,棧變數的生命週期由os管理,在退棧的過程中,棧變數的生命也就結束。

3、但加入static修飾之後,變數已經不再儲存在棧中,而是和全域性變數一起儲存。同時,離開定義它的函式後不能使用,但如再次呼叫定義它的函式時,它又可繼續使用, 而且儲存了前次被呼叫後留下的值。

13樓:風清安有綢

如果是賦值初始值,那麼在程式執行初始就已經初始化了。

和全域性變數是一樣的。

但體現出來作用是在第一次呼叫。

至於後續賦值,隨便什麼時候都可以

想賦值的時候就賦值咯。

14樓:匿名使用者

呵呵,這就是靜態變數的功能啊,靜態變數只被初始化1次,所以不管幾次呼叫,它都不會再執行int c=3這行啦。而c的值就是你之前運算的結果

15樓:小魚

static定義的變數只有第一次被賦值,這之後會自然使用之前留下來的值了,不會每次都按3初始化的。:-)

16樓:匿名使用者

static變數與普通變數的區別就在於此

每次呼叫fun()函式,

函式開始時,初始化普通變數、分配記憶體,函式結束後,普通變數所佔用的記憶體就被釋放

而對於static變數,只是第一次呼叫時會初始化,函式體結束之後,static變數佔用的記憶體會被保留,從而變數的值不會發生變化,下次呼叫該函式,也不會重新初始化,而是保留上次的值

在c語言中怎樣隨機給變數賦值

在c語言 bai中,獲取隨機數的du函式為rand 1 宣告 zhi daoint rand void 2 標頭檔案 stdlib.h 3 功能 獲取一內個隨機數容。4 示例 int a rand 獲取一個隨機數並賦值給a int b rand 100 獲取一個0 99的隨機數,並賦值給b。c語言c...

二級c語言題,急求解,二級C語言題,急求解

選d 比較淺顯的來說,左移n位就是乘以2的n次方,右移n位就是除以2的n次方。具體細節如下 c語言裡的左移和右移運算 先說左移,左移就是把一個數的所有位都向左移動若干位,在c中用 運算子.例如 int i 1 i i 2 把i裡的值左移2位 也就是說,1的2進位制是000.0001 這裡1前面0的個...

一道二級c語言上機題

從結果上看你的答案是沒有問題,我也不知道你 錯了,但我發現你在邏輯上犯了錯誤!就順便給你說說,m是字串的最大長度,不是實際長度,當字串實際長度小於m時,多餘的部分用ascii的0還是用隨機數來填充,不得而知,這個要看編輯器是哪個,c語言編輯器有好幾個,同一個邏輯錯誤在不同編輯器上表現也不同,有的就對...