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語言編輯器有好幾個,同一個邏輯錯誤在不同編輯器上表現也不同,有的就對...