問題11c語言的基本型別?
數字: 整數和小數 int 和float; int 有short int long int; float有double
字元: char
邏輯: bool
乙個整體: struct, union, enum, 陣列
操作底層的:指標,void
問題12不同資料型別,空間大小的問題?
sizeof是運算子,不是函式; 是c語言中的關鍵字,同float,int,return一樣;c++中的new也是關鍵字。
問題14ascii碼表
設計計算機時,以英文為語言;只要可以輸入基本常用的字元共127個就可以了,於是2的7次方為
16*16/2=128 , 而16*16=(16+6)*10+6*6=220+36=256速算,速演算法參我的另一部落格文章
而64*64=64*66-128=4224-128=4096
因此乙個byte表示所有的127個基本字元,其中高位全置為0.
問題15unsigned char 和signedchar的範圍
signed char: 非負數 第八位為0其它全為1; 即0111 1111 大小為2的7次方-1=127因此範圍0-127
負數 第八位為1其它為1: 即11111111大小為-1;1000 0000 大小為-128
unisigned char: 0-1111 1111 大小為2的8次方-1=255;
可以這樣記憶:
先記憶無符號的8位,範圍在2的8次方-1=255 0-255; 符號的範圍最小為-2的八次方/2=-128, 最大由於正數裡面多了個0,因此到127即 -128-127
問題16 scanf printf引數寫的是變數名字還是變數位址?
printf("variable a is %d",a);
scanf("%d",&a);
設定時為了方便從stdin輸入的東西直接放入變數的位址裡就可以了,不必在通過變數定址存放,因此scanf會設計成直接寫入位址。
printf是列印的變數的資料和位址無關,因此這樣設計。
我經常犯的毛病是寫成scanf("%d",a)了。其次是scanf的輸入格式的問題
scanf(「%d %d」,&a,&b)兩個空格隔開的則應該輸入兩個空格
scanf(「a=%d,b=%d」,&a,&b);
問題17沒有計算器寫個2進製,10進製的轉換.
編譯器在printf中看到%會認為和後面組成 輸出格式, 那就有個問題,我就想輸出%d怎麼辦?
#include
int main()
signed int i = -1;
signed int j =0xffffffff;
printf("i is %d,%x\n",i,i);
printf("j is%d,%x\n",j,j);
printf("%%d");
return 0;
還有我一直認為-1是1000 0000其實是1111 1111,因為-1是負數的最大。
問題18輸出單個字元,我必須用printf(「%c」,c);嗎?
不必,可以下列**putchar
#include
int main()
char c='bc1';//此處int截斷為char
char d='b';
putchar(c);
putchar('\n');
putchar(d);
return 0;
}問題19scanf語句呼叫後,我不按回車,是否可以無窮盡的輸入字元?
顯然是不會的,否則和永動機沒區別了,實際上使用者利用鍵盤輸入時,輸入的字元會依次被送到緩衝區中,在此處等待的輸入函式只有在使用者輸入了回車時,才會去緩衝區中取字元。接下來的輸入函式也是先去緩衝區中檢視當前是否存在字元。如果存在,則會取出字元;如果不存在,則會中斷,提示使用者輸入
所以下面的**才會有不合理的表現,加上fflush(stdin)後,第二個scanf顯然在緩衝區查到不存在字元,因此中斷,提示使用者輸入。一般緩衝區大小為4k
我們敲入的回車鍵也是作為乙個字元送到緩衝區的。也被看成乙個字元,和字元1沒有什麼區別,只是作為字元輸入的結束符,當輸完回車後,則所有輸入的字元包括回車字元,一起被送入緩衝區,並執行此處等待的輸入函式。
#include
int main()
char a,b;
printf("pleaseinput a and b as the format: a=123\n");
scanf("a=%c",&a);
//fflush(stdin);
scanf("b=%c",&b);
printf("a=%c,b=%c",a,b);
return 0;
}問題20:運算子的優先順序是什麼?
想到最基礎的運算子+-*/%,需要2個運算元,叫做雙目運算子;
相應還有單目的,三目的;
單目的有: 自減,自加;* & !還有 (int) (double)型別轉換,還有乙個是sizeof
三目的有:?:, 常用在a>=b?a:b
還有移位,邏輯,關係,賦值運算子。
速記如下: 單目的肯定高了;
處長想當局長了(移位運算子<<>>),於是去找關係跑官(< ><= >= == !=),這種思維很符合現代中國人的邏輯(&& ||), 但是局長推託說不符合條件(?:)不能安排,給你個副局長乾乾(副職->賦值= += *=)
移位》關係》邏輯》條件》賦值
C語言自問自答
windows系統下,最好如何配置環境?notepad tdm gcc,powershell來進行!scanf函式的返回值,和不符合格式如何返回?1 include2 void main 3 輸入 1 2 3 返回1,2,3,3 輸入 1 a 3 返回1,1,0,1 其中,x為scanf的返回值,i...
前端知識自問自答
1.什麼是rfcs 並非所有的rfc文件都是網際網路標準,只有很少的rfc文件最後變成了網際網路標準。2.vue的雙向繫結的原理是什麼?vue.js是採用資料劫持結合發布者 訂閱者模式的方式,通過es5提供的object.defineproperty 方法來劫持 監視洛個屬性的setter,gett...
spark 機制原理自問自答
本文主要收錄spark學習和工作中思考的問題。1 當spark task failed,什麼情況下task重計算,什麼情況下stage重計算?答 如果task失敗是因為shuffle output files lost,則dagscheduler會對stage重提交計算 如果不是因為shuffle ...