C語言程序設(shè)計-進(jìn)階篇_第1頁
C語言程序設(shè)計-進(jìn)階篇_第2頁
C語言程序設(shè)計-進(jìn)階篇_第3頁
C語言程序設(shè)計-進(jìn)階篇_第4頁
C語言程序設(shè)計-進(jìn)階篇_第5頁
已閱讀5頁,還剩62頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2023年11月20日內(nèi)容概述1.C語言的數(shù)據(jù)類型及分類。2.C語言中的常量和變量。3.C語言的數(shù)據(jù)輸入/輸出。2023年11月20日教學(xué)目標(biāo)1.掌握數(shù)據(jù)類型的概念,了解C語言能夠處理的數(shù)據(jù)類型。2.掌握各種類型常量的特點及表示形式。3.掌握變量的概念,了解float、char型變量的特點,掌握這二種類型變量的定義、賦值和使用方法。4.掌握數(shù)據(jù)的輸入輸出(包括漢字的輸入與輸出)的基本方法。2023年11月20日數(shù)據(jù)是計算機(jī)程序處理的所有信息的總稱,數(shù)值、字符、文本等都是數(shù)據(jù),如整數(shù)、實數(shù)、英文字母、數(shù)字符號、英語單詞、漢字、一句話、一段文章、一個學(xué)生信息等。在C語言中,數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型、構(gòu)造數(shù)據(jù)類型、指針類型、空類型四大類,共9種。 本章中,將介紹基本數(shù)據(jù)類型中的浮點型和字符型。其余類型在以后各章中陸續(xù)介紹。1.1C的數(shù)據(jù)類型

2023年11月20日1.基本數(shù)據(jù)類型

基本數(shù)據(jù)類型最主要的特點是,其值不可以再分解為其它類型?;绢愋驼妥址透↑c型單精度雙精度枚舉短整型長整型2023年11月20日2.整型變量整型變量分為四種:基本型、短整型、長整型、無符號型基本型: 用“int”定義,在不同的系統(tǒng)中它的長度可能不同,如在DOS下的int變量占2個字節(jié),相當(dāng)于短整型,而在Windows下的int變量占4個字節(jié),相當(dāng)于長整型。2023年11月20日2.整型變量短整型:用“shortint”或“short”定義,占2個字節(jié)。長整型:用“l(fā)ong”或“l(fā)ongint”定義,占4個字節(jié)。無符號型:用“unsigned”定義

不存放符號,數(shù)據(jù)不帶符號數(shù)。 無符號整型:“unsignedint”

無符號短整型:“unsignedshortint”

無符號長整型:“unsignedlongint”

注意:如無指定,則為有符號數(shù)。2023年11月20日【例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);}運(yùn)行結(jié)果為:a=0b=-32768為什么?a從原來的65535加1后變?yōu)?,這說明a所能表示的值的大小是有限的!65535的二進(jìn)制數(shù)為1111111111111111,再加1=?32767的二進(jìn)制數(shù)為0111111111111111,再加1=?2023年11月20日整型變量取值范圍類型說明符數(shù)的范圍 分配字節(jié)數(shù)

int-32768~32767 ■■

shortint-32768~32767 ■■

signedint-32768~32767 ■■

unsignedint0~65535 ■■

longint-2147483648~2147483647 ■■■■

unsignedlong0~4294967295 ■■■■

int根據(jù)特定的系統(tǒng)對應(yīng)shortint或longintunsignedint根據(jù)特定的系統(tǒng)對應(yīng)unsignedshortint或unsignedlongint超過變量所能表示的范圍,產(chǎn)生計算錯誤:溢出.2023年11月20日整型常量即整數(shù),按不同的進(jìn)制區(qū)分,整數(shù)有三種表示方法:十進(jìn)制數(shù):以非0開始的數(shù),如:220、-560、+369等。八進(jìn)制數(shù):以0開始的數(shù),如:06、0106、0677等。

十六進(jìn)制數(shù):以0X或0x開始的數(shù),如:0X0D、0XFF、0x4e、0x123等。3.整型常量2023年11月20日另外,可在整型常數(shù)后添加一個“L”或“l(fā)”字母,表示該數(shù)為長整型數(shù),如:22L、0773L、0Xae4l等。諸如38A、0578、0x29FG等,都是不合法的常數(shù)形式。2023年11月20日(1)十進(jìn)制數(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ù)只采用十進(jìn)制。它有二種形式:十進(jìn)制小數(shù)形式和指數(shù)形式。1.2實型數(shù)據(jù)2023年11月20日(2)指數(shù)形式

由十進(jìn)制數(shù),加階碼標(biāo)志“e”或“E”以及階碼(只能為整數(shù),可以帶符號)組成。其一般形式為:

aEn(a為十進(jìn)制數(shù),n為十進(jì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年11月20日以下則不是合法的實數(shù): 345(無小數(shù)點)

E7(階碼標(biāo)志E之前無數(shù)字) -5(無階碼標(biāo)志) 53.-E3(負(fù)號位置不對) 2.7E(無階碼)標(biāo)準(zhǔn)C允許浮點數(shù)使用后綴。后綴為“f”或“F”即表示該數(shù)為浮點數(shù)。如356.f和356.是等價的。因此:(1)十進(jìn)制小數(shù)形式:必須有小數(shù)點。(2)指數(shù)形式:字母e前必須有數(shù)字,字母e后必須為整數(shù)

,規(guī)范化的指數(shù)形式輸出。

2023年11月20日【例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年11月20日1.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年11月20日2.實型變量的分類

實型變量分為:單精度(float型)、雙精度(double型)和長雙精度(longdouble型)三類。如下表:類型說明符比特數(shù)(字節(jié)數(shù))有效數(shù)字?jǐn)?shù)的范圍float32(4)6~710-37~1038double64(8)15~1610-307~10308longdouble128(16)18~1910-4931~1049322023年11月20日實型變量定義的格式和書寫規(guī)則與整型相同。例如:

floatx,y; (定義x,y為單精度實型量)

doublea,b,c; (定義a,b,c為雙精度實型量)2023年11月20日3實型數(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);}運(yùn)行結(jié)果(VC++):12345678848.00000012345678848.000000

可見一個大數(shù)與一小數(shù)間運(yùn)算會產(chǎn)生什么結(jié)果?2023年11月20日【例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ù)在實際運(yùn)用中要注意!?。。ㄝ^大數(shù)與小數(shù)算術(shù)運(yùn)算、比較等)運(yùn)行結(jié)果(VC++): 33333.332031 33333.3333332023年11月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年11月20日1.2.3實型常量的類型實型常量不分單、雙精度,都按雙精度double型處理。2023年11月20日1.3.1字符常量

1.3字符型數(shù)據(jù)1字符常量定界符為單引號(')的單字符。例如: 'a'、'A'、'3'、'='、'+'、'?'注意英文字母區(qū)分大小寫。C字符常量特點:(1)字符常量只能用單引號括起來,不能用雙引號或其它括號。(2)字符常量只能是單個字符,不能是字符串。(3)字符可以是字符集中任意字符。但數(shù)字被定義為字符型之后就不能參與數(shù)值運(yùn)算。如‘5’和5。2023年11月20日2轉(zhuǎn)義字符轉(zhuǎn)義字符是一種特殊的字符常量。轉(zhuǎn)義字符以反斜線“\”開頭,后跟一個或幾個字符。 轉(zhuǎn)義字符具有特定的含義,不同于字符原有的意義,故稱“轉(zhuǎn)義”字符。轉(zhuǎn)義字符主要用來表示那些用一般字符不便于表示的控制代碼。常用的轉(zhuǎn)義字符及其含義如下表:

2023年11月20日轉(zhuǎn)義字符轉(zhuǎn)義字符的意義ASCII代碼\n換行10\t橫向跳到下一制表位置9\b退格8\r回車13\f走紙換頁12\\反斜線符"\"92\'單引號符39\"雙引號符34\a鳴鈴7\ddd1~3位八進(jìn)制數(shù)所代表的字符

\xhh1~2位十六進(jìn)制數(shù)所代表的字符

2023年11月20日廣義地講,C語言字符集中的任何一個字符均可用轉(zhuǎn)義字符來表示。表中的\ddd和\xhh正是為此而提出的。ddd和hh分別為八進(jìn)制和十六進(jìn)制的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年11月20日【例1.6】轉(zhuǎn)義字符的使用。main(){

inta,b,c; a=5; b=6; c=7;

printf("abc\tde\rf\n");

printf("hijk\tL\bM\n");}運(yùn)行結(jié)果:fabcdehijkM2023年11月20日1.3.2字符變量

字符變量用來存儲字符常量,即單個字符。字符變量的類型說明符是char。在內(nèi)存中占一個字節(jié),字符變量類型定義的格式和書寫規(guī)則都與整型變量相同。例如:

chara,b;2023年11月20日1.3.3字符數(shù)據(jù)在內(nèi)存中的存儲形式及使用方法字符以ASCII碼形式存放在內(nèi)存單元中,因此ASCII碼被稱作字符的內(nèi)碼。字符型與整型的轉(zhuǎn)換:自動進(jìn)行注意:字符型占一個字節(jié),整型占兩個字節(jié)(與編譯器有關(guān))。每個字符變量被分配一個字節(jié)的內(nèi)存空間,因此只能存放一個字符。字符值是以ASCII碼的形式存放在變量的內(nèi)存單元之中的。

2023年11月20日如'x'的十進(jìn)制ASCII碼是120,'y'的十進(jìn)制ASCII碼是121。對字符變量a,b賦予'x'和'y'值:

a='x'; b='y';

實際上是在a,b兩個單元內(nèi)存放120和121的二進(jìn)制代碼:0111100001111001a:

b:

可以把字符作為整型量進(jìn)行處理,也可以對整型變量賦以字符值,把整型量按字符量輸出。整型量為二字節(jié)量,字符量為單字節(jié)量,當(dāng)整型量按字符型量處理時,只有低八位字節(jié)參與處理。

2023年11月20日【例1.7】向字符變量賦以整數(shù)。main(){ chara,b; a=120; b=121;

printf("%c,%c\n",a,b);

printf("%d,%d\n",a,b);}運(yùn)行結(jié)果:x,y120,1212023年11月20日【例1.8】字符運(yùn)算。main(){ chara,b; a='a'; b='b'; a=a-32; b=b-32;

printf("%c,%c\n%d,%d\n",a,b,a,b);}運(yùn)行結(jié)果:A,B65,662023年11月20日

1.3.5字符串常量

字符串常量是由一對雙引號括起的字符序列。例如:"CHINA",“Cprogram”,"$12.5"等都是合法的字符串常量。字符串常量和字符常量之間區(qū)別:(1)字符常量由單引號括起來,字符串常量由雙引號括起來。(2)字符常量只能是單個字符,字符串常量則可以含一個或多個字符。(3)可以把一個字符常量賦予一個字符變量,但不能把一個字符串常量賦予一個字符變量。在C語言中沒有相應(yīng)的字符串變量,但是可以用一個字符數(shù)組來存放一個字符串常量。2023年11月20日(4)字符常量占一個字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串中字符數(shù)加1。增加的一個字節(jié)中存放字符“\0”(ASCII碼為0)。這是字符串結(jié)束的標(biāo)志,該字符不能顯示也不用顯式寫出來。例如:字符串"Cprogram"在內(nèi)存中所占的字節(jié)為:

C

program\0'a'和"a"的區(qū)別是?“A”存儲方式為A\0但‘A’存儲方式為:A2023年11月20日舉例"TES""""a"'T''E''S''T'\08469838400\0'a'\0009700字符串變量的使用在第6章數(shù)組(2)中介紹.2023年11月20日變量使用的三部曲:定義,賦初值,改變之。在程序中常常需要對變量賦初值,以便使用變量。C語言程序中可有多種方法為變量提供初值。方法:(1)先定義后賦值類型說明符變量1,變量2,……;(2)在變量定義中賦初值,一般形式為:

類型說明符變量1=值1,變量2=值2,……;1.4變量賦初值2023年11月20日

變量定義的同時給變量賦以初值

以下程序與左邊的有什么區(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年11月20日1.5.1數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)1.5數(shù)據(jù)的輸入輸出

在C語言中,所有的數(shù)據(jù)輸入/輸出都是由庫函數(shù)完成的。因此都是函數(shù)語句。在使用C語言庫函數(shù)時,要用預(yù)編譯命令

#include將有關(guān)“頭文件”包含到源文件中。2023年11月20日使用標(biāo)準(zhǔn)輸入輸出庫函數(shù)時要用到“stdio.h”文件,因此源文件開頭應(yīng)有以下預(yù)編譯命令: #include<stdio.h>或 #include"stdio.h"二者的區(qū)別:2023年11月20日1.5.2字符數(shù)據(jù)的輸入輸出1putchar函數(shù)(字符輸出函數(shù))功能:在顯示器上輸出單個字符。其一般形式為:

putchar(字符變量);例如:

putchar('A');(輸出大寫字母A)

putchar(x);(輸出字符變量x的值)

putchar(‘\101’);(也是輸出字符A)

putchar('\n');(換行)2023年11月20日【例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);}運(yùn)行結(jié)果:BookBook2023年11月20日2.getchar函數(shù)(鍵盤輸入函數(shù))功能:從鍵盤上輸入一個字符。其一般形式為:

getchar();通常把輸入的字符賦予一個字符變量,構(gòu)成賦值語句,如:

charc; c=getchar();2023年11月20日使用getchar函數(shù)還應(yīng)注意幾個問題:(1)getchar函數(shù)只能接受單個字符,輸入數(shù)字也按字符處理。輸入多于一個字符時,只接收第一個字符。(2)使用本函數(shù)前必須包含文件“stdio.h”。2023年11月20日【例1.10】getchar()示例--屏幕菜單設(shè)計及應(yīng)用。要求:在屏幕顯示上供用戶選擇的功能菜單,用戶通過鍵盤選擇后,計算機(jī)顯示用戶選擇的結(jié)果,不斷重復(fù),直到用戶選擇退出,結(jié)束程序運(yùn)行.分析:1)可以通過循環(huán)實現(xiàn)同一功能的重復(fù)執(zhí)行;2)在每一次循環(huán)中:

A.清除屏幕;

B.顯示菜單信息;

C.獲取用戶的鍵盤輸入;

D.分析用戶輸入并作出相應(yīng)處理;2023年11月20日/*參考程序*/#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年11月20日

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年11月20日1.5.3格式輸入與輸出1printf函數(shù)(格式輸出函數(shù))函數(shù)功能:按用戶指定的格式,把指定的數(shù)據(jù)顯示到顯示器屏幕上。(1)printf函數(shù)調(diào)用的一般形式

printf(“格式控制字符串”,輸出表列);其中格式控制字符串用于指定輸出格式。格式控制串可由格式字符串和非格式字符串兩種組成。2023年11月20日格式字符串是以%開頭的字符串,在%后面跟有各種格式字符,以說明輸出數(shù)據(jù)的類型、形式、長度、小數(shù)位數(shù)等。如: “%d”表示按十進(jìn)制整型輸出; “%ld”表示按十進(jìn)制長整型輸出; “%c”表示按字符型輸出等。非格式字符串在輸出時原樣照印,在顯示中起提示作用。輸出表列中給出了各個輸出項,要求格式字符串和各輸出項在數(shù)量和類型上應(yīng)該一一對應(yīng)。

2023年11月20日【例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);}運(yùn)行結(jié)果:888988,89X,Ya=88,b=892023年11月20日(2)格式字符串在C中格式字符串的一般形式為:

[標(biāo)志][輸出最小寬度][.精度][長度]類型其中方括號[]中的項為可選項。各項的意義介紹如下:1)類型:類型字符用以表示輸出數(shù)據(jù)的類型,其格式符和意義如下表所示:

2023年11月20日格式字符意

義d以十進(jìn)制形式輸出帶符號整數(shù)(正數(shù)不輸出符號)o以八進(jìn)制形式輸出無符號整數(shù)(不輸出前綴0)x,X以十六進(jìn)制形式輸出無符號整數(shù)(不輸出前綴Ox)u以十進(jìn)制形式輸出無符號整數(shù)f以小數(shù)形式輸出單、雙精度實數(shù)e,E以指數(shù)形式輸出單、雙精度實數(shù)g,G以%f或%e中較短的輸出寬度輸出單、雙精度實數(shù)c輸出單個字符s輸出字符串2023年11月20日2)

標(biāo)志:標(biāo)志字符為-、+、#、空格四種,其意義下表所示:標(biāo)

志意

義-結(jié)果左對齊,右邊填空格+輸出符號(正號或負(fù)號)空格輸出值為正時冠以空格,為負(fù)時冠以負(fù)號#對c,s,d,u類無影響;對o類,在輸出時加前綴o;對x類,在輸出時加前綴0x;對e,g,f類當(dāng)結(jié)果有小數(shù)時才給出小數(shù)點2023年11月20日3)輸出最小寬度:用十進(jìn)制整數(shù)來表示輸出的最少位數(shù)。若實際位數(shù)多于定義的寬度,則按實際位數(shù)輸出,若實際位數(shù)少于定義的寬度則補(bǔ)以空格或0。4)精度:精度格式符以“.”開頭,后跟十進(jìn)制整數(shù)。本項的意義是:如果輸出數(shù)字,則表示小數(shù)的位數(shù);如果輸出的是字符,則表示輸出字符的個數(shù);若實際位數(shù)大于所定義的精度數(shù),則截去超過的部分。5)長度:長度格式符為h,l兩種,h表示按短整型量輸出,l表示按長整型量輸出。

2023年11月20日【例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年11月20日運(yùn)行結(jié)果:a=15,15,17,fb=123.123459,123.123459,123.1235,1.231235e+002c=12345678.123457,12345678.123457,12345678.1235d=p,p2023年11月20日說明:(1)C語言的格式化輸入/輸出比較繁瑣,在以GUI為主流的應(yīng)用程序的輸入輸出中較少使用(scanf()函數(shù)則用不到),但它的另一種形式sprintf()函數(shù)中的格式化數(shù)據(jù)處理則經(jīng)常會用到。(2)如何獲得有關(guān)sprintf()函數(shù)的用法知識?請使用微軟開發(fā)者網(wǎng)絡(luò)—MicrosoftDeveloperNetwork(MSDN)。它是一個有關(guān)計算機(jī)軟件設(shè)計知識的海洋,是微軟平臺的軟件開發(fā)和應(yīng)用人員的最好的獲取知識的工具。(3)讀者從現(xiàn)在開始,應(yīng)該逐步學(xué)會如何獲取書本上沒有的知識,從MSDN、Internet……。請查閱字符串輸出函數(shù)puts()的用法。

2023年11月20日2scanf函數(shù)(格式輸入函數(shù))功能:按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入到指定的變量之中。(1)scanf函數(shù)的一般形式

scanf(“格式控制字符串”,地址表列);其中,格式控制字符串的作用與printf函數(shù)相同,但不能顯示非格式字符串。地址表列中給出各變量的地址。地址是由地址運(yùn)算符“&”后跟變量名組成的。

例如: &a,&b分別表示(取)變量a和變量b的地址。

2023年11月20日變量的地址和變量值的關(guān)系如下:在賦值表達(dá)式中給變量賦值,如:

a=567則,a為變量名,567是變量的值,&a是變量a的地址。

2023年11月20日【例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年11月20日(2)

格式字符串格式字符串的一般形式為: %[*][輸入數(shù)據(jù)寬度][長度]類型其中有方括號[]的項為任選項。各項的意義如下:1)類型:表示輸入數(shù)據(jù)的類型.格式字符意義d輸入十進(jìn)制整數(shù)o輸入八進(jìn)制整數(shù)x輸入十六進(jìn)制整數(shù)u輸入無符號十進(jìn)制整數(shù)f或e輸入實型數(shù)(用小數(shù)形式或指數(shù)形式)c輸入單個字符s輸入字符串2023年11月20日2)“*”符:用以表示該輸入項,讀入后不賦予相應(yīng)的變量,即跳過該輸入值。

如:

scanf("%d%*d%d",&a,&b);當(dāng)輸入為:123時,把1賦予a,2被跳過,3賦予b。3)寬度:用十進(jìn)制整數(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年11月20日【例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兩字符。

溫馨提示

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

評論

0/150

提交評論