1樓:匿名使用者
這個簡單,你知道c語言是有上向下一次執行的是把,你的程式可是簡單的分析成以下的 形式
main( )
{ int x,y,z; //定義變數 x,y,z;
x=y=z=0; //你給x,y,z 賦了個初始值0;
++x||++y&&++z; //這是你的邏輯表示式 其中++x 等同於x=x+1(賦值運算)之後的++y和++z 同理,||和&&是邏輯運算子,這個 語句就牽扯到了 邏輯運算子的 優先順序:&&的優先順序大於|| 而他們倆的優先順序又大於賦值運算子的!
列印出來 x,y,z的結果
}優先順序就是決定電腦先去執行那一部分,越高越先執行! 之後你的語句就是這個上面這個形式的重複了 希望 我的解答能讓你瞭解到邏輯表示式在系統是怎麼執行的。有什麼不懂的 再問哈!
2樓:暢景彰
main( )
幾個關於邏輯運算的c語言題目
3樓:核蛋小子
哦,bai這個我知道,書上du和老師都會提到zhi這個問題的,在邏輯dao運算中會出現「短路」內的現象
容,例如「&&」並列語句當中如果第一個為假的話就結果直接為零,不執行後面的運算;「||」或語句中如果第一為真結果直接為1,不執行後面的語句。這樣你就明白為什麼第一道題中的n不是0而是原來的值2,第二道題仲的y是3而不是4,第三道題仲的b是0而不是1啦
4樓:匿名使用者
5>6是假,所以&&的結果肯定是假,右邊的n=c>d就沒有運算了,所以n仍為2
同理++x=4,為真,所以||結果肯定是真,右邊的++y沒有運算
還是同理,++a=1>0為真,所以++b沒有運算,++c算了
5樓:匿名使用者
(m=a>b)&&(n=c>d) 結果該是0 因a不大於b m=就為假 後面的c++就不運算了
第二個是對的
++a 所以a=1
後面++b不執行
然後++c;
6樓:匿名使用者
應該沒錯,典型bai的短路du求值。
分析zhi
一個吧:
(m=a>b)&&(n=c>d)
a > b false
m = a >b m = 0
(m = a>b) 整個表達dao
式結內果也容
是0因為左邊表示式結果為假,根據短路求值規則,右邊不用求解,所以n不變
結果是: 2
7樓:匿名使用者
(m = a > b)結果為0
(n = c > d)結果為1
(m = a > b) && (n = c > d)結果為1n = 2
8樓:匿名使用者
2樓的回答很好,給他加分
9樓:匿名使用者
你確定你給的答案沒有錯?
10樓:餘同書由君
||包括:1。&&邏輯與
2。||邏輯或
3。!邏輯非
對於使用邏輯運算子的表示式,返回0表示「假」,返回1表示「真」。關於邏輯運算子的解釋
請注意:任何使用兩個字元做符號的運算子,兩字元之間不應有空格,即將==寫成=
=是錯誤的。
假設一個程式在同時滿足條件a<10和b==7時,必須執行某些操作。應使用關係運算子和邏輯運算子「與」來寫這個
條件的**。用&&表示「與」運算子,該條件**如下:
(a<10)
&&(b==7);
類似地,「或」是用於檢查兩個條件中是否有一個為真的運算子。它由兩個連續的管道符號(||)表示。如果上例
改為:如果任一語句為真,則程式需執行某些操作,則條件**如下:
(a<10)
||(b==7);
第三個邏輯運算子「非」用一個感嘆號(!)表示。這個運算子對表示式的真值取反。例如,如果變數s小於10,程式
程式需執行某些操作,則條件**如下:
(s<10)
或(!(s>=10))
//s不大於等於10
關係運算子和邏輯運算子的優先順序一般都低於算術運算子。例如,5>4+3的計算與5>(4+3)運算子是一樣的,即
先計算4+3,再執行關係運算。此表達示的結果為「假」,即,將返回0。
下面的語句
printf("%d",5>4+3);
將輸出0
可以總結為:&&的結果是真真為真。||的結果是假假為假。
跪求高手幫忙c語言的題 10
11樓:冰の戀魂
雖然題目不難,
但問者完全不經過
自己獨立的思考就.....
ls說的好,你忒懶了!~
我覺得沒有誰會解答你的問題
12樓:心岸
這麼點兒分,這麼長的題.還這麼沒挑戰性.誰願意解!
c語言兩個問題求解答,一個邏輯運算,一個陣列 第一題希望能詳細一點,網上的都看不懂
13樓:匿名使用者
第一題題目不全
第二題答案為0。
連續邏輯與,除最後一個以外,前面均為真(非0),最後'b'就是98啊!
98-'b'當然是0。有0參與的邏輯與,結果當然為假,也就是0了最後不寫出答案了嗎?20 13 6
一開始陣列內容為
2 3 4
5 6 7
8 9 10
for的執行內容,翻譯一下就是陣列中每個元素,都跟本行的2號下標也就是最後一個元素疊加,整個for執行完畢後i和j取值均為3,陣列內容如下:
6 7 812 13 1418 19 20下面的while:
第一次while:先判斷i的取值,i為3,大於0正確,執行迴圈體:
i--,i變成2;
輸出a[i][i]也就是a[2][2],也就是20.
第二次while:先判斷i的取值,i為2,大於0正確,執行迴圈體:
i--,i變成1;
輸出a[i][i]也就是a[1][1],也就是13.
第三次while:先判斷i的取值,i為1,大於0正確,執行迴圈體:
i--,i變成0;
輸出a[i][i]也就是a[0][0],也就是6.
然後再判斷while條件,0>0不成立,退出
關於c語言邏輯運算子一道簡單的題目!
14樓:夏碧夢
這是邏輯運算子的短路判斷造成的!
由於邏輯運算子||和&&實現判斷左值的,顯然如果根據左值就能夠判斷整個表示式真假的話,那剩下的就不用判斷了!目前的c編譯就是這樣處理的!
對於邏輯或||,左值為真,整個表示式就為真;
對於邏輯與&&,左值為假,整個表示式就為假!
++x||++y&&++z中先執行邏輯或||左邊的++x後x=1,左值為真,後面的自然就不用處理了!
15樓:匿名使用者
這個是c語言的優化造成的。
按照c語言對邏輯或運算優化計算的規定,當邏輯或的左運算分量滿足時,不再計算邏輯或的右運算分量,而直接得到邏輯或運算的結果。由於邏輯或的右運算分量不曾計算過,所以變數y,z的值也不為變化。
16樓:伊·梵
就是這樣算的
邏輯運算子從左至右還確保其運算元的計算。 但是,它們計算必要的運算元的最小數目確定表示式的結果。 這稱為 「短路計算」。
誰有大一c語言考試題?快考試了,跪求題庫··
17樓:陳豐登曉星
一、單項選擇題
(每小題2分,共50分)
1、一個c程式的執行是從___a__。
a、本程式的main函式開始,到main函式結束
b、本程式的main函式開始,到本程式檔案的最後一個函式結束
c、本程式檔案的第一個函式開始,到本程式檔案的最後一個函式結束
d、本程式檔案的第一個函式開始,到本程式main函式結束
2、c語言程式的基本單位是___c___。
a、程式行
b、語句
c、函式
d、字元
3、請選出可用作c語言使用者識別符號的一組識別符號___b___。
a、void
b、a3_b3
c、for
d、2a
define
_123
-abc
doword
ifase
sizeof
4、假定x和y為double型,則表示式(x=2,y=x+5/2)的值是__c__
。a、4.500000
b、4c、4.000000
d、2.000000
5、下列可以正確表示字元型常量的是___d__。
a、297
b、"a"
c、"\n"
d、'\t'
6、在c語言中,要求運算數必須是整型的運算子是__d__。
a、/b、++
c、*=
d、%7、c語言中,複合語句的構成是將一系列語句置於__c__。
a、begin與end之間
b、方框號「[
]」之間
c、花括號「」之間
d、圓括號「(
)」之間
8、有如下程式段,對應正確的資料輸入是___a___。
float
x,y;
scanf(」%f%f」,
&x,&y);
printf(」a=%f,b=%f」,
x,y);
a、2.04《回車》
b、2.04,5.67《回車》
5.67《回車》
c、a=2.04,b=5.67《回車》
d、2.045.67《回車》
9、以下程式段的輸出結果是___d__。
inta=5678;
printf(」%2d\n」,
a);a、提示出錯、無結果
b、56
c、78
d、5678
10、已知:char
ch='a';則下列表示式的值是__b__。ch=
(ch>='a'&&ch<='z')
?(ch+32)
:ch;
a、ab、a
c、zd、z
11、下列描述,正確的是___b__
。a、表示式3.91%5是合法的
b、用b=89作為while迴圈的條件是合法的
c、逗號表示式是沒有值和型別的
d、字元型變數和int型變數的操作完全不同
12、閱讀以下程式:
main()
程式執行後,如果從鍵盤上輸人5,則輸出結果是__b__
。a、3b、4
c、5d、6
13、下列程式的執行結果是___c__。
#include
」stdio.h」
main()
}a、3
b、4c、3
d、44
414、設a、b、c、d、m、n均為int型變數,且a=5、b=6、c=7、d=8、
m=2、n=1,則邏輯表示式(m==a=10)
break;
if(b%3==1)
}printf("%d\n",a);
}a、4
b、6c、5
d、101
17、執行以下程式後輸出的結果是___d__。
main()
while(--y);
printf("%d\n",y--);}
a、-1
b、1c、8
d、018、執行以下程式後輸出的結果是___b__。
main()
a、4b、0
c、1d、30
19、以下程式執行後,輸出結果是__c__。
main()
,i,k=2;
for(i=0;i=0;i--)
a[i]=10-i;
printf("%d
%d%d",a[1],a[6],a[9]);
}a、169
b、94
1c、961
d、35
723、若定義:float
x=3.14159,*p=&x;
則printf("%f\n",*p++);的輸出結果為__c__
。a、無確定值
b、x的地址
c、3.14159
d、4.14159
24、以下程式的輸出結果是___b__
main()
a、27
b、ne
c、ag
d、nu
25、下列程式的輸出結果是___a__。
#include
"stdio.h"
main(),i,
s,*p;
p=a;s=0;
for(i=0;i<=9;i++)
s+=*p++;
printf("%d\n",
s);}
a、45
b、44
c、0d、9
二、判斷題(每小題1分,共10分)
1.語句int
*point;中的point是指標變數名。(t)
2.主函式和其它函式之間可以相互呼叫。(f)
3.puts(
)和gets(
)函式只能輸入或輸出一個字元。(f)
4.可以對字元型陣列元素進行整體輸入、輸出。(t)
5.do-while語句構成的迴圈不能用其他語句構成的迴圈來代替。(f)
6.在一個函式內的複合語句中定義的變數可以在本函式範圍內有效。(f
)7.函式必須有返回值,否則不能使用函式。(f)
8.for(;;);語句相當於while(1);語句。(t)
9.c程式的執行總是從第一個定義的函式開始。(f)
10.c語言中的關鍵字專門用作語言的特定成分,而不能作為一般識別符號使用。(t)
三、程式填空題(每空2分,共10分)
1、下面程式完成判斷某一個數m是否為素數,如果是則輸出"misa
prime!",否則就輸出"m
isnot
aprime!",請選擇填空。
main()
printf("\n
count=%d\n",
count);
}(3)、
a、i=0
b、i=1
c、i=9
d、i=-1
(4)、
a、i!=j
b、i!=j
||j!=k
c、i!=j&&
j!=k
d、i!=j&&
j!=k
&&k!=i
(5)、
a、w%13=0
b、w/13=0
c、w%13==0
d、w/13==0
四、程式設計題(第1小題12分,第2小題18分,共30分)
1、從鍵盤輸入一個4位數的正整數n,將該數反序輸出。例如,若輸入的是
1357,則輸出的是7531。
要求:1)利用vc++編譯系統進行除錯、執行
2)對輸入的正整數n的合法性進行檢查
3)將源程式以「程式設計題1.c」為檔名儲存在網路盤(k:盤)的考生資料夾上,用其它檔名儲存或儲存在其他地方均不能得分
2、已知一組字串a[27]="jjyyzzabcdefgjjyyzzabcdefg";
請編一程式,將其
中的小寫字母換成其前一個字母,即z換成y,y換成x,...,b換成a,若是a則換成z。然後對陣列a[27]從小到大排序,並輸出排序後的字串。
要求:1)利用vc++編譯系統進行除錯、執行
2)先輸出原字串(即未做任何改變的字串),最後輸出排序後
的字串
3)將源程式以「程式設計題2.c」為檔名儲存在網路盤(k:盤)的考生資料夾上,用其它檔名儲存或儲存在其他地方均不能得分
C語言算數與邏輯運算子的優先順序?
a b c 1 b c 2 這個題目考察的是運算子優先順序,這個題目中只涉及算數運算子和邏輯運算子,只需記住算術運算子的優先順序高於邏輯運算子即可。先算括號,再取反,然後算術運算,最後邏輯。如果前邊還有個d 這一串,那麼最後邏輯完成之後是0還是1,最後再賦給d,即賦值優先順序還要低於邏輯。至於為什麼...
c語言中邏輯運算子的優先順序高於算術運算子
邏輯非 即 操作符 優先順序高於算術運算子。所有的單目操作符優先順序都高於雙目和三目操作符。括號運算子是最高階的運算子。三個邏輯運算子與或非。非的運算子優先順序高於算術運算子。c語言的操作符共有15個優先順序,如下 left toright type sizeof right toleft left...
C語言,邏輯運算的例題,答案到底是B還是D,麻煩分析一下
運算子來的優先順序和表示式的求值順源序是兩個不同的概念bai,兩者沒du有直接關係。zhi 圓括號的優先順序最高,先dao算 解析從這一句話開始就是錯誤的,故之後的內容可以無視。運算子是一個順序點,在程式經過順序點時,之前的所有表示式必須已經求值完畢,它們的 必須已經發生。因此一定是先對 之前的表示...