C語言自學網(wǎng)板書_第1頁
C語言自學網(wǎng)板書_第2頁
C語言自學網(wǎng)板書_第3頁
C語言自學網(wǎng)板書_第4頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

:設計語言的講解:程序的算法與結構設計。:C程序的設計初步了解。:C程序的格式的講解。:C程序格式的幾個考點講解。標識符、常量、變量ー標識符、常量、變量二標識符、常量、變量三標識符、常量、變量考點講解整型常量1123整型變量整型數(shù)據(jù)的分類實型常量實型變量15.2.5算術表達式、運算符優(yōu)先級及強制類型轉(zhuǎn)換16.2.6賦值表達式17.2.7復合表達式與賦值中的強制類型轉(zhuǎn)換18.2.7++和——的講解19.2.7逗號表達式與實例講解20.課后習題的講解21.課后習題的講解22.課后習題的講解23.第二章的總體回顧24.3.2輸出語句的講解ー25.3.2輸出語句的講解二26.3.2輸出語句的講解三27.3.2輸出語句考點例題講解。28.3.3輸入語句的講解ー29.3.3輸入語句的講解二30.3.3輸入語句考點例題講解。31.3.4復合語句與空語句32.3.5程序設計.課后習題講解.課后習題講解.課后習題講解.第三章總體回顧37.4.1關系運算38.4.1邏輯運算39.4.2IF語句40.4.2IF語句41.4.2IF語句的嵌套42.4.2IF語句的嵌套43.4.2IF語句的幾個考試例題44.4.3條件表達式45.4.4switch語句46.4.4switch語句與BREAK47.4.4switch語句的幾個考試例題.課后習題.課后習題.課后習題.第四章的總體冋顧52.5.1while語句53.5.1while的幾個習題54.5.2dowhile55.5.3FOR語句56.5.3FOR語句57.5.4for的嵌套58.5.4FOR的嵌套59.5.4素數(shù)的判定.FOR語句的實例.FOR語句的實例.FOR語句的實例.5.5break與continue.5.5break與continue.5.6程序的舉例.例年考題講解.例年考題講解(上機題).例年考題講解(上機題).課后習題.課后習題.課后習題72.6.1字符常量73.6.I字符串常量與字符變量74.6.3字符的輸入與輸出75.6.3字符與其它數(shù)據(jù)類型混合的輸入與輸出76.6.4程序舉例.課后習題講解.課后習題講解.課后習題講解.課后習題講解.第六章的總體回顧82.7.1庫函數(shù)83.7.2函數(shù)的應用與說明84.7.2函數(shù)的定義與使用85.7.2return的應用86.7.3函數(shù)的調(diào)用87.7.3函數(shù)的調(diào)用88.7.4函數(shù)的說明與調(diào)用函數(shù)的數(shù)據(jù)傳遞89.7.6程序舉例90.7.6程序舉例.例年考題講解.例年考題講解(上機).例年考題講解(上機).課后習題.課后習題.課后習題.第七章總體回顧98.8.I變量的地址與指針99.8.2指針變量的定義100.8.2指針變量的定義101.8.3給指針變量賦值102.8.3給指針變量賦值103.8.4指針變量的操作104.8.4指針變量的操作105.8.4指針變量的表示106.8.4指針變量所指向的數(shù)據(jù)的增減107.8.4指針的移動108.8.4指針的移動109.8.5指針在函數(shù)調(diào)用中的應用110.8.5指針在函數(shù)調(diào)用中的應用.例年考題講解.例年考題講解.例年考題講解(上機).例年考題講解(上機).課后習題分析.課后習題分析.課后習題分析.第八章總體回顧.第八章總體回顧120.9.1數(shù)組的初步了解121.9.1ー維數(shù)組的定義122.9.1ー維數(shù)組的引用與始化123.9.1ー維數(shù)組的使用124.ー維數(shù)組的實例125.9.2ー維數(shù)組和指針126.9.2ー維數(shù)組和指針127.9.2通過指針引用ー維數(shù)組、128.9.3ー維數(shù)組在函數(shù)調(diào)用中的應用129.9.3ー維數(shù)組在函數(shù)調(diào)用中的應用130.9.3ー維數(shù)組在函數(shù)調(diào)用中的應用131.9.4應用舉例132.9.4應用舉例133.9.4應用舉例134.9.5二維數(shù)組的定義135.9.5ニ維數(shù)組的引用136.9.5二維數(shù)組的初始化137.9.5二維數(shù)組通過FOR語句初始化138.9.6二維數(shù)組元素的地址表示139.9.6二維數(shù)組元素的地址表示140.9.6通過指針來引用數(shù)組元素141.9.6指針數(shù)組與數(shù)組指針142.9.7ニ維數(shù)組在函數(shù)調(diào)用中的應用143.9.7ニ維數(shù)組在函數(shù)調(diào)用中的應用144.9.7ニ維數(shù)組在函數(shù)調(diào)用中的應用145.9.8應用舉例146.9.8應用舉例147.9.8應用舉例.例年考題講解.例年考題講解.例年考題講解(上機).例年考題講解(上機).例年考題講解(上機).例年考題講解(上機).課后習題.課后習題.課后習題.第九章總體回顧.第九章總體回顧159.10.1字符與一維數(shù)組160.10.1字符串與一維數(shù)組161.10.2指針指向一個字符串162.10.3字符串的輸入和輸出163.10.4字符串數(shù)組164.10.5幾個用于字符處理的函數(shù)與程序舉例.例年考題講解.例年考題講解(上機).課后習題.課后習題.課后習題.第十章總體回顧171.11.1對函數(shù)的進ー步討論.課后習題的講解.課后習題的講解174.12.1局部變量與全局變量175.12.2靜態(tài)變量.課后習題.課后習題178.13.1宏179.例年考題180.14.1.結構的初步認識181.14.2結構體的定義182.14.2結構體的初始183.14.2結構體成員的引用184.14.3共用體與結構體的區(qū)分.例年考題講解15章位運算16章文章.上機題思路分析.上機題思路分析.上機題思路分析:設計語言的講解:程序的算法與結構設計。:C程序的設計初步了解。:C程序的格式的講解。:C程序格式的幾個考點講解。標識符、常量、變量ー標識符、常量、變量二標識符、常量、變量三標識符、常量、變量考點講解整型常量整型變量整型數(shù)據(jù)的分類實型常量實型變量15.2.5算術表達式、運算符優(yōu)先級及強制類型轉(zhuǎn)換16.2.6賦值表達式17.2.7復合表達式與賦值中的強制類型轉(zhuǎn)換1827++和 的講解19.2.7逗號表達式與實例講解20.課后習題的講解21.課后習題的講解22.課后習題的講解23.第二章的總體回顧24.3.2輸出語句的講解ー25.3.2輸出語句的講解二26.3.2輸出語句的講解三27.3.2輸出語句考點例題講解。28.3.3輸入語句的講解ー29.3.3輸入語句的講解二30.3.3輸入語句考點例題講解。3134復合語句與空語句32.3.5程序設計.課后習題講解.課后習題講解.課后習題講解.第三章總體回顧37.4.1關系運算38.4.1邏輯運算39.4.2IF語句40.4.2IF語句41.4.21F語句的嵌套42.4.2IF語句的嵌套43.4.2IF語句的幾個考試例題44.4.3條件表達式45.4.4switch語句46.4.4switch語句與BREAK47.4.4switch語句的幾個考試例題.課后習題.課后習題.課后習題.第四章的總體回顧52.5.1while語句53.5.1while的幾個習題54.5.2dowhile55.5.3FOR語句56.5.3FOR語句57.5.4for的嵌套58.5.4FOR的嵌套59.5.4素數(shù)的判定.FOR語句的實例.FOR語句的實例.FOR語句的實例.5.5break與continue.5.5break與continue.5.6程序的舉例.例年考題講解.例年考題講解(上機題).例年考題講解(上機題).課后習題.課后習題.課后習題72.6.1字符常量73.6.1字符串常量與字符變量74.6.3字符的輸入與輸出75.6.3字符與其它數(shù)據(jù)類型混合的輸入與輸出76.6.4程序舉例.課后習題講解.課后習題講解.課后習題講解.課后習題講解.第六章的總體冋顧82.7.1庫函數(shù)83.7.2函數(shù)的應用與說明84.7.2函數(shù)的定義與使用85.7.2retum的應用86.7.3函數(shù)的調(diào)用87.7.3函數(shù)的調(diào)用88.7.4函數(shù)的說明與調(diào)用函數(shù)的數(shù)據(jù)傳遞89.7.6程序舉例90.7.6程序舉例.例年考題講解.例年考題講解(上機).例年考題講解(上機).課后習題.課后習題.課后習題.第七章總體回顧98.8.I變量的地址與指針99.8.2指針變量的定義100.8.2指針變量的定義101.8.3給指針變量賦值102.8.3給指針變量賦值103.8.4指針變量的操作104.8.4指針變量的操作105.8.4指針變量的表示106.8.4指針變量所指向的數(shù)據(jù)的增減107.8.4指針的移動108.8.4指針的移動109.8.5指針在函數(shù)調(diào)用中的應用110.8.5指針在函數(shù)調(diào)用中的應用.例年考題講解.例年考題講解.例年考題講解(上機).例年考題講解(上機).課后習題分析.課后習題分析.課后習題分析.第八章總體回顧.第八章總體回顧120.9.1數(shù)組的初步了解121.9.1ー維數(shù)組的定義122.9」一維數(shù)組的引用與始化123.9.1ー維數(shù)組的使用124.ー維數(shù)組的實例ー維數(shù)組和指針ー維數(shù)組和指針通過指針引用ー維數(shù)組、ー維數(shù)組在函數(shù)調(diào)用中的應用ー維數(shù)組在函數(shù)調(diào)用中的應用一維數(shù)組在函數(shù)調(diào)用中的應用應用舉例應用舉例應用舉例二維數(shù)組的定義ニ維數(shù)組的引用二維數(shù)組的初始化二維數(shù)組通過FOR語句初始化二維數(shù)組元素的地址表示二維數(shù)組元素的地址表示通過指針來引用數(shù)組元素指針數(shù)組與數(shù)組指針ニ維數(shù)組在函數(shù)調(diào)用中的應用ニ維數(shù)組在函數(shù)調(diào)用中的應用ニ維數(shù)組在函數(shù)調(diào)用中的應用應用舉例應用舉例應用舉例題講解講解講解(上機)講解(上機)講解(上機)講解(上機)體回顧體回顧159.10.1字符與一維數(shù)組160.10.1字符串與一維數(shù)組161.10.2指針指向一個字符串162.10.3字符串的輸入和輸出163.10.4字符串數(shù)組164.10.5幾個用于字符處理的函數(shù)與程序舉例.例年考題講解.例年考題講解(ヒ機).課后習題.課后習題.課后習題.第十章總體回顧171.11.1對函數(shù)的進ー步討論.課后習題的講解.課后習題的講解174.12.1局部變量與全局變量175.12.2靜態(tài)變量.課后習題.課后習題178.13.1宏179.例年考題180.14.1.結構的初步認識181.14.2結構體的定義182.14.2結構體的初始183.14.2結構體成員的引用184.14.3共用體與結構體的區(qū)分.例年考題講解15章位運算16章文章.上機題思路分析.上機題思路分析.上機題思路分析第一章程序設計基本概念程序和程序設計程序:連續(xù)執(zhí)行的一條條指令的集合稱為“程序”。對于計算機來說,它不能識別由高級語言編寫的程序,它只能接受和處理由〇和1的代碼構成的二進制指令或數(shù)據(jù)。由于這種形式的指令是面向機器的,因此也被稱為“機器語言”。所以所有由高級語言編寫的程序都要經(jīng)過編譯,編譯成二進制代碼。這種具有翻譯功能的軟件稱為編譯程序。語言有很多種,我們現(xiàn)在要談論的就是C語言。為什么計算機會能進行各種各樣的操作,就是由不同的指令來實現(xiàn)的。而不是只有C語言オ可以實現(xiàn)這樣的功能。還有其它很多語言。但是我們一般說C語言是其它語言的母語。會了C語言其它的語言在學習的過程就會感到輕松一些。1.1.2程序設計.確定數(shù)據(jù)結構.確定算法.編碼.在計算機上調(diào)試程序.整理并寫出文檔資料.2算法定義:是指為了解決某個特定的問題而采取的確定且有限的步驟。.有窮性.確定性.可行性.有零個或多個輸入.有一個或多個輸出1.3結構化程序設計和模塊化結構結構化程序由三種基本結構組成不滿足語句1.順序結構不滿足語句1語句1語句2.選擇結構.循環(huán)結構12)計算機能直接執(zhí)行的程序是(B)。A)源程序B)冃標程序C)匯編程序D)可執(zhí)行程序13)以下敘述中正確的是(D)A)程序設計的任務就是編寫程序代碼并上機調(diào)試B)程序設計的任務就是確定所用數(shù)據(jù)結構〇程序設計的任務就是確定所用算法D)以上三種說法都不完整第二章:C程序設計的初步知識1C語言程序的構成和格式#include<stdio.h>main()(doublea,b,area;a=1.2,b=3.6;/?將矩形的兩條邊長分別賦給a和b變量?/area=a*b;printf("a=%f,b=%f,area=%f\n”,a,b,area);/?輸出矩形的兩條邊長和面積?/)#include<stdio.h>:每當寫ー個程序時,第一條語句永遠是這個語句,因為ー個程序可以沒有輸入但必須要有輸出,而這個語句就是控制輸入輸出的。所以任何ー個程序都必須由這個語句開始。main():是ー個程序的主函數(shù)。ー個程序是由多個函數(shù)組成的,而任何ー個程序都要有一個主函數(shù),有且只有一個。任何程序都是由主函數(shù)開始執(zhí)行的。{):它們兩個必須要成對出現(xiàn),它們中的語句是主函數(shù)體。包括定義部分和執(zhí)行部分。它們中的語句,每一條必須由;結束。:是C語句的ー個組成部分而不是ー個結束標識。/**/:注釋符一定要成對出現(xiàn),不允許嵌套。兩個符號間的語句不被執(zhí)行。例年真題:#include<stdio.h>main()(inta;A=5;/?給A變量賦值5A+=3;再賦值后再加3*/printf("%d”,a);)(11)以下敘述中正確的是(C)。C程序的基本組成單位是語句C程序中的每一行只能寫一條語句(二級C語言程序設計試卷)〇簡單C語句必須以分號結束D)C語句必須在一行內(nèi)寫完(11)以下敘述中正確的是(C)A)C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面B)C程序書寫格式嚴格,要求一行內(nèi)只能寫ー個語句C)C程序書寫格式自由,ー個語句可以寫在多行上D)用C語言編寫的程序只能放在ー個程序文件中第二課:C語言的基礎知識2.2標識符,常量和變量標識符:定義:由字母,數(shù)字和下劃線組成,并且第一個字符必須為字母或下劃線的。這樣的組成就是標識符。下列合法的是:elsewhat#$12334aa34a_ba-blfa=3A=4注意:在C中大寫字母與小字字母被認為是兩個不同的字符。分類:關鍵字:在C中已經(jīng)定義好了的,不能用作它用的。如ifdoubleint等等。預定義標識符:如printfscanf用戶標識符:用戶根據(jù)自己的需求來定義的。(12)以下選項中,能用作用戶標識符的是(C)void8_8_0_unsigned(11)以下選項中合法的標識符是(C)A)1-1B)1—1C)-11D)1—(12)以下選項中不合法的標識符是(C)A)printB)F0RC)&aD)_00常量:定義:是指在程序的執(zhí)行的過程中,其值不會被改變的量。分類:整型常量:沒有小數(shù)的常量如:391234等等都是。實型常量:有小數(shù)點的常量如:3.93.03.字符常量:由單個字符組成的量如:如’b''3'字符串常量:至少由一個字符組成的量如:"a""abc”"beijing”符號常量:符號常量的值到底是多少,這是由在來定義符號常量時來決定的?2*pi(13)以下選項中,能用作數(shù)據(jù)常量的是(D)A)0115B)0118C)1.5el.5D)115L(13)以下選項中不能作為C語言合法常量的是(A)。A)'cd'B)0.le+6C)"\a"D)'\011'(13)以下選項中不屬于字符常量的是(B)A)'C' B)"C"C)'\xCCO'D)'\072'3整型常量與實型常量整型常量的幾個表示方法十進制數(shù):ハ進制數(shù):以〇開頭的數(shù)字,由0-7組成。下列合法的ハ進制數(shù)是A,OB,028C,-0770,01.0十六進制數(shù):以0X開頭,由0-9和A-F組成。A,oxffB,OxabcC,OxllD,0x19實型常量123.4小數(shù)形式:123.4指數(shù)形式:1.234e2.字母e和E之前必須要有數(shù)字.字母e和E之后的數(shù)字必須是整數(shù).字母び和數(shù)字之間不能有空格。A,2.607E-10.8103E2-77.77456E-20.1e+61.23E1.22.2.4變量:.定義:在程序的運行過程中其值可以被改變的量,就叫變量。.原則:變量必須先定義后使用。變量定義的過程就是給變量開辟存儲單元的過程。.分類:整型變量:用關鍵字int來表示.shortint短整型longint長整型在內(nèi)存中占4個字節(jié)如!23Lunsigned無符號如有一200U這就是錯的。變量的定義:inta這是定義了一個整型變量a.實型變量:用關鍵字double或float來表示。float單精度在內(nèi)存中占4個字節(jié)double雙精度在內(nèi)存中占8個字節(jié)。.2.5算術表達式一、基本的算術運算符+-*/%(取余)這些是雙目運算符(就是指操作對象有兩個)注意:除%外,其它的運算符的運算對象可以是整型也可以是實型。%的操作對象只能是整型。如!0%3=1 10.7%310%4.5x%3=0+ー也可以做為單目運算。ー5.4+4.9說明:.如果雙目運算符兩邊運算數(shù)的類型一致,則所得結果的類型與運算數(shù)的類型一致。如1.0/2.0=0.51/2=0.如果雙目運算符兩邊運算數(shù)的類型不一致,則系統(tǒng)會自動進行類型轉(zhuǎn)換,使兩邊的類型ー致后,再進行運算。1.072=0.5.所有的單精度數(shù)據(jù),在運算過程中都以雙精度進行運算。二、優(yōu)先級〇+-*/%+-由高 低如(5+1)/2=???2.5.3強制類型轉(zhuǎn)換表達式格式:(類型名)(表達式)例:(int)3.234=3(double)10%3=?(14)表達式:4-(9)%2的值是(B)A)0B)3C)4D)5(14)設變量已正確定義并賦值,以ド正確的表達式是(C)A)x=y*5=x+zB)int(15.8%5)C)x=y+z+5,++yD)x=25%5.02.6賦值表達式格式:變量名=表達式注:1.不可以顛倒(左邊必須是變量名,右邊必須是C語言中合法的表達式).功能就是先求出右邊表達式的值,然后把此值賦值給賦值號左邊的變量。確切的說是把數(shù)據(jù)存入以該變量為標識的存儲單元中去。a=4,a=7.結合性的優(yōu)先級僅髙于逗號表達式。順序是自右向左的。如a=2+7/3."ビ是ー個賦值號,不是一個等號。.x=y。變量的值也是可以傳遞和賦值的。它的意思就是將變量丫中的值賦值到X中去。同樣N=N+1也成立.賦值運算符的左側(cè)只能是變量,不能是常量或表達式a+b=c這就是違法的.賦值號的右邊也可以是一個賦值表達式。如a=b=7+l:補充;表達式與語句的區(qū)別,表達式后面加一個分號就是語句。2.6.2復合賦值表達式例:a+=3 a=a+3同理可得a*=3/=-=a+=a-=a+a a的初值是9a+=a-=18a+=(a=a-18)a+=(a=-9)a+=a-18(15)若有定義語句:intx=10;,則表達式x?=x+x的值為(B)A)-20B)-10C)0D)10(14)設有定義:intx=2;,以下表達式中,值不為6的是(D)A)x*=x+lx=x*(x+l)x++,2*xx*=(1+x)2*x,x+=2(17)若變量均已正確定義并賦值,以下合法的C語言賦值語句是(A)A)x=y==5;B)x=n%2.5;C)x+n=ID)x=5=4+1;++和——的講解++:自身加1自身減1如i=3 “i++”相當于"i=i+li=4”。單目3++++i i++當++在前,先自身加1,然后再干別人讓干的事情。當++在后,先別人讓干的事情然后再干自身加1。inti=3;inta;a=i++;a=3a=++i ;a=4逗號表達式.定義:用逗號將表達式連接起來的式子成為逗號表達式.格式:表達式1,表達式2, I表達式N.說明a)逗號運算符的結合性為從左到右進行運算,逗號表達式的值是最后ー個表達式的值。b)在所有運算符中,逗號運算度的優(yōu)先級最低。例題:inti=5;inta,b,c;a=(i+8,7,i+7);a=12,i=5b=(i++,++i);b=7,i=7c=(i+7,i++);c=5,i=6第三課:輸入和輸出語句.2輸出語句的講解ー、printf函數(shù)的一般調(diào)用形式格式:printf(格式控制,輸出項1,輸出項2 );在printf函數(shù)的最后面寫上;號就是輸出語句。1,給輸出項白提供輸出格式說明格式說明符:作用:就是使數(shù)據(jù)按格式說明符的要求進行輸出。組成:由%號和緊跟在其后的格式描述符組成。int %dfloat或double―%f或e%char %c.提供原樣輸出的文字或字符在メ’中除了格式說明符之外和轉(zhuǎn)義字符(\n\r\t\a)外的內(nèi)容要全部原樣輸出。各個輸出項之間要用逗號隔開。輸出項可以是任意合法的常量,變量或表達式。printf中常用的格式說明在格式說明符中,每ー個格式說明符都必須以%號開頭由相應的類型標識字母結束。但在他們之間可以有其它的ー個內(nèi)容:%c:輸出ー個字符%d:以帶符號的十進制形式輸出整型數(shù)(正數(shù)不輸出符號)%〇:以8進制無符號形式輸出整型數(shù)(不輸出前導符。)%x:以16進制無符號形式輸出整型數(shù)(不輸出前導符Ox)%u:以無符號十進制形式輸出整型數(shù)%f:以小數(shù)形式輸出單、雙精度數(shù),隱含輸出6位小數(shù)%e:以標準指數(shù)形式輸出單、雙精度數(shù),數(shù)字部分小數(shù)位數(shù)為6位%s:輸出一個字符串。%%:輸出ー個%號%4d:輸出的數(shù)據(jù)長度是4個長度,當原來的長度大于4個時會自動突破。小于4個時會填充空格。%x.yf:x代表數(shù)制的寬度(包括小數(shù)點),y代表小數(shù)點后面的小數(shù)位數(shù).當x比所給數(shù)字長度少時,會自動突破x的值:當y比所給數(shù)字長度少時。會進行四舍五入。例:主程序doublea=123.456;printf(*%x.yf”,a):中輸\Xホ0123456780123123123123-123-123—123—123——1231123.5123.5123.5123.5123.5123.5-123.5-123.5—123.52123.46123.46123.46123.46123.46123.46123.46-123.46-123.463123.456123.456123.456123.456123.456123.456123.456123.456-123.4564123.4560123.4560123.4560123.4560123.4560123.4560123.4560123.4560123.4560注:“「表示空格注意事項:.輸出比較自由ー些,輸出有的各個數(shù)之到底是什么,取決于格式說明符之間的內(nèi)容。.格式說明符要與輸出項 對應。.輸出語句中還可以有\(zhòng)n、\r、\t、'a。.盡量不要在輸出語句中改變輸出變量的值。.輸出的數(shù)據(jù)中如果存在變量,一定要定義過的。習題講解(13)閱讀以下程序#includemain()(intcase;floatprintF;printf(“請輸入2個數(shù):“);scanf("%d%「,&case,&printF);printf("%d%f\n”,case,printF);)該程序編譯時產(chǎn)生錯誤,其出錯原因是(A)A)定義語句出錯,case是關鍵字,不能用作用戶自定義標識符B)定義語句出錯,printF不能用作用戶自定義標識符C)定義語句無錯,scanf不能作為輸入函數(shù)使用D)定義語句無錯,printf不能輸出case的值(16)有以下程序#includemain(){inta=l,b=O;printf(44%d;\b=a+b);printf(t<%d\n,\a=2*b);)程序運行后的輸出結果是(D)0,01,03,21,2

(15)程序段:intx=12;doubley=3.141593;printf("%d%8.6f”,x,y):的輸出結果是(A)123.141593123.141593C)12,3.141593D)123.141593#include<stdio.h>main()(doublea=123.456;printf(M%6.2r,a);輸入語句格式:scanf(格式控制,輸入項1,輸入項2,...);(注:格式控制與輸入項數(shù)相同)例如:想通過鍵盤輸入3個數(shù)分別給變量a,b,c。并且他們分別為整型,浮點型,雙精度型。輸入語句為scanf("%d%f%lf",&k,&a,&y);(&:取址符,且不可少)說明:.格式說明符與輸岀語句一樣。2,在格式串中,必須含有與輸入項ーー對應的格式轉(zhuǎn)換說明符。.在VC6.0的環(huán)境下,要輸入的DOUBLE型數(shù)據(jù)的格式說明符一定要用%If,否則數(shù)據(jù)不能正確的輸入.由于輸入是ー個字符流,所以當輸入的數(shù)據(jù)少于輸入項時,程序會等待用戶輸入,直到滿足要求。當輸入的數(shù)據(jù)多于輸入項時,多余的數(shù)據(jù)會自動作廢。.除了中文用中文輸入法輸入,其他的一概用英文輸入法輸入例:ttinclude<stdio.h>main(){inta;doubleb;floatc;printf(*\n請輸入三個數(shù)字:、n");scanf("%d%lf%f”,&a,&b,&c);printf("你剛オ輸入的數(shù)字是、n%d,\n%lf,\n%f,\n*,a,b,c);}請輸入三個數(shù)字:3請輸入三個數(shù)字:33.345667889124.112345679807567056886你剛オ輸入的數(shù)字是3,3.345668,4.112346,請輸入三個數(shù)字:你剛オ輸入的數(shù)字是2,0.200000,0.200000,.附M、二ぎ■?請輸ん三,請輸入三個數(shù)字:你剛オ輸入的數(shù)字是2,0.200000,0.200000,2.3■H3.234

尸,,—日0.300000.:<1I.234turn.例題:intx;x=ll/3;inty=5;printf("%%d,%%%d\n”,x,y);結果是:%d,%3量已正確說明為int類型,要給a、b、c輸入數(shù)據(jù),以下正確的輸入語句是(D)A)read(a,b,c);B)scanfC%d%d%d,\a,b,c);C)scanf("%D%D%D”,&a,%b,%c);D)scanf("%d%d%d”,&a,&b,&c);量已正確說明為float類型,要通過以下賦值語句給a賦予10、b賦予22、c賦予33,以下不正確的輸入形式是(A)A)10 B)10.0,22.0,33.0 C)10.0 D)10222222.033.03333scanf(t4%f%f%f\&a,&b,&c);復合語句:多個語句被{}括起來,當成一條語句來執(zhí)行??照Z句:最后的表示只有一個;程序舉例:lo編寫ー個程序,從鍵盤上輸入兩個數(shù)字,讓后讓他們互換ー下。#include<stdio.h>main(){inta,b;printf("請輸入兩個數(shù)字:M);scanf(H%2d%3dH,&a,&b);printf("前:%d%du,a,b);intc;c=a,a=b,b=c;printf("后:%d%d”,a,b);}2〇編寫程序,對ー個double型數(shù)據(jù)進行四舍五入運算。要求保留兩位有效小樹。123.45671234567*100=12345.6712345.67+0.5=12346.17(int)(12346.17)=1234612346/100=123.463。編寫程序,使從鍵盤中輸入的三位數(shù)倒著輸出。選擇題、b、c、d、都是int類型變量且初值為0,以下選項中不正確的賦值語句是(C)A)a=b=c=d=100:B)d++;C)c+b:D)d=(c=22)-(b++);選項中不是C語句的是(C)A){inti;i++;printf("%d\n",i);}B);C)a=5,c=10D){;}合法的C語言賦值語句是(D)A)a=b=58B)k=int(a+b)C)a=58,b=58 D)-i;程序的輸出結果是(C)A)0 B)1 C)3 D)不確定的值main(){intx=10,y=3;printf("%d\n",y=x/y);}量已正確說明為im類型,要給a、b、c輸入數(shù)據(jù),以下正確的輸入語句是(D)A)read(a,b,c);B)scanf(tt%d%d%d,,,a,b,c);C)scanfCt%D%D%D,\&a,%b,%c);D)scanf(4t%d%d%d,\&a,&b,&c);量已正確說明為float類型,要通過以下賦值語句給a賦予10、b賦予22、c賦予33,以下不正確的輸入形式是(B)A)10B)10.0,22.0,33.0 C)10.0D)IO222222.033.03333scanfC4%f%f%f;&a,&b,&c);量已正確定義,要將a和b中的數(shù)進行交換,下面不正確的語句組是(C)A)a=a+b,b=a-b,a=a-b;B)t=a,a=b,b=t;C)a=t;t=b;b=a;D)t=b;b=a;a=t;量已正確定義,以下程序段的輸出結果是(D)A)輸出格式說明與輸出項不區(qū)配,輸出無定值B)5.17C)5.168D)5.169X=5.16894;Printf("%f\n”,(int)(x*1000+0.5)/(float)1000);以下程序段,c3中的值是(A)A)0 B)l/2 C)0.5 D)1intcl=l,c2=2,c3;c3=cl/c2;以下程序段,其輸出結果是(B)A)3,0,-10B)0,0,5Q-10,3,-10D)3,0,3inta=O,b=O,c=O;c=(a-=a-5),(a=b,b+3);printf(t4%d,%d,%d\nM,a,b,c);填空題以ド定義,請寫出以下程序段中輸出語句執(zhí)行后的輸出結果。-200,2500(2)i=-2OO.i=5OO(3)i=-2OO冋車i=2500inti=-200,j=2500;printf("(l)%d%d”,i,j);printf("(2)i=%d,j=%d\n”,i,j);printf("(3)i=%d\nj=%d\n”,i,j);i、j、k已定義為int類型并有初值〇,用以下語句進行輸入時scanf("%d",&l);scanf("%d",&j);scanf("%d",&k);當執(zhí)行第一個輸入語句,從鍵盤輸入:12.3<CRxCR>表示Enter鍵則變量i、j、k的值分別是 12 、〇、0 「語句在語法上被認為是一條語名。空語句的形式是二句的最后用二結束。程序段,要求通過scanf語句給變量賦值,然后輸出變量的值。寫出運行時給k輸入100,給a輸入25.81,給x輸入1.89234時的三種可能的輸入形式 ヽヽ〇intk;floata;doublex;scanf("%d%f%lド,&k,&a,&x);printf(4tk=%d,a=%f,x=%f\n,,,k,a,x);編程題和改錯題程序多處有錯。要按下面指定的形式輸入數(shù)據(jù)和輸出數(shù)據(jù)時,請對該程序做相應的修改。main{doublea,b,c,s,v;printf(inputa,b,c:\n);scanf(tt%d%d%d,,,a,b,c);s=a*b;/*計算長方形面積?/v=a*b*c;/*計算長方體體積ッprintf(44%d%d%d,\a,b,c);printfC4s=%f\n,\s;,v=%d\n,,,v);)當程序執(zhí)行時,屏幕的顯示和要求輸入形式如ド:inputa,b,c:2.02.03.0此處的2.02.03.0是用戶輸入的數(shù)據(jù)a=2.OOOOOO,b=2.OOOOOO,c=3.OOOOOO此處是要求的輸出形式s=4.000000,v=l2.000000程序,把560分鐘換算成用小時和分鐘表示,然后進行輸出。程序,輸入兩個整數(shù):1500和350,求出它們的商數(shù)和余數(shù)并進行輸出。程序,讀入三個雙精度數(shù),求它們的平均值并保留此平均值小數(shù)后一位數(shù),對小數(shù)點后第二位數(shù)進行四舍五入,最后輸出結果。程序,讀入三個整數(shù)給a、b、c,然后交換它們中的數(shù),把a中原來的值給b,把b中原來的值給c,把c中原來的值給a。第四課:C語言的程序結構4-1節(jié)、關系運算與邏輯運算ー、簡介關系表達式與邏輯表達式的運算結果都會得到ー個邏輯值。就是“真”、"假”在C語言中。表示“假”,非。(無論是負數(shù)還是正數(shù)都是真,更多時候用1來代替)表示“真”〇二、幾個簡單的關系運算符<<=>>===|=小于小于等于大于大于等于等于不等于由兩個字符組成的運算符,中間不能有空格注意:1,由兩個字符組成的運算符,中間不能有空格2,它們都是雙目運算符,具有自左至右的結合性。3,上面的6個運算符中,前4個的優(yōu)先級要比后2個的優(yōu)先級要高。先計算,后判斷,最后進行賦值運算。三、幾個簡單的邏輯運算符&&與ー假則假II或ー真則真!非非假則真,非真則假1&&2=1。&&6=。inta=4,b=7;a&&7=l注意看y執(zhí)行了多少次,注意看y執(zhí)行了多少次,而不是看公式!x++&&y++? x=ly=7++x&&y++? x=ly=8同樣放在II中也是ー樣的。4-2、4-3節(jié)、if語句ー、定義:只有兩種結果。耍么執(zhí)行這條語句,要么執(zhí)行那條語句。if(條件表達式)上述條件成立執(zhí)行的句子else上述條件不成立執(zhí)行的句子如:if(成績>6。)顯示及格else顯示不及格

二、分類.不含有else的語句if(表達式)語句if語句后接復合語句時需加上大括號。if控制的只有其后面的一條語句,也可以是空語句、或復合語句。if(條件)語句1;語句2; /語句3;注:.沒有分號.控制的是與if或者else緊臨的“一條”語句。if(a<b)printf("%d",b);elseprintf("%d",a);if(a%3==0)yeselseno4-4節(jié)、結合一個例題來給大家分析if的嵌套輸入ー個學生的成績,評定他的等級。每十分ー個等級if()elseif()elseif()elseif(a>=90)printf(Ma");elseif(a>=8O)printf(MbM);elseif(a>=7O)printf("c");elseif(a>=60)printf("dH);

elseprintf(uen);4-5、節(jié)(17)設有定義:inta=l,b=2,c=3;,以下語句中執(zhí)行效果與其它三個不同的是(C)A)if(a>b)c=a,a=b,b=c;if(a>b){c=a,a=b,b=c;}if(a>b)c=a;a=b;b=c;if(a>b){c=a;a=b;b=c;}(18)有以下程序應該選(B)#include<stdio.h>main(){intx;scanf("%d”,&x);if(x<=3;elseif(x!=10)printf("%d\n”,x);}程序運行時,輸入的值在哪個范圍才會有輸出結果A)不等于10的整數(shù)B)大于3且不等于10的整數(shù)C)大于3或等于10的整數(shù)D)小于3的整數(shù)(19)有以下程序(C)#include<stdio.h>Main()(inta=l,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2llc-!=3)printf("%d,%d,%d\n”,a,b,c);elseprintf("%d,%d,%d\n”,a,b,c);elseprintf("%d,%d,%d\n”,a,b,c);}程序運行后的輸出結果是A)1,2,3B)1,3,2C)1,3,3D)3,2,14-6節(jié)、條件表達式是C語言中唯一的ー個三目運算。

格式:表達式1?表達式2:表達式3當1成立(非零時)時,表達式的值就是2的值,否則就是3的值。如:1.1<2?4:5.prindT%d”,xvO?(?l)*++x:x++);(假定X的值為-3).++X>3?(x<3?a:b):b4?7節(jié)、switch語句(一)switch(表達式)(case與常量表達式之間一定要有空格case常量表達式case與常量表達式之間一定要有空格case常量表達式2:語句2case常量表達式3:語句3case常量表達式4:語句4case常量表達式5:語句5case常量表達式N:語句N4?8節(jié)、switch語句(二)switch(A/10)^include<stdio.h>nain()intA;printf(“請輸入您的成績:つ;scanF(aa%daaf&A);switch(A/1O)caselO:printf("A,');case9:printf(MAM);case8;printf("b,');case7;printf(McH);case6;printf(MdM);defaulCprintfC^*');caselOzprintFC'AXn");break;|ca&9:printF("A\n");break;case8:printFCiB\n");break;case7:printF("C\n");break;case6:printF(aaD\naa);break;deFault:printF("E\n");4?9節(jié)——4?15節(jié)、選擇題運算符中優(yōu)先級最高的運算符是(A)A)!B)%C)-=D)&&運算符中優(yōu)先級最低的運算符是(A)A)IIB)!=C)<=D)+示關系x>=y>=z,應使用的C語言表達式是(A)A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)C)(x>=y>=z)D)(x>=y)&(y>=z)、b和c都是int型變量,且a=3,b=4,c=5;則以下的表達式中,值為〇的表達式是(D)A)a&&bB)a<=bC)allb+c&&b-cD)!((a<b)&&!cll1)程序的輸出結果是:(C)A)OB)1C)2D)3main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec+=l;printfft%d\n,\c);)程序的輸出結果是:(A)A)1B)2C)3D)4main(){intw=4,x=3,y=2,z=1;printff4%d\n,,,(w<x?w:z<y?z:x));)行以下程序時從鍵盤上輸入3和4,則輸出結果是(B)A)14B)16C)18D)20main(){inta,b,s;scanf("%d%d”,&a,&b);s=a;if(a<b)s=b;s*=s;printf(44%d\n,,,s);以下程序后,輸出(D)A)####B)&&&&C)####&&&&D)有語法錯誤不能通過編譯main(){intk=-3;if(k<=0)printf(44****\nM);elseprintf("&&&&\n*);和b均是正整數(shù)型變量,以下正確的switch語句是(A)A)switch(pow(a,2)+pow(b,2))(i±:調(diào)用求轟的數(shù)學函數(shù)){easel:case3:y=a+b;break;case0:case5:y=a-b;)B)switch(a*a+b*b);{case3::y=a+b;break;caseO:y=b-a;break;)C)switch()a{default:x=a+b;case10:y=a-b;break;:y=a*d;break;)D)switch(a+b){case10:x=a+b;break;easel1:y=a-b;break;)二、填空題[4.111C語言中用非〇表示邏輯值“真”,用セ表示邏輯值“假”。言中的關系運算符按優(yōu)先級別是(!=<=)_!=><=言中的邏輯運算符按優(yōu)先級別是(II&&!)言中的關系運算符和邏輯運算符的優(yōu)先級別是(==&&)言中邏輯運算符!的優(yōu)先級高于算術運算符。列數(shù)學式改寫成C語言的關系表達式或邏輯表達式A)a=bllavc和B)x>4llx<-4A)a=b或a<cB)lxl>4出以下程序的輸出結果丄。main(){inta=100;if(a>1OO)printfC*%d\n,,,a>100);elseprintf(4t%d\n,\a<=100);)出與以下表達式等價的表達式A)X<=0B)lA)!(x>0)B)!0=l,b=2,c=3時,以下if語句執(zhí)行后,a、b、c中的值分別為3、2、2if(a>c)b=a;a=c;c=b;量巳正確定義,以下語句段的輸出結果是望x=0,y=2,z=3;switch(x){case0:switch(y==2){case1:printfC**M);break;case2:printf(4i%,,);break;}case1:switch(z){easel:printf("$");case2:printf(t4*,,);break;default:printf("#’');三、編程題以下語句改寫成switch語句。if(a<30)m=l;elseif(a<40)m=2;elseif(a<50)m=3;elseif(a<60)m=4;elsem=5;程序,輸入一位學生的生日(年:yO、月:mO、B:dO);并輸入當前的日期(年:yl>月:ml、S:dl);輸出該生的實足年齡。程序,輸入ー個整數(shù),打印出它是奇數(shù)還是偶數(shù)。程序,輸入a、b、c三個數(shù),打印出最大者。函數(shù):x(-5<x<0)y=x-l(x=O)x+l(0<x<10)編寫ー程序,要求輸入X的值,輸出y的值。分別用(1)不嵌套的if語句(2)嵌套的if語句(3)if-else語句(4)switch語句第五課:循環(huán)結構5-1、5-2節(jié)、while語句ー、格式:while(表達式)循環(huán)體注:while是關鍵字小括號與小括號里面的內(nèi)容都不能少while循環(huán)控制的是緊鄰著while的“一條”語句(可以是復合語句)while后沒有‘while(a<3)l{a+=s;2s=a;3}1…….100inti=l,sum=0;while(i<101)sum=sum+i++;printf(H%dM,sum);叢!開始加到哪個數(shù)時他們的和將超過100〇?inti=l,sum=O;while(sum<1000){sum+=i;999+42=1041i++;}4243printf(H%du,-i);do-while相當于直到型循環(huán):while相當于當型循環(huán)。5?3節(jié)、dodo-while相當于直到型循環(huán):while相當于當型循環(huán)。dowhile()格式:do循環(huán)體while(表達式)1235813doa3=al+a2;al=a2;

a2=a3;}while(a3<=1000);1:12:;5?4節(jié)、for語句(1)for語句和for語句構成的循環(huán)結構ー、格式:for(表達式1;表達式2;表達式3)循環(huán)體相當于while語句的表達式1;while(表達式2){ 進行判斷的邏輯表達式循環(huán)體;表達式3;1 變量的自變例:欲輸出10個“*”號:for(k=0;k<=10;k++)["明確循環(huán)幾次{printf("*"); _ }相當于:intk=0;while(k<10){primf("種);k++;)注:1:表達式可以省略,但分號不可以。2:表達式可以是任意有效的C語言表達式k=0for(;k<=10;){printf(^^*^,);k=0for(;k<=10;){printf(^^*^,);k++;)for(k=0;k<=l〇;1++,k++I)

{printf(,,*u);5-4節(jié)break與continue語句break:終止了break所在的當層循環(huán)體的執(zhí)行。continue:跳過循環(huán)體continue下面的語句返回到循環(huán)體開始的地方進行下次循環(huán)。例:求s=l+2+…+i,求s第一次大于5000時的值及此時的i值。main()(inti=l,s=0;for(;;i++){s+=i;if(s>5000)break;}printf(<<s=%d,i=%d,,,s,i);第六課、字符型數(shù)據(jù)6-1節(jié)、字符型常量格式:匕”要求:1,單引號中的大寫字母和小寫字母代表不同的字符常量。.單引號中的空格也是一個字符常量,但不能是兩個連續(xù)的單引號.字符常量只能用單引號括起來,不能用雙引號。轉(zhuǎn)義字符\n代表回車'’代表ー個單引號’\\代表?個、'”代表一個雙引號注意:.轉(zhuǎn)義字符常量,如‘'14ド只代表一個字符.反斜線后的8進制數(shù)可以不用。開頭。如1中所講的141就是ー個8進制數(shù)。0141.反斜線后的16進制數(shù)只可以用x開頭,不可以用X開頭。字符串常量格式:由雙引號括起來的一串字符。同時也要知道“A”和,A,是不ー樣的。liA"*A"ACSI!碼A65a97la'-'A'=32大小寫字母在阿斯克依碼中相差32..2節(jié)、字符變量格式:chara='s'.3字符的輸入和輸出printf和scanf函數(shù)輸出和輸入字符對于字符型數(shù)據(jù)的格式說明符是%ccharc='a';printf("%c”,c);chara,b,c,d;scanf("%c%c%c",&a,&b,&c);6-3節(jié)、程序舉例寫出26個大寫字母和他們的ASCII代碼要求每行輸出兩組數(shù)據(jù)。#include<stdio.h>main()(charch;intl;for(i=0;i<26:i++)ch=i+65;if(i%2==0)printf("\n”);printf(4tc=%c,ASCn=%d,\ch,ch);在上面的程序中有對于字符的輸入與輸出,在C語言中也有另外的輸入輸出字符的語句。輸入:變量名=getchar()輸出:pulchar(變量名)第七章函數(shù)分類:庫函數(shù)自定義函數(shù)作用:為了解決固定問題而編寫的程序。當他在其他程序中也要解決相應的問題時,就不用再重新編寫了。提髙了程序效率。7-1節(jié)、庫函數(shù).調(diào)用C語言標準庫函數(shù)時要求的include命令行include命令行必須以#開頭,系統(tǒng)提供的頭文件以.h作為文件的后綴,文件名用ー對雙引號或ー對尖括號(需要注意include命令行不是C語句,因此不能在最后加分號).標準庫函數(shù)的調(diào)用:函數(shù)名(參數(shù)表)如:putchar(ch)(1)出現(xiàn)在表達式中的:ch=getchar()(2)做為單獨的語句完成某種操作。-:printf(“********”);函數(shù)的定義和返回值由于C語言中的定義的函數(shù)不能完成用戶所有的要求,所以用戶可以為自己定義函數(shù)實現(xiàn)相應的功能。 函數(shù)定義的語法 一只能是用戶自定義標識符,不1:格式: 能用關鍵字,庫函數(shù)名函數(shù)返回值的類型名|函數(shù)名(類型名形式參數(shù)1,類型名形式參數(shù)2……)說明部分語句部分)2;函數(shù)名和形式參數(shù)都是用戶命名的標識符。在同一個程序中,函數(shù)名必須唯一(包括大小寫),形式參數(shù)名只要在同一函數(shù)中唯一即可,可以與其他函數(shù)中的變量同名。3:C語言規(guī)定,不能在函數(shù)的內(nèi)部定義函數(shù)。4:若在函數(shù)的首部省略了函數(shù)返回值的類型名,則說明該函數(shù)的返回值是int類型5;除了返回值類型為int類型的函數(shù)外,函數(shù)必須先定義后調(diào)用。6:當沒有函數(shù)返回值,則必須把函數(shù)定義成void類型。例:編寫求兩個雙精度數(shù)之和的函數(shù)。doubleadd(doublea,doubleb)(doubles;s=a+b;returns;}7?2節(jié)、函數(shù)的返回值函數(shù)的值通過return語句返回,return表達式;

此表達式的值必須與函數(shù)首部所說明的類型一致,若類型不一致,則以函數(shù)值的類型為準。需要注意的是,無論函數(shù)體中有多少個return語句,只能執(zhí)行ー次。函數(shù)體內(nèi)可以沒有return語句,這時也必須定義函數(shù)為viod類型。節(jié)、函數(shù)的調(diào)用函數(shù)的兩種調(diào)用方式格式為:函數(shù)名(實在參數(shù)表)當實參的個數(shù)多于ー個時,各實參用逗號隔開。實參的個數(shù)必須與調(diào)用函數(shù)中形參的個數(shù)相周,類型ーー対應匹配。如沒有形參,則形式為函數(shù)名〇注意后面的小括號不能丟。如c=getchar()如題: 函數(shù)的說明部分,此處需要有分號#include<stdio.h>1#include<stdio.h>1doubleadd(double,double);main()(doublem,n,z;scanf(44%lf%lf\m,n);z=add(m,n);printf(44%lf;z);\)doubleadd(doublea,doubleb)(doubles;s=a+b;returns;}doubleadd(doublea,doubleb){doubles;s=a+b;returns;)main()(doublem,n,z;scanf(t4%lf%lf\m,n);z=add(m,n);printf(M%lf\z);\3.2函數(shù)調(diào)用時的語法要求.調(diào)用函數(shù)時,函數(shù)名必須與所調(diào)用的函數(shù)名字完全一致。.實參的個數(shù)必須與形參的個數(shù)一致。.C語言中規(guī)定,函數(shù)必須先定義后使用。.C語言中,函數(shù)可以直接或間接的自己調(diào)用自己。稱為遞歸調(diào)用如:階乘:fac(n)=fac(n-l)*n7-4節(jié)、函數(shù)的說明在C語言中凡是未在調(diào)用前定義的函數(shù),C編譯程序都默認函數(shù)的返回值為int型。對于返回值是其它類型的,若把函數(shù)的定義放在調(diào)用之后,應該在調(diào)用之前對函數(shù)進行說明。說明的格式:類型名函數(shù)名(參數(shù)類型1,參數(shù)類型2.。。。。)也可以用以下格式類型名函數(shù)名(參數(shù)類型1參數(shù)名1,參數(shù)類型2參數(shù)名2,……)函數(shù)說明的位置:一般為了讓程序早點識別出程序中的定義好了的函數(shù),一般將其放在程序的開始部分7-5節(jié)、調(diào)用函數(shù)和被調(diào)用函數(shù)之間的數(shù)據(jù)傳遞一:三種格式進行傳遞.實在參數(shù)和形式參數(shù)之間進行數(shù)據(jù)傳遞.通過return語句把函數(shù)值返回調(diào)用函數(shù).能過全局變量,但這不是一種好的方式,通常不提倡使用。通過一個程序來看一下數(shù)據(jù)到底是怎樣傳遞的。#include<stdio.h>viodtry(int,int,int);main()(int=2,=3,/=0;printf(M(l)=%d=%d=%d\n”,\,,「);try(printf("(4)\=%d\=%d/=%d\n",ヽ,>,/);注意:與形參的區(qū)分)voidtry(intx,inty,intz)[printf("(2)x=%dy=%dz=%d\n”,x,y,z);z=x+y;x=x*x;y=y*y;printf("(3)x=%dy=%dz=%d\n”,x,y,z");)屏幕上的結果是:(1)x=2y=3z=0(2)x=2y=3z=0(3)x=4y=9z=5(4)x=2y=3z=0再來ー個程序#include<stdio.h>viodswap(intjnt);main()(intx=10,y=20;printf("(l)x=%dy=%d\n”,x,y);swap(x,y);printf(tt(4)x=%dy=%d\n,,,x,y);voidswap(inta,intb){intt;printf(tt(2)a=%db=%d\n,,,a,b);t=a;a=b;b=t;printf(tt(3)a=%db=%d\n,,,a,b);)程序運行結果(l)x=10y=20(2)a=10b=20⑶a=20b=10(4)x=10y=207.6程序應用舉例編寫ー個函數(shù)isprime(inta),用來判斷自變量a是否為素數(shù)。若是素數(shù),函數(shù)返回整數(shù)1,否則返回0.#include<stdio.h>indsprime(int);main()(intx;printfC'enteraintegernumber:^^);scanf("%d”,&x);if(isprime(x))printf(**%disprime\n",x);elseprintf("%disnotprime\n",x);}intisprime(inta){inti;for(i=2;i<=a/2;i++)if(a%i==0)retumO;return1;}編寫函數(shù)myupper(ch),把ch中的小寫字母轉(zhuǎn)換成大寫字母作為函數(shù)值返回,其他字符不變。主函數(shù)中不斷輸入字符,用字符@結束輸入,同時不斷輸出結果。#include<stdio.h>#include<ctype.h>charmyupper(charch)if(ch>=,a,&&ch<=,z,)ch=ch-32;returnch;}main()(chare;while((c=getchar())!=,@,)(c=myupper(c);putchar(c);))編寫函數(shù)統(tǒng)計輸入字符的個數(shù),用@字符結束輸入,在主函數(shù)中調(diào)用此函數(shù),輸出統(tǒng)計結果。#include<stdio.h>longcountch();main(){longn;n=countch();printf("n二%ld\n”,n);}longcountch(){longcn;for(cn=0;getchar()!=*@*;cn++)?returncn;)7,10…,7-13節(jié)、課后習題說法中正確的是CA)C語言程序總是從第一個定義的函數(shù)開始執(zhí)行B)在C語言程序中,要調(diào)用的函數(shù)必須在main函數(shù)中定義C)C語言程序總是從main函數(shù)開始執(zhí)行D)C語言程序中的main函數(shù)必須放在程序的開始部分函數(shù)的類型是CA)與參數(shù)x的類型相同B)void類型C)int類型D)無法確定fff(floatx){printf("%d\n",x*x);}函數(shù)調(diào)用語句中,含有的實參個數(shù)是BA)1B)2C)4D)5func((exp1,exp2),(exp3,exp4,exp5));程序的輸出結果是CA)11B)2OC)21D)31func(inta,intb){intcc=a+b;returnc;)main(){intx=6,y=7,z=8,r;r=func((x-,y++,x+y),z-);printf(M%d\nH,r);程序的輸出結果是AA)-1B)OC)1D)2main(){inti=2,p;p=f(i,i+l);printf("%d”,p);intf(inta,intb){intc;c=a;if(a>b)c=l;elseif(a==b)c=O;elsec=-l;retum(c);)程序的輸出結果是DA)OB)1C)6D)無定值fun(inta,intb,intc){c=a*b;}main(){intc;fun(2,3,c);primf("%d\n”,c);)程序的輸出結果是AA)5.5OOOOOB)3.OOOOOOC)4.OOOOOOD)8.25doublef(intn){inti;doubles;s=1.0;for(i=1;i<=n;i++)s+=1.0/i;returns;main(){inti,m=3;floata=O.O;for(i=0;i<m;i++)a+=f(i);printf(H%f\nM,a)L;)二、填空題程序的輸出結果是12.unsignedfun6(unsignednum){unsignedk=l;do{k*=num%10;num/=10;|while(num);returnk;)main(){unsignedn=26;printf(0%d\n,\fun6(n);)程序的輸出結果是ー9.0.doub1esub(doublex,doubley,doublez){y-=1.0;z=z+x;returnz;}main(){doublea=2.5,b=9.0;printf("%f\nM,sub(b-a,a,a));}程序的輸出結果是ー4.funl(inta,intb)(intc;a+=a;b+=b;c=fun2(a,b);returnc*c;)fun2(inta,intb){intc;c=(a*b)%3;returnc;}main(){intx=ll,y=19;

printf(H%d\nH,funl(x,y));pi函數(shù)的功能是,根據(jù)以下公式返回滿足精度要求的的值.請?zhí)羁?pi/2=l+l/3+l/3*2/5+l/3*2/5*3/7+l/3*2/5*3/7*4/9+...doublepi(doubleeps){doubles=0.0,t=1.0;intn;for(—n=1—;t>eps;n++){s+=t;t=n*t/(2*n+l);)retum(2.0*—S );)函數(shù)用以求x的y次方.請?zhí)羁?doublefun(doublex,inty){inti;doublez=l;for(i=l;i <=y—;i++)z= z*x—;retumz;}n.程序的功能是計算S=SK!.請?zhí)羁?longf(intn)K=1longf(intn)K=1(intiJongs;s=_1 ;for(i=1;i<=n;i++)s=_s*i ;returns;)main()(longs;intk,n;scanf(r,%dr;&n);s=0 :for(k=0;k<=n;k++)s=s+ f(k)一;printf(n%ld\n",s);)三、程序調(diào)試和編程題fun函數(shù)用以判斷n是否是素數(shù),fun函數(shù)中有邏輯錯,請調(diào)試改正.fun(intn){intk,yes;for(k=2;k<=n/2;k++)if(n%k==O)returnyes=O;yes=l;returnyes;第八章:指針變量變量的地址和指針:在最開始的時候,一直給大家強調(diào)變量要先定義,后使用。為什么會這個樣子?這是因為,每當我們使用ー個變量系統(tǒng)就必須要給他開辟ー個存儲單元。系統(tǒng)要對它的值進行記錄。每時每刻的記錄。怎樣進行記錄呢?系統(tǒng)會自動的開辟ー個地方將該變量監(jiān)督起來,觀察和記錄它的變化。這個地方多大放什么東西?這都要求我們提前和系統(tǒng)說好。所以就有了變量要先定義在使用說法。其實變量定義的過程就是給他開辟存儲空間的過程。那么存儲空間又是什么東西呢??計算機種有一個硬件叫內(nèi)存條,當我們提起這個硬件的時候往往都會說多大的。1G,2G,4G……這都是在說他的空間大小。計算機中的內(nèi)存是以字節(jié)為單位的一片連續(xù)的存儲空間,每一個字節(jié)都有一個編號,這個編號就稱為內(nèi)存地址。如同旅館的房間ー樣,單人間,雙大間等等,每個房間都有自己的編號。內(nèi)存中的空間是連續(xù)的,地址號也是連續(xù)的,并且都是用二進制數(shù)來表示的。變量在定義的時候先要說明定義的類型。如:intk;doubleb;charch;等等如此的定義。這樣是在和電腦系統(tǒng)打招呼,我們是2大要一個兩人間。目的就是告訴老板你的房間要是兩個人的空間。不能定的是2大間,結果來了3個大住;同時也不能定的2人間,結果就你自己來了(對自己來說多花錢了)。綜上所述:變量的定義就是給變量開辟存儲空間的過程。inta floatbaabbbb1012 101310141015 10161017這就是變量定義的時候系統(tǒng)給隨即開辟的地址空間、再結合我們在一開始降的不同類型的變量的大小,其實就是在說變量所占的內(nèi)存單元的多少。1012就是整形變量a的首地址,1014就是浮點型變量b的首地址。當要用到ー個變量時,系統(tǒng)就會迅速的找到這個變量。所以在C程序中還有這樣的ー個變量的存在,就是指針。指針就是用來存放ー個變量在內(nèi)存中的地址,當要調(diào)用這個變量的時候能迅速的找到。用來存放ー個變量地址的變量就叫指針變量。同時大家也要走出一個誤區(qū)就是:指針變量之所以叫變量,就是因為它里面所存放的變量的地址也不斷的變化的。指針是可以移到的。指針變量的定義和指針變量的基類型一:格式:類型名?指針變量名1,?指針變量名2….如int*pi,*pj;與之前不一樣的地方就是在變量的前面加了一個?。?是ー個說明符,用來說明該變量是指針變量。?號省略的話就和普通的變量一樣了。又如:int*pi;char*ch;inta;charc;指針的作用都是ー樣的,都是用來存放地址的,為什么還要分類型的。原因就是指針變量pi只能存放整型變量的地址,指針變量Ch只能存放字符變量的地址。如何讓一個指針存放ー個變量的地址呢?

pi=&a;ch=&c;&叫取址符。?叫指針運算符。能過以上的講解在家一定對指針有了更進ー步和了解。我們共同的回顧一下;變量的定義就是給其開辟存儲單元的過程。任何ー個變量都有自己的存儲地址。指針就是用來存放變量地址的。指針也是ー個變量。指針也要一個地址。那,有沒有能存放指針變量地址的ー個對象呢?用該怎么稱呼?有它是專門用來存放指針的地址的。它就是指向指針的指針。int**p,*s;p=&s;**p就是ー個指向指針的指針。它里面只能存放同種數(shù)據(jù)類型的指針的地址。給指針變量賦地址值一個指針變量可以通過不同的方式獲得一個確定的地址值,從而指向ー個具體的對象。(在以后的課程中,每當一個指針中存放了一個變量的地址的時候,我們就說這個指針指向了這個變量)。intk=l,*q,*p;q=&k;這時可以說:q指向了變量k;q=&k+lq=&(k+l)這都是錯誤的,指針q就是用來存放地址的,前兩個例子不是。同時:&必須放在運算對象的左邊,而且運算對象的類型必須與指針變量的基類型相同。2,通過指針變量獲得地址值可以通過賦值運算,把ー個指針變量中的地址值賦給另ー個指針變量,從而使這兩個指針指向同一地址。intk,*p,*q;q=&k;p=q;也就是說指針變量p和q都指向了變量k.注:當進行賦值運算時,賦值號兩邊指針變量的基類型必須相同。3.給指針變量賦“空”值:“空'':null的代碼值為0,當執(zhí)行了以上和賦值語句后,稱P為空指針。null的代碼值為0.也可表示為:p='、〇'p=O;注意:P并不是指向地址為〇的存儲單元,而是一個有確定的值‘‘空"。8.4對指針變量的操作C語言提供了一個稱作“間接訪問運算符”的單目運算符:當指針變量中存放了ー個確切的地址值是,就可以用“間接運算預算符”通過指針來引用該地址的存儲單元。int*p,i=10,j;P=&>;則這樣的賦值語句j=*P;上面的這個賦值語句我們可以這樣理解:j變量的值是由指針指向的空間中的值賦予的。這里的?p代表指針p中存放的變量i的地址中的值。?不是乘而是用來說明指針的說明符。j=i j=*(&i)如果有這樣的表達式代表:j=*p+l代表指針P指向的空間中中的值加1后的值給了變量j;再如int*p,k=O;p=&k;*p=100;*p+=l;注意:當?p出現(xiàn)在賦值號左邊時,代表的是指針所指的存儲單元,當出?p出現(xiàn)在賦值號右邊時,代表的是指針所指的存儲單元的內(nèi)容。如果有:*p+=l++*p(*p)++這三個表達式有什么不一樣嗎?++和?兩個運算符的優(yōu)先級相同。但按自右至左的方向結合。因此++*p相當于++(*p)。而在(*p)++中,ー對括號不可以少,(*p)++代表先取里面的值然后再加1。而如果去掉怎成了?p++,根據(jù)順序,先++然后再取值。這樣就成了先p++再取值。而P++就是指針先向后移動。例8,1用指針指向兩個變量,通過指針運算選出值小的那個數(shù)。#include<stdio.h>main()(inta,b,min,*pa,*pb,*pmin;pa=&a;pb=&b;pmin=&min;scanf(u%d%d,\pa,pb);printf(4ta=%d,b=%d\n*\a,b);*pmin=*pa;if(*pa>*pb)*pmin=*pb;printf(umin=%d\n,,,min);8.4移動指針所謂移動指針就是對指針變量加上減去一個整數(shù),或通過賦值運算,使指針變量指向相鄰的存儲單元。(因此只有當指針指向ー串連續(xù)的存儲單元時,指針的移動オ有意義)1122334455a[0]a[l]a[2]a[3]a[4]qtp=&a[O]q=p+2q++q++qーーp++對指針進行加減運算時,數(shù)字“1”不再代表十進制數(shù)1,而是指一個単位存儲単元長度。這個單元到底多長,要看存儲數(shù)據(jù)的類型了。如果是int則代表1個存儲単元長度就是位移4個字節(jié)。如果是char類型則代表1個存儲單元長度就是位移1個字節(jié).如果變量的類型是double,8個字節(jié)為ー個單位,而指向它的指針是int,4個字節(jié)為ー個單位。那么這個時候指針每移動ー個単位就代表移動4個字節(jié)的長度,這個時候讀取數(shù)據(jù)的時候就會岀錯。8.5函數(shù)之間地址值的傳遞▲形參為指針變量時參數(shù)和形參之間的數(shù)據(jù)傳遞若函數(shù)的形參為指針類型,調(diào)用該函數(shù)時,對應的實參必須是基類型相同的地址值或者是已指向某個存儲單元的指針變量。例題:編寫函數(shù)myadd(int*a,int*b),函數(shù)中把指針a和b所指的存儲單元中的兩個值相加,然后將和值作為函數(shù)值返回。在主函數(shù)中輸入兩個數(shù)給變量,把變量地址做為實參,傳給對應的形參。#include<stdio.h>intmyadd(int*a,int*b){intsum;sum=*a+*b

溫馨提示

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

評論

0/150

提交評論