1樓:匿名使用者
第一個程式裡,y--表示先減一,然後再在y%3中使用y,所以y的值為9,所以最終結果為741。第二個程式中,k++表示先使用,然後再加一,所以k的值為3,而--k表示先減一,然後再使用,所以最終結果為2。
2樓:匿名使用者
表示式y%3僅僅是將y對3取餘,沒有改變變數y的值
寫成y=y%3才會改變y的值
c語言問題,求大佬解答
3樓:細雨在微笑
【示例**如下,用 中文c 編譯】
#定義 最大輸入個數 10000
整數型別 甲,個數=0, 輸入數[最大輸入個數],統計=0;
小數型別 和=0,平均值;
重複直到 甲 等於 0;
圖形輸出詞語(「輸入的正整數個數為:」)
圖形輸出整數(個數,10);圖形換行();
平均值 = 和 除 個數;
圖形輸出詞語(「輸入正整數的平均值為:」)圖形輸出小數(平均值);圖形換行();
步進迴圈(甲=0;甲《個數;甲++ 如果( 輸入數[甲] >平均值 ) 統計++;
圖形輸出詞語(「大於平均值的正整數個數為:」)圖形輸出整數(統計,10);圖形換行();
執行 結果如下圖】
求高手解答,c語言問題
4樓:很浪的碰碰車
當使用者按下某個鍵時,1.鍵盤會檢測到這個動作,並通過鍵盤控制器把掃描碼(scan code)傳送到計算機;
鍵盤掃描碼跟具體的硬體有關的,不同廠商對同一個鍵的掃描碼有可能不同。
2.計算機接收到掃描碼後,將其交給鍵盤驅動程式;
3.鍵盤驅動程式把這個掃描碼轉換為鍵盤虛擬碼;
虛擬碼與具體硬體無關,不同廠商的鍵盤,同一個鍵的虛擬碼總是相同的。
3.然後,鍵盤驅動程式把該鍵盤操作的掃描碼和虛擬碼以及其它資訊傳遞給作業系統;
4.作業系統將獲得的資訊封裝在一個鍵盤訊息中,並把該鍵盤訊息插入到訊息列隊。
5.通過windows的訊息系統,該鍵盤訊息被送到某個視窗中;
6.視窗所在的應用程式接收到訊息後,可以瞭解到有關鍵盤操作的資訊,然後決定作出一定的響應。
37,38,39,40就是ascii碼,也就是虛擬碼。而且方向鍵值是有兩個,第一個是有符號數-32,你第二張圖裡的判斷ch==224,判斷是它的無符號數,跟-32是一樣的。第二個就是它的真實鍵值,你可以用下面的**檢視(c++)
int main()
return 0;
至於為什麼取出的是72,75,77,80應該是直接取了掃描碼,我用其他程式語言測了下,取出來的只是ascii37,38,39,40。如果想那樣呼叫就重新定義一下吧。
5樓:匿名使用者
這個問題牽涉到鍵盤的掃描碼和windows虛擬鍵碼的概念。
對xt鍵盤以及之後的相容鍵盤而言,0x48,0x4b,0x4d,0x50分別是上、左、右、下方向鍵的鍵盤掃描碼(在早期linux核心程式中可以看到)。該值與具體的硬體裝置相關,例如xt機鍵盤與at機鍵盤的差異就很大;
而vk_up,vk_left,vk_right,vk_down則是在windows上層應用程式中使用的虛擬鍵碼,它掩蓋了底層可能由不同硬體帶來的編碼差異,使得上層可以使用統一的鍵盤編碼。
另外: 0x48 = 72, 0x4b = 75,0x4d = 77,0x50 = 80
0x25 = 37,0x26 = 38,0x27 = 39,0x28 = 40
這只是16進位制值與10進位制值之間的轉換。
6樓:匿名使用者
恩!其實這些數是相同的!
我現在不方便模擬!不過我認為:
你的前倆個**裡的是鍵盤上的上下左右鍵,上面兩幅圖的數值第一幅是16進位制的,第二幅是10進位制的。
而你的下面倆張**是鍵盤上的w,s,a,d!第三幅是10進位制的,第四幅是6進位制。
7樓:仲奇正
0x代表16進位制,也就是說0x48 = 72,0x50 = 80,0x4b = 75,0x4d = 77,;
而vk_up、wk_down等等,是巨集定義,定義即為對應的數字。如果你要用的話,建議你去了解一點win32程式設計的東西,其中的鍵盤訊息有講這些。
8樓:匿名使用者
0x代表16進位制,換算成十進位制之後數字就對上0x25=37,0x48=72
9樓:magic_旭
肯定以中定義的為準啊,0x25它是一個十六進位制數,對應的十進位制也就是37,
c語言問題 小白求解答
10樓:匿名使用者
首先,你需要明白a++和++a的區別。
的位置決定了兩者的不同。++a表示先自加,然後執行其他操作;
a++表示先執行其他操作,然後自加。
拿題目來說,首先輸入9賦予變數a。
然後判斷,題中條件是a++,所以是先判斷a是否小於9,然後自加。這裡a等於9,不小於9,所以會自加後執行else語句部分。(此時a為10);
else語句中輸出a--,又之前所述,這裡應先輸出a,然後執行自減。
所以最終,輸出了10,然後a會自減成9.
11樓:
答案是 a
因為 在 if 語句裡有 a++ 自增表示式,此句結束後 a 的值是 10 了, 因為 a 初始值是 9,走else
分支, a-- 是先取值再自減,所以a 的值還是10
12樓:道將天地法海
選 a)10
因為:輸入a=9時,if語句判斷的時候把a++,使a=10,則執行else語句,輸出a=10。然後再將a減去1,如果此時再在後面加上printf (「d",a),那麼輸出的就是9.
13樓:匿名使用者
10。首先判斷if(a++<9)。此時a++表示式的值為9,顯然不成立。
執行完此語句之後,a的值變成了10.然後執行else語句,此時表示式a--的值為10,那麼輸出的為10.
14樓:匿名使用者
a++,的意思是先把a+1後再判斷,很明顯,a++=10,比9小,所以if語句裡面為真,輸出a,而此時的a=10;;;a 則是先判斷a,然後再++
c語言方面的問題,求大神解答
15樓:小黑哎啊
1,(1),(0)/*0讀作非零,非零即為真,c語言1就代表真;字元'a'ascii碼65,!65==!真,非真即是假,!'a'==0 */
2,(1),(0)/*5是非0,3是非0,&&運算後還是非0(真)==1;78非0與0,&&運算 ==0;*/
3,(1),(0)/*5>0為真(1),4>2為真(1),&運算後還==1;字元'a'ascii碼為65,65-65==0,0||0==0;*/
4,(1),(0)/*5>10為假(0),5<8為真(1),1||0==1;5<0為假(0),5>8為假(0),0||0==0; *
5,(1),(0)/*0==1,1||0==1;5>0為真(1),!1==0;
第二個表,表示式的值;
急急急急急急急急,c語言基礎問題 40
16樓:匿名使用者
a) 結構體變數的名稱為該結構體變數的儲存首地址。
b) 結構體陣列的名稱為該結構體陣列的儲存首地址。
關於c語言的問題,求解答!
17樓:匿名使用者
識別符號不能以數字bai打du頭。
2 d 一般c關鍵字在編譯器中zhi
會出現dao變成藍色,a不是而#define是,版b 中的printf只是一個輸出權函式,c是大寫的,不是,如果是int 就是,因為在c中,大小寫是敏感的。
3 d d項轉譯成字元\
4 a 0x20u的意思是無符號的16進位制數205 a 0x200是16進位制數。
6 c 雙引號括起來的都是字串常量。
7 c 中的f表示浮點數。
8 b9 b 引號都是成對出現,如果出現在引號中就得加\"
10 d
18樓:匿名使用者
1。識別符號由字母、數字、下劃線組成,必須由字母或下劃線開頭,d是以數字開頭版的,錯誤。
2。查下表就知權。
道了,選d3。字元轉義時只能是八進位制('\ooo'三位,不足前補0)或十六進位制('\xhh',兩位,不足前補0),所以b、c選項是錯的,a轉義單引號應該是'\'的形式,所以只有d是對的。
表示十六進位制,u表示unsigned int是無符號整型,所以0x20u是一個整型常量。
表示十六進位制,十六進位制的200轉換成十進位制是512,0512表示八進位制數。
6。字串常量是需要雙引號括起來的,只有c符合。
表示float,是單精度浮點型別,所以 f是浮點型常量。
語言裡面沒有聯合(union),所以在這裡它屬於合法的識別符號。
9。同6,字串常量是需要雙引號括起來的,而且雙引號必須是成對的,如果字串裡邊需要有雙引號本身,則需要用轉義字元(\)來轉義,這裡只有b不合法,其中a中""表示空字串。
10。浮點數的小數點前後如果是0,是可以省略的,比如這裡的a、c選項,浮點數沒有十六進位制表示的形式,所以d選項是錯誤的。
c語言程式設計求大佬,C語言程式設計,求大佬
看起來是大學生c語言基礎的作業,這個連結串列的實現算是面試 考試必考的核心題目了,建議努力拿下,現在逃避了,以後找工作時就憋屈了。這個只要對指標有基本概念,注意下表頭 表尾的特殊情況,難度不大的。c語言程式設計,求大佬 輸入十進位制a,數值10 輸入八進位制b,數值010 輸入十六進位制c,數值0x...
求大佬指點c語言程式設計,C語言計算程式設計求大佬指點
include void main break if k printf 無此數 du else printf d之前的平zhi均數為 f n d之後dao的平均數為 f m,sum1,m,sum2 c語言計算程式設計 求大佬指點 用c語言分別bai輸出個位十du位和百位的數字,zhi可以根據下面步驟...
c語言問題,C語言問題C語言問題
沒有縮排,看來比較累 但是輸入一串字元以後要輸入結束標誌eof表示你的輸入結束了 如果你是unix,就用ctrl d,dos就用ctrl z include define maxline 1000 maximum input line length int getline char line,int...