c語言題目,c語言題目

2023-04-21 14:40:21 字數 5416 閱讀 2287

1樓:匿名使用者

不一樣,分別是1,2

至於第一個是以就不用說了,輸出的配對是從左向右的。

第二個區別在於多了一個括號,相當於逗號表示式。

輸出的是逗號後面的數,即是b的值。

2樓:我們相戀四年

第一個輸出1,第二個輸出2 ,原因第一個程式只輸出一個%d,按照從左到右的順序來輸出,第二個程式,printf("%d",(a,b));a,b)式中逗號運算子使用方法是隻算後面的數,所以(a,b)的值為b的值,換成(b,a)就輸出1

3樓:匿名使用者

括號優先順序高於逗號,逗號表示式的求解過程是:先求解表示式1,再求解表示式2。整個逗號表示式的值是表示式2的值。

比如:printf("%d,%d,%d",a,b,c);

上一行中的「a,b,c」並不是一個逗號表示式,它是printf函式的3個引數,引數間用逗號間隔。

如果改寫為。

printf("%d,%d,%d",(a,b,c),b,c);

則「(a,b,c)」是一個逗號表示式,它的值等於c的值。括弧內的逗號不是引數間的分隔符而是逗號運算子。括弧中的內容是一個整體,作為printf函式的一個引數。

4樓:匿名使用者

不一樣,第一個輸出1,第二個輸出2

5樓:帳號已登出

樓上幾位說的都很好,我來蹭兩分……

c語言題目 5

6樓:匿名使用者

f=5這是一個逗號表示式,逗號表示式作為一個整體,它的值為最後一個表示式的值。

f=(,為一項,,,為另一項。

所以f=(3,4,5)的最後一個,也就是5整個表示式的值為0

7樓:網友

f是浮點型的話 就等於; 是整型的話,就等於0

c語言題目

8樓:鑽時封芯

一:printf("%x)的意思是,輸出結果左對齊,一共6位,小數部分佔2位,即結果為:。

二:輸出pass啊。n++是先使用再自加。

9樓:匿名使用者

第一題:執行結果【

#include

int main()

貌似是控制輸出格式的,好長時間沒接觸,不太清楚了。

第二題:題目有問題,寫的有點亂,不知道你要表達什麼效果,執行了下,結果為pass

#include

int main()}

10樓:暮雨花幽

首先說第一個問題:簡單地說%e為科學計數法輸出,在計算機上表示為:數字e+n、數字e-n(10的n次方或負n次方)。

至於%與e之間的內容為對輸出的控制。此處:-6.

2 -代表左對齊,6代表整個數字佔六個格(若佔不滿空格補充代表小數點後保留兩位。

所以結果為:

第二個問題:default語句預設在所有case之後執行(前提是沒有case中的條件符合輸入值)

另外case與if的區別就是一旦輸入值滿足了一個case的條件,在執行完這個case以後,會自動執行下一個case中語句(需要手動break跳出)。倒數第二行中沒有break語句,所以程式執行case『c』後直接執行case『d』

最後說明一點case 'a':case 'a':case 'b'=printf("good");break;

由於剛才說的特點,case『a』後面沒有任何語句,所以一旦滿足了case『a』後,程式會自動往下進行,執行case 'a',依次類推,直到遇到break。所以以上語句等價於。

case『a』:printf("good");break;

case『a』:printf("good");break;

case『b':printf("good");break;

結果:passwarn

11樓:聽不清啊

答案是選d的話,說明你用的是16位的編譯器,每個int佔2個位元組。

因為p的值是194h,所以p+9=194h+2*9h=194h+12h=1a6h

上面以h結尾表示是16進位制數。

12樓:匿名使用者

此處p值為&a[0],而p+9即&a[9]

已知&a[0]值用16進製表示為194,那麼&a[9]值用16進製表示即為a[0]地址再偏移9個sizeof(int)個位元組。

此處題目ms是將int做2位元組處理的,所以偏移18個位元組,16進製表示也就是12,也就是194h+12h==1a6h

13樓:匿名使用者

int型資料在不同的編譯系統所佔的位元組數不同,我想你的編譯系統所給int型資料的位元組數為2個。如果p列印出為194,則p+9則應該為以p為開端往後偏移9個單位容量的數值,由於你這個陣列是int型,所以單位容量為2位元組,9*2=18,即194+18,記住輸出要求為%x,即十六進位制,所以這是十六進位制的加法,結果為1a6

14樓:召走刀文

這道題選d的前提是sizeof(int)等於2。也就是int型的大小為2位元組。如果是4位元組的話,應該是1b8

第一個列印,所名陣列a的首地址是0x194。

第二個列印的是首地址向後偏移9次,因為是int型的,所以每次偏移int型的位元組數。如果int型的大小為2位元組則,列印的就是0x194+9*2,十六進位制就是0x1a6。

15樓:匿名使用者

這個輸出,肯定是指標值。不是指標指向的值。因為陣列是int型的。int的長度是4.所以指標指向下一個單元的值要加4.

第二個輸出,做了個+9的操作。那麼用十進位制運輸就是比第一大了4×9=36的。轉換為16禁止再加上194.我算怎麼沒有符合的呢??

c語言題目

16樓:匿名使用者

a.陣列訪問越界,定義的陣列長度為10,索引從0開始計算,最大隻能是9

c.和a類似,pt的地址指向陣列x的第一個元素,則pt+10指向x陣列的第11個 元素,而x只有10個元素,*(pt+10)訪問的x的第11個元素,所以越界了。

是x陣列的第4個元素的地址值,而不是資料為 x陣列的第一個元素的地址值,x+3即為x陣列的第4個元素的地址值,所以*(x+3)訪問的是x陣列的第4個元素的值。

17樓:哥不帥你砍我

x是一個引用,指向陣列的首地址。

將引用x賦值給pt之後,pt也指向陣列的首地址a)x陣列的長度為10從int[0]~int[9]b)中x+3為元素第四個元素的地址 操作*(x+3)取地址內容即int[3] 正確。

c)pt+10 錯誤原因同a 陣列越界。

d)pt+3屬於對地址的操作,不是陣列元素的應用。

18樓:匿名使用者

a.不存在x[10],最多隻有x[0],所以錯c.同上,越界了,最多隻有pt+9,也錯。

是x[3]的地址,*(pt+3)才是x[3],還是錯所以,b

19樓:網友

7.這個是常識,選擇a,即用0-255之間的數字來表示字元。

8.因為while迴圈的迴圈體只有一條語句sum +=a;由於a並沒有在迴圈體內進行自加,因此a的值將一直是10,所以迴圈不會結束,所以選擇d

9,!i這樣的表示式表示當i為0時表示式為真,i為非零時,表示式為假,因此與c選項相同。

陣列元素產生溢位,不能用容量為4的陣列來保持5個元素。

b:應該用{},而非()

c:正確,只給陣列s的前三個元素賦值,後兩個預設為0d:錯誤原因與a相同。

6:a-=a-5即a=a-(a-5),此時a的值為5,即因此c的值為5,然後執行(a=b,b+3);所以把b的值賦給了a,因此a的值變成了1,b沒有給它賦值,因此仍然為1,所以答案選擇a

20樓:匿名使用者

7,a:字元都是ascii碼錶示的。

8,a:題目條件出錯,應該是a=sum =0;

9,a:!i是當i非0時候成立。

10,c:a中定義過多元素,b中不是集合形式,d是同樣元素定義過多。

a:a,b都不變,c按照右結合集合計算c=1-(-4)=5;

不懂,可以hi我。

21樓:匿名使用者

7 a 8 (我覺得題目有問題a = sum = 10;這行要改為a = sum = 0;這樣結果就應該選a)

9 c10 c

6(我覺得答案是1,1,4)

根據課本上說的:

c=(a-=a-5),(a=b,b+3);在這裡是一個逗號表示式。

逗號表示式的一般形式是。

表示式1,表示式2

逗號表示式的求解過程是:先求解表示式1,再求解表示式2.整個逗號表示式的值是表示式2的值。

22樓:匿名使用者

p的值等於584或n的值大於等於 break能結束迴圈,而continue只能結束本次迴圈,8,7

a=5,c=10

11題&&邏輯表示式一個為假就跳出;

12.一般概念;

13. a=(-x= =y++)x:

y; 結合題目:a=(8==5)?-x;++y; 因為--x沒選擇所以不進行操作而y變為了7,a=7 x還是8;這裡清楚了下面的你都會的;

14 if(x>y) z=x;if的作用到這裡;

15語句是{} 或表示式或加上分號(;)

c語言 題目

23樓:匿名使用者

結果是-1。

char x=0xddff; 最前面0x表示後面的數是十六進位制。ddff是兩個位元組的一個數。而x是字元型別char,只能儲存一個位元組。

按照微機原理,x儲存了低位的ff,而最後列印出來的是%d,就是將x轉化為整數型別,因為整數型別是兩位元組,所以x=,最後輸出-1

ff 到 -1 怎麼算。

應該是ffff到-1怎麼算。

四位16進位制數的無符號的範圍是:0——65536有符號的範圍是:-32768--32767計算機儲存資料時是採用二進位制(可以跟16進位制轉化)的補碼儲存的ffff(1111111111111111)就是-1的補碼為什麼?

1)明確:正數的原碼、反碼、補碼是其本身,例如:1是0000000000000001.

負數的原碼是正數的原碼最高位符號位變為1,如-1是1000000000000001.負數的反碼是正數的原碼按位取反,如-1就是1111111111111110.負數的補碼是負數的反碼加1,如-1就是1111111111111111(2)

24樓:測繪地理資訊

輸出結果是-1。解釋如下:

0xddff是一個十六進位制數的整數,把它賦值給一個字元型變數,會造成資料丟失。字元型變數佔一個位元組,那麼擷取的就是低位一個位元組的資料,也就是十六進位制的ff,用二進位制表示就是11111111,而二進位制的11111111轉換成十進位制的整數,就是-1。所以輸出結果是-1。

c語言程式設計題目,C語言程式設計題目

給你下思 來路吧第一個 素數演算法不好 源 改用素數篩 沒聽說過的 話 自己搜 很常用的演算法 第二個 對於a先求個位數 然後按照你的演算法求值如果還是超時的話 那麼進行折半遞迴 類似於int get value int a,int b int main include int cacu int a...

c語言題目,求解,C語言題目求解

x就是16進位制的,0就是零字元,一個十六進位制的數佔一個位元組,零字元在算位元組時不佔位元組,之後結果就是佔一個位元組 我就說要點了。1 double x,y x 1 y x 3 2 y的值為什麼是2.0?3 2兩個整型相除得整型1。2 main x 1值為0那麼輸出的應該為0 為什麼答案是1?單...

C語言題目 簡單 ,C語言題目簡單的題目?

1 選c。t表示tab table 鍵bai佔1個字 du節,zhia佔1個位元組,017是8進位制數 0開頭的數dao 佔1個位元組,b和c各佔內1個位元組,還有字串結束容標記 0 系統自動加上去的 也要佔1個位元組,共6個位元組。2 選c。和前面的題差不多的思路,沒遇見 0 結束標記時,會一直列...