C語言程序項目一學生成績初步統(tǒng)計技術(shù)_第1頁
C語言程序項目一學生成績初步統(tǒng)計技術(shù)_第2頁
C語言程序項目一學生成績初步統(tǒng)計技術(shù)_第3頁
C語言程序項目一學生成績初步統(tǒng)計技術(shù)_第4頁
C語言程序項目一學生成績初步統(tǒng)計技術(shù)_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、C語言程序項目一學生成績初步統(tǒng)計技術(shù)C語言程序項目一學生成績初步統(tǒng)計技術(shù)程序與時代程序與時代 2015年9月20日7時01分,我國新型運載火箭長征六號在太原衛(wèi)星發(fā)射中心點火發(fā)射,成功將20顆微小衛(wèi)星送入太空。 C語言程序項目一學生成績初步統(tǒng)計技術(shù)程序與時代程序與時代 自動化生產(chǎn)線設(shè)備是典型的機電一體化產(chǎn)品,自動線設(shè)備的安裝調(diào)試、檢測維護及運行管理是機電類相關(guān)技術(shù)的典型職業(yè)范疇。C語言程序項目一學生成績初步統(tǒng)計技術(shù)程序與時代程序與時代C語言程序項目一學生成績初步統(tǒng)計技術(shù)程序與時代程序與時代C語言程序項目一學生成績初步統(tǒng)計技術(shù)程序與時代程序與時代C語言程序項目一學生成績初步統(tǒng)計技術(shù)程序與時代程序與

2、時代C語言程序項目一學生成績初步統(tǒng)計技術(shù)程序與時代程序與時代C語言程序項目一學生成績初步統(tǒng)計技術(shù)項目一項目一 學生成績的初步統(tǒng)計技術(shù)學生成績的初步統(tǒng)計技術(shù) 項目要求項目要求 輸入三個學生的成績,求他們的總分及平均分。項目分析項目分析 第一必須要學會輸入成績及輸出結(jié)果; 第二必須對輸入的成績進行總分及平均分的計算。 所以,將這一項目分成二個任務(wù)介紹。 要注重解決問題的思路要注重解決問題的思路C語言程序項目一學生成績初步統(tǒng)計技術(shù)任務(wù)任務(wù)1 1 學生成績的輸入、輸出學生成績的輸入、輸出一、任務(wù)提出一、任務(wù)提出 一個班進行了一次考試,現(xiàn)要將幾個學生的成績輸入電腦,并按要求輸出。二、具體實現(xiàn)二、具體實現(xiàn)

3、 #include stdio.h /文件預(yù)處理 main() / 函數(shù)名 /函數(shù)體開始 int x,y,z; /定義三個變量x,y,z printf(請輸入三個學生的成績); scanf(%d%d%d,&x,&y,&z); /*輸入三個學生的成績*/ printf(輸出三個學生的成績); printf(x=%d,y=%d,z=%dn,x,y,z); /輸出三個變量x,y,z的值 /函數(shù)體結(jié)束 程序運行結(jié)果:從上面這段程序可分析出:首先,要了解C語言的結(jié)構(gòu); 第二,要了解C語言的運行環(huán)境;第三,要懂得如何定義變量,輸入輸出語句。C語言程序項目一學生成績初步統(tǒng)計技術(shù)相關(guān)知

4、識相關(guān)知識 1 1、 C C語言源程序的結(jié)構(gòu)語言源程序的結(jié)構(gòu)#include “stdio.h”int x,y;main( )x=1;y=x+2;printf(“x=%dny=%dn”,x,y);文件預(yù)處理文件預(yù)處理主函數(shù)主函數(shù)數(shù)據(jù)聲明部分數(shù)據(jù)聲明部分語句部分語句部分C語言程序項目一學生成績初步統(tǒng)計技術(shù)2、 C程序運行環(huán)境及運行方法程序運行環(huán)境及運行方法 點擊【文件】【新建】,出現(xiàn)的對話框中用鼠標點擊【文件】【C+Source File】,然后更改文件所保存的目錄(若需要更改),需入文件名,然后點擊【確定】。輸入程序。當程序輸入完畢后,點擊 或按F7,進行編譯和連接。如果沒有錯誤,點擊 或按C

5、trl+F5,進行運行,就能得出程序運行的結(jié)果。 相關(guān)知識相關(guān)知識 C語言程序項目一學生成績初步統(tǒng)計技術(shù)2、 C程序運行環(huán)境及運行方法程序運行環(huán)境及運行方法 點擊【文件】【新建】,自動進入新建狀態(tài)。輸入C語言源程序,當程序輸入完畢后,點擊【文件】【保存】,然后更改文件所保存的目錄(若需要更改),需入文件名“.c”,然后點擊【保存】。 或按F11,進行編譯。如果沒有錯誤,點擊 或按F5,進行連接和運行,就能得出程序運行的結(jié)果。 相關(guān)知識相關(guān)知識 C語言程序項目一學生成績初步統(tǒng)計技術(shù)3、 數(shù)據(jù)類型數(shù)據(jù)類型相關(guān)知識相關(guān)知識 數(shù)據(jù)類型基本類型構(gòu)造類型構(gòu)造類型指針類型空類型void引用類型整型整型浮點型

6、浮點型字符型(char)枚舉型(enum)數(shù)組類型數(shù)組類型結(jié)構(gòu)類型(結(jié)構(gòu)類型(structstruct)共用類型(共用類型(unionunion)短整型(短整型(short intshort int)整型(整型( intint)長整型(長整型(long intlong int)單精度(單精度(floatfloat)雙精度(雙精度(doubledouble)長雙精度(長雙精度(long doublelong double)C語言程序項目一學生成績初步統(tǒng)計技術(shù)不同類型數(shù)據(jù)所占空間大小不同類型數(shù)據(jù)所占空間大小名稱名稱字節(jié)數(shù)字節(jié)數(shù)*描述描述范圍范圍*char1字符(character)或整數(shù)(inte

7、ger ), 8位(bits)長有符號(有符號(signed): -128 到 127無符號(無符號(unsigned): 0 到 255short int (short)2短整數(shù)(integer )16位(bits)長有符號(有符號(signed): -32768 到 32767無符號(無符號(unsigned): 0 到 65535long int (long)4長整數(shù)(integer )32位(bits)長有符號(有符號(signed):-2147483648 到 2147483647無符號(無符號(unsigned): 0 到 4294967295int4整數(shù)(integer)有符號有

8、符號(signed): -2147483648 到 2147483647無符號(無符號(unsigned): 0 到 4294967295 float4浮點數(shù)(floating point number)3.4e + / - 38 (7 個數(shù)字(7digits)double8雙精度浮點數(shù)(double precision floating point number)1.7e + / - 308 (15 digits)long double8長雙精度浮點數(shù)(long double precision floating point number)1.7e + / - 308 (15 digits)

9、bool1布爾Boolean值。它只能是真(true)或假(false)兩值之一。true 或 falsewchar_t2寬字符(Wide character) 。這是為存儲兩字節(jié)(2 bytes) 長的國際字符而設(shè)計的類型。一個寬字符(1 wide characters)相關(guān)知識相關(guān)知識 C語言程序項目一學生成績初步統(tǒng)計技術(shù)3、 數(shù)據(jù)類型數(shù)據(jù)類型C語言的數(shù)據(jù)形式:(常量和變量)【常量】 在程序運行中,其值不能被改變的量稱為常量。 常量可分為: 整型常量。例1,23,-8。 實型常量。例 ,.123,23.,(表示2.2310-4), 0.23e3(表示0.23103),0.23E-3(表示0

10、.2310-3), 1.23E3(表示1.23103)。 字符常量。例 A,+,8。 符號常量。例 。則PI是一個符號常量,其值為, 它不能在程序中被改變。(請見任務(wù)三中的例1-15改)【變量】 所謂變量就是在程序運行過程中,其值可以被改變的量。 一個變量由兩個要素組成。即變量名和變量值。 變量名:每一個變量都必須有一個名字,即變量名。變量名的命名規(guī)則: 由字母或下劃線開頭,后面跟字母、數(shù)字和下劃線。其有效長度,隨系 統(tǒng)而異,但至少前8個字符有效。如果超長,則超長部分被舍棄。 C語言的變量名區(qū)分大小寫。 即同一字母的大小寫,被認為給是兩個不同的變量。 例Total、total、toTal是不同

11、的變量名。 給變量名命名時,最好遵循“見名知意”這一基本原則。 例如,name/xm(姓名)、sex/xb(性別)、age/nl(年齡)、 salary/gz(工資)?!咀兞慷x與初始化】數(shù)據(jù)類型 變量名=初值,變量名2=初值2;例如:int x=1,y=2,z=3; float a=1.1,b=1.2,c=-0.1; char ch1=A,ch2=*;相關(guān)知識相關(guān)知識 C語言程序項目一學生成績初步統(tǒng)計技術(shù)(1) 標識符只能由下劃線、數(shù)字09與大小寫字母az,AZ構(gòu)成。Turbo C最多識別由32個字符組成的標識符,Microsoft C最多識別由8個字符組成的標識符。 (2) 標識符的首個字

12、符必須是字母或下劃線,而不能是數(shù)字或其它符號。 (3) C語言中大小寫字母是敏感的,即在標識符中,大寫字母和小寫字母代表不同的意義。例如:Name和name是兩個不同的標識符。 (4) 不允許重名;(5) 系統(tǒng)預(yù)定義標識符,如預(yù)編譯命令名(define、include)、系統(tǒng)函數(shù)名(scanf、printf、getchar、putchar)等可作為用戶標識符,但建議不作它用。 (6) 盡量作到“見名知義”,例如max、score等,而不用象abc、x1、y2等標識符。 (7) 避免使用易混字符,如1、l、i;0、o;2、z等。 (8)先定義,后使用;相關(guān)知識相關(guān)知識 關(guān)于變量的命名規(guī)則:關(guān)于變

13、量的命名規(guī)則:C語言程序項目一學生成績初步統(tǒng)計技術(shù)(9)一般要初始化,格式為: int i=1,j=2;(10)C語言中沒有設(shè)置專門的變量來存放字符串,字符串如果要存放在變量中,要用字符數(shù)組來存放(11)標識符不能使用系統(tǒng)的關(guān)鍵字,因為關(guān)鍵字是系統(tǒng)保留的,它們已有特定的含義。 ANSI C定義的關(guān)鍵字共32個: auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signe

14、d void default goto sizeof volatile do if while static 相關(guān)知識相關(guān)知識 關(guān)于變量的命名規(guī)則:關(guān)于變量的命名規(guī)則:C語言程序項目一學生成績初步統(tǒng)計技術(shù)4、 格式化輸出格式化輸出printf()函數(shù)函數(shù)printf()函數(shù)的一般格式printf(“格式字符串”,輸出項表);1. 常用的格式字符串有:(1) 格式指示符: %d 帶符號十進制整數(shù)。 %f帶符號十進制小數(shù)形式(默認6位小數(shù))。 %c輸出一個字符。(2) 轉(zhuǎn)義字符例1-1中的printf()函數(shù)中的”n”就是轉(zhuǎn)義字符,輸出時產(chǎn)生一個“換行”。(3) 普通字符除格式指示符和轉(zhuǎn)義字符之外

15、的其它字符。例1-1中的printf(“x=%d,y=%d,z=%dn”,x,y,z);的“x=”、“y=”、“z=”,格式字符串中的普通字符,原樣輸出。在漢字系統(tǒng)環(huán)境下,允許使用漢字。2. 輸出項表輸出項表是可選的。在輸出項中,列出要輸出的任意類型的數(shù)據(jù)。如果要輸出的數(shù)據(jù)不止一個,相鄰2個之間用逗號分開。 (1)printf(“我是一個學生n”); /沒有輸出項(2)printf(“%d”,1+2); /輸出1+2的值(3)printf(“a=%d b=%dn”,1,1+3); /輸出1的值和1+3的值注意:printf(“%d %fn”,1.212,5) ; 是錯誤的。 #include

16、“stdio.h” main() printf(“%d %fn”,1.234,6);相關(guān)知識相關(guān)知識 C語言程序項目一學生成績初步統(tǒng)計技術(shù)【例例1-3】格式化輸出。格式化輸出。#include stdio.h main() int x=1,y=2,z=3; /*定義x,y,z三個整型變量,并將它們的初值賦為 1,2,3*/float a=1.1,b=2.3; char c1=A,c2=B; /*定義c1,c2二個字符型變量,并將它們的初值賦為A和B*/printf(輸出x,y,z的值n); /原樣輸出x,y,z的值后換行printf(x=%d,y=%d,z=%dn,x,y,z); /輸出x=1

17、,y=2,z=3后換行printf(輸出a,b的值n); printf(a=%f,b=%fn,a,b); printf(輸出c1,c2的值n); printf(c1=%c,c2=%cn,c1,c2); /輸出c1=A,c2=B后換行程序的運行結(jié)果為:相關(guān)知識相關(guān)知識 C語言程序項目一學生成績初步統(tǒng)計技術(shù)1、什么情況下加分號,什么情況下不加;2、分號是在英文半角狀態(tài)下輸入;3、分號錯誤會有什么樣的提示;4、函數(shù)庫也就是函數(shù)的集合,是別人把一些常用到的函數(shù)編完放到一個文件里,供程序員使用。同時把函數(shù)的接口放到頭文件中。程序員用的時候把相應(yīng)的頭文件用#include加到程序里面就可以了(尖括號內(nèi)填寫

18、文件名),例如#include。這樣在鏈接的過程中,鏈接器就能順藤摸瓜找到頭文件再找到printf所在的庫函數(shù),將其源代碼寫到程序中,以備將來調(diào)用。所以說頭文件是用戶應(yīng)用程序和函數(shù)庫之間的橋梁和紐帶。5、include語句后面如果是尖括號,表示在默認的安裝目錄中查找頭文件;如果是雙引號,認為是用戶定義的,尋找速度較慢。相關(guān)知識相關(guān)知識 注意:注意:C語言程序項目一學生成績初步統(tǒng)計技術(shù)常用的頭文件如下圖所示,一般放在安裝文件夾中常用的頭文件如下圖所示,一般放在安裝文件夾中常用的頭文件如下圖所示,一般放在安裝文件夾中常用的頭文件如下圖所示,一般放在安裝文件夾中C語言程序項目一學生成績初步統(tǒng)計技術(shù)5

19、、格式化輸入、格式化輸入scanf()函數(shù)函數(shù)1. scanf()函數(shù)的功能:從鍵盤上接收格式化輸入。2. scanf()函數(shù)的一般格式: scanf(“格式字符串格式字符串”,輸入項首地址表輸入項首地址表); 格式字符串。格式字符串可以包含3種類型的字符:格式字符,空白字符(空格、Tab鍵和回車鍵)和非空白字符(又稱普通字符)。 格式指示符與printf()函數(shù)的相似: %d,十進制帶符號的整型數(shù);%f,十進制帶符號的實型數(shù);%c,輸入一個字符。 空白字符作為相鄰2個輸入數(shù)據(jù)的缺省分隔符。 非空白字符在輸入數(shù)據(jù)時,必須原樣一起輸入。 輸入項首地址表由若干個輸入項首地址組成,相鄰2個輸入項地址

20、之間用逗號分開。變量首地址的表示方法如下:&變量名變量名 其中“&”是地址運算符。例如,在例1-1中scanf(“%d%d%d”,&x,&y,&z)中的“&x”是指變量x在內(nèi)存中的首地址。其功能是從鍵盤上輸入3個整型數(shù),分別存入&x,&y,&z起始的存儲單元中,即輸入三個整數(shù)分別賦給x,y,z。 scanf(“%d,%d”,&a,&b); scanf(“%d%d”,&a,&b); C語言程序項目一學生成績初步統(tǒng)計技術(shù)例1-4有兩個人A,B,在數(shù)學考試中獲得87和76的成績,請輸入A,B兩人的

21、代號及成績,輸出成績。 分析:此題就是考查輸入輸出語句,注意整數(shù)輸入/輸入的格式用%d,字符變量的輸入/輸出格式用%c,同時注意輸入語句中的兩個數(shù)據(jù)之間用什么符號隔開,則在程序運行輸入數(shù)據(jù)時也要用同樣的符號隔開兩個數(shù)據(jù)。#include stdio.hmain()char c1,c2;int x,y;printf(請輸入A的成績及代號:);scanf(%d:%c,&x,&c1);printf(請輸入B的成績及代號:);scanf(%d:%c,&y,&c2);printf(輸出A的代號及成績:);printf(%c:%dn,c1,x);printf(輸出B的代號及

22、成績:);printf(%c:%dn,c2,y);程序運行結(jié)果為:相關(guān)知識相關(guān)知識 C語言程序項目一學生成績初步統(tǒng)計技術(shù)知識擴展知識擴展1. 轉(zhuǎn)義字符轉(zhuǎn)義字符已經(jīng)提到“n”的轉(zhuǎn)義字符,是換行。常用的轉(zhuǎn)義字符還有“t”,即橫向跳出下一個輸出區(qū)?!纠?-5】用轉(zhuǎn)義字符控制輸出效果。#include stdio.hmain()printf(%dt%dt%dn”,1,2,3);程序運行結(jié)果如圖所示C語言程序項目一學生成績初步統(tǒng)計技術(shù)知識擴展知識擴展n換行符newliner回車carriage returnt跳躍符tabulationv垂直跳躍vertical tabulationbbackspacef

23、page feeda警告alert (beep)單引號single quotes ()雙引號double quotes ()?問號question (?)反斜杠inverted slash () 另外可以數(shù)字ASCII 碼表示一個字符,這種表示方式是在反斜杠()之后加以8進制數(shù)或十六進制數(shù)表示的ASCII 碼。 在第一種(八進制octal)表示中,數(shù)字必需緊跟反斜杠(例如23或40)。 第二種(十六進制hexacedimal),必須在數(shù)字之前寫一個x字符(例如x20或x4A)。C語言程序項目一學生成績初步統(tǒng)計技術(shù)知識擴展知識擴展2格式化輸出格式化輸出前面,已經(jīng)學過輸出語句的一般格式為:prin

24、tf(“格式字符串格式字符串”,輸出項表輸出項表);常用的格式字符串表示法如下:“%5d”表示輸出十進制帶符號的整數(shù),其輸出域的寬度為5位,若數(shù)超長,則按實際寬度輸出;若不足,則輸出數(shù)的左端補空格?!?ld”只是表示輸出的是長整型?!?-5d” 表示輸出十進制帶符號的整數(shù),其輸出域的寬度為5位,若數(shù)超長,則按實際寬度輸出;若不足,則輸出數(shù)的右端補空格?!?6.1f” 表示輸出十進制帶符號的單、雙精度實數(shù),其輸出域的寬度為6位,其中小數(shù)一位,若數(shù)超長,則按實際寬度輸出;若不足,則輸出數(shù)的左端補空格?!?-7.2f” 表示輸出十進制帶符號的單、雙精度實數(shù),其輸出域的寬度為7位,其中小數(shù)2位,若數(shù)超

25、長,則按實際寬度輸出;若不足,則輸出數(shù)的右端補空格。C語言程序項目一學生成績初步統(tǒng)計技術(shù)【例例1-6】類型轉(zhuǎn)換字符類型轉(zhuǎn)換字符d的使用。的使用。#include main()int a=123;long b=123456;/*用四種不同格式,輸出int型數(shù)據(jù)a的值*/printf(a=%d,a=%5d,a=%-5d,a=%2dn,a,a,a,a);/*用四種不同格式,輸出long型數(shù)據(jù)b的值*/printf(b=%ld,b=%8ld,b=%-8ld,b=%2ldn,b,b,b,b);printf(a=%ldn,a); /用%ld輸出int型數(shù)據(jù)aprintf(b=%dn,b); /用%d輸出l

26、ong型數(shù)據(jù)b程序的運行結(jié)果如圖所示。知識擴展知識擴展C語言程序項目一學生成績初步統(tǒng)計技術(shù)知識擴展知識擴展分析:分析: a=%d,按實際長度輸出123。 a=%5d,由于123只占3列,所以前面空二個空格,輸出a=123。 a=%-5d,由于123只占3列,同時有一個“-”號,所以右面空二個空格,輸 出a=123。 a=%2d,由于123占3列,所以按實際寬度輸出。即輸出a=123。 b=%ld,按實際長度輸出123456。即輸出b=123456。 b=%8ld,由于123456只占6列,所以前面空二個空格,輸出b=123456。 b=%-8ld,由于123456只占6列,同時有一個“-”號,

27、所以右面空二個空格,輸出b=123456。 b=%2ld,由于123456占6列,所以按實際寬度輸出。即輸出b=123456。 a=%ld,輸出a=123。 b=%d,輸出b=123456。C語言程序項目一學生成績初步統(tǒng)計技術(shù)【例例1-7】類型轉(zhuǎn)換字符類型轉(zhuǎn)換字符f的使用。的使用。#include main()float f=123.456;double d1,d2;d1=111111.11111111;d2=222222.22222222;printf(f=%f,f=%12f,f=%12.2f,f=%-12.2f,f=%.0f,f=%.2fn,f,f,f,f,f,f);printf(d1+d

28、2=%fn,d1+d2);分析分析:f=%f是將小數(shù)保留6位,所以輸出f=123.456001(因為f是float型,由于精度的關(guān)系,最后的小數(shù)位出現(xiàn)了1,后面同理)。f=%12f是共輸出12列,小數(shù)位還是是默認為6位,也就是6位小數(shù),加上一個小數(shù)點,再加上整數(shù)位是3位,一共是10位,所以在左邊加上二個空格,也就是輸出。表示一共輸出12位,其中小數(shù)位是二位(4舍5入),加上一個小數(shù)點,再加上整數(shù)位是3位,一共是6位,所以在左邊加上六個空格,也就是輸出。與前面一樣,只是將空格放置在右邊,也就是輸出f=123.46。f=%.0f表示整數(shù)位原樣輸出,小數(shù)位是0位,也就是輸出f=123。f=%.2f表

29、示整數(shù)位原樣輸出,小數(shù)位是2位(4舍5入),也就是輸出。程序結(jié)果如圖所示。C語言程序項目一學生成績初步統(tǒng)計技術(shù)3單個字符的輸入輸出單個字符的輸入輸出(1)單個字符的輸出)單個字符的輸出putchar()函數(shù)函數(shù)【例例1-8】putchar()函數(shù)的格式和使用方法。#include “stdio.h”main()char ch1,ch2,ch3;ch1=S;ch2=u;ch3=n;putchar(ch1); putchar(ch2); /輸出ch1,ch2的值putchar(ch3); putchar(n); /輸出ch3的值并換行putchar(ch1); putchar(n); /輸出ch1

30、的值并換行putchar(u); putchar(n); /輸出字符u并換行putchar(ch3); putchar(n); /輸出ch3的值并換行程序運行如圖所示。putchar()函數(shù)的格式為:putchar(ch);ch可以是一個字符變量或常量,也可以是一個轉(zhuǎn)義字符。putchar()函數(shù)的作用是向終端輸出一個字符。注意注意putchar()函數(shù)只能用于單個字符的輸出,且一次只能輸出一個字符。從功能角度來說,printf()函數(shù)完全可以替代putchar()函數(shù);同樣使用putchar()函數(shù)也需要在程序的開頭加上編譯預(yù)處理命令,即:#include “stdio.h”C語言程序項目一

31、學生成績初步統(tǒng)計技術(shù)(2)單個字符的輸入)單個字符的輸入getchar( )函數(shù)函數(shù)【例例1-9】getchar()函數(shù)的格式和使用方法。#include “stdio.h”main()char ch;printf(“請輸入一個字符”);ch=getchar(); /從鍵盤輸入一個字符并賦給變量chputchar(ch);putchar(n); /輸出ch的值并換行putchar(getchar(); /從鍵盤輸入一個字符并輸出putchar(n);getchar()函數(shù)的格式:getchar();getchar()函數(shù)的作用:從鍵盤輸入一個字符。從功能的功度看,scanf()函數(shù)完全可以替代

32、getchar()函數(shù)。注意注意getchar()函數(shù)只能用于單個字符的輸入,且一次只能輸入一個字符。同樣使用getchar()函數(shù)要在程序的開頭加上編譯預(yù)處理命令,即:#include “stdio.h”C語言程序項目一學生成績初步統(tǒng)計技術(shù)4字符串常量字符串常量 字符串常量是由雙引號括起來的一串字符。如“How do you do.”就是字符串常量,在C語言中,系統(tǒng)在每個字符串的最后自動加入一個字符0作為字符串結(jié)束的標志。請注意字符常量和字符串的區(qū)別,例如。a是一個字符常量,在內(nèi)存中占一個字節(jié);而”a”是字符串常量,占二個字節(jié)的存儲空間,其中的一個字節(jié)用來存放0。兩個連續(xù)的雙引號“”也是一個

33、字符常量,稱作“空串”。但要占一個字節(jié)的存儲空間來存放0。注意(1)字符串的結(jié)束符0占內(nèi)存空間,但在測試字符串長度時不計在內(nèi),也不輸出。(2)0為字符串的結(jié)束符,但遇到0不一定是字符串的結(jié)束,可能是八進制數(shù)組成的轉(zhuǎn)義字符常量,如字符串“abc067de”表示6個字符,并非為3個?!纠?-10】下列數(shù)據(jù)中,為字符串常量的是()。 (A)A (B)“house” (C) How do you do (D) $asd分析分析:字符串常量是用一對雙引號括起來的字符序列。答案為B。C語言程序項目一學生成績初步統(tǒng)計技術(shù) 舉一反三舉一反三【例例1-10】若變量為float類型,要通過語句scanf(“%f

34、%f%f”, &a, &b, &c);給a賦予,b賦予,c賦予,則下列A、B、C、D四個答案中不正確的為哪個。請大家將它寫成一個完整的C語言,使得程序的運行結(jié)果是:A10 B10.0,22.0,33.0 22 33C10.0 D10 2222.0 33.0 33分析:(1)因為語句scanf(”%f%f%f”, &a, &b, &c)是要求我們在輸入時,數(shù)與數(shù)之間要么是空格分隔開,要么是回車隔開,所以答案A、C、D均可,只有B錯。若是以10.0,22.0,33.0的形式輸入數(shù)據(jù),則輸入語句應(yīng)寫成:scanf(”%f ,%f,%f”, &a

35、, &b, &c);(2)因為a,b,c的值為實型,所以定義的變量要求是實型float ,輸出的語句要注意保留小數(shù)一位。答案:B。完整的程序如下:#include “stdio.h”main()float a,b,c;scanf(“%f%f%f”, &a, &b, &c);printf(“a=%.1f,b= %.1fc=%.1f”, a, b, c);C語言程序項目一學生成績初步統(tǒng)計技術(shù) 舉一反三舉一反三【例1-11】有一輸入函數(shù)scanf(“%d”,k),則不能使float類型變量k得到正確數(shù)值的原因是什么?分析分析:因為k是實型變量,所以格式字符串應(yīng)

36、是“%f”,同時變量前邊未加取地址符&。答案:答案:scanf(“%f”,&k)?!纠?-12】閱讀以下程序,當輸入數(shù)據(jù)的形式為:12,34,正確的輸出結(jié)果為( )。#include ”stdio.h”main() int a,b; scanf(“%d%d”, &a,&b); printf(“a+b=%dn”,a+b);Aa+b=46 B有語法錯誤Ca+b=12 D不確定值分析:因為輸入語句scanf(“%d%d”, &a,&b)要求輸入的二個數(shù)之間以空格或回車分隔,而題意中給出的二個數(shù)是以逗號分隔,所以導(dǎo)致b的值為一個不確定數(shù),所以其值為不確

37、定。 答案:DC語言程序項目一學生成績初步統(tǒng)計技術(shù) 舉一反三舉一反三【例例1-13】有如下程序,若要求x1、x2、y1、y2的值分別為10、20、A、B,正確的數(shù)據(jù)輸入應(yīng)該如何?請將這段程序后面補充printf()使之完整。int x1,x2;char y1,y2;scanf(“%d%d”,&x1,&x2);scanf(“%c%c”, &y1,&y2);A1020AB B1020ABC1020 D1020ABAB分析: 因為x1,x2是整型變量,所以二個數(shù)之間可以空格分隔,也可以回車分隔;而y1,y2是字符型,則在輸入完x2值后的任何字符(包括空格及回車,程序都

38、認為是在為y1,y2輸入值,所以答案A的錯誤是沒將10、20分隔,答案B的錯是輸入完20后的空格,程序認為是給y1賦值,后面的A是給y2的值,即y1的值為空格,y2的值為字符A;答案C的輸入方法程序認為x1=10,x2=20,y1的值為回車,y2的值為字符A;只有答案D是正確的。 答案為D。參考程序參考程序:#include stdio.hmain()int x1,x2;char y1,y2;scanf(%d%d,&x1,&x2);scanf(%c%c,&y1,&y2);printf(x1=%d,x2=%dn,x1,x2);printf(y1=%c,y2=%cn

39、,y1,y2);C語言程序項目一學生成績初步統(tǒng)計技術(shù)任務(wù)任務(wù)2 總分及平均分的計算總分及平均分的計算一、任務(wù)提出:一、任務(wù)提出:一個班進行了一次考試,現(xiàn)要將幾個學生的成績輸入電腦,并計算他們的平均分及總分,然后按要求輸出。二、具體實現(xiàn)二、具體實現(xiàn)#include stdio.h main() int x,y,z; float sum,avg; /定義二個實型變量sum,avgprintf(請輸入三個學生的成績); scanf(%d%d%d,&x,&y,&z); /*輸入三個學生的成績*/sum=x+y+z; /將x+y+z的值賦給sumavg=sum/3; /將sum/

40、3的值賦給avgprintf(請輸出三個學生的總成績及平均分為); /輸出提示printf(sum=%.2f,avg=%.2fn,sum,avg); /輸出二個變量sum及avg的值 程序的執(zhí)行情況如下 :首先,算術(shù)運算和算術(shù)表達式; 第二,賦值運算和賦值表達式;另外,還需掌握在本任務(wù)中沒有體現(xiàn),但在C程序中卻經(jīng)常要用到的C語言特有的運算和運算符。C語言程序項目一學生成績初步統(tǒng)計技術(shù)三、相關(guān)知識三、相關(guān)知識(一一) 算術(shù)運算與算術(shù)表達式算術(shù)運算與算術(shù)表達式1. 五種基本的算術(shù)運算符 +(加法)、-(減法)、*(乘法)、/(除法)、%(求余數(shù))這里,需要特別提出的是:(1)關(guān)于除法運算/ C語言

41、規(guī)定,兩個整數(shù)相除,其商為整數(shù),小數(shù)部分被舍棄。例如:5/2=2。 如果商為負數(shù),則取整的方向隨系統(tǒng)而異。但大多數(shù)的系統(tǒng)采取“向零取整”原則,換句話說,取其整數(shù)部分。例如:-5/3=-1。(2)關(guān)于求余數(shù)運算% 要求兩側(cè)的操作數(shù)均為整型數(shù)據(jù),否則出錯。例如:5%3=2,3%5=3,-5%3=-2,-5%(-3)=-2。但是,5.2%3是語法錯。C語言程序項目一學生成績初步統(tǒng)計技術(shù)2. 表達式和算術(shù)表達式(1)表達式的概念用運算符和括號將運算對象(常量、變量和函數(shù))連接起來的、符合C語言語法規(guī)則的式子,稱為表達式。單個常量、變量,可以看作是表達式的一種特例。將單個常量、變量構(gòu)成的表達式稱為簡單表

42、達式,其他表達式稱之為復(fù)雜表達式。(2)算術(shù)表達式的概念表達式中的運算符都是算術(shù)運算符。例如:3+2*5、(x+y)/2+3、5%2+3都是算術(shù)表達式。3. 運算符的優(yōu)先級與結(jié)合性(1)算術(shù)運算符的優(yōu)先級是:先*,/,%,再+,-。(2)有括號的先做括號。三、相關(guān)知識三、相關(guān)知識C語言程序項目一學生成績初步統(tǒng)計技術(shù)(一一) 算術(shù)運算與算術(shù)表達式算術(shù)運算與算術(shù)表達式 4. 數(shù)據(jù)類型轉(zhuǎn)換高 double float long unsigned 低 int char,short例如: (double)x 等價于(double)(x) /將變量x的值轉(zhuǎn)換成double型 (int)(x+y) /將x+

43、y的結(jié)果轉(zhuǎn)換成int型 (float)7/2 等價于(float)(7)/2 /將7轉(zhuǎn)換成實型,再除以2(=3.5) (float)(7/2) /將7整除2的結(jié)果(3)轉(zhuǎn)換成實型(3.0)相關(guān)知識相關(guān)知識 C語言程序項目一學生成績初步統(tǒng)計技術(shù)(二二) 賦值運算和賦值表達式賦值運算和賦值表達式1. 賦值運算賦值符號“=”就是賦值運算符,它的作用是將一個表達式的值賦給一個變量。賦值運算符的一般形式為:變量=賦值表達式2. 復(fù)合賦值運算復(fù)合賦值運算是C語言特有的一種運算。復(fù)合賦值運算的一般格式為:變量 復(fù)合運算符 表達式復(fù)合算術(shù)運算符有五種,分別是:+=,-=,*=,/=,%=例如:x=5 /將5賦

44、給變量xx=6+7 /將6+7的值賦給變量x 5=x 是錯誤的x+y=z也是錯誤的。 x+=3 等價于 x=x+3 x+=5+8 等價于 x=x+(5+8) x*=y+2 等價于 x=x*(y+2) x/=x+y 等價于x=x/(x+y) x/=8 等價于x=x/8 x%=7 等價于 x=x%7 x%=(4-2) 等價于x=x%(4-2)相關(guān)知識相關(guān)知識 C語言程序項目一學生成績初步統(tǒng)計技術(shù)【例例1-16】閱讀下列程序閱讀下列程序#include stdio.hmain()int x,y,z; float a,b,c; /定義三個單精度型變時a,b,cx=1; /將1賦給變量x,即x的值為1y

45、=2; z=3; a=1.1; /將賦給變量a,即a的值為b=2.1;c=3.5;x=x+y+z; /將x+y+z的值賦給變量x, x的值為(1+2+3),即x=6printf(x=%dn,x); y*=y+1; /將y*(y+1)賦給y, y=2*(2+1),即y=6printf(y=%dn,y); z=(int)a%(int)b; /z=1%2,即z=1printf(z=%dn,z); a+=a+b+c; /a=a+(a+b+c), a=1.1+(1.1+2.1+3.5),即printf(a=%fn,a); 程序執(zhí)行情況如下:相關(guān)知識相關(guān)知識 C語言程序項目一學生成績初步統(tǒng)計技術(shù)(三) C

46、語言特有的運算和運算符1. 自增(+)、自減(-)運算作用:自增運算使單個變量的值增1,自減運算使單個變量的值減1.用法與運算規(guī)則自增、自減運算符都有兩種用法:1) 前置運算運算符放在變量之前:+變量、-變量先使變量的值增(減)1,然后再以變化后的值參與其他支算,即先增減,后運算。 y=+x+2; /x先增1(=5),然后與2的和再賦給y(=7) printf(x=%d y=%dn,x,y); z=-x; /x先減1(=4),然后再賦給z(=4)printf(x=%d z=%dn,x,z); -x; /x=x-1,即x=3printf(x=%dn,x); /輸出x=3后換行#include stdio.hmain()int x=2,y,z;printf(x=%dn,x); y=+x; /x先增1(=3),然后再賦給y(=3) printf(x=%d y=%dn,x,y); +x; /x=x+1,即x=4printf(x=%dn,x);相關(guān)知識相關(guān)知識 C語言程序項目一學生成績初步統(tǒng)計技術(shù)后置運算變量+、變量 #include stdio.hmain()int x=2,y,z;printf(x=%dn,x); y=x+; /先將x的值(2)賦給y(=2) ,然后x再自增(3) printf(x=%d y=%dn,x,y); x+; /x=x+1,即x=4printf(x=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論