最近開始結(jié)束C++和JAVA 學(xué)點(diǎn)新東西 呵呵
已經(jīng)注釋的命令下一節(jié)將不再注釋
C++ 所在IDE為 VC++ 2008
里面的內(nèi)容全是俺一個(gè)一個(gè)打下來的 轉(zhuǎn)載請你保留出處
1:
#include <iostream> //定義包含頭文件 iostream輸入輸出文件
int main() 定義函數(shù)返回值 為整數(shù)型
{ //程序開始
std::cout<<"我喜歡C++\n"; //屏幕輸出 我喜歡c++ 并且換行
int x; //定義變量 x
std::cin>>x; // cin 是獲取鍵盤輸入的值 也就是 當(dāng)你點(diǎn)擊鍵盤上的一個(gè)鍵后 下面就顯示
std::cout<<x;
return 0; //返回0
} //程序結(jié)束
2:
#include <iostream>
int main()
{
std::cout<<"學(xué)生成績表\n";
std::cout<<"一班的瓜娃子成績表A: \t"<<100; // /t 是對其命令 制表符 讓后面的數(shù)據(jù)輸出對其
std::cout<<std::endl; //endl 是立即刷新緩存區(qū) 和\n 差不多 <<100 是現(xiàn)實(shí)100
std::cout<<"一班的瓜娃子成績表B: \t"<<90+1; // 運(yùn)算符 90+1=?
std::cout<<std::endl;
std::cout<<"一班的瓜娃子成績表C: \t"<<(float)5/8; //5除以8 除下來非整數(shù)。所以 要轉(zhuǎn)換為浮點(diǎn)數(shù) float
std::cout<<std::endl;
int x;
std::cout<<"輸入任意鍵回車關(guān)閉窗口\n";
std::cin>>x; // 考慮到有些朋友的機(jī)器是運(yùn)行完控制臺(tái)窗口自動(dòng)關(guān)閉 所以這里加個(gè)案任意鍵關(guān)閉
return 0;
}
3:
STD 是名稱空間標(biāo)識(shí)符 C++標(biāo)準(zhǔn)庫中的函數(shù)或者對象都是命令空間STD定義的
cout 是標(biāo)準(zhǔn)庫中所提供的一個(gè)對象 而標(biāo)準(zhǔn)庫在名字空間中被指定為STD 所以 在使用cout 的時(shí)候要在前面加上std:: 這樣編譯器就會(huì)明白我們調(diào)用的COUT是名字空間STD中的 COUT
STD 只是在標(biāo)準(zhǔn)庫中 比如 iostream 才用到 如果非標(biāo)準(zhǔn)庫 比如 iostream.h 就不需要了 直接 cout<< 就可以了 或者在 包含下面 輸入一行 using namespace std; 也可以 就是告訴編譯器 包含 std的函數(shù)或者對象
4:
也可以使用 using std::cout; 這樣可以避免命名重復(fù) 因?yàn)椴煌拿衷诓煌拿挚臻g里面,我們將他釋放出來,很可能不小心使用錯(cuò)誤的庫數(shù)中的對象
5:
#include <iostream>
namespace a //定義名詞空間A
{
int b=1;
}
namespace c
{
int b=2;
}
int main()
{
//namespace a
//namespace c
//std::cout<<b; 上面三條命令 就是錯(cuò)誤的 編譯器就不知道輸出哪個(gè)B 會(huì)報(bào)錯(cuò)
int b=9;
std::cout<<b<<" "<<a::b<<" "<<c::b<<std::endl; // 顯示和輸出 b 和名次空間 a 以及c 的值 就是 9 1 2 “ ” 為空格
int x;
std::cout<<"輸入任意鍵回車關(guān)閉窗口\n";
std::cin>>x;
return 0;
}
搞清楚名詞空間了,就是 說 namespace a 如果要調(diào)用這個(gè)里面的值 就需要加 a::?<< 輸出就可以了
6:
#include <iostream>
using namespace std;
int main()
{
/* 這種注釋 是表示 注釋從 反斜杠* 到 *反斜杠 結(jié)束
可以注釋多行語句 */
// 這個(gè)只能注釋一行
cout<<"我喜歡C++\n";
return 0;
}
7:
#include <iostream>
void show() /* void 定義函數(shù) show 是函數(shù)名 show 的() 是該函數(shù)說需要的參數(shù)
如果為空 說明 該函數(shù)不需要參數(shù)*/
{ //函數(shù)開始
std::cout<<"hello world\n"; //函數(shù)所擁有的功能
} //函數(shù)結(jié)束
int main()
{
show(); //調(diào)用函數(shù)show 這里無返回值和參數(shù) 所以可以直接調(diào)用 show 中的內(nèi)容 。 如果有返回值 就需要 std::cout<< 這樣調(diào)用
//當(dāng)函數(shù)執(zhí)行完畢后 才繼續(xù)執(zhí)行下面的命令
int x;
std::cout<<"輸入任意鍵回車關(guān)閉窗口\n";
std::cin>>x;
}
8:
#include <iostream>
int show(int x,int y) // 定義show 函數(shù)返回值為證書并且讓他支持參數(shù) 可以接受 兩個(gè)整數(shù)型 參數(shù)
{
return x+y;
}
int main()
{
int a,b; //連續(xù)定義兩個(gè)變量 a和b 為整數(shù)型
std::cout<<"請輸入兩個(gè)整數(shù):";
std::cin>>a;
std::cin>>b;
std::cout<<"a+b的值是:"<<show(a,b); //輸出 "" 是字符串 show(a,b) 意思調(diào)用 a 和 b的值 并且相加 因?yàn)?int show 里面
//已經(jīng)定義了兩個(gè)參數(shù) 所以我們也要給他兩個(gè) 整數(shù)型的參數(shù) show 里面 是 加的 所以輸出來的是 a+b的和
int z;
std::cout<<"\n輸入任意鍵回車關(guān)閉窗口\n";
std::cin>>z;
}
9:
關(guān)于函數(shù)定義的說明 int show(int x,int y) 這個(gè)是關(guān)于到 函數(shù)的運(yùn)行 返回值 比如x+y 這個(gè)是整數(shù)型 的 所以 返回值必須為整數(shù) int 在后面調(diào)用得到時(shí)候 show(a,b) 是變量 要配合 前面的使用所以 ab 也必須是整數(shù) 當(dāng)然 你可以直接 輸入 show(1,2) 那么就是3
10:
int add(int ,int ); // 此為申明 告訴編譯器有這個(gè)函數(shù)
int main()
{
return 0;
}
int add(int x,int y) //此為定義 用于分配內(nèi)存空間 三個(gè)INT 為 12個(gè)字節(jié)空間
{
return x+y;
}
一般情況下都要先聲明。象下面 就不好了 會(huì)導(dǎo)致無限循環(huán)
#include <iostream>
using namespace std;
void a();
void b();
void a()
{
cout<<"此為A函數(shù)\n";
b();
}
void b()
{
cout<<"此為B函數(shù)\n";
a();
}
int main()
{
a();
b();
return 0;
}
11:
#include <iostream>
using namespace std;
void swap(int ,int );
int main()
{
int x=3,y=4;
cout<<"在main函數(shù)中 在調(diào)用SWAP函數(shù)之前。X的值是:"<<x<<" Y的值是"<<y<<endl;
swap(x,y);
cout<<"在main函數(shù)中 在調(diào)用SWAP函數(shù)之后。X的值是:"<<x<<" Y的值是"<<y<<endl;
return 0;
}
void swap(int x,int y) //交換函數(shù) 定義X Y
{
cout<<"在SWAP函數(shù)中 在調(diào)用SWAP函數(shù)之前 X的值是:"<<x<<" Y的值是"<<y<<endl;
int z; //局部變量 只在此函數(shù)中有用 過了此函數(shù)后 變量將無效。
z=x; // X復(fù)制給Z 也就是 z=3 下同
x=y;
y=z;
cout<<"在SWAP函數(shù)中 在調(diào)用SWAP函數(shù)之后 X的值是:"<<x<<" Y的值是"<<y<<endl;
}
/* 最終輸出 3 4 調(diào)用 后 首先輸出 main swap 因?yàn)槭鞘讉€(gè)輸出命令
3 4 現(xiàn)在開始 swap 函數(shù)的輸出 因?yàn)檫@里已經(jīng)開始調(diào)用 3 4 因?yàn)樯厦?定義了的
4 3 現(xiàn)在輸出4 3 因?yàn)橥ㄟ^下面的變量被交換
3 4 這里在執(zhí)行 SWAP 函數(shù)下的 內(nèi)容 main swap 輸出3 4 證明 沒有影響到 其他語句
12:
#include <iostream>
using namespace std;
void swap(int ,int );
int x=4000,y=3000; // 定義全局變量 可以在所有函數(shù)中應(yīng)用
int main()
{
int x=3,y=4;//這里是局部變量 優(yōu)先級高與全局
cout<<"在main函數(shù)中 在調(diào)用SWAP函數(shù)之前。X的值是:"<<x<<" Y的值是"<<y<<endl;
swap(x,y);
cout<<"在main函數(shù)中 在調(diào)用SWAP函數(shù)之后。X的值是:"<<x<<" Y的值是"<<y<<endl;
return 0;
}
13:
數(shù)據(jù)類型
可以分為 常量和變量 變量是可以改變的量 常量是不能改變的。
變量 可以包括 INT 整數(shù)型 BOOL 布爾型 真假 char 字符型 雙字符型 wchar_t 單精度浮點(diǎn)型 float 雙精度浮點(diǎn)型 double
14:
#include <iostream>
using namespace std;
int main()
{
int x; //定義一個(gè)變量 但是并沒有賦值
x=1; //這里才是賦值
int y=2;//這里是初始化 變量Y 為2 不是賦值
return 0;
}
//變量可以這樣說,變量是存儲(chǔ)數(shù)據(jù)的地方,是內(nèi)存中的地址,在這個(gè)地址中。我們可以對他讀取和存儲(chǔ)
15:
變量和數(shù)據(jù)如何存儲(chǔ)在內(nèi)存上? 百度下 內(nèi)存可以看做是一個(gè)一個(gè)格子,而每個(gè)格子都有一個(gè)編號,這些編號就是內(nèi)存地址。。。。等等
由于內(nèi)存的種種特性 所以我們要定義變量的類型 這樣 編譯器才會(huì)給我們變量分配內(nèi)存空間 然后做好放置這種變量的準(zhǔn)備 每個(gè)格子是一個(gè)字節(jié) 如果我們定義的變量類型占用兩個(gè)字節(jié) 就需要兩個(gè)字節(jié) 也就是兩個(gè)格子
深入數(shù)據(jù)類型 了解 位 和 字節(jié)
16:
#include <iostream>
using namespace std;
int main()
{
bool check; //定義一個(gè)布爾型變量
check=true; //讓他表示為真,也可以是 false 假。 對應(yīng) 1真 0假
if (check=true)//如果check是真
{
cout<<"HELLO WORLD \n";//輸出
}
return 0;
int x;
std::cout<<"輸入任意鍵回車關(guān)閉窗口\n";
std::cin>>x;
}
17:
#include <iostream>
using namespace std;
int main()
{
char ch; //定義一個(gè)字符型變量 ch
ch='0'; // 字符型變量要用 '' 單引號 括起來
cout<<ch<<endl;
cout<<(int)ch; //轉(zhuǎn)換字符型變量為 int 0的ascll 碼 就是48
for(int i=32;i<128;i++) // 下面是循環(huán)語句 表示 i=32 如果I小于128的時(shí)候 就停止 否則 i一直加1
{
cout<<(char)i;//這里是輸出 ASCLL瑪值 ,也就是一直循環(huán)輸出32 到 128 ASCLL瑪對應(yīng)的字符
}
char ax;
ax='\t' //特殊字符:包括 \t 對其相當(dāng)于TAB建 \r 回車鍵 不等于換行 \又稱為 轉(zhuǎn)移字符
return 0;
}
//關(guān)于字符型變量輸出 的轉(zhuǎn)換 比如 ASCLL 可以去百科查看和研究。
/* 特殊字符 \a 鈴聲 \b 回退 \f 換行 以下不寫斜杠 v 垂直制表 000 八進(jìn)制 xhhh 十六進(jìn)制
18:
#include <iostream>
#include <locale> //調(diào)用一個(gè)頭文件用于支持 locale
using namespace std;
int main()
{
setlocale(LC_ALL,"chs");//設(shè)置 本地機(jī)器 語言 日期 貨幣格式等 lc_all為 所有 chs 中國
wchar_t ch[]=L"中";// 定義 雙字節(jié)型 wchar_t 因?yàn)?字節(jié)型 只能輸出一個(gè)字節(jié) 而中文 韓文 日文 等都是雙字節(jié)型 所以要這樣定義
wcout<<ch; //上面的 [] 是數(shù)組的意思 L 表示 告訴編譯器 分配兩個(gè)字節(jié)的內(nèi)存空間 cout 不支持輸出雙字節(jié) 所有用 wcout來表示
return 0;
}
19
#include <iostream>
using namespace std;
int main()
{
cout<<"int:"<<sizeof(int)<<endl; //sizeof 函數(shù)是輸出INT 這個(gè)類型的長度 為4個(gè)字節(jié) 所以是4
cout<<"short:"<<sizeof(short)<<endl; // short 為短整型 占用空間兩個(gè)字節(jié) 輸出2
cout<<"long:"<<sizeof(long)<<endl; // long長整形 輸出4 long 和int 在32位系統(tǒng)中沒區(qū)別 16位 int 為2
//上面是有符號位 有符號位可以表示正整數(shù)和負(fù)整數(shù)shot int他的取自最大范圍為-32768- 32767 因?yàn)?最高位為填充為 其余 15位為1 二轉(zhuǎn)十的概念
// int 為-2147483648 - 2147483647
unsigned short a;
cout<<"short:"<<sizeof(short)<<endl; // 無符號為 短整型 只能輸出 正整數(shù) // 因?yàn)?正整數(shù)不需要 填充 所以 16個(gè)1 為 65535
return 0;
}
//這些關(guān)系到補(bǔ)碼 和進(jìn)制 之間的轉(zhuǎn)換。 下圖 是占用表:
20:
/* 運(yùn)算: 計(jì)算機(jī)運(yùn)算的時(shí)候 全部以二進(jìn)制運(yùn)行 比如
1+1 就是 00000001 + 00000001 那么就等于 00000010 因?yàn)?nbsp; 進(jìn)制運(yùn)算 1+1 =2 2不是二進(jìn)制 所以要補(bǔ)1 就是 前面那個(gè)數(shù)了
但是計(jì)算機(jī)不識(shí)別 減法 所以 要這樣表示 2+(-1) 那么就是 00000010 10000000 因?yàn)?最高位為符號號 1表示 負(fù)數(shù) 0表示整數(shù)
而 這樣運(yùn)算的結(jié)果不對 所以要用補(bǔ)碼 補(bǔ)碼 分兩步走 一 全部 翻轉(zhuǎn) 所以是 01111111 最后添加一個(gè)1 就是11111111 所以 就是
00000010+11111111=0000001 就是 1了
這就是 計(jì)算機(jī)中的進(jìn)制運(yùn)算 也是補(bǔ)碼的作用
*/
21:
#include <iostream>
using namespace std;
int main()
{
int a=-1;
unsigned int b=-2; //可以縮寫為 unsigned b
short c=-3;
long d=-4;
unsigned long e;
e=a+b+c+d; //讓 abcd 加起來 并且賦值給 e
cout<<"e:"<<e<<"\n"<<"a:"<<"\n"<<a<<"b:"<<"\n"<<"\n"<<"c:"<<c<<"\n"<<"e:"<<e<<endl;
//以上語句 輸出 每個(gè)的值 由于 unsigned b 是 無符號 所以 無法輸出 -2 那么他的值將是 一串 數(shù)字 把他轉(zhuǎn)成 二進(jìn)制 在進(jìn)行
//反轉(zhuǎn)和添加補(bǔ)碼 就可以得出 二進(jìn)制的結(jié)果 把他轉(zhuǎn)成 十進(jìn)制 就是-2 大家可以自己算算 其他結(jié)果一樣 e的結(jié)果和上面原理 相同
//-10 的結(jié)果 轉(zhuǎn)換下 就知道了
//下面為變量溢出
short f=32767;//定義 短變量 最大的值
short g;
g=f+1; //g +1 就是 溢出
cout<<"g:"<<g<<"\n"<<"f:"<<f<<endl;//當(dāng)你看到結(jié)果 是 -32768 的時(shí)候 使用進(jìn)制轉(zhuǎn)換就明白了 32767 的二進(jìn)制位 15個(gè)1
// 因?yàn)樽罡呶?問0 表示正數(shù)被忽略了 。 把他加1 他最高位 為1 其他全部0 1是負(fù)數(shù) 而 -32768 轉(zhuǎn)成二進(jìn)制后 要選中
//單字 因?yàn)?一個(gè)字節(jié)占用兩個(gè)空間 把他在轉(zhuǎn)換后 自己都明白了吧 。。所以注意 超出最大范圍的復(fù)制不會(huì)報(bào)錯(cuò) 所以一定要
// 記住上面的一張表 不要 超出范圍 當(dāng)溢出后 就又從0開始了
return 0;
}
22:
#include <iostream>
#include <iomanip> //包含頭文件 問 設(shè)置精確函數(shù)引用
using namespace std;
int main()
{
/*float 計(jì)算出來的數(shù)字為 2X2的23次方 8388608. 可以表示八百多萬 如果有負(fù)數(shù) 為 除二 這個(gè)只是他的最大表示位數(shù)。
取出在十進(jìn)制中占多少位 可以用計(jì)算機(jī) 科學(xué)計(jì)算 LOG 能取出 是 6.9 也就是可以表示的十進(jìn)制為 6到7位
取值范圍和有效數(shù)字是不同的 取值范圍可以很大 但不一定每一位上的數(shù)值 都是精確數(shù)字 假如想每一位都精確 就要在
6-7位之間
*/
float a; //定義一個(gè)A的浮點(diǎn)型變量
a=12.12345601234661;// a 的值為 這么多
cout<<"a:"<<a<<endl; //輸出A 可以看到 最多輸出 6位 因?yàn)樗挠行?shù)字 就是6-7位 如何要讓他全部輸出 可以
cout<<setprecision(15)<<a<<endl; //像這樣,這里是 設(shè)置 精確 位數(shù) 也就是現(xiàn)實(shí)位數(shù) 此函數(shù)可以顯示到15位 15也可以自定義輸出
int x;
cout<<"輸入任意鍵回車關(guān)閉窗口\n";
std::cin>>x; // 考慮到有些朋友的機(jī)器是運(yùn)行完控制臺(tái)窗口自動(dòng)關(guān)閉 所以這里加個(gè)案任意鍵關(guān)閉
return 0;
//在VC2008中 會(huì)看到提示 warning C4305: “=”: 從“double”到“float”截?cái)?意思是 超出范圍
//可以用 double 表示 只要把 float 改成 double 雙精度浮點(diǎn)型 因?yàn)?double 可以精確到 15-16位 長度八個(gè)字節(jié) 64位二進(jìn)制
//在 使用浮點(diǎn)型的時(shí)候 能使用 float 就使用 因?yàn)?double 要比 float 多消耗兩倍內(nèi)存 而且運(yùn)算慢
}
23:
#include <iostream>
using namespace std;
int main()
{
const char a='s'; //定義一個(gè)常量字符串 a a 為 s 常量是不可改變的量,所以 如果象下面
a='b'; // 那么編譯器將會(huì)報(bào)錯(cuò) error C3892: “a”: 不能給常量賦值 所以 常量可以被初始化 但是以后將不能對他進(jìn)行賦值
cout<<a;
return 0;
}
//定義一個(gè)常量 就是在 char int 等前面 加上一個(gè) const 就是了
24:
#include <iostream>
using namespace std;
int main()
{
enum num{zero=100,one,two=200,three,four};//定義一個(gè)枚舉常量 num 枚舉常量 里面包含值
//枚舉常量的意思是 在包含的數(shù)字里面 你只要定義一個(gè)值 比如 zero=100 那么以后的值是 101 依次加1
// 如果不定義 那就是從0 開始 two 開始后是200 那么以后就 201 202 一次類推 可以看下結(jié)果 如下:
cout<<zero<<"\t"<<one<<"\t"<<two<<"\t"<<three<<"\t"<<four<<"\n";
//下面的程序就是利用 枚舉常量來判斷今天是否為上班
enum day{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};
day today;
today=Monday;
if(today==Sunday||today==Saturday)
{
cout<<"周末休息\n";
}
else
cout<<"上班了\n"
return 0;
}
另外說一點(diǎn) ctrl+f5 可以不關(guān)閉DOS
25:
#include <iostream>
using namespace std;
int main()
{
x=1;// 語句 什么是語句,語句以分號結(jié)束 表示一條語句 ; 這個(gè)是一條空語句
x=a+b; // 語句是不區(qū)分空格的 所以 你可以隨便敲多少個(gè)空格 但是不美觀, x=a+b 的意思是 a+b 然后把他加起來的值賦給x
// 這里就執(zhí)行了一個(gè)語句 因?yàn)樗挥幸粋€(gè) ;號
return 0;
}
26:
#include <iostream>
using namespace std;
int main()
{
{ //塊 什么是塊 塊是以坐大括號開始 右大括號結(jié)束 里面允許多條語句的就是塊如下:
int x,a=1,b=2;
x=a+b;
return 0;
//這里也是可以被執(zhí)行的。。
}
}
27:
#include <iostream>
using namespace std;
int main()
{
int a=1,b=2,c=3,x=0; //表達(dá)式:
x=c=a+b; //這里是一個(gè)表達(dá)式 也是一個(gè)語句 因?yàn)橛蟹痔?,凡是用于?jì)算值的操作都可以看做是表達(dá)式 這里是把
//a+b的值 加起來賦給c 然后在吧 c的值賦給x 也稱為 賦值表達(dá)式
cout<<x;//x輸出3 因?yàn)橘x值過來后的只 a+b 等于3
return 0;// 表達(dá)式總能返回一個(gè)值
}
28:
#include <iostream>
using namespace std;
int main()
{
int a,x;
a=30;// 這個(gè)是賦值運(yùn)算符 他是把30賦值給了a 但是你不能把 a賦給30 比如 30=a 因?yàn)?0是個(gè)常量是恒定不變的
x=a+1; // 這個(gè)是 數(shù)學(xué)運(yùn)算符 a+1 加法運(yùn)算 還有 - 減法 *乘法 /除法 % 求模運(yùn)算符
cout<<x;
//下面的例子 可以很好的說明 求模運(yùn)算符的作用 下面的左右是依次輸出0-60的數(shù)字 當(dāng)每次可以被6除下后余數(shù)
//等于0的時(shí)候 就換號 輸出i 并且 \t 制表。。
for(int i=0;i<60;i++)
{
if(i%6==0)
{
cout<<"\n";
}
cout<<i<<"\t";
}
return 0;
}
/*
什么是運(yùn)算符? 運(yùn)算符是指可以運(yùn)算的操作符號,而提供給運(yùn)算符操作的數(shù)值 我們把他們叫做操作數(shù)。由于所有
操作數(shù)都可以返回一個(gè)值 ,所以 他們也是表達(dá)式 C++有好幾類 運(yùn)算符其中最常用的是 賦值運(yùn)算符 和數(shù)學(xué)運(yùn)算符
數(shù)學(xué)運(yùn)算符既是可以對操作數(shù)進(jìn)行數(shù)學(xué)運(yùn)算的功能
*/
29:
#include <iostream>
using namespace std;
int main()
{
int a=1,b;
b=a+1;
a=b;
//上面的語句過于啰嗦而且繁瑣,我們可以通過 簡化他的方式來簡化操作 如下:
int a=1;
a=a+1; //或者 通過 數(shù)學(xué)運(yùn)算符和復(fù)制運(yùn)算符聯(lián)合的方式更加簡化他
int a=1
a+=1 // 這條語句的意思是 把 左邊的A和1相加 并且把結(jié)果賦值給 a 相當(dāng)于 a=a+1 也可以使用 a-=1 等等 和上一節(jié)一樣的運(yùn)算符來操作
return 0;
}
30:
#include <iostream>
using namespace std;
int main()
{
int a=1,b=2,c=3;
a++; //自加運(yùn)算符,自加運(yùn)算符表示 每次加1 所以 a+1 為 2
cout<<"a: "<<a<<endl;
a--; //自減運(yùn)算符,原理同上,表示每次減一 所以結(jié)果為1
cout<<"a: "<<a<<endl;
//上面的后置自加運(yùn)算符
cout<<"++b: "<<++b<<endl; //前置自加運(yùn)算符 意思是 先加先讓B的值加1 然后輸出結(jié)果 所以B的值是 3
cout<<"c++: "<<c++<<endl; //他們的區(qū)別看這里就知道了,一個(gè)是先加 一個(gè)是后加 比如這里就是 后加所以他的值還是 3
cout<<c; // 只有到這里后 他的值才會(huì)變?yōu)? 因?yàn)樗呛蠹拥?不信 你們可以看看運(yùn)算結(jié)果
return 0;
}
31:
#include <iostream>
using namespace std;
int main()
{
int a=1+2*3+4*5;//優(yōu)先級: 優(yōu)先級和小學(xué)數(shù)學(xué)一樣 數(shù)學(xué)運(yùn)算符 也存在優(yōu)先級。比如這條語句 那么他的優(yōu)先級就是
//乘法和除法優(yōu)先 加減隨后
cout<<a<<endl;
int b=(1+2)*(3+4)*5;//如果想先作加減發(fā),那么只需要括起來即可
cout<<b<<endl;
return 0;
}
32:
#include <iostream>
using namespace std;
int main()
{
int a=1,b=2;
if(a==b)// 關(guān)系運(yùn)算符 , == 表示 等于 也就是 如果 a 等于 B 的話就輸出 相等
{ // 關(guān)系運(yùn)算符在c++ 里面有 6種 還有就是 != 不等于 < 小于 > 大于 <= 小于等于 >= 大于等于
cout<<"相等\n";
}
else //else 是 a 不等于b 那么就是輸出 不相等
cout<<"不相等\n";
return 0;
}
33:
#include <iostream>
using namespace std;
int main()
{
int a=1,b=2;
if(a==b) // 判斷語句 if if 是 如果的意思 意思是 如果 () 括號里面的語句是真的話 比如 a等于b 那么就執(zhí)行大括號中的語句
{ // 如果你有多條語句需要運(yùn)行 就使用大括號 編譯器會(huì)把他們看桌一條語句 如果你不用大括號 那么將只執(zhí)行一條語句
cout<<"相等\n";
}
// 如果為假的話 就執(zhí)行大括號以外的語句 比如下面的這條 當(dāng)然 為真也會(huì)執(zhí)行下面這條 因?yàn)椴]有else
cout<<"不相等\n";
return 0;
}
// 如果 命令有個(gè)返回值 也就是 如果這條語句 為真 就返回 真 假 就返回假 也就是返回
34:
#include <iostream>
using namespace std;
int main()
{
int a,b;
cout<<"請輸入第一個(gè)數(shù):\n";
cin>>a;
cout<<"請輸入第二個(gè)數(shù):\n";
cin>>b;
if(a==b)
{
cout<<"相等\n";
}
else //當(dāng)有else 的時(shí)候 如果if 為真 就不會(huì)執(zhí)行 像上面的語句了 他只會(huì)在為假的時(shí)候執(zhí)行
cout<<"不相等\n";
return 0;
}
35:
#include <iostream>
using namespace std;
int main()
{
int a;
cout<<"請輸入一個(gè)數(shù):\n";
cin>>a;
if(a<10)
{
cout<<"a小于10\n";
}
else if(a<20)
{
cout<<"a小于20\n";
}
else if(a<30)
{
cout<<"a小于30\n";
}
else
cout<<"不相等\n";
return 0;
}
//上面是 else if 的語句使用方法,可以多個(gè)判斷循環(huán),用于 精確判斷 。else if 可以一直連續(xù)判斷到你不想判斷為止
// else if 和 if 一樣 都是 如果真 就執(zhí)行它下面大括號里面的語句 如國假 就執(zhí)行下面的 else if 或者 else 語句
上面三節(jié)就是if 語句的學(xué)習(xí)了
36:
#include <iostream>
using namespace std;
int main()
{
int a;
cout<<"請輸入一個(gè)數(shù):\n";
cin>>a;
if(a>1)
if(a<100)cout<<"a大于1而小于100\n"; //內(nèi)嵌if 語句 ,上面的意思是 a>1 就執(zhí)行 嵌套語句 當(dāng)你輸入 2的時(shí)候
else cout<<"a大于或者等于100\n"; // 就執(zhí)行 if (a<100) 2是小于100的 所以輸出 如果 輸入 101 那么if 判斷 返回假執(zhí)行else 這條語句
else // 只有在 if(a>1) 返回假的時(shí)候才執(zhí)行這條語句 如果是 0 的話 就執(zhí)行這個(gè)ELSE
if(a<1)cout<<"a小于1\n"; // 0<1 所以執(zhí)行 if if 已經(jīng)返回真了 所以 else 將不再執(zhí)行
else cout<<"a等于1\n";
return 0;
}
//上面就是if嵌套語句 在一個(gè)if語句中 有多個(gè)if 語句 就是if語句嵌套
37:
#include <iostream>
using namespace std;
int main()
{
int a;
cout<<"請輸入一個(gè)數(shù):\n";
cin>>a;
if(a>1)
{ //大括號的作用 是用來說明 if 語句的作用范圍 , 這里有大括號所以if 語句從這里開始
if(a<100)cout<<"a大于1而小于100\n";
//else cout<<"a大于或者等于100\n"; 這里被注視了 你如果不用大括號 那么 else 將會(huì)自動(dòng)尋找與他最近的if語句配套
// 那么將產(chǎn)生錯(cuò)誤 到時(shí)候就是 上面的if 和下面的else 相配套了 輸出的結(jié)果將會(huì)讓你以外 ??梢宰约喝ピ?br> } // 到這里結(jié)束
else
if(a<1)cout<<"a小于1\n";
else cout<<"a等于1\n";
return 0;
}
//以上語句 只要輸出 大于 100的數(shù) 將會(huì)自動(dòng)跳轉(zhuǎn)到 return 因?yàn)椴]有任何判斷語句判斷是否大于100
38:
#include <iostream>
using namespace std;
int main()
{
int a;
cout<<"請輸入一個(gè)數(shù):\n";
cin>>a;
if(a>1&&a<100) // 邏輯或 運(yùn)算符 表示 兩個(gè)條件都要為真 否則就返回假 比如 a>1 和 a<100這都要成立 才執(zhí)行 下面的輸出語句
cout<<"a大于1而小于100\n";
return 0;
}
39:
#include <iostream>
using namespace std;
int main()
{
int a;
cout<<"請輸入一個(gè)數(shù):\n";
cin>>a;
if(!a==1) // 邏輯非 表示 如果a等于1 那么 取反 就是不等于 意思就是 把所有為真或者為假的結(jié)果都讓他相反
cout<<"a不等于1 \n";
else
cout<<"a等于1";
return 0;
}
40:
#include <iostream>
using namespace std;
int main()
{
int a;
cout<<"請輸入一個(gè)數(shù):\n";
cin>>a;
if(a>1||a<100) // 邏輯或運(yùn)算符 只要有一邊的條件成立 那么就返回真
cout<<"a大于1切小于100 \n";
return 0;
}
41:
#include <iostream>
using namespace std;
int main()
{
int a;
cout<<"請輸入一個(gè)數(shù):\n";
cin>>a;
int b;
cout<<"請輸入一個(gè)數(shù):\n";
cin>>b;
int c;
cout<<"請輸入一個(gè)數(shù):\n";
cin>>c;
if(a>1&&(b>1||c>1)) // 邏輯運(yùn)算符的優(yōu)先級, 在多條邏輯運(yùn)算符中 要區(qū)分優(yōu)先級 ,像這條就是 邏輯與優(yōu)先
//在括號里面的 優(yōu)先級大,優(yōu)先判斷。 如果想要 邏輯或 優(yōu)先 就應(yīng)該 (a>1&&b>1)||c>1
{
cout<<"a一定大于1,b和c至少有一個(gè)大于1 \n";
}
else
cout<<"a一定小于1,b和c都不大于一或者有一個(gè)大于1也有可能全部大于1";
return 0;
}//說明:輸出的時(shí)候 比如 你輸入 2 0 1 那么 a就大于1 而里面是邏輯與 雖然b 不滿足 但是c滿足了條件 所以就返回真 兩邊都是真了
//所以執(zhí)行if 的語句而不執(zhí)行else 的語句
42:
#include <iostream>
using namespace std;
int main()
{
char a='A'; //如果這樣寫 a='\0' 這是一個(gè)空值 空值是假 所以 下面如果想成立就的換成 if(!a) 邏輯非
if(a) //判斷是否為真,如果是真就執(zhí)行下面的語句
{
a='a';
cout<<a<<endl;
}
else
{
a='A';
cout<<a<<endl;
}
return 0;
}
//在計(jì)算機(jī)數(shù)字 符號 字母被看做是一個(gè)真值 空字符 返回的是假值
43:
#include <iostream>
using namespace std;
int main()
{
int a,b,z;
cout<<"請輸入兩個(gè)數(shù):\n";
cout<<"a: ";
cin>>a;
cout<<"b: ";
cin>>b;
/*
if(a>b)
z=a;
else
z=b; 在程序中,我們經(jīng)常用到上面的表達(dá)式 為了簡化操作 。
我們可以使用下面的語句來操作
*/
z=(a>b)?a:b; //三目運(yùn)算符 :此條語句的意思是 如果 a>b 那么就把 : 左邊的 a 賦值給 z 如果為假 就把 : 右邊的 b 賦值給 z
cout<<"\nz:"<<z<<endl;
return 0;
}
44:
#include <iostream>
using namespace std;
int main()
{
int a,b,z;
cout<<"請輸入兩個(gè)數(shù):\n";
cout<<"a: ";
cin>>a;
cout<<"b: ";
cin>>b;
z=a>b?a:a>b?a:b; //三目運(yùn)算符優(yōu)先級: 優(yōu)先級是從右到左,也就是 先 a>b?a:b 開始 如果 a=1 b=2 那么
// a>b 為假 所以為b的值就是 2 在前面 a>b 也為假 所以 最后 z的值為2
cout<<"\nz:"<<z<<endl;
return 0;
}
45:
int a=1,b=2;
cout<<(a>b?a:b); //這里是配合使用cout 的例子。 三目運(yùn)算符 可以在賦值語句中使用 上面的一小節(jié)已經(jīng)看到了。
//所以我們可以這樣寫 也是可以通過的
return 0;
46:
#include <iostream>
using namespace std;
int main()
{
int a=1;
float b=2.1f; //這里加個(gè) f 是為了防止警報(bào) 因?yàn)?2.1會(huì)被默認(rèn)為 double型,因?yàn)?.1 才兩位 double占用空間
//具體的 以后不再闡述
cout<<(a>b?a:b);//不加括號會(huì)報(bào)錯(cuò)。
return 0;
}
//以上就是 三目運(yùn)算符操作不同類型的數(shù)值進(jìn)行操作
//三目運(yùn)算符將A和B的值都轉(zhuǎn)化為他們之中最高級的類型,也就是浮點(diǎn)數(shù),跟著才對他們進(jìn)行
//求職操作求出浮點(diǎn)數(shù) b的值 也就是表達(dá)式的值
47:
#include <iostream>
using namespace std;
int main()
{
char a;
cin>>a;
cout<<(a=(a>='A'&&a<='Z')?(a+32):a)<<endl; //這里是一個(gè)比較復(fù)雜的三目運(yùn)算符我們知道 ? : 有這個(gè)的都是三目運(yùn)算符
//所以 當(dāng)我們輸入一個(gè)數(shù) a 的時(shí)候 a 不大于 A 也不等于 Z 因?yàn)樗麄儍蓚€(gè)是大寫的 。所以 a+32 在ASCLL瑪里面 加32 是為
//了吧 小寫的 a或者 z 轉(zhuǎn)換為大寫的 如果相同 a+32 就不執(zhí)行 直接 :右邊的a賦值
// (a>='A'&&a<='Z')?(a+32):a) 這個(gè)里面才是三目運(yùn)算符 提取出來是不是要清楚多了 如果還不清楚
// (a>='A')?(a+32):a) 這樣總明白了吧。。。我暈了
return 0;
}
48:
#include <iostream>
using namespace std;
int main()
{
int a;
cout<<"請輸入一個(gè)數(shù):\n";
cin>>a;
if(a>=1)
{
if(a==1)
cout<<"你輸入了一個(gè)等于1的數(shù)\n";
else
{
if(a<=100)
{
if(a==100)
cout<<"你輸入了一個(gè)等于100的數(shù)\n";
else
cout<<"你輸入了一個(gè)大于1或者小于100的數(shù)\n";
}
else
cout<<"你輸入了一個(gè)大于100的數(shù)\n";
}
}
else
cout<<"你輸入了一個(gè)小于1的數(shù)\n";
}
//以上為比較復(fù)雜的循環(huán)嵌套語句,在學(xué)習(xí)過程中 上面的例子不注釋都應(yīng)該看的出來。 其實(shí)很簡單。
//如果你不會(huì) 可以吧一條IF ELSE 直接脫出來慢慢看 ,一般 只要說出要求 不看這例子你都應(yīng)該會(huì)寫了