目錄:
簡(jiǎn)單的操作指令:
(printf级及,scanf, \t, \n, getchar, putchar, ASLLCA碼)
簡(jiǎn)單的運(yùn)算符:
(+,-窄锅,*创千,/, %缰雇,++入偷,--,)
簡(jiǎn)單的位運(yùn)算符:
(|械哟,$疏之,~,^暇咆,<<锋爪,>>)
賦值運(yùn)算符:
(=、+=爸业、-=其骄、/=、%=扯旷、|=)
關(guān)系運(yùn)算符:
(>, <, =, !=, ==)
邏輯運(yùn)算符
(&&拯爽,||,>觥)
簡(jiǎn)單的流程控制毯炮,初試 if 斷語(yǔ)句,
正文
簡(jiǎn)單計(jì)算常識(shí)耸黑。
include <stdio.h>
int main()
/*
1.常量:不變的量
整數(shù)常量:1桃煎,2,3大刊,4为迈,5
字符常量:'a','h'
小數(shù)常量:1.2,1.0
字符串常量:"c" 它代表是兩個(gè)字符缺菌,還有一個(gè)字符是'\0'
地址常量:0xffff ,每一個(gè)字節(jié)(存儲(chǔ)單元)所對(duì)應(yīng)的編號(hào)
計(jì)算機(jī)內(nèi)存組成的最小單位是字節(jié)葫辐,1Byte=8bit
常量特性:
1>不變
2>常量不可以作為左值(左值:賦值運(yùn)算符左邊的值)
2.標(biāo)識(shí)符的命名規(guī)范
1>硬性規(guī)范
(1)只能由字母,下劃線男翰,數(shù)字構(gòu)成
(2)不能由數(shù)字開(kāi)頭
(3)不能與C語(yǔ)言關(guān)鍵字相同
2>建議規(guī)范
(1)不能用拼音另患,多查字典
(2)使用駝峰命名法,如numOfStudent
(3)見(jiàn)名知義
3.變量:可以改變的量
整型變量:(整數(shù)變量)
字符變量:
實(shí)型變量:(小數(shù)變量)
4.數(shù)據(jù)類型
int:(interger)整數(shù)類型
char:(character)字符類類型
float:單精度浮點(diǎn)類型
double:雙精度浮點(diǎn)類型
5.變量定義
數(shù)據(jù)類型 變量名;
注意點(diǎn):
1>變量在同一個(gè)代碼塊不能重名
2>代碼塊是指:在同一個(gè){}的區(qū)域內(nèi)部
3>變量定義出來(lái)可以不賦初值
變量的定義
int a;//代表將來(lái)這個(gè)a是一個(gè)存儲(chǔ)整數(shù)常量的變量
/變量的初始化
int b=4.8;
char ch;
char ch1='c';
float f1蛾绎;
double f2=8.9;
printf:
%d:輸出整數(shù)類型的數(shù)據(jù)
%f:輸出浮點(diǎn)數(shù)
%c:字符類型
%p:輸出變量在內(nèi)存中所占的地址
%md:m是數(shù)字時(shí)表示空出幾個(gè)符號(hào)位昆箕。
%mc:
%ld : ld 表示長(zhǎng)整型鸦列。
float和double
如果是float 類型的數(shù)據(jù),精確到7位鹏倘,有些機(jī)器7~8位
如果是double類型的精確到16位薯嗤,有些機(jī)器15~16位
轉(zhuǎn)義字符:
\n:換行字符
\t:相當(dāng)于一個(gè)tab鍵
char ch=‘c’ ;//字符類型實(shí)際上就是一個(gè)整數(shù)類型纤泵,
小端法:低位上的數(shù)存儲(chǔ)在地址小的端口
大端法:低位上的數(shù)存儲(chǔ)在地址大的端口
0x01:小端存儲(chǔ)
系統(tǒng)機(jī)器的字節(jié)區(qū)------》網(wǎng)絡(luò)上的字節(jié)序-------》系統(tǒng)機(jī)器的字節(jié)序
float a=123456789.0骆姐;
printf("a=%f\n",a);
double b=123456789012345678.0;
printf("b=%f\n",b);
//float 和 double 類型的有效小數(shù)位只有6位捏题,float整數(shù)位可以保存8位玻褪,double整數(shù)位可以保存17位。
printf("%%%d\n",78);//打印的結(jié)果顯示%78
char ch1=‘\0’ ;//空字符
char ch2=' ' 公荧;
char ch3='0' ;
char ch4=‘A’ ;
cahr ch5='5' ;
//很重要需要熟記带射!
printf("ch1=%d\n ch2=%d\n ch3=%d\n ch4=%d\n ch5=%d\n",ch1,ch2,ch3,ch4,ch5);
ASIICA碼表:
‘\0’ : 0
' 空格' : 32
' 0 ' :48
' A ' :65
' a ' :97
char ch=‘c’ 循狰;//字符類型實(shí)際上就是一個(gè)整數(shù)類型
定義多個(gè)變量:
char ch1='c' ,cha2=' ' ,ch3=,ch4=等等窟社。
scanf的基本用法:
scanf("%d",&a);//&a:是取某個(gè)變量的地址,scanf的用法就是將輸入的值绪钥,通過(guò)地址找到地址所對(duì)應(yīng)的存儲(chǔ)單元灿里,然后將值扔到存儲(chǔ)單元里
可以同時(shí)輸入多個(gè)變量
int a,b ;
scanf("%d%d",&a,&b)
注意點(diǎn):
1>不要再scanf后面加\n
2>不要在scanf里面做太多的動(dòng)作
3>scanf ""里面的類型程腹,必須要跟后面變量的類型一致
int a;
scanf("%d",&a);//&a:是取某個(gè)變量的地址匣吊,scanf的用法就是將輸入的值,通過(guò)地址找到地址所對(duì)應(yīng)的存儲(chǔ)單元跪楞,然后將值扔到存儲(chǔ)單元里
printf(“a=%d\n”,a);
getchar:
getchar():從輸入緩存流里面取出一個(gè)字符
//可以用來(lái)分割字符串前面的部分
putchar:
putchar(): c從輸出緩存流里面拿一個(gè)字符輸出到控制臺(tái)
putchar 里面可以放置:字符變量缀去,字符常量,整行變量
怎么拿出輸入緩存流里面的換行符甸祭?(吸收回車殘留)
1>getchar();
2>
char ch;
scanf ("%c",&ch);
3>getchar(stdion);//從輸入緩存流里面拿出一個(gè)字符缕碎,stdin:標(biāo)準(zhǔn)輸入流
//寫(xiě)的不完全,以后有待補(bǔ)全池户。
運(yùn)算符:
計(jì)算機(jī)是以二進(jìn)制存儲(chǔ)數(shù)據(jù)咏雌,以數(shù)據(jù)的補(bǔ)碼形式存儲(chǔ),以數(shù)據(jù)的原碼形式輸出校焦。
在有符號(hào)當(dāng)中(char): 字符變量-128的二進(jìn)制就是1000 0000
最小值~最大值: -128~127
在無(wú)符號(hào)當(dāng)中(unsigned char):字符變量
最小值最大值:0255
計(jì)算機(jī)會(huì)進(jìn)行相同類型的計(jì)算赊抖,如果類型不同,計(jì)算機(jī)內(nèi)部會(huì)進(jìn)行一個(gè)隱形的轉(zhuǎn)換寨典。char ------》int ------》float -------》
強(qiáng)制類型的轉(zhuǎn)換:(數(shù)據(jù)類型)變量或常量
注意點(diǎn):強(qiáng)制類型轉(zhuǎn)換不會(huì)改變 變量原本的數(shù)據(jù)類型
算術(shù)運(yùn)算符:+ - * / % ++ --
int a=1,b=3;
int c=a/b;//+ - * / % 都可以使用
float c=a/b;
printf ("c=%f\n",c);
%:左右兩邊的數(shù)據(jù)類型必須是整數(shù)類型
++:前綴++ //等號(hào)左邊數(shù)先自加 再賦給等號(hào)左邊 后綴++//等號(hào)左邊的數(shù)先賦給等號(hào)左邊 自加
原碼 反碼
原碼 :沒(méi)什么好說(shuō)的 //
反碼:整數(shù)的反碼與原碼相同 負(fù)數(shù)的反碼最高位符號(hào)位不變氛雪,后面依次取反,0變1耸成,1變0.//
補(bǔ)碼:在反碼的基礎(chǔ)上 加1.//
位運(yùn)算符:
位或運(yùn)算符 |: (只要有1就加1)
案例:
int a=7;
int b=8;
int c=a|b;
printf ("%d\n",c);
$ : 相同位的兩個(gè)數(shù)字都為1报亩,則為1浴鸿;若有一個(gè)不為1,則為0弦追。
~:按位取反
^ : 只要是不同就為1岳链,
<< : 左移二進(jìn)制數(shù) 以0補(bǔ)全
,>> : 有移二進(jìn)制數(shù) 以符號(hào)位補(bǔ)全
3賦值運(yùn)算符:
=、+=劲件、-=掸哑、*=、/=零远、%=苗分、|=、
4>逗號(hào)
5> ( )
6> (type)強(qiáng)制類型轉(zhuǎn)換
案例:float f=5.75;
printf ("(int)f=%d,f=%f\n",(int)f,f);
//結(jié)果顯示(int)f=5,f=5.75
(int)(x+y) 把x+y的結(jié)果強(qiáng)制轉(zhuǎn)化為整型遍烦。
7> sizeof (數(shù)據(jù)類型/變量名)
用法:sizeof
8 >關(guān)系運(yùn)算符
< >= <= == !=
關(guān)系運(yùn)算符俭嘁,所得的結(jié)果是一個(gè)邏輯值,在計(jì)算機(jī)當(dāng)中服猪,邏輯值分為0和1,如果這事實(shí)是真的拐云,那么邏輯結(jié)果就是1罢猪,否則為0.
9>邏輯運(yùn)算符
&&:并且 事件1并且事件2成立,邏輯才為1
||:或 事件1或事件2一個(gè)成立叉瘩,邏輯就成立為1
∩排痢!:非 事件不成立的時(shí)候薇缅,整個(gè)運(yùn)算結(jié)果為1
注意點(diǎn):事件1&&事件2危彩,當(dāng)事件1不成立時(shí),就不執(zhí)行事件2泳桦,因?yàn)檫壿嫿Y(jié)果總為0
注意點(diǎn):事件1||事件2汤徽,當(dāng)事件1成立時(shí),就沒(méi)有必要執(zhí)行事件2灸撰,因?yàn)檫壿嫵闪⒔Y(jié)果總為1.
10>取變量地址運(yùn)算符&:
int a;
scanf("%d"谒府,&a);
11.三部運(yùn)算符:條件浮毯?語(yǔ)句1:語(yǔ)句2完疫;
功能分析:如果條件成立,就執(zhí)行語(yǔ)句1否則就執(zhí)行語(yǔ)句2债蓝。
案例一:輸入兩個(gè)整數(shù)變量壳鹤,求其最大值,并輸出饰迹。
案例二:
案例三:輸入三個(gè)整數(shù)芳誓,求其最大值讯嫂,用三部運(yùn)算符。
案例四:判斷輸入的字符欧芽,是否是大寫(xiě)字母曲楚?如果是大寫(xiě)字母轉(zhuǎn)換成小寫(xiě)字母铣焊,并輸出岛蚤。
11>三大流程控制:
1 ) 順序流程控制
2)選擇流程控制
蜂奸,,在計(jì)算機(jī)當(dāng)中群叶,如果指定邏輯值,如果為0街立,才會(huì)為假 其他都為真舶衬,非0即1
語(yǔ)法例子:
···if(條件)
{
,赎离,逛犹,語(yǔ)句1;
}
else if(條件)
{
梁剔,虽画,,語(yǔ)句2憾朴;
}
else{
狸捕,,众雷,語(yǔ)句3;
}
做祝,砾省,條件成立 就執(zhí)行{ }里面的語(yǔ)句
有if 就有else 否則 、和else if
注意點(diǎn):
(1)else可有可無(wú)混槐,如果有就必須在最下面编兄。
(2)if 語(yǔ)句只能執(zhí)行一條
練習(xí):輸入兩個(gè)整數(shù)變量,交換兩個(gè)變量的值队询,并打印出來(lái)械拍。
自己試一試蛉签!
輸入兩個(gè)整數(shù)變量,交換倆個(gè)變量的值件舵,并打印出來(lái)
int a,b;
printf("輸入兩個(gè)數(shù):");
scanf("%d%d",&a,&b);
printf("交換之前a=%d,b=%d\n",a,b);
int temp=a;
a=b;
b=temp;
printf("交換之后a=%d,b=%d\n",a,b);
2>輸入兩個(gè)整數(shù)變量,求其最大值,并輸出
3>發(fā)錢(qián)了脯厨,自己輸入工資铅祸,如果發(fā)的錢(qián)<=1000,拿到的實(shí)際的錢(qián)就是所發(fā)的錢(qián);如果發(fā)的錢(qián)>1000,拿到的錢(qián)超過(guò)1000的部分交%5的稅錢(qián),問(wèn)實(shí)際工資拿多少临梗?用三目運(yùn)算符完成
printf("??:");
float money;
scanf("%f",&money);
float salary;
salary=money<=1000?money:(money-(money-1000)*0.05);
printf("salary=%f\n",salary);
4>求輸入的三個(gè)整數(shù)的最大值涡扼,用三目運(yùn)算符
printf("請(qǐng)輸入三個(gè)數(shù):");
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
int max=a>b?(a>c?a:c):(b>c?b:c);
printf("max=%d\n",max);
5>判斷輸入的字符,是否是大寫(xiě)字母盟庞,如果是大寫(xiě)字母轉(zhuǎn)換成小寫(xiě)字母吃沪,并輸出
printf("請(qǐng)輸入一個(gè)字母:");
char ch;
ch=getchar();
if(ch>=65&&ch<=65+25)//if(ch>='A'&&ch<='Z')
{
printf("%c\n",ch+32); //ch+'a'-'A'
}
6>選優(yōu)秀演員,滿分100什猖,自己打一個(gè)評(píng)分票彪,等級(jí)要求:0<xx<60不及格,60<=xx<85 及格 卸伞;85<=xx<90 良好抹镊,90<=xx<=100 優(yōu)秀演員,輸出最后的等級(jí)
printf("score:");
int score;
scanf("%d",&score);
if(score>=90&&score<=100)
{
printf("優(yōu)\n");
}
else if (score>=85)
{
printf("良\n");
}
else if (score>=60)
{
printf("及格\n");
}
else if (score>=0)
{
printf("不及格\n");
}
```
(*)最近開(kāi)始整理荤傲,一遍整理一遍補(bǔ)足垮耳。有錯(cuò)誤,不對(duì)的希望可以指出來(lái)遂黍。