c語言問題,C語言問題。。

時間 2021-10-15 00:01:04

1樓:匿名使用者

i++的遞增與賦值沒有先後關係, 就是i=i+1; 就是i自增1後賦值給i

同理++i也是自增1後賦值給i

題目中並不能體現i++和++i的區別, 下面通過單步執行分析for語句中各部分執行順序:

a='0',b='a'

i=1;[i=1], i<6成立, 開始迴圈: i%2==0不成立, printf("%c",b+i);輸出[b]

i++;[i=2], i<6成立, 繼續迴圈: i%2==0成立, 累計輸出[b2]

i++;[i=3], i<6成立, 繼續迴圈: i%2==0不成立, 輸出[b2d]

i++;[i=4], i<6成立, 繼續迴圈: i%2==0成立, 累計輸出[b2d4]

i++;[i=5], i<6成立, 繼續迴圈: i%2==0不成立, 輸出[b2d4f]

i++;[i=6], i<6不成立, 結束迴圈

2樓:匿名使用者

這是for結構約束的,ⅰ=1賦初值,只執行一次,i<6是判斷迴圈是否可以進行的條件,i++則是每次迴圈內部複合語句執行完畢後再執行。

3樓:182盤

實際上i++過程是,先將i值儲存在一臨時變數中,然後i值加1,最後將臨時變數返回。**中返回值沒有意義

c語言問題。。

4樓:匿名使用者

選a首先,空格也是一種字元,b、d選項分別把空格賦給了c1, c1;

其次,c選項不完整,排除;

不僅a這樣,10a20b也是可以的。

5樓:聽不清啊

答案a) 10a 20b< cr>是正確的。

因為scanf("%d%c",...);時,會忽略數字前面的空格,遇到非數字字元就會結束讀取(非數字字元會留待下一次讀取,即被後面的%c讀取)。

6樓:怒過之後

在c語言中,用0開頭的代表該數為8進位制,0x或者0x表示16進位制上述選項中b屬於8進位制,8進位制只有0-7這幾個數字,沒有8,所以b 018是錯誤的。

7樓:爹服

答案是a 因為%d會忽略空白字元直到遇到第一個數字字元,讀取非數字字元的時候會把字元放回緩衝區 %c下次讀取的就是 a 而空格和\n也是會被%c讀取

8樓:匿名使用者

正確的輸入方式是 a,另外還有種正確的輸入是10a20bb)10 a 20 b ,10後空格會被當字元輸入c)少了b

d)中的空格一樣會被當做字元輸入。

9樓:金色潛鳥

正確的輸入方式是: a) 10a 20b (附帶說明:也可以用 10a20b)

輸入格式是 "%d%c%d%c"。 %d讀入一個整型數值,遇到空格或其它非數字字元時結束,問題是緊接著的%c,是讀一個字元,只要是字元,那怕是空白,c1也會讀入。所以拍入 10 a 20 b時,c1讀入的是空格。

類似的, 拍入10a20 b 時,c2 讀入的是空格。

而 c) 10a20的方法 c2 讀入的是 回車鍵,不符合要求。

c語言問題。

10樓:聽不清啊

這個就是從鍵盤上讀取一個字元,並且此字元不是回車符。

關於c語言問題

11樓:砍侃看

我原本以為是3,結果實際跑了一下程式發現結果是5。通過除錯檢視字串變數,顯示的是123\n。為什麼是\n呢,檢視記憶體發現編譯器將字串中的\012解釋成十六進位制的0a,仔細分析一下可知,編譯器將\012當做是一個八進位制的數,轉換成十六進位制就是0a,對照ascii碼錶正是換行符。

所以從執行結果來說的話,應該選b。

12樓:匿名使用者

a.3因為字串以0結尾, 0可以寫成'\0',因此呼叫函式的字串是多個字串,strlen只求取開頭的一個長度.

關於c語言的問題

13樓:已存在這個名字

&是取地址,*是取該地址的值。

第一個是錯誤的函式宣告,這是語法錯誤。

第二個是正確的函式宣告,引數型別是一個指向linklinst的指標。

14樓:暴孝不詞

1.自頂向下、逐步求精

2.空間複雜度

3.c語言

程式檔案的編譯錯誤分哪為兩類

4.可執行程式

5.機器語言

6.obj7.b

15樓:於悠逸呼縱

#include

"conio.h"

#include

"stdio.h"

main()

這樣就對了。

scanf裡面不要亂加空格和一些其他的東西。

16樓:時讓所香

inti=1;

i=(i++)+(++i);結果是i=3,當自增自減運算子用於算術運算時,採用集體統一原則,即i取值在開始時是相同的,在本題中,i集體等於1,第一個括號內結果為1,第二個括號內的結果為2,因此最終結果為3

17樓:牛良檀水

1、使用函式或過程

2、空間複雜度

3、4、機器語言

5、機器語言

6、obj7、b

18樓:蕭芙老婷

答案應該是4

先計算i++,這時候(i++)中的i為1,但是i自增長為2,再計算++i,(++i)中i為3,

所以i=

1+3=4

19樓:滿元修倫庚

答案不好說,這和編譯器有關,因為各個編譯器的運算規則是不一樣的。我機子的結果是4,還好理解。由於圓括號優先順序最高,而且運算順序為從左到右。。

i++是用完再加,++i是加完再用,所以(i++)運算後仍為1,(i++)運算結果為2,故最後相加結果為1+1=2

20樓:伯君雅陸香

www.csdn.net

是個學程式設計的好**,中國最大程式設計師**,註冊會員後就可以在裡面提問,測試自己的程式設計能力,拜師等等

歡迎採納!

c語言問題!

21樓:匿名使用者

因為s是一個指向float型別的指標,在初始化的時候,*s=a;所以s指向了陣列a,因為陣列名代表了陣列的首地址,也就是s此刻指向了陣列a的第一個元素a[0],而a[0]==1.1,然而,你呼叫fun(a,b,s),但是在函式fun中並沒有對main()函式中的s指標有任何改變,因為你在func()函式中的s和main()根本就不是同一個,在fun()中的s在沒有呼叫calloc()之前,也是指向a[0]的,但是呼叫calloc()後,func()中的s就指向了一個系統分配的地址,所以改變func()中的s並不會影響到main()中的s。

22樓:匿名使用者

為什麼是21.1?即使沒發現錯誤也應該理解為11.1才是啊……錯誤在於對s的重新賦值。

s作為引數傳給fun,然後fun內部改變了s的值,並寫入新數。

但fun執行完後返回時,main函式裡面的s沒有改變,因為c語言的引數傳遞是傳值的。

結果就是,執行printf所顯示的實際還是a[0],所以顯示1.10修改方法:

1、把calloc放在main裡

2、如果calloc有特別要求不能動,那麼把fun的第三個引數變成 float** s ,其他s對應著修改。

c語言問題

23樓:匿名使用者

就把q定義為常變數吧:const int p;

或定義指向它的指標:int * p

24樓:匿名使用者

連結串列高階。。。。。。。。

c語言問題c語言問題

25樓:聽不清啊

#include

int main()

;int h,m;

scanf("%d%d",&h,&m);

printf("%s",num[h]);

if(m>0)

}else printf(" o'clock");

printf("\n");

return 0;}

c語言問題 10

26樓:

#include

#define n 10

int delnum(int a,int num,int n){int i,j=0;

/*用j記錄陣列a中不等於num的元

素個數(即需要儲存的元素個數),

邊掃描陣列a邊統計j,並將不等於num的元素向前放置在j位置上,最後修改陣列的長度

*/for(i=0;i

示例執行如下:

27樓:匿名使用者

如果有幾個相同的值都刪除嗎?

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

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

C語言問題,C語言問題

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

c語言問題,C語言問題?

char c 好好看書去 小 超 字元型變數 1 字元變數的定義 字元變數只能存放一個字元常量。字元變數的定義形式如下 char c1,c2 2 字元資料在記憶體中的儲存形式及其使用方法 字元型資料在記憶體中以相應的ascii 存放。字元在記憶體佔一個位元組,表示數的範圍從0 127。把字元對應的a...