c語(yǔ)言設(shè)計(jì)簡(jiǎn)單計(jì)算器_第1頁(yè)
c語(yǔ)言設(shè)計(jì)簡(jiǎn)單計(jì)算器_第2頁(yè)
c語(yǔ)言設(shè)計(jì)簡(jiǎn)單計(jì)算器_第3頁(yè)
c語(yǔ)言設(shè)計(jì)簡(jiǎn)單計(jì)算器_第4頁(yè)
c語(yǔ)言設(shè)計(jì)簡(jiǎn)單計(jì)算器_第5頁(yè)
已閱讀5頁(yè),還剩80頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目二設(shè)計(jì)簡(jiǎn)單計(jì)算器項(xiàng)目要點(diǎn):各種主要數(shù)據(jù)類型以及相應(yīng)的存儲(chǔ)格式

各種運(yùn)算符的含義和使用方法

各種表達(dá)式的結(jié)果和計(jì)算過(guò)程

類型轉(zhuǎn)換及其轉(zhuǎn)換規(guī)則

學(xué)習(xí)目標(biāo):掌握各種數(shù)據(jù)類型的使用方法,熟悉相應(yīng)的注意事項(xiàng)

熟練地對(duì)各種表達(dá)式進(jìn)行求值

熟悉每種類型轉(zhuǎn)換的規(guī)則和使用場(chǎng)景

C語(yǔ)言程序設(shè)計(jì)工作任務(wù)導(dǎo)入工作任務(wù)

在日常生活中,我們經(jīng)常用到計(jì)算器的功能。Windows操作系統(tǒng)提供了一個(gè)圖形界面的計(jì)算器供用戶使用。現(xiàn)在我們用C語(yǔ)言開(kāi)發(fā)一個(gè)字符界面的計(jì)算器,能夠?qū)崿F(xiàn)兩個(gè)數(shù)的加減乘除運(yùn)算。如圖所示。C語(yǔ)言程序設(shè)計(jì)引導(dǎo)問(wèn)題存放操作數(shù)的變量該如何定義,標(biāo)識(shí)符命名規(guī)則是什么?所給數(shù)字是常量還是變量,按常量存儲(chǔ)還是按變量存儲(chǔ)?運(yùn)算符該如何選擇?運(yùn)算符該如何表示?如何實(shí)現(xiàn)換行?如何判斷所給數(shù)據(jù)是整型、浮點(diǎn)型還是字符型等?不同類型的數(shù)據(jù)該如何轉(zhuǎn)換?變量和賦值運(yùn)算有什么關(guān)系?本項(xiàng)目由4個(gè)任務(wù)組成。任務(wù)1:使用合適的標(biāo)識(shí)符命名數(shù)據(jù)對(duì)象;任務(wù)2:為每個(gè)變量確定合適的數(shù)據(jù)類型;任務(wù)3:實(shí)現(xiàn)人機(jī)交互;任務(wù)4:使用C語(yǔ)言的運(yùn)算符和表達(dá)式實(shí)現(xiàn)計(jì)算器的加減乘除運(yùn)算。任務(wù)1確定變量標(biāo)識(shí)符任務(wù)分析:簡(jiǎn)單計(jì)算器在實(shí)現(xiàn)兩個(gè)數(shù)的加減乘除運(yùn)算時(shí),涉及到三個(gè)數(shù)據(jù):操作數(shù)1、操作數(shù)2、結(jié)果值,這些數(shù)據(jù)必須保存在變量中,否則就會(huì)丟失。任務(wù)1將確定使用哪些變量標(biāo)識(shí)符來(lái)保存這些數(shù)據(jù),以及如何給這些變量標(biāo)識(shí)符命名。2.1.1命名數(shù)據(jù)對(duì)象在程序中使用標(biāo)識(shí)符來(lái)命名數(shù)據(jù)對(duì)象,為了保存數(shù)據(jù)對(duì)象的信息,將數(shù)據(jù)對(duì)象的值存放在變量中,簡(jiǎn)單計(jì)算器中涉及的變量名如下:

oper1 /*操作數(shù)1*/ oper2 /*操作數(shù)2*/ sum /*和*/ sub /*差*/

mul/*乘積*/div/*商*/任務(wù)1確定變量標(biāo)識(shí)符

程序設(shè)計(jì)者為自定義的變量、函數(shù)、類型所起的名字可由1~31個(gè)字符組成(當(dāng)然有些長(zhǎng)度只允許8個(gè),這是因系統(tǒng)不同而異)只能由字母、數(shù)字、下劃線組成,且第一個(gè)字母必須是字母或下劃線不能與關(guān)鍵字同名,盡量“見(jiàn)名知義”區(qū)分大小寫(xiě)2.1.2標(biāo)識(shí)符關(guān)鍵字又稱保留字,是程序設(shè)計(jì)語(yǔ)言中規(guī)定的、有固定含義的單詞符號(hào)。(32個(gè))autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile任務(wù)1確定變量標(biāo)識(shí)符2.1.1關(guān)鍵字任務(wù)1確定變量標(biāo)識(shí)符指出下面哪些是非法的標(biāo)識(shí)符?

a f-2f6 m+n x4b4afas_d

a.sstotalmainmonth int

關(guān)鍵字:main

int

非法字符:f-2 m+n

a.ss

開(kāi)頭非法:4af

2.1.3變量概念:其值可以改變的量變量名與變量值變量定義的一般格式:

數(shù)據(jù)類型變量1[,變量2,…,變量n];變量定義位置:一般放在函數(shù)開(kāi)頭變量初始化:定義時(shí)賦初值X=88xx是變量名,方框表示某個(gè)存儲(chǔ)單元,單元中的數(shù)據(jù)8是變量x的值

inta,b;charc1,c2;任務(wù)1確定變量標(biāo)識(shí)符1、變量名最好要做到“見(jiàn)名知義”。2、變量必須“先定義、后使用”。3、聲明變量需要有數(shù)據(jù)類型,目的是告知編譯系統(tǒng)所聲明的變量需要占用的存儲(chǔ)單元數(shù)目,以便編譯系統(tǒng)為變量分配存儲(chǔ)單元,因?yàn)椴煌愋偷臄?shù)據(jù)在內(nèi)存中所占用的存儲(chǔ)單元大小不同的。4、使用變量時(shí)要注意變量的三要素:數(shù)據(jù)類型、變量名和當(dāng)前值。5、變量中保存了數(shù)據(jù)后還可以重新賦值,重新賦值后,新數(shù)據(jù)就取代了原來(lái)的數(shù)據(jù)。普通常量:數(shù)值型常量,如:-2.5、5.8E9

字符常量,如:’a’、’$’、’\n’

字符串常量,”a”、”Goodmorning!”定義:程序運(yùn)行時(shí)其值不能改變的量(即常數(shù))分類:符號(hào)常量:用標(biāo)識(shí)符代表常量定義格式:#define

符號(hào)常量常量一般用大寫(xiě)字母是宏定義預(yù)處理命令,不是C語(yǔ)句2.1.4常量任務(wù)1確定變量標(biāo)識(shí)符#definePI3.14159voidmain(){

intr=5,area;area=PI*r*r;

printf("area=%d",area);}任務(wù)分析:

C語(yǔ)言中所有變量必須指定數(shù)據(jù)類型,變量的數(shù)據(jù)類型決定了該變量只能保存指定類型的數(shù)據(jù),也決定了該變量只能執(zhí)行該數(shù)據(jù)類型允許的操作。

C語(yǔ)言的基本數(shù)據(jù)類型包括整型、實(shí)型、字符型。沒(méi)有小數(shù)部分的數(shù)就是整型類型,而加了小數(shù)點(diǎn)的數(shù)則是實(shí)型(也稱為浮點(diǎn)類型),單個(gè)字母或符號(hào)更廣泛地說(shuō)是字符類型。任務(wù)2選擇數(shù)據(jù)類型

2.2.1定義變量任務(wù)1確定了一組變量名,在變量名確定后,還要確定變量的數(shù)據(jù)類型,即定義變量。由于簡(jiǎn)單計(jì)算器處理的是整數(shù)或?qū)崝?shù),所以該項(xiàng)目中的變量定義成int型(整型)和double型(實(shí)型),定義變量的數(shù)據(jù)類型如下:intoper1; /*操作數(shù)1*/intoper2; /*操作數(shù)2*/intsum; /*和*/intsub;/*差*/int

mul; /*積*/doublediv

; /*商*/C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef字符類型

char枚舉類型enum整型實(shí)型單精度型

float雙精度型

double數(shù)組結(jié)構(gòu)體struct共用體union短整型short長(zhǎng)整型long整型int數(shù)據(jù)類型決定:1.數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.其上可進(jìn)行的操作任務(wù)2選擇數(shù)據(jù)類型

任務(wù)2選擇數(shù)據(jù)類型

2.2.2整型數(shù)據(jù)類型不同整型數(shù)據(jù)所占存儲(chǔ)空間及取值范圍數(shù)據(jù)類型占用字節(jié)數(shù)取值范圍int2(16位)-215~(215-1)short2(16位)-215~(215-1)long4(32位)-231~(231-1)unsignedint2(16位)0~(216-1)unsignedshort2(16位)0~(216-1)unsignedlong4(32位)0~(232-1)隨機(jī)器各異試一試問(wèn)題2.2學(xué)生數(shù)據(jù)包括年齡、學(xué)號(hào),定義變量來(lái)存放這些信息。問(wèn)題2.3求出所使用環(huán)境中整型所占的字節(jié)數(shù)?!境绦虼a】#include"stdio.h"voidmain(){

intb; b=sizeof(int);

printf("整型數(shù)所占字節(jié)=%d\n",b);}2.2.2整型數(shù)據(jù)類型整型常量(1)十進(jìn)制整數(shù)由+或-后跟數(shù)字串組成,開(kāi)頭不能為0

后綴u或U:無(wú)符號(hào)整數(shù)后綴l或L:長(zhǎng)整數(shù)后綴ul或UL:無(wú)符號(hào)長(zhǎng)整數(shù)(2)八進(jìn)制整數(shù):以0字頭,后跟0~7組成的數(shù)字串后綴u(U)、l(L)、ul(UL)任務(wù)2選擇數(shù)據(jù)類型

2.3.1整型數(shù)據(jù)整型常量(3)十六進(jìn)制整數(shù)

以數(shù)字0和字母x(或X)開(kāi)頭,后跟0~9、a~f(A~F)組成的數(shù)字字母串。后綴u(U)、l(L)、ul(UL)任務(wù)2選擇數(shù)據(jù)類型

指出下面數(shù)據(jù)哪些是非法的整型常量?

-12 0120x3F12L3f0Xa-028

+025U0X300x8e28E2任務(wù)2選擇數(shù)據(jù)類型練習(xí)分別把十進(jìn)制、八進(jìn)制和十六進(jìn)制值賦值給int和long型變量2.2.3實(shí)型數(shù)據(jù)1、實(shí)型常量的表示浮點(diǎn)常數(shù)有兩種書(shū)寫(xiě)形式:(1)定點(diǎn)格式,即由正負(fù)號(hào)、整數(shù)部分、十進(jìn)制小數(shù)點(diǎn)和小數(shù)部分組成。例如,123.45,-256.701等。(2)指數(shù)格式,即在定點(diǎn)表示的基礎(chǔ)上,后面再加上一個(gè)e或E后跟一個(gè)l~3位整數(shù)。如-1.234E18,2.74e-2,2.71828e0,86e-3等實(shí)數(shù)浮點(diǎn)常數(shù)雙精度型常數(shù)任務(wù)2選擇數(shù)據(jù)類型(1)實(shí)型變量的分類2、實(shí)型變量的表示單精度浮點(diǎn)型—float雙精度浮點(diǎn)型—double(2)各種實(shí)型變量所占的字節(jié)數(shù)、有效數(shù)字及取值范圍數(shù)據(jù)類型占用字節(jié)數(shù)有效數(shù)字取值范圍float46-710-37-1038double815-1610-307-10308longdouble1018-1910-4931-10-4932不同實(shí)型數(shù)據(jù)所占存儲(chǔ)空間及取值范圍任務(wù)2選擇數(shù)據(jù)類型練習(xí)1、學(xué)生數(shù)據(jù)包括成績(jī)等,定義變量名來(lái)存放這些信息。

任務(wù)2選擇數(shù)據(jù)類型

練習(xí)2、下面代碼輸出的結(jié)果。

#include"stdio.h" voidmain() { doublea=112121.123; printf("%14.4f\n",a); }2.2.4字符型數(shù)據(jù)1、字符常量C語(yǔ)言中的字符常量有兩種:(1)單引號(hào)括起來(lái)的普通字符。如:’a’,’s’等都是字符常量。(2)單引號(hào)括起來(lái)的轉(zhuǎn)義字符。如:’\n’表示換行,常用轉(zhuǎn)義字符2、字符串常量字符串常量是用雙引號(hào)括起來(lái)的一串字符序列。例如:”as”,”a”,””(空串)。3、字符變量

字符變量用來(lái)存放一個(gè)字符,其定義格式如下:charch;

/*定義一個(gè)字符變量ch*/任務(wù)2選擇數(shù)據(jù)類型字符格式ASCII碼值含義字符格式ASCII碼值含義\00空操作\a7報(bào)警\f12換頁(yè)\\92反斜杠字符\t9橫向跳格\’39單引號(hào)字符\b8退格\”34雙引號(hào)字符\r13回車,將當(dāng)前位置移至本行開(kāi)頭\dddASCII碼為1-3位8進(jìn)制數(shù)ddd的字符\n10換行,將當(dāng)前位置移至下一行開(kāi)頭\xhhASCII碼為1-2位16進(jìn)制數(shù)hh的字符常用的轉(zhuǎn)義字符及其含義任務(wù)2選擇數(shù)據(jù)類型練習(xí)下面代碼觀察輸出的結(jié)果。

#include"stdio.h" voidmain() {

printf("h\ti\b\bjk"); }

試一試問(wèn)題2.7

定義字符變量,并賦值字符和整型數(shù)據(jù)【程序代碼】#include"stdio.h"voidmain(){ charc1,c2

; c1=’a’

;c2=’b’

;

printf("%c %c %d %d",c1,c2,c1,c2)

; c1=97;c2=98;

printf("%c %c %d %d",c1,c2,c1,c2)

;}任務(wù)2選擇數(shù)據(jù)類型練習(xí)下面代碼觀察輸出的結(jié)果。

#include"stdio.h" voidmain() { charc1,c2

; c1=’a’

;c2=’b’

; c1=c1-32; c2=c2-32;

printf("%c %c %d %d",c1,c2,c1,c2)

; }

字符串?dāng)?shù)據(jù)任務(wù)2選擇數(shù)據(jù)類型C語(yǔ)言除了允許使用字符常量外,還允許使用字符串常量。字符串常量是一對(duì)雙引號(hào)括起來(lái)的字符序列。如: “Howdoyoudo.”,“China”,“a”可以輸出一個(gè)字符串,如:

printf(“Howdoyoudo”);C規(guī)定:在每一個(gè)字符串的結(jié)尾加一個(gè)“字符串結(jié)束標(biāo)志”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。C語(yǔ)言以字符‘\0’作為字符串結(jié)束標(biāo)志。問(wèn)題:試說(shuō)明字符串常量和字符常量的區(qū)別。任務(wù)3實(shí)現(xiàn)人機(jī)對(duì)話設(shè)計(jì)簡(jiǎn)單計(jì)算器,需要輸入操作數(shù)1和操作數(shù)2的值,程序需要提供人機(jī)交互的途徑,以便用戶輸入數(shù)據(jù),計(jì)算或處理完輸入數(shù)據(jù)之后,再把結(jié)果告訴用戶。2.2.5變量的初始化一、變量初始化變量的初始化就是在定義變量的同時(shí),給變量賦一個(gè)值。這個(gè)值是變量產(chǎn)生后第一次被賦值,所以叫賦初值。如:inta=3;floatx=5.56;charc1=’a’;只要在定義的時(shí)候用賦值運(yùn)算符賦給該變量一個(gè)值就行。任務(wù)3實(shí)現(xiàn)人機(jī)對(duì)話任務(wù)分析:設(shè)計(jì)簡(jiǎn)單計(jì)算器,需要輸入操作數(shù)1和操作數(shù)2的值,程序需要提供人機(jī)交互的途徑,以便用戶輸入數(shù)據(jù),處理完輸入數(shù)據(jù)之后,再把結(jié)果告訴用戶,即輸出結(jié)果。2.3.1輸入操作數(shù)和輸出提示信息

C語(yǔ)言無(wú)I/O語(yǔ)句,I/O操作由函數(shù)實(shí)現(xiàn)

#include<stdio.h>數(shù)據(jù)輸出:格式輸出函數(shù)

printf(“格式控制串”,輸出表)

字符輸出函數(shù)

putchar(c)數(shù)據(jù)輸入:

格式輸入函數(shù)

scanf(“格式控制串”,地址表)

字符輸入函數(shù)

getchar()

任務(wù)2確定了一組變量及數(shù)據(jù)類型,任務(wù)3實(shí)現(xiàn)操作數(shù)1和操作數(shù)2值的輸入,并保存到相應(yīng)的變量中:

printf("請(qǐng)輸入第一個(gè)操作數(shù):\n"); /*提示輸入信息語(yǔ)句*/

scanf("%d",&oper1); /*輸入操作數(shù)1*/

printf("請(qǐng)輸入第二個(gè)操作數(shù):\n"); /*提示輸入信息語(yǔ)句*/

scanf("%d",&oper2); /*輸入操作數(shù)2*/字符輸出函數(shù)格式:putchar(c)

參數(shù):c為字符常量、變量或表達(dá)式功能:把字符c輸出到顯示器上#indude<stdio.h>

main(){intc=65;chard=‘A’;

putchar(c);putchar(d);

putchar(’A’);putchar(65);

d=d+32;

putchar(d);}運(yùn)行結(jié)果:AAAAa2.3.2輸出函數(shù)

練一練練習(xí)下面代碼觀察輸出的結(jié)果。#include"stdio.h"voidmain(){

putchar('\"'); /*輸出雙引號(hào)字符*/ putchar('\x61'); /*輸出’a’字符*/

putchar('\\'); /*輸出\字符*/}格式輸出函數(shù)格式:printf(“格式控制串”,輸出表)

功能:按指定格式向顯示器輸出數(shù)據(jù)輸出表:要輸出的數(shù)據(jù)(可以沒(méi)有,有多個(gè)時(shí)以“,”分隔)格式控制串:包含兩種信息格式說(shuō)明:%[修飾符]格式字符用于指定輸出格式普通字符或轉(zhuǎn)義字符:原樣輸出任務(wù)3

實(shí)現(xiàn)人機(jī)對(duì)話格式轉(zhuǎn)換說(shuō)明符:

%d

輸出十進(jìn)制整數(shù)十進(jìn)制%x

輸出十六進(jìn)制整數(shù)

%f

輸出浮點(diǎn)數(shù),保留6位小數(shù)%o

輸出八進(jìn)制整數(shù)

%c

輸出單個(gè)字符%s

輸出一個(gè)字符串轉(zhuǎn)義序列:

\n回車換行\(zhòng)\

反斜杠(\)

\t制表符(Tab,光標(biāo)右移8位)\”

雙引號(hào)(”)其他字符:除以上兩項(xiàng)字符以外的其他字符都視為普通字符,輸出時(shí)照原樣顯示。任務(wù)3

實(shí)現(xiàn)人機(jī)對(duì)話問(wèn)題2.10輸出學(xué)生的姓名、年齡、學(xué)號(hào)、成績(jī)、性別等信息?!境绦虼a】#include"stdio.h"voidmain(){ intage=19,num=23; floatscore=87.5; charsex=’m’; /*f:女,m:男*/

printf("NameisRose\n");

printf("IDis%d",num);

printf("Age:%d\tSex:%c\tscore:%f\n",age,sex,score);}

任務(wù)3

實(shí)現(xiàn)人機(jī)對(duì)話練一練1、練習(xí)下面代碼觀察輸出的結(jié)果。

#include"stdio.h" voidmain()

{ inta=97,b=98; printf("%d%d\n",a,b); printf("%d,%d\n",a,b); printf("%c,%c",a,b); printf("a=%d,b=%d",a,b); }2、練習(xí)下面代碼觀察輸出的結(jié)果。

#include"stdio.h"main(){

inta=15;

floatb=123.1234567;doublec=12345678.1234567;chard='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);

}字符輸入函數(shù)格式:getchar()

功能:從鍵盤(pán)讀一個(gè)字符#indude<stdio.h>

main(){charc;c=getchar();

printf(“%c\n”,c);

printf(“%d\n”,c);}程序運(yùn)行時(shí),等等用戶在鍵盤(pán)上輸入字符。假設(shè)用戶輸入’a’和回車鍵,則屏幕顯示:aa97任務(wù)3

實(shí)現(xiàn)人機(jī)對(duì)話練習(xí):從鍵盤(pán)上輸入一個(gè)小寫(xiě)字母,將其轉(zhuǎn)化為大寫(xiě)字母并輸出。

任務(wù)3

實(shí)現(xiàn)人機(jī)對(duì)話格式輸入函數(shù)格式:scanf(“格式控制串”,地址表)功能:按指定格式從鍵盤(pán)讀入數(shù)據(jù),存入地址表指定的存儲(chǔ)單元中,并按回車鍵結(jié)束

地址表:變量的地址,常用取地址運(yùn)算符“&”

輸入分隔符的指定:一般以空格、TAB或回車鍵作為分隔符其它字符作分隔符:格式串中兩個(gè)格式符間字符

例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);

輸入a=12,b=24,c=36任務(wù)3

實(shí)現(xiàn)人機(jī)對(duì)話問(wèn)題2.12輸入學(xué)生的年齡、學(xué)號(hào)、成績(jī)、性別等信息。【程序代碼】#include"stdio.h"voidmain(){

intage,num; floatscore; charsex; /*f:女,m:男*/

printf("inputtheinformation\n");

scanf("%d%d%f%c",&age,&num,&score,&sex);

printf("Age:%d\tID:%d\tSex:%c\tscore:%f\n",age,num,sex,score);}練習(xí):用下面的scanf函數(shù)輸入數(shù)據(jù),使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’,問(wèn)在鍵盤(pán)上如何輸入?

#include"stdio.h" voidmain() {

int

a,b; floatx,y; charc1,c2;

scanf("a=%d b=%d",&a,&b);

scanf("x=%fy=%f",&x,&y); scanf("c1=%c,c2=%c",&c1,&c2);

}

任務(wù)3

實(shí)現(xiàn)人機(jī)對(duì)話練一練用下面的scanf函數(shù)輸入數(shù)據(jù),使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’,問(wèn)在鍵盤(pán)上如何輸入?任務(wù)4執(zhí)行運(yùn)算任務(wù)分析輸入了操作數(shù)1和操作數(shù)2,就可由下列公式來(lái)進(jìn)行加減乘除運(yùn)算:

sum=oper1+oper2;sub=oper1-oper2;mul=oper1*oper2;div=oper1/oper2;為了正確執(zhí)行上述運(yùn)算,首先必須熟悉C語(yǔ)言的運(yùn)算符。2.4.1實(shí)現(xiàn)計(jì)算器的四則運(yùn)算運(yùn)算是對(duì)數(shù)據(jù)進(jìn)行加工的過(guò)程,用來(lái)表示各種不同運(yùn)算的符號(hào)稱為運(yùn)算符。參加運(yùn)算的數(shù)據(jù)稱為運(yùn)算對(duì)象或操作數(shù)。用運(yùn)算符把運(yùn)算對(duì)象連接起來(lái)的式子稱為表達(dá)式。C語(yǔ)言的運(yùn)算符很豐富,包括算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符、條件運(yùn)算符等。本任務(wù)實(shí)現(xiàn)簡(jiǎn)單計(jì)算器的加減乘除功能。假設(shè)操作數(shù)1保存在變量oper1中,操作數(shù)2保存在變量oper2中,輸出兩個(gè)數(shù)的運(yùn)算結(jié)果。2.4.1算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符兩大類基本算術(shù)運(yùn)算符自增自減運(yùn)算符1.基本算術(shù)運(yùn)算符(雙目)常用共5種:+(加)、-(減)、*(乘)、/(除)、%(求余)2.4.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式強(qiáng)制類型轉(zhuǎn)換運(yùn)算算術(shù)運(yùn)算符和算術(shù)表達(dá)式任務(wù)4執(zhí)行運(yùn)算關(guān)于求除運(yùn)算/:如果當(dāng)兩個(gè)整數(shù)相除時(shí),結(jié)果為整數(shù),小數(shù)部分舍去,如

5/2=2

;如果兩個(gè)數(shù)相除有一個(gè)為浮點(diǎn)類型結(jié)果就為浮點(diǎn)型數(shù)據(jù)。如:5.0/2=2.5,5/2.0=2.5關(guān)于求余運(yùn)算%:①a%b,即得兩數(shù)相除的余數(shù)

②a和b必須為整型問(wèn)題2.13輸入一個(gè)四位數(shù),求該數(shù)個(gè)位、十位、百位、千位上的數(shù)的和。任務(wù)4執(zhí)行運(yùn)算數(shù)值型數(shù)據(jù)間的混合運(yùn)算任務(wù)4執(zhí)行運(yùn)算整型、單精度型、雙精度型、字符型數(shù)據(jù)可以混合運(yùn)算。例如:

10+‘a(chǎn)’+1.5-123.45*‘b’是合法的。在進(jìn)行運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。

轉(zhuǎn)換原則:低類型數(shù)據(jù)轉(zhuǎn)換成高類型數(shù)據(jù)數(shù)值型數(shù)據(jù)間的混合運(yùn)算任務(wù)4執(zhí)行運(yùn)算例如:

#include"stdio.h" voidmain() { charch='a';

intn=2; doubleff=5.31; floatf=4.26f;

printf("ch*n+f*1.0-ff的運(yùn)算結(jié)果為:%f",ch*n+f*1.0-ff); }強(qiáng)制類型轉(zhuǎn)換任務(wù)4執(zhí)行運(yùn)算將一個(gè)表達(dá)式的值強(qiáng)制轉(zhuǎn)換成指定的類型。一般形式:(類型名)(表達(dá)式)int a=2,b=3;float x=3.5,y=2.5,z;z=(float)(a+b)/2+(int)x

%(int)y;3.5問(wèn)題2.15:輸入攝氏溫度c,要求輸出華氏溫度。公式為f=5/9*c+32。任務(wù)4執(zhí)行運(yùn)算練一練輸入長(zhǎng)方形的長(zhǎng)和寬,求長(zhǎng)方形的面積和周長(zhǎng)。自增、自減運(yùn)算符(單目)任務(wù)4執(zhí)行運(yùn)算i++(先使用i,然后使i的值增1)++i(先使i的值增1,然后使用i)k--(先使用k,然后使k的值減1)--k(先使k的值減1,然后使用k)①已知j1=3;k1=++j1;求k1=?②已知j2=3;k2=j2++;求k2=?③已知j3=6;k3=++j3;求k3=?④已知j4=9;k4=j4++;求k4=?⑤已知a1=3;b1=5;c1=(++a1)*b1;求c1=?⑥已知a2=3;b2=5;c2=(a2++)*b2;求c2=?k1=4k2=3k3=7k4=9c1=20c2=15任務(wù)4執(zhí)行運(yùn)算思考2:main(){ inta=100;

k1=a;

k2=++a;k3=a++

k4=a;}k1=100 a=100k2=101 a=101k3=101 a=102k4=102 a=101任務(wù)4執(zhí)行運(yùn)算2.4.2賦值運(yùn)算符和賦值表達(dá)式任務(wù)4執(zhí)行運(yùn)算1.簡(jiǎn)單賦值運(yùn)算符和表達(dá)式賦值運(yùn)算符:“=”如:x=8賦值表達(dá)式:

變量=表達(dá)式賦值表達(dá)式的計(jì)算:先計(jì)算“=”右邊表達(dá)式的值,再把該值賦給“=”左邊的變量賦值表達(dá)式的值:即賦給“=”左邊變量的值2.4.2賦值運(yùn)算符和賦值表達(dá)式任務(wù)4執(zhí)行運(yùn)算例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)//表達(dá)式值為5,a,b,c值為5//表達(dá)式值為5,b=5;a=5//表達(dá)式值11,c=6,a=11//表達(dá)式值10,a=10,b=4,c=6//表達(dá)式值5,a=5,b=10,c=22.4.2賦值運(yùn)算符和賦值表達(dá)式2.復(fù)合賦值運(yùn)算符和表達(dá)式在“=”之前加上其他的雙目運(yùn)算符,構(gòu)成復(fù)合賦值運(yùn)算符。(10種)+=、-=、*=、/=、%=、<<=、>>=,&=、|=、^=j*=3+x*4-5/2?j=j*(3+x*4-5/2)若:已知x=3.5,j=2.2,計(jì)算結(jié)果j=?33.0任務(wù)4執(zhí)行運(yùn)算問(wèn)題2.17

運(yùn)行下面的程序,觀察并分析用法。#include"stdio.h"voidmain(){

inta,b,c,x,y

; a=2; c=3; b=2*a+6; c*=a+b; x=a*a+b+c; y=2*a*a*a+3*b*b*b+4*c*c*c;

printf("%d%d%d

%d

%d",a,b,c,x,y);}練習(xí):計(jì)算函數(shù)編一程序計(jì)算并輸出f(2)的值。任務(wù)4執(zhí)行運(yùn)算2.4.3關(guān)系運(yùn)算符任務(wù)4執(zhí)行運(yùn)算1.關(guān)系運(yùn)算符

>、<、>=、<=、==、!=結(jié)合性:自左向右關(guān)系表達(dá)式的值:是邏輯值“真”或“假”,用1和0表示2.4.3關(guān)系運(yùn)算符任務(wù)4執(zhí)行運(yùn)算例1:若a=0;b=0.5;x=0.3;則a<=x<=b的值為0例2:5>2>7>8在C中是允許的,值為0例3:inti=1,j=7,a;a=i+(j%4!=0);則a=2例4:‘a(chǎn)’>0結(jié)果為‘A’>100結(jié)果為10問(wèn)題2.18

運(yùn)行下面的程序,觀察并分析用法。#include"stdio.h" voidmain() {

inta=6,b=3,c=9,d=6;

inte=c<d;

printf("a>b的值為:%d\n",a>b);

printf("a<b的值為:%d\n",a<b);

printf("a>=b的值為:%d\n",a>=b);

printf("a<=d的值為:%d\n",a<=d);

printf("a>b+c的值為:%d\n",a>b+c);

printf("a==d的值為:%d\n",a==d);

printf("a!=d的值為:%d\n",a!=d);

printf("e的值為:%d\n",e); }2.4.4邏輯運(yùn)算符和邏輯表達(dá)式任務(wù)4執(zhí)行運(yùn)算1.邏輯運(yùn)算符

!(非)、&&(與)、||(或)優(yōu)先級(jí):低于關(guān)系運(yùn)算符

a<=b&&b>c

(a<=b)&&(b>c)注意:數(shù)學(xué)不等式:如0<x<10必須用邏輯表達(dá)式:0<x&&x<102.4.4邏輯運(yùn)算符和邏輯表達(dá)式任務(wù)4執(zhí)行運(yùn)算說(shuō)明:1.邏輯運(yùn)算符的運(yùn)算量是邏輯值0或1,其運(yùn)算結(jié)果也是邏輯值。2.任何關(guān)系表達(dá)式及邏輯表達(dá)式,不管多么

溫馨提示

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

評(píng)論

0/150

提交評(píng)論