c語言一道選擇題求詳解,C語言一道選擇題求詳解

2021-03-03 21:28:35 字數 3527 閱讀 5388

1樓:_指間的憂傷丶

x,y定義的是double型的,也就是雙精度的,所以你輸入的時候格式也要是雙精度的,就是%lf了,%f對應單精度的float型,用scanf輸入時,裡面變數取地址。

2樓:匿名使用者

b、c選項不正確,因為scanf函式的引數要是地址,這樣才能正確賦值給變數,d選項的控制字元格式不對,應為

scanf("%lf %le", &x, &y);

c語言選擇題,求詳解

3樓:匿名使用者

答案:a.123

詳解抄:首先題目定義了

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

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

希望能幫助到你。

4樓:金城杞人

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

後自增是先使用再增加。

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

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

5樓:現實夢幻者

答案源是b

原因就是,printf的執

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

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

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

6樓:

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

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

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

main()

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

7樓:

應該選b。

程式結果:

解析:*p 表示p是一個儲存地址的變數

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

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

printf的執行順序是從左到右

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

8樓:三天打魚

321 選b

p指向字串s首地址

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

c語言一道選擇題求詳解

9樓:匿名使用者

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

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

跪求一道c語言的選擇題 求詳解

10樓:想把你忘了

if(語句1) 語句2;

語句=true 執行 語句2

a. k%2 當他不等於0 時 為true 為0 時為falseb. k%2=1 賦值語句 為true (好比陳述句,不存在疑問c.

(k%2)!=1 k對2求餘不等於1 為trued. !

k%2==1 注意優先順序先做!k 在% !k對2求魚等於1 為 true

這題 怎麼說了 很模糊 應該選d 不過很勉強

11樓:原來的我

我覺得你的選項有錯吧 你再檢查一下選項 下面有這幾種情況k%2無非只有兩個結果0和1

(a)k%2

放在if語句中表示結果是1 為真 結果是0 為假(b)k%2==1(b選項應該這樣寫吧)

放在if語句中表示只要k%2的結果為1就是返回真,其他就是假 所以這個是跟a一樣的

(c)(k%2)!=0(c選項可能應該這樣寫)放在if語句中表示k%2的結果只要不等於0就返回真 否則為假這跟結果等於1是真是一樣的 所以abc相同(d)的表示式的意思是將k%2的結果取反 如果取反後的記過等於1就是真否則就是假 換種說法就是如果k%2結果為0就是真 否則就是假 那這個選項跟其他三個選項是不一樣的 所以選d

12樓:

b 選項是否是 k%2 == 1,如果是 k%2 = 1, 那 if(k%2 = 1)無論如何都為真了......

那麼,我猜是你打錯了。

只提一點,!的優先順序比%高。

13樓:匿名使用者

這樣的,前三個都是計算式,比如k % 2 = 1,是計算出k的值,c答案也一樣,a答案是k % 2如果有一個k值,那麼這個if語句也成立。而最後一個是做比較,是判斷==號左邊的值是否等於右邊的,是,則if語句滿足,否則就不滿足

如果滿意,請採納

14樓:匿名使用者

b肯定不行,這是賦值不是判斷

a和c的用意是一樣的

d中,先對k取反(!的優先順序高),再模2進行判斷

15樓:王海洺

a選項...就這樣?

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

16樓:半世迷離的沉浮

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語言選擇題求詳解

17樓:

全是錯誤的。

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

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

c——道理同b。

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

c語言選擇題求詳解

18樓:匿名使用者

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

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

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

x 1,y 2,x y 不成立,執行 y z y 結果是 z z y 3 3 6 c語言選擇題一個,求詳解 a 是對的,換行會看的更加清晰。define size 10 把size的巨集定義為10 char str1 size 的意思 就是char str1 10 char str2 size 2 ...

一道c語言題,謝謝,求詳解啊,一道C語言題,謝謝,求詳解啊

我們知道 只要有一個條件是假那麼整個都為假,全部為真才為真。已知c不等於2,4,6所以答案c,d為假。只要一個條件為真那麼整個就為真,全部為假才為假。已知c不等於2,4,6,a答案的三個條件 c 2 c 4 c 6 都不成立,所以a答案為假。b答案若c取值為3那,麼c!5一定為真,因為c只能取一個值...

一道c語言指標題,C語言基礎指標選擇題?

答案是d。int p a 將指標p指向陣列a的首地址,即a 0 所在記憶體的地址。for i 0 i 4 i 四次迴圈。a i p 將p所指向的記憶體的值,賦值給a i 此時的p指向的是a的首地址,即是a 0 的地址。因此 p 取的就是a 0 的值,即 p 2 當迴圈完成後,陣列a的元素值都變成了2...