版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C語言程序設計第1章C語言概述脈絡導圖C語言程序設計技能目標C語言程序設計(1)熟悉VisualStudio2010開發(fā)環(huán)境。(2)能編寫簡單的C語言程序。(3)能解決初學者編寫程序易犯的錯誤。素質(zhì)目標C語言程序設計(1)通過介紹C語言的發(fā)展,聯(lián)系到中國科技的發(fā)展,讓同學們認識到一個國家科技落后就會發(fā)展滯后,培養(yǎng)同學們刻苦學習,奮斗圖強的愛國品質(zhì)。(2)通過在C語言編程環(huán)境中對編程題的練習,培養(yǎng)同學們一絲不茍的好習慣。(3)通過分析C語言常見錯誤,培養(yǎng)同學們注重知識積累,自己動手解決問題的能力。1.1為什么要學習C語言C語言程序設計計算機程序(ComputerProgram),也稱為軟件(Software),簡稱為程序(Program),是一組指示計算機或其他具有信息處理能力的裝置進行每一步動作的指令,通常用某種程序設計語言編寫,運用于某種目標體系結(jié)構(gòu)上。計算機程序1.1為什么要學習C語言C語言程序設計計算機程序設計語言的發(fā)展,經(jīng)歷了從機器語言、匯編語言、高級語言到非過程化語言的歷程。(1)機器語言。(2)匯編語言。(3)高級語言。(4)非過程化語言。程序設計語言1.1為什么要學習C語言C語言程序設計程序用于解決客觀世界的問題,其開發(fā)要經(jīng)歷捕獲問題、分析設計、編碼實現(xiàn)、測試調(diào)試、運行維護等5個主要階段。(1)捕獲問題。(2)分析設計。(3)編碼實現(xiàn)。(4)測試調(diào)試。(5)運行維護。程序開發(fā)過程1.1為什么要學習C語言C語言程序設計C語言的發(fā)展歷史C語言誕生于美國的貝爾實驗室,由丹尼斯里奇(D.M.Ritchie)以B語言(BasicCombinedProgrammingLanguage,BCPL)為基礎(chǔ)發(fā)展而來,在它的主體設計完成后,肯湯普森(KenThompson)和Ritchie用它完全重寫了Unix,且隨著Unix的發(fā)展,C語言也得到了不斷完善。為了利于C語言的全面推廣,許多專家學者和硬件廠商聯(lián)合組成了C語言標準委員會,并在之后的1989年,誕生了第一個完備的C標準,簡稱“C89”,也就是“ANSIC”。截至2020年,最新的C語言標準為2017年發(fā)布的“C17”。1.1為什么要學習C語言C語言程序設計名師點睛以前的操作系統(tǒng)等系統(tǒng)軟件主要是用匯編語言編寫的。由于匯編語言依賴于計算機硬件,程序的可讀性和可移植性都比較差。要想提高可讀性和可移植性,最好采用高級語言。但一般的高級語言難以實現(xiàn)匯編語言的某些功能(匯編語言可以直接對硬件進行操作,如對內(nèi)存地址的操作等)。因此,人們希望找到一種既具有高級語言特征,又具有低級語言特征的語言,于是C語言就隨之產(chǎn)生了。1.1為什么要學習C語言C語言程序設計C語言的特點一種語言之所以能存在和發(fā)展,并具有生命力,總是有些不同于(或優(yōu)于)其他語言的特點。與其他語言相比,C語言具有以下5個主要特點。(1)C語言簡潔、靈活。(2)C語言是高、低級兼容語言。(3)C語言是一種結(jié)構(gòu)化的程序設計語言。(4)C語言是一種模塊化的程序設計語言。(5)C語言可移植性強。C語言程序設計在屏幕上顯示“Hello,World”的信息。運行結(jié)果語句編寫
Hello,World
注意說明:該框架稱為主函數(shù)或main()函數(shù),其中,int是“整型”的標識符。main為函數(shù)名,main()函數(shù)是C語言本身函數(shù)庫已定義好的標準函數(shù),一個C程序必須有一個main()函數(shù),否則,程序?qū)o法運行。printf()函數(shù)的功能是在計算機顯示器上輸出信息。“return0;”的作用是當main()函數(shù)執(zhí)行結(jié)束前將整數(shù)0作為函數(shù)值,返回到調(diào)用函數(shù)處。/**/稱為代碼注釋。其作用是對代碼進行解釋說明。1.2C語言程序設計入門#include<stdio.h> intmain() { printf("Hello,World");return0; } 1.2C語言程序設計入門C語言程序設計(1)C程序是由函數(shù)構(gòu)成的,函數(shù)是C程序的基本單位。(2)一個C程序總是從main()函數(shù)開始執(zhí)行,到main()函數(shù)結(jié)束。(3)一個函數(shù)由兩部分組成:函數(shù)頭和函數(shù)體。(4)C程序中,每個語句和數(shù)據(jù)定義的最后必須有一個分號。(5)標識符、關(guān)鍵字之間必須至少加一個空格以示分割。(6)可以用“/*”和“*/”或“//”對C程序中的任何部分作注釋。(7)C語言嚴格區(qū)分大小寫。(8)C語言本身沒有輸入輸出語句,輸入輸出是由函數(shù)完成的。(9)一個好的、有使用價值的C程序都應當加上必要的注釋,以增加程序的可讀性。C語言程序結(jié)構(gòu)的特點1.2C語言程序設計入門C語言程序設計(1)函數(shù)體中的大括號用來表示程序的結(jié)構(gòu)層次,需要注意的是:左右大括號要成對使用。(2)在程序中,可以使用英文的大寫字母、也可以使用小寫字母。但要注意的是,大寫字母和小寫字母代表不同的字符,如'a'和'A'是兩個完全不同的字符。(3)在程序中的空格、空行、跳格并不會影響程序的執(zhí)行。合理地使用這些空格、空行,可以使編寫出來的程序更加規(guī)范,有助于日后的閱讀和整理。(4)C程序書寫風格自由,一行內(nèi)可以寫多個語句,一個語句可以分寫在多行上。但為了有良好的編程風格,最好將一條語句寫在一行。(5)代碼縮進統(tǒng)一為4個字符。建議不使用空格,而用Tab鍵。編碼規(guī)范1.2C語言程序設計入門C語言程序設計 1.需求分析 2.算法設計 3.編寫程序 4.編譯程序 5.連接程序 6.運行程序 7.編寫程序文檔開發(fā)步驟1.2C語言程序設計入門C語言程序設計
(1)GCC(GNUCompilerCollection,GNU編譯器套件):GNU(GNU’sNotUnix,GNU并非Unix)組織開發(fā)的開源免費的編譯器。(2)MinGW(MinimalistGNUforWindows,Windows的極簡GNU):Windows操作系統(tǒng)下的GCC。(3)Clang:開源的BSD(BerkeleySoftwareDistribution,伯克利軟件套件)協(xié)議的基于LLVM(LowLevelMachine,底層虛擬機)編譯器。(4)Cl.exe:MicrosoftVisualC++自帶的編譯器。C語言編譯器1.2C語言程序設計入門C語言程序設計(1)Code::Blocks:開源免費的C/C++集成開發(fā)環(huán)境。(2)CodeLite:開源、跨平臺的C/C++集成開發(fā)環(huán)境。(3)Dev-C++:可移植的C/C++集成開發(fā)環(huán)境。(4)VisualStudio系列。C語言集成開發(fā)環(huán)境1.3常見錯誤分析C語言程序設計語句后少分號#include<stdio.h>intmain(){ printf("Hello,World") /*語句后少了分號*/ return0;}1.3常見錯誤分析C語言程序設計語句中出現(xiàn)中文字符#include<stdio.h>intmain(){ printf(“Hello,World”); /*使用了中文雙引號*/ return0;}1.3常見錯誤分析C語言程序設計大括號不成對出現(xiàn)#include<stdio.h>intmain(){ printf("Hello,World"); return0; /*缺少右大括號*/1.3常見錯誤分析C語言程序設計main()函數(shù)首字母大寫#include<stdio.h>intMain()/*main()函數(shù)第一個字母大寫*/{ printf("Hello,World"); return0;}1.3常見錯誤分析C語言程序設計標識符、關(guān)鍵字之間缺少空格#include<stdio.h>intmain()/*關(guān)鍵字之間缺少空格*/{ printf("Hello,World"); return0;}1.3常見錯誤分析C語言程序設計程序連接出錯#include<stdio.h>intmain(){ print("Hello,World");/*printf()函數(shù)名稱錯誤*/ return0;}1.4C語言程序編譯調(diào)試環(huán)境應用實戰(zhàn)C語言程序設計實戰(zhàn)背景軟件產(chǎn)業(yè)作為信息產(chǎn)業(yè)的核心和國民經(jīng)濟信息化的基礎(chǔ),越來越受到世界各國的高度重視。軟件與人的信息交換是通過軟件界面來進行的,界面是軟件與用戶交互的最直接的接口,界面的好壞決定用戶對軟件的第一印象,所以軟件界面的易用性和美觀性就變得非常重要,設計良好的界面能夠引導用戶自己完成相應的操作,起到向?qū)У淖饔谩?.4C語言程序編譯調(diào)試環(huán)境應用實戰(zhàn)C語言程序設計實戰(zhàn)目的(1)掌握VisualStudio2010環(huán)境下C程序的編譯方法。(2)加深對C程序的理解。實戰(zhàn)內(nèi)容編寫C語言程序,在VisualStudio2010環(huán)境下編譯運行,顯示“歡迎使用電影點播系統(tǒng)”界面。1.4C語言程序編譯調(diào)試環(huán)境應用實戰(zhàn)C語言程序設計實戰(zhàn)結(jié)果1.4C語言程序編譯調(diào)試環(huán)境應用實戰(zhàn)C語言程序設計實戰(zhàn)意義通過實戰(zhàn),鞏固C語言程序源代碼的編輯、運行方法,也為程序中輸入、顯示漢字和符號提供了條件,為今后學習C語言夯實基礎(chǔ)。新中國日益強大,離不開老一輩無產(chǎn)階級革命家艱苦卓絕的斗爭,是無數(shù)革命先烈用鮮血和生命鑄就的,同學們應該拼搏不息,勇往直前。C語言程序設計第2章順序結(jié)構(gòu)程序設計脈絡導圖C語言程序設計技能目標C語言程序設計(1)具有程序開發(fā)流程中的提出問題、分析問題和解決問題的能力。(2)能靈活正確運用標識符、數(shù)據(jù)類型、運算符及表達式解決簡單的實際問題。(3)編寫程序力求代碼簡單、規(guī)范、程序運行界面友好。素質(zhì)目標C語言程序設計(1)通過整型數(shù)據(jù)的溢出,培養(yǎng)學生做任何事情都要有度,即情感和理智都要控制在平衡狀態(tài),不能過猶不及。(2)通過學習標識符的命名規(guī)則,引導學生做人做事需要遵守規(guī)則,遵守國家法律法規(guī),做一個守法的好公民。(3)通過學習表達式,引導學生深諳大和小的辯證關(guān)系,大和小的智慧。2.1C語言的基本數(shù)據(jù)類型C語言程序設計C語言提供的基本數(shù)據(jù)類型比較豐富,它不僅能表達基本數(shù)據(jù)類型(如整型、實型、字符型),還提供了數(shù)組、結(jié)構(gòu)體、共用體和指針等數(shù)據(jù)類型,使程序員可以利用這些數(shù)據(jù)類型組織一些復雜的數(shù)據(jù)結(jié)構(gòu)(鏈表、樹、圖等)。C語言數(shù)據(jù)類型簡介C語言程序設計【例2-1】C語言簡單例子。運行結(jié)果語句編寫Entertwonumbers:23Thesumis11
2.1C語言的基本數(shù)據(jù)類型intmain() { inta,b,sum; /*定義3個整型變量*/printf("Entertwonumbers:"); /*提示輸入2個數(shù)*/scanf("%d%d",&a,&b);/*程序運行時,分別輸入a,b整數(shù)值*/sum=a+b+6; /*計算a+b+6的值,將結(jié)果賦值給sum*/printf("Thesumis%d\n",sum); /*輸出結(jié)果sum的值*/return0; }
注意說明:該程序由不同的詞法單位組成,int是關(guān)鍵字,sum是標識符,6是數(shù)字常量,"Entertwonumbers:"是字符串常量,“+”是運算符,“(”是分隔符。2.1C語言的基本數(shù)據(jù)類型C語言程序設計關(guān)鍵字關(guān)鍵字是C語言中預定義的符號,它們有固定的含義,用戶定義的任何名稱都不得與關(guān)鍵字沖突。C語言的關(guān)鍵字共有32個,根據(jù)關(guān)鍵字的作用可分為數(shù)據(jù)類型關(guān)鍵字、控制語句關(guān)鍵字、存儲類型關(guān)鍵字和其他關(guān)鍵字4類。數(shù)據(jù)類型關(guān)鍵字(12個):char、double、enum、float、int、long、short、signed、struct、union、unsigned、void??刂普Z句關(guān)鍵字(12個):break、case、continue、default、do、else、for、goto、if、return、switch、while。存儲類型關(guān)鍵字(4個):auto、extern、register、static。其他關(guān)鍵字(4個):const、sizeof、typedef、volatile。2.1C語言的基本數(shù)據(jù)類型C語言程序設計標識符在C語言中,標識符應遵循以下命名規(guī)則。標識符只能由字母、下畫線、數(shù)字組成,且第一個字符必須是字母或下畫線,不能是數(shù)字。例如,str,_str1,str_2都是合法的標識符,2str,2_str1,&456,-L2都是不合法的標識符。標識符區(qū)分英文字母大小寫。例如,score和Score是兩個不同的標識符。用戶不能采用C語言已有的32個關(guān)鍵字作為同名的用戶標識符。例如,int是C語言保留的關(guān)鍵字。2.1C語言的基本數(shù)據(jù)類型C語言程序設計名師點睛(1)應盡量使標識符具備相應的意義,使其可以“見名知意”,從而提高程序的可讀性。例如,若要定義求和變量時,建議變量名為sum(在英語中sum有求和之意,而且較短,容易記憶)。(2)在C程序中,只能使用英文字母(大寫或小寫)、數(shù)字以及一些英文特殊符號(如!、#、&、%、,、|等)。在程序注釋及字符串常量中,可以使用任意字符,包括漢字及中文標點。2.1C語言的基本數(shù)據(jù)類型C語言程序設計分割符分隔符用于分割各種詞法記號,常用的分割符如下:{} [] () * . = : #2.1C語言的基本數(shù)據(jù)類型C語言程序設計常量常量(constant)是指在程序運行過程中,其值不能改變的量。常量包括整型常量、實型常量、字符常量、字符串常量和符號常量。例如,2是整型常量、3.14是實型常量、'a'是字符常量、"hello,word"是字符串常量。符號常量定義的一般格式如下:#define 符號常量標識符 數(shù)值例如,#definePI3.14定義符號常量標識符PI,值為3.14。2.1C語言的基本數(shù)據(jù)類型C語言程序設計名師點睛常量可用宏定義命令#define來定義一個常量的標識,且一旦定義后,該標識將永久性代表此常量,常量標識符一般用大寫字母表示。用宏定義命令定義常量的目的是,便于在大型程序中反復使用某一數(shù)值,這樣會帶來很多方便。C語言程序設計【例2-2】定義符號常量,并輸出結(jié)果。運行結(jié)果語句編寫3.141593100QQuit
2.1C語言的基本數(shù)據(jù)類型#definePI3.1415926 /*實型常量*/#defineLENGTH100 /*整型常量*/#defineQ'Q' /*字符型常量*/#defineQUIT"Quit" /*字符串*/intmain(){printf("%f\n",PI); /*輸出實型常量*/printf("%d\n",LENGTH); /*輸出整型常量*/printf("%c\n",Q); /*輸出字符型常量*/printf("%s\n",QUIT); /*輸出字符串型常量*/return0;}
2.1C語言的基本數(shù)據(jù)類型C語言程序設計變量變量(variable)是指程序在運行過程中其值可以改變的量。C語言中的變量在使用之前必須先定義(也稱為變量聲明),否則系統(tǒng)將無法為變量分配合適的內(nèi)存單元。變量定義的一般格式如下:類型 變量名1,變量名2…;例如,inti,j,t; floata,b,c;2.1C語言的基本數(shù)據(jù)類型C語言程序設計變量的初始化變量的初始化是指給變量賦初值。在定義/聲明一個變量時,系統(tǒng)將自動地根據(jù)變量類型分配合適的內(nèi)存單元。但是當變量初始值沒有被指定時,系統(tǒng)將自動在其存儲單元中放入一個隨機(任意、不確定的)的值,所以一般來說,變量需要預置一個值,也就是所謂的賦值。賦值操作通過賦值符號“=”把其右邊的值賦給左邊的變量。變量賦值的一般格式如下:變量名=數(shù)值/表達式;例如,a=10;x=3*4+2.5; 2.1C語言的基本數(shù)據(jù)類型C語言程序設計名師點睛(1)允許變量在定義的同時,進行初始化。例如,“inta=3,b=4,c=5;”。(2)C語言中的“=”符號是賦值運算符,不是“比較等”,也就是說完全不同于數(shù)學中(如3+4+5=12中的)“=”的意義。(3)賦值運算符“=”左邊必須是變量,不能是常量或常數(shù),否則是錯誤的。例如,“int3=a,4=b,5=c;”。(4)初始化語句“inta=b=c=3;”是錯誤的,編譯器會顯示變量b、變量c是未定義類型的錯誤。(5)變量在賦值前已經(jīng)被定義類型,否則,程序是無法通過編譯的,即變量必須先定義后使用。2.1C語言的基本數(shù)據(jù)類型C語言程序設計基本數(shù)據(jù)類型類型名稱字節(jié)數(shù)取值范圍類型定義實例int整型2字節(jié)-32768~32767inta,b;float單精度實型4字節(jié)-3.4
10-38~3.4
1038,6位精度floatx,y;double雙精度實型8字節(jié)-1.7
10-308~1.7
10308,16位精度doublea,b;char字符型1字節(jié)-128~127chara,b;2.1C語言的基本數(shù)據(jù)類型C語言程序設計整型常量在C語言中,整型常量有3種表示形式,在具體應用中,往往根據(jù)需要進行選用。十進制整數(shù):由數(shù)字0~9和正負號表示。例如,1977,980,-3,0。八進制整數(shù):由數(shù)字0開頭,后跟數(shù)字0~7表示。例如,0456,0661,011。十六進制整數(shù):由0x或0X開頭,后跟0~9,a~f,A~F表示。例如,0x128,0Xcd。2.1C語言的基本數(shù)據(jù)類型C語言程序設計整型變量整型變量的基本類型符為int,要使變量成為整型,必須將其定義為整型。C語言程序設計【例2-3】定義變量a、變量b為整型,并輸出其值。運行結(jié)果語句編寫23
2.1C語言的基本數(shù)據(jù)類型#include<stdio.h> intmain() { inta,b=3; /*定義整型變量a,b,并給變量b賦初值3*/ a=2; printf("%d%d",a,b); return0; }
2.1C語言的基本數(shù)據(jù)類型C語言程序設計名師點睛整形數(shù)據(jù)輸出的格式控制符為"%d",有一個輸出變量就應該有一個格式控制符與之對應。2.1C語言的基本數(shù)據(jù)類型C語言程序設計實型常量實型常量也稱為浮點型常量、實數(shù)或浮點數(shù)。在C語言中,實數(shù)只采用十進制格式,它由小數(shù)點和數(shù)字組成,讀者也許會認為這與數(shù)學中的表示相同,實際上是有區(qū)別的。在C語言中,實數(shù)的小數(shù)點前允許沒有數(shù)字,它有兩種表示形式。十進制數(shù)形式(必須有小數(shù)點)。例如,0.12、.789、123.0、0.0。指數(shù)形式。指數(shù)形式類似數(shù)學中的科學記數(shù)法,用e或E代替數(shù)學中的10,但是在C語言中e或E之前必須有數(shù)字,指數(shù)必須為整數(shù)。例如,123e3、-14、76.3E2、1.3e+2、1.9e-3都是合法的形式,而1.23e0.7、e3、-42E1/2都是不合法的形式。2.1C語言的基本數(shù)據(jù)類型C語言程序設計實型變量實型變量分為單精度(float)類型和雙精度(double)類型,變量使用之前,一定要先定義類型。C語言程序設計【例2-4】單精度和雙精度實型變量的應用。運行結(jié)果語句編寫3.700000127869291.9295000
2.1C語言的基本數(shù)據(jù)類型intmain() { floata,b; /*定義單精度變量a,b*/ doublec,d; /*定義雙精度變量c,d*/ a=b=3.7; /*變量a,b均賦值為3.7*/ c=127869288.225; /*變量c賦值為127869288.225*/ d=a+c; /*a+c的結(jié)果賦值給變量d*/ printf("%f%f",a,d); /*分別輸出變量a,d的值*
return0; } 2.1C語言的基本數(shù)據(jù)類型C語言程序設計字符型常量字符(char)型常量是指用一對單引號括起來的一個字符。字符常量中的單引號只起定界作用并不表示字符本身。例如,'a'、'F'、'8'、'→'。字符常量在計算機內(nèi)存儲時,并不是按其原貌存儲的,實際上存放的是該字符的ASCII碼值(即一個整數(shù))、占1字節(jié)的單元空間。例如,字符'a'的值是97,字符'A'的值是65。計算機要輸出字符常量時,自動地將ASCII碼值轉(zhuǎn)換為其所對應的字符輸出。因此,字符型和整型的關(guān)系是非常密切,也可把字符型看作一種特殊的整型。事實上,字符型數(shù)據(jù)和整型數(shù)據(jù)經(jīng)常會混合使用。2.1C語言的基本數(shù)據(jù)類型C語言程序設計名師點睛(1)字符常量只包括一個字符。例如,'AB'是不合法的,因為有兩個字符。(2)字符常量區(qū)分大小寫字母。例如,'a'與'A'是兩個不同的字符常量。2.1C語言的基本數(shù)據(jù)類型C語言程序設計轉(zhuǎn)義字符轉(zhuǎn)義字符含義
轉(zhuǎn)義字符含義\n換行
\b退格\v豎向跳格
\f換頁符\r回車
\\反斜線\’單引號
\0空操作符\”雙引號
\ddd3位8進制數(shù)代表的字符\t橫向跳格(Tab)
\xhh2位16進制數(shù)代表的字符\?問號
轉(zhuǎn)義字符是一類特殊形式的字符常量,以'\'開頭。例如,'\n'代表一個“換行”符。轉(zhuǎn)義字符雖然包含兩個或多個字符,但它只代表一個字符。編譯系統(tǒng)在見到字符'\'時,會接著找它后面的字符,把它處理成一個字符,在內(nèi)存中只占1字節(jié)。2.1C語言的基本數(shù)據(jù)類型C語言程序設計名師點睛(1)8與'8'不相同,8是整數(shù),'8'是字符常量,其值為56,遠遠大于8。(2)c與'c'不相同,c是標識符,可看作變量,其值由所賦的值決定。2.1C語言的基本數(shù)據(jù)類型C語言程序設計字符型變量字符型變量主要是為了存儲字符常量,用類型符號char定義字符變量。字符常量是以ASCII碼值的形式存儲的,占1字節(jié)的內(nèi)存單元。字符變量的定義一般格式如下。char 變量名;C語言程序設計【例2-5】字符型數(shù)據(jù)與整型數(shù)據(jù)賦值。運行結(jié)果語句編寫c1=ac2=ba=97
2.1C語言的基本數(shù)據(jù)類型intmain() { charc1,c2; /*定義字符變量c1,c2*/ inta; c1='a',c2=98; /*'a'賦值給c1,98賦值給c2*/ a='a'; /*'a'賦值給變量a*/ printf("c1=%cc2=%ca=%d",c1,c2,a);/*分別輸出c1,c2,a的值*/ return0;}
程序說明:(1)整型變量a是整數(shù)97,最終也是以二進制的形式存儲于內(nèi)存中。這樣,整型數(shù)據(jù)與字符型數(shù)據(jù)在內(nèi)存中沒有本質(zhì)區(qū)別。(2)整型數(shù)據(jù)與字符型數(shù)據(jù)輸出的形式取決于格式控制符。若以"%c"進行格式控制,輸出字符;若以"%d"進行格式控制,則輸出整數(shù)。2.1C語言的基本數(shù)據(jù)類型C語言程序設計字符串常量字符串(characterstring)常量是用雙引號括起來的字符序列。例如,"CHINA"、"ab$"、"IloveZhejiang!"都屬于字符串常量。字符串在存儲時,每一個字符元素占1字節(jié),但是整個字符串占用的內(nèi)存單元等于字符串中字符元素的個數(shù)加1,因為字符串有一個結(jié)束標志'\0',要占1字節(jié)。例如,"CHINA"的存儲情況如圖2-2所示。
圖2-2字符串存儲情況CHINA\02.1C語言的基本數(shù)據(jù)類型C語言程序設計名師點睛(1)C語言中沒有專門的字符串變量,一般用字符數(shù)組來存放字符串。(2)"a"是字符串常量,'a'是字符常量,它們所占的內(nèi)存空間大小也不一樣。2.1C語言的基本數(shù)據(jù)類型C語言程序設計基本類型修飾符C語言提供的修飾符主要有signed(有符號)、unsigned(無符號)、long(長整型)、short(短整型)。類型字節(jié)數(shù)取值范圍signedint2字節(jié)-32768~32767unsignedint2字節(jié)0~65535signedshortint2字節(jié)-32768~32767unsignedshortint2字節(jié)0~65535longint4字節(jié)2147483648~2147483647unsignedlongint4字節(jié)0~42949672952.1C語言的基本數(shù)據(jù)類型C語言程序設計不同數(shù)據(jù)類型間的轉(zhuǎn)換在表達式中使用不同類型的常量及變量時,它們要轉(zhuǎn)換成同一類型后才能運算。
轉(zhuǎn)換的方法有兩種,一種是自動類型轉(zhuǎn)換(隱式轉(zhuǎn)換),另一種是強制類型轉(zhuǎn)換(顯式轉(zhuǎn)換)。
(1)自動類型轉(zhuǎn)換。自動類型轉(zhuǎn)換是指不同類型數(shù)據(jù)進行混合運算時,編譯系統(tǒng)會自動將數(shù)據(jù)轉(zhuǎn)換為同一數(shù)據(jù)類型。轉(zhuǎn)換規(guī)則是:①所有char和shortint型將自動提升為int型。②若參加運算的數(shù)據(jù)有float型或double型,則轉(zhuǎn)換成double型再運算,結(jié)果為double型。③若運算的數(shù)據(jù)中無float型或double型,但有l(wèi)ong型,數(shù)據(jù)自動轉(zhuǎn)換成long型再運算,結(jié)果為long型。C語言程序設計【例2-6】自動類型轉(zhuǎn)換。運行結(jié)果語句編寫72.500000
2.1C語言的基本數(shù)據(jù)類型intmain(){ inta=5; /*定義整型變量a*/ floatb=2.5; /*定義單精度變量b*/ charc='A'; /*定義字符變量c*/ printf("%f\n",b+(a+c));/*輸出b+(a+c)的結(jié)果*/ return0;}
程序說明:'A'對應的ASCl1碼值為65,計算a+c時首先將char型轉(zhuǎn)化為int型,得到結(jié)果為整型數(shù)據(jù)70。然后,float型轉(zhuǎn)換為doule型,int型轉(zhuǎn)換為double型,得到最終結(jié)果為double型數(shù)據(jù)72.500000。2.1C語言的基本數(shù)據(jù)類型C語言程序設計不同數(shù)據(jù)類型間的轉(zhuǎn)換(2)強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換是使用類型轉(zhuǎn)換符強制使某一數(shù)據(jù)或表達式轉(zhuǎn)變?yōu)橹付愋?。強制類型轉(zhuǎn)換一般格式如下:(類型轉(zhuǎn)換符)表達式C語言程序設計【例2-7】強制類型轉(zhuǎn)換。運行結(jié)果語句編寫c=6,d=7,e=6
2.1C語言的基本數(shù)據(jù)類型intmain(){ floata=3.6,b=3.7; /*定義單精度變量a,b*/ intc,d,e; /*定義整型變量c,d,e*/ c=(int)a+(int)b; /*計算變量c的值*/ d=(int)(a+b); /*計算變量d的值*/ e=(int)a+b; /*計算變量e的值*/ printf("c=%d,d=%d,e=%d\n",c,d,e);/*輸出變量c,d,e的值*/ return0;}程序說明:'A'對應的ASCl1碼值為65,計算a+c時首先將char型轉(zhuǎn)化為int型,得到結(jié)果為整型數(shù)據(jù)70。然后,float型轉(zhuǎn)換為doule型,int型轉(zhuǎn)換為double型,得到最終結(jié)果為double型數(shù)據(jù)72.500000。2.1C語言的基本數(shù)據(jù)類型C語言程序設計名師點睛(1)(類型轉(zhuǎn)換符)中的類型必須是C語言支持的數(shù)據(jù)類型。(2)強制類型轉(zhuǎn)換在編譯時,不論是向高級類型轉(zhuǎn)換還是向低級類型轉(zhuǎn)換,編譯器不再發(fā)出警告。(3)類型轉(zhuǎn)換符是單目運算符。2.2基本數(shù)據(jù)的輸入與輸出C語言程序設計格式輸入輸出函數(shù)在C語言中,輸入輸出是針對計算機主機而言,數(shù)據(jù)的輸入輸出是通過用戶與計算機進行交互實現(xiàn)的。輸入是指用戶從外部輸入設備(如鍵盤、掃描儀等)向計算機輸入數(shù)據(jù)的過程。輸出是指從計算機向外部輸出設備(如顯示屏、打印機等)輸出數(shù)據(jù)的過程。C語言本身沒有輸入輸出語句,輸入輸出語句是由C函數(shù)庫提供的。C語言在其函數(shù)庫中提供了大量具有獨立功能的函數(shù)程序塊。在使用函數(shù)庫時,要用編譯預處理命令將有關(guān)的“頭文件”包含到用戶源程序文件中。調(diào)用標準函數(shù)庫中的輸入輸出函數(shù)時,應該在源文件中使用預編譯命令。例如,#include<stdio.h>或#include"stdio.h"。2.2基本數(shù)據(jù)的輸入與輸出C語言程序設計格式輸出printf()函數(shù)printf()函數(shù)是格式輸出函數(shù),用來向終端(輸出設備)輸出若干個任意類型的數(shù)據(jù)。printf()函數(shù)一般格式如下:printf("非格式字符串");printf("格式字符串",輸出列表);其中,(1)"非格式字符串"指通常所說的普通字符,在輸出時會按原樣輸出的字符,一般是輸出時的提示性信息,也可以輸入空格和轉(zhuǎn)義字符。(2)"格式字符串"由普通字符和格式控制字符組成。格式控制字符由"%"和格式說明符兩部分組成,用以說明輸出數(shù)據(jù)的類型、形式、長度、小數(shù)位數(shù)等,如%d、%f等。(3)"輸出列表"是需要輸出的若干數(shù)據(jù)的列表,各項之間用逗號隔開,每一項可以是常量、變量,也可以是表達式,按照格式字符串規(guī)定的格式輸出具體的值。2.2基本數(shù)據(jù)的輸入與輸出C語言程序設計格式輸出printf()函數(shù)常見的格式說明符見表2-4所示。字符意義輸出語句格式輸出結(jié)果d十進制整數(shù)inta=567;printf("%d",a);567u無符號十進制整數(shù)inta=567;printf("%u",a);567o八進制無符號整數(shù)inta=65;printf("%o",a);101x,X十六進制無符號整數(shù)inta=255;printf("%x",a);fff小數(shù)形式浮點數(shù)floata=567.789;printf("%f",a);567.789000c單個字符chara=65;printf("%c",a);As字符串printf("%s","ABC");ABCe,E指數(shù)形式浮點數(shù)floata=567.789;printf("%e",a);5.67789e+02g,Ge和f中較短一種floata=567.789;printf("%g",a);567.789C語言程序設計【例2-8】輸出格式符的用法。運行結(jié)果語句編寫aILoveChina!
2.2基本數(shù)據(jù)的輸入與輸出intmain(){ charb; b=97; /*將97的字符賦給變量b*/ printf("%c\n",b); /*輸出變量b后換行*/ printf("%s","ILoveChina!");/*輸出字符串常量*/ return0;}
2.2基本數(shù)據(jù)的輸入與輸出C語言程序設計格式輸入scanf()函數(shù)scanf()函數(shù)是格式輸入函數(shù),用來接受用戶從鍵盤輸入若干個數(shù)據(jù)(可以是不同的數(shù)據(jù)類型),并送給指定的變量所分配的內(nèi)存單元中。scanf()函數(shù)一般格式如下:scanf("格式字符串",地址列表);其中,(1)"格式字符串"的含義與輸出printf()函數(shù)基本相同,由普通字符和格式控制字符組成,用來指定輸入的格式。(2)"地址列表"是由若干個地址組成的列表,每個變量名前加上字符“&”,用來表示變量的內(nèi)存地址。(3)程序運行時,按照格式字符串的格式依次輸入數(shù)據(jù),其中普通字符要在輸入的時候原樣錄入,以“回車鍵”作為輸入結(jié)束的標志。C語言程序設計【例2-9】輸出函數(shù)的用法。運行結(jié)果語句編寫請按順序輸入你的德育、智育和能力素質(zhì)成績:969193你的綜合素質(zhì)測評成績?yōu)椋?2.90
2.2基本數(shù)據(jù)的輸入與輸出intmain(){ floata,b,c; doublescore; printf("請按順序輸入你的德育、智育和能力素質(zhì)成績:\n"); scanf("%f%f%f",&a,&b,&c); /*輸入變量a,b,c的值*/ score=0.3*a+0.5*b+0.2*c; printf("你的綜合素質(zhì)測評成績?yōu)椋?5.2f\n",score); return0;}2.2基本數(shù)據(jù)的輸入與輸出C語言程序設計名師點睛(1)若在兩個格式說明之間沒有其他字符,則在輸入時,兩個數(shù)據(jù)之間可以是若干空格、Tab或回車鍵分割,切記不能用逗號分隔。(2)如兩個格式說明之間用","分隔,則數(shù)據(jù)輸入時,數(shù)據(jù)之間只能用逗號作為間隔,而不能用其他作為分隔符。2.2基本數(shù)據(jù)的輸入與輸出C語言程序設計字符數(shù)據(jù)專用輸入輸出函數(shù)C語言專門提供了字符輸入輸出函數(shù),這兩個函數(shù)也包含在頭文件stdio.h中,在使用時,必須在程序的main()函數(shù)前加上#include<stdio.h>或#include<"stdio.h"。2.2基本數(shù)據(jù)的輸入與輸出C語言程序設計putchar()函數(shù)putchar()函數(shù)是字符輸出函數(shù),是在顯示器上輸出單個字符變量的值。putchar()函數(shù)一般格式如下:putchar(字符變量);例如,putchar('\n');是輸出一個換行符。C語言程序設計【例2-10】putchar()函數(shù)的用法。運行結(jié)果語句編寫ILOVECHINA
2.2基本數(shù)據(jù)的輸入與輸出intmain(){ chara,b,c,d,e; a='C',b='H',c='I',d='N',e='A'; printf("%s","ILOVE"); /*輸出字符串常量*
putchar(a); putchar(b); putchar(c);/*依次輸出字符變量a,bc,d,e的值*/ putchar(d); putchar(e); return0; }2.2基本數(shù)據(jù)的輸入與輸出C語言程序設計名師點睛(1)putchar()函數(shù)每次只能輸出一個字符。例如,putchar(a,b),這樣輸出多個變量值的做法是錯誤的。(2)直接用printf()函數(shù)以字符串的方式輸出ILOVECHINA反而更方便。2.2基本數(shù)據(jù)的輸入與輸出C語言程序設計getchar()函數(shù)getchar()函數(shù)是字符輸入函數(shù),是從鍵盤上輸入一個字符。getchar()函數(shù)一般格式如下:getchar();例如,charc; … c=getchar();C語言程序設計【例2-11】getchar()函數(shù)的用法。運行結(jié)果語句編寫請輸入一個小寫字母:a對應的大寫字母是:A
2.2基本數(shù)據(jù)的輸入與輸出intmain(){ chara; printf("請輸入一個小寫字母:"); a=getchar(); /*接收到的字符存儲在變量a中*/ putchar(a); /*輸出變量a的內(nèi)容*/ printf("對應的大寫字母是:%c",a-32); /*輸出a-32的值*/ return0;}2.2基本數(shù)據(jù)的輸入與輸出C語言程序設計名師點睛(1)putchar()函數(shù)和getchar()函數(shù)每次只能處理一個字符,且getchar()函數(shù)沒有參數(shù)。(2)getchar()函數(shù)接收的字符可以賦值給一個字符型或整型變量,也可以不賦給任何變量,而作為表達式的一部分。2.3運算符和表達式C語言程序設計算術(shù)運算符算術(shù)運算符是算術(shù)運算的基本元素。C語言中的算術(shù)運算符如表2-5所示。操作符作用示例-減法5-3、-2、a-b、9-7+加法12+2.1、7+a*乘法123*5、7.8*2/除法78/3、78.0/3%求模(求余)78%32.3運算符和表達式C語言程序設計名師點睛(1)由于鍵盤中沒有“”和“”,運算符用“*”和“/”代替。(2)對于除法運算符“/”,若兩個整數(shù)相除,結(jié)果只能為整,小數(shù)全舍。例如,7/2=3,而不是3.5。(3)求模運算符“%”只適用于兩個整數(shù)求余,其兩個運算變量只能是整型或字符型(ASCII碼),而不能是其他類型。余數(shù)結(jié)果的符號由被除數(shù)決定。例如,8%(-3)=2,而(-8)%3=-2。2.3運算符和表達式C語言程序設計算術(shù)表達式算術(shù)表達式是指用算術(shù)運算符和括號將數(shù)據(jù)對象連接起來的式子。表達式的運算按照運算符的結(jié)合性和優(yōu)先級來進行。C語言規(guī)定了運算符的結(jié)合方向,即結(jié)合性。如果只有結(jié)合性顯然不夠,例如,表達式7+9*2就不能只考慮運算的結(jié)合性,而要考慮運算符的優(yōu)先級問題了。C語言算術(shù)運算符的優(yōu)先級與數(shù)學中的混合運算規(guī)則大致相同,即優(yōu)先級從高到低是:()→負號→*、/、%→+、-其中,*、/、%優(yōu)先級相同,+、-優(yōu)先級相同。表達式求值時,先按運算符優(yōu)先級別高低依次執(zhí)行,遇到相同優(yōu)先級的運算符時,則按“左結(jié)合”處理。例如,表達式a+b*c/2,其運算符執(zhí)行順序為:*→/→+。C語言程序設計【例2-12】運算符"/"和"%"的用法。運行結(jié)果語句編寫a=1,b=2,c=1.666667
2.3運算符和表達式intmain(){ inta,b; floatc; a=5/3; b=5%3; /*運算符%要求操作數(shù)必須為整型*/ c=5/3.0; printf("a=%d,b=%d,c=%f",a,b,c); return0;}2.3運算符和表達式C語言程序設計賦值運算最基本的賦值運算符是“=”,是將一個數(shù)據(jù)賦給一個變量。由賦值運算符組成的表達式稱為賦值表達式。賦值表達式的一般格式如下:變量=表達式;賦值表達式的計算順序是:先計算“=”右邊的表達式,再將表達式的值賦值給“=”左邊的變量。賦值表達式的作用是將一個表達式的值賦給一個變量,因此,賦值表達式具有計算和賦值兩個功能。例如,“a=4+5”是一個賦值表達式,其求解過程是先求賦值運算右側(cè)的表達式“4+5”的值(9),然后再將9賦給賦值表達式左側(cè)的變量a。在賦值表達式后加上分號就構(gòu)成了賦值語句。例如,“a=b=c=0;”。2.3運算符和表達式C語言程序設計名師點睛在為變量賦初始值時,如果要對幾個變量賦予同一個初值,可采用“inta=0,b=0,c=0;”但是不能寫成“inta=b=c=0;”。2.3運算符和表達式C語言程序設計復合賦值賦值運算符可以與其他部分運算符結(jié)合起來,構(gòu)成復合賦值運算符。復合賦值運算符名稱舉例意義+=賦值a+=b等價于a=a+b-=加賦值a-=b等價于a=a-b*=減賦值a*=b等價于a=a*b/=乘賦值a/=b等價于a=a/b%=除賦值a%=b等價于a=a%bC語言程序設計【例2-13】賦值運算的結(jié)合性。運行結(jié)果語句編寫a=16
2.3運算符和表達式intmain(){ inta=1; a*=a-=5; printf("a=%d\n",a); return0;}程序說明:因為賦值運算符為右結(jié)合性,在表達式a*=a-=5中,故先計算a-=5,等價于a=a-5,則a變?yōu)?4;再計算a*=a,等價于a=(-4)*(-4),所以最后結(jié)果為a=16。2.3運算符和表達式C語言程序設計自增和自減符C語言提供了其他語言一般不支持的兩種非常實用的操作符,即自增運算符“++”和自減運算符“--”,其作用是讓變量的值加1或減1。但自增自減運算符都有前置與后置之分,前置后置決定了變量使用與計算的順序。(1)自增運算符前置,如++i,是先將i的值加1,再使用加1后i的值。(2)自增運算符后置,如i++,是先使用i當前的值,再將i的值加1。(3)自減運算符前置,如--i,是先將i的值減1,再使用減1后i的值。(4)自減運算符后置,如i--,是先使用i當前的值,再將i的值減1。2.3運算符和表達式C語言程序設計名師點睛(1)自增自減運算符只能作用于變量,不能用于常量或表達式。例如,3++,(a+b)--都是不合法的。(2)自增自減運算符在算術(shù)運算符中的優(yōu)先級最高。(3)自增自減運算符常用于循環(huán)語句中,使循環(huán)變量自動加1;也用于指針變量,使指針指向下一個地址。C語言程序設計【例2-14】自增與自減的使用方法。運行結(jié)果語句編寫a=4b=5c=15a=5b=5c=25
2.3運算符和表達式intmain(){ inta=2,b=4,c; a++; ++b; c=(a++)*b; printf("a=%db=%dc=%d\n",a,b,c); c=(++a)*b; printf("a=%db=%dc=%d\n",a,b,c); return0;}2.3運算符和表達式C語言程序設計關(guān)系運算符關(guān)系運算符是用于比較運算符左右兩個操作數(shù)的大小關(guān)系。因此,關(guān)系運算符實際上就是“比較運算”,是將兩個值進行比較,判斷是否符合或滿足給定的條件。判斷的結(jié)果要么是“真”,要么是“假”。在C在語言中,“真”用數(shù)字1表示,“假”用數(shù)字0表示。C語言提供的關(guān)系運算符及其優(yōu)先級如表2-7所示。運算符含義優(yōu)先級<
小于優(yōu)先級相同
高
低<=小于等于>
大于>=大于等于==等于優(yōu)先級相同!=不等于2.3運算符和表達式C語言程序設計名師點睛(1)關(guān)系運算符的優(yōu)先級低于算術(shù)運算符,高于賦值運算符。(2)關(guān)系運算的結(jié)合性也是“左結(jié)合性”。(3)C語言中的等于關(guān)系用“==”表示,而不是“=”。賦值運算是將右側(cè)的值賦給左邊變量,賦值運算符沒有比較的意義。2.3運算符和表達式C語言程序設計關(guān)系表達式關(guān)系表達式是指用關(guān)系運算符將變量、常量、表達式連接起來的式子。關(guān)系表達式的一般格式如下:表達式1關(guān)系運算符表達式2關(guān)系運算符兩邊的“表達式”可以是C語言中任意合法的表達式。既可以為算術(shù)表達式、逗號表達式、賦值表達式、關(guān)系表達式和邏輯表達式,也可以是變量和函數(shù)等。關(guān)系表達式的值指關(guān)系運算的結(jié)果,為邏輯值“真”或“假”,用數(shù)字1或0表示。C語言程序設計【例2-15】關(guān)系運算符的運用。運行結(jié)果語句編寫0,0,1,1,0,1
2.3運算符和表達式intmain(){ inta=3,b=2; printf("%d,%d,%d,%d,%d,%d",a<b,a<=b,a>b,a>=b,a==b,a!=b); return0;}2.3運算符和表達式C語言程序設計邏輯運算符邏輯運算表示兩個數(shù)據(jù)或表達式之間的邏輯關(guān)系。C語言提供的邏輯運算符及其優(yōu)先級如表2-8所示。運算符含義類型舉例說明優(yōu)先級!邏輯非單目!X當X為真時,!X為假;當X為假時,!X為真
高
低&&邏輯與雙目X&&Y僅X與Y均為真時,X&&Y為真,否則為假|(zhì)|邏輯或雙目X||YX與Y至少一個為真,X||Y就為真,否則為假2.3運算符和表達式C語言程序設計名師點睛(1)!是單目運算符(只有一個運算量),格式為:“!表達式”。(2)!的結(jié)合性為“從右向左”,&&和||的結(jié)合性仍為“從左往右”。2.3運算符和表達式C語言程序設計邏輯表達式邏輯表達式是指用邏輯運算符將關(guān)系表達式或邏輯量連接起來的式子。邏輯表達式的一般格式如下:表達式1邏輯運算符表達式2邏輯表達式的值指邏輯運算的結(jié)果,為邏輯值“真”或“假”,用數(shù)字1或0表示。ab!a!ba&&ba||b0011000非01001非000101非0非000112.3運算符和表達式C語言程序設計逗號運算逗號運算符是將兩個表達式用“,”連接起來,實現(xiàn)特定的作用,用逗號運算符把兩個表達式連接起來的式子就成為逗號表達式。逗號表達式一般格式如下:表達式1,表達式2,表達式3,……,表達式n;逗號表達式的值是最后一個表達式n的值,其求解過程是:從左到右依次求解表達式1,表達式2,……,表達式n。例如,逗號表達式a=3*8,a+2;先求a=3*8,得24,然后求解a+2,得26,因此整個逗號表達式的值為26。2.3運算符和表達式C語言程序設計名師點睛(1)逗號運算符的優(yōu)先級是所有運算符中級別最低的,其優(yōu)先級低于賦值運算符。(2)并非出現(xiàn)逗號的地方都是逗號表達式,在定義變量的時候,可以使用逗號。例如,inta,b;這里的逗號就不是運算符,它只是個分隔符。(3)逗號表達式的結(jié)合性為“從左往右”。2.3運算符和表達式C語言程序設計條件運算條件運算符是C語言中唯一的三目運算符,即它需要3個數(shù)據(jù)或表達式構(gòu)成條件表達式。條件運算一般格式如下:表達式1?表達式2:表達式3如果表達式1成立,則表達式2的值是整個表達式的值,否則表達式3的值是整個表達式的值。例如,將變量a、變量b中最大的放在變量max中,利用條件運算完成:max=a>b?a:b;2.3運算符和表達式C語言程序設計名師點睛條件運算符的結(jié)合方向為從右向左。例如,a>b?a:b>c?b:c等價于a>b?a:(b>c?b:c)。C語言程序設計【例2-16】條件運算的運用。運行結(jié)果語句編寫3,4,5a=3,b=4,c=5,max=5
2.3運算符和表達式intmain(){ inta,b,c,max; scanf("%d,%d,%d",&a,&b,&c); max=a>(b>c?b:c)?a:(b>c?b:c); printf("a=%d,b=%d,c=%d,max=%d\n",a,b,c,max); return0;}2.4C語言語句分類C語言程序設計條件運算C語言的語句分為控制語句、函數(shù)調(diào)用語句、表達式語句、空語句和復合語句5種類型。1.控制語句:控制語句用于完成一定的控制功能,以實現(xiàn)程序的結(jié)構(gòu)化。C語言有9種控制語句,可分為3類。2.函數(shù)調(diào)用語句:函數(shù)調(diào)用語句由一個函數(shù)調(diào)用加上一個分號構(gòu)成,作用時調(diào)用函數(shù)體并把實際參數(shù)賦給函數(shù)定義中的形式參數(shù),然后執(zhí)行被調(diào)用函數(shù)體中的語句,求取函數(shù)值。3.表達式語句:表達式語句由表達式加一個分號構(gòu)成。4.空語句:空語句是指只有一個分號而沒有表達式的語句。5.復合語句:復合語句是把一組語句用一對大括號“{}”括起來,又稱為塊語句。2.4C語言語句分類C語言程序設計名師點睛(1)復合語句在語法上與單一語句相同,即單一語句出現(xiàn)的地方也可以使用復合語句。(2)復合語句可以嵌套,即復合語句也可以出現(xiàn)在復合語句中。2.5常見錯誤分析C語言程序設計標識符命名錯誤intmain(){ intScore1=90,2score=80,sum; /*變量2score首字符為數(shù)字*/ sum=score1+2score; /*score1不同于Scoer1*/ printf("總成績?yōu)椋?d\n",sum); return0;}2.5常見錯誤分析C語言程序設計變量定義錯誤intmain(){ intab; /*多個變量中間沒有用逗號隔開*/ a=10; b=20; printf("a=%d,b=%d\n",a,b); return0;}2.5常見錯誤分析C語言程序設計字符變量賦值錯誤intmain(){ charc; c=B; /*字符常量b需要使用單引號括起來*/ printf("c=%c\n",c); return0;}2.5常見錯誤分析C語言程序設計運算時錯用數(shù)據(jù)類型intmain(){ floata,b; a=7/2; /*兩個整數(shù)相除是整除,取商的整數(shù)部分*/ b=7.0/2; /*除數(shù)或被除數(shù)有一個是浮點數(shù),結(jié)果才是浮點數(shù)*/ printf("a=%f,b=%f\n",a,b); return0;}2.6字符串加密應用實戰(zhàn)C語言程序設計實戰(zhàn)背景量子通信技術(shù)是我國領(lǐng)跑于世界的重大科技成果之一。量子通訊是利用量子效應加密并進行信息傳輸?shù)囊环N通訊方式,能用量子態(tài)作為信息載體,通過量子態(tài)的傳送完成大容量信息的傳輸,實現(xiàn)了原則上不可破譯的量子保密通信。量子密鑰分發(fā)技術(shù)也是迄今為止唯一被嚴格證明是原理上無條件安全的通信方式。作為進一步探索信息保密技術(shù)的起點,運用C語言知識來實現(xiàn)最簡單的信息加密技術(shù)——字符串加密技術(shù)。2.6字符串加密應用實戰(zhàn)C語言程序設計實戰(zhàn)目的(1)掌握字符的定義方法。(2)ASCII碼值的應用,運算符、表達式的使用。(3)printf()函數(shù)連續(xù)輸出多個字符。實戰(zhàn)內(nèi)容編寫C語言程序,實現(xiàn)對字符串的加密。要求字符串中的每個字符都使用相應字符后面的第6個字符代替原來的字符。例如,字符串“hello”,加密之后,字符串變?yōu)椤皀krru”,請編寫一個程序?qū)Α癶ello”字符串進行加密。2.6字符串加密應用實戰(zhàn)C語言程序設計實戰(zhàn)結(jié)果2.6字符串加密應用實戰(zhàn)C語言程序設計實戰(zhàn)意義通過實戰(zhàn),進一步掌握了變量的定義和正確使用;加深了對運算符的應用理解,對編程解決一些實際問題有了更深的認識。作為新時代大學生,需要樹立正確的網(wǎng)絡安全觀,在網(wǎng)絡公共空間,要時刻遵守公共秩序,遵守基本的道德準則。C語言程序設計第3章選擇結(jié)構(gòu)程序設計脈絡導圖C語言程序設計技能目標C語言程序設計(1)掌握結(jié)構(gòu)化程序設計的3種基本結(jié)構(gòu)。(2)掌握不同形式的if語句的格式,掌握其實現(xiàn)選擇結(jié)構(gòu)的方法。(3)掌握使用switch語句的格式及應用方法。(4)掌握避免使用選擇結(jié)構(gòu)時常見的錯誤,能熟練編寫選擇結(jié)構(gòu)程序。素質(zhì)目標C語言程序設計(1)通過算法流程圖的講解,學會做一個凡事有條理的人,懂得按照事情的計劃和順序來做,學會統(tǒng)籌管理和節(jié)約時間,提高學習和辦事的效率。(2)通過多種選擇結(jié)構(gòu)的編程練習,使同學們掌握選擇結(jié)構(gòu)的概念及多種語句的使用,培養(yǎng)同學們將知識應用于解決實際問題的意識。(3)通過對易犯錯誤進行整理和案例分析,培養(yǎng)同學們良好的編程習慣,樹立問題意識,提升是我的靈活性,從而提升自主同學們的學習能力。3.1選擇結(jié)構(gòu)if語句C語言程序設計if在英文中的含義是“如果”,也就意味著判斷。C語言用if語句可以構(gòu)成分支結(jié)構(gòu)。它根據(jù)給定的條件進行判斷,以決定執(zhí)行某個分支程序段。if語句一般格式如下:if(表達式) 語句其中:表達式一般為邏輯表達式或關(guān)系表達式。語句可以是一條簡單的語句或多條語句,當為多條語時,需要用“{}”將這些語句括起來,構(gòu)成復合語句。if語句的執(zhí)行過程是:當表達式的值為真(非0)時,執(zhí)行語句,否則直接執(zhí)行if語句下面的語句。if語句形式C語言程序設計【例3-1】編程實現(xiàn),輸入兩個整數(shù),輸出這兩個數(shù)中較大的數(shù)。運行結(jié)果語句編寫請輸入兩個整數(shù):533兩數(shù)中較大的數(shù)為:33
3.1選擇結(jié)構(gòu)if語句intmain(){ inta,b,max; printf("請輸入兩個整數(shù):"); scanf("%d%d",&a,&b); max=a; /*假設a是較大的并賦值給max*/ if(a<b) /*若a比b小,將b賦給max*/ max=b; printf("兩數(shù)中較大的數(shù)為:%d\n",max); return0; }程序說明:定義三個變量a、變量b和變量max,用來存放輸入的兩個整數(shù)和較大數(shù)。從鍵盤輸入兩個整數(shù),首先假設a是較大數(shù),將a的值賦給max,然后使用if語句進行條件判斷,如果a小于b,則b為較大數(shù),即將b的值賦給max。3.1選擇結(jié)構(gòu)if語句C語言程序設計名師點睛(1)if后面的表達式必須用“()”括起來。(2)if后面的表達式可以是關(guān)系表達式、邏輯表達式、算術(shù)表達式等。(3)表達式中一定要區(qū)分賦值運算符“=”和關(guān)系運算符“==”。例如,if(x==33)判斷x的值是否等于33,而if(x=33)則是把33賦值給x,所以表達式的值為33(非0),即為真。3.1選擇結(jié)構(gòu)if語句C語言程序設計if語句只允許在條件為真時指定要執(zhí)行的語句,而if-else語句還可以在條件為假時指定要執(zhí)行的語句。if-else語句的一般格式如下:if(表達式)
語句1else
語句2if-else語句的執(zhí)行過程是:當表達式為真(非0)時,執(zhí)行語句1,否則執(zhí)行語句2。if-esle語句形式3.1選擇結(jié)構(gòu)if語句C語言程序設計名師點睛(1)“語句1”和“語句2”是“內(nèi)嵌語句”,它們是if-else語句中的一部分。每個內(nèi)嵌語句的末尾都應該有分號。(2)else子句不能作為語句單獨使用,它必須是if語句的一部分,與if配對使用。(3)“語句1”和“語句2”可以是一個簡單的語句,也可以是一個包括多個語句的復合語句。(4)內(nèi)嵌語句也可以是一個if語句,這就形成了if嵌套。C語言程序設計【例3-2】兒歌“紅綠燈,大眼睛,一閃一閃要看清。紅燈停,綠燈行,黃燈牢記準備停?!备鶕?jù)輸入信號燈s的值,輸出車輛通行情況。運行結(jié)果語句編寫請輸入信號燈的值:-3請及時停車!
3.1選擇結(jié)構(gòu)if語句intmain(){ ints; /*定義整型變量s表示交通信號燈*/ printf("請輸入信號燈的值:"); scanf("%d",&s); if(s==1) /*s==1,表示綠燈亮*/ printf("請車輛有序通行!\n"); else /*s輸入其他值,表示紅燈亮*/ printf("請及時停車!\n"); return0; }程序說明:根據(jù)輸入信號燈的值,輸出車輛通行情況。使用if-else語句進行條件判斷,如果輸入信號燈s的值等于1,條件成立,輸出車輛有序通行。輸入其他值else的條件成立,輸出請及時停車!C語言程序設計【例3-3】編程實現(xiàn),輸入兩個整數(shù),輸出這兩個數(shù)中較大的數(shù)(用if-else語句實現(xiàn))。運行結(jié)果語句編寫請輸入兩個整數(shù):533max=33
3.1選擇結(jié)構(gòu)if語句intmain(){ inta,b; printf("請輸入兩個整數(shù):"); scanf("%d%d",&a,&b); if(a>b) /*若a大于b,輸出a*/ printf("max=%d\n",a); else /*否則輸出b*/ printf("max=%d\n",b); return0; }程序說明:使用if-else語句進行條件判斷,如果a大于b,則a為較大數(shù),if條件成立,輸出a的值,否則b為較大數(shù),else條件成立,輸出b的值。3.1選擇結(jié)構(gòu)if語句C語言程序設計if-else-if語句,其一般形式如下:if(表達式1) 語句1elseif(表達式2) 語句2elseif(表達式3) 語句3…elseif(表達式n) 語句nelse 語句n+1if-else-if語句形式C語言程序設計【例3-4】在【例3-2】的基礎(chǔ)上,完善信號燈有紅綠黃三種情況下,車輛的通行情況。運行結(jié)果語句編寫請輸入信號燈s的值:-3黃燈亮,請準備停車。
3.1選擇結(jié)構(gòu)if語句intmain(){ ints; /*定義整型變量s表示交通信號燈*/ printf("請輸入信號燈s的值:"); scanf("%d",&s); if(s==1) /*s==1,表示綠燈亮*/ printf("請車輛有序通行!\n"); elseif(s==0)/*s==0,表示紅燈亮*/ printf("請及時停車!\n"); else/*s輸入其他值,表示黃燈亮*/ printf("黃燈亮,請準備停車。\n"); return0; }程序說明:假設s==1,表示綠燈亮,s==0,表示紅燈亮,其他值表示黃燈亮。當輸入s的值為1時,if語句條件成立,輸出請車輛有序通行!當輸入s的值為0時,elseif語句條件成立,輸出請及時停車!當輸入其他值時,輸出黃燈亮,請準備停車。C語言程序設計【例3-5】學生成績可分為百分制和五級制,根據(jù)輸入的百分制成績score,轉(zhuǎn)換成相應的五級制成績后輸出。運行結(jié)果語句編寫請輸入學生成績:9
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 綜合制劑車間課程設計
- 中西醫(yī)助理醫(yī)師考試中醫(yī)內(nèi)科學總結(jié)要點大全
- 自然大調(diào)音階的課程設計
- 中考英語各種題材閱讀理解強化訓練(附詳解)
- 學年論文和課程設計
- (CFG及真空聯(lián)合堆載預壓)軟基處理施工方案
- 《機械通氣的應用》課件
- 油庫課程設計書封面圖案
- 模擬電子琴設計課程設計
- 知識產(chǎn)權(quán)活動課程設計
- 新流動資金測算表(帶公式)
- GB/T 4214.3-2023家用和類似用途電器噪聲測試方法洗碗機的特殊要求
- 建設工程質(zhì)量控制講義三
- YY/T 0606.7-2008組織工程醫(yī)療產(chǎn)品第7部分:殼聚糖
- 2023年遼寧軌道交通職業(yè)學院高職單招(英語)試題庫含答案解析
- GB/T 29076-2021航天產(chǎn)品質(zhì)量問題歸零實施要求
- DL-T 5190.1-2022 電力建設施工技術(shù)規(guī)范 第1部分:土建結(jié)構(gòu)工程(附條文說明)
- 殯葬服務人才需求調(diào)研報告
- 降低銳器盒不規(guī)腎內(nèi)科品管圈課件
- 《了凡四訓》課件
- 細節(jié)描寫優(yōu)秀課件
評論
0/150
提交評論