1樓:匿名使用者
!=的右邊是:ch>='a'&&ch<='z')?ch:(ch+32)
這個條件運算子的意思是: 如果ch是大寫字母,則不變,否則在ascii碼上 +32
而 ch!=(ch>='a'&&ch<='z')?ch:(ch+32) 是一個關係表示式, 關係表示式的結果 只有true和false
你說結果是a,
是說 ch的值 是a 呢, 還是 說其他的?
如果ch的值時a, 那麼 說明可能ch初始值 就是 a
否則,就是 ch+32後的 ascii碼值 剛好等於 a 的ascii碼值
2樓:
你給ch賦初值了麼?初值是什麼ch的值就是什麼,因為你用"!"把後面的東西都否定了,所以當你寫後面的語句的時候ch初值是什麼就會輸出什麼。
3樓:匿名使用者
根據猜測,ch是char型?這個語句是用來判斷?
如果是這樣的話,那就是一個典型的關係符順序問題。
你希望的應該是這樣的順序
ch != ((ch>='a'&&ch<='z')?ch:(ch+32))
但是實際生效的是
(ch!=(ch>='a'&&ch<='z')) ? ch : (ch+32)
於是不管ch等於多少,如果你用這個作為判斷條件,輸出的結果永遠為真,因為不管ch,還是ch+32都是非0。
為什麼永遠為真呢,即使ch=0(注意不是數值0,而是為(char)0)
ch != 0的情況:ch>='a' && ch <= 'z' 返回1或者0,永遠不會等於ch,所以三目運算子?:的條件永遠為真,將會返回ch
ch==0的情況
ch == (ch>='a'&&ch<='z')相等,三目運算子條件為假,返回ch+32,於是返回值也不為0
於是如果你把這個表示式作為判斷條件,結果就永遠是真了
4樓:匿名使用者
剛做完這道題,我的學校給的答案是a。
速求: 設char ch='a'則表示式“ch=(ch>='a'&&ch<='z')?(ch+32):ch”的值? a. 'a' b.'a' c.'z' d.'z'
5樓:塔利二班
這句話其實就是一個三目表示式 ?: 。
首先對?前面的進行判斷。如果是1,就執行:前面的;值是0,就執行:後面的。
那麼,?前面是ch>='a'&&ch<='z'這句。這一句,ch>='a'&&ch<='z'。
因為ch='a',所以這句話是對的,=1。所以,執行ch+32。對照ascii表,a+32之後 = a,所以ch= ’a‘。
也就選b了。
6樓:滄海雄風
b 小寫a
就是一個三目運算+大小寫轉換
ch=(ch>='a'&&ch<='z')?(ch+32):ch;
等同於if (ch>='a'&& ch<='z')else
7樓:匿名使用者
三目運算子 表示式1?表示式2:表示式3
如果表示式1,結果為表示式2,否則為表示式3
ch為a,表示式1成立,就執行了+32,對照下ascii表,對應的是小寫的a
c語言中,ch=(ch>='a'&&ch<='z'?ch:(ch+32))
8樓:匿名使用者
ch>='a'&&ch<='z'就是說ch是個英文字母,連起來就是說如果ch是字母,則保持不變,否則ascii值加上32,你看下ascii碼錶就知道了,比如字元'0',十進位制是48,加上32就是80也就是字元'p'
9樓:匿名使用者
a?b:c 條件運算子用a立則返b否則返cch'a''z'間寫字母返ch本身;否則返ch-32(ch寫字母,每字母應寫字母ascii碼比些字母ascii碼要32檢視ascii碼錶ch-32寫字母變換應寫字母先保證要轉換ch字母若數字符號經計算則沒意義)
%d %f %c別應整數浮點數字符變數格式控制int a;
float b;
char c;
scanf("%d %f %c",&a,&b,&c); 用作鍵盤輸入主要面變數使用&符號
printf("%d %f %c",a,b,c);用作螢幕輸顯示
這句c是什麼意思?ch=(ch>='a'&&<='z')?(ch+32):ch;
10樓:匿名使用者
它的順bai序是這樣的:
先執行du (ch>='a'&&<='z')? 它判斷當前的ch的值zhi是dao不是[a-z]區間的大寫字
母如果條件成立內,則返回容 (ch+32),即當前ch的值+32,再賦值給ch
如果條件不成立,則返回 ch 本身,即 ch = ch
11樓:匿名使用者
輸入一個字元,先判斷,如果在a~z之間,輸出對應字母的小寫,反之直接輸出。
c語言中的這句話是什麼意思“ch=(ch>='a' && ch<='z'# ? #ch+32# : ch ”
12樓:蕭蕭睡
這條語句是實現把bai
一個字母字元轉換du成小zhi寫形式 賦值語句右邊是一dao個"x?a:b"條件判斷運算子
內 執行形式為如果
容x為真,那麼執行a,否則執行b 語句首先執行括號中的表示式,即: ch>='a'&&ch<='z',然後根據邏輯與的結果,分別執行: a.
如果為真,即ch是大寫字母字元,那麼執行ch+32,根據ascii碼錶,知道大寫字母字元的值加上32,即是小寫字母字元的ascii值,所以就完成對大寫到小寫的轉換 b.如果為假,即ch不是大寫字母字元,那麼保持ch的值不變 最後,把轉換後的值重新賦值給ch,完成轉換
下面程式輸出結果是,下面程式輸出結果是什麼?
韋榮軒喜昱 當a 14時執行do while迴圈 由於開始時對a賦值10,所以輸出a 10,y 0 堵丹彤牟萱 輸出為 a 16 y 60,分析如下 main while a 14 這裡的迴圈條件不是判斷是否滿足a等於14,而是一個賦值語句,每次執行到這裡都會將14賦值給a,因此這裡的迴圈條件始終都...
簡單c語言求解為什麼VC中輸出結果是3和10啊
未王艮 x 是先用x 1參加運算後加1 所以b1 1 1 1 y是先加1再參加運算 額。這麼算好像不等於十 難道是編譯器的問題?好吧 這東西跟編譯器有關 3,10 3,12 說明這樣寫很危險 這是由於兩個軟體的原因,在vc 6.0裡的輸出結果應該是6和10。在vc也就是turbo c裡,把x 1作為...
計算1 2 3 4 5 62019的結果是
分析 數的奇偶問題只要考慮幾個奇數幾個偶數相加就行。解答 從1一直加到2015,一共是2015個數,其中1007個偶數,1008個奇數。所以相加所得的結果是偶數。擴充 可以將結果計算出來,再進行判斷。原式 1 2015 x2015 2 2016x2015 2 4062240 2 2031120 根據...