一、c語言程式的基本結構
#include 「stdio.h」
void main()
二、變數的定義
1.整型:int a , b, s=0; (可以在定義的同時為變數進行賦值)
長整型:long
無符號整型(非負整數):unsigned
2.單精度實型:float x, y, z=1.0 ;
3.雙精度實型:double l,m;
4. 字元型:char c1=』a』, c2=』b』;
三、變數的賦值
1.直接賦值:a=10 ; //用賦值號「=」將右側的值賦給左側的變數
2.賦表示式的值:a=3+7;
3. 賦另外乙個變數的值:a=s; //把s的值賦給a
變數的輸入:
輸入乙個變數:scanf(「%d」, &a);
輸入多個變數:scanf(「%d%d%d」, &a, &b, &c);
int--%d float--%f char--%c double--%lf 字串--%s
變數的輸出:
輸出乙個提示語句:printf(「******」);
輸出乙個回車:printf(「\n」);
輸出乙個變數:printf(「*** is %d」, a);
輸出多個變數:printf(「***x%d, ***x%d」,a,b);
練習:1. 輸入圓的半徑,求圓的周長。
四、常用流程控制語句
分支語句:根據條件執行相應的語句
條件的形式:a大於0 寫成 a>0
a小於0 寫成 a<0
a等於0 寫成 a==0 (注意,用兩個=)
a大於等於0並且小於等於10 寫成 a>=0 && a<=10
a小於0或者a大於10 寫成 a<0 || a>10
(一)單分支if語句(如果滿足某個條件,就做某件事情,不滿足就向下執行。)
if(條件)
(二)雙分支if語句(如果滿足某個條件,就做某件事情,否則就做另外一件事情。)
if(條件)
else
(三)多分支if語句(滿足哪乙個條件,就做相應的語句。)
if(條件1)
else if(條件2)
else if(條件3)
else if(條件4)
else
(四)if的巢狀(根據具體情況對if~else~語句進行靈活的運用)
其格式如下:
if(條件1)
if(條件2)
執行語句a; }
else
執行語句b; }
else
if(條件3)
執行語句c; }
else
執行語句d; }
(五) 多分支語句 switch(根據switch後的值,執行相對應的case語句,此語句了解即可,因為它的作用完全可以用多分支if來實現)
switch (表示式)
case 值2:
case 值3:
……case 值n:
default:
}練習:
2. 某自助餐廳規定,浪費食物在20克以下的,每克罰款2元;如浪費超過20克,則超過的部分每克加罰1元。程式設計求罰款金額。
3. 從鍵盤輸入正方形的邊長,如果邊長大於零則求出該正方形的周長和面積,否則提示輸入錯誤。
4. 輸入3個數x,y,z,求其中的最小值。
5. 輸入3個數x,y,z,將其中最大值放在x中,最小值放在z中,中間值放在y中,然後輸出x,y,z。
迴圈語句:在條件成立時重複執行一組語句
(五) 使用break可以強制退出迴圈,其用法必須配合if來使用:
例如:for(i=0;i<100;i++)
…}練習:1. 程式設計求出公式s=1-1/3 + 1/5- 1/7+…1/101 的值並輸出
2. 程式設計輸出如下圖形:
** *
* * *
* * * *
* * * * *
3. 程式設計列印九九乘法表
4. 程式設計列印出2023年1月份的日曆
注意:1月份的總天數是31天,其中1日是星期五。
日曆如下:
一二三四五六日
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
void main()
}}5. 在第4題的程式上進行修改,如果輸入任意乙個月的總天數及該月第一天的星期(1代表星期日,2代表星期一……以此類推),能否列印出該月日曆
6. 計算x的n次方(x為雙精度,n為非負整數)
void main()
printf("jieguo is %.2lf",s);
}四、陣列
一維陣列
1. 一維陣列:名字相同且帶有下標的一組變數
2. 定義形式:型別名陣列名[長度]
例如:int a[10] //a陣列中包含有10個整型變數,名字分別是a[0]、a[1]、a[2]……a[9]
這裡每乙個a[n]都是乙個普通的整數變數
3. 一維陣列的初始化:定義陣列的時候就給每個陣列元素賦值
int a[5]=;
4. 對a陣列中的每乙個元素依次進行操作(訪問)的方法如下:
int i;
for(i=0;i<9;i++)
例如:● 通過鍵盤輸入給a陣列中的每個元素賦值
● 將a陣列中每乙個元素都擴大2倍
● 統計a陣列中奇數的個數
● 求a陣列中的最大值
● 把a陣列的元素進行逆置
● 把a陣列中的元素進行右移
練習:1. 從一維陣列中查詢x,並返回x所在的位置,否則提示沒有找到。
2. 求fibonacci數列的第n項。
3. 求任意乙個數的1.2~1.6倍存入陣列。
4. 陣列中存入10個數並進行迴圈左移
二維陣列
1. 二維陣列:名稱相同且帶有2個下標的一堆變數,邏輯上可看成n行m列的二維**。
2. 定義形式:型別名陣列名[行長度][列長度]
例如:int a[3][4]
這裡a陣列中包含有3*4=12個陣列元素,這12個元素的名字分別是:
a[0][0] a[0][1] a[0][2] a[0][3]
a[1][0] a[1][1] a[1][2] a[1][3]
a[2][0] a[2][1] a[2][2] a[2][3]
3. 二維陣列的初始化:
int a[3][4]=,,};
4. 對a中陣列元素的訪問,需要定義2個下標變數i和j,a[i][j]代表第i行第j列的元素。
例如:● 為二維陣列中的每乙個元素賦值
● 將二維陣列轉置輸出(行變列,列變行)
● 求每行的平均值
● 求每列的總和
● 求列上的最小值
5. 行列相等的二維陣列叫做矩陣,對矩陣的操作有:
● 求主對角線的和
● 求次對角線的平均值
● 輸出該矩陣的上半三角元素
練習:1. 對乙個3*4的陣列,求列上的平均值
2. 求乙個3*3矩陣的主、次對角線的平均值
3. 利用陣列輸出以下圖形
字串1. 字串:字元型的一維陣列,可以儲存一串字元,並以』\0』做為結束標誌。
2.字串的輸入與輸出
char str1[20],str2[20],str3[20];
gets(str1); //字串的輸入
scanf(「%s」,str2); //字串的輸入
puts(str1); //字串的輸出;
printf(「%s」,str2); //字串的輸出;
3.對字串的訪問:如有char s1[20]; int n;
字串的長度:n=strlen(s1);
第乙個字元:s1[0];
最後乙個字元:s1[n-1]
『\0』的位置:s1[n]
4. 字串常用函式:
注意:用以下函式需要用#include 「string.h」引入標頭檔案。
連線字串:strcat(str1,str2)
比較兩個字串的大小:strcmp(str1,str2);
求字串的長度:strlen(str1);
在字串中查詢乙個字元,並返回其位置:char c=』a」; strchr(str1, c);
複製字串:strcpy(str3,str1);
C語言程式設計總結
其餘的資料型別如char short int long float等與標準c語言完全相同。bit sbit sfr 和sfr16資料型別專門用於51微控制器硬體和c51編譯器,並不是標準c語言的一部分,不能通過指標進行訪問。bit sbit sfr 和sfr16資料型別專門用於訪問51微控制器的特殊...
C語言程式設計
題目答案知識點評析 填空題請補充函式fun 該函式的功能是 把從主函式中輸入的字串str2接在字串str1的後面。例如 str1 how do str2 you do?結果輸出 how do you do?注意 部分源程式給出如下。請勿改動主函式main和其他函式中的任何內容,僅在函式fun的橫線上...
C語言程式設計規範
編碼規範 1.標頭檔案編碼規範 3 2.函式編寫規範 3 3.識別符號命名與定義 3 3.1通用命名規則 3 3.2 變數命名規則 4 3.3函式命名規則 4 3.4 巨集的命名規則 4 4.變數 4 5.巨集 常量 5 6.質量保證 5 7.程式效率 6 8.注釋 6 9.排版與格式 7 10.表...