版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第四章 最簡單的c程序設(shè)計順序程序設(shè)計c語句概述賦值語句數(shù)據(jù)輸入輸出的概念及在c語言中的實現(xiàn)字符數(shù)據(jù)的輸入輸出格式輸入與輸出順序結(jié)構(gòu)程序設(shè)計舉例回顧常量在程序中不能被更改,而變量在程序中可以被更改c語言中的基本數(shù)據(jù)類型包括整型、單精度浮點型、雙精度浮點型和字符型整型分為短整型、整型、長整型,每種整型又可分為有符號型和無符號型單精度浮點型和雙精度浮點型變量可以存儲實數(shù)字符型變量可以存儲單個字符,其值是該字符的ascii 碼算術(shù)運算符提供運算功能,包括+、-、*、/、%、+、-目標(biāo) 掌握字符數(shù)據(jù)輸入輸出函數(shù)用法熟練使用printf和scanf函數(shù)理解順序結(jié)構(gòu)程序的設(shè)計思路源程序文件1預(yù)處理命令全局
2、變量聲明函數(shù)首部局部變量聲明執(zhí)行語句函數(shù)體函數(shù)1函數(shù)n源程序文件2源程序文件nc程序4.1 c語句概述程序的結(jié)構(gòu) 返回c語句可分為以下五類:p控制語句p函數(shù)調(diào)用語句p表達式語句p空語句p復(fù)合語句1、控制語句有9種:if( )else 條件語句for( ) 循環(huán)語句while( ) 循環(huán)語句dowhile( ) 循環(huán)語句continue 結(jié)束本次循環(huán)語句break 終止執(zhí)行switch或循環(huán)語句switch 多分支選擇語句goto 轉(zhuǎn)向語句return 從函數(shù)返回語句其中,()表示是條件, 表示內(nèi)嵌的語句。2、函數(shù)調(diào)用語句:由函數(shù)名、實際參數(shù)加上分號“;”組成。其一般形式為:函數(shù)名(實際參數(shù)表)
3、;例如:printf(c program);調(diào)用庫函數(shù),輸出字符串。3、表達式語句:表達式語句由表達式加上分號“;”組成。其一般形式為:表達式;表達式;例如a=3 是一個賦值表達式a=3; 是一個賦值語句4、空語句:只有分號“;”組成的語句稱為空語句。5、復(fù)合語句: 把多個語句用括號括起來組成的一個語句稱復(fù)合語句。例如: x=y+z; a=b+c; printf(“%d%d”,x,a); 是一條復(fù)合語句。 4.2 賦值語句 賦值語句是程序中使用最多的語句之一。 賦值語句是由賦值表達式再加上分號構(gòu)成的表達式語句。其一般形式為:變量變量= =表達式表達式; ;返回在賦值語句的使用中需要注意以下幾點
4、:由于在賦值符“=”右邊的表達式也可以又是一個賦值表達式,因此,下述形式 變量=(變量=表達式); 是成立的,從而形成嵌套的情形。 其展開之后的一般形式為: 變量=變量=表達式; 例如: a=b=c=d=e=5; 結(jié)果是a、b、c、d、e的值均為5。注意在變量說明中給變量賦初值和賦值語句的區(qū)別。例如: int a=5,b,c;是,不能是;給變量賦初值是變量說明的一部分,賦初值后的變量與其后的其它同類變量之間仍必須用逗號間隔,而賦值語句則必須用分號結(jié)尾。在變量說明中,不允許連續(xù)給多個變量賦初值。 如下述說明是錯誤的: int a=b=c=5; 必須寫為 int a=5,b=5,c=5; 而賦值語
5、句允許連續(xù)賦值。 a=b=c=5; 是允許的。注意賦值表達式和賦值語句的區(qū)別。 下述語句是合法的: if(x=y+5)0) z=x;語句的功能是,若表達式x=y+5大于0則z=x。下述語句是非法的: if(x=y+5;)0) z=x;因為x=y+5;是語句,不能出現(xiàn)在表達式中。 賦值表達式是一種表達式,它可以出現(xiàn)在任何允許表達式出現(xiàn)的地方,而賦值語句則不能。4.3 數(shù)據(jù)輸入輸出的概念及在c語言中的實現(xiàn)所謂輸入輸出是以計算機為主體而言的。本章介紹的是向標(biāo)準(zhǔn)輸出設(shè)備顯示器輸出數(shù)據(jù)的語句。在語言中,所有的數(shù)據(jù)輸入輸出都是由庫函數(shù)完成的。 因此都是函數(shù)語句。返回在使用語言庫函數(shù)時,要用預(yù)編譯命令#in
6、clude 將有關(guān)“頭文件”包括到源文件中。 使用標(biāo)準(zhǔn)輸入輸出庫函數(shù)時要用到 “stdio.h”文件,因此源文件開頭應(yīng)有以下預(yù)編譯命令:#include 或#include ”stdio.h”stdio是standard input &outupt的意思。 考慮到printf和scanf函數(shù)使用頻繁,系統(tǒng)允許在使用這兩個函數(shù)時可不加:#include 或#include ”stdio.h”4.4 字符數(shù)據(jù)的輸入輸出 4.4.1 putchar 函數(shù)(字符輸出函數(shù))其一般形式為:putchar(字符變量) putchar 函數(shù)是字符輸出函數(shù),其功能是在顯示器上輸出單個字符。返回例如: putch
7、ar(a); (輸出大寫字母a) putchar(x); (輸出字符變量x的值) putchar(101); (也是輸出字符a) putchar(n); (換行)使用本函數(shù)前必須要用文件包含命令:#include或#include “stdio.h”例4.1 輸出單個字符。結(jié)果:boy#include main() char a=b,b=o,c=y; putchar(a); putchar(b); putchar(c); 例4.1輸出單個字符。結(jié)果:boy#include main() char a=b,b=o,c=y; putchar(a); putchar(n); putchar(b);
8、putchar(n); putchar(c); putchar(n); 4.4.2 getchar函數(shù)(字符輸入函數(shù))getchar函數(shù)的功能是從鍵盤上輸入一個字符。其一般形式為: getchar();通常把輸入的字符賦予一個字符變量,構(gòu)成賦值語句,如: char c; c=getchar();例4.2 輸入單個字符。#include void main() char c; printf(input a charactern); c=getchar(); putchar(c);程序最后兩行可用下面兩行的任意一行代替,結(jié)果相同:putchar(getchar();printf(“%c”,getc
9、har();使用getchar函數(shù)還應(yīng)注意幾個問題: getchar函數(shù)只能接受單個字符,輸入數(shù)字也按字符處理。輸入多于一個字符時,只接收第一個字符。使用本函數(shù)前必須包含文件“stdio.h”。#include void main() char a,b; printf( 請輸入兩個字符:n); a=getchar(); fflush(stdin); b=getchar(); fflush(stdin); putchar(a); putchar(b); putchar(n);getchar()和putchar()示例內(nèi)存內(nèi)存abok輸出:請輸入兩個字符:okokpress any key to
10、continue_4.5 格式輸入與輸出4.5.1 printf函數(shù)(格式輸出函數(shù))printf函數(shù)的作用是按用戶指定的格式,輸出若干任意類型的數(shù)據(jù)。返回1、printf函數(shù)調(diào)用的一般形式 printf(“格式控制字符串”,輸出表列)其中“格式控制字符串”用于指定輸出格式。格式控制串可由格式字符串和非格式字符串兩種組成。格式字符串是以%開頭的字符串,在%后面跟有各種格式字符,以說明輸出數(shù)據(jù)的類型、形式、長度、小數(shù)位數(shù)等。如:“%d”表示按十進制整型輸出; “%ld”表示按十進制長整型輸出; “%c”表示按字符型輸出等。非格式字符串在輸出時原樣照印,在顯示中起提示作用。2、格式字符(1)d格式符
11、。用來輸出十進制整數(shù)。有幾種用法:%d,按整型數(shù)據(jù)的實際長度輸出。%md,m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左端補空格,若大于m,則按實際位數(shù)輸出。如:a=123;d=12345printf(“%4d,%4d”,a,b);結(jié)果:123,12345%ld,輸出長整型數(shù)據(jù)。如long a=135790;printf(“%ld”,a);(2)o或lo或mo格式符,以八進制形式輸出整數(shù)。(3)x或lx或mx格式符,以八進制形式輸出整數(shù)。(4)u格式符,用來輸出unsigned型數(shù)。(5)c格式符,用來輸出一個字符。如:char c=a;printf(“%c”,c);輸出:a也可以指定輸
12、出寬度,如:printf(“%3c”,c);輸出:a (6)s格式符,用來輸出一個字符串。有幾種用法:%s,例如:printf(“%s”,”china”);輸出china %ms,輸出的字符串占m列,如字符串長度大于m,則按字符串實際長度輸出;若字符串長度小于m,則左補空格。%-ms,同上,右補空格。%mns,輸出占m列,但只取字符串中左端n個字符,左補空格。 %-mns,輸出占m列,但只取字符串中左端n個字符,右補空格。例4.5 字符串的輸出。main()printf(“%3s,%7.2s,%.4s,%-5.3s,n”,”china”, ”china”, ”china”, ”china”);
13、結(jié)果為:china, ch,chin,chi (7)f格式符,用來輸出實數(shù)(包括單、雙精度),以小數(shù)形式輸出。有以下幾種用法:%f,不指定字段寬度,由系統(tǒng)自動指定,使整數(shù)部分全部如數(shù)輸出,并輸出6位小數(shù)。例4.6 輸出實數(shù)時的有效位數(shù)。x,y整數(shù)部分6位main()float x=111111.111, y=222222.222; printf(“%f” , x+y);結(jié)果:333333.328125單精度只有7位有效數(shù)字。例4.7 輸出雙精度數(shù)時的有效位。main()double x, y; x=1111111111111.111111111; y=2222222222222.2222222
14、22; printf(“%f” , x+y);結(jié)果為:3333333333333.333010雙精度只有16位有效數(shù)字。整數(shù)部分13位main()float f=123.456; printf(“%f %10f %10.2f %.2f %-10.2fn”,f,f,f,f,f);%mnf 指定輸出的數(shù)據(jù)占m列,其中有n位小數(shù)。如果數(shù)值長度小于m位,則左端補空格。 %-mnf 同上,右端補空格。例4.8 輸出實數(shù)時指定小數(shù)位數(shù)。結(jié)果:123.456001 123.456001 123.46 123.46 123.46 (9)g格式符,用來輸出實數(shù),它根據(jù)數(shù)值的大小,自動選f格式或e格式(選擇輸出時
15、占寬度較小的一種),且不輸出無意義的0。f=123.456printf(“%f %e %g”,f,f,f);結(jié)果:123.456001 1.23456e+02 123.456001格式字符意 義d以十進制形式輸出帶符號整數(shù)(正數(shù)不輸出符號)o以八進制形式輸出無符號整數(shù)(不輸出前綴0)x,x以十六進制形式輸出無符號整數(shù)(不輸出前綴ox)u以十進制形式輸出無符號整數(shù)f以小數(shù)形式輸出單、雙精度實數(shù)e,e以指數(shù)形式輸出單、雙精度實數(shù)g,g以%f或%e中較短的輸出寬度輸出單、雙精度實數(shù)c輸出單個字符s輸出字符串.n對實數(shù),指定小數(shù)點后位數(shù)(四舍五入)對字符串,指定實際輸出位數(shù)修飾符功 能m輸出數(shù)據(jù)域?qū)?
16、數(shù)據(jù)長度m,左補空格;否則按實際輸出輸出數(shù)據(jù)在域內(nèi)左對齊(缺省右對齊)-指定在有符號數(shù)的正數(shù)前顯示正號(+)+輸出數(shù)值時指定左面不使用的空位置自動填00在八進制和十六進制數(shù)前顯示前導(dǎo)0,0 x#在d,o,x,u前,指定輸出精度為long型在e,f,g前,指定輸出精度為double型l在使用printf函數(shù)時,還有幾點要說明:(1)除了x,e,g外,其他格式符必須用小寫字母。(2)可以在printf函數(shù)中的“格式控制”字符串內(nèi)包括“轉(zhuǎn)移字符”,如n,t,r等。(3)上面介紹的“d,o,x,u,c,s,f,e,g”等字符,用在“%”后面是格式符,不在“%”后面就是普通字符。例如:printf(“c
17、=%cf=%fs=%s”,c,f,s);普通字符普通字符()如果想輸出字符“”,則在“格式控制”字符串中用“”表示。如:printf(“%f%”,1.0/3); 輸出:0.333333%4.5.2 scanf函數(shù)(格式輸入函數(shù))1、一般形式一般形式 scanf(“格式控制字符串格式控制字符串”,地址表列,地址表列); 其中,格式控制字符串的作用與printf函數(shù)相同,但不能顯示非格式字符串,也就是不能顯示提示字符串。地址表列中給出各變量的地址。地址是由地址運算符“&”后跟變量名組成的。例如: &a, &b 分別表示變量a和變量b 的地址。 例4.9用scanf函數(shù)輸入數(shù)據(jù)。運行:345 a=3
18、,b=4,c=5main() int a,b,c; printf(input a,b,cn); scanf(%d%d%d,&a,&b,&c); printf(a=%d,b=%d,c=%d,a,b,c);輸入分隔符的指定p一般以空格、tab或回車鍵作為分隔符p其它字符做分隔符:格式串中兩個格式符間字符運行:3,4,5a=3,b=4,c=5main() int a,b,c; printf(input a,b,cn); scanf(%d,%d,%d,&a,&b,&c); printf(a=%d,b=%d,c=%d,a,b,c);格式字符意義d輸入十進制整數(shù)o輸入八進制整數(shù)x輸入十六進制整數(shù)u輸入無符
19、號十進制整數(shù)f或e輸入實型數(shù)(用小數(shù)形式或指數(shù)形式)c輸入單個字符s輸入字符串2、格式說明l修飾符功 能hm*用于d,o,x前,指定輸入為short型整數(shù)用于d,o,x前,指定輸入為long型整數(shù)用于e,f前,指定輸入為double型實數(shù)指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符則結(jié)束抑制符,指定輸入項讀入后不賦給變量說明:(1)對unsigned型變量所需的數(shù)據(jù),可以用%u,%d,%o,%x格式輸入。(2)用十進制整數(shù)指定輸入的寬度(即字符數(shù)),系統(tǒng)自動按它截取所需數(shù)據(jù)。如: scanf(%5d,&a);輸入:12345678只把12345賦予變量a,其余部分被截去。 scanf(%4d%4d,
20、&a,&b);輸入:12345678 將把1234賦予a,而把5678賦予b。 (3)在%后面加一個“*”符,表示該輸入項,讀入后不賦予相應(yīng)的變量,即跳過該輸入值。 如: scanf(%d %*d %d,&a,&b);當(dāng)輸入為:1 2 3時,把1賦予a,2被跳過,3賦予b。(4)長度:長度格式符為l和h,l表示輸入長整型數(shù)據(jù)(如%ld) 和雙精度浮點數(shù)(如%lf)。h表示輸入短整型數(shù)據(jù)。 (5)scanf函數(shù)中沒有精度控制,如:scanf(%5.2f,&a); 是非法的。 不能企圖用此語句輸入小數(shù)為2位的實數(shù)。3、使用scanf函數(shù)時應(yīng)注意的問題(1)scanf中要求給出變量地址,如給出變量名
21、則會出錯。如 scanf(“%d”,a);是非法的,應(yīng)改為scnaf(“%d”,&a);才是合法的。(2)如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時在對應(yīng)位置應(yīng)輸入與這些字符相同的字符。例如: scanf(“%d,%d”,&a,&b); 輸入時: 3,4 34 3:4 都不對。scanf(“%d%d”,&a,&b);輸入時,兩個數(shù)據(jù)之間應(yīng)空2個或更多的空格:1034 1034 scanf(“%d:%d:%d”,&h,&m,&s);輸入應(yīng)該是:12:23:36 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);輸入應(yīng)該是:a=12,b=24,c=36
22、printf(“a,b,c=”);scanf(“%d,%d,%d”,&a,&b,&c);輸入時:a,b,c=12,24,36 (3)在輸入字符數(shù)據(jù)時,若格式控制串中無非格式字符,則認為所有輸入的字符均為有效字符。 例如: scanf(%c%c%c,&a,&b,&c);輸入為: def則把d賦予a, 賦予b, e賦予c。只有當(dāng)輸入為: def時,才能把d賦于a, e賦予b, f賦予c。 (4)在輸入數(shù)據(jù)時,遇到以下情況時該數(shù)據(jù)認為結(jié)束:p遇空格,tab或回車作間隔。p按指定寬度結(jié)束,如“%3d”,只取3列。p遇非法輸入。 scanf(“%d%c%f”,&a,&b,&c);若輸入:1234a123
23、o.26 a b c格式輸入輸出的規(guī)定比較煩瑣,但又是最基本的。學(xué)習(xí)時不必花很多的時間去死記硬背、死扣細節(jié),重點掌握常用的一些規(guī)定,如“%d”,”%f”,”%c”的使用方法,通過多上機、多調(diào)試程序來逐步深入、自然地掌握格式輸入輸出的應(yīng)用。4.6 順序結(jié)構(gòu)程序設(shè)計舉例 學(xué)習(xí)了賦值、輸入和輸出語句,我們就可以編寫簡單的順序結(jié)構(gòu)程序了。返回例4.10輸入三角形的三邊長,求三角形面積。已知三角形的三邊長a,b,c,則該三角形的面積公式為: 其中s = (a+b+c)/2源程序如下:)()(csbsassarea#include main() float a,b,c,s,area; scanf(“%f,
24、%f,%f”,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn”,a,b,c,s); printf(“area=%7.2fn”,area); #include #include main() float a,b,c,s,area; scanf(%f,%f,%f,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(a=%7.2f, b=%7.2f, c=%7.2f, s
25、=%7.2fn,a,b,c,s); printf(area=%7.2fn,area);例4.10輸入三角形的三邊長,求三角形面積。輸入:3,4,6 輸出:a= 3.00, b= 4.00, c= 6.00 s= 6.50 area= 5.33)()()()(21csbsassareacbas文件包含預(yù)處理命令變量定義輸入數(shù)據(jù)輸出數(shù)據(jù)例4.11 從鍵盤輸入大寫字母,用小寫字母輸出。#include stdio.hmain() char c1,c2; c1=getchar(); printf(%c,%dn,c1,c1); c2=c1+32; printf(%c,%dn,c2,c2);輸入:a 輸出:a,65 a,97例4.12求ax2+bx+c=0方程的根,a,b,c由鍵盤輸入,設(shè)b2-4ac0。求根公式為:aacbbx242#include #include main() float a,b,c,disc,x1,x2,p,q; scanf(a=%f,b=%f,c=%f,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度汽車租賃與智能交通系統(tǒng)對接合同3篇
- 2025-2030全球全自動農(nóng)業(yè)機器人行業(yè)調(diào)研及趨勢分析報告
- 2024年全國數(shù)控技能大賽理論考試題庫-上(單選題) (二)
- 2025年度鋼管架施工設(shè)備租賃合同樣本
- 2025年度個人反擔(dān)保合同糾紛解決協(xié)議
- 2025年度數(shù)字電視信號接收器采購合同4篇
- 2025版施工合同擔(dān)保人資質(zhì)審核及責(zé)任規(guī)范3篇
- 教育者與科技聯(lián)手強化校園安全措施
- 2025年度商鋪物業(yè)管理與商業(yè)策略規(guī)劃合同4篇
- 二零二五年度茶館社區(qū)服務(wù)合作協(xié)議4篇
- 定額〔2025〕1號文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價格水平調(diào)整的通知
- 2024年城市軌道交通設(shè)備維保及安全檢查合同3篇
- 電力溝施工組織設(shè)計-電纜溝
- 單位往個人轉(zhuǎn)賬的合同(2篇)
- 科研倫理審查與違規(guī)處理考核試卷
- GB/T 44101-2024中國式摔跤課程學(xué)生運動能力測評規(guī)范
- 鍋爐本體安裝單位工程驗收表格
- 一種基于STM32的智能門鎖系統(tǒng)的設(shè)計-畢業(yè)論文
- 高危妊娠的評估和護理
- 妊娠合并強直性脊柱炎的護理查房
- 2024年山東鐵投集團招聘筆試參考題庫含答案解析
評論
0/150
提交評論