1樓:甄笑翠
根據從左到右計算順序,結合運算子優先順序,根據定義
a = 3, b = 4, c = 5,假定 a,b,c 為 int。真值為1,假值為0。
計算步驟如下:
1、計算 a + b,結果為 a + b = 7
2、計算 !( a + b) 結果為 0,也可以認為是false(假)。
3、計算 c/2,假定c為int時,結果為 2(取整),為float或者double時為2.5,但不影響最終結果,因為都是真值(非零值)。
4、計算 0 + c,結果為 5
5、計算 5 -1,結果為 4。
6、計算 b + 2 或者 b + 2.5,結果為 6 或者 6.5。
7、計算 4 && 6 後者 4 && 6.5,因為兩邊都為非零值,所以結果為 1,或者true。
這裡主要是一個運算子優先順序的問題,在本表達多中。
小括號的優先順序最高,所以最先計算括號內的值。
其次是邏輯非,然後是除法,然後是 加減法,最終是 邏輯與。
2樓:聽不清啊
#include
void a(int i)
main()
c語言練習題,在(1)(2)(3)(4)處填空
3樓:初代man影
int i i=0 a[i] n[i]
c語言中 x=(1,2,3,4);x的值是多少
4樓:匿名使用者
值為4.
(1,2,3,4)
這個是逗號運算表示式. 值是最右的值,也就是4所以 這裡相當於x=4;
5樓:匿名使用者
逗號表示式的結構是最後一個逗號後面的值,所以結果是4.
6樓:匿名使用者
在c語言這個是逗號運算浮,根據運算浮的結合性,逗號運算的順序是從左到右,所以x 的值為最右邊的值既x=4。
7樓:匿名使用者
x=4,這是一個逗號表示式,表示式的值是最後一個表示式的值。
8樓:匿名使用者
4,c的","是直接取後值。所以是4。
9樓:吉祥弓長
4,記憶中是「,」號好像算最後一個!!忘了跑遍程式不得了!
c語言中printf(「%d",x,(x|(1<<4)|(1<<3)|(1<<2)))是什麼意思?
10樓:迷路的國王
您好,回答內容較長,看就不亂了...
這都是位操作,其中:
~ : 意思是按位取反,類似於非(!)的關係,取它的反面。
<<: 意思是左移,移動二進位制的位。
& : 意思是按位與,類似於與(&&)的關係,一假為假。
^ : 意思是按位異或,通俗地說就是相同為0,不同為1.
| : 意思是按位或,類似於或(||)的關係,一真為真。
優先順序:按位取反 > 移位 > 按位與 > 按位異或 > 按位或
第一個式子:x | (1<<4) | (1<<3) | (1<<2),寫出它們的二進位制碼:
1 :0 0 0 0 0 0 0 1
1<<2:0 0 0 0 0 1 0 0 ★★
1<<3:0 0 0 0 1 0 0 0 ★★
1<<4:0 0 0 1 0 0 0 0 ★★
(1<<4) | (1<<3) | (1<<2):0 0 0 1 1 1 0 0 ★★★
顯然,拿(1<<2),(1<<3),(1<<4)與x求位或的結果就是將x二進位制位中第3、4、5位(從低位向高位計數)中的數變為1。此操作多用來恢復位。
第二個式子:x & ~(1<<2) & ~(1<<0),寫出它們的二級制碼:
1 :0 0 0 0 0 0 0 1
1<<0 :0 0 0 0 0 0 0 1
~(1<<0):1 1 1 1 1 1 1 0 ★★
1<<2 :0 0 0 0 0 1 0 0
~(1<<2):1 1 1 1 1 0 1 1 ★★
~(1<<2) & ~(1<<0):1 1 1 1 1 0 1 0 ★★★
顯然,這兩個式子與x進行求位與的結果就是將x第1、3位處的二進位制碼變為0,此操作多用來清除位。
第二個式子:x ^ (1<<3) ^ (1<<2),寫出它們的二級制碼:
1 :0 0 0 0 0 0 0 1
1<<2:0 0 0 0 0 1 0 0 ★★
1<<3:0 0 0 0 1 0 0 0 ★★
(1<<3) ^ (1<<2):0 0 0 0 1 1 0 0 ★★★
顯然,這兩個式子與x進行求異或的結果就是將x第3、4位處的二進位制碼取反(0與1生成1,1與1生成0),其他位置不變。此操作多用來反轉位和保留位。
您的採納是我們的動力(⊙v⊙)
求大師解決這個c語言問題,怎麼輸入 一串帶空格的數 1(空格)2(空格)3(空格)4
11樓:匿名使用者
c語言中,可以用gets函式來接收輸入的字串(包含空格)。
格式:gets(字元陣列名);
功能:gets函式用於將輸入的字串內容存放到指定的字元陣列中,輸入結尾的換行符'\n'被換成'\0'儲存在該陣列中。
舉例說明如下:
char str[20]; // 定義一個字元陣列,大小為20個位元組
gets(str); // 將使用者輸入的字串(可以包含空格)儲存到字元陣列str中,以回車結束輸入
printf("%s", str); // 輸出使用者輸入的字串(包含空格)
注:使用gets函式時,需將標頭檔案#include包含到原始檔中。
12樓:
方法之一:
#include "stdio.h"
int main(void)
c語言迴圈題!編寫一個程式,求s=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)。
13樓:凌亂心扉
#include
main()
}printf("%d\n",sum);}
14樓:匿名使用者
修改如下
#include
int main(void)
printf("%d\n",s);
return 0;
}圖為原程式在第二層迴圈加了個輸出,查出第二層迴圈有問題。
15樓:匿名使用者
3個錯誤:
1、第9行,item=1應該是item=02、第10行,j<=n應該是j<=i
3、第14行,%d應該是%lf
除此之外:思路很蠢,演算法過於複雜,對於每個累加項,每次都要從1開始加。
#include
void main()
printf("%d\n",s);}
16樓:福建省寧德市
首先,你輸出的格式不對,s是double型的數,你卻寫了%d,應該改為printf(%f\n",s)
其次,你迴圈條件設的不對,裡面的j迴圈條件應該改為for(j=1;j<=i;j++)
還有就是item的值設定為0比較好,這樣比較好計算修改後的**如下
#include
int main(void)
printf("%f\n",s);
return 0;}
17樓:匿名使用者
這種找規律的迴圈體寫一個統一的結構就行
18樓:兄弟連教育北京總校
#include
void main()
printf("%d",s);}
19樓:sin絕望
#include
void main()
else
z=y/x;
}printf("y=%f",z);}
c語言for(表示式1,表示式2,表示式3)語句 中表示式2為空語句則變成死迴圈,那麼這裡的空語句為真還是假
20樓:倒黴熊
這裡「表示式2為空語句則變成死迴圈」這樣說不完整正確。
例如下面這個迴圈:
int i=0;
for(i=0;;i++)
這就不是死迴圈,這裡將for的第二個表示式的判斷移至迴圈體內,藉助break來結束迴圈。
這裡的空語句可以理解為永真,因為沒有進行任何的判斷,所以可以這樣理解。
21樓:匿名使用者
你都說了變成死迴圈了。那你告訴我是真還是假呢。。
肯定只有是真,for迴圈裡面的內容才會執行啊。
22樓:匿名使用者
首先for語句中各表達
式是通過分號隔開的,通過表示式1確定迴圈初值,表示式2確定判斷迴圈條件,表示式3可用於設定增值;現表示式2為空語句,表示不做迴圈判斷直接執行迴圈體內語句,也可以認為是表示式2預設為真。
23樓:匿名使用者
糾正一個錯語: for(表示式1; 表示式2; 表示式3),裡面是分號,不是逗號。
24樓:瑞峰
給的表示式太原始,最好拿出幾個不同的例子出來
25樓:
你就好像問,這裡沒有數,那麼這個沒有的數是大於零,還是不大於零。
26樓:匿名使用者
for(;;)則變成死迴圈,空語句還有真和假?
C語言讀程式填空題,c語言程式填空題?
1 min 0 先將min賦初值為0 2 min i 從陣列的第一個值a 0 開始比較,當某個值比a min 小,就將min賦為該位置 include main int a 10 i,min for i 0 i 10 i scanf d a i min 0 for i 1 i 10 i if a i...
c語言程式設計程式填空題,跪求大神解答
scanf lf lf d a,b,n printf 梯形法求積分結果 lf n integral a,b,n double f double x 就是你的f x 函式,隨便寫就行吧 c語言程式設計的一些選擇和填空題,很基礎,麻煩大神們幫忙看一下 1 c2 d c程式的基本結構單位是函式。c語言源程...
一些數學填空題,數學填空題五年級上的數學填空題及答案,謝謝了哦,給分的
a的五次方 a 乘以 a a 5 a a a 5 2 1 a 4 2分之一 乘以 2的n次方 2 1 2 n 2 n 1 y的3n 1次方 y的n 1次方 y 3n 1 n 1 y 2n 2m n 的3次方 乘以 n 2m 2m n 2m n 2m n 5 a的五次方 a 乘以 a a 4 2分之一...