c語言問題

時間 2023-04-20 00:39:03

1樓:有愛則無礙

兄弟,最近我也在複習c語言,九月份要參加二級考試,相信你也是吧?

該教材的簡單介紹:

再補充一下,假如要考全國的二級c語言的話,資料結構的知識必不可少,我還找了資料結構的教學**,是清華大學的,以下是**連線:

最後祝你考個好成績!

2樓:匿名使用者

五. 判斷一個正數是否為對稱數,如果是返回0,不是返回1,(不允許呼叫c庫字串轉換相關函式),如11,121,1221就是對稱的。

首先把正數(沒有考慮浮點數)存放到字元陣列中a,len記錄正數長度。

while(num>=10)

然後比較判斷就可以了。}

3樓:我不喜歡故事

第一題的資料儲存形式看不懂到底是啥意思。求解……

4樓:海海胡

選擇題:

1、c2、d

3、b4、c

5、a6、a

7、c8、d

9、b10、d

判斷題:1、錯2、對。

3、對4、錯5、對。

c語言問題

5樓:匿名使用者

首先,手動計算一下怎麼才能交換。

根據題目要求,先算.

0的最小公倍數:18,這說明:最少10個一角、12個五角、9個一元才一樣高,也就是說小明可以交換的倍數是10*0.

1+12*元,而小紅交換的倍數是10元,雙方可以交換的的金額只能是90元、180元……你輸入n=3,那肯定不能交換啊。

來到這裡,如果認為效率為上的話,直接判斷小紅拿出的10元的張數n是不是9的倍數,一步就可以輸出結果了。如果n/9是整數,則一角、五角、一元的數量就是:10*n*n*n/9了,否則輸出不能交換。

其次,如果你硬要按照你源程式的思路做,那我只能指出最明顯的邏輯問題:for迴圈沒有大括號,所以它只會一直執行j=6*i/5;這一句直到條件終止,那當然輸不出結果啊。

還有沒有其他問題,既然是考題,自己思考吧。

6樓:匿名使用者

應該是資料型別的問題吧,不能用整型,整型沒有符合的解。

c語言問題

7樓:匿名使用者

首先,這是一道考區分 "表示式" 與 "表示式的值" 的題。

我們要注意,表示式也是有它自己的值的。

一、逗號表示式(表示式1,表示式2,..表示式n)採取從左到右順序求值,並把最後一個逗號後的表示式的值作為 "逗號表示式的值"。

如:表示式1,表示式2,……表示式n 這個 "逗號表示式的值" 就等於 "表示式n" 的值,與其它值無關。

二、賦值表示式(變數=表示式)採取從右到左求值,並把等號左邊的變數最終得到的值作為 "賦值表示式的值"。

所以,表示式(i=4,j=16,k=32)的值是 k=32 的值,而 k=32 這個賦值表示式的值就是等號左邊變數 k 的最終值,是32。於是,x 值為32。

8樓:匿名使用者

因為你只輸入了一個數10,系統把這個值賦給了變數a;你的程式中用了兩個變數去接收輸入的值,所以系統選擇了一個隨機數賦值給了變數b。

另外,虛機團上產品**,超級便宜。

9樓:雲淡風輕

!(a+b)+y-1&&x+b/2

這就是邏輯運算子和算數運算子的優先順序運算問題;

是邏輯非運算子,意思是(a+b)如果不等於0,則!(a+b)的值是0,如果等於0,則!(a+b)的值是1;

知道了!(a+b)的值以後,!(a+b)+y-1的值也就知道了。

然後求x+b/2,先求b/2,也就是b除以2,用得到的商加上x,就得出了x+b/2的值;

然後如果!(a+b)+y-1的值不等於0,同時x+b/2的值也不等於0,那麼這個式子的結果就是1;

如果&&兩邊的式子都等於0,或者有一邊等於0,那麼這個式子的結果就是0;

c語言問題

10樓:匿名使用者

(exp)?b++:b--判斷(exp)這個表示式是否為真,如果是真就執行b++,如果非真,就執行b--

我不能很好的表達,給你解題思路:

a.如果(exp)是假的,那麼(exp==0)就是真的,所以這句和(exp)不等。

b.如果(exp)是假的,那麼(exp!=0)就是假的,所以這句和(exp)完全相等。

c.如果(exp)是真的,那麼(exp==1)不一定為真,比如exp是b=2,那麼(exp==1)就為假,和(exp)不等。

d.如果(exp)是真的,那麼(exp!=1)就是假的,所以這句和(exp)不等。

所以答案是b

11樓:匿名使用者

(exp)這句是什麼意思啊就是條件 判斷真還是假如果exp是真 取b++;

假取b--;

就像是判斷bool型別。

應該選b

12樓:網友

a :陣列名。

a[4] :是指陣列a中的第五個元素,陣列都是從0開始的,所以第5個元素是a[4]。

而++的意思就是自加一次,a[4]++等價於 a[4]=a[4]+1;

比如說:定義一個。

int a[5]=;此處的a[4]的值是4,即a[4]=4。

當執行 a[4]++時原來的a[4]會自加1,變成5,即a[4]=5。

一看哥們就是初學者,好好看書,這些東西書上都有的。。

13樓:汪好帥

額,前面的都已經解釋過了。

針對你補充的問題來講。

你是有意,讓它陣列越界的麼?!

int a[4];/最大的下標是a[3]a[4]是陣列越界了,a[4]沒有被分配,你可以嘗試去除錯測試看看。

#include

void main()

/試試檢視a[4]是啥東東。

printf("%d",a[4]++

14樓:海獅

a[4]++是什麼意思。

單獨使用相當於a[4]=a[4]+1;

如果在語句中表示,使用增量前的a[4]進行計算,執行完「;」後a[4]=a[4]+1;

15樓:下一次遠足

你定義的陣列沒有 a[4] 的吧。

int a[4]=只有 a[0],a[1],a[2],a[3]

a[4]越界了,編譯器會提示錯誤的。

16樓:網友

陣列a的元素只有4個,分別是a[0],a[1],a[2],a[3],a[4]是不在a的陣列裡的。

17樓:匿名使用者

陣列及運算問題,你先看看基本的型別中,陣列a的每個單元的型別,看是否符合++運算的規則,根據++的前置與後置的意義具體解答就行了。

18樓:帳號已登出

就是一個一個依次加一的順序。

19樓:匿名使用者

首先說明一下,unsigned short佔用2個位元組,long在32位系統中佔用4個位元組;

我們對於指標進行操作時,指標移動的步長和它的型別是有關的,舉例如下:

如果指標p的型別是char* ,那麼p+1,就表示p向後挪動1個位元組;如果指標p是unsigned short* ,那麼p+1就表示p向後挪動2個位元組;如果指標p是long* ,那麼p+1就表示p向後挪動4個位元組;

現在來看你的題,本來myarray+2,其實是向後移動4個位元組,指向4這個元素;但是被轉化為long*後,它就往後移動了8個位元組,指向了0x1284,這是對這個指標進行取值,它的結果應該是。

0x00051284;然後再做型別的強制轉換,從long轉到char,截斷高3位,所以得出結果為0x84

20樓:網友

值是4(long*)是型別轉換。

第三個不清楚自己去試一下吧。

c語言問題

21樓:天上的一條龍

非0數的邏輯值為1

5為1!8為0

所以-5&&!8為0

C語言問題,C語言問題C語言問題

選a首先,空格也是一種字元,b d選項分別把空格賦給了c1,c1 其次,c選項不完整,排除 不僅a這樣,10a20b也是可以的。 聽不清啊 答案a 10a 20b cr 是正確的。因為scanf d c 時,會忽略數字前面的空格,遇到非數字字元就會結束讀取 非數字字元會留待下一次讀取,即被後面的 c...

C語言問題,C語言問題

include void main 最後輸出 1 2 2 3 cca 2,b 2,c 4 2.設計一個程式 計算0xaf 01234567,字元 a 的ascii碼值 十進位制 是多少,101 代表的字元是什麼,32678 1的準確結果是多少,1.456e6 35的準確結果是多少,12345 6的準...

C語言問題,C語言問題

符合,相當於一個字元,ascii字元可以直接轉成short整型數字。101 不符合,這是一個字串,不能作為常數。不符合,因為 會對雙引號轉義,找不到另一個雙引號。會出錯。而且就算是 也不符合,因為編譯器會把它理解成一個字串,而非單個字元。e3不符合。019不符合,0開頭代表8進位制數,不能出現9。0...