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...