日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言 基础 1

發(fā)布時間:2024/1/1 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言 基础 1 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

//vim 編輯器快捷鍵?

dd //剪切光標(biāo)當(dāng)前的所在行

ndd //剪切光標(biāo)當(dāng)前的所在行的開始的n行代碼?
p ?//粘貼 光標(biāo)所在行的下一行?

u //撤銷

ctrl + r //反撤銷?


開發(fā)環(huán)境?
?? ?
?? ?vmware虛擬機(jī)提供一個虛擬的環(huán)境,可以讓操作系統(tǒng)運(yùn)行在虛擬機(jī)中
?? ?
1.1 ?C語言簡介

?? ?C語言是世界上最流行、使用最廣泛的高級程序設(shè)計(jì)語言之一,廣泛用于系統(tǒng)與應(yīng)用軟件的開發(fā)。
?? ?
?? ?具備很強(qiáng)的數(shù)據(jù)處理能力、高效、靈活、功能豐富、表達(dá)力強(qiáng)和較高的移植性等特點(diǎn)
?? ?
----------------------------------------------------------------------------------------------------------------------------------------------------

1.2 ?編程語言(*)

?? ?c、java、c++、C#、objective-c
?? ?
?? ?C: ? ?嵌入式(設(shè)備開發(fā))、系統(tǒng)及開發(fā)(速度快)
?? ?
?? ?java: android應(yīng)用開發(fā)(微信、支付寶、美團(tuán))、web開發(fā)(電信收費(fèi)系統(tǒng)、企業(yè)管理系統(tǒng))
?? ?
?? ?C++: ?導(dǎo)航系統(tǒng)、CAD、3DMAX(軟件速度快)
?? ?
?? ?C#: ? windows平臺應(yīng)用軟件(容易學(xué),但需求越來越少)objective-c 蘋果電腦、蘋果手機(jī)上的開發(fā)語言(從2015年開始,需求越來越少)
----------------------------------------------------------------------------------------------------------------------------------------------------

1.3 ?C語言開發(fā)環(huán)境(*)

?? ?vmware: 虛擬機(jī),能用軟件虛擬出硬件(cpu、內(nèi)存、網(wǎng)卡、聲卡、usb....)
?? ?
? ? ? ? ?? ?在此硬件基礎(chǔ)上再安裝一個新操作系統(tǒng)
?? ??? ??? ?
?? ?vmware:上可以安裝windows, linux, unix(等操作系統(tǒng))
?? ?
?? ?Linux是一個操作系統(tǒng)
----------------------------------------------------------------------------------------------------------------------------------------------------

//保護(hù)視力 問題?

?? ?放大字體 ?ctrl shift ?+
?? ?縮小字體 ?ctrl -
?? ?
?? ?ubuntu ?redhat 紅旗 suse debian ?-----> Linux系統(tǒng)
?? ?
?? ?命令 ls ?----> list 列表 ?查看目錄文件(文件夾子)里面的文件列表
?? ?
?? ?//ls ?命令,就是看看某個文件夾子里面有啥玩仍
?? ?
?? ?藍(lán)色: 目錄文件 (文件夾子)
?? ?白色: ?普通的文本文件
?? ?
?? ?清屏:?
?? ??? ??? ?ctrl + l ??
?? ??? ??? ?clear 命令?
?? ?

寫代碼的原則, 縫縫補(bǔ)補(bǔ)又三年?

//框架

#include <stdio.h>

int main()
{
?? ?return 0;
}

初中數(shù)學(xué)題:?

?? ?解:
?? ?

1.4 打印輸出 hello world

?? ?vi ?/ vim 都可以?
?? ?
?? ?vim是vi的升級版本的編輯器

?? ?vim ?命令 ?
?? ?vim 是一個文本編輯器 (類似于office 2007)
?? ?
?? ?1. vim hello.c //用vim編輯器打印一個文件,名字叫做hello.c?
?? ?
?? ??? ??? ??? ?//如果文件不存在,創(chuàng)建并打開,如果文件存在,直接打開?
?? ??? ??? ??? ?
?? ??? ?進(jìn)入的是一般模式 ,此時是不能往里面輸入代碼的
?? ?
?? ?2. 按i,屏幕的左下角出現(xiàn)INSERT,此時的vim編輯器處于 插入模式
?? ?
?? ?3. 保存并退出
?? ?
?? ??? ?按esc鍵,vim編輯器由 插入模式 切換到 一般模式?
?? ??? ?
?? ??? ?按Space(shift+;), 左下角出現(xiàn): ? 編輯器由 一般模式 切換到 尾行模式(命令行模式)
?? ??? ?
?? ??? ?:wq //w保存 q退出?
?? ??? ?:q //退出,沒有保存
?? ??? ?:wq! //強(qiáng)制保存退出
?? ??? ?
?? ?4. gcc 是一個編譯器?
?? ?
?? ??? ?gcc hello.c ?//gcc編譯器,編譯hello.c文件,生成的可執(zhí)行文件是 綠色的a.out?
?? ??? ?
?? ??? ?生成的產(chǎn)物是 a.out?
?? ??? ?
?? ?5. 運(yùn)行程序 ./a.out ? ? ?// ?./ 當(dāng)前目錄下的 a.out 程序
?? ?
?? ?##代碼演示

#####重點(diǎn):

?? ?一個程序有且只能有一個main函數(shù)
?? ?main函數(shù)是一個程序的入口函數(shù)


講解hello.c

#include <stdio.h>
//#預(yù)處理的 include 包含的意思?
//.c 結(jié)尾的是C語言的源程序
//.h head 頭文件
// stdio.h ?standard input output ?標(biāo)準(zhǔn)輸入輸出頭文件
// < > Linux系統(tǒng)自帶的頭文件
// "my.h" 自己的寫的頭文件用 " "

//int 整型 main函數(shù)的返回值類型 是int
//() 里面放的main函數(shù)的參數(shù)列表
int main()
{//main函數(shù)函數(shù)體開始
?? ?printf("hello world!!\n"); // ;代表一句話的結(jié)束
?? ?//功能:在屏幕上打印輸出字符串
?? ?//printf 是一個函數(shù) 格式化輸出函數(shù)?
?? ?// \n是換行符
?? ?//" "表達(dá)的是字符串, " "之間寫什么,屏幕上就原封不動打印輸出什么
?? ?
?? ?return 0; //返回值的意思,返回值是0
} //main函數(shù)體的結(jié)束

//解題的 解 字

#include <stdio.h>

int main()
{
?? ?return 0;
}
?? ??? ??? ??
?? ?####### ?練習(xí) 1 新建一個文件 vim student.c 打印輸出 ?I am a student!!
?? ?gcc student.c?
?? ?
#include <stdio.h>

int main()
{
?? ?printf("I am a Student!!\n");
?? ?return 0;
}
?? ?
?? ?####### ?練習(xí) 2 新建一個文件 vim star.c 打印輸出下面的圖案
?? ??? ? ?*
?? ??? ? ***
?? ??? ?*****

#include <stdio.h>

int main()
{
?? ?//方法一
?? ?printf(" ?*\n ***\n*****\n");
?? ?//方法二
?? ?// 只能注釋一行
?? ?printf(" ?*\n");
?? ?printf(" ***\n");
?? ?printf("*****\n");
?? ?
?? ?return 0;
}
?? ?
1.5 注釋(通常用于兩種情況)(**)

?? ?(1)代碼的解釋部分

#include <stdio.h>

int main()
{
?? ?//方法一
?? ?printf(" ?*\n ***\n*****\n");
?? ?//方法二
?? ?// 只能注釋一行
?? ?printf(" ?*\n");
?? ?printf(" ***\n");
?? ?printf("*****\n");
?? ?
?? ?return 0;
}
?? ?(2)代碼現(xiàn)在不需要的部分?? ?

#include <stdio.h>

int main()
{
?? ?//方法一
?? ?printf(" ?*\n ***\n*****\n");
?? ?//方法二
?? ?// 只能注釋一行
?? ?
?? ?// /* */注釋多行代碼,可以將 /* 和 */之間的代碼都注釋掉
?? ?/*
?? ?printf(" ?*\n");
?? ?printf(" ***\n");
?? ?printf("*****\n");
?? ?*/
?? ?return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------------------

1.6 數(shù)據(jù)的存儲與運(yùn)算
?? ?
?? ?1.6.1 變量定義及輸出
?? ?
?? ??? ?學(xué)習(xí)C語言三步走?
?? ??? ?
?? ??? ?1. 創(chuàng)建一個杯子?
?? ??? ?2. 往杯子里面裝東西?
?? ??? ?3. 將杯子里面的東西打印輸出
?? ?
#include <stdio.h>

int main()
{
?? ?//定義一個整型變量a,int 整型 a 變量的名字
?? ?int a;
?? ?//給整型變量a賦值
?? ?a = 10; // = 代表的是賦值,把10裝到變量a中
?? ?//將變量a中的值打印輸出
?? ?printf("a is \n");
?? ?printf("a is %d\n",a);//%d是占位符,%d位置顯示的內(nèi)容會由變量a的值替換,其他原樣輸出
?? ?// " "之間的內(nèi)容,原封不動的打印輸出,只不過%d的位置有a的值替換
?? ?printf("a -------> %d\n",a);
?? ?return 0;
}

?? ?那么如果我們要保存小數(shù)呢???
?? ?
#include <stdio.h>

int main()
{
?? ?int a;
?? ?float b;//float類型是用來保存小數(shù)的
?? ?//給整型變量a賦值
?? ?a = 10; // = 代表的是賦值,把10裝到變量a中
?? ?//將變量a中的值打印輸出
?? ?printf("a is \n");
?? ?printf("a is %d\n",a);//%d是占位符,%d位置顯示的內(nèi)容會由變量a的值替換
?? ?// " "之間的內(nèi)容,原封不動的打印輸出,只不過%d的位置有a的值替換
?? ?printf("a -------> %d\n",a);
?? ?
?? ?b = 2.2;
?? ?printf("b的值是%f\n",b);// 打印單精度浮點(diǎn)類型用%f
?? ?printf("b的值是%.2f\n",b);// 打印單精度浮點(diǎn)類型用%f ?.2保存小數(shù)點(diǎn)后兩位
?? ?return 0;
}

?? ?####### ?練習(xí) 3?

?? ?定義一個整型變量x, 定義一個浮點(diǎn)型變量y,
??? ?將-1賦值給變量x,將3.14賦值給變量y,打印
??? ?再將1 賦值給變量x,將-3.14賦值給變量y,再打印?? ?
?? ?
#include <stdio.h>

int main()
{
?? ?int x;
?? ?float y;
?? ?x = -1;
?? ?y = 3.14;
//?? ?printf("x is %d\n",x);
//?? ?printf("y is %f\n",y);
?? ?printf("x is %d\ny is %f\n",x,y);
?? ?x = 1;
?? ?y = -3.14;
?? ?printf("x is %d\ny is %f\n",x,y);
//?? ?printf("x is %d\n",x);
//?? ?printf("y is %f\n",y);
?? ?return 0;
}


///未初始化的局部變量,默認(rèn)的初始值是隨機(jī)數(shù)(垃圾值)

#include <stdio.h>

int main()
{
?? ?int a; //定義一個變量,沒有初始值,默認(rèn)是隨機(jī)數(shù)(垃圾值)
?? ?printf("a is %d\n",a);
?? ?a = 101;
?? ?printf("a is %d\n",a);
?? ?return 0;
}

//整容手法
int a; //定義一個整型變量a?
a = 10;//賦值10


//天生麗質(zhì)
int a = 10;//將整型變量a初始化為10


?? ?
?? ?1.6.2 如何手動輸入一個數(shù)保存到變量中 scanf

#include <stdio.h>

int main()
{
?? ?int a; //定義一個變量,沒有初始值,默認(rèn)是隨機(jī)數(shù)(垃圾值)
?? ?//思考:讓變量a里面的值來自于鍵盤輸入
?? ?printf("請您輸入一個整數(shù):\n");
?? ?scanf("%d", &a);//&取地址 &a得到的是變量a在內(nèi)存當(dāng)中存儲的首地址
?? ?//輸入的數(shù)保存到整型變量a中
?? ?printf("a is %d\n",a);
?? ?return 0;
}

##注:定義變量時需先考慮變量用來存儲什么類型的數(shù)據(jù),即存儲什么類型的數(shù)據(jù),就定義什么類型的變量。
?? ?
?? ?1G ?--- 1024M
?? ?1M ?--- 1024kb
?? ?1kb --- 1024byte 字節(jié)
?? ?
?? ?數(shù)據(jù)類型?? ??? ??? ?格式化輸入輸出類型和格式 ? ? ? ? ? ? ? ?占內(nèi)存空間的大小
?? ?
?? ?//存整數(shù)
?? ?char?? ?字符型?? ??? ??? ?%c?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?1字節(jié)
?? ?short?? ?短整型數(shù)據(jù)?? ??? ?%hd?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?2字節(jié)
?? ?int?? ? ? ?整型數(shù)據(jù)?? ??? ?%d?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?4字節(jié)
?? ?long?? ?長整型數(shù)據(jù)?? ??? ?%ld?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?4字節(jié)
?? ?
?? ?
?? ?//存小數(shù)
?? ?float?? ?單精度浮點(diǎn)型(保存小數(shù))%f?? ??? ??? ??? ??? ??? ??? ??? ?4字節(jié)
?? ?double?? ?雙精度浮點(diǎn)型?? ?%lf?? ??? ??? ??? ??? ??? ??? ??? ??? ? ? ?8字節(jié)

---------------------------------------------------------------------------------------------------------------------------------------------------?? ??? ?
1.8 ?數(shù)制

??? ?十進(jìn)制: ? ?? ??? ??? ?逢十進(jìn)一 ? ? ? ? ? ? ? ?0 ? ?1 ? ?2 ? ?3 ? ? 4 ? ? ?
??? ?二進(jìn)制: ? ?? ??? ??? ?逢二進(jìn)一 ? ? ? ? ? ? ? ?000 ?001 ?010 ?011 ? ?100
??? ?八進(jìn)制(以0開頭): ? 逢八進(jìn)一 ? ? ? ? ? ? ? ?016 ? ?007 ?010 ?... ? ?017 ? ?020
??? ?十六進(jìn)制(以0x開頭):逢十六進(jìn)一 ? ? ? ? ? ? ?0x7a ? ?09 ?0a ?0b ?0c ?0d ?0e 0f ?10
?? ??
?? ?0 1 2 3 4 5 6 7 8 9 A ?B ?C ?D ?E ?F
?? ?
??? ?(***)二轉(zhuǎn)八: ? ? ?從右至左, 二進(jìn)制的每三位算八進(jìn)制的一位
??? ?(***)二轉(zhuǎn)十六: ? ?從右至左, ?二進(jìn)制的每四位算十六進(jìn)制的一位。


十進(jìn)制 ---> 二進(jìn)制?
十進(jìn)制 ---> 八進(jìn)制?
十進(jìn)制 ---> 十六進(jìn)制?

#方法: 先%再/,/到0結(jié)束
19 ?二進(jìn)制 10011?
?? ?八進(jìn)制 023 ?010 011
?? ?十六進(jìn)制 0x13 0001 0011?
?? ?
29 //十進(jìn)制?
?? ?二進(jìn)制 11101?
?? ?八進(jìn)制 035
?? ?十六進(jìn)制 0x1D

二進(jìn)制 ---> 十進(jìn)制
八進(jìn)制 ---> 十進(jìn)制?
十六進(jìn)制 ---> 十進(jìn)制 ?? ?
#方法: 先標(biāo)號,再求和?? ?

43210
11101

標(biāo)的號對應(yīng)的是2的幾次冪
1*2^0 + 0*2^1 + 1*2^2 + 1*2^3 + 1*2^4
1 ? ? +?? ? ?0 ? + ? 4 ?+ ? 8 ? + ? 16 ?= ?29
?10
035?
5*8^0 + 3*8^1 = 5 + 24 == 29?
? 10
0x1D?
13*16^0 + 1*16^1 = 13 + 16 = 29?
3210 ? 8 ? ? ? 4 ? ? ? 2 ? ? ? 1
8421
1111 1*2^3 + 1*2^2 + 1*2^1 + 1*2^0
8421?
1011 --->B
1100 --->C
0111 --->7
1010 --->A
0011 --->3

29
二進(jìn)制 ----> 十六進(jìn)制?
11101?
四個分一堆,最后不夠的由0填充
8421 8421
0001 1101
1?? ? D

二進(jìn)制 ----> 八進(jìn)制?
11101?
三個分一堆,最后不夠的由0填充
421 421
011 101
03 ? 5

8421
1010

A ---> 1010
9 ---> 1001
D ---> 1101
E ---> 1110
6 ---> 0110
3 ---> 0011

十六 --> 二進(jìn)制 ? 一個十六進(jìn)制位 對應(yīng) 四個二進(jìn)制位?
0xA3
A ? ? 3
1010 0011

八 ---> 二進(jìn)制 ?一個八進(jìn)制位 對應(yīng) ?三個二進(jìn)制位

056
5 ? 6
101 110


0xB3C ? ? ? ? ? 二進(jìn)制 ?八進(jìn)制 ?十進(jìn)制?
49(十進(jìn)制) ? ? ?二進(jìn)制 ?八進(jìn)制 ?十六進(jìn)制 ? ? ??


快速 二進(jìn)制 ---> 十六進(jìn)制?

?? ? 二進(jìn)制 ---> 八進(jìn)制?
?? ??
?? ? 十六進(jìn)制 ---> 二進(jìn)制
?? ??
?? ? 八進(jìn)制 ---> 二進(jìn)制?

?
######// ?練習(xí)4:求0xff 的10進(jìn)制值,2進(jìn)制值, ? 8 進(jìn)制值
?? ??? ??? ? ??? ??? ??? ??? ? ?
######// ?練習(xí)5 : 求128 ?的2進(jìn)制, ? 8 進(jìn)制, ? 16 進(jìn)制

?? ?
----------------------------------------------------------------------------------------------------------------------------------------------------
1.9 運(yùn)算符

?? ?1.9.1 算數(shù)運(yùn)算符

?? ?(1) + ?加法運(yùn)算符?? ?int a = 3 + 5; ?//a = 8;
?? ?(2) - ?減法運(yùn)算符?? ?int b = 3 - 5; ?//b = -2;
?? ?(3) * ?乘法運(yùn)算符?? ?int c = 3 * 5; ?//c = 15;
?? ?(4) / ?除法運(yùn)算符?? ?int d = 5 / 3; ?//d = 1; ?
?? ?(5) % ?模運(yùn)算符(求余運(yùn)算)?? ?int e = 5 % 3; ?//e = 2; ?
?? ??? ??? ?
?? ?####除法的考點(diǎn):?
?? ?
?? ??? ?5 / 2 === 2 ? 5里面有幾個2 整數(shù) / 整數(shù) == 整數(shù)?
?? ??? ?9 / 5 ==== 1?
?? ??? ?5.0 / 2 ?=== 2.5
?? ??? ?
?? ?####模除運(yùn)算的考點(diǎn)?? ?
?? ?
?? ??? ?(1) ?4 % 5 == 4 ? ?較小的數(shù) % 較大的數(shù) == 較小的數(shù)本身 ? 1 % 9 == 1
?? ??? ?(2) ?%運(yùn)算要求 % 運(yùn)算符左右兩邊 必須是整數(shù)
?? ??? ??? ?2.2 % 2 ?錯誤的語法
?? ?
?? ?int a = 3 + 5 * 2;?? ?// a = 13
?? ?int a = (3 + 5) * 2;// a = 16
?? ?
?? ?int a = 3;
?? ?int b = 5;
?? ?int c = a + b;
?? ?
?? ?###### ?練習(xí)6:輸入三個小數(shù),求和,求平均值分別打印
?? ?float ?a;
?? ?scanf("%f",&a);
?? ?
#include <stdio.h>
int main()
{
?? ?//定義三個浮點(diǎn)類型變量,存儲小數(shù)
?? ?float a,b,c;
?? ?float sum,avg;//sum定義為float,是因?yàn)閍 b c 的類型是float,和是float類型
?? ?printf("Please input three number:\n");
?? ?scanf("%f%f%f",&a,&b,&c);//輸入三個數(shù)
?? ?sum = a + b + c;
?? ?avg = sum / 3;
?? ?printf("sum is %.2f\navg is %.2f\n",sum,avg);
?? ?return 0;
}
?? ?
?? ?1.9.2 關(guān)系運(yùn)算符

?? ?(1) <?? ?小于
?? ?(2) <=?? ?小于等于
?? ?(3) >?? ?大于
?? ?(4) >=?? ?大于等于?? ?//(1)(2)(3)(4)優(yōu)先級相同(高)
?? ?(5) ==?? ?等于
?? ?(6) !=?? ?不等于?? ?//(5)(6)優(yōu)先級相同(低)

?? ?1.9.3 邏輯運(yùn)算符

?? ??? ?(1) ? && 邏輯與 ? ? ?// (a>b)&&(x>y)
?? ??? ?(2) ? || ? 邏輯或 ? ?// (a>b)||(x>y)
?? ??? ?(3) ? ! ? ?邏輯非 ? ?// ?! (a > b) ###舉例:if(!a)
?? ?
?? ?
----------------------------------------------------------------------------------------------------------------------------------------------------?? ?
1.6 ?選擇結(jié)構(gòu)程序設(shè)計(jì)

?? ?1.6.1 ?if 條件判斷(進(jìn)一步理解上面關(guān)系運(yùn)算符和邏輯運(yùn)算符)
?? ?
#include <stdio.h>

int main()
{
?? ?int age;
?? ?printf("Please input age:\n");
?? ?scanf("%d",&age);
?? ?if(age >= 18)//注意if()后面,不要加;號 if條件為真,執(zhí)行if下面{}里面的語句
?? ?{
?? ??? ?printf("孩子,可以上網(wǎng)吧了!!\n");
?? ?}
?? ?else//否則 當(dāng)if條件為假的時候,執(zhí)行else 下面{}里面的語句
?? ?{
?? ??? ?printf("孩子,回家寫作業(yè)去吧!!\n");
?? ?}
?? ?printf("11111111\n");
?? ?return 0;
}?? ?

(1)if-else
?? ?
if(條件)//注意if()后面,不要加;號 if條件為真,執(zhí)行if下面{}里面的語句
{
?? ??? ?
}
else//否則 當(dāng)if條件為假的時候,執(zhí)行else 下面{}里面的語句
{
?? ??? ?
}

####### 練習(xí)6:

?? ?完成如下功能:
?? ?1 顯示: "please input a number:"
?? ?2 用戶輸入
?? ?3 判斷用戶輸入的數(shù)是不是 大于90,是打印Yes,否打印No
?? ?
#include <stdio.h>

int main()
{
?? ?int num;
?? ?printf("Please input num:\n");
?? ?scanf("%d",&num);
?? ?if(num > 90)
?? ?{
?? ??? ?printf("Yes!!\n");
?? ?}
?? ?else
?? ?{
?? ??? ?printf("No!!\n");
?? ?}
?? ?return 0;
}
?? ?
/講解當(dāng)if條件句{ }里只有一行語句時{ }可以省略不寫

##練習(xí)7:輸入一個數(shù),判斷是否等于0,是打印Yes,不是打印No

方法一 用 == 做?
#include <stdio.h>

int main()
{
?? ?int num;
?? ?printf("Please input num:\n");
?? ?scanf("%d",&num);
?? ?if(num == 0)
?? ?{
?? ??? ?printf("Yes!!\n");
?? ?}
?? ?else
?? ?{
?? ??? ?printf("No!!\n");
?? ?}
?? ?return 0;
}


方法二 用 != 做?
#include <stdio.h>

int main()
{
?? ?int num;
?? ?printf("Please input num:\n");
?? ?scanf("%d",&num);
?? ?if(num != 0)
?? ?{
?? ??? ?printf("No!!\n");
?? ?}
?? ?else// num == 0
?? ?{
?? ??? ?printf("Yes!!\n");
?? ?}
?? ?return 0;
}

####### 練習(xí)8:
//新的知識點(diǎn)?
if嵌套?
if()
{
?? ?if()
?? ?{
?? ??? ?
?? ?}
}

1 從鍵盤輸入一個數(shù), 判斷這個數(shù)是不是偶數(shù),如果是偶數(shù),打印此數(shù)
? 提示:a % 2
??
2 繼續(xù),如果是偶數(shù),再判斷這個數(shù)的一半是不是偶數(shù)

#include <stdio.h>

int main()
{
?? ?int num;
?? ?printf("Please input num:\n");
?? ?scanf("%d",&num);
?? ?if(num % 2 == 0)
?? ?{
?? ??? ?printf("%d是偶數(shù)!!\n",num);
?? ??? ?if(num/2%2 == 0)//進(jìn)行判斷一半是不是偶數(shù)的前提條件是,num已經(jīng)是偶數(shù)了
?? ??? ?{
?? ??? ??? ?printf("一半%d是偶數(shù)!!\n",num/2);
?? ??? ?}
?? ?}
?? ?return 0;
}

###### 練習(xí)9:

?? ?判斷一個數(shù)是否滿足條件:
?? ?
?? ??? ?a) 是7的倍數(shù)
?? ??? ?b) 不是3的倍數(shù)
?? ??? ?如果滿足,輸出該數(shù)

#include <stdio.h>

int main()
{
?? ?int num;
?? ?printf("Please input num:\n");
?? ?scanf("%d",&num);
?? ?if(num % 7 == 0)
?? ?{
?? ??? ?if(num % 3 != 0)
?? ??? ?{
?? ??? ??? ?printf("%d OK!!\n",num);
?? ??? ?}
?? ?}
?? ?return 0;
}

?? ??? ?邏輯與?
?? ??? ?
?? ??? ?&& ? 邏輯與, 用在多個條件之間,用來判斷多個條件是不是都滿足 ----> if嵌套?
?? ??? ?
?? ??? ?同真為真,一假即假
?? ??? ?
?? ??? ?if(條件1 && 條件2 && 條件3)
?? ??? ?{
?? ??? ??? ?//執(zhí)行語句
?? ??? ?}
#include <stdio.h>

int main()
{
?? ?int height, eye, money;
?? ?printf("Please input height eye money:\n");
?? ?scanf("%d%d%d",&height,&eye,&money);
?? ?//今年23,要求高
?? ?// && 同真為真,一假即假
?? ?if(height > 180 && eye == 2 && money > 20000)//所有的條件都為真,才執(zhí)行if{}里面的語句
?? ?{
?? ??? ?printf("趕緊安排,見面!!\n");
?? ?}
?? ?else
?? ?{
?? ??? ?printf("下一位!!\n");
?? ?}
?? ?return 0;
}
?? ??? ?
?? ??? ?邏輯或
?? ??? ?|| ? (用來判斷多個條件是不是有一個滿足)
?? ??? ?輸入兩個數(shù),判斷是不是有一個是0 ?//一真即真,同假為假

#include <stdio.h>

int main()
{
?? ?int height, eye, money;
?? ?printf("Please input height eye money:\n");
?? ?scanf("%d%d%d",&height,&eye,&money);
?? ?//今年37,要求....
?? ?// || 一真即真 同假為假
?? ?if(height > 180 || eye == 2 || money > 20000)//有任意一個條件為真,都可以執(zhí)行if{}里面的語句
?? ?{
?? ??? ?printf("趕緊安排,見面!!\n");
?? ?}
?? ?else
?? ?{
?? ??? ?printf("下一位!!\n");
?? ?}
?? ?return 0;
}
?? ?
?? ??? ?! 邏輯非 ?如果原來為真,取非后變?yōu)榧?#xff0c;如果原來為假,取非后變?yōu)檎?br /> ?? ??? ?
#include <stdio.h>

int main()
{
?? ?int a = 10;
?? ?printf("a is %d\n",a);// a is 10
?? ?a = !a;//10 ---> 0 ?真 ---> 假
?? ?printf("a is %d\n",a);// a is 0
?? ?a = !a;//0 ----> 1 ?假 ---> 真
?? ?printf("a is %d\n",a);//a is 1
?? ?a = !a;//1 ----> 0 ?真 ---> 假
?? ?printf("a is %d\n",a);//a is 0
?? ?a = !a;//0 ----> 1 ?假 ---> 真
?? ?printf("a is %d\n",a);//a is 1

?? ?return 0;
}?? ??? ?
?? ??? ?
?? ?##筆試問題?
?? ?if(!a) == if(a == 0)
?? ?if(a) == if(a != 0)?? ?
?? ?
?? ?(1)非零即為真
?? ?(2) 真的值是1,假的值是0
?? ?(3) 邏輯非 真變?yōu)榧?#xff0c;假變?yōu)檎?br /> ?? ?
?? ?if(!a) == if(a == 0)
?? ??? ?
?? ?//假設(shè)輸入的是100,100代表真?
?? ?if(!100) == if(100 == 0)
?? ?if(0) ?== if(0)
?? ?//假設(shè)輸入的是0,0代表假?
?? ?if(!0) == if(0 == 0)
?? ?if(1) == if(1)
?? ?
?? ?if(a) == if(a != 0)?? ?
?? ??? ?
?? ?//假設(shè)輸入的是100,100代表真?
?? ?if(100) == if(100 != 0)
?? ?if(1) ?== if(1)
?? ?//假設(shè)輸入的是0,0代表假?
?? ?if(0) == if(0 != 0)
?? ?if(0) == if(0)
?? ?

?? ?if(!a) 等價于 什么 ? B ?
?? ?{
?? ??? ?printf("Yes!!\n");
?? ?}
?? ?A if(a != 0)
?? ??? ?
?? ?B if(a == 0)
?? ??? ?
?? ?C if(a == 10)
?? ??? ?
?? ??? ?
?? ??? ?
?? ??? ?
?? ??? ? ####考點(diǎn)?
?? ??? ??? ??? ?
?? ??? ??? ??? ?(1) 在C語言中非零即為真(只要不是0的數(shù),都是真)
?? ??? ??? ??? ?(2) 在C語言中真的值,通常用1來表達(dá),假的值用0來表達(dá)
?? ??? ??
#include <stdio.h>

int main()
{
?? ?printf("3 > 2 is %d\n",3>2);
?? ?printf("2 > 3 is %d\n",2>3);
?? ?return 0;
}
?? ??? ??
?? ??? ? if(1.22)//條件為真?
?? ??? ? if(-10)//條件為真?
?? ??? ? if(0) //條件為假 ?0假
?? ?
###### 練習(xí)10:輸入一個數(shù),判斷是否在10-100之間, 如果是打印Yes,不是打印No?? ?

#include <stdio.h>

int main()
{
?? ?int num;
?? ?printf("3 > 2 is %d\n",3>2); // 真 是 ?1
?? ?printf("2 > 3 is %d\n",2>3); // 假 是 ?0
?? ?scanf("%d",&num);
?? ?if(num >= 10 && num <= 100) //不能寫成 10 <= num <= 100,因?yàn)檩斎肴魏螖?shù),10 <= num結(jié)果只有兩種可能1或0,都會<=100
?? ?{
?? ??? ?printf("Yes!!\n");
?? ?}
?? ?else
?? ?{
?? ??? ?printf("No!!\n");
?? ?}
?? ?return 0;
}?? ??? ?

///
關(guān)于if();加分號的問題

#include <stdio.h>

int main()
{
?? ?int a = 0;
?? ?if(a);//加;相當(dāng)于執(zhí)行空語句
?? ?{
?? ??? ?printf("hello world!!\n");
?? ?}
?? ?
?? ?//加上if();加上;號后,代碼相當(dāng)于
?? ?//if(a)
?? ?//{
?? ?// ? ;?? ?
?? ?//}
?? ?//{
?? ?//?? ?printf("hello world!!\n");?? ?
?? ?//}
?? ?
?? ?//編譯會不會報錯?? 不會報錯?
?? ?//編譯不報錯,hello world會打印嗎?? 會, 加完;號,printf不屬于if條件句里面
?? ?return 0;
}

#include <stdio.h>

int main()
{
?? ?int a = 0;
?? ?if(a);//加;相當(dāng)于執(zhí)行空語句
?? ?{
?? ??? ?printf("hello world!!\n");
?? ?}
?? ?else
?? ?{
?? ??? ?printf("I miss you!!\n");
?? ?}

?? ?//編譯會不會報錯?? ?編譯會報錯,因?yàn)橛衑lse ,if和else會被 printf("hello world!!\n");分開
?? ?return 0;
}

///關(guān)于if()條件句{} 是否可以省略不寫的問題
//當(dāng)if條件句成立,執(zhí)行一行執(zhí)行語句是,可以省略不寫

#include <stdio.h>

int main()
{
?? ?int a = 3, b = 4, c = 5;
?? ?//考點(diǎn):if條件句的{}省略不寫
?? ?//如果{}省略不寫,相當(dāng)于只有第一行代碼a = b,屬于if條件判斷
?? ?if(a > b)
?? ??? ?a = b;
?? ??? ?b = c;
?? ??? ?c = a;
?? ??? ?
?? ?//相當(dāng)于?
?? ?//if(a > b)
?? ?//{
?? ?//?? ?a = b;
?? ?//}
?? ?//b = c;
?? ?//c = a;
?? ?
?? ?printf("%d %d %d\n",a,b,c);// 3 5 3
?? ?return 0;
}

###作業(yè)
?? ??? ?
1. 某一時間的下一秒(筆試編程題) ? 20 ? ? ?輸入三個數(shù),代表小時 分鐘 秒
?? ??? ??? ??? ??? ??? ??? ??? ? ?59
?? ??? ??? ??? ??? ??? ??? ??? ? ?59
?? ??? ??? ??? ??? ??? ??? ??? ? ?
?? ??? ??? ??? ??? ??? ?下一秒 ? ?21:00:00
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ??? ?
?? ?23 23 45
?? ?23 23 46
?? ?
?? ?23 59 59
?? ?00 00 00


?? ?要求,如果用戶輸入了錯誤的時間,退出 ?24點(diǎn)退出, ?61秒退出
?? ?
#include <stdio.h>

int main()
{
?? ?int hour,min,sec;
?? ?scanf("%d:%d:%d",&hour,&min,&sec);
?? ?//scanf格式化輸入函數(shù)
?? ?//printf格式化輸出函數(shù)
?? ?//中間做一個下一秒的的處理
?? ?if(hour >= 24 || min >= 60 || sec >= 60 || hour < 0 || min < 0 || sec < 0)//數(shù)據(jù)有誤的時候
?? ?{
?? ??? ?printf("您輸入的數(shù)據(jù)不正確!!!!\n");
?? ?}
?? ?else//輸入的數(shù)據(jù)正確
?? ?{
?? ??? ?sec = sec + 1;//秒數(shù)必然+1
?? ??? ?if(sec == 60)
?? ??? ?{
?? ??? ??? ?sec = 0;//將自身歸0
?? ??? ??? ?min = min + 1;//min進(jìn)位
?? ??? ??? ?if(min == 60)
?? ??? ??? ?{
?? ??? ??? ??? ?min = 0;//自身歸0
?? ??? ??? ??? ?hour = hour + 1;//小時進(jìn)位
?? ??? ??? ??? ?if(hour == 24)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?hour = 0;//自身歸0
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ?}
?? ??? ?printf("%02d:%02d:%02d\n",hour,min,sec);//2寬度為2,不足寬度的地方由0填充
?? ?}
?? ?
?? ?return 0;
}

#include <stdio.h>

int main()
{
?? ?int hour,min,sec;
?? ?scanf("%d:%d:%d",&hour,&min,&sec);
?? ?//scanf格式化輸入函數(shù)
?? ?//printf格式化輸出函數(shù)
?? ?//中間做一個下一秒的的處理
?? ?if(hour >= 24 || min >= 60 || sec >= 60 || hour < 0 || min < 0 || sec < 0)//數(shù)據(jù)有誤的時候
?? ?{
?? ??? ?printf("您輸入的數(shù)據(jù)不正確!!!!\n");
?? ?}
?? ?else//輸入的數(shù)據(jù)正確
?? ?{
?? ??? ?sec = sec + 1;//秒數(shù)必然+1
?? ??? ?min = min + sec / 60;//進(jìn)位
?? ??? ?hour = hour + min / 60;//進(jìn)位

?? ??? ?sec = sec % 60;//如果sec是60,歸0
?? ??? ?min = min % 60;//如果min是60,歸0
?? ??? ?hour = hour % 24;//如果hour是24,歸0


?? ??? ?printf("%02d:%02d:%02d\n",hour,min,sec);//2寬度為2,不足寬度的地方由0填充
?? ?}
?? ?
?? ?return 0;
}


2. 判斷用戶輸入的年是否為閏年?

?? ?四年一潤
?? ?百年不潤
?? ?四百年又潤 2000 yes 1900 no
?? ?
?? ?//閏年的條件 條件1: 整除4但不整除100 就是閏年 2004 ?
?? ?//?? ??? ??? ? 條件2: 整除400 世紀(jì)閏年?
?? ?//滿足條件1和條件2任意一個條件,都證明是閏年
?? ?//程序驗(yàn)證
?? ?// 2004 閏年
?? ?// 2000 閏年
?? ?// 1900 平年
?? ?// 1991 平年
?? ?
?? ?
#include <stdio.h>

int main()
{
?? ?int year;
?? ?printf("Please input year:\n");
?? ?scanf("%d",&year);
?? ?if((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
?? ?{
?? ??? ?printf("Yes!!\n");
?? ?}
?? ?else
?? ?{
?? ??? ?printf("No!!\n");
?? ?}
?? ?return 0;
}?? ?

總結(jié)

以上是生活随笔為你收集整理的C语言 基础 1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。