




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計
—進階篇第1章數(shù)據(jù)類型與輸入輸出(二)2023/1/3C語言程序設計
—進階篇第1章數(shù)據(jù)類1內(nèi)容概述1.C語言的數(shù)據(jù)類型及分類。2.C語言中的常量和變量。3.C語言的數(shù)據(jù)輸入/輸出。2023/1/3內(nèi)容概述1.C語言的數(shù)據(jù)類型及分類。2022/12/262教學目標1.掌握數(shù)據(jù)類型的概念,了解C語言能夠處理的數(shù)據(jù)類型。2.掌握各種類型常量的特點及表示形式。3.掌握變量的概念,了解float、char型變量的特點,掌握這二種類型變量的定義、賦值和使用方法。4.掌握數(shù)據(jù)的輸入輸出(包括漢字的輸入與輸出)的基本方法。2023/1/3教學目標1.掌握數(shù)據(jù)類型的概念,了解C語言能夠處理的數(shù)據(jù)類型3數(shù)據(jù)是計算機程序處理的所有信息的總稱,數(shù)值、字符、文本等都是數(shù)據(jù),如整數(shù)、實數(shù)、英文字母、數(shù)字符號、英語單詞、漢字、一句話、一段文章、一個學生信息等。在C語言中,數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型、構造數(shù)據(jù)類型、指針類型、空類型四大類,共9種。 本章中,將介紹基本數(shù)據(jù)類型中的浮點型和字符型。其余類型在以后各章中陸續(xù)介紹。1.1C的數(shù)據(jù)類型
2023/1/3數(shù)據(jù)是計算機程序處理的所有信息的總稱,數(shù)值、字符、文本41.基本數(shù)據(jù)類型
基本數(shù)據(jù)類型最主要的特點是,其值不可以再分解為其它類型?;绢愋驼妥址透↑c型單精度雙精度枚舉短整型長整型2023/1/31.基本數(shù)據(jù)類型基本數(shù)據(jù)類型最主要的特點是,52.整型變量整型變量分為四種:基本型、短整型、長整型、無符號型基本型: 用“int”定義,在不同的系統(tǒng)中它的長度可能不同,如在DOS下的int變量占2個字節(jié),相當于短整型,而在Windows下的int變量占4個字節(jié),相當于長整型。2023/1/32.整型變量整型變量分為四種:基本型、短整型、長整型、無62.整型變量短整型:用“shortint”或“short”定義,占2個字節(jié)。長整型:用“l(fā)ong”或“l(fā)ongint”定義,占4個字節(jié)。無符號型:用“unsigned”定義
不存放符號,數(shù)據(jù)不帶符號數(shù)。 無符號整型:“unsignedint”
無符號短整型:“unsignedshortint”
無符號長整型:“unsignedlongint” 注意:如無指定,則為有符號數(shù)。2023/1/32.整型變量短整型:用“shortint”或“shor7【例1.1】整型數(shù)用法示例main(){ unsignedshortinta; shortintb; a=65535; b=32767; a=a+1;
b=b+1;
printf("a=%d\n",a); printf("b=%d\n",b);}運行結(jié)果為:a=0b=-32768為什么?a從原來的65535加1后變?yōu)?,這說明a所能表示的值的大小是有限的!65535的二進制數(shù)為1111111111111111,再加1=?32767的二進制數(shù)為0111111111111111,再加1=?2023/1/3【例1.1】整型數(shù)用法示例main()運行結(jié)果為:a從原來的8整型變量取值范圍類型說明符數(shù)的范圍 分配字節(jié)數(shù)
int-32768~32767 ■■
shortint-32768~32767 ■■
signedint-32768~32767 ■■
unsignedint0~65535 ■■
longint-2147483648~2147483647 ■■■■
unsignedlong0~4294967295 ■■■■int根據(jù)特定的系統(tǒng)對應shortint或longintunsignedint根據(jù)特定的系統(tǒng)對應unsignedshortint或unsignedlongint超過變量所能表示的范圍,產(chǎn)生計算錯誤:溢出.2023/1/3整型變量取值范圍類型說明符數(shù)的范圍 分配字9整型常量即整數(shù),按不同的進制區(qū)分,整數(shù)有三種表示方法:十進制數(shù):以非0開始的數(shù),如:220、-560、+369等。八進制數(shù):以0開始的數(shù),如:06、0106、0677等。
十六進制數(shù):以0X或0x開始的數(shù),如:0X0D、0XFF、0x4e、0x123等。3.整型常量2023/1/3整型常量即整數(shù),按不同的進制區(qū)分,整數(shù)有三種10另外,可在整型常數(shù)后添加一個“L”或“l(fā)”字母,表示該數(shù)為長整型數(shù),如:22L、0773L、0Xae4l等。諸如38A、0578、0x29FG等,都是不合法的常數(shù)形式。2023/1/3另外,可在整型常數(shù)后添加一個“L”或“l(fā)”字母,表示該數(shù)為長11(1)十進制數(shù)形式 由數(shù)碼0~9和小數(shù)點組成。例如:0.0、25.0、5.789、0.13、5.0、300.、-267.8230等均為合法的實數(shù)。注意,必須有小數(shù)點。
1.2.1實型常量的表示方法
實型也稱為浮點型。實型常量也稱為實數(shù)或者浮點數(shù)。在C語言中,實數(shù)只采用十進制。它有二種形式:十進制小數(shù)形式和指數(shù)形式。1.2實型數(shù)據(jù)2023/1/3(1)十進制數(shù)形式1.2.1實型常量的表示方法
實12(2)指數(shù)形式
由十進制數(shù),加階碼標志“e”或“E”以及階碼(只能為整數(shù),可以帶符號)組成。其一般形式為:
aEn(a為十進制數(shù),n為十進制整數(shù))其值為a*10n。如: 2.1E5(等于2.1*105) 3.7E-2(等于3.7*10-2) 0.5E7(等于0.5*107) -2.8E-2(等于-2.8*10-2)2023/1/3(2)指數(shù)形式如:2022/12/2613以下則不是合法的實數(shù): 345(無小數(shù)點)
E7(階碼標志E之前無數(shù)字) -5(無階碼標志) 53.-E3(負號位置不對) 2.7E(無階碼)標準C允許浮點數(shù)使用后綴。后綴為“f”或“F”即表示該數(shù)為浮點數(shù)。如356.f和356.是等價的。因此:(1)十進制小數(shù)形式:必須有小數(shù)點。(2)指數(shù)形式:字母e前必須有數(shù)字,字母e后必須為整數(shù)
,規(guī)范化的指數(shù)形式輸出。
2023/1/3以下則不是合法的實數(shù):因此:2022/12/2614【例1.2】實型常量的使用#include<stdio.h>main(){ printf("%f\n",356.); printf("%f\n",356); printf("%f\n",356.f);}VC++輸出:356.000000-1.#QNAN0356.0000002023/1/3【例1.2】實型常量的使用VC++輸出:356.00000151.2.2實型變量
1實型數(shù)據(jù)在內(nèi)存中的存放形式實型數(shù)據(jù)一般占4個字節(jié)(32位)內(nèi)存空間,按指數(shù)形式存儲。如實數(shù)3.14159在內(nèi)存中的存放形式如下:+.3141591數(shù)符小數(shù)部分指數(shù)小數(shù)部分占的位(bit)數(shù)愈多,數(shù)的有效數(shù)字愈多,精度愈高。指數(shù)部分占的位數(shù)愈多,則能表示的數(shù)值范圍愈大。2023/1/31.2.2實型變量
1實型數(shù)據(jù)在內(nèi)存中的存放形式+.162.實型變量的分類
實型變量分為:單精度(float型)、雙精度(double型)和長雙精度(longdouble型)三類。如下表:類型說明符比特數(shù)(字節(jié)數(shù))有效數(shù)字數(shù)的范圍float32(4)6~710-37~1038double64(8)15~1610-307~10308longdouble128(16)18~1910-4931~1049322023/1/32.實型變量的分類類型說明符比特數(shù)(字節(jié)數(shù))有效數(shù)字數(shù)的范17實型變量定義的格式和書寫規(guī)則與整型相同。例如:
floatx,y; (定義x,y為單精度實型量)
doublea,b,c; (定義a,b,c為雙精度實型量)2023/1/3實型變量定義的格式和書寫規(guī)則與整型相同。20183實型數(shù)據(jù)的舍入誤差由于實型變量是由有限的存儲單元組成的,因此能提供的有效數(shù)字總是有限的。不同的編譯器下處理的精度不同,如下例?!纠?.3】實型數(shù)據(jù)的舍入誤差。#include <stdio.h>main(){ floata,b; a=123456.789e5; b=a+20; printf("%f\n",a); printf("%f\n",b);}運行結(jié)果(VC++):12345678848.00000012345678848.000000可見一個大數(shù)與一小數(shù)間運算會產(chǎn)生什么結(jié)果?2023/1/33實型數(shù)據(jù)的舍入誤差【例1.3】實型數(shù)據(jù)的舍入誤差。運行結(jié)19【例1.4】main(){ floata; doubleb; a=33333.33333; b=33333.33333333333333; printf("%f\n%f\n",a,b);}從本例可以看出,由于a是單精度浮點型,有效位數(shù)只有七位。而整數(shù)已占五位,故小數(shù)二位后之后均為無效數(shù)字。
b是雙精度型,有效位為十一位(VC++)。
實型數(shù)據(jù)在實際運用中要注意?。。。ㄝ^大數(shù)與小數(shù)算術運算、比較等)運行結(jié)果(VC++): 33333.332031 33333.3333332023/1/3【例1.4】從本例可以看出,由于a是單精度浮點型,20舍入誤差示例1.5(VC++):#include<stdio.h>#include<math.h>main(intargc,char**argv){ printf("%d\n",1.0/3*3); /*結(jié)果為0*/
printf("%f\n",1.0/3.*3.);/*結(jié)果為1.000000*/
printf("%d\n",sqrt(2.)*sqrt(2.)); /*結(jié)果為1*/
printf("%f\n",sqrt(2.)*sqrt(2.)); /*結(jié)果為2.000000*/}2023/1/3舍入誤差示例1.5(VC++):2022/12/26211.2.3實型常量的類型實型常量不分單、雙精度,都按雙精度double型處理。2023/1/31.2.3實型常量的類型2022/12/26221.3.1字符常量
1.3字符型數(shù)據(jù)1字符常量定界符為單引號(')的單字符。例如: 'a'、'A'、'3'、'='、'+'、'?'注意英文字母區(qū)分大小寫。C字符常量特點:(1)字符常量只能用單引號括起來,不能用雙引號或其它括號。(2)字符常量只能是單個字符,不能是字符串。(3)字符可以是字符集中任意字符。但數(shù)字被定義為字符型之后就不能參與數(shù)值運算。如‘5’和5。2023/1/31.3.1字符常量1.3字符型數(shù)據(jù)1字符常量202232轉(zhuǎn)義字符轉(zhuǎn)義字符是一種特殊的字符常量。轉(zhuǎn)義字符以反斜線“\”開頭,后跟一個或幾個字符。 轉(zhuǎn)義字符具有特定的含義,不同于字符原有的意義,故稱“轉(zhuǎn)義”字符。轉(zhuǎn)義字符主要用來表示那些用一般字符不便于表示的控制代碼。常用的轉(zhuǎn)義字符及其含義如下表:
2023/1/32轉(zhuǎn)義字符2022/12/2624轉(zhuǎn)義字符轉(zhuǎn)義字符的意義ASCII代碼\n換行10\t橫向跳到下一制表位置9\b退格8\r回車13\f走紙換頁12\\反斜線符"\"92\'單引號符39\"雙引號符34\a鳴鈴7\ddd1~3位八進制數(shù)所代表的字符
\xhh1~2位十六進制數(shù)所代表的字符
2023/1/3轉(zhuǎn)義字符轉(zhuǎn)義字符的意義ASCII代碼\n換行10\t橫向跳到25廣義地講,C語言字符集中的任何一個字符均可用轉(zhuǎn)義字符來表示。表中的\ddd和\xhh正是為此而提出的。ddd和hh分別為八進制和十六進制的ASCII代碼。如\101表示字母“A”(見附錄I),\102表示字母“B”,\134表示反斜線,\X0A表示換行等。
常見字符的值: 20H~空格 30H~‘0’-----39H~‘9' 41H~'A' 61H~'a'內(nèi)碼(ASCII碼)在32~126范圍內(nèi)為可顯示字符。
2023/1/3廣義地講,C語言字符集中的任何一個字符均可用轉(zhuǎn)26【例1.6】轉(zhuǎn)義字符的使用。main(){ inta,b,c; a=5; b=6; c=7; printf("abc\tde\rf\n"); printf("hijk\tL\bM\n");}運行結(jié)果:fabcdehijkM2023/1/3【例1.6】轉(zhuǎn)義字符的使用。運行結(jié)果:2022/12/26271.3.2字符變量
字符變量用來存儲字符常量,即單個字符。字符變量的類型說明符是char。在內(nèi)存中占一個字節(jié),字符變量類型定義的格式和書寫規(guī)則都與整型變量相同。例如:
chara,b;2023/1/31.3.2字符變量2022/12/26281.3.3字符數(shù)據(jù)在內(nèi)存中的存儲形式及使用方法字符以ASCII碼形式存放在內(nèi)存單元中,因此ASCII碼被稱作字符的內(nèi)碼。字符型與整型的轉(zhuǎn)換:自動進行注意:字符型占一個字節(jié),整型占兩個字節(jié)(與編譯器有關)。每個字符變量被分配一個字節(jié)的內(nèi)存空間,因此只能存放一個字符。字符值是以ASCII碼的形式存放在變量的內(nèi)存單元之中的。
2023/1/31.3.3字符數(shù)據(jù)在內(nèi)存中的存儲形式及使用方法2022/129如'x'的十進制ASCII碼是120,'y'的十進制ASCII碼是121。對字符變量a,b賦予'x'和'y'值:
a='x'; b='y';
實際上是在a,b兩個單元內(nèi)存放120和121的二進制代碼:0111100001111001a:
b:
可以把字符作為整型量進行處理,也可以對整型變量賦以字符值,把整型量按字符量輸出。整型量為二字節(jié)量,字符量為單字節(jié)量,當整型量按字符型量處理時,只有低八位字節(jié)參與處理。
2023/1/3如'x'的十進制ASCII碼是120,'y30【例1.7】向字符變量賦以整數(shù)。main(){ chara,b; a=120; b=121; printf("%c,%c\n",a,b); printf("%d,%d\n",a,b);}運行結(jié)果:x,y120,1212023/1/3【例1.7】向字符變量賦以整數(shù)。運行結(jié)果:2022/12/231【例1.8】字符運算。main(){ chara,b; a='a'; b='b'; a=a-32; b=b-32; printf("%c,%c\n%d,%d\n",a,b,a,b);}運行結(jié)果:A,B65,662023/1/3【例1.8】字符運算。運行結(jié)果:2022/12/2632
1.3.5字符串常量
字符串常量是由一對雙引號括起的字符序列。例如:"CHINA",“Cprogram”,"$12.5"等都是合法的字符串常量。字符串常量和字符常量之間區(qū)別:(1)字符常量由單引號括起來,字符串常量由雙引號括起來。(2)字符常量只能是單個字符,字符串常量則可以含一個或多個字符。(3)可以把一個字符常量賦予一個字符變量,但不能把一個字符串常量賦予一個字符變量。在C語言中沒有相應的字符串變量,但是可以用一個字符數(shù)組來存放一個字符串常量。2023/1/3
1.3.5字符串常量2022/12/2633(4)字符常量占一個字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串中字符數(shù)加1。增加的一個字節(jié)中存放字符“\0”(ASCII碼為0)。這是字符串結(jié)束的標志,該字符不能顯示也不用顯式寫出來。例如:字符串"Cprogram"在內(nèi)存中所占的字節(jié)為:
C
program\0'a'和"a"的區(qū)別是?“A”存儲方式為A\0但‘A’存儲方式為:A2023/1/3(4)字符常量占一個字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)34舉例"TES""""a"'T''E''S''T'\08469838400\0'a'\0009700字符串變量的使用在第6章數(shù)組(2)中介紹.2023/1/3'T''E''S''T'\08469838400\0'a'\35變量使用的三部曲:定義,賦初值,改變之。在程序中常常需要對變量賦初值,以便使用變量。C語言程序中可有多種方法為變量提供初值。方法:(1)先定義后賦值類型說明符變量1,變量2,……;(2)在變量定義中賦初值,一般形式為:
類型說明符變量1=值1,變量2=值2,……;1.4變量賦初值2023/1/3變量使用的三部曲:定義,賦初值,改變之36
變量定義的同時給變量賦以初值
以下程序與左邊的有什么區(qū)別?main(){ inta=3,b,c=5; b=a+c; printf("a=%d,b=%d,c=%d\n",a,b,c);}main(){ inta,b,c;a=3;c=5; b=a+c; printf("a=%d,b=%d,c=%d\n",a,b,c);}2023/1/3
變量定義的同時給變量賦以初值以下程序與左邊的有什么區(qū)別?371.5.1數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)1.5數(shù)據(jù)的輸入輸出
在C語言中,所有的數(shù)據(jù)輸入/輸出都是由庫函數(shù)完成的。因此都是函數(shù)語句。在使用C語言庫函數(shù)時,要用預編譯命令
#include將有關“頭文件”包含到源文件中。2023/1/31.5.1數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)1.5數(shù)38使用標準輸入輸出庫函數(shù)時要用到“stdio.h”文件,因此源文件開頭應有以下預編譯命令: #include<stdio.h>或 #include"stdio.h"二者的區(qū)別:2023/1/3使用標準輸入輸出庫函數(shù)時要用到“stdio391.5.2字符數(shù)據(jù)的輸入輸出1putchar函數(shù)(字符輸出函數(shù))功能:在顯示器上輸出單個字符。其一般形式為:
putchar(字符變量);例如:
putchar('A');(輸出大寫字母A) putchar(x);(輸出字符變量x的值)
putchar(‘\101’);(也是輸出字符A) putchar('\n');(換行)2023/1/31.5.2字符數(shù)據(jù)的輸入輸出2022/12/2640【例1.9】輸出單個字符。#include<stdio.h>main(){ chara,b,c; a='B'; b='o'; c='k'; /*以下書寫方式不提倡*/
putchar(a);putchar(b);putchar(b);putchar(c); putchar('\t'); putchar(a);putchar(b); putchar('\n'); putchar(b);putchar(c);}運行結(jié)果:BookBook2023/1/3【例1.9】輸出單個字符。運行結(jié)果:2022/12/26412.getchar函數(shù)(鍵盤輸入函數(shù))功能:從鍵盤上輸入一個字符。其一般形式為:
getchar();通常把輸入的字符賦予一個字符變量,構成賦值語句,如:
charc; c=getchar();2023/1/32.getchar函數(shù)(鍵盤輸入函數(shù))2022/12/2642使用getchar函數(shù)還應注意幾個問題:(1)getchar函數(shù)只能接受單個字符,輸入數(shù)字也按字符處理。輸入多于一個字符時,只接收第一個字符。(2)使用本函數(shù)前必須包含文件“stdio.h”。2023/1/3使用getchar函數(shù)還應注意幾個問題:2022/12/2643【例1.10】getchar()示例--屏幕菜單設計及應用。要求:在屏幕顯示上供用戶選擇的功能菜單,用戶通過鍵盤選擇后,計算機顯示用戶選擇的結(jié)果,不斷重復,直到用戶選擇退出,結(jié)束程序運行.分析:1)可以通過循環(huán)實現(xiàn)同一功能的重復執(zhí)行;2)在每一次循環(huán)中:
A.清除屏幕;
B.顯示菜單信息;
C.獲取用戶的鍵盤輸入;
D.分析用戶輸入并作出相應處理;2023/1/3【例1.10】getchar()示例--屏幕菜單設計及應用。44/*參考程序*/#include<stdio.h>#include<stdlib.h>intmain(intargc,char*argv[]){charselect;while(1) /*(1)--為什么可以這樣用?*/{system(“cls”); /*執(zhí)行DOS系統(tǒng)命令:cls清屏*/
printf("\t\t屏幕菜單示例\n");printf("1--加法測試;\t2--減法測試\n");printf("3--除法測試;\t4--記憶力測試\n");printf("0--退出.\n");printf("請選擇(0--4):");
select=getchar(); /*等待用戶輸入,也可以用scanf()*/2023/1/3/*參考程序*/#include<stdio.h>202245
if(select<‘0’||select>‘4’)/*判斷輸入合法?*/printf("選擇錯誤!請重新選擇!\n"); if(select==‘0’){ /*用"0"會如何?*/ printf("您選擇的是退出測試!\n");_beep(300,400);break; }
if(select==‘4‘) /*==換成“=”如何?*/printf("您選擇的是記憶力測試!\n"); system("PAUSE"); getchar();/*用戶的輸入是<字符>+Enter,清除<Enter>*/ }return(0);}2023/1/3if(select<‘0’||sel461.5.3格式輸入與輸出1printf函數(shù)(格式輸出函數(shù))函數(shù)功能:按用戶指定的格式,把指定的數(shù)據(jù)顯示到顯示器屏幕上。(1)printf函數(shù)調(diào)用的一般形式
printf(“格式控制字符串”,輸出表列);其中格式控制字符串用于指定輸出格式。格式控制串可由格式字符串和非格式字符串兩種組成。2023/1/31.5.3格式輸入與輸出2022/12/2647格式字符串是以%開頭的字符串,在%后面跟有各種格式字符,以說明輸出數(shù)據(jù)的類型、形式、長度、小數(shù)位數(shù)等。如: “%d”表示按十進制整型輸出; “%ld”表示按十進制長整型輸出; “%c”表示按字符型輸出等。非格式字符串在輸出時原樣照印,在顯示中起提示作用。輸出表列中給出了各個輸出項,要求格式字符串和各輸出項在數(shù)量和類型上應該一一對應。
2023/1/3格式字符串是以%開頭的字符串,在%后面跟有各種48【例1.11】格式輸出main(){ inta,b; a=88; b=89; printf("%d%d\n",a,b); printf("%d,%d\n",a,b); printf("%c,%c\n",a,b); printf("a=%d,b=%d",a,b);}運行結(jié)果:888988,89X,Ya=88,b=892023/1/3【例1.11】格式輸出運行結(jié)果:2022/12/2649(2)格式字符串在C中格式字符串的一般形式為:
[標志][輸出最小寬度][.精度][長度]類型其中方括號[]中的項為可選項。各項的意義介紹如下:1)類型:類型字符用以表示輸出數(shù)據(jù)的類型,其格式符和意義如下表所示:
2023/1/3(2)格式字符串2022/12/2650格式字符意
義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輸出字符串2023/1/3格式字符意義d以十進制形式輸出帶符號512)
標志:標志字符為-、+、#、空格四種,其意義下表所示:標
志意
義-結(jié)果左對齊,右邊填空格+輸出符號(正號或負號)空格輸出值為正時冠以空格,為負時冠以負號#對c,s,d,u類無影響;對o類,在輸出時加前綴o;對x類,在輸出時加前綴0x;對e,g,f類當結(jié)果有小數(shù)時才給出小數(shù)點2023/1/32)
標志:標志字符為-、+、#、空格四種,其意義下表所示:523)輸出最小寬度:用十進制整數(shù)來表示輸出的最少位數(shù)。若實際位數(shù)多于定義的寬度,則按實際位數(shù)輸出,若實際位數(shù)少于定義的寬度則補以空格或0。4)精度:精度格式符以“.”開頭,后跟十進制整數(shù)。本項的意義是:如果輸出數(shù)字,則表示小數(shù)的位數(shù);如果輸出的是字符,則表示輸出字符的個數(shù);若實際位數(shù)大于所定義的精度數(shù),則截去超過的部分。5)長度:長度格式符為h,l兩種,h表示按短整型量輸出,l表示按長整型量輸出。
2023/1/33)輸出最小寬度:用十進制整數(shù)來表示輸出的最少位數(shù)。53【例1.12】格式輸出(2)#include<stdio.h>main(){ inta;floatb;doublec;chard; a=15; b=123.1234567; c=12345678.1234567; d='p'; printf("a=%d,%5d,%o,%x\n",a,a,a,a); printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b); printf("c=%lf,%f,%8.4lf\n",c,c,c); printf("d=%c,%8c\n",d,d);}2023/1/3【例1.12】格式輸出(2)2022/12/2654運行結(jié)果:a=15,15,17,fb=123.123459,123.123459,123.1235,1.231235e+002c=12345678.123457,12345678.123457,12345678.1235d=p,p2023/1/3運行結(jié)果:2022/12/2655說明:(1)C語言的格式化輸入/輸出比較繁瑣,在以GUI為主流的應用程序的輸入輸出中較少使用(scanf()函數(shù)則用不到),但它的另一種形式sprintf()函數(shù)中的格式化數(shù)據(jù)處理則經(jīng)常會用到。(2)如何獲得有關sprintf()函數(shù)的用法知識?請使用微軟開發(fā)者網(wǎng)絡—MicrosoftDeveloperNetwork(MSDN)。它是一個有關計算機軟件設計知識的海洋,是微軟平臺的軟件開發(fā)和應用人員的最好的獲取知識的工具。(3)讀者從現(xiàn)在開始,應該逐步學會如何獲取書本上沒有的知識,從MSDN、Internet……。請查閱字符串輸出函數(shù)puts()的用法。
2023/1/3說明:2022/12/26562scanf函數(shù)(格式輸入函數(shù))功能:按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入到指定的變量之中。(1)scanf函數(shù)的一般形式
scanf(“格式控制字符串”,地址表列);其中,格式控制字符串的作用與printf函數(shù)相同,但不能顯示非格式字符串。地址表列中給出各變量的地址。地址是由地址運算符“&”后跟變量名組成的。
例如: &a,&b分別表示(取)變量a和變量b的地址。
2023/1/32scanf函數(shù)(格式輸入函數(shù))2022/12/2657變量的地址和變量值的關系如下:在賦值表達式中給變量賦值,如:
a=567則,a為變量名,567是變量的值,&a是變量a的地址。
2023/1/3變量的地址和變量值的關系如下:2022/12/2658【例1.13】格式輸入#include<stdio.h>main(){ inta,b,c; printf("請輸入整型量a,b,c的值:\n"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d",a,b,c);}2023/1/3【例1.13】格式輸入2022/12/2659(2)
格式字符串格式字符串的一般形式為: %[*][輸入數(shù)據(jù)寬度][長度]類型其中有方括號[]的項為任選項。各項的意義如下:1)類型:表示輸入數(shù)據(jù)的類型.格式字符意義d輸入十進制整數(shù)o輸入八進制整數(shù)x輸入十六進制整數(shù)u輸入無符號十進制整數(shù)f或e輸入實型數(shù)(用小數(shù)形式或指數(shù)形式)c輸入單個字符s輸入字符串2023/1/3(2)格式字符串格式字符意義d輸入十進制整數(shù)o輸入八進制整602)“*”符:用以表示該輸入項,讀入后不賦予相應的變量,即跳過該輸入值。
如:
scanf("%d%*d%d",&a,&b);當輸入為:123時,把1賦予a,2被跳過,3賦予b。3)寬度:用十進制整數(shù)指定輸入的寬度(即字符數(shù))。例如:
scanf("%5d",&a);
輸入:12345678,只把12345賦予變量a,其余部分被截去。又如:
scanf("%4d%4d",&a,&b);輸入:12345678,將把1234賦予a,而把5678賦予b。
4)長度:長度格式符為l和h,l表示輸入長整型數(shù)據(jù)(如%ld)和雙精度浮點數(shù)(如%lf)。h表示短整型數(shù)據(jù)。2023/1/32)“*”符:用以表示該輸入項,讀入后不賦予相應的61【例1.14】輸入格式字符串#include<stdio.h>main(){ chara,b; printf("inputcharactera,b\n"); scanf("%c%c",&a,&b); printf("%c%c\n",a,b);}由于scanf函數(shù)“%c%c”中沒有空格,輸入MN,結(jié)果輸出只有M。而輸入改為MN時則可輸出MN兩字符。試一試:“%c%c”中加上空格會怎樣?(分別輸入MN或M,N)2023/1/3【例1.14】輸入格式字符串由于scanf函數(shù)“%c62【例1.15】輸入格式字符串(2)#include<stdio.h>main(){ chara,b; printf("inputcharactera,b\n"); scanf("%c%c",&a,&b); printf("\n%c%c\n",a,b);}本例表示scanf格式控制串"%c%c"之間有空格時,輸入的數(shù)據(jù)之間可以有空格間隔。
2023/1/3【例1.15】輸入格式字符串(2)2022/12/2663【例1.16】輸入格式字符串(3)#include<stdio.h>main(){ chara,b,c; printf("inputcharactera,b,c\n"); scanf("%c%c%c",&a,&b,&c); printf("%d,%d,%d\n%c,%c,%c\n",a,b,c,a-32,b-32,c-32);}
輸入三個小寫字母,輸出其ASCII碼和對應的大寫字母。
2023/1/3【例1.16】輸入格式字符串(3)2022/12/2664【例1.17】輸出各種數(shù)據(jù)類型的字節(jié)長度。#include<stdio.h>
main(){ inta; longb; floatf; doubled; charc; printf("\nint:%d\nlong:%d\nfloat:%d\ndouble:%d\nchar:%d\n",sizeof(a),sizeof(b),sizeof(f),sizeof(d),sizeof(c));}運行結(jié)果:int:4long:4float:4double:8char:12023/1/3【例1.17】輸出各種數(shù)據(jù)類型的字節(jié)長度。運行結(jié)果:2022651.5.4漢字的輸入與輸出1漢字信息的存儲 與用7位ASCII碼表示的英文字符不同,一個漢字占用二個字節(jié),每個字節(jié)的最高位為1,漢字在計算機中的存儲編碼表示稱為漢字的機內(nèi)碼,詳細的信息請查閱有關資料或GB2312-80。
如漢字“啊”的機內(nèi)碼為0xb0、0xa1,“阿”的機內(nèi)碼為0xb0、0xa2。 2漢字信息的輸出
漢字信息的形式輸出方法可見例1.20。
2023/1/31.5.4漢字的輸入與輸出2022/12/2666【例1.18】漢字信息的輸出#include<stdio.h>main(intargc,char**argv){ unsignedcharc1,c2;/*定義為無符號char型*/
c1=0xb0; /*漢字啊的機內(nèi)碼的第一字節(jié)*/
c2=0xa1; /*漢字啊的機內(nèi)碼的第二字節(jié)*/
puts("\n漢字輸出示例:");
printf("\n輸出的漢字:%c%c\n",c1,c2); puts("\n另一種輸出方法:");
putchar(c1); putchar(c2);}2023/1/3【例1.18】漢字信息的輸出2022/12/26673漢字信息的輸入
由于每個漢字實際存儲需要二個字節(jié),故每個漢字是一個字符串,字符串(西文或漢字)的輸入要通過數(shù)組或指針進行,詳見進階篇第6章數(shù)組(2)。
2023/1/33漢字信息的輸入2022/12/2668C語言程序設計
—進階篇第1章數(shù)據(jù)類型與輸入輸出(二)2023/1/3C語言程序設計
—進階篇第1章數(shù)據(jù)類69內(nèi)容概述1.C語言的數(shù)據(jù)類型及分類。2.C語言中的常量和變量。3.C語言的數(shù)據(jù)輸入/輸出。2023/1/3內(nèi)容概述1.C語言的數(shù)據(jù)類型及分類。2022/12/2670教學目標1.掌握數(shù)據(jù)類型的概念,了解C語言能夠處理的數(shù)據(jù)類型。2.掌握各種類型常量的特點及表示形式。3.掌握變量的概念,了解float、char型變量的特點,掌握這二種類型變量的定義、賦值和使用方法。4.掌握數(shù)據(jù)的輸入輸出(包括漢字的輸入與輸出)的基本方法。2023/1/3教學目標1.掌握數(shù)據(jù)類型的概念,了解C語言能夠處理的數(shù)據(jù)類型71數(shù)據(jù)是計算機程序處理的所有信息的總稱,數(shù)值、字符、文本等都是數(shù)據(jù),如整數(shù)、實數(shù)、英文字母、數(shù)字符號、英語單詞、漢字、一句話、一段文章、一個學生信息等。在C語言中,數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型、構造數(shù)據(jù)類型、指針類型、空類型四大類,共9種。 本章中,將介紹基本數(shù)據(jù)類型中的浮點型和字符型。其余類型在以后各章中陸續(xù)介紹。1.1C的數(shù)據(jù)類型
2023/1/3數(shù)據(jù)是計算機程序處理的所有信息的總稱,數(shù)值、字符、文本721.基本數(shù)據(jù)類型
基本數(shù)據(jù)類型最主要的特點是,其值不可以再分解為其它類型。基本類型整型字符型浮點型單精度雙精度枚舉短整型長整型2023/1/31.基本數(shù)據(jù)類型基本數(shù)據(jù)類型最主要的特點是,732.整型變量整型變量分為四種:基本型、短整型、長整型、無符號型基本型: 用“int”定義,在不同的系統(tǒng)中它的長度可能不同,如在DOS下的int變量占2個字節(jié),相當于短整型,而在Windows下的int變量占4個字節(jié),相當于長整型。2023/1/32.整型變量整型變量分為四種:基本型、短整型、長整型、無742.整型變量短整型:用“shortint”或“short”定義,占2個字節(jié)。長整型:用“l(fā)ong”或“l(fā)ongint”定義,占4個字節(jié)。無符號型:用“unsigned”定義
不存放符號,數(shù)據(jù)不帶符號數(shù)。 無符號整型:“unsignedint”
無符號短整型:“unsignedshortint”
無符號長整型:“unsignedlongint” 注意:如無指定,則為有符號數(shù)。2023/1/32.整型變量短整型:用“shortint”或“shor75【例1.1】整型數(shù)用法示例main(){ unsignedshortinta; shortintb; a=65535; b=32767; a=a+1;
b=b+1;
printf("a=%d\n",a); printf("b=%d\n",b);}運行結(jié)果為:a=0b=-32768為什么?a從原來的65535加1后變?yōu)?,這說明a所能表示的值的大小是有限的!65535的二進制數(shù)為1111111111111111,再加1=?32767的二進制數(shù)為0111111111111111,再加1=?2023/1/3【例1.1】整型數(shù)用法示例main()運行結(jié)果為:a從原來的76整型變量取值范圍類型說明符數(shù)的范圍 分配字節(jié)數(shù)
int-32768~32767 ■■
shortint-32768~32767 ■■
signedint-32768~32767 ■■
unsignedint0~65535 ■■
longint-2147483648~2147483647 ■■■■
unsignedlong0~4294967295 ■■■■int根據(jù)特定的系統(tǒng)對應shortint或longintunsignedint根據(jù)特定的系統(tǒng)對應unsignedshortint或unsignedlongint超過變量所能表示的范圍,產(chǎn)生計算錯誤:溢出.2023/1/3整型變量取值范圍類型說明符數(shù)的范圍 分配字77整型常量即整數(shù),按不同的進制區(qū)分,整數(shù)有三種表示方法:十進制數(shù):以非0開始的數(shù),如:220、-560、+369等。八進制數(shù):以0開始的數(shù),如:06、0106、0677等。
十六進制數(shù):以0X或0x開始的數(shù),如:0X0D、0XFF、0x4e、0x123等。3.整型常量2023/1/3整型常量即整數(shù),按不同的進制區(qū)分,整數(shù)有三種78另外,可在整型常數(shù)后添加一個“L”或“l(fā)”字母,表示該數(shù)為長整型數(shù),如:22L、0773L、0Xae4l等。諸如38A、0578、0x29FG等,都是不合法的常數(shù)形式。2023/1/3另外,可在整型常數(shù)后添加一個“L”或“l(fā)”字母,表示該數(shù)為長79(1)十進制數(shù)形式 由數(shù)碼0~9和小數(shù)點組成。例如:0.0、25.0、5.789、0.13、5.0、300.、-267.8230等均為合法的實數(shù)。注意,必須有小數(shù)點。
1.2.1實型常量的表示方法
實型也稱為浮點型。實型常量也稱為實數(shù)或者浮點數(shù)。在C語言中,實數(shù)只采用十進制。它有二種形式:十進制小數(shù)形式和指數(shù)形式。1.2實型數(shù)據(jù)2023/1/3(1)十進制數(shù)形式1.2.1實型常量的表示方法
實80(2)指數(shù)形式
由十進制數(shù),加階碼標志“e”或“E”以及階碼(只能為整數(shù),可以帶符號)組成。其一般形式為:
aEn(a為十進制數(shù),n為十進制整數(shù))其值為a*10n。如: 2.1E5(等于2.1*105) 3.7E-2(等于3.7*10-2) 0.5E7(等于0.5*107) -2.8E-2(等于-2.8*10-2)2023/1/3(2)指數(shù)形式如:2022/12/2681以下則不是合法的實數(shù): 345(無小數(shù)點)
E7(階碼標志E之前無數(shù)字) -5(無階碼標志) 53.-E3(負號位置不對) 2.7E(無階碼)標準C允許浮點數(shù)使用后綴。后綴為“f”或“F”即表示該數(shù)為浮點數(shù)。如356.f和356.是等價的。因此:(1)十進制小數(shù)形式:必須有小數(shù)點。(2)指數(shù)形式:字母e前必須有數(shù)字,字母e后必須為整數(shù)
,規(guī)范化的指數(shù)形式輸出。
2023/1/3以下則不是合法的實數(shù):因此:2022/12/2682【例1.2】實型常量的使用#include<stdio.h>main(){ printf("%f\n",356.); printf("%f\n",356); printf("%f\n",356.f);}VC++輸出:356.000000-1.#QNAN0356.0000002023/1/3【例1.2】實型常量的使用VC++輸出:356.00000831.2.2實型變量
1實型數(shù)據(jù)在內(nèi)存中的存放形式實型數(shù)據(jù)一般占4個字節(jié)(32位)內(nèi)存空間,按指數(shù)形式存儲。如實數(shù)3.14159在內(nèi)存中的存放形式如下:+.3141591數(shù)符小數(shù)部分指數(shù)小數(shù)部分占的位(bit)數(shù)愈多,數(shù)的有效數(shù)字愈多,精度愈高。指數(shù)部分占的位數(shù)愈多,則能表示的數(shù)值范圍愈大。2023/1/31.2.2實型變量
1實型數(shù)據(jù)在內(nèi)存中的存放形式+.842.實型變量的分類
實型變量分為:單精度(float型)、雙精度(double型)和長雙精度(longdouble型)三類。如下表:類型說明符比特數(shù)(字節(jié)數(shù))有效數(shù)字數(shù)的范圍float32(4)6~710-37~1038double64(8)15~1610-307~10308longdouble128(16)18~1910-4931~1049322023/1/32.實型變量的分類類型說明符比特數(shù)(字節(jié)數(shù))有效數(shù)字數(shù)的范85實型變量定義的格式和書寫規(guī)則與整型相同。例如:
floatx,y; (定義x,y為單精度實型量)
doublea,b,c; (定義a,b,c為雙精度實型量)2023/1/3實型變量定義的格式和書寫規(guī)則與整型相同。20863實型數(shù)據(jù)的舍入誤差由于實型變量是由有限的存儲單元組成的,因此能提供的有效數(shù)字總是有限的。不同的編譯器下處理的精度不同,如下例?!纠?.3】實型數(shù)據(jù)的舍入誤差。#include <stdio.h>main(){ floata,b; a=123456.789e5; b=a+20; printf("%f\n",a); printf("%f\n",b);}運行結(jié)果(VC++):12345678848.00000012345678848.000000可見一個大數(shù)與一小數(shù)間運算會產(chǎn)生什么結(jié)果?2023/1/33實型數(shù)據(jù)的舍入誤差【例1.3】實型數(shù)據(jù)的舍入誤差。運行結(jié)87【例1.4】main(){ floata; doubleb; a=33333.33333; b=33333.33333333333333; printf("%f\n%f\n",a,b);}從本例可以看出,由于a是單精度浮點型,有效位數(shù)只有七位。而整數(shù)已占五位,故小數(shù)二位后之后均為無效數(shù)字。
b是雙精度型,有效位為十一位(VC++)。
實型數(shù)據(jù)在實際運用中要注意?。。。ㄝ^大數(shù)與小數(shù)算術運算、比較等)運行結(jié)果(VC++): 33333.332031 33333.3333332023/1/3【例1.4】從本例可以看出,由于a是單精度浮點型,88舍入誤差示例1.5(VC++):#include<stdio.h>#include<math.h>main(intargc,char**argv){ printf("%d\n",1.0/3*3); /*結(jié)果為0*/
printf("%f\n",1.0/3.*3.);/*結(jié)果為1.000000*/
printf("%d\n",sqrt(2.)*sqrt(2.)); /*結(jié)果為1*/
printf("%f\n",sqrt(2.)*sqrt(2.)); /*結(jié)果為2.000000*/}2023/1/3舍入誤差示例1.5(VC++):2022/12/26891.2.3實型常量的類型實型常量不分單、雙精度,都按雙精度double型處理。2023/1/31.2.3實型常量的類型2022/12/26901.3.1字符常量
1.3字符型數(shù)據(jù)1字符常量定界符為單引號(')的單字符。例如: 'a'、'A'、'3'、'='、'+'、'?'注意英文字母區(qū)分大小寫。C字符常量特點:(1)字符常量只能用單引號括起來,不能用雙引號或其它括號。(2)字符常量只能是單個字符,不能是字符串。(3)字符可以是字符集中任意字符。但數(shù)字被定義為字符型之后就不能參與數(shù)值運算。如‘5’和5。2023/1/31.3.1字符常量1.3字符型數(shù)據(jù)1字符常量202912轉(zhuǎn)義字符轉(zhuǎn)義字符是一種特殊的字符常量。轉(zhuǎn)義字符以反斜線“\”開頭,后跟一個或幾個字符。 轉(zhuǎn)義字符具有特定的含義,不同于字符原有的意義,故稱“轉(zhuǎn)義”字符。轉(zhuǎn)義字符主要用來表示那些用一般字符不便于表示的控制代碼。常用的轉(zhuǎn)義字符及其含義如下表:
2023/1/32轉(zhuǎn)義字符2022/12/2692轉(zhuǎn)義字符轉(zhuǎn)義字符的意義ASCII代碼\n換行10\t橫向跳到下一制表位置9\b退格8\r回車13\f走紙換頁12\\反斜線符"\"92\'單引號符39\"雙引號符34\a鳴鈴7\ddd1~3位八進制數(shù)所代表的字符
\xhh1~2位十六進制數(shù)所代表的字符
2023/1/3轉(zhuǎn)義字符轉(zhuǎn)義字符的意義ASCII代碼\n換行10\t橫向跳到93廣義地講,C語言字符集中的任何一個字符均可用轉(zhuǎn)義字符來表示。表中的\ddd和\xhh正是為此而提出的。ddd和hh分別為八進制和十六進制的ASCII代碼。如\101表示字母“A”(見附錄I),\102表示字母“B”,\134表示反斜線,\X0A表示換行等。
常見字符的值: 20H~空格 30H~‘0’-----39H~‘9' 41H~'A' 61H~'a'內(nèi)碼(ASCII碼)在32~126范圍內(nèi)為可顯示字符。
2023/1/3廣義地講,C語言字符集中的任何一個字符均可用轉(zhuǎn)94【例1.6】轉(zhuǎn)義字符的使用。main(){ inta,b,c; a=5; b=6; c=7; printf("abc\tde\rf\n"); printf("hijk\tL\bM\n");}運行結(jié)果:fabcdehijkM2023/1/3【例1.6】轉(zhuǎn)義字符的使用。運行結(jié)果:2022/12/26951.3.2字符變量
字符變量用來存儲字符常量,即單個字符。字符變量的類型說明符是char。在內(nèi)存中占一個字節(jié),字符變量類型定義的格式和書寫規(guī)則都與整型變量相同。例如:
chara,b;2023/1/31.3.2字符變量2022/12/26961.3.3字符數(shù)據(jù)在內(nèi)存中的存儲形式及使用方法字符以ASCII碼形式存放在內(nèi)存單元中,因此ASCII碼被稱作字符的內(nèi)碼。字符型與整型的轉(zhuǎn)換:自動進行注意:字符型占一個字節(jié),整型占兩個字節(jié)(與編譯器有關)。每個字符變量被分配一個字節(jié)的內(nèi)存空間,因此只能存放一個字符。字符值是以ASCII碼的形式存放在變量的內(nèi)存單元之中的。
2023/1/31.3.3字符數(shù)據(jù)在內(nèi)存中的存儲形式及使用方法2022/197如'x'的十進制ASCII碼是120,'y'的十進制ASCII碼是121。對字符變量a,b賦予'x'和'y'值:
a='x'; b='y';
實際上是在a,b兩個單元內(nèi)存放120和121的二進制代碼:0111100001111001a:
b:
可以把字符作為整型量進行處理,也可以對整型變量賦以字符值,把整型量按字符量輸出。整型量為二字節(jié)量,字符量為單字節(jié)量,當整型量按字符型量處理時,只有低八位字節(jié)參與處理。
2023/1/3如'x'的十進制ASCII碼是120,'y98【例1.7】向字符變量賦以整數(shù)。main(){ chara,b; a=120; b=121; printf("%c,%c\n",a,b); printf("%d,%d\n",a,b);}運行結(jié)果:x,y120,1212023/1/3【例1.7】向字符變量賦以整數(shù)。運行結(jié)果:2022/12/299【例1.8】字符運算。main(){ chara,b; a='a'; b='b'; a=a-32; b=b-32; printf("%c,%c\n%d,%d\n",a,b,a,b);}運行結(jié)果:A,B65,662023/1/3【例1.8】字符運算。運行結(jié)果:2022/12/26100
1.3.5字符串常量
字符串常量是由一對雙引號括起的字符序列。例如:"CHINA",“Cprogram”,"$12.5"等都是合法的字符串常量。字符串常量和字符常量之間區(qū)別:(1)字符常量由單引號括起來,字符串常量由雙引號括起來。(2)字符常量只能是單個字符,字符串常量則可以含一個或多個字符。(3)可以把一個字符常量賦予一個字符變量,但不能把一個字符串常量賦予一個字符變量。在C語言中沒有相應的字符串變量,但是可以用一個字符數(shù)組來存放一個字符串常量。2023/1/3
1.3.5字符串常量2022/12/26101(4)字符常量占一個字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串中字符數(shù)加1。增加的一個字節(jié)中存放字符“\0”(ASCII碼為0)。這是字符串結(jié)束的標志,該字符不能顯示也不用顯式寫出來。例如:字符串"Cprogram"在內(nèi)存中所占的字節(jié)為:
C
program\0'a'和"a"的區(qū)別是?“A”存儲方式為A\0但‘A’存儲方式為:A2023/1/3(4)字符常量占一個字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)102舉例"TES""""a"'T''E''S''T'\08469838400\0'a'\0009700字符串變量的使用在第6章數(shù)組(2)中介紹.2023/1/3'T''E''S''T'\08469838400\0'a'\103變量使用的三部曲:定義,賦初值,改變之。在程序中常常需要對變量賦初值,以便使用變量。C語言程序中可有多種方法為變量提供初值。方法:(1)先定義后賦值類型說明符變量1,變量2,……;(2)在變量定義中賦初值,一般形式為:
類型說明符變量1=值1,變量2=值2,……;1.4變量賦初值2023/1/3變量使用的三部曲:定義,賦初值,改變之104
變量定義的同時給變量賦以初值
以下程序與左邊的有什么區(qū)別?main(){ inta=3,b,c=5; b=a+c; printf("a=%d,b=%d,c=%d\n",a,b,c);}main(){ inta,b,c;a=3;c=5; b=a+c; printf("a=%d,b=%d,c=%d\n",a,b,c);}2023/1/3
變量定義的同時給變量賦以初值以下程序與左邊的有什么區(qū)別?1051.5.1數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)1.5數(shù)據(jù)的輸入輸出
在C語言中,所有的數(shù)據(jù)輸入/輸出都是由庫函數(shù)完成的。因此都是函數(shù)語句。在使用C語言庫函數(shù)時,要用預編譯命令
#include將有關“頭文件”包含到源文件中。2023/1/31.5.1數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)1.5數(shù)106使用標準輸入輸出庫函數(shù)時要用到“stdio.h”文件,因此源文件開頭應有以下預編譯命令: #include<stdio.h>或 #include"stdio.h"二者的區(qū)別:2023/1/3使用標準輸入輸出庫函數(shù)時要用到“stdio1071.5.2字符數(shù)據(jù)的輸入輸出1putchar函數(shù)(字符輸出函數(shù))功能:在顯示器上輸出單個字符。其一般形式為:
putchar(字符變量);例如:
putchar('A');(輸出大寫字母A) putchar(x);(輸出字符變量x的值)
putchar(‘\101’);(也是輸出字符A) putchar('\n');(換行)2023/1/31.5.2字符數(shù)據(jù)的輸入輸出2022/12/26108【例1.9】輸出單個字符。#include<stdio.h>main(){ chara,b,c; a='B'; b='o'; c='k'; /*以下書寫方式不提倡*/
putchar(a);putchar(b);putchar(b);putchar(c); putchar('\t'); putchar(a);putchar(b); putchar('\n'); putchar(b);putchar(c);}運行結(jié)果:BookBook2023/1/3【例1.9】輸出單個字符。運行結(jié)果:2022/12/261092.getchar函數(shù)(鍵盤輸入函數(shù))功能:從鍵盤上輸入一個字符。其一般形式為:
getchar();通常把輸入的字符賦予一個字符變量,構成賦值語句,如:
charc; c=getchar();2023/1/32.getchar函數(shù)(鍵盤輸入函數(shù))2022/12/26110使用getchar函數(shù)還應注意幾個問題:(1)getchar函數(shù)只能接受單個字符,輸入數(shù)字也按字符處理。輸入多于一個字符時,只接收第一個字符。(2)使用本函數(shù)前必須包含文件“stdio.h”。2023/1/3使用getchar函數(shù)還應注意幾個問題:2022/12/26111【例1.10】getchar()示例--屏幕菜單設計及應用。要求:在屏幕顯示上供用戶選擇的功能菜單,用戶通過鍵盤選擇后,計算機顯示用戶選擇的結(jié)果,不斷重復,直到用戶選擇退出,結(jié)束程序運行.分析:1)可以通過循環(huán)實現(xiàn)同一功能的重復執(zhí)行;2)在每一次循環(huán)中:
A.清除屏幕;
B.顯示菜單信息;
C.獲取用戶的鍵盤輸入;
D.分析用戶輸入并作出相應處理;2023/1/3【例1.10】getchar()示例--屏幕菜單設計及應用。112/*參考程序*/#include<stdio.h>#include<stdlib.h>intmain(intargc,char*argv[]){charselect;while(1) /*(1)--為什么可以這樣用?*/{system(“cls”); /*執(zhí)行DOS系統(tǒng)命令:cls清屏*/
printf("\t\t屏幕菜單示例\n");printf("1--加法測試;\t2--減法測試\n");printf("3--除法測試;\t4--記憶力測試\n");printf("0--退出.\n");printf("請選擇(0--4):");
select=getchar(); /*等待用戶輸入,也可以用scanf()*/2023/1/3/*參考程序*/#include<stdio.h>2022113
if(select<‘0’||select>‘4’)
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 益陽職業(yè)技術學院《基礎寫作A(一)》2023-2024學年第一學期期末試卷
- 齊魯理工學院《現(xiàn)代統(tǒng)計分析方法與應用》2023-2024學年第一學期期末試卷
- 企業(yè)醫(yī)保財務管理制度范文
- 金融工程專業(yè)資產(chǎn)管理實習報告范文
- 高校教職工職業(yè)健康體檢計劃
- 高速公路施工防塵防噪音及不擾民措施
- 河南周口數(shù)學試卷
- 廣場舞擾民社區(qū)管理辦法
- 基建reits管理辦法
- 天津市小額零星管理辦法
- 語言學綱要(新)課件
- 《園林主要病蟲害防治一覽表》
- 胸腔積液PPT.ppt 課件
- 斷指再植術后的切口
- 曾國藩為官之道
- 李中瑩心理創(chuàng)傷簡快輔導技巧(課堂PPT)
- Q∕GDW 12205-2022 高壓柔性直流輸電系統(tǒng)控制保護聯(lián)調(diào)試驗技術規(guī)范
- VS1真空斷路器說明書
- JTT230-2021汽車導靜電橡膠拖地帶_(高清-最新)
- 監(jiān)理周例會總承包單位工作匯報PPT課件
- 四大經(jīng)典之溫病
評論
0/150
提交評論