關於c語言的基礎問題,C語言基本問題

時間 2021-10-15 00:00:54

1樓:三天打魚

?:是三元運算 條件?成立返回這個:

不成立返回這個x大於10條件不成立所以返回x -10 結果是0w++||z++ 或運算 由於前面的w不為0 所以直接返回結果1 而後面的z++不執行 z值不變

!w>z  w取反大於z  !的優先順序高 所以先取反w w不等於0 所以取反結果是0  而0不大於z所以返回0

w&&z  w與z是不是都不是0 w=4 z=7 條件成立 返回1結果是 0 1  0 1

上機測試結果

你那題目是錯的…………

2樓:匿名使用者

主要是考察對於各種運算符號以及運算優先順序別的知識掌握;

優先級別:

先算術運算,然後

最高:!

>、>=、<、<=

==、!=

&&最低:||

第乙個printf語句中

x>10?x+100:x-10

這是乙個?運算,其一般格式為

表示式1?表示式2:表示式3

其運算規則如下:

表示式1是乙個邏輯表示式,如果表示式1結果為真,就以表示式2的結果為最終結果;如果表示式1結果為假,就以表示式3的結果為最終結果。

本題:x>10 為假,因為x的賦值為10;所以結果為: x-10 = 10-10=0

第二個printf語句中

++是加1運算,而||是邏輯或運算

w++||++ ==> 4||8,邏輯運算先把非零值轉換成true,0值轉換成false

所以 4||8 ==> true||true ==> true 再把true轉換成1,所以輸出結果為:1

第三個printf語句中

!是邏輯運算的非運算,>是關係運算,這裡先做!運算,!3==>!true==>false==>0

所以!w>z ==> !3>7 ==> !true>7 ==> false>7 ==> 0>7 ==> false ==> 0

c語言裡面,在進行邏輯運算的時候,把非0值看作true,把0看作false,反之在輸出的時候true輸出1,false輸出0。

所以輸出結果為:0

第四個printf語句中

w&&z,其中&&是邏輯與運算

w&&z ==> 3&&7 ==> true&&true ==> true ==> 1

所以輸出:1

3樓:小卒丶蹴

w =3,z=7,x=10

printf("%d\n", x>10?x+100:x-10);

判斷x>10是否為真,結果是為假,輸出冒號後的值:x-10 = 10 -10 =0

printf("%d\n",w++||z++);

w++ || z++ = 3++ || 7++ = 4 || 8 = 1 ,4 || 8兩個非零數相或輸出 1

printf("%d\n",!w>z);

!w>z = !3 > 7 = 0 > 7 = 0, 先進行!運算,在判斷大小,輸出:0

printf("%d\n",w&&z);

w && z = 3 && 7, 兩個非零數相與 輸出: 1答案: c

網頁鏈結

c語言基本問題

4樓:岔路程式緣

一、c語言規定總是從main()開始執行的(這個函式也叫「主函式」)。因此,你發來的題目中的(1、6、8)敘述都是錯誤的,都應該選擇f。

二、第2題中,c語言對其資料在記憶體中所占用的實際位元組數,隨著程式中宣告的資料型別以及資料的多少而變化,c語言本身並沒有明確規定。這題應該選f。

三、第3題,c語言中強制型別轉換,僅對轉換的語句有效,而不會改變所轉換變數的原有資料型別,這是正確的,應該選t。

四、第4題,i=8,j=10;printf("%d,%d,%d,%d\n",i,j,++i,j++);實際上是乙個程式執行類題目,執行這一句時,先取得ij變數的值,其中有乙個++i(先自增),乙個j++(後自增),先自增的i先加上1,也就是i=8+1=9,而後自增的j在列印之後再加1,所以列印時仍是j=10。所以列印出來是:9 10 9 10。

這是正確的。

五、第5題「c語言中放在「」之間的內容都被視為字串的乙個構成部分,都可以在螢幕上原樣顯示」的說法是錯誤的。舉乙個例子就可以了:print("%d",8);是列印不出來%d的,它只能列印出來8。

所以它是錯的。

六、第7題,設x、t均為int型變數,則執行語句"x = 10;t = x && x >10;"後,t的值為,這個題目好似沒有寫完,成了填空題了,現在來看計算過程,t = x && x >10,根據計算的優先順序,>號是6級,&&是11級,先計算x >10,因為x=10,故x>10是不成立的,所以它的值是0,第二步再計算x && 0=10 && 0=0。t的值最後應該是0。

希望對你有所幫助。

5樓:匿名使用者

第一題:f,是從主函式的第一條語句開始執行的。

第二題:t,每一種資料型別在c語言中都占用固定的位元組數。

第三題:f,強制型別轉換會改變資料型別。

第四題:f,輸出結果為8,10,9,10。

第五題:f,不能被原樣顯示的有預處理命令中被包含檔名(如"stdio.h")、printf函式的轉義字元(如"\n")。

第六題:f,程式執行是從主函式第一條語句開始,執行到主函式最後一條語句結束。

第七題:t的值為0,因為x>10的值為0。

第八題:f,c程式執行從主函式開始。

6樓:匿名使用者

f( t  )c語言程式是從原始檔的第一條語句開始執行的。

//c語言程式是從主函式中的第一條語句開始執行的

2.   f( t )c語言對其資料在記憶體中所占用的實際位元組數是有明確規定的。

//c語言對其資料在記憶體中所占用的實際位元組數沒有明確規定,比如:整型資料在turbo c中佔2位元組,在vc中佔4位元組

3.   t(  f)c語言中強制型別轉換不會改變原變數的原有資料型別。

//強制型別轉換不會改變原變數的原有資料型別,得到的結果是轉換後的型別資料

4.   t( f  )程式段:i=8,j=10;printf("%d,%d,%d,%d\n",i,j,++i,j++);其結果9,10,9,10.

//先執行j++,輸出10  再執行++i,輸出9,然後輸出i和j的值,分別是9,10

5.   f( t  )c語言中放在「」之間的內容都被視為字串的乙個構成部分,都可以在螢幕上原樣顯示。

//c語言中放在「」之間的內容都被視為字串的乙個構成部分,前半句是正確的

//都可以在螢幕上原樣顯示。不一定,比如有些轉義字元,換行符\n,退格\b等等

6.  f( t )c程式的執行是從程式的第一行開始,一直到程式的最後一行結束。

//c程式的執行是從主函式的第一行開始,一直到主函式的最後一行結束

7.   t( f)設x、t均為int型變數,則執行語句"x = 10;t = x && x >10;"後,t的值為。

//執行語句"x = 10;t = x && x >10;"後,t的值為0

8.   f(t   )c程式的執行從程式頭開始。

//c程式的執行是從主函式的第一行開始,主函式可以位於程式中的任何地方,不一定是程式的開頭

7樓:匿名使用者

1經常程式執行是由啟動**開始的,而啟動**一般都是彙編寫的,2.不確定的,資料型別定義的時候是確定的,執行的時候根據硬體多不同會有所不同

3.毫無疑問肯定會了,要不還說什麼強制呢,對吧4.應該是8,10,9,10吧。

因為printf語句就執行了一次,所以第乙個i是8,第二個i是先+後輸出應該是9,第乙個j是9,第二個j是先輸出後++,而程式只執行了一次,所以還是沒有+,等於10。

5.雙引號是c的字串格試符,所以是對的。

6.同第一題

7·沒有看明白

8.同第一題

8樓:匿名使用者

1、假,從main開始執行。

2、假,int的長度不明確。

3、真。

4、假,從左向右計算,8,10,9,10

5、假,有轉義字元。

6、假,見1

7、t=0

8、假,見1

9樓:蹉燦紫婉娜

("a/1000>=1")

你這句寫錯了,應該是

(a/1000>=1)

把引號去掉

10樓:狂雲德潮鶯

1·c語言程式的基本單位是(b函式)a過程b函式c子程式d標誌符2·如果a=5<<2,為什麼a=20?

a=5<<2相當於a=a*2的平方

即a=5*4=20

3·不能正確對字串賦值的是(a

二維陣列不應該這樣賦值)a

char

st[4][5]=;b

char

*s;scanf("%s",s);

cchar

*s;s="abcde";d

char

s[5]=;

4·正確輸入字元組a的是(d)a

gets('a');

bscanf("%c",a);

cscanf("%s",a);d

gets("a");

5·如果c=35,為什麼printf("%d\n",c&c)的值為35?那個c&c是什麼東西。&在這裡是「按位與」運算

c&c化為二進位制的比較,都為1

則為1,否則為0.再化回10進製數

11樓:淦菀歐陽陽冰

if("a/1000>=1")

這句應改為

if(a/1000>=1)

不然永為真

c語言基礎問題?

12樓:

第28行最後面的分號刪掉。

這麼粗心,屁股伸出來等著挨打吧……

13樓:歡樂申村

你呀,自己原的基礎數數語言是一種嗯,一種不可能在網路上流通的語言,他是一般官方上的語言,但是在一些地區流通還是有一定的結果效果

14樓:雄粑粑鍋爸爸

在你的程式當中,if()後面直接接了分號,導致if語句直接結束,為啥會執行後面的**呢,因為後面的**根本不在if的語句裡面,去掉分號就好了,請採納

c語言基礎問題?

15樓:匿名使用者

假定:int y=x++*1/3; 相當於 int y=x*1/3; x++;

先計算x*1=11, 然後是11/3=3, 然後是x++; [x=12] 表示式的值是3

16樓:匿名使用者

這個表示式等價於x*1/3,然後是執行x++。因為x是個整型變數。整數除整數結果為其商。所以表示式返回的結果為2。

17樓:匿名使用者

x++是後加,所以x++*1/3相當於

x*1/3;

x++;

即11*1/3,結果為3

18樓:甄倩璩斯年

1.16

函式體由符號

結束.函式體的前面是定義部分,其後是執行部分.

1.17

不知道1.18

intfloat

double

1.19

float

a1=1,a2=1;

1.20

儲存單元

1.21

3.51.22

1.23

把10賦值給s

1.24

位bit

1.2549

1001

00000

1.26

9911

10011001

00010001

c語言基礎問題,C語言基本問題

變數要定義為全域性變數,就是要在函式體外面定義變數,同時不能加關鍵字static靜態的,靜態全域性變數只能在本檔案內使用,你先在乙個檔案中定義變數,比如 include int a int main 在另外的檔案中,如果你想要使用變數a,那麼首先要extren int a extren關鍵字的意思是...

C語言的基礎概念問題,關於c語言的基礎問題

二元運算 由兩個元素形成第三個元素的一種規則。例如數的加法及乘法 更一般地,由兩個集合形成第三個集合的產生方法,或構成規則,稱為二元運算。從二元運算的定義可以看出,賦值不是由兩個元素形成第三個元素,所以賦值運算子不是二元運算子。二元運算子 二元運算子是寫在執行運算的子表示式對之間的運算子。是運算子,...

c語言的問題,C語言基本問題

include void main 改錯第一個,scanf後要有 for迴圈裡的是分號,其餘的不想做,太多了 樓主,太多了吧 3 int a if ch else a 0 printf d a 改錯第4個 sum應定義為float 5 i 10 if前加else 喜羊羊 include stdio....