C語言教材的問題,C語言書中的一些問題,知道的朋友告訴下

2025-03-29 08:15:28 字數 4535 閱讀 6358

1樓:網友

我幫你測試過了,分別用vc++和devc++,結果都是一樣的,下面是我的測試程式。

#include

using namespace std;

int main()

int a=2,b=3;

cout<<(a>b?system("pause");

結果為:#include

using namespace std;

int main()

int a=4,b=3;

cout<<(a>b?system("pause");結果為:22是int型,是double型,根據型別轉換原則,整個式子的結果是double型,它佔8個位元組(與機子有關)。

這說明表示式的最終型別是表示式2和3中較高的型別。

c語言書中的一些問題,知道的朋友告訴下

2樓:木子小三

1. 不是八進位不能帶符號,而是「o%"被定義為不認符號。這是c的人為的規定。

2. 負數都是以補碼形式存放的。不同型別變數的位數不同,像short/int/long/double,位數是不同的。可能是2位元組、4位元組、8位元組。 具體見第三問。

3. int a=-1, 認為int是兩位元組,a的二進位形式就是11111111 11111111,換成八進位就是1777777,認為int是4位元組,a的二進位就是11111111 11111111 11111111 11111111,換成八進位就是37777777777。至於int究竟是多少位,不同系統不一樣,c語言裡沒有硬性規定。

4. 這個沒什麼好說的,十進位的15轉成八進位就是17。幾個進位的轉換方法你得會。八進位逢八進一,8相當於10,9就是11,15就是17.

從二進位好轉換些,15就是 1111對吧,從後面起3位一組,不夠補0,即001 就是1,111就是7。

c++語言學習問題,不用書的

3樓:網友

作為過來人,強烈建議不要用國內的書,要使用國外好書。使用過程中積累的書單主要分為基礎篇➊c++入門、➋語言技巧、➌底層、➍stl、➎boost、➏設計模式、➐演算法;應用篇➊windows、➋linux/unix 。這些書由基礎到難,你選擇看吧。

記住,一定要邊看,邊敲書上的**。

4樓:農民

先從基礎的下手,譚浩強的c++不錯,好書一定不要只看一遍,最少要3遍以上,c++學的較好了,可以在學一下mfc,這個東西很多,你可以參照孫鑫的visual c++視屏看看,他把mfc執行過程講的很細。其實我個人認為,c++語法會了,應該多花時間學學演算法和資料結構,演算法和資料結構才是程式的靈魂,這也是體現程式設計師水平的東西,那些語法多寫程式就能掌握。

關於c語言的基礎問題

5樓:網友

你好~你老師是教數學的麼~這個c語言他的除法符號叫做取整~也就是說小數全部是忽略的~且不會四捨五入~

和*都是優先順序都是同級的~按照從左到右計算~先算a/b再算*b,那麼只要a/b不是整除的,那答案就會出現問題的哦~

具體的可以帶一些數字進去~

7/5 = 1,再*b,怎麼算也都是b~~所以是不會等於a的哦~整除的情況就是4/2*2,那就是a哦~

6樓:網友

不是的。需要考慮a,b 型別;

a/b*b = ?;

假設都是int型別,計算結果需要取整。

3/2*2 = 2; (先計算3/2 = 1,取整這裡; 1*2 = 2)

8/4*4 = 8; (類似的演算法)

c語言 書上答案是這樣 我看不懂

7樓:網友

%f為浮點型,保留6位小數,即使是個整數,它也會在其後添上小數點和六個零。

float有效位是8位(包括小數點)。

故有效的是。八位以後是系統加上的並不準確。我用vc編譯後的結果是。

printf("c=%",c);是10位的資料寬度即是10位。3代表小數點後的位數。遵循四捨五入。由c= 得 。

e+05是的5次方)。+是正號。

8樓:網友

float型別有6位小數,所以這個數賦值給a後並不是精確的。

e+05是科學計數法的意思,e的5次方。

9樓:又又and喜喜

難道這就是計算機課內容嗎?我要學的就是這個?杯具啊。

10樓:網友

由於float的有效數字是6到7位 因此 7位以後的資料將是無意義的。

比如a= 對於float型別來說只有前7位有意義,後面幾位是無意義的。a+b是有意義的幾位相加 7位後出現無意義的隨即。所以37500是隨即出現的這是實型資料的舍入誤差。

11樓:秋葉

在計算c=a+b時,a= b=要被強制轉換成乙個精確到小數點後6位的數,而在轉換過程中小數點後的數字會出錯。

c=是科學計數法,e+05是10的5次方,在執行結果裡有「+」佔乙個字位。

12樓:網友

%意思是留3位小數,總計10位。

e的意思是科學計數法,e+05表示10的5次方,也有負次方的,所以用+(正號)%f為浮點型,保留6位小數,即使是個整數,它也會在其後添上小數點和六個零。

13樓:網友

因為a,b,c都是float型別,在計算機中a,b並不是精確等於賦的值,結果c會產生偏差。

表示乘以10的5次方。

14樓:抽伯

float數劇有效位是6-7位,所以前7位資料是精確的,7位後是不精確的。後面那個是10的正5次方。

15樓:網友

基礎數學還是要學好的。

科學計數法都不知道哈。

16樓:網友

三樓說的很好了,就不多加了。

c語言 課本上的例題 有些不懂 新人

17樓:趙明想

仔細看了下,c、d兩項a的方框的確是數字寫錯了,應該是5.

如果改正過來,你列舉的程式和題目是有區別的,這也是剛接觸c對於指標常見的誤區,首先你要理解指標的概念,舉個例子。

int *p;

p代表乙個變數,這個變數的內容實質就是乙個位址,在計算機中每個位元組記憶體都對應乙個位址,通過這個位址就可以知道記憶體的資料,(*p)意為p指向這塊記憶體的內容。

下面來分析兩個程式的不同點,在題目上的程式呼叫函式入口引數只起到了值的傳遞作用,並不能代表實參,所以形參的變數位址交換,實參是沒變的,它指向的記憶體資料也是不變的,即c是對的,而d錯了。 而在第二個程式中交換不是變數位址,而是位址指向的記憶體內容交換了,實參指向的那塊記憶體的內容當然也就不同了。

最後,插一句,指標的應用可以優化好多c語言程式,如果你想學好它,必須花時間理解它。

18樓:網友

有區別:

背景:以前學c時會有這樣的比喻:如a=10;變數是乙個盒子(就是a),它裡面存的才是我們的真實值(就是10),這個盒子的編號(位址)就是我們所說的指標(就是。

在這裡看不見,呵,應該是程式自動分配給這個變數的編號,如21321321321什麼的。)

1、圖上的函式改變的是指標,也就是位址,打個比方就是存放真實數值的盒子的編號。

2、你寫的加*後,改變的是指標實際指向的數值,打個比方就是用「存放真實數值的盒子的編號」去找到這個盒子,然後再對盒子裡存放的數值進行交換。

19樓:網友

swap(int *p1,int *p2)

是能達到交換a,b的;*p1用來訪問p1指向的資料,p2也是;

20樓:網友

這個題你可以轉換一下思路,以前你問的題是對變數的指標進行操作,但是在swap函式中實際操作的是指標所代表的空間的值,而這題目中,swap中是把倆指標變數進行交換,而不是指標變數所代表的值,所以函式的形參是無法返回的,

21樓:匿名使用者

圖中的只是改變位址,而你給的是改變位址裡面的值,前者是位址,後者是數值,當然不一樣啦!

c語言課本上,有幾句話不懂,求助大家

22樓:網友

引用乙個變數前面加上至少乙個*,就是間接引用,是通過變數儲存的位址進行二次引用,為間接定址。

直接引用變數名,就是直接引用,通過變數的位址一次引用。

1 int p = 0; printf("%d", *p); //編譯錯誤,p不是指標。

2 int *p = 0; printf("%d", *p); //執行期錯誤,段錯誤。

3 char * p = "a"; printf("%c", p);此處應為 *p

4 const int a = 0; int b = 1; int *p;

printf("%d", *p);//未初始化,可能會段錯誤,也可能不會。

p = &b;

p++;//無意中將p指向了a(程式原意是a是隻讀,不能修改)

p = 1;//修改了const a

C語言問題,C語言問題

符合,相當於一個字元,ascii字元可以直接轉成short整型數字。101 不符合,這是一個字串,不能作為常數。不符合,因為 會對雙引號轉義,找不到另一個雙引號。會出錯。而且就算是 也不符合,因為編譯器會把它理解成一個字串,而非單個字元。e3不符合。019不符合,0開頭代表8進位制數,不能出現9。0...

C語言問題,c語言問題

這是值傳遞,值傳遞的過程的是,系統會給你的實參的值進行乙個拷貝,把這個拷貝傳遞給形式引數。因為是拷貝,所以實參裡頭的值是不會改變的。如果是位址傳遞就不一樣了。補充 你可以定義乙個指標,這個指標指向主函式的結構體。然後子函式的形參也定義乙個指向結構提的指標。這樣就是位址傳遞了。樓主還是好好花點時間看看...

c語言問題,乙個c語言問題?

gcc是乙個著名的編譯器,屬於gnu編譯器套件,可以編譯很多種語言,一般用於編譯c c 程式,是linux下常用的編譯工具 編譯器只能說是一種翻譯 的程式,我們所熟知的dev c vs等其實屬於ide 整合開發環境 ide一般指包括了編譯器,編輯器等多種功能的軟體,功能比編譯器更加強大 linux下...