期末復習二

2022-12-15 12:15:32 來源:51CTO博客

一、常用printf轉換描述

平時很少用的幾個點:


(資料圖片僅供參考)

%ld 表示長整型 long int

%%---輸出%

%o---輸出八進制

%o和%#o的區別:

%#o更讓我們清楚八進制的形式

%x和%#x打印十六進制也是如此、

%md是我們常見的轉換描述。默認右對齊,前面加上-負號就是左對齊,我們在打印99乘法表時,-2d就是表示左對齊,每個數字占2個寬度

%m.nf不太常見,m表示占幾個寬度,n表示小數點后位數(值得注意的是,若小數位數比規定小數點后位數長,需要截斷,按照四舍五入!)這也是C語言唯一一個需要四舍五入的地方

tip:小數點算一位!

總結:看.后面的數!

經典例題:

二、表達式

1、關系表達式

a、關系表達式的數值只能是1(真)或0(假)

如果9>8這個關系表達式是真的,所以9>8這個表達式的數值就是1

b、考試易錯題:

關系表達式的優先級是從左到右,1<0為假,返回值就是0,而0<2為真,返回值就是1,所以總表達式輸出結果就是1!

2、條件表達式:

表達式1?表達式2:表達式3

考試口訣:真前假后。

當表達式1的值是非0時,采用表達式2,當表達式1的值就是0時,采用表達式3

3、break和continue的差別

break是打破的意思,(破了整個循環),所以看見break就要退出整個一層循環。

continue是繼續的意思(繼續循環),但是要結束本次循環,就是循環體內部的語句不再執行,跳到循環開始,進行新一輪的循環。

4、不停的輸入,直到輸入#停止輸入

while((x=getchar())!="#")

5、經典考題

首先明確while()括號里面不為0就是真,為0就是假,跳出循環。

解題思路:

第一個先--,k為0,跳出循環,所以只減了一次;第二個先使用,發現等于一,需要再次--,一共經歷了兩次--,最后結果就是-1

三、指針經典考題

a、

*p++和(*p)++的區別

前者本質是地址++,后者p的本身的值會++

*p++,意味p指向首元素地址,而*p++本質是地址++,所以就變成第二個元素的值,---3

(*P)++本質是值++,所以1++就變成2

b、

p和*p的區別

p的本質是地址,而*p表示地址里面的值!

c、

二級指針

解答:把*q看成一個指針整體,所以*q就表示p的地址,而**q才表示p地址里面存放的值7!

值得注意二級指針只能存放一級指針的地址,不能存放變量的地址

標簽: 關系表達式 四舍五入 跳出循環

上一篇:世界微資訊!Spring Integration 的 XMPP 通道適配器
下一篇:天天時訊:JMeter 擴展開發:自定義 JMeter 插件的調試