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

2021-05-01 20:08:42 字數 4379 閱讀 2416

1樓:匿名使用者

一、c語言規定總是從main()開始執行的(這個函式也叫「主函式」)。因此,你發來的題目中的(1、6、8)敘述都是錯誤的,都應該選擇f。

二、第2題中,c語言對其資料在記憶體中所佔用的實際位元組數,隨著程式中宣告的資料型別以及資料的多少而變化,c語言本身並沒有明確規定。這題應該選f。

三、第3題,c語言中強制型別轉換,僅對轉換的語句有效,而不會改變所轉換變數的原有資料型別,這是正確的,應該選t。

四、第4題,i=8,j=10;printf("%d,%d,%d,%d\n",i,j,++i,j++);實際上是一個程式執行類題目,執行這一句時,先取得ij變數的值,其中有一個++i(先自增),一個j++(後自增),先自增的i先加上1,也就是i=8+1=9,而後自增的j在列印之後再加1,所以列印時仍是j=10。所以列印出來是:9 10 9 10。

這是正確的。

五、第5題「c語言中放在「」之間的內容都被視為字串的一個構成部分,都可以在螢幕上原樣顯示」的說法是錯誤的。舉一個例子就可以了:print("%d",8);是列印不出來%d的,它只能列印出來8。

所以它是錯的。

六、第7題,設x、t均為int型變數,則執行語句"x = 10;t = x && x >10;"後,t的值為,這個題目好似沒有寫完,成了填空題了,現在來看計算過程,t = x && x >10,根據計算的優先順序,>號是6級,&&是11級,先計算x >10,因為x=10,故x>10是不成立的,所以它的值是0,第二步再計算x && 0=10 && 0=0。t的值最後應該是0。希望對你有所幫助。

2樓:

b?因為由程式已經知道,fun(函式名,即入口地址)賦給了a,所以便可用*a來呼叫fun函式

3樓:匿名使用者

答案是不是ab c和d引數錯了 c不是呼叫的fun

a和b就是函式指標的應用

c語言問題?

4樓:友有友

嗯你的理解是對的,break就是用來跳出的switch,如果沒有break時就像你說的那樣,當其中一個case符合條件是,後面的全部語句都會當做成立的條件去執行

5樓:yfgh無悔

如果所有的case都不符合,就會執行default語句,之後會跳出這一層,繼續執行下一次迴圈。

6樓:蒼穹夜光

首先求解表示式,其計算結果若與下面某個常量表示式相等,則執行完該case,一專般後面後面加上break;跳出,

若該case沒有break,執行完後,後面的case會依次執行,直到碰到break,不然就會執行完所有語句。

對於你的問題,沒有break,舉個例子,若屬表示式結果為 第三個常量表示式,會執行完語句段3到語句段n+1所有語句。即(如果表示式的值與某個常量表示式的值相等,則執行該常量表示式後的所有語句段)

還有一般default後面只有一個語句段,說所有語句段不太合適。

應該是對的。

7樓:荊芳菲力蒼

這是一來

個for語句,根據for語句的源形式:for(語句bai1;語du句2;語句3){函式體;}

的執行順序是zhi:語句1,判斷dao語句2是否成立(非0為真,0為假)函式體,最後是語句3,(£)再進行判斷語句2,是否成立,在執行函式體,語句3

,在執行(£)知道條件不滿足語句2,跳出迴圈;如果,語句2是非邏輯表示式,即非判斷語句時,迴圈體內,必有滿足條件的跳出語句

break,否則為死迴圈;

這裡的for(k=1;k+1;k++)

可以這樣解釋:執行迴圈for()語句時,初始條件

k=1;之後執行

k+1(k=2,非0,條件為真繼續執行)之後執行函式體for下面花括號{}的內容,之後在執行

k++(k自增1)

所以,明白for()語句的執行順序就可以明白了,明白了嗎?

8樓:金蔚逮忻歡

main函式雖然是主函式、它是程式執行的開始處、但是、它也是函式、所以、也有返回值專和沒有返回值屬

c99標準規定main函式必須是int

返回值return

0;至於返回值是返回給作業系統的!

void

main

就是沒有返回值

9樓:蘇幹孟暢然

intmain()

在函式結尾需要給出返回值

void

main()

就不需要了。

一般,對於寫程式的來說,這兩個差別不大。

但是,不同編譯器對此的處理可能不同。

10樓:宋來吳冰菱

這一段**的思想是動態規劃

dp[j]

=dp[j]

+dp[j-a[i]];

拼出j的個數等於拼出j-a[i]的個數加上原本拼出j的個數

11樓:牧典表秀美

是的。表示已經定義了max這個巨集,而這個巨集的內容為空。如果後期進行巨集替換則該巨集被替換為空的內容。

比如int

a=max-5;就替換成int

a=-5;

12樓:覃奧韋向

可能是你沒有給兩個變數賦初值,你加兩句賦初值語句在試試看,希望能對你起到幫助

13樓:權敬枝浩然

int(*p)[5]

這是一個陣列指標

說明變數p是一個指標,指向了一個容量為5的陣列。

14樓:顧宜世依白

有區別假如你用的int

main()那麼你程式執行結束後的程序狀態值是在main裡返回的值。如果void的話,其他程式就不能得到你這個程式的結束返回值。。。

15樓:襲邵隱春燕

str1+strlen(str1)/2

strlen(str1)=13(空格也是1個)str+6是&[6]的地址

strcpy(str1+strlen(str1)/2,"esshe")

是將es

she複製到str1+strlen(str1)/2去,就是從第六位開版

始你說的也對權!

c語言問題

16樓:匿名使用者

void main()

這個程式應該滿足你的要求了,而且我已經通過除錯了。

17樓:匿名使用者

#include

#include

int main(void)

18樓:璞玉渾金

#include

void main()

c語言問題!

19樓:匿名使用者

因為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。

20樓:匿名使用者

為什麼是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語言問題?

21樓:匿名使用者

struct student拼寫成struct studnt了。拼寫錯誤!

struct studnt沒有定義,所以無法執行sizeof。

22樓:榖樑躍

#include

typedef struct student;

int main()

c語言基礎問題?

23樓:最大的_大寶寶

把定義hao的陣列設大點,不然沒法裝下終止符0

24樓:匿名使用者

最後的printf有個a[i].name,這就是輸出姓名的。

C語言的問題C語言問題C語言問題

若有說明語句double p,a 則能通過scanf語句正確給輸入項讀入資料的程式段是 解 p a 將a的地址賦值給p,scanf lf p 從鍵盤獲取一個數值賦值給地址p指向的變數 所以選d 有函式fun的定義形式如下。int fun float f 則以下對函式fun的呼叫語句中,不正確的是 a...

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

你這個程式是捕捉0到9的按鍵狀態,按下再鬆開時才會記錄,想要識別所有按鍵,把for迴圈範圍擴大。比如for charch 32 ch 127 ch 這樣就包含了特殊符號及大小寫字母還有數字。但是,這個 是有問題的!一 你這個 需在鍵位已經按下後啟動才能識別,否則啟動時沒有按下對應鍵位,程式就結束了。...

c語言問題,C語言問題

for k 1 k 1 k 中,k 1是設循bai環du的初值,zhik 1是執行循dao環的條件,k 是迴圈的增量回。k 1時,k 1 2,為非0,c語言中,0代表答假,非0代表真。所以,k 1時往下執行迴圈,滿足k 4 列印k的值,即1。break 退出for 迴圈,下面的printf d k ...