C語言選擇題,求詳解,C語言選擇題乙個,求詳解

2021-03-11 05:38:51 字數 3332 閱讀 8698

1樓:匿名使用者

答案:a.123

詳解抄:首先題目定義了

乙個bai字元陣列s,其中存du放了字串"123",隨後定義了字元型指zhi針p,並且dao使p指向字串s.

之後,題目開始輸出結果,注意輸出方式*p++,這是本題關鍵所在,根據運算子結合順序,先輸出*p,也就是字串第乙個字元"1",之後執行p++,指標後移指向字元"2",之後的兩次輸出同理。

希望能幫助到你。

2樓:金城杞人

答案就是a,說b的上個執行結果截圖啊

後自增是先使用再增加。

p開始指向字元陣列第一項 s[0]。

修改一下,編譯器不同結果不同。

3樓:現實夢幻者

答案源是b

原因就是,printf的執

bai行順序,因為它的執行順序是從右向左,再du從左往右輸zhi出

並且後dao置++,會重新開起一塊記憶體來存放原值,所以前面的值直接讀取存放的,如果不是指標,是數值需要注意

當然這裡是指標,每個都有它的位址,直接是把結果儲存了所以3 2 1

4樓:

陣列指標沒有任何變化,輸出都是111。。

因為指標p是指向了第乙個字元1,而%c是讀入並列印出來一回個字元。。而printf中*p意思是答s第乙個值,讀入到列印函式,列印到螢幕完了然後把這個讀入值+1,而陣列指標值還是沒有變的,總是指在1的位置。

可以用下面更改程式驗證:把其中乙個變成前++#include

main()

++*p,讀入數值+1·,最後結果是2,1,1。。說明*p只是第乙個字元值,而原陣列指標是沒有變化的。

5樓:

應該選b。

程式結果:

解析:*p 表示p是乙個儲存位址的變數

在這個程式中專當執行完p=a;時,*p為屬"1",*p++也為"1"

*p++和*(p++)相同

printf的執行順序是從左到右

*p++是把*p儲存的位址+1,而p的儲存位址是陣列的第乙個,所以相當於把p的指標往後移一位,也就是說把p指向的陣列的位置往後移一位。所以就是321

6樓:三天打魚

321 選b

p指向字串s首位址

那個呼叫函式是從右到左執行的 所以先執行最右邊的*p++ 得到1函式的引數壓棧是從右向左執行的……

c語言選擇題,求詳解

7樓:匿名使用者

正確答案是a

a: p是字串指標,用法沒有問題;

b: a是字元陣列,不能作為左值被賦值,語法錯誤;

c和d: *p、*a是字元型別,不是指標型別,卻被賦了乙個指標型別的值,肯定得不到預期的結果

8樓:擁抱

選項a是正確的。

解釋如下:

p是字串指標,它是乙個變數,可以被賦值,指向新的位址。

a[5]是乙個字串,a指向這個字串的首位址,而且它是乙個常量,除了初始化的時候能賦值之外,不能再被賦值了。

*p是取到指標p的位址的值,*a是取得字元陣列a[5]的首位址的值,這兩個都是int型,後面的字串也根本無法給它們賦值。

c語言選擇題求詳解

9樓:匿名使用者

c因為有(),所以ptr先與*結合,所以ptr是指標。剩下的成分回

用來說明ptr是什麼指標。因為剩答下的成分是int [m],是乙個具有m個int型元素的陣列形式,所以ptr是乙個指向具有m個整型元素的一維陣列的指標。

c語言選擇題乙個,求詳解

10樓:半世迷離的沉浮

a 是對的,換行會看的更加清晰。

#define size 10 //把size的巨集定義為10

char str1[size]的意思

就是char str1[10]

char str2[size+2]的意思就是char str2[12]

b,char str;裡面應該要放入具體的容量,比如 char str[10];

c,int num['10']是錯誤的,int num[10]是對的。

d是錯誤的,c語言不允許這種寫法,不允許定義的變數出現在陣列裡,因為變數值的改變,就會導致陣列的破壞,這樣會破壞程式的健壯性。

乙個簡單的c語言選擇題求詳解

11樓:

全是錯誤的。

a——雖然書寫格式沒有錯,但既然有空的,就得初始化,以使編譯器知道應該是幾。

b——只可以靠近陣列名的那乙個空著,就是說書寫格式都錯了。

c——道理同b。

d——除了靠近陣列名的可以空著,其他的都不能空著。

c語言一道選擇題求詳解

12樓:匿名使用者

這個程式就是求50~60之間的素數並輸出。

一共找到兩個素數53、59,因此輸出為5359選a

c語言,**裡的選擇題,求詳細解析。

13樓:匿名使用者

該字串常量"\123\n4567"佔記憶體位元組數應該是7,故選擇d。

其中:\123 是乙個八進位制轉義字元s

\n 是乙個轉義字元:換行符

4567各乙個字元,共佔4個位元組

字串在記憶體中儲存時最後還有乙個結束符'\0'

這樣加起來一共1+1+4+1=7個位元組。故應該選擇d。

c語言,1,**裡的選擇題求詳細解析

14樓:自我程式設計

feof的返回值就來是源2種,一種是0,還有一種非0值。

bai注意feof從檔案開始du一直讀到檔案結zhi束符號daoeof,返回值都是0,也就是null。(包括讀eof)。

只有當讀完eof之後,才變成非0值。

那麼題目中說已經讀到檔案末尾,再執行feof就會返回非零值。選c。

下面我寫了乙個簡單的測試**,這樣你能看明白點。

我檔案中的內容是"1234"四個字元。

其中讀取的值-1,就是eof,可見讀到eof時返回的還是0(null)。

但再呼叫feof,返回值就變成16。

#include

int main()

printf("feof=%d ",feof(fp));

fclose(fp);

return 0;}

15樓:匿名使用者

feof你可以理解為返回bool

C語言選擇題234題,求大神幫忙解答,給出具體解題分析和解題

2 當x和y同小於等於0時,值為真,否則為假。只有d符合。3 a 2 3 10 11 10 2 b 1 1 10 2 c a 2,當a等於2時為真,a不等於2時為假d 1 3 1 11 10 2 4 這句話的意思是p指向a陣列中下標為1的元素,也就是3 c語言程式填空題,答案已給出,求大神指點,具體...

c語言 選擇 求教 關於指標,C語言 選擇 求教 關於指標

樓上說的不對,變數宣告了當然是可以取位址的,是可以用 的,1 是錯的是因為int a,p,q,p q a p q a前面是個逗號,也就是說,先宣告int p,後面又宣告 int p,也就是將變數p宣告了兩次不同型別,所以是不對的,4 是對的,所以選d 好吧,我說的樓上樓上。全部都是錯的,這一點是完全...

C語言傳值傳址選擇題,C語言傳值傳址選擇題

這是c 啊,好吧雖然用的是c語法而已你也說了啊,是傳值呼叫,傳值呼叫的特點是什麼?形參永遠是實參的副本,即形參的任何動作都不會影響實參本身 基於此,swap str函式形參指標ab無論值為多少,原實參str a,str b都不會發生變化啊,但是實參指標指向的內容就不一定了,此處是也沒有變化 p.s....