c語言第8題c為什麼18?第九題a為什麼

2022-02-27 10:49:09 字數 3041 閱讀 9876

1樓:

這個是函式作用域的問題,在函式內定義的變數函式呼叫完就銷燬了,所以是不能在函式內通過賦值符號改變函式外變數的值的,要麼用返回值的方式,要麼通過指標來修改

2樓:王龍**

8題相當於直接賦值,所以是18,9題fn函式的x值是不會變的,只有指標型的*p的值才會變,自己好好學習指標和別名就知道了

3樓:

因為傳的是值而不是指標,b傳的是指標,所以值被修改了

c語言:第5題答案是a,我選c。第八題c怎麼錯了

4樓:醉停晚楓

第5題:i被初始化為5,for迴圈在執行前需要先判斷第二個表示式i--<5,是否成立,成立才會執行for迴圈裡的**,i--表示先使用i的值,然後再對i執行--操作,i的值是5,顯然5不小於5,表示式不成立,直接退出for迴圈。因此a答案不是無限迴圈。

第8題:p指向的字串的長度是5,但是s陣列的長度卻是5+1,因為需要多一個位元組存放結束符'\0'

5樓:

第五題c 的意思是 直到i-j 小於等於零的時候結束,你自己可以模擬一下,這種情況是達不到的,第八題 , s 陣列的長度是字串的長度加1 ,因為還要算上字串的結束符'\0'

c語言,第八題為什麼選c?

6樓:匿名使用者

關鍵知識點

1、非零數看成邏輯真

2、算數運算子優先順序高於邏輯運算子

3、單目運算子!優先順序高於算數運算子

!(a+b)*c-1&&b+c%2相當於(!(a+b)*c-1) && (b+c%2) = (!7*5-1) && (4+1) = (0*5-1) && 1=1

參考**

#include

int main()效果圖

7樓:匿名使用者

首先,邏輯表示式不是1就是0,這個要知道,然後呢,第八題是一個與表示式,第一個條件!(a+b)*c-1呢,a+b是7,然後!之後呢變為0,所以第一個表示式就為-1了,不是0就都為真了,同理第二個表示式也為真,所以兩個真的與也為真,也就是1了。

8樓:匿名使用者

首先答案不可能是0或者1外的答案……另外不要走進另外一個誤區,只要不是0則為真,所以左邊算出負數仍為真,右邊估計你也懂了

c語言題, a=b+c=5 這個賦值語句為什麼不合法?

9樓:皮潔仙璧

a++是一個表示式,且並不是變數。

a++僅存在一個臨時空間用於儲存表示式的運算結果,該臨時空間並不能被修改,故其不能作為賦值型別運算子的左值。如(a+b)=c是不合法的表示式,因為(a+b)只有運算結果而不能被賦值,故不能作為賦值符號的左值

10樓:牛牛牛不牛

這個語句的意思是將 5賦值給 b+c然後將結果賦值給a

b+c是一個 左值,可以理解為一個常量,當然不能對其進行賦值操作

11樓:匿名使用者

1、賦值一般形式為:變數=表示式,例如a=5。

2、變數=(變數=表示式),a=(c=5)也是合理的,即先執行c=5,再執行a=c;

3、變數=變數=…=表示式;例如:a=b=c=d=e=5;按照賦值運算子的右接合性,因此實際上等效於:

4.、注意賦值表示式和賦值語句的區別。賦值表示式是一種表示式,它可以出現在任何允許表示式出現的地方,而賦值語句則不能。

下述語句是合法的:if((x=y+5)>0)z=x;語句的功能是,若表示式x=y+5大於0則z=x。下述語句是非法的:

if((x=y+5;)>0)z=x;因為x=y+5;是語句,不能出現在表示式中。

你題目中的 b+c 就是表示式

12樓:匿名使用者

因為賦值號的左邊一定是一個變數,而不能是常量或表示式!

c語言編寫第5,8題

13樓:聽不清啊

5)#include

void fun(char *s)

int main()

{char s[200];

gets(s);

fun(s);

puts(s);

return 0;

8)#include

void fun(int n)

{if(n>9)fun(n/10);

printf("%d ",n%10);

int main()

{int n;

scanf("%d",&n);

fun(n);

return 0;

14樓:

#include

void invert_string(char str);

void print_digit(void);

int main(void) ;

invert_string(str);

printf("逆序後的字串是: %s\n\n", str);

print_digit();

return 0;

}void invert_string(char str)int i;

int ch[4];

for(i=0; i<4; i++)

for(i=0; i<4; i++)}

c語言,第八題和第五題,誰幫忙求解下,詳細過程,謝謝

15樓:東風冷雪

5.0a

s=0+9=9;

bs=9+6=15;

cs=15+3=18

s=18+1=19

8.0i**有分號,所以哪一步執行完 a=2j**,a從[0,4]增加了 4-0+1=5所以結果7

16樓:匿名使用者

void main... 看到這種腦殘**就煩。

第8題兩個迴圈沒有巢狀。 先加3次再加4次。 第5題,--在前, 先減再用

C語言第9題,求詳解,C語言選擇題,求詳解

小寫字母的ascii碼比同一字母的ascii碼小32。a a 就ascii碼值而言,就是 32。所以,ch ch a a ch a a ch 32。即ch的值就是 g 字母是按順序 bai排列的,小寫字母du用zhi a 加上 相對 a 的偏移dao數內就是相應的字母,大寫字母相容對 a 的偏移數就...

求解答一下第八題c語言,求c語言大神詳解,第八題為什麼選c

賦值表示式是一種表示式,它可以出現在任何允許表示式出現的地方,而賦值語句則不能。希望下次拍出來的圖自己看看 望採納,謝謝。第八題 c a d,b d 第四題 b 就服你,也不接一個橫屏的 c語言選擇題第8題,求大神解答,具體的解題分析,等 c正確。2d 佔寬2位,當實際數位多於2時按實際數位輸出 0...

C語言這道題答案為什麼是0?

答案不是0次,而是1次。因為第一次時 i 0,j 1所以 i j 1是成立的。第二次時 i 2,j 0,那麼 i j 1就不成立了。所以迴圈體一共執行了一次。這個迴圈,迴圈體執行的次數是1次,而不是0次。因為變數 i 的初始值是0,變數 j 的初始值是1,所以一開始,i 2 的條件是成立的,迴圈體會...