本文目錄一覽:
傳智的老師講C語言函數的棧幀調用過程講錯了吧?大家進來看看
你的老師是沒說錯的。棧的規則是先進後出,後進先出。進入棧不代表會運行,它只是進入了1個運行的隊列。按照你的方法那這個棧基本沒意義了,因為你是進棧就出棧了,直接就運行了。並沒有一個隊列順序。
1、printf(n2)它最先進棧,所以它的排在隊列的最後面,它最後運行。這符合程序的運行順序
2、printf(n1)它第二進棧,所以它是倒數第二個運行的。以此類推下去。
3、如果按照你的說法,main最先進棧,你會發現它是在棧的底部,它無法最先運行。因為它上面還有你說的printf1,2,3,4,5等等。先出棧也是它們,意味着先運行也是它們。這和事實不符的。因為運行一個程序是從主函數開始運行的。
4、根據棧的規定,這裡main應該是最後進棧的才對,因為它最後進棧,所以他最先出棧,也是它最先運行。
求C語言練習題答案
二、填空題
1. ___變量__是指在程序運行過程中,值可以發生變化的量。
2.C語言是一種____區分_(區分/不區分)字母大小寫的語言,Password和password在C語言中是兩個___不同__(相同/不同)的標識符。
3.下面的轉義字符分別表示:
』\b』__退格___,』\n』__換行___,』\t』__水平製表___,』\」』 __雙引號字符「”」___
4.下面常量的類型分別為:
1.5E12__浮點型___,1288L _整型____,』a』__字符___,”a”__字符串___
08 __整形___,』\007』__整型___
5. C語言源程序一定要有而且只有一個__主函數___函數,程序執行時也從它開始。
6. 結構化程序設計主要有___順序__、__選擇___和__循環___三種基本結構。
三、判斷題
1. C語言不是一種結構化程序設計語言。(錯)
2. C語言是弱類型語言,為了類型轉換的方便,對類型的要求很不嚴格,在許多情況下不做類型檢查。( 對 )
3. C語言既具有高級語言的特點,同時也具有部分低級語言的特點。(對)
4. C源程序可以由多個文件組成,每個文件中都可有一個主函數main()。( 錯 )
5. C程序從main()函數開始執行,因此主函數main()必須放在程序的開頭。(錯)
6. 命名標識符時字符個數不得超過6個。(錯)
7. 對於同一個數據種類型,變量值越大,它所佔內存的位元組數越多。(錯)
8. 定義一個變量時必須指出變量類型,但是不一定必須給變量初始化。( 對 )
9. “”表示一個空字符串常量,』』表示一個空字符常量。( 對 )
10. 一個表達式中出現多種數值型數據類型,運算前先進行類型轉換。( 對 )
11. 浮點數不能作自增或自減運算,只有整型才可作自增或自減運算。( 錯 )
12. 已知a、b是整型變量,則表達式a=3,2+4,b=6,7+8是一個逗號表達式。( 對 )
四、問答題
1. 寫出下面表達式的值
(1)12/3*9=36
(2)int i=3,j;
i*=2+5;
i/=j=4;
i+=(j%2);
i、j的最終結果是多少?i=5,j=4
(3)int a=3,b,c;
b=(a++)+(a++)+(a++);
c=(++a)+(++a)+(++a);a、b、c的最終結果是多少?a=9,b=9,c=25
2. 下列表達式是否正確?若正確,表達式的值是什麼?
21/2=10 21/2.0= 10.5 21.0/2=10.5 21%2=1 21.0%2 21%2.0 18%15=3 15%18=15 3%15=3
五、編程題
編寫程序,在屏幕上輸出如下信息:
===================
= I am a student. =
===================
#include”stdio.h「
void main()
{
printf(“= I am a student. =”);
}
C語言的答案
350-256=94
因為char型賦予數字的話就是對應ascII碼的表
也就是說char最大是 256
350就超過了對吧,所以一般超過了的話,電腦就從最小的重新開始數 就是到了 94了
你看你的程序 a賦值給c 於是c就成了94 c再賦值給b b也是94
這段程序主要的意義在於 告訴你,這個char和int可以互相賦值,其中轉換的方式就是這樣的
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/303837.html