2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第3章 簡單的C程序設(shè)計,哈爾濱工業(yè)大學(xué)計算機(jī)學(xué)院蘇小紅sxh@hit.edu.cn,C語言大學(xué)實(shí)用教程,內(nèi)容提要,字符輸入輸出函數(shù)格式輸入輸出函數(shù),C語言中的語句,變量聲明語句int x, y;表達(dá)式語句i++;i = i + 1;空語句;復(fù)合語句{t = x; x = y; y = t;}控制語句,順序結(jié)構(gòu)程序的基本操作,如何在程序中給變量賦值?賦值表達(dá)式語句賦值表達(dá)式;Total = m * pow(

2、1+r, n);如何進(jìn)行數(shù)據(jù)的輸入輸出?輸入:從標(biāo)準(zhǔn)輸入設(shè)備上輸入數(shù)據(jù)到計算機(jī)內(nèi)存輸出:將計算機(jī)內(nèi)存中的數(shù)據(jù)送到標(biāo)準(zhǔn)輸出設(shè)備C語言中輸入輸出操作通過調(diào)用標(biāo)準(zhǔn)庫函數(shù)來實(shí)現(xiàn)#include "stdio.h" 在當(dāng)前目錄和TC指定的目錄中找該文件#include 在由TC指定的文件目錄中找該文件,復(fù)合語句,在什么情況下使用復(fù)合語句?條件語句和循環(huán)語句在語法上只允許帶一條語句當(dāng)分支和循環(huán)中需要進(jìn)

3、行多項(xiàng)操作時,{ t=x; x=y; y=t;},被當(dāng)作一條語句來處理,,例3.1,main(){ int a = 0; { int a = 1; printf("In: a = %d\n", a); } printf("Out: a = %d\n", a);},In: a = 1Out: a = 0,空語句

4、,空語句有什么作用?什么也不做,只表示語句的存在自頂向下程序設(shè)計時用在那些未完成的模塊中延時用的空循環(huán),main(){ DataInitialze(); DataProcess(); DataOutput();},DataInitialze(){ ; },字符輸入輸出函數(shù),字符輸出函數(shù)putchar(ch)輸出一個字符ch字符輸入函數(shù)getchar()無參數(shù)函數(shù)值為從輸入設(shè)備接收的字符,#in

5、clude main(){ char ch; printf("Press a key and then press Enter:"); ch = getchar(); printf("You pressed "); putchar(ch); putchar('

6、;\n');},運(yùn)行程序,Press a key and then press Enter:,311,,,,,,,,A↙,You pressed,A,例3.2,該語句的作用是什么?,格式輸出函數(shù),格式輸出函數(shù)printf(格式控制字符串, 輸出項(xiàng)表列);輸出若干個任意類型的數(shù)據(jù)printf("a=%d b=%f", a, b);,函數(shù)名,輸出表列,普通字符,,,,輸出常用輸出函數(shù):printf

7、 將信息送到標(biāo)準(zhǔn)輸出(一般送到屏幕或特定窗口)  printf(格式描述串, 其他參數(shù));函數(shù)調(diào)用形式:函數(shù)名,括號,函數(shù)參數(shù),多個參數(shù)用逗號分隔,語句:程序基本單位,以分號為結(jié)束符 printf("Good morning!\n");一個完成輸出的語句,printf的功能: printf(格式描述串, 其他參數(shù))第一個參數(shù)應(yīng)是字符串,可以有其他參數(shù)。如果“格式描述串”里沒有 %,也沒有其他參數(shù)

8、,printf輸出格式描述串。,printf("Welcome\nto\nBeijing!\n");輸出三行字符:WelcometoBeijing!,轉(zhuǎn)換描述(描述數(shù)據(jù)的輸出轉(zhuǎn)換方式)格式串中%開始的段意義特殊( “轉(zhuǎn)換描述”)每個轉(zhuǎn)換描述說明一參數(shù)的輸出形式(轉(zhuǎn)換方式)。特別注意(!!):轉(zhuǎn)換描述和“其他參數(shù)”個數(shù)一致。轉(zhuǎn)換描述和對應(yīng)參數(shù)的類型必須一致。,輸出整數(shù):printf(”Test: %

9、d + %d = %d\n", 2, 3, 5);,輸出長整數(shù):printf(”Test: %ld + %d", 3L, 5);,d 以帶符號十進(jìn)制整數(shù)輸出o 以八進(jìn)制無符號整數(shù)輸出(無前導(dǎo)0)x 以十六進(jìn)制無符號整數(shù)輸出(無前導(dǎo)0x)u 以十進(jìn)制無符號整數(shù)輸出c 以字符形式輸出單個字符s 輸出一個字符串f 以小數(shù)形式輸出浮點(diǎn)數(shù)(6位小數(shù))e 以標(biāo)準(zhǔn)指數(shù)形式輸出(6位小數(shù))g 選用%f,%e中輸出寬

10、度較小的一種格式,printf格式字符,l 長整型整數(shù),加在d、o、x、u前L long double型數(shù),加在f、e、g前m 表示數(shù)據(jù)占用的最小寬度 數(shù)據(jù)寬度大于m,按實(shí)際寬度輸出 數(shù)據(jù)寬度小于m時,補(bǔ)空格n 對實(shí)數(shù)表示輸出n位小數(shù) 對字符串表示最多輸出的字符個數(shù)- 改變輸出內(nèi)容的對齊方式 缺省為右對齊,printf附加格式說明符,#include main()

11、{float f1 = 100.15799, f2 = 12.55, f3 = 1.7;int n1 = 123, n2 = 45, n3 = 6; printf("printf WITHOUT width or precision specifications:\n");printf("%f\n%f\n%f\n&q

12、uot;, f1, f2, f3);printf("%d\n%d\n%d\n", n1, n2, n3);printf("printf WITH width and precision specifications:\n");printf("%5.2f\n%6.1f\n%3.0f\n", f1, f2, f3);printf("%5d\n%

13、6d\n%3d\n\n", n1, n2, n3);},例3.8,格式輸入函數(shù),格式輸入函數(shù)scanf(格式控制字符串, 地址表列);scanf("%d,%f”, &a,&b);,格式輸入函數(shù),常見錯誤scanf("%d,%f\n”,&a,&b);scanf("%d,%f”,a,b);scanf("%7.2f",&a);,d

14、 以帶符號十進(jìn)制形式輸入整型數(shù)據(jù)o 以八進(jìn)制無符號形式輸入(無前導(dǎo)0)x 以十六進(jìn)制無符號形式輸入(無前導(dǎo)0x)c 以字符形式輸入單個字符s 輸入字符串,以非空字符開始,遇第一個 空白字符結(jié)束f 以小數(shù)形式輸入浮點(diǎn)數(shù)e 以標(biāo)準(zhǔn)指數(shù)形式輸入,scanf格式字符,l 加在d、o、x、u前:輸入長整型 加在f、e 前:輸入雙精度型L 加在f、e 前:輸入long double型h 加在d、o、x

15、前:輸入短整型m 表示數(shù)據(jù)占用的寬度* 本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量,scanf附加格式說明符,注: 調(diào)用函數(shù)printf()時,float類型的參數(shù)都是轉(zhuǎn)化為double類型后再傳遞的,所以%f可以輸出double和float兩種類型的數(shù)據(jù),不必用%lf輸出double型數(shù)據(jù)。 調(diào)用函數(shù)scanf()時, 如果是float類型則對應(yīng)輸入轉(zhuǎn)換符為%f,而double類型的輸入轉(zhuǎn)換符為%lf。

16、例: float x; double y; scanf(“%f %lf”,&x,&y); printf(“x=%f,y=%f”,x,y);,#include main(){ int a, b; printf("Please input a and b:"); scanf("%d%d", &a, &

17、;b); printf("a=%d, b=%d, a+b=%d\n",a,b,a+b);},Please input a and b:,a=12, b=34, a+b = 46,12 34↙,例,遇空格、TAB 鍵時結(jié)束,#include main(){ int a, b; printf("Please input a and b:"); scanf("

18、;%d%d", &a, &b); printf("a=%d, b=%d, a+b=%d\n",a,b,a+b);},Please input a and b:,a=12, b=34, a+b = 46,12↙,例,遇回車鍵時結(jié)束,34↙,#include main(){ int a, b; printf("Please input a and b:&q

19、uot;); scanf("%2d%2d", &a, &b); printf("a=%d, b=%d, a+b=%d\n",a,b,a+b);},Please input a and b:,a=12, b=34, a+b = 46,1234↙,例,遇寬度時結(jié)束,#include main(){ int a, b; printf("Ple

20、ase input a and b:"); scanf("%2d%2d", &a, &b); printf("a=%d, b=%d, a+b=%d\n",a,b,a+b);},Please input a and b:,a=12, b=3, a+b = 15,123a↙,例,遇非法輸入時結(jié)束,#include main(){ int a, b;

21、 printf("Please input a and b:"); scanf("%d,%d", &a, &b); printf("a=%d, b=%d, a+b=%d\n",a,b,a+b);},Please input a and b:,a=12, b=34, a+b = 46,12,34↙,例,這里逗號需要原樣輸入,#include

22、 main(){ int a, b; printf("Please input a and b:"); scanf("%2d%*2d%2d", &a, &b); printf("a=%d, b=%d, a+b=%d\n",a,b,a+b);},Please input a and b:,a=12, b=56, a+b = 68,

23、123456↙,例3.9,跳過一個輸入項(xiàng),#include main() {int a, b;scanf("%d %d", &a, &b);printf("a = %d, b = %d\n", a, b);},問題1:當(dāng)要求程序輸出結(jié)果為 a = 12, b = 34時,用戶應(yīng)該如何輸入數(shù)據(jù)?,12 3

24、4↙,輸入數(shù)據(jù)的格式控制——例3.10,#include main() {int a, b;scanf("%d %d", &a, &b);printf("a = %d, b = %d\n", a, b);},問題2:當(dāng)限定用戶輸入數(shù)據(jù)以逗號為分隔符,即輸入數(shù)據(jù)格式為: 12,34↙時,應(yīng)修改程序中的哪條語句?怎樣修改?,scan

25、f("%d,%d", &a, &b);,輸入數(shù)據(jù)的格式控制——例3.10,#include main() {int a, b;scanf("%d %d", &a, &b);printf("a = %d, b = %d\n", a, b);},問題3:語句scanf("%d %d", &a

26、mp;a, &b);修改為scanf("a = %d, b = %d", &a, &b);時,用戶應(yīng)該如何輸入數(shù)據(jù)?,a = 12, b = 34↙,輸入數(shù)據(jù)的格式控制——例3.10,#include main() {int a, b;scanf("%d %d", &a, &b);printf("a = %d

27、, b = %d\n", a, b);},問題4:限定用戶輸入數(shù)據(jù)為以下格式為 1234↙ 同時要求程序輸出結(jié)果為a = 12, b = 34,scanf("%2d%2d", &a, &b);,輸入數(shù)據(jù)的格式控制——例3.10,#include main() {int a, b;scanf("%d %d", &a

28、, &b);printf("a = %d, b = %d\n", a, b);},問題5:限定用戶輸入數(shù)據(jù)為以下格式為12↙34↙ 同時要求程序輸出結(jié)果為a = "12", b = "34",scanf("%d%d", &a, &b);printf("a = \"%d\", b = \&

29、quot;%d\"\n", a, b);,輸入數(shù)據(jù)的格式控制——例3.10,#include main() {int a, b;scanf("%d %d", &a, &b);printf("a = %d, b = %d\n", a, b);},問題6:設(shè)計程序使得用戶可以以任意字符(回車、空格、制表符、逗號、其它)作為分隔

30、符進(jìn)行數(shù)據(jù)的輸入,scanf("%d%*c%d", &a, &b);,輸入數(shù)據(jù)的格式控制——例3.10,#include main(){int data1, data2, sum;char op; printf("Please enter the expression data1 + data2\n");scanf("%d%

31、c%d",&data1, &op, &data2);printf("%d%c%d = %d\n", data1, op, data2, data1+data2);},Please enter the expression data1 + data2,第1次測試,12 + 3↙,12 3129 = 3141,,,C格式符存在的問題及其解決—例3.1

32、1,#include main(){int data1, data2, sum;char op; printf("Please enter the expression data1 + data2\n");scanf("%d%c%d",&data1, &op, &data2);printf("%d%c%d =

33、%d\n", data1, op, data2, data1+data2);},Please enter the expression data1 + data2,第2次測試,12 3↙,12 3 = 15,C格式符存在的問題及其解決—例3.11,#include main(){int data1, data2, sum;char op; printf(&q

34、uot;Please enter the expression data1 + data2\n");scanf("%d%c%d",&data1, &op, &data2);printf("%d%c%d = %d\n", data1, op, data2, data1+data2);},Please enter t

35、he expression data1 + data2,第3次測試,12+3↙,12+3 = 15,C格式符存在的問題及其解決—例3.11,#include main(){ int a; char b; float c; printf("Please input an integer:"); scanf("%d", &a);

36、 printf("integer: %d\n", a); printf("Please input a character:"); scanf("%c", &b); printf("character: %c\n", b); printf("Please input a float number

37、:"); scanf("%f", &c); printf("float: %f\n", c);},Please input an integer:,希望得到的運(yùn)行結(jié)果,12↙,Please input an character :,a↙,Please input a float number:,3.5↙,integer:12,character :a,

38、float number:3.500000,C格式符存在的問題及其解決—例3.12,#include main(){ int a; char b; float c; printf("Please input an integer:"); scanf("%d", &a); printf("integer: %d

39、\n", a); printf("Please input a character:"); scanf("%c", &b); printf("character: %c\n", b); printf("Please input a float number:"); scanf(&quo

40、t;%f", &c); printf("float: %f\n", c);},Please input an integer:,結(jié)果好像很奇怪嘛!,12↙,Please input an character :,character:,Please input a float number:,3.5↙,integer:12,,float number:3.500000,C格式符存在的問題及

41、其解決—例3.12,#include main(){ int a; char b; float c; printf("Please input an integer:"); scanf("%d", &a); printf("integer: %d\n", a); printf("P

42、lease input a character:"); scanf("%c", &b); printf("character: %c\n", b); printf("Please input a float number:"); scanf("%f", &c); printf(

43、"float: %f\n", c);},C格式符存在的問題及其解決—例3.12,輸入數(shù)據(jù)12后,按的回車鍵被當(dāng)作有效字符讀給字符型變量b了。,#include main(){ int a; char b; float c; printf("Please input an integer:"); scanf("%d&quo

44、t;, &a); printf("integer: %d\n", a); printf("Please input a character:"); getchar(); /*吸收掉前面輸入整型數(shù)據(jù)后面鍵入的回車字符*/ scanf("%c", &b); printf("character: %c\n&q

45、uot;, b); printf("Please input a float number:"); scanf("%f", &c); printf("float: %f\n", c);},Please input an integer:,程序修改后得到的運(yùn)行結(jié)果,12↙,Please input an character :,a↙,P

46、lease input a float number:,3.5↙,integer:12,character :a,float number:3.500000,C格式符存在的問題及其解決—例3.12,#include main(){ int a; char b; float c; printf("Please input an integer:"); sc

47、anf("%d", &a); printf("integer: %d\n", a); printf("Please input a character:"); scanf("%1s", &b); /*第2種解決方案*/ printf("character: %c\n", b);

48、 printf("Please input a float number:"); scanf("%f", &c); printf("float: %f\n", c);},C格式符存在的問題及其解決—例3.12,這里s前面的符號是數(shù)字1,不是字母L的小寫將程序的%c改為%1s用于讀入單個字符,由于%1s完全忽略空格和回車符,可以避免回車符被

49、作為單個字符讀入。,#include main(){int data1, data2, sum;char op; printf("Please enter the expression data1 + data2\n");scanf("%d%1s%d",&data1, &op, &data2);printf("

50、%d%c%d = %d\n", data1, op, data2, data1+data2);},12+3↙,12 + 3↙,12↙+↙3↙,再回頭來看例3.11,以任意分隔符輸入加法算式,可能嗎?,這一章我們學(xué)習(xí)了,字符輸入函數(shù)getchar()字符輸出函數(shù)putchar()格式輸入函數(shù)scanf()格式輸出函數(shù)printf()格式控制問題——難點(diǎn),幾點(diǎn)忠告,不要拘泥于細(xì)節(jié)不要死

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論