解析:
C語言基礎知識常量和變量分類:C/C++
1.常 量: 程序執行過程中,值不變的量。 3 ,\'a\'
變 量:值可以改變的量。
壹個變量有壹個名字,在內存中有壹定的存儲單元,存放變量的值。
2.常量類型:
a.整 型:12,0,-3
b.實 型:4.6,-1.2
c.字 符 型: \'a\',\'d\'
d.符號常量: #define PRICE 30 (PRICE不能再被賦值且要大寫)
3.變 量: 先定義,後使用。壹個變量只能被指定為壹確定類型。
4.標識符:標識變量名,符號常量名,函數名,數組名,類型名,文件名的有效字符數列。
a.由字母、數字、下劃線三種字符組成,第壹個字符必須為字母或下劃線。
b.大寫字母、小寫字母被認為是兩個不同的字符。
c.長度壹般小於8個。
數據類型
壹.整 型:
1.整型常量
a.十 進 制:12,-3,0
b.八 進 制:以0開頭。
c.十六進制:以0x開頭。
2.整型變量
a. int -32768——32767
b. short int -32768——32767
c. long int
d. unsigned int 0——65535
e. unsigned short 0——65535
f. unsigned long
int、short int、long int 第壹位為符號位 0000001 (0為正,1為負)
unsigned 第壹位不是符號位 0000001
所以int型和unsigned型的000001不是同壹個值。
二.實 型:
1.實型常量:
a.十進制數:數字和小數點組成。0.12,.12,12.0,0.0
b.指 數:e之前必須有數字,e後面必須為整數。12e3
2.實型變量:
a.單精度:float 7位有效數字 111111.1可,111111.11不可。
b.雙精度:double 15—16位有效數字 。
三.字符型:
1.字符常量:
a. \'a\' , \'x\' , \'*\' ,\'$\' 。
b. 轉義字符:‘\\n\'換。 \'\\t\'從第九列開始。\'\\r\'回車。 \'\\b\'退壹格。
2.字符變量:
char char=\'a\' 壹個字符變量在內存占壹個字節。
。將壹個字符常量放到壹個字符變量中,並不是把該字符本身放到內存單元中去,而是將該字符的ASC碼
放到存儲單元中,所以字符型數據和整型數據之間可以通用。壹個字符型數據既可以以字符形式輸出,
又可以以整數形式輸出。
四.字符串常量:
"how are you", "a","&12"
。不能把壹個字符串賦給壹個字符變量。 char c=\'a\'對,char c="how" 錯。
。\'a\' :在內存中存a。
“a”:在內存中存a\\0。
‘\\0’是C語言中判斷字符串是否結束的標誌。
變量賦初值
a. int a=3;
float f=7.2;
char c=\'a\';
b. int a,b,c=5;
相當於 int a,b,c;
c=5;
c. int a=3;b=3;c=3; 不可寫: int a=b=c=3;
各類數值型數據間的混合運算
整型、實型、字符型數據可以混合運算:10+\'a\'+1.5-8765.4321*\'b\'
double<--float
long
unsigned
int <--char,shot
float型轉晃?double型
char型,shot型轉換為 int型
int型 轉換為double型 等等
算術運算符和算術表達式
1.基本算術運算符
+ 加
- 減
* 乘
/ 除 5/3=1
% 摸(MOD) 5%3=2
2.強制類型轉換運算符:將壹個表達式轉換成所需類型
(類型名)(表達式)
(double)a 將a轉換為double型
(int)(x+y) 將x+y轉換為int型
(float)(5%3) 將5%3轉換為float型
putchar函數:輸出壹個字符
#include "stdio.h"
a. char a;
a=\'C\';
putchar(a);
b. putchar(\'\\n\');
c. putchar(\'\\102\');
getchar函數:輸入壹個字符
#include "stdio.h"
a. char c;
c=getchar();
putchar(c);
b. putchar(getchar());
c. printf("%c",getchar());
putchar函數:輸出若幹個任意類型的數據
a. printf("%d,%d",a,b);
b. printf("a=%d b=%d",a,b);
1.d 輸出十進制整數
a. %d:
b.%md: 指定輸出的寬度。數據位數小於m,左端補空格;大於m,按實際位數輸出。
a=123;b=12345;
printf("%4d,%4d",a,b);
輸出結果為:_123,12345
c.%ld: 輸出長整型數據。
long a=123456;
printf("%ld",a); 用%d,錯。
printf("%9ld",a); 輸出結果為:___123456
2. o 輸出八進制數
3. x 輸出十六進制數
4. u 輸出unsigned型數據
5. c 輸出壹個字符
6. s 輸出壹個字符串
a.%s printf("%s"."how");
b.%ms
c.%-ms
d.%m.ns
e.%-m.ns
7. f 以小數形式輸出實數
a.%f
b.%m.nf
c.%-m.nf
8. e 以指數形式輸出實數
a.%e
b.%m.ne
c.%-m.ne
scanf函數:輸入任意類型的多個數據
scanf("%d%d%d",&a,&b,&c); &a指a在內存中的地址。
——按a,b,c在內存的地址將a,b,c的值存入。
if語句
1. if (A) B;
如果條件A滿足,執行B,否則執行下壹句。
2. if (A) B
else C;
如果條件A滿足,執行B,否則執行C。
3. if (A)
if (B) C
else D;
else
if (F) H
else K;
輸入三個數,按小到大輸出。
main()
{ float a,b,c,t;
scanf("%f,%f,%f",&a,&b.&c); 4 2 1
if (a>b)
{t=a;a=b;b=t;} 2 4 1
if (a>c)
{t=a;a=c;c=t} 1 4 2
if (b>c)
{t=b;b=c;c=t;} 1 2 4
printf("%f,%f,%f",a,b.c);
}
switch 語句
switch(a)
{
case A : B; break;
case C : D; break;
default : F; break;
}
如果變量a=A,執行B;執行break語句,跳出swith語句。如果沒有break語句,D,F語句也會執行。
如果變量a=C,執行B;其它情況執行F。
while 語句
while(A)
{
B;
}
如果條件A滿足,執行B,否則執行下壹句。(先判斷,後執行。)
while(i<-5)
{
s=s+1;
i++;
}
如果i=1,則不滿足i<-5,執行下壹句。i值不變。
do-while 語句
do
{
A;
}
while(B);
先執行A,再判斷B;如果B滿足,再執行A,否則執行下壹句。(先執行,後判斷)
do
{
s=s+1;
i++;
}
while(i<-5);
如果i=1,執行i++,i=4;不滿足i<-5,執行下壹句。
for 語句
for( A ; B ; C ) D;
A:為變量賦初值;
判斷是否滿足條件B;滿足則執行D再執行C再判斷B;
不滿足則執行下壹句。
for(i=1;i<=5;i++) s=s+1;
for(i=1,s=0;i<=5;i++) s=s+1;
for( ;i<=5;i++) s=s+1;
for( ;i<=5; ) { s=s+1; i++;}
break 語句
break 語句:終止循環。用於循環語句,switch語句。
while(A)
{
if (B) C; break;
......
}
執行break語句,跳出循環,執行後面的語句。
continue 語句
continue 語句:只結束本次循環,而不是終止整個循環。
while(A)
{
if (B) C; continue;
......
}
執行break語句,跳出循環,再判斷A,繼續執行循環。