C語言問題,C語言基本問題

2021-03-29 08:14:55 字數 5776 閱讀 6932

1樓:匿名使用者

這句話提示的意思是:用型別「int (const char *,...)」隱式宣告了庫函式printf。

該提示的背景知識:因為printf這一類庫函式太常用了,所以編譯器在編譯的時候,發現原始檔中並沒有宣告printf這個函式就直接使用了它,那麼編譯器就會為printf函式隱式生成乙個宣告。你那個編譯器提示你,它為printf生成的隱式宣告是:

int printf(const char *, ...)

該提示後果:通常情況下,這個提示只是乙個warning,而不是error,編譯仍然可以通過。

解決方案:要消除這個提示,只要加上printf的宣告就行了。printf函式是乙個庫函式,它的宣告在stdio.

h檔案裡。所以,你只要在原始檔中#include 就可以了。

2樓:匿名使用者

少了標頭檔案:

#include

3樓:匿名使用者

printf使用不當吧。

4樓:渠彩榮熊釵

#include

float

n;int

main()

integer

表示整數

real表示實數

如果這個數取整之後還等於原數,則說明這個數是整數。、

5樓:巢文賦愛蕊

deque::push_back

原型void

push_back(const

t&x);

typedef

deque

intdeque;

intdeque

dequetest;

dequetest.push_back(value)就是在當前的佇列尾部插入乙個數value

例如:dequetest.push_back(1);

dequetest.push_back(2);

dequetest.push_back(3);

依次插入了1,2,3

與pop_back不同,pop_back是刪當前的隊尾值。

push_back

類似堆疊操作push,

pop_back

類似堆疊操作

pop.

這裡的"back"

容易把人搞糊塗。

自己看吧

c語言基本問題

6樓:岔路程式緣

一、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。

希望對你有所幫助。

7樓:匿名使用者

第一題:f,是從主函式的第一條語句開始執行的。

第二題:t,每一種資料型別在c語言中都占用固定的位元組數。

第三題:f,強制型別轉換會改變資料型別。

第四題:f,輸出結果為8,10,9,10。

第五題:f,不能被原樣顯示的有預處理命令中被包含檔名(如"stdio.h")、printf函式的轉義字元(如"\n")。

第六題:f,程式執行是從主函式第一條語句開始,執行到主函式最後一條語句結束。

第七題:t的值為0,因為x>10的值為0。

第八題:f,c程式執行從主函式開始。

8樓:匿名使用者

f( t  )c語言程式是從原始檔的第一條語句開始執行的。

//c語言程式是從主函式中的第一條語句開始執行的

2.   f( t )c語言對其資料在記憶體中所占用的實際位元組數是有明確規定的。

//c語言對其資料在記憶體中所占用的實際位元組數沒有明確規定,比如:整型資料在turbo c中佔2位元組,在vc中佔4位元組

3.   t(  f)c語言中強制型別轉換不會改變原變數的原有資料型別。

//強制型別轉換不會改變原變數的原有資料型別,得到的結果是轉換後的型別資料

4.   t( f  )程式段:i=8,j=10;printf("%d,%d,%d,%d\n",i,j,++i,j++);其結果9,10,9,10.

//先執行j++,輸出10  再執行++i,輸出9,然後輸出i和j的值,分別是9,10

5.   f( t  )c語言中放在「」之間的內容都被視為字串的乙個構成部分,都可以在螢幕上原樣顯示。

//c語言中放在「」之間的內容都被視為字串的乙個構成部分,前半句是正確的

//都可以在螢幕上原樣顯示。不一定,比如有些轉義字元,換行符\n,退格\b等等

6.  f( t )c程式的執行是從程式的第一行開始,一直到程式的最後一行結束。

//c程式的執行是從主函式的第一行開始,一直到主函式的最後一行結束

7.   t( f)設x、t均為int型變數,則執行語句"x = 10;t = x && x >10;"後,t的值為。

//執行語句"x = 10;t = x && x >10;"後,t的值為0

8.   f(t   )c程式的執行從程式頭開始。

//c程式的執行是從主函式的第一行開始,主函式可以位於程式中的任何地方,不一定是程式的開頭

9樓:匿名使用者

1經常程式執行是由啟動**開始的,而啟動**一般都是彙編寫的,2.不確定的,資料型別定義的時候是確定的,執行的時候根據硬體多不同會有所不同

3.毫無疑問肯定會了,要不還說什麼強制呢,對吧4.應該是8,10,9,10吧。

因為printf語句就執行了一次,所以第乙個i是8,第二個i是先+後輸出應該是9,第乙個j是9,第二個j是先輸出後++,而程式只執行了一次,所以還是沒有+,等於10。

5.雙引號是c的字串格試符,所以是對的。

6.同第一題

7·沒有看明白

8.同第一題

10樓:匿名使用者

1、假,從main開始執行。

2、假,int的長度不明確。

3、真。

4、假,從左向右計算,8,10,9,10

5、假,有轉義字元。

6、假,見1

7、t=0

8、假,見1

11樓:蹉燦紫婉娜

("a/1000>=1")

你這句寫錯了,應該是

(a/1000>=1)

把引號去掉

12樓:狂雲德潮鶯

1·c語言程式的基本單位是(b函式)a過程b函式c子程式d標誌符2·如果a=5<<2,為什麼a=20?

a=5<<2相當於a=a*2的平方

即a=5*4=20

3·不能正確對字串賦值的是(a

二維陣列不應該這樣賦值)a

char

st[4][5]=;b

char

*s;scanf("%s",s);

cchar

*s;s="abcde";d

char

s[5]=;

4·正確輸入字元組a的是(d)a

gets('a');

bscanf("%c",a);

cscanf("%s",a);d

gets("a");

5·如果c=35,為什麼printf("%d\n",c&c)的值為35?那個c&c是什麼東西。&在這裡是「按位與」運算

c&c化為二進位制的比較,都為1

則為1,否則為0.再化回10進製數

13樓:淦菀歐陽陽冰

if("a/1000>=1")

這句應改為

if(a/1000>=1)

不然永為真

c語言問題?

14樓:友有友

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

15樓:yfgh無悔

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

16樓:蒼穹夜光

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

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

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

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

應該是對的。

17樓:荊芳菲力蒼

這是一來

個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()語句的執行順序就可以明白了,明白了嗎?

18樓:金蔚逮忻歡

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

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

返回值return

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

void

main

就是沒有返回值

19樓:蘇幹孟暢然

intmain()

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

void

main()

就不需要了。

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

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

C語言問題,c語言問題

int a 4 void main int a 2 這種局 bai部變數,會du隱藏掉上一級 定義zhi的同名變數,下面dao 也是一樣回 中有效。所以上面的復合語句中,會輸出0,下面呼叫sub1時,實際上傳入的是main中的int a 2 又有a a 1,所以會輸出1,下面也是一樣的,main中的...

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

include include include typedef struct nodelinknode,link void main link pa s int da int flag 0 pa head 讓pa指向頭結點 dowhile flag 0 link pb head pb pb next...

C語言問題,C語言問題,求助

while語句的執行順序 1.判斷x的值 非0為真,0為假 2.執行 3.執行 裡面的 這裡是空,所以沒任何動作。所以會一直迴圈到x 0,判定為假,迴圈終止。接著執行減減,最後列印結果為 1 c語言問題,求助 這題是迷惑人用的.因為迴圈內部沒有break,所以for會一直執行下去,直到a 11,這時...