1樓:網友
說的具體點,你想實現什麼。
c語言基礎問題,求解答
2樓:匿名使用者
輸入兩個整型數a=5, b=9
兩個整型指標pointer_1個pointer_2分別指向a和b的地址。
判斷 if (aswap函式的本意,應該是將pointer_1和pointer_2所指地址中的值進行交換。
但是錯誤典例中的swap,只是交換了p_1和p_2兩個區域性變數的值。
當swap函式結束,兩個區域性變數就失效了。
沒有對外部的pointer_1和pointer_2產生影響,它們所指地址中的值也就沒有變化。
因此最終輸出仍為*pointer_1=a=5,*pointer_2=b=9;
要想交換pointer_1和pointer_2所指地址中的值,應在swap中使用*
改為如下形式:
void swap(int *p1, int *p2)
就可以交換p1和p2所指地址中的值,也就交換了a和b的值。
c語言基礎問題,求大佬求解
3樓:匿名使用者
第一個程式裡,y--表示先減一,然後再在y%3中使用y,所以y的值為9,所以最終結果為741。第二個程式中,k++表示先使用,然後再加一,所以k的值為3,而--k表示先減一,然後再使用,所以最終結果為2。
4樓:匿名使用者
表示式y%3僅僅是將y對3取餘,沒有改變變數y的值
寫成y=y%3才會改變y的值
求高手解答,c語言問題
5樓:很浪的碰碰車
當使用者按下某個鍵時,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。如果想那樣呼叫就重新定義一下吧。
個人理解,僅供參考。
6樓:匿名使用者
這個問題牽涉到鍵盤的掃描碼和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進位制值之間的轉換。
7樓:匿名使用者
恩!其實這些數是相同的!
我現在不方便模擬!不過我認為:
你的前倆個**裡的是鍵盤上的上下左右鍵,上面兩幅圖的數值第一幅是16進位制的,第二幅是10進位制的。
而你的下面倆張**是鍵盤上的w,s,a,d!第三幅是10進位制的,第四幅是6進位制。
8樓:仲奇正
0x代表16進位制,也就是說0x48 = 72,0x50 = 80,0x4b = 75,0x4d = 77,;
而vk_up、wk_down等等,是巨集定義,定義即為對應的數字。如果你要用的話,建議你去了解一點win32程式設計的東西,其中的鍵盤訊息有講這些。
9樓:匿名使用者
0x代表16進位制,換算成十進位制之後數字就對上0x25=37,0x48=72
10樓:magic_旭
肯定以中定義的為準啊,0x25它是一個十六進位制數,對應的十進位制也就是37,
c語言問題 小白求解答
11樓:匿名使用者
首先,你需要明白a++和++a的區別。
++的位置決定了兩者的不同。++a表示先自加,然後執行其他操作;
a++表示先執行其他操作,然後自加。
拿題目來說,首先輸入9賦予變數a。
然後判斷,題中條件是a++,所以是先判斷a是否小於9,然後自加。這裡a等於9,不小於9,所以會自加後執行else語句部分。(此時a為10);
else語句中輸出a--,又之前所述,這裡應先輸出a,然後執行自減。
所以最終,輸出了10,然後a會自減成9.
12樓:
答案是 a
因為 在 if 語句裡有 a++ 自增表示式,此句結束後 a 的值是 10 了, 因為 a 初始值是 9,走else
分支, a-- 是先取值再自減,所以a 的值還是10
13樓:道將天地法海
選 a)10
因為:輸入a=9時,if語句判斷的時候把a++,使a=10,則執行else語句,輸出a=10。然後再將a減去1,如果此時再在後面加上printf (「d",a),那麼輸出的就是9.
14樓:匿名使用者
10。首先判斷if(a++<9)。此時a++表示式的值為9,顯然不成立。
執行完此語句之後,a的值變成了10.然後執行else語句,此時表示式a--的值為10,那麼輸出的為10.
15樓:匿名使用者
a++,的意思是先把a+1後再判斷,很明顯,a++=10,比9小,所以if語句裡面為真,輸出a,而此時的a=10;;;a 則是先判斷a,然後再++
c語言方面的問題,求大神解答
16樓:小黑哎啊
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語言問題求詳解
17樓:匿名使用者
2&&2與2&2有什麼區別?
&&是邏輯與運算子,對於a&&b,當a和b都是非0時,a&&b返回1,否則返回0,即&&只返回1(代表真)或0(代表假),且&&是短路運算子,當a為0時,不再執行表示式b。而&是按位與運算子,對於a&b,每次都要執行表示式a與表示式b,且a&b的結果是由按位運算計算後確定的,不只有0和1。對於對應位置的位元位1&1=1,1&0=0,0&1=0,因此,2&&2的結果是1,2&2的結果是2。
計算2&2的過程如下:
00...010(2的2進製表示)
等於2)
還是2?對於/運算子,如果計算的兩個數都是整數,則進行整除,如果至少有一個是浮點數,則進行小數除法,因此的結果是。
18樓:聽不清啊
2&&2是邏輯與運算,值為真(1)
2&2是按位與運算,值是一個整數(2),實數與整數運算時,先將整數自動轉換為實數,運算結果也是一個實數。
一個簡單的c語言問題。。。求大神指教一下
19樓:匿名使用者
在輸入字元前,不能有其他空白字元(那也是有效的字元)在輸內入數值前(%d %f)可容以有任意多個空白字元,如空格 回車 tab
輸入數值時,遇到第一個非數字字元,則結束數值輸入(浮點資料中,小數點除外)
按以上原則,a 後有空格,不對,導致c1讀到的是空格b 同理,後空格導致c2錯。
d 同理,2後的空格導致後續讀資料錯位。
c 沒有問題!
c語言問題求解答
20樓:牛牛牛不牛
看看這個滿足你不朋友。
#include
#include
int main(void),*p=null;
float temp=0,max=0;
scanf("%s",buf);
for(i=0;i='0' &buf[i]<=9')}if(num==1)
max = temp;
elsemax = temp>max?temp:max;
}printf("%g",max);
return 0;}
c語言問題求解答,c語言問題求解答
付哥的技術課堂 getchar 為單字元輸入函式 當為0 和 1 時都將執行case 1 putchar c 由於後面無break語句,又將執行 case 2 putchar c 遇break退出switch,等待輸入 switch c 0 字元 0 與整型0不同,這個case判斷的是整型0 inc...
c語言問題,求解答,求解答c語言問題
首先執行getchar,就是先讓你輸入一個字元,然後執行putchar,就是將剛剛的字元輸出,然後判斷字元是不是 是的話退出,否則繼續執行迴圈。迴圈體只有一個 掌渺 getchar每接收一個字元,putchar就進行輸出,當為 時,則!後面若還有字元,按換行鍵後則不會輸出 輸出的字元要從getcha...
c語言問題求解答,c語言問題求解
應該是 x y 2吧。最後選b 當i除以3餘1 除以5餘2 跳出迴圈 否則i自加 i初始化為5 所以 7 格式整理好就能看清楚了 include main int i 5 do if i 一葉二沙三世界 額,樓主題目估計都發錯了!同意修改 c語言問題求解 include int main retur...