1樓:
*2 或 <<1 都對。因為計算機是二進位制的,所有的位運算操作:&、|、^、<<、>> 都是就二進位制而言的。
<< 表示左移位,>> 表示右移位。以十進位制加以說明,如:12345 左移一位,就是 123450,多出來的位以零填充;右移一位就是 1234,那個 5 就丟失了。
十進位制大家已經習以為常,很明顯可以看出來,左移一位增大十倍,右移一位減小十倍(忽略丟失的最低位)。在程式語言中,數值是這樣儲存的:不管該數值以幾進製表示,它在計算機硬體中儲存都是二進位制,進行位運算都是二進位制。
如果你將乙個數值左移一位, 是將它的二進位制移一位。如 1 << 1 變為 10(二進位制 10 等於十進位制 2),1 << 2 變為 100(二進位制 100 等於十進位制 4),4 << 2 即二進位制的 100 << 2 等於 10000(二進位制 100 等於十進位制 32),十進位制的結論同樣可以套用在二進位製上,左移一位後數值就增大 2 倍,右移則減小到 1/2。
124(1111100) << 1 = 248(11111000)
2樓:t武俠李白
short c=124;//定義短整型變數c 並把124賦值給c
c=c_*2__;//c乘2並把結果賦值給c
printf("%d\n",c);//輸出c的值 printf輸出函式 \n 換行符
關於計算機二級c語言的題目(求詳解)
3樓:拉風
第乙個問題:我們設度為0,1,2的節點分別為n0,n1,n2個,那麼節點總數n=n0+n1+n2,然而邊數b=n-1(因為這n個節點除了根節點外都想上有乙個邊,就像長在樹上的每乙個水果都會有乙個蒂吊在樹上一樣),並且b=n1+2*n2=n-1=n0+n1+n2-1,由此式我們可以推出n0=n2+1,
故有結點數為:n0 = 3, n1 =8,n2=2;所以總數為13;
第二個問題:元素個數為 29-5=24
4樓:035東海龍子
第乙個看不懂,第二個50是它的容量,元素的個數不能超過容量。頭指標front=5,尾指標rear=29。頭指標front=5所以5也應該算呀,共應該是25吧
關於計算機2級c的題目(求步驟詳解,謝謝!)
5樓:匿名使用者
#include
main()
printf("\n");
輸出乙個回車符表示換行}
關於計算機二級c的題目(求步驟詳解)
6樓:
int fa(int x)
這個函式返回x的平方
int fb(int x)
這個函式返回x的三次方
int f(int(*f1)(), int(*f2)(), int x)
這個函式有三個引數,第乙個引數是乙個函式指標,第二個引數也是乙個函式指標
返回f2(x)-f1(x)
main函式當中
給i賦值的時候
i=f(fa,fb,2)
也就是說,f引數第乙個傳入了fa,第二個傳入了fb,第三個傳入了2那麼f函式執行也就是return fb(2)-fa(2)也就是 2的三次方減去2的平方就是4
7樓:匿名使用者
這是乙個利用函式指標呼叫函式的問題:
int fa(int x) //求x的平方int fb(int x) //求x的立方int f(int(*f1)(int ), int(*f2)(int), int x) //f1和f2是函式指標,當呼叫函式傳來實參是某個函式名時,
//就可以利用指標變數呼叫該函式,本題傳遞的引數是fa和fbvoid main()
浙江省計算機二級c語言的題目求過程詳細解析,不要答案
8樓:匿名使用者
樓下的認為 p2 在被p1 賦值的時候有問題 p2指向的是常量的字串,不可修改。s[i]指向的是乙個靜態字串, 靜態字串是不可修改的。。。
不過按照原題的意思 輸出應該是 0的時候出去全字元 1的時候從第二位即下表為1的字元開始輸出到最後 2、3 依次類推。
因為p1在指向s[i]後 位址+i 賦值給p2 p2的位址就是每個字串的位址。
中間這段話是有前提的,這段程式不成立
s改為2維陣列即可
9樓:褔耶權靠飯
我分析的答案是:cddc。
首先要明白的是字元指標陣列*s[4]它指向的是這四個字串的首位址,
比如,s[0]存放的是第一字串"tree"的首字元『t』的位址,要明白的是在記憶體中
它們是這樣儲存的:
s[0]指向『t』字元的首位址,也就是說s[0]儲存的是字元『t』的記憶體位址。但是不要
忘記了字串最後面還會自動的加上字串結束符『\0』的。如果對於這塊不明白的
還可以早c語言的書看看這一塊的內容。
分析程式:
(1) i = 0; p2=s[0]; p1 = p2 + 0;
這裡說明字元指標p1,p2都指向的是字元『t』,*p1=*p2='t'。
執行while迴圈,迴圈條件滿足,*p2=*p1,這裡就是把*p1的值賦值給*p2,因為他們都是
指向字元『t』所以不改變它的值。然後p1++,p2++,意味著p1、p2都指向下乙個字元『r』
仍然沒有改變。依次類推下去p1、p2都指向字元『\0』時while迴圈結束,接著執行
*p2=『\0』,然而*p2本來就等於『\0』,所以還是不變。
也就是說i = 0for迴圈結束一次迴圈,字串「tree」沒有改變。
(2) i = 1;p2=s[1]; p1 = p2 + 1;
執行while迴圈,第一次迴圈很明顯的*p2 = *p1,因為*p1='l',所以*p2='l',也就是記憶體中『f』就改變成了『l』。執行p1++,p2++記憶體中的變化如下圖:
類似的一次交換賦值,指標移動到下一位最終while迴圈結束。
還有乙個很重要的地方需要提示一下,while迴圈結束但是*p2='\0'
,p2指向的值會被賦值為'\0'。p1 = p2 + i;p1指標的移動也要注意
p1到底是指向了那個字元。
c語言中,字串中有『\0』,則輸出字元時它只會輸出'\0'的前面字元。
比如:字串「ass\0s\0」,則輸出該字串時結果為「ass」。
(3)i = 2 、3這裡就不分析了,同上的分析思路。
10樓:
我覺得 就是按順序 s[4] 陣列裡的順序 輸出的.
中間操作跟 對s[4] 沒影響.
樓下怎麼看?
11樓:牛郎幫
樓主的程式有很多錯誤 先改改吧
c語言計算機基礎與程式設計程式設計題目
include void main 36題 include int main void 37題 include include int main void for i 0 i 12 i fgets month i 10,fp fclose fp printf 請輸入您所要輸出的月份數 t scanf...
關於計算機二級考c語言還是c比較好
c語言限制很多,但是c 更強大 畢竟是c的基礎上做了 嘛 c 證書當然比c好的吧 但是要是你不會c 證書也只是擺設用,如果想從事程式設計工作,也得抽空把c學會了 c語言是面向過程的語言,比c 要低階。所謂的難與不難是不存在的,每種語言都有基礎和高階。每種語言都能編寫出驚人的程式。完全看你個人的喜好。...
關於計算機2級的疑問,計算機二級怎麼算過了
在語言程式設計和資料庫程式設計兩類選一類中的一種就可以了。多報也可以,證書上會註明具體的名稱。一般。理科選語言程式設計,不搞計算機專業的話,考個vb就行。想專業點c語言等考的人比較多 文科選資料庫程式設計 vf和access差不多,貌似報vf的人多些,又聽說要淘汰 上機和筆試需全部通過,參加國家級的...