//求輸出結果
int main()
printf(「%d\n」,strlen(a)) ;
return
0;
}//a[i]為char型資料,取值範圍: -128 ~ +127
//所以:經過128次迴圈後 a[127] = -128,再次迴圈此時(-128 - 1) = +127即 a[128]=127。再迴圈到a[255]=0;(0對應ascii碼的'\0')。
//strlen()的機制是計算到第乙個'\0'之前的長度,所以輸出255。
//會做這個題目,需要對c語言的資料型別有很深的理解
c語言的字元常量是用單撇號括起來的乙個字元。如』a』、』x』、』d『、』?』、『$』等都是字元常量。
除了以上形式的字元常量外,c還允許用一種特殊形式的字元常量,就是以乙個字元「\」開頭的字串行。
//例:
#include
int main()
//輸出:
123456780123456
12345612
//結論:7輸出後輸出1,1要退一格把7覆蓋
0034567
//結論:游標移到本行開頭,輸入後面內容,覆蓋原先內容
1234567
12//結論:乙個水平製表符佔8列
123456781
12a //八進位制141即為97對應ascll碼表a
? //十六進製制3f即為63對應ascll碼表?
//例:
int main()
//結果:
12345678901234567890
fab c gde
h j k
字元變數的定義形式如下:
char c1, c2;
c1=『a』; c2=『b』;
在所有的編譯系統中都規定以乙個位元組來存放乙個字元,或者說乙個字元變數在記憶體中佔乙個位元組。
將乙個字元常量放到乙個字元變數中,並不是把該字元本身放到記憶體單元中去,而是將該字元的相應的ascii**放到儲存單元中。
例如字元』a』的ascii**為十進位制數97,』b』的ascii**為十進位制數98。
在記憶體中字元資料以ascii碼儲存,它的儲存形式就與整數的儲存形式類似。這樣使字元型資料和整型資料之間可以通用。
乙個字元資料既可以以字元形式輸出,也可以以整數形式輸出。
以字元形式輸出時,需要先將儲存單元中的ascii碼轉換成相應字元,然後輸出。
以整數形式輸出時,直接將ascii碼作為整數輸出。
也可以對字元資料進行算術運算,此時相當於對它們的ascii碼進行算術運算。
//向字元變數賦予整數
#include
void main()
//輸出結果:
a b
9798
//大小寫字母的轉換
#include
void main()
//小寫字母和大寫字母之間差:32
//輸出結果:a b
#include
void main()
//結果:
! //空,沒有響應的字元對應
2080
有沒有符號要結合開發平台。
在嵌入式開發中,考慮到**的移植性,對於有符號(signed)與無符號(unsigned)一定要留心系統預設的是無符號還是有符號;
為了解決此問題,通常使用typedef來重新指定宣告無符號還是有符號;
typedef int sig_int;
typedef unsigned int un_int;
一道筆試題
看到一道筆試題,跟自己想的有點出入,就跑了下,看了看原因。我稍微改了下 include int main int argc,char argv 輸出結果 c 5 d 245 press any key to continue vc6.0 debug下的彙編 5 unsigned char a 0xa...
一道筆試題
上次去筆試的時候,有一道題,怎麼也沒做出來,當時也是很緊張,有些思路,但卻沒有做出來。有四個人要過乙個獨木橋,因為天比較黑,而且橋只能允許兩個人同時通過,並且他們只有乙個手電筒。四個人單獨同時橋的時間是1,2,5,8分鐘。問最短的時間是多少?當時我的答案 1和8,1回來,1 5,1回來,1 2 8 ...
一道筆試題
題目是這樣的 判斷乙個小於1000的正整數是否為素數。素數的定義就不說了,以下直接分析解法,畢竟是在寫與專業相關的東西,是給本專業的人看得,所以看的人應該有點基礎吧?求素數的問題是乙個數學上的難題,這是常識,但是本題目限制了最大範圍是在1000以內,所以就可以嘗試找出乙個足夠好的解了。首先給出乙個最...