《C程序設計語言——第二版》第一章知識點總結

1:字符序列在C語言中稱爲:字符串字符串常量PS:之前總以爲它們兩個指的是不同的東西!

2:在C語言中,字符序列\n表示換行符,在打印中遇到它時,輸出打印將換行,從下一行的左端行首開始。如果去掉字符串中的\n,即使輸出打印完成後也不會換行。在printf()函數的參數表中,只能用\n表示換行符。如果用程序的換行代替\n,例如:

    printf("Hello World!
    ");
C編譯器將會產生一條錯誤的信息。

3:printf()函數永遠不會自動換行。

4:while()循環語句的執行方式是這樣的:首先測試圓括號中的條件;如果條件爲真,則執行循環體;然後再重新測試圓括號中的條件,如果爲真,則再次執行循環體;當圓括號中的條件測試結果爲假時,循環結束,並繼續執行跟在while()循環語句之後的下一條語句。

5:printf()函數中的第一個參數中的各個%分別對應於第二個、第三個、... ...參數,它們在數目和類型上都必須匹配,否則將出現錯誤的結果。

6:如果在printf()語句的第一個參數的%d中指明打印寬度,則打印的數字會在打印區域內右對齊。

    int fahr = 10,celsius = 9;
    printf("%3d %6d\n",fahr,celsius);
這裏fahr的值佔3個數字寬度,celsius的值佔6個數字寬度。

7:常數中的小數點表明該常數是一個浮點數,因此,5.0/9.0;是兩個浮點數相除,結果將不被舎位。

8:如果某個算術運算符的所有操作數均爲整型,則執行整型運算。但是,如果某個算術運算符有一個浮點數操作數和一個整型操作數,則在開始運算之前整型操作數將會被轉換爲浮點型

9:賦值語句和條件測試語句的類型轉換也按照上面的方式執行。

   printf("%6.1d\n",celsius);

10:%6.1f表明另一個打印的數(celsius)至少佔6個字符寬度,且小數點後面有1位數字。格式說明可以省略寬度與精度,例如:%6f表示待打印的浮點數至少有6個字符寬度;%.2f指定待打印的浮點數的小數點後有兩位小數,但寬度沒有限制。
11:C語言中一個通用規則:在允許使用某種類型變量值的任何場合,都可以使用該類型的更復雜的表達式

12:for循環初始化部分、條件部分、增加步長部分都可以使任何表達式

13:#define指令可以把符號名(或符號常量)定義爲一個特定的字符串:

#define 名字 替換文本
在該定義之後,程序中出現的所有在#define中定義的名字都將用相應的替換文本替換文本可以是任何字符序列,而不僅限於數字。符號常量名通常用大寫字母拼寫,這樣可以很容易與用小寫字母拼寫的變量名相區別。

#define指令行的末尾沒有分號

power()函數

#include<iostream>
#include<cstdio>
using namespace std;
int power(int base,int n)
{
    int result = 1;
    for(int i = 0; i < n; i++)
        result *= base;
    return result;
}
int main()
{
    for(int i = 0; i < 10; i++)
        printf("i = %d power(2,%d) = %d power(-3,%d) = %d\n",i,i,power(2,i),i,power(-3,i));
    return 0;
}

我寫的錯誤代碼:

#include<iostream>
#include<cstdio>
using namespace std;
int power(int base,int n)
{
    for(int i = 0; i < n - 1; i++)
        base *= base;
    return base;
}
int main()
{
    for(int i = 0; i < 10; i++)
        printf("i = %d power(2,%d) = %d power(-3,%d) = %d\n",i,i,power(2,i),i,power(-3,i));
    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章