26 有以下程式mainchar sabcdes 2printfd n ,s

時間 2021-09-11 22:33:34

1樓:零能量超動力

c語言中字串不能用+號相加,除非是c++,將加好過載才可以的,要想把字串相加,得用函式

2樓:匿名使用者

s裡面存的是字串abcde的地址,不能被修改。

s += 2 的話就會修改s的值,所以不可以。

可以這樣:

char s[ ] = "abcde";

char *a = s + 2;

printf("%d\n",a[0]); //輸出的是99 ,即c的ascii碼值。

對於你的問題補充,我是這樣理解的:

s的值是不能被修改的。然而s += 2 就是 s = s + 2。這樣會修改s的值。

如果你想指向s的下兩個字元,應該再定義一個字元指標變數,用它來操作。

不知道我理解的對不對。

問:陣列不也是指標嗎

答:陣列不是指標。陣列名存的是陣列首地址,這個應該是不能被修改的常量。就像你上面程式裡的s。

指標可以是指標常量也可以是指標變數。對於指標變數,是可以修改它的值的,就像我的程式裡的a。但是指標常量是不能被修改的。

這裡的指標常量就可以看成是上面提到的那個陣列名。我是這麼理解的。

以下程式執行後,輸出結果是( ) main() { char *s="abcde"; s+=2; printf("%d\n",s);}

3樓:一嘆

選擇答案c,輸出的為字元c的地址。

因為%d是列印整形變數的值,因為前一句執行了s+=2,s指標偏移了兩個位置,偏移了兩個位置之後s指向的是字元c,所以輸出語句輸出的是指標s,而s存放的是地址,所以輸出的就是字元c所在的地址。

4樓:唯一的天海冥

c的地址,%d是列印整型變數的值,整型變數在32位機上是四位元組,指標變數也是四位元組,所以剛好。

5樓:匿名使用者

c) 字元c的地址

s定義為指向字串「abcde」的指標,

s+=2,s指標偏移2個位置,指向c字元

後面的列印語句,輸出的是s指標的值,即字元c的地址

6樓:匿名使用者

2樓是對的

printf("%d\n",*s);} 就是字元c的ascii碼值printf("%s\n",s);} 就是cdeprintf("%s\n",*s);} 就是段錯誤 d、出錯

7樓:

就是c)字元c的地址

c語言char *p=「abcde/ofghjik/0」;   printf(「%d/n」,strlen(p)); 10

8樓:九指無名

應該是打錯了、、/o是不是/0啊。o和0還是不一樣的。。/0是結束符號,要是這樣的話,那麼五個字元就應該是abcde了。

9樓:匿名使用者

樓主 你應該把問題弄錯了

字串 "abcde/ofghjik/0" 應該是"abcde\0fghijk\0"吧

對於strlen是讀取字串個數,碰到\0就結束

參考:內

strlen的結果要在運容行的時候才能計算出來,主要用來計算字串的長度,不是型別佔記憶體的大小,strlen只能用char*做引數,且必須是以''\0''結尾的。

1、第二個元素就是\0 所以得到字串長度為1

2、\t \v \\都是轉義字元,為三個字元,後面又是\0,所以長度為3

3、\x69就是16進位制的69,十進位制為105,檢視ascii表對應字元,而\***指的是一個八進位制值所對應字元,但是\082顯示不是,八進位制只有0-7的數字,所以這裡只是一個\0 和數字 82 字串長度為1

如果要獲得每個陣列中有多少個字元可以考慮用sizeof

4、 以下程式的輸出結果是main( ){ int k=17;printf("%d,%o,%x \n",k,k,k);}

10樓:春天的離開

以下程式的輸出結果是main()

結果:17,21,11。

%d是以十進位制輸出;

%x是以十六進位制輸出;

%o是以八進位制輸出;

所以把17轉換為對應的進位制。

擴充套件資料檔案輸入/輸出

在c語言中,輸入和輸出是經由標準庫中的一組函式來實現的。在ansi c中,這些函式被定義在標頭檔案;中。

標準輸入/輸出

有三個標準輸入/輸出是標準i/o庫預先定義的:

stdin標準輸入

stdout標準輸出

stderr輸入輸出錯誤

11樓:碧海風雲

輸出的結果是:17,21,11

%d:輸出10進位制整型數

%o:輸出8進位制整型數

%x:輸出16進位制整型數

10進位制數17,8進製為21,16進製為11。

12樓:匿名使用者

在c語言裡:

%d 代表的是以十進位制輸出

%o 代表的是以八進位制輸出

%x 代表的是以十六進位制輸出

所以把17轉換為對應的進位制

分別為 17 ,21,11

13樓:許延良

#include

void main()

結果:17,21,11

c語言有以下程式,c語言 有以下程式 include stdio h main

2870 其實是兩個數 28 70 那3個if的意思其實就是要求x使得 x 7 0 x 1 3 0 x 3 1 x 2 2 0 x 2 0 春雨 潤物 terranlong說得已經很對了。如果還看不明白話把程式排版一下就好看了 include main printf n 程式不建議那樣寫,編碼的原則...

有以下程式mainint i,n 0 for i 2 i5 idoif i 3 continue nwh

在這時裡i不可能等於零,所以直接可以把do while去掉,當i 2時 i 3為真,第一個n 沒用,第二個n 後 n 1,當i 3時,i 3為假,第一個n 起作用 n 2,第二個n 後 n 3,當 i 4時,第一個n 沒用,第二個n 後 n 4,迴圈結束,所以選d 輸出結果是n 4。看這個迴圈的執行...

以下程式的輸出結果為,以下程式的輸出結果是 main int a 4,b 5,c 0,d d a b c printf d n ,d

你主要不明白無符號整型和有符號整型的區別 歸根結底printf 輸出的都是記憶體中儲存的值,只是有符號的第一位儲存符號位,而無符號整型則把它當做了資料的一部分輸出了,4在記憶體中的儲存為1 111 111 111 111 100 反碼為1 000 000 000 000 100 知道補碼的知識吧,1...