課堂筆記:
需要加強記憶的有
- 數(shù)據(jù)類型轉(zhuǎn)換:
強制類型轉(zhuǎn)換時静檬,數(shù)據(jù)只變換一次,并不改變原來的數(shù)據(jù)類型并级。 - 位運算
^:異或,相異時為一
~:取反
計算機是補碼存儲侮腹,原碼輸出3氨獭!父阻!
正數(shù)的補碼是他本身愈涩,負數(shù)的補碼時原碼取反加一;
~23:-24
原碼:00010111
反碼:11101000 (是一個負數(shù)的補碼)
負數(shù)的反碼(-1):11100111
負數(shù)的原碼:10011000(-24)
三目運算: a加矛?b:c
- 運算符級別問題:
括號成員第一履婉,全體單目第二,乘除余第三斟览,加減第四毁腿,位移第五,關系第六苛茂,等或不等于第七已烤。。
即昨天之后繼續(xù)
2)用空指針作函數(shù)調(diào)用失敗時的返回值
在函數(shù)調(diào)用成功時妓羊,函數(shù)返回一個指向某一對象的指針胯究;反之,則返回一個空指針躁绸。
3)用空指針作警戒值
指針數(shù)組和數(shù)組指針的區(qū)別:
int *p[2]
;首先聲明一個數(shù)組裕循,數(shù)組的元素是int類型;
int (*p)[2]
;聲明了一個指針净刮,指向了一個有兩個int元素的數(shù)組剥哑。
typedef int* intPtr;
intPtr p[2];```
typedef int intArray2[2];
intArray2 *p;
* ######程序掛起時,應該怎么辦庭瑰。星持。
調(diào)試程序思想及方法。
應該先檢測一下程序的結(jié)構(gòu)弹灭,按順序執(zhí)行一下函數(shù)列表督暂,檢測函數(shù)是否可行正常運行;程序本身正常完成正常的穷吮,**問題可能出現(xiàn)該函數(shù)從別的地方得到了一些錯誤的數(shù)據(jù)**
* 等于運算符的誤用逻翁;
* 未初始化的變量
* 變量的隱式類型轉(zhuǎn)換。
用什么方法找出程序中的錯誤:
(1)先調(diào)試程序中較小的組成部分捡鱼,然后調(diào)試較大的組成部分八回;
(2)徹底調(diào)試好程序的一個組成部分后,怎么調(diào)試下一個組成部分;
(3)連續(xù)觀察程序流(flow)的數(shù)據(jù)變化缠诅;
(4)始終打開編譯程序警告選項 并試圖消除所有警告溶浴;
(5)準確地縮小存在錯誤的范圍。
**從一開始就避免錯誤的出現(xiàn)**
(1)程序中應有足夠的注釋
(2)函數(shù)應當簡潔——如果一個函數(shù)很簡潔管引,你就應該多花一點時間去仔細的分析和檢測確保準確無誤士败。
(3)程序流應該清晰,避免使用goto語句和其他跳轉(zhuǎn)語句
(4)函數(shù)名和變量應具有描述性
####作業(yè):
要求:用for循環(huán)或者while循環(huán)實現(xiàn)褥伴!
路人1.1.字母金字塔
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
....................
......................................
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
include<stdio.h>
int main(int argc,char argv[]){
int i,j;
char k = 'A';
i = 1;
j = 1;
for(i = 1;i <= 26;i++){
for(j = 1;j <= 26-i;j++){
printf(" ");
}
for(j = 1;j <= 2i-1;j++){
printf("%c",k+i-1);
}
printf("\n");
}
return 0;
}
2.模擬電子時鐘:
清屏system("clear");
休眠函數(shù):sleep(n); //休眠n秒
include<stdio.h>
include<unistd.h>
int main(int argc,char *argv[]){
int hours,minutes,seconds;
// printf("Please times at present:hours minutes seconds");
hours = 19;
minutes = 30;
seconds = 0;
int i = hours,j = minutes,k = 0;
for(;i < 24;i++){
for(;j < 60;j++){
for(;k < 60;k++){
printf("%d:%d:%d",i,j,k);
sleep(1);
system("clear");
printf("\n");
}
k = 0;
}
j = 0;
}
}
3.階梯問題:
在你面前有一條長長的階梯:若每步跨2階谅将,則最后剩1階;若每步跨3階重慢,則最后剩2階饥臂;若每步跨5階,則最后剩4階似踱;若每步跨6階隅熙,則最后剩5階;只有每步7階時屯援,才剛好走完猛们,一階不剩,請問這條階梯至少有多少階狞洋?(求所有三位階梯數(shù))
include<stdio.h>
int main(int argc,char *argv[]){
int i,sum;
for(i=1;i<1000;i++){
if(i%2==1 && i%3==2 && i%5==4 && i%6==5 && i%7==0){
printf("%d\t",i);
}
}
return 0;
}
4.預習數(shù)組和指針
已完成