習題集(2)C的考點

2021-06-21 16:55:49 字數 813 閱讀 1257

a 巨集理解

程式中定義以下巨集#define s(a,b) a*b,若定義int area; 且令area=s(3+1,3+4),則變數area的值為:(10)

3+1*3+4=10

巨集替換只形式上

替換要想當

area=(3+1)*(3+4)

c語言裡用巨集

容易出錯地方

b 二維陣列理解

若有定義:int a[3][4];不能表示陣列元素a[1][1]的是(d)

a *(a[1]+1) b *(&a[1][1]) c (*(a+1))[1] d *(a+5)

二維陣列中,a+i代表的是第i行的首位址,和a[i]的含義一樣,要注意的是*(a+i)代表的也是第i行的首位址,所以a+i,a[i],*(a+i)三者是等價的。

這樣在以上選項中,

a中的a[1]+1代表第1行第一列的位址,所以*(a[i]+1)是a[1][1]

b中的很明顯是a[1][1]

c中*(a+1)即是a[1],所以*(a+1)[1]和a[1][1]等價

d中*(a+5)是第五行的首位址,並不是陣列中的值

c 改錯unsigned char理解

void main()

getchar();

}

首先在記憶體中,char與unsigned char沒有什麼不同,都是乙個位元組,唯一的區別是,char的最高位為符號位,因此char能表示-128~127, unsigned char沒有符號位,因此能表示0~255,這個好理解,8個bit,最多256種情況,因此無論如何都能表示256個數字。

時間換算 week2 C語言習題集

輸入格式 乙個整數,表示bjt的時和分。整數的個位和十位表示分,百位和千位表示小時。如果小時小於10,則沒有千位部分 如果小時是0,則沒有百位部分 如果小時不是0而分小於10分,需要保留十位上的0 如果小時是0而分小於10分的,則不需要保留十位上的0。輸出格式 乙個整數,表示utc的時和分。整數的個...

2 C 編碼 加密工具集

1 base64概念 1.標準base64只有64個字元 英文大小寫 數字和 以及用作字尾等號 2.base64是把3個位元組變成4個可列印字元,所以base64編碼後的字串一定能被4整除 不算用作字尾的等號 3.等號一定用作字尾,且數目一定是0個 1個或2個。這是因為如果原文長度不能被3整除,ba...

奇偶個數 week3 C語言習題集

寫在前面 迴圈輸入的數字的基本框架 scanf d c while c 1 題目分割 1奇偶個數 5分 題目內容 你的程式要讀入一系列正整數資料,輸入 1表示輸入結束,1本身不是輸入的資料。程式輸出讀到的資料中的奇數和偶數的個數。輸入格式 一系列正整數,整數的範圍是 0,100000 如果輸入 1則...