下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案20140211解讀《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案20140211解讀84/84《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案20140211解讀《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案包括各單元:一.隨堂練習(xí)二.單元總結(jié)三.單元練習(xí)四.實(shí)訓(xùn)指導(dǎo)《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案單元一程序設(shè)計(jì)宏觀認(rèn)識一.隨堂練習(xí)【隨堂練習(xí)1-1】1.依照上述示例模擬編程,輸入正方形的邊長,計(jì)算其面積。#include<stdio.h>voidmain(){inta,s;//數(shù)據(jù)準(zhǔn)備,邊長a,面積sprintf("請輸入正方形的邊長:");scanf("%d",&a);//數(shù)據(jù)輸入s=a*a;//數(shù)據(jù)計(jì)算printf("該正方形的面積為:%d.\n",s);}【隨堂練習(xí)1-2】1.下面哪些表記符屬于合法的用戶自定義表記符:Main、void、_num、my$、a*、N4、3m、a-2答:合法的用戶自定義表記符是:Main、_num、N42.結(jié)合【例】指出程序代碼中所用到的表記符哪些是重點(diǎn)字,哪些是預(yù)定義表記符,哪些是用戶自定義表記符。答:重點(diǎn)字:void、int預(yù)定義表記符:include、main、printf、scanf用戶自定義表記符:a、b、c3.解析【例】中函數(shù)的構(gòu)造,包括函數(shù)首部(函數(shù)返回值種類、函數(shù)名、形式參數(shù))、函數(shù)體語句(說明語句、可執(zhí)行語句)。答:函數(shù)首部:voidmain(),其中函數(shù)返回值種類為void、函數(shù)名為main、形式參數(shù)無;函數(shù)體語句:{}內(nèi)的語句為函數(shù)體,其中:說明語句為inta,b,c;,其他為可執(zhí)行語句?!倦S堂練習(xí)1-3】1.在VC++6.0環(huán)境中完成【例】程序開發(fā)過程。(略)2.查閱【例】所對應(yīng)的工程文件夾,認(rèn)識相關(guān)文件的含義。1《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案工程文件夾中:.CPP:用C/C++語言編寫的源代碼文件。.DSP:VC開發(fā)環(huán)境生成的工程文件,VC4及以前版本使用MAK文件來定義工程。項(xiàng)目文件,文本格式。.DSW:VC開發(fā)環(huán)境生成的WorkSpace文件,用來把多個工程組織到一個WorkSpace中。工作區(qū)文件,與.dsp差不多。.NCB:NCB是“NoCompileBrowser”的縮寫,其中存放了供ClassView、WizardBar和ComponentGallery使用的信息,由VC開發(fā)環(huán)境自動生成。無編譯閱讀文件。當(dāng)自動完成功能出問題時能夠刪除此文件。編譯工程后會自動生成。.OPT:VC開發(fā)環(huán)境自動生成的用來存放WorkSpace中各種選項(xiàng)的文件。工程關(guān)于開發(fā)環(huán)境的參數(shù)文件。如工具條地址信息等。DEBUG文件夾中:.OBJ:源文件編譯后生成的目標(biāo)文件,是模塊的二進(jìn)制中間文件。.EXE:可執(zhí)行文件。(注:藍(lán)色字體為重點(diǎn)認(rèn)識。)二.單元總結(jié)本單元中,中心內(nèi)容有C語言程序框架構(gòu)造、程序的組成和程序開發(fā)過程。經(jīng)過本單元的學(xué)習(xí),我們應(yīng)該知道:1.C語言程序最基本的程序框架由兩部分組成,分別是:(1)編譯預(yù)辦理(2)函數(shù)組2.C程序最大的特點(diǎn)就是全部的程序都是用函數(shù)來裝置的,函數(shù)是組成C語言程序的基本單位,函數(shù)包括主函數(shù)、庫函數(shù)和自定義函數(shù)。函數(shù)的一般構(gòu)造形式為:函數(shù)返回值種類函數(shù)名(形式參數(shù))//函數(shù)首部{說明語句;//函數(shù)體可執(zhí)行語句;}3.表記符是用來表記程序中的某個對象名字的字符序列。C語言把表記符分為三類,即重點(diǎn)字、預(yù)定義表記符、用戶自定義表記符。關(guān)于用戶自定義表記符的命名C語言規(guī)定:1)全部的用戶表記符必定先定義后使用;2)用戶表記符由字母(A~Z,a~z)、數(shù)字(0~9)、下劃線“_”組成,而且首字符不能夠是數(shù)字;2《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案3)區(qū)分大小寫;4)不能夠用重點(diǎn)字作為用戶自定義表記符,平時不使用預(yù)定義表記符作為用戶自定義表記符。4.理論上講,程序開發(fā)過程分為四個步驟,分別為:(1)編寫源程序(2)編譯源程序,生成目標(biāo)程序(3)連接目標(biāo)程序及其相關(guān)模塊,生成可執(zhí)行文件(4)運(yùn)行可執(zhí)行文件5.簡單描述使用VC++6.0開發(fā)應(yīng)用程序的步驟:以下列圖:啟動打開或打開或編寫、編譯完成新建工程新建文件連接、運(yùn)行圖VC++6.0開發(fā)程序的步驟總之,經(jīng)過本單元的學(xué)習(xí),應(yīng)該掌握C語言程序框架構(gòu)造和程序開發(fā)過程,還要對C語言程序設(shè)計(jì)的知識脈絡(luò)有必然的認(rèn)識。三.單元練習(xí)一.選擇題1.組成C語言程序的基本單位是()。A.框架B.預(yù)辦理C.函數(shù)D.語句2.在程序開發(fā)過程中,把文本文件格式源程序轉(zhuǎn)變成二進(jìn)制格式的目標(biāo)程序的過程稱之為()。A.編寫B(tài).編譯C.連接D.運(yùn)行3.關(guān)于主函數(shù),以下說法不正確的選項(xiàng)是()。A.一個完滿的C語言應(yīng)用程序有唯一的主函數(shù)B.主函數(shù)的名稱只能是mainC.主函數(shù)能夠被其他自定義函數(shù)調(diào)用D.C語言程序的運(yùn)行從主函數(shù)開始,以主函數(shù)為中心張開3《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案4.關(guān)于表記符,以下說法不正確的選項(xiàng)是()。A.庫函數(shù)名稱為預(yù)定義表記符,不建議用作用戶自定義表記符重點(diǎn)字不能夠作為用戶自定義表記符C.用戶自定義表記符中不區(qū)分大小寫字母D.表記符中能夠出現(xiàn)下劃線,且能夠出現(xiàn)在表記符的任意地址5.以下可用作用戶自定義表記符的一組是()。A.void、return、ifB.printf、include、fabsC.Max、_abc、MainD.2abc、pay$、sum-10二.填空題1.C語言程序一般由若干個函數(shù)組成,程序中應(yīng)最少包括一個_________,其名稱只能為_________。2.C語言程序中每條語句必定以_________結(jié)束。3.C語言程序的說明是以_________開頭,以________結(jié)束的,在VC++6.0編程環(huán)境中,可使用_________作為說明的初步表記,說明對程序的執(zhí)行不起任何作用。4.最初編寫的C語言程序稱為_________,其擴(kuò)展名為_________,編譯后生成的文件為_________,其擴(kuò)展名是_________,連接后生成的文件是_________,其擴(kuò)展名是_________。5.C語言規(guī)定,表記符只能由_________、_________和_________三種字符組成,而且,首字符只能是_________或_________。*習(xí)題答案:一.選擇題1.C2.B3.C4.C5.C二.填空題1.主函數(shù)main2.分號;3./**///4.源程序.cpp或.c目標(biāo)文件(或目標(biāo)程序).obj可執(zhí)行文件(或可執(zhí)行程序).exe5.字母(A~Z,a~z)、數(shù)字(0~9)、下劃線“_”字母或下劃線*4《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案四.實(shí)訓(xùn)指導(dǎo)1.完成【引例】中的題目?!疽?】1)C語言程序基本框架包括編譯預(yù)辦理和函數(shù)組兩部分。2)編譯預(yù)辦理是程序編譯以前的準(zhǔn)備工作,以“#”開頭。(3)函數(shù)組包括主函數(shù)、庫函數(shù)和用戶自定義函數(shù),函數(shù)是組成C語言程序的基本單位。整個程序的執(zhí)行以主函數(shù)main()為中心張開;C語言標(biāo)準(zhǔn)函數(shù)庫供應(yīng)大量功能豐富的庫函數(shù),使用時需要在編譯預(yù)辦理中包括相應(yīng)的頭文件,拜會附錄D;用戶也能夠依照需要編寫擁有特定功能的函數(shù),稱為用戶自定義函數(shù)。(4)在C語言中的任何合適地址可增加說明,以增強(qiáng)程序的可讀性。在VisualC++編程環(huán)境中可用“//”作為程序單行說明的初步符號,也能夠使用“/*”和“*/”作為單行或多行說明的初步和停止符號?!疽?】編寫好的C語言程序要經(jīng)過編譯、連接和執(zhí)行幾個步驟,其完滿過程描述如教材圖1-1所示。2.新建工程,輸入【例1-2】源程序,使之能夠運(yùn)行。(略)3.編寫一個程序,輸出下面三行字符:歡迎到達(dá)“吉尼斯樂園”!參照程序以下:(注意轉(zhuǎn)義字符的理解)#include<stdio.h>voidmain(){printf("\n");printf("歡迎到達(dá)\"吉尼斯樂園\"!\n");printf("\n");}4.有三個同樣大小的瓶子,一個裝可樂,一個裝雪碧,還有一個空瓶,請用語言描述將可樂和雪碧互換瓶子盛放的方法。爾后編程實(shí)現(xiàn):將兩個整數(shù)a和b的值互換,輸出互換后的結(jié)果。參照程序以下:#include<stdio.h>voidmain(){inta,b,c;//借助變量c互換a和b的值5《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案printf("請輸入a和b的值:");scanf("%d%d",&a,&b);c=a;//互換a和b的值a=b;b=c;printf("互換結(jié)果為:a=%d,b=%d.\n",a,b);}6《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案單元二程序設(shè)計(jì)基礎(chǔ)知識一.隨堂練習(xí)【隨堂練習(xí)2-1】1.判斷以下常量表示正確與否?(帶下劃線的不正確)1)整型常量:32768、037、081、0x4f、0xAH2)浮點(diǎn)型常量:.124、、1e3、3)字符型常量:'a'、'101'、65、'\x21'2.字符串常量“Howareyou?\n”的字符串長度為13個字節(jié),它占用的儲藏空間為14個字節(jié)。3.“”在C語言程序設(shè)計(jì)時應(yīng)描述為"d:\\windows\\info.txt"。4.在編程辦理物理力學(xué)相關(guān)運(yùn)算時,常將重力加速度G定義為符號常量,其定義語句可描述為:?!倦S堂練習(xí)2-2】1.完成本單元【引例】中的問題(1)。floata,b,c,s,area;2.以下變量定義中合法的是:(以下定義語句均不合法)1)longdo=0xfd;(2)intmax=min=0;(3)doublef,inta;(4)charch="A";【隨堂練習(xí)2-3】1.完成本單元【引例】中問題(2)。#include<math.h>s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c))2.有定義語句:charch='M';,寫出將變量ch變成小寫字母的表達(dá)式:ch=ch+32;。【隨堂練習(xí)2-4】1.試解析本單元【引例】的數(shù)據(jù)構(gòu)造和實(shí)現(xiàn)算法,并繪制算法流程圖。(1)數(shù)據(jù)構(gòu)造:三角形的三個邊長a,b,c,中間變量s和面積area,均為浮點(diǎn)型。7C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案2)實(shí)現(xiàn)算法:以序次構(gòu)造為例,依照題目要求,其算法表示以下:步驟1:輸入三個邊長a、b、c值;步驟2:依照公式計(jì)算出s的值,爾后依照公式計(jì)算出三角形面積area;步驟3:輸出計(jì)算結(jié)果。(3)算法流程圖:開始輸入a、b、c值計(jì)算s值;計(jì)算area值;輸出頭積值area結(jié)束二.單元總結(jié)本單元中,中心內(nèi)容有C語言中基本的數(shù)據(jù)種類、常量和變量、運(yùn)算符和表達(dá)式以及算法的看法。經(jīng)過本單元的學(xué)習(xí),我們應(yīng)該知道:1.C語言中最基本的數(shù)據(jù)種類有:整型、字符型、浮點(diǎn)型。2.C程序中使用的常量依照表現(xiàn)形式可分為直接常量和符號常量。(1)直接常量1)整型常量,有十進(jìn)制、八進(jìn)制和十六進(jìn)制三種描述方式,其中,八進(jìn)制的前置符號標(biāo)志為0,十六進(jìn)制的前置符號標(biāo)志為0x或0X。2)浮點(diǎn)型常量,有十進(jìn)制小數(shù)和指數(shù)兩種描述方式,指數(shù)形式的符號標(biāo)志是e或E。3)字符型常量,是用單撇引號括起來的單一字符,對一些特別字符和控制字符用的形式表示。4)字符串常量,是用雙撇引號括起來的一串字符序列。字符串的結(jié)束標(biāo)志為‘\0’。(2)符號常量符號常量是使用某個符號代表的常量,符號常量使用編譯預(yù)辦理中的宏定義命令定義。8《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案3.C程序中使用變量,必定先定義,后使用。變量定義后,系統(tǒng)會依照變量的類型分配相應(yīng)的儲藏空間。4.C語言有豐富的運(yùn)算符,其中算術(shù)運(yùn)算符包括+、-、*、/、%,運(yùn)算符中的僅用于整數(shù)間的運(yùn)算;賦值運(yùn)算符包括“=”和相應(yīng)的復(fù)合賦值運(yùn)算符+=、-=、*=、/=,賦值運(yùn)算的含義是將“=”右側(cè)的表達(dá)式的計(jì)算結(jié)果賦值給“=”左側(cè)的變量,這與數(shù)學(xué)中“=”的含義不同樣,需要注意。5.由運(yùn)算符和數(shù)據(jù)組成表達(dá)式,若表達(dá)式中各數(shù)據(jù)的種類不同樣,則存在種類自動變換問題,必要時也能夠使用逼迫種類變換。6.關(guān)于面向過程的程序設(shè)計(jì)來說,程序=數(shù)據(jù)構(gòu)造+算法。7.在C語言中,關(guān)于每一個程序設(shè)計(jì)單元可采用構(gòu)造化程序設(shè)計(jì)方法,有三種基本的程序構(gòu)造,分別為:序次、選擇和循環(huán)。經(jīng)過本單元的學(xué)習(xí),應(yīng)該掌握C語言程序設(shè)計(jì)所需要的基本知識,為后續(xù)內(nèi)容的學(xué)習(xí)打下牢固的基礎(chǔ)。三.單元練習(xí)一.選擇題1.在C語言中,int、short、char三各種類數(shù)據(jù)所占用的儲藏空間是()。A.均為2個字節(jié)B.int和short占2個字節(jié),char占1個字節(jié)C.與編譯環(huán)境相關(guān)D.由用戶自己定義2.下面定義字符型變量ch的語句不正確的選項(xiàng)是()。A.charch=‘\X2A’;B.charch="c";C.charch=65;D.charch=NULL;3.已知大寫字母A的ASCII是65,小寫字母a的ASCII是97,以下不能夠?qū)⒆址妥兞縞中的大寫字母變換成對應(yīng)的小寫字母的語句是()。A.c=(c-'A')%26+'a';B.c2=tolower(c);C.c=c-'A'+'a';D.c=('A'+c)%26-'a';4.設(shè)有定義:doubled,h;,其中d為三角形的底邊長,h為三角形的高,則以下C語言表達(dá)式與其面積公式1)。dh計(jì)算結(jié)果不吻合的是(2A.d*h/2B.1/2*d*hC.d*h*1/2D.d/2*h9《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案5.以下選項(xiàng)中,與k=n++;完滿等價的語句是()。A.k=n;n=n+1;B.n=n+1;k=n;C.k=++n;D.k+=n+1;二.填空題1.寫出整型變量a、無符號長整型變量b、雙精度浮點(diǎn)型變量c和字符型變量d的定義語句:。2.常量‘a(chǎn)’和”a”分別占用_____個字節(jié)和_____個字節(jié)的儲藏空間。3.有定義inta=1234;,獲得其百位數(shù)碼的表達(dá)式為________________________。4.若有定義:chara=97,c;,則表達(dá)式c='a'+'8'-'3'的值為_________。5.已知intx=6;,則執(zhí)行x+=x-=x-3;語句后,x的值是_________。6.將一個浮點(diǎn)型變量n四舍五入精確到小數(shù)點(diǎn)后兩位,其表達(dá)式為:。7.C語言中基本的數(shù)據(jù)種類有、、。8.構(gòu)造化程序設(shè)計(jì)中基本的程序構(gòu)造有、、。*習(xí)題答案:一.選擇題1.C2.B3.D4.B5.A二.填空題1.inta;unsignedlongb;doublec;chard;2.123.a(chǎn)/100%104.f5.66.((int)(n*100+0.5))/100.0;7.整型、浮點(diǎn)型、字符型8.序次、選擇、循環(huán)*四.實(shí)訓(xùn)指導(dǎo)1.完成【引例】中的題目,要求計(jì)算結(jié)果保留兩位小數(shù)。10《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案參照程序代碼以下:#include<stdio.h>#include<math.h>voidmain(){floata,b,c,s,area;printf("請輸入三角形三邊長:");scanf("%f%f%f",&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("三角形的面積為:%.2f\n",area);}2.新建工程,輸入【例2-4】源程序,使之能夠運(yùn)行,重點(diǎn)領(lǐng)悟符號常量的用法及好處。(略)3.以下程序有若干處錯誤,請調(diào)試改正。程序功能:求華氏溫度120.3對應(yīng)的攝氏溫度,計(jì)算公式為c=5/9(f-32),其中c表示攝氏溫度,f表示華氏溫度。給定程序程序改正#include<stdio.h>#include<stdio.h>voidmain()voidmain(){intc;f;{floatc,f;c=5/9*(f-32);f=120.3;f=120.3;c=5*(f-32)/9;printf(“c=%f\n”,c)printf("c=%f\n",c);}}4.編寫程序,將兩個兩位數(shù)的正整數(shù)a和b合并成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)挨次放在c數(shù)的個位和百位上,將b數(shù)的十位和個位數(shù)挨次放在c數(shù)的十位和千位上。參照程序代碼以下:#include<stdio.h>voidmain(){inta,b,c;intas,ag,bs,bg;printf("請輸入兩個兩位整數(shù):");scanf("%d%d",&a,&b);as=a/10;ag=a%10;bs=b/10;bg=b%10;11《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案c=bg*1000+ag*100+bs*10+as;printf("合并后的結(jié)果為:%d.\n",c);}12《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案單元三序次構(gòu)造程序設(shè)計(jì)一.隨堂練習(xí)【隨堂練習(xí)3-1】1.下面程序功能為:輸入一個A~Z之間的字母,輸出與之左右相鄰的兩個字母,依聽說明信息將程序填寫完滿。(注意:題目要求輸入A~Z之間的字母,即不包括A和Z)#include<stdio.h>voidmain(){charch;//數(shù)據(jù)準(zhǔn)備ch=getchar();//調(diào)用getchar()輸入一個字母,并賦值給chputchar(ch-1);//調(diào)用putchar()輸出與ch左相鄰的字母putchar(ch+1);//調(diào)用putchar()輸出與ch右相鄰的字母}【隨堂練習(xí)3-2】1.輸出提示語“請輸入銀行卡密碼:”的語句可描述為printf("請輸入銀行卡密碼:");。解析以下程序輸出結(jié)果。#include<stdio.h>voidmain(){inta=65,b=97;doublem=3.14159;printf("%c-%d\n%c-%d\n",a,a,b,b);printf("a=%06d,b=%-6d.\n",a,b);printf("a=%d,a=%o,a=%x\n",a,a,a);printf("m=%lf.\n",m);printf("m=%4.3lf.\n",m);printf("m=%06.3lf.\n",m);}輸出結(jié)果以下:13《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案【隨堂練習(xí)3-3】1.分別依照int、double和char種類給變量a,b,c輸入數(shù)值的語句可描述為:scanf("%d%lf%c",&a,&b,&c);2.依照要求給出數(shù)據(jù)輸入方法。1)有語句scanf("a=%d,b=%d",&a,&b);,要使a值為2,b值為3,則正確的輸入方法是:a=2,b=32)有輸入語句scanf("%d%c",&m,&n);,為使m值為6,n值為字母y,則正確的輸入方法是:6y二.單元總結(jié)本單元中,中心內(nèi)容是序次程序構(gòu)造程序設(shè)計(jì)中標(biāo)準(zhǔn)輸入輸出庫函數(shù)的使用。經(jīng)過本單元的學(xué)習(xí),我們應(yīng)該知道:1.C語言供應(yīng)了標(biāo)準(zhǔn)輸入輸出庫函數(shù)用于實(shí)現(xiàn)數(shù)據(jù)輸入輸出操作,其對應(yīng)的頭文件為。2.單字符輸入和輸出函數(shù)分別為getchar()和putchar()。3.格式化輸入和輸出函數(shù)分別為scanf()和printf()。4.格式化輸出函數(shù)有兩種調(diào)用格式:1)printf("字符串常量");2)printf("格式控制字符串",輸出項(xiàng)列表);5.格式化輸入/輸出中,格式控制符由%開頭。常用的格式控制符有:整型int格式符%d、float浮點(diǎn)型格式符%f、double浮點(diǎn)型格式符%lf、字符型格式符%c;關(guān)于浮點(diǎn)型格式能夠用形式的附加格式說明小數(shù)的寬度和小數(shù)位數(shù)。6.格式化輸入中的輸入項(xiàng)為地址列表,對變量取地址的運(yùn)算符為&。經(jīng)過本單元的學(xué)習(xí),應(yīng)付序次構(gòu)造程序設(shè)計(jì)的特點(diǎn)和設(shè)計(jì)思路有所認(rèn)識,同時重點(diǎn)學(xué)會單字符輸入函數(shù)getchar()、單字符輸出函數(shù)putchar()、格式化輸出函數(shù)printf()和格式化輸入函數(shù)scanf()的正確使用。三.單元練習(xí)一.選擇題14《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案1.已定義x為float型變量,其值為,則printf("%-4.2f\n",x);的輸出結(jié)果為()。A.B.C.D.輸出格式控制說明的域?qū)挷粔?,不能夠輸出有以下程序,程序運(yùn)行時輸入:1,2,3<回車>,則輸出的結(jié)果為()。#include<stdio.h>voidmain(){inta,b,c;scanf("%d%d%d",&a,&b,&c);printf("a+b+c=%d\n",a+b+c);}A.6B.a(chǎn)+b+c=6C.123D.不確定的值3.下面輸入語句中,正確的選項(xiàng)是()。A.scanf("a=b=%d",&a,&b);B.scanf("%d,%d",&a,&b);C.scanf("%c",c);D.scanf("%d%d\n",&f1,f2);4.在VC++6.0環(huán)境中,以下說法正確的選項(xiàng)是()。A.輸入函數(shù)scanf()輸入多個數(shù)據(jù)時,有時數(shù)據(jù)間不用加間隔符。B.輸入函數(shù)scanf()中單精度或雙精度浮點(diǎn)型數(shù)據(jù)都要用%f作為格式控制符。C.使用輸出函數(shù)printf()輸出字符或字符串都用格式控制符%s。D.輸出函數(shù)printf()中單精度或雙精度浮點(diǎn)型數(shù)據(jù)都要用%f作為格式控制符。5.下面程序的功能是實(shí)現(xiàn)兩個字符變量互換值,若為ch1輸入a,ch2輸入b,則程序運(yùn)行時正確的輸入是()。#include<stdio.h>voidmain(){charch1,ch2,ch;scanf("%c%c",&ch1,&ch2);ch=ch1;ch1=ch2;ch2=ch;printf("ch1=%c,ch2=%c\n",ch1,ch2);}A.a(chǎn),bB.a(chǎn)<空格>bC.a(chǎn)bD.a(chǎn)<回車>b二.填空題1.有語句putchar(getchar()),程序運(yùn)行時輸入:A,則輸出結(jié)果是____________。2.printf("%6.2f%%",1.0/3);的輸出結(jié)果是____________。15《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案3.補(bǔ)充程序:intn1=10,n2=20;printf("",n1,n2);要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始。n1=0010n2=00204.有以下程序,程序運(yùn)行時輸入:1234<回車>,執(zhí)行后輸出的結(jié)果是_________________。#include<stdio.h>voidmain(){charch1,ch2;intn1,n2;ch1=getchar();ch2=getchar();n1=ch1-’0’;n2=n1*10+(ch2-’0’);printf("n1=%d,n2=%d.\n",n1,n2);}5.輸入多個非字符型的數(shù)值數(shù)據(jù)時,數(shù)據(jù)輸入時可用、和作為間隔符。*習(xí)題答案:一.選擇題1.A2.D3.B4.A5.C二.填空題2.0.33%3.n1=%04d\nn2=%04d4.n1=1,n2=125.空格,TAB鍵,回車*四.實(shí)訓(xùn)指導(dǎo)1.完成【引例】中的題目,要求計(jì)算結(jié)果保留兩位小數(shù)。(1)輸入三角形三邊長度a,b,c;(2)計(jì)算s和面積area;(3)輸出三角形面積area。學(xué)習(xí)完本單元后,結(jié)合給定的演示運(yùn)行界面,完成以下問題:(1)輸入三角形三邊長度的語句如何描述:scanf("%f%f%f",&a,&b,&c);16《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案(2)輸出計(jì)算結(jié)果的語句如何描述:printf("三角形面積為:%.2f\n",area);(3)試寫出完滿的程序?qū)崿F(xiàn)代碼:#include<stdio.h>#include<math.h>voidmain(){floata,b,c,s,area;printf("請輸入三角形三邊長:");scanf("%f%f%f",&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("三角形的面積為:%.2f\n",area);}2.編寫程序,從鍵盤上輸入某學(xué)生四門課程的成績,計(jì)算并輸出總成績和平均成績。參照程序代碼以下:#include<stdio.h>voidmain(){floata,b,c,d,sum=0,ave;printf("請輸入四門課程成績:");scanf("%f%f%f%f",&a,&b,&c,&d);sum=a+b+c+d;ave=sum/4;printf("該學(xué)生的總成績?yōu)?.2f,平均成績?yōu)?%.2f\n",sum,ave);}3.設(shè)半徑,編程計(jì)算相應(yīng)的圓的周長、圓的面積和圓球的體積。用函數(shù)scanf輸入數(shù)據(jù),輸入數(shù)據(jù)要有提示語,輸出計(jì)算結(jié)果中要有文字說明,計(jì)算結(jié)果取小數(shù)點(diǎn)后2位。參照程序代碼以下:#include<stdio.h>voidmain(){floatr,c,s,v;printf("請輸入半徑值:");scanf("%f",&r);c=2*PI*r;s=PI*r*r;v=3*PI*r*r*r/4;printf("半徑為%.2f時,對應(yīng)的:\n",r);printf("圓的周長為:%.2f.\n",c);printf("圓的面積為:%.2f.\n",s);17《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案printf("球的體積為:%.2f.\n",v);}4.將“China”字符串譯成密碼,譯碼規(guī)則:對每個字母用此后面的第5個字母取代。即字母a用f取代,b用g取代,以此類推。(1)請預(yù)編寫程序,定義五個字符型變量c1、c2、c3、c4和c5,同時賦初值分別為’C’、’h’、’i’、’n’和’a’,爾后譯成密碼并輸出,解析結(jié)果可否吻合要求。參照程序代碼以下:#include<stdio.h>voidmain(){charc1='C',c2='h',c3='i',c4='n',c5='a';printf("原數(shù)據(jù)為:");printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);c1+=5;c2+=5;c3+=5;c4+=5;c5+=5;printf("譯成密碼后的結(jié)果:");printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);}2)將變量c1、c2、c3、c4和c5的初值改為’H’、’a’、’p’、’p’和’y’,再次運(yùn)行程序,解析結(jié)果可否吻合要求。答:不吻合要求了,初值’H’、’a’、’p’、’p’和’y’譯成密碼后的結(jié)果為“Mfuu~”,初值最后一個字母’y’此后第5個字母應(yīng)該為’d’。經(jīng)過解析能夠看出,要想獲得字母’y’后的第5個字母,直接加5是得不到的。關(guān)于這樣的情況應(yīng)該進(jìn)行選擇判斷辦理,在下一章講解。18《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案單元四選擇構(gòu)造程序設(shè)計(jì)一.隨堂練習(xí)【隨堂練習(xí)4-1】1.當(dāng)a=3,b=2,c=1時,判斷例4-1中條件表達(dá)式的值?1)a>b==c真(2)a=b<c假(3)a<=b+c假2.當(dāng)r的值為3時,判斷以下條件表達(dá)式的值。1)r==3真(2)r=4真(3)0<r<1真3.整型變量n為偶數(shù)的關(guān)系表達(dá)式為n%2==0。【隨堂練習(xí)4-2】1.判斷字符變量ch的值為大寫字母的邏輯表達(dá)式為:ch>=’A’&&ch<=’Z’。2.判斷某一年份可否為閏年。閏年是吻合以下條件的年份:能被4整除但不能夠被100整除,也許能被400整除。若用整型變量year表示年份,則閏年的邏輯判斷表達(dá)式為:year%4==0&&year%100!=0||year%400==0。【隨堂練習(xí)4-3】1.以下程序段的運(yùn)行結(jié)果是x=20,y=20。intx=10,y=20;if(x<y)x=y;y=x;printf(“x=%d,y=%d”,x,y);2.以下程序段的功能是計(jì)算一個整數(shù)的絕對值,將程序補(bǔ)充完滿。intn;scanf(“%d”,&n);if(n<0)n=-n;printf(“該整數(shù)的絕對值是%d.”,n);【隨堂練習(xí)4-4】1.以下程序可判斷指定的年份可否為閏年,補(bǔ)充完滿。19《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案intyear,f;//f是閏年的標(biāo)志位,year表示年份scanf(“%d”,&year);if(year%4==0&&year%100!=0||year%400==0)f=1;elsef=0;if(f==1)printf(“%d年是閏年?!?year);elseprintf(“%d年不是閏年。”,year);2.以下程序用于判斷輸入的字符可否為字母,補(bǔ)充完滿,爾后將程序改寫成僅一對if-else的形式。charch;ch=getchar();if(ch>=’A’&&ch<=’Z’)printf(“%c是字母?!?ch);elseif(ch>=’a’&&ch<=’z’)printf(“%c是字母?!?ch);elseprintf(“%c不是字母。”,ch);改成一對if-else的形式:charch;ch=getchar();if(ch>=’A’&&ch<=’Z’||ch>=’a’&&ch<=’z’)printf(“%c是字母。”,ch);elseprintf(“%c不是字母?!?ch);【隨堂練習(xí)4-5】1.將【隨堂練習(xí)4-4】中第1題的3至6行程序使用條件運(yùn)算符描述:f=(year%4==0&&year%100!=0||year%400==0)?1:0;【隨堂練習(xí)4-6】1.輸入1~7之間的任意數(shù)字,輸出其對應(yīng)的星期幾的英文,如輸入5,程序輸出Friday。若輸入1~7以外的數(shù)字,則提示輸入錯誤。20《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案參照程序代碼以下:#include<stdio.h>voidmain(){intm;printf("請輸入1~7任意數(shù)字:");scanf("%d",&m);switch(m){case1:printf("Monday");break;case2:printf("Tuesday");break;case3:printf("Wednesday");break;case4:printf("Thursday");break;case5:printf("Friday");break;case6:printf("Saturday");break;case7:printf("Sunday");break;default:printf("輸入錯誤!");}}二.單元總結(jié)在選擇構(gòu)造程序設(shè)計(jì)中,條件判斷表達(dá)式和選擇構(gòu)造實(shí)現(xiàn)語句是兩其中心內(nèi)容。經(jīng)過本單元的學(xué)習(xí),我們應(yīng)該知道:1.條件判斷表達(dá)式由關(guān)系運(yùn)算符及其表達(dá)式、邏輯運(yùn)算符及其表達(dá)式組成,其中:(1)關(guān)系運(yùn)算符有:>、<、>=、<=、!=、==(2)邏輯運(yùn)算符有:&&、||、!2.選擇構(gòu)造實(shí)現(xiàn)語句有三種方式:1)單分支if選擇構(gòu)造,一般格式為:if(表達(dá)式){語句;}2)雙分支if-else選擇構(gòu)造,一般格式為:if(表達(dá)式){語句1;}else{語句2;}21C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案3)多分支switch選擇構(gòu)造,一般格式為:switch(表達(dá)式){case常量表達(dá)式1:[語句序列1;][break;]case常量表達(dá)式2:[語句序列2;][break;]case常量表達(dá)式n:[語句序列n;][break;]default:語句序列n+1;}3.在應(yīng)用選擇構(gòu)造時,應(yīng)注意以下問題:(1)在if嵌套語句中,要弄清else與if的般配關(guān)系,書寫if語句嵌套時一般采用縮進(jìn)的階梯式寫法,在實(shí)質(zhì)編程中,為了表示編程者的妄圖,也常常經(jīng)過“{}”來逼迫if和else的配對關(guān)系。2)switch語句中,“表達(dá)式”和“常量表達(dá)式”的種類只能是整型或字符型數(shù)據(jù),且“常量表達(dá)式”只能由常量組成,經(jīng)過“表達(dá)式”與“常量表達(dá)式”之間的同等關(guān)系構(gòu)造出多分支選擇構(gòu)造。(3)在某些多分支選擇構(gòu)造程序設(shè)計(jì)中,既可使用if-else語句實(shí)現(xiàn),也能夠使用switch語句實(shí)現(xiàn)。switch語句與if語句的不同樣之處在于:switch語句僅能判斷一種邏輯關(guān)系,即“表達(dá)式”和指定“常量表達(dá)式”的值可否相等,而不能夠進(jìn)行大于,小于某一個值的判斷,不能夠表達(dá)區(qū)間數(shù)據(jù)的看法;if語句能夠計(jì)算和判斷各種表達(dá)式。所以switch語句不能夠完滿取代if語句。總之,經(jīng)過本單元的學(xué)習(xí),應(yīng)該掌握C語言選擇構(gòu)造程序設(shè)計(jì)的思路和語句的基本用法。三.單元練習(xí)一.選擇題1.以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時,值為0的表達(dá)式()。A.x%2==1B.x/2C.x%2!=0D.x%2==02.在C語言中,if語句后的一對圓括號中有一個用以決定分支走向的表達(dá)式,該表達(dá)式()。A.只能是關(guān)系表達(dá)式B.只能是邏輯表達(dá)式C.只能是關(guān)系或邏輯表達(dá)式D.能夠是任何合法表達(dá)式3.讀下面程序段,當(dāng)x=-3時,輸出y的值為()。22《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案intx,y;y=0;scanf(“%d”,&x);if(x>=0)if(x>0)y=1;elsey=-1;printf(“y=%d”,y);A.1B.-1C.0D.不確定4.以下語句將小寫字母轉(zhuǎn)變成大寫字母,正確的語句為()。A.if(’z’>=ch>=’a’)ch=ch-32;B.if(ch>=’a’&&ch<=’z’)ch=ch-32;C.ch=(’z’>=ch>=’a’)?ch-32:ch;D.ch=(ch>=’a’&&ch<=’z’)?ch:ch-32;5.關(guān)于與switch語句配套的case語句中所使用的表達(dá)式,說法正確的選項(xiàng)是()。A.能夠是變量B.能夠是常量或變量C.只能是常量或常量表達(dá)式D.無論是何種表達(dá)式,只要在執(zhí)行時有確定的值就行二.填空題1.在算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符和賦值運(yùn)算符中,運(yùn)算優(yōu)先級最高的運(yùn)算符是,最低的是。2.正確表示數(shù)學(xué)關(guān)系“1<a<4”的C語言表達(dá)式為____________________。3.整型變量n不能夠被3整除的條件判斷表達(dá)式為。4.以下程序段的功能是:對輸入的大寫字母循環(huán)搬動6個地址后輸出,如’A’變成’G’,’W’變成’C’。請將程序段補(bǔ)充完滿。charch;ch=;if(ch>=’A’&&)elseif()23《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案putchar(ch);5.以下程序段功能是依照學(xué)生考試成績,確定其成績等級,成績與等級對應(yīng)情況與【例4-7】中表格同樣,請將程序段補(bǔ)充完滿。charlevel;//成績等級floatscore;//考試成績scanf(“%f”,&score);switch(){:level=’A’;;case8:level=’B’;break;case7:level=’C’;break;case6:level=’D’;break;default:;}printf(“考試成績等級為:.”,level);*習(xí)題答案:一.選擇題1.D2.D3.C4.B5.C二.填空題1.!(非)=2.a(chǎn)>1&&a<43.n%3!=04.charch;ch=getchar();if(ch>=’A’&&ch<='T')ch=ch+6;elseif(ch>='U'&&ch<='Z')ch=ch-20;putchar(ch);24《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案5.charlevel;//成績等級floatscore;//考試成績scanf(“%f”,&score);switch(int(score/10)){case10:case9:level=’A’;break;case8:level=’B’;break;case7:level=’C’;break;case6:level=’D’;break;default:level='E';}*四.實(shí)訓(xùn)指導(dǎo)實(shí)訓(xùn)指導(dǎo)【1】1.完成【引例】中的題目。(1)寫出三個邊長a、b、c組成合法三角形的條件判斷表達(dá)式。a+b>c&&b+c>a&&a+c>b(也能夠再附加考慮三邊均大于0)(2)依照上述條件寫出計(jì)算area的語句。if(a+b>c&&b+c>a&&a+c>b){s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));}(3)試寫出完滿的程序?qū)崿F(xiàn)代碼:#include<stdio.h>#include<math.h>voidmain(){floata,b,c,s,area;printf("請輸入三角形三邊長:");scanf("%f%f%f",&a,&b,&c);if(a+b>c&&b+c>a&&a+c>b){s=(a+b+c)/2;25《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案area=sqrt(s*(s-a)*(s-b)*(s-c));printf("三角形的面積為:%.2f\n",area);}elseprintf("三角形的三邊不合法.\n");}2.從鍵盤輸入x,計(jì)算以下分段函數(shù)的值。10x<-10f(x)=0-10≤x≤10-10x>10#include<stdio.h>voidmain(){intx,f;printf("請輸入x值:");scanf("%d",&x);if(x>10)f=-10;elseif(x>=-10)f=0;elsef=10;printf("f(%d)=%d.\n",x,f);}2.從鍵盤上輸入一個字符,判斷該字符是數(shù)字、字母、空格或其他。#include<stdio.h>voidmain(){charch;printf("請輸入一個字符:");ch=getchar();if(ch>='0'&&ch<='9')printf("該字符為數(shù)字.\n");elseif(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')printf("該字符為字母.\n");26《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案elseif(ch=='')printf("該字符為空格.\n");elseprintf("該字符為其他.\n");}4.某工廠的一臺機(jī)床,將生產(chǎn)的毛坯加工成直徑為10cm的圓孔零件,生產(chǎn)質(zhì)量的指標(biāo)是合格品的圓孔直徑不高出±0.01cm的誤差,否則為次品。請依照輸入的圓孔零件直徑數(shù)值,輸出該零件是合格品還是次品。#include<stdio.h>voidmain(){doubled;printf("請輸入圓孔零件直徑數(shù)值:");scanf("%lf",&d);if(d>10.01||d<9.99)printf("該零件為次品.\n");elseprintf("該零件為合格品.\n");}5.BMI指數(shù)(英文為BodyMassIndex,簡稱BMI),是用體重公斤數(shù)除以身高米數(shù)平方得出的數(shù)字,是當(dāng)前國際上常用的衡量人體胖瘦程度以及可否健康的一個標(biāo)準(zhǔn)。詳盡見下表:BMI值<~~身體狀態(tài)消瘦正常超重肥胖請依照輸入的體重和身高數(shù)據(jù),計(jì)算并輸出相應(yīng)的BMI值及對應(yīng)的身體狀態(tài)。#include<stdio.h>voidmain(){doublebmi,w,h;printf("請輸入身高(米):");scanf("%lf",&h);printf("請輸入體重(公斤):");scanf("%lf",&w);bmi=w/(h*h);if(bmi<18.5)printf("BMI指數(shù)為%.1f,您的身體狀態(tài)為消瘦.\n",bmi);27《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案elseif(bmi<=24.9)printf("BMI指數(shù)為%.1f,您的身體狀態(tài)為正常.\n",bmi);elseif(bmi<=27.9)printf("BMI指數(shù)為%.1f,您的身體狀態(tài)為超重.\n",bmi);elseprintf("BMI指數(shù)為%.1f,您的身體狀態(tài)為肥胖.\n",bmi);}實(shí)訓(xùn)指導(dǎo)【2】1.寫出【例4-8】完滿的程序代碼,并調(diào)試運(yùn)行。方法一:利用單分支if語句實(shí)現(xiàn)#include<stdio.h>voidmain(){intm;floatr,c,s;printf("請輸入存款金額:");scanf("%f",&c);printf("請輸入存款限時:");scanf("%d",&m);if(m==3)r=0.026;if(m==6)r=0.028;if(m==12)r=0.033;if(m==24)r=0.0375;if(m==36)r=0.0425;if(m==60)r=0.0475;s=c*(1+r);printf("本息合計(jì)為:%.2f.\n",s);}方法二:利用if-else語句實(shí)現(xiàn)#include<stdio.h>voidmain(){intm;floatr,c,s;printf("請輸入存款金額:");scanf("%f",&c);printf("請輸入存款限時:");28《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案scanf("%d",&m);if(m==3)r=0.026;elseif(m==6)r=0.028;elseif(m==12)r=0.033;elseif(m==24)r=0.0375;elseif(m==36)r=0.0425;elseif(m==60)r=0.0475;s=c*(1+r);printf("本息合計(jì)為:%.2f.\n",s);}方法三:利用switch語句實(shí)現(xiàn)#include<stdio.h>voidmain(){intm;floatr,c,s;printf("請輸入存款金額:");scanf("%f",&c);printf("請輸入存款限時:");scanf("%d",&m);switch(m){case3:r=0.026;break;case6:r=0.028;break;case12:r=0.033;break;case24:r=0.0375;break;case36:r=0.0425;break;default:r=0.0475;}s=c*(1+r);printf("本息合計(jì)為:%.2f.\n",s);}2.考據(jù)【例4-9】中的示例程序。(略)3.已知2015年的元旦是星期四,求出2015年的任何一個日期是星期幾(用1-7表示星期一至星期日)。#include<stdio.h>voidmain(){intm,d,s,w;printf("請輸入月份:");scanf("%d",&m);29《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案printf("請輸入日期:");scanf("%d",&d);if(m>0&&m<=12){switch(m){case1:s=d;break;case2:s=31+d;break;case3:s=31+28+d;break;case4:s=31+28+31+d;break;case5:s=31+28+31+30+d;break;case6:s=31+28+31+30+31+d;break;case7:s=31+28+31+30+31+30+d;break;case8:s=31+28+31+30+31+30+31+d;break;case9:s=31+28+31+30+31+30+31+31+d;break;case10:s=31+28+31+30+31+30+31+31+30+d;break;case11:s=31+28+31+30+31+30+31+31+30+31+d;break;case12:s=31+28+31+30+31+30+31+31+30+31+30+d;break;}w=(s+3)%7;if(w==0)w=7;printf("2015年%d月%d日是星期%d.\n",m,d,w);}elseprintf("輸入的日期不合法.\n");}4.某百貨公司為了促銷,采用購物打折的優(yōu)惠方法。每位顧客一次購物:1)1000元及以上,九五折;2)2000元及以上,九折;3)3000元及以上,八五折;4)4000元及以上,八折。編寫程序,輸入應(yīng)付款金額,計(jì)算并輸出優(yōu)惠金額及實(shí)質(zhì)需要付款金額。#include<stdio.h>voidmain(){doubleap,rp,discount,save;//ap應(yīng)付款,rp實(shí)付款,discount折扣,save優(yōu)惠金額printf("請輸入應(yīng)付款金額:");scanf("%lf",&ap);switch(int(ap)/1000){case1:discount=0.95;break;case2:discount=0.9;break;30《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案case3:discount=0.85;break;case4:discount=0.8;break;default:discount=1;}save=ap*(1-discount);rp=ap-save;printf("優(yōu)惠金額為%.2lf,實(shí)質(zhì)付款%.2lf.\n",save,rp);}31《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案單元五循環(huán)構(gòu)造程序設(shè)計(jì)一.隨堂練習(xí)【隨堂練習(xí)5-1】1.利用while語句計(jì)算自然數(shù)序列1,2,3,,n的和,n的值在程序執(zhí)行時輸入。#include<stdio.h>voidmain(){intn,sum=0,i=1;printf("請輸入n的值:");scanf("%d",&n);while(i<=n){sum+=i;i++;}printf("自然數(shù)序列1到%d的和為:%d.\n",n,sum);}2.利用while語句計(jì)算1~n中的奇數(shù)之和及偶數(shù)之和。#include<stdio.h>voidmain(){intn,even=0,odd=0,i=1;printf("請輸入n的值:");scanf("%d",&n);while(i<=n){if(i%2==0)even+=i;elseodd+=i;i++;}printf("自然數(shù)序列1到%d的奇數(shù)和為%d,偶數(shù)和為:%d.\n",n,odd,even);}【隨堂練習(xí)5-2】1.利用do-while語句計(jì)算1~n中的奇數(shù)之和及偶數(shù)之和。#include<stdio.h>voidmain()32《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案{intn,even=0,odd=0,i=1;printf("請輸入n的值:");scanf("%d",&n);do{if(i%2==0)even+=i;elseodd+=i;i++;}while(i<=n);printf("自然數(shù)序列1到%d的奇數(shù)和為%d,偶數(shù)和為:%d.\n",n,odd,even);}2.利用do-while語句計(jì)算1+1/2+1/3++1/n。#include<stdio.h>voidmain(){intn,i=1;doubles=0;printf("請輸入n的值:");scanf("%d",&n);do{s+=1.0/i;i++;}while(i<=n);printf("計(jì)算結(jié)果為:%.2lf.\n",s);}【隨堂練習(xí)5-3】1.利用for語句計(jì)算1~n中的奇數(shù)之和及偶數(shù)之和。#include<stdio.h>voidmain(){intn,even=0,odd=0,i=1;printf("請輸入n的值:");scanf("%d",&n);for(i=1;i<=n;i++)if(i%2==0)even+=i;elseodd+=i;printf("自然數(shù)序列1到%d的奇數(shù)和為%d,偶數(shù)和為:%d.\n",n,odd,even);}33《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案2.利用for語句計(jì)算1+1/2+1/3++1/n。#include<stdio.h>voidmain(){intn,i=1;doubles=0;printf("請輸入n的值:");scanf("%d",&n);for(i=1;i<=n;i++)s+=1.0/i;printf("計(jì)算結(jié)果為:%.2lf.\n",s);}二.單元總結(jié)在本單元中,如何理解循環(huán)的實(shí)質(zhì)、如何解析循環(huán)的三個要素以及如何描述循環(huán)構(gòu)造語句是中心內(nèi)容。經(jīng)過本單元的學(xué)習(xí),我們應(yīng)該知道:1.循環(huán)的實(shí)質(zhì)是將程序員從大量重復(fù)編寫同樣代碼的工作中解放出來,減少程序源代碼的儲藏空間,提高程序的質(zhì)量,提高程序編寫的工作效率,但計(jì)算機(jī)執(zhí)行程序的工作量并沒有減少。2.循環(huán)構(gòu)造的三要素包括:(1)循環(huán)變量初值(2)循環(huán)控制條件表達(dá)式(3)循環(huán)體3.循環(huán)構(gòu)造描述語句有三種:while、do-while和for。其中while和do-while的差異在于無論循環(huán)條件可否建立,do-while循環(huán)都先執(zhí)行一次循環(huán)體,所以do-while循環(huán)的循環(huán)體最少執(zhí)行一次,而while循環(huán)的循環(huán)體可能一次都不執(zhí)行。4.循環(huán)構(gòu)造控制語句break的作用是:結(jié)束循環(huán);循環(huán)構(gòu)造控制語句continue的作用是:提前結(jié)束本次循環(huán)。5.在一個循環(huán)構(gòu)造語句中又包括了一個循環(huán)構(gòu)造語句稱之為循環(huán)的嵌套。程序執(zhí)行時,外層循環(huán)每執(zhí)行一次,內(nèi)層循環(huán)就要完滿的執(zhí)行完,直至內(nèi)層循環(huán)執(zhí)行結(jié)束,再開始執(zhí)行下一次外層循環(huán)。34《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案學(xué)習(xí)完本單元,應(yīng)該掌握C語言循環(huán)構(gòu)造程序設(shè)計(jì)的思路和基本語句的用法。至此,我們就學(xué)完了結(jié)構(gòu)化程序設(shè)計(jì)中的三種基本構(gòu)造:序次、選擇和循環(huán)。三.單元練習(xí)一.選擇題1.下面說法正確的選項(xiàng)是()。A.while語句無論條件表達(dá)式可否為真,都將執(zhí)行一次循環(huán)體。B.do-while語句組成的循環(huán),必然要有能使while后邊表達(dá)式的值為0的操作,或在循環(huán)體中使用break語句。C.for循環(huán)只能用于循環(huán)次數(shù)確定的情況,且先執(zhí)行循環(huán)體語句,后判斷條件表達(dá)式。D.break語句的作用是從近來的循環(huán)體內(nèi)跳出來,而continue語句的作用是連續(xù)執(zhí)行循環(huán)體中還沒有執(zhí)行的語句。2.對for(表達(dá)式1;;表達(dá)式3),可理解為()。A.for(表達(dá)式1;0;表達(dá)式3)B.for(表達(dá)式1;1;表達(dá)式3)C.語法錯誤D.僅執(zhí)行循環(huán)一次3.以下程序的功能為()。#include<stdio.h>voidmain(){inti,k=0;for(i=1;i<10;i+=2)k+=i+1;printf("%d\n",k);}A.計(jì)算自然數(shù)1~9的累加和B.計(jì)算自然數(shù)1~10的偶數(shù)之和C.計(jì)算自然數(shù)1~9的奇數(shù)之和D.計(jì)算自然數(shù)1~10的累加和4.以下能正確計(jì)算1*2*3*4*5*6*7*8*9*10的程序段是()。A.do{i=1;s=1;B.do{i=1;s=0;s=s*i;s=s*i;i++;i++;}while(i<=10);}while(i<=10);C.i=1;s=1;D.i=1;s=0;35《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案do{do{s=s*i;s=s*i;i++;i++;}while(i<=10);}while(i<=10);5.有以下程序段intk=0;while(k=1)k++;while循環(huán)執(zhí)行的次數(shù)是()。A.無量次B.1次C.語法錯誤,不能夠執(zhí)行D.一次也不執(zhí)行二.填空題1.若輸入字符串:abcde<回車>,則以下while循環(huán)體將執(zhí)行次。while((ch=getchar())==’e’)printf("*");2.以下程序執(zhí)行后的輸出結(jié)果是。#include<stdio.h>voidmain(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}3.下面程序的功能是:輸出100以內(nèi)能被3整除且個位數(shù)為6的全部整數(shù),請?zhí)羁铡?include<stdio.h>voidmain(){inti,j;for(i=0;;i++){j=i*10+6;if()continue;printf("%d\n",j);}}4.有以下程序#include<stdio.h>voidmain()36《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案{intx=23;do{printf("%d",x--);}while(!x);}該程序執(zhí)行的結(jié)果為。5.以下程序的功能是計(jì)算1-3+5-7+-99+101的值,請將程序補(bǔ)充完滿。#include<stdio.h>voidmain(){inti,t=1,s=0;for(i=1;i<=101;i+=2){s=s+;;}printf("%d\n",s);}*習(xí)題答案:一.選擇題1.B2.B3.B4.C5.A二.填空題1.02.0111223.i<10j%3!=04.235.s*tt=-t*四.實(shí)訓(xùn)指導(dǎo)實(shí)訓(xùn)指導(dǎo)【1】1.某選秀節(jié)目有十個評委,選手的得分為十個評委評分后的平均分,試編程實(shí)現(xiàn)評分功能,即輸入評委給出的10個分?jǐn)?shù),輸出平均分。(要求:分別用三種循環(huán)語句完成)37《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案1)用while語句完成#include<stdio.h>voidmain(){inti=1;doublescore,sum=0,ave;while(i<=10){printf("請輸入第%d位評委分?jǐn)?shù):",i);scanf("%lf",&score);sum+=score;i++;}ave=sum/10;printf("選手最后得分為:%.2lf.\n",ave);}2)用do-while語句完成#include<stdio.h>voidmain(){inti=1;doublescore,sum=0,ave;do{printf("請輸入第%d位評委分?jǐn)?shù):",i);scanf("%lf",&score);sum+=score;i++;}while(i<=10);ave=sum/10;printf("選手最后得分為:%.2lf.\n",ave);}(3)用for語句完成#include<stdio.h>voidmain(){inti;doublescore,sum=0,ave;for(i=1;i<=10;i++){printf("請輸入第%d位評委分?jǐn)?shù):",i);scanf("%lf",&score);sum+=score;}ave=sum/10;printf("選手最后得分為:%.2lf.\n",ave);}38《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案2.某黑夜一司機(jī)碰傷行人此后一蹶不振,經(jīng)警方檢查,有三個目擊者。甲說:車牌號的前兩位同樣;乙說:車牌號的后兩位加起來等于6;丙說:車牌號是一個四位數(shù)而且能被2整除。依照上述線索,編程列出可能的車牌號。#include<stdio.h>voidmain(){inta1,a2,a3,a4,a;for(a=1000;a<10000;a++){a1=a/1000;a2=a/100%10;a3=a/10%10;a4=a%10;if(a1==a2&&(a3+a4)==6&&a4%2==0)printf("可能的車牌號為:%d.\n",a);}}3.輸出2000~2050年中全部的閏年,要求每行輸出四個年號。#include<stdio.h>voidmain(){inti=0,year;printf("2000~2050年中全部的閏年為:\n");for(year=2000;year<=2050;year++){if(year%4==0&&year%100!=0||year%400==0){printf("%8d",year);i++;if(i%4==0)putchar('\n');}}}4.(課外完成)完成【引例】中的題目。#include<stdio.h>#include<math.h>#include<conio.h>//getch()函數(shù)#include<stdlib.h>//exit()函數(shù)voidmain(){doublea,b,c,area,s;charch;while(1)39《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案{printf("請輸入三角形三邊長:");scanf("%lf%lf%lf",&a,&b,&c);if(a+b>c&&b+c>a&&a+c>b){s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("三角形的面積為:%.2f.\n",area);}elseprintf("注意:不能夠組成合法三角形.\n");printf("按任意鍵連續(xù),按q撤出.\n\n");ch=getch();if(ch=='q'||ch=='Q')break;//或exit(0);}}實(shí)訓(xùn)指導(dǎo)【2】1.依照圖5-7所示收效,輸出九九乘法表。#include<stdio.h>voidmain(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%d*%d=%-4d",j,i,j*i);printf("\n");}}2.用循環(huán)構(gòu)造輸出幾何圖形:******提示:輸出簡單的幾何圖形(如圖),是循環(huán)構(gòu)造的典型應(yīng)用之一。關(guān)于這一種類的題目,初學(xué)者常常直接采用一條或若干條輸出語句printf完成,這樣誠然能夠完成題目要求,但是很顯然缺乏靈便性,不吻合程序設(shè)計(jì)的思想。依照正常的程序設(shè)計(jì)思想,應(yīng)該先解析圖形的40《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案組成,找出其中的規(guī)律。如圖中的實(shí)心三角形,每一行由若干個空格、星號和一個回車換行符組成,將行號、空格數(shù)和星號數(shù)分別定義為i、m和n,關(guān)于行i,相應(yīng)的空格數(shù)m為6-i,星號數(shù)n為2*i-1。#include<stdio.h>voidmain(){inti,m,n;for(i=1;i<=6;i++){for(m=1;m<=6-i;m++)putchar('');for(n=1;n<=2*i-1;n++)putchar('*');putchar('\n');}}3.百元百雞問題。我國古代數(shù)學(xué)家張丘鍵在《算經(jīng)》中出了一道題:雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?這是一個古典數(shù)學(xué)問題,意思是說用一百個銅錢買了一百只雞,其中公雞一只5錢、母雞一只3錢,小雞一錢3只,問一百只雞中公雞、母雞、小雞各多少只。提示:設(shè)一百只雞中公雞、母雞、小雞分別為x,y,z,問題化為三元一次方程組:5x3yz/3100(百錢)xyz100(百雞)這里x,y,z為正整數(shù),且z是3的倍數(shù);由于雞和錢的總數(shù)都是100,能夠確定x,y,的取值范圍:x的取值范圍為1~20y的取值范圍為1~33z的取值范圍為3~99,步長為3關(guān)于這個問題我們能夠用窮舉的方法,遍歷x,y,z的全部可能組合,最后獲得問題的解。#include<stdio.h>voidmain(){intx,y,z;for(x=1;x<=20;x++)for(y=1;y<=33;y++)for(z=3;z<=99;z+=3){41《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案if((5*x+3*y+z/3==100)&&(x+y+z==100))/*可否滿足百錢和百雞的條件*/printf("cock=%d,hen=%d,chicken=%d\n",x,y,z);}}程序運(yùn)行結(jié)果以下:cock=4,hen=18,chicken=78cock=8,hen=11,chicken=81cock=12,hen=4,chicken=8442《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案單元六數(shù)組的使用一.隨堂練習(xí)【隨堂練習(xí)6-1】1.完成【引例】中的題目(1)。floatscore[40];2.有數(shù)組定義doublep[8],數(shù)組中每個元素占用8字節(jié),整個數(shù)組占用64字節(jié),p可以代表數(shù)組在內(nèi)存中存放的首地址?!倦S堂練習(xí)6-2】1.將【例6-3】中的一維數(shù)組中各元素的值逆序輸出。#include<stdio.h>voidmain(){inta[10]={0,1,2,3,4,5,6,7,8,9};for(inti=9;i>=0;i--)printf("%4d",a[i]);}【隨堂練習(xí)6-3】1.判斷以下二維數(shù)組的定義方式可否正確?(1)floatb[10][10];正確(2)#defineN20正確ints[N][N];(3)intn=20;intarray[n][10];不正確(4)doublea[4,5];不正確【隨堂練習(xí)6-4】1.將一個二維數(shù)組行和列的元素互換,存到另一個二維數(shù)組中,即矩陣的轉(zhuǎn)置。#include<stdio.h>voidmain(){inta[2][3],b[3][2];inti,j;printf("原矩陣為:\n");43《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案for(i=0;i<2;i++)for(j=0;j<3;j++){scanf("%d",&a[i][j]);b[j][i]=a[i][j];}printf("轉(zhuǎn)置后的矩陣為:\n");for(j=0;j<3;j++){for(i=0;i<2;i++)printf("%4d",b[j][i]);putchar('\n');}}【隨堂練習(xí)6-5】1.輸入兩個字符串str1和str2,比較后將較大的字符串存在str1中,將較小的存在str2中。#include<stdio.h>#include<string.h>voidmain(){charstr1[20],str2[20],str[20];printf("請輸入一個字符串:");gets(str1);printf("請?jiān)佥斎胍粋€字符串:");gets(str2);if(strcmp(str1,str2)<0){strcpy(str,str1);strcpy(str1,str2);strcpy(str2,str);}printf("較大的字符串為:%s.\n",str1);printf("較小的字符串為:%s.\n",str2);}二.單元總結(jié)在本單元中,如何定義一維、二維數(shù)組、如何操作數(shù)組以及如何利用字符數(shù)組辦理字符串是中心內(nèi)容。經(jīng)過本單元的學(xué)習(xí),我們應(yīng)該知道:1.?dāng)?shù)組是一組同樣種類的有序數(shù)據(jù)的會集。數(shù)組要先定義后使用,能夠在定義時初始化,每個數(shù)組元素相當(dāng)于同種類的變量,使用數(shù)組名和下標(biāo)來唯一確定數(shù)組中的元素。2.一維數(shù)組定義的一般格式為:種類表記符數(shù)組名[整型常量表達(dá)式];,關(guān)于已定44《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案義好的一維數(shù)組C編譯系統(tǒng)會分配連續(xù)的儲藏空間,數(shù)組名代表數(shù)組在內(nèi)存中存放的首地址。一維數(shù)組的引用方法為:數(shù)組名[下標(biāo)],其中下標(biāo)從0開始。3.二維數(shù)組定義的一般格式為:種類表記符數(shù)組名[整型常量表達(dá)式1][整型常量表達(dá)式2];,關(guān)于已定義好的二維數(shù)組C編譯系統(tǒng)會分配連續(xù)的儲藏空間,將二維數(shù)組元素按行挨次儲藏。二維數(shù)組元素的接見涉及第一維和第二維兩個下標(biāo),其引用方法為:數(shù)組名[下標(biāo)1][下標(biāo)2]。4.字符數(shù)組是一組字符型數(shù)據(jù)的有序會集,其中每個數(shù)組元素的值都是字符。C語言用字符數(shù)組實(shí)現(xiàn)字符串變量,字符串以‘\0’作為結(jié)束標(biāo)志。字符串的輸入能夠經(jīng)過gets()、scanf()函數(shù)實(shí)現(xiàn),字符串的輸出能夠經(jīng)過puts()、printf()函數(shù)實(shí)現(xiàn)。常有的字符串操作庫函數(shù)有:求字符串長度函數(shù)strlen()、字符串復(fù)制函數(shù)strcpy()、字符串聯(lián)接函數(shù)strcat()、字符串比較函數(shù)strcmp(),這些庫函數(shù)的定義都在頭文件中。常有的字符庫函數(shù)的定義都在頭文件中。5.?dāng)?shù)組的操作平時離不開循環(huán)構(gòu)造,在使用循環(huán)構(gòu)造操作數(shù)組時應(yīng)注意下標(biāo)的變化規(guī)律。經(jīng)過本單元的學(xué)習(xí),應(yīng)該掌握C語言中關(guān)于數(shù)組這一構(gòu)造數(shù)據(jù)種類的使用方法和操作方法。三.單元練習(xí)一.選擇題1.定義一個名為s的字符型數(shù)組,而且賦初值為字符串"123"的錯誤語句是()。A.chars[]={‘,1''2','3','\0'};B.chars[]={"123"};C.chars[]={"123\n"};D.chars[4]={'1','2','3'};2.以下數(shù)組定義語句中,正確的選項(xiàng)是()A.inta[][]={1,2,3,4,5,6};B.chara[2][3]=‘a(chǎn)',‘b';C.inta[][3]={1,2,3,4,5,6};D.inta[][]={{1,2,3},{4,5,6}};3.已定義inta[][3]={1,2,3,4,5,6,7,8,9};,則a[1][2]的初值為()。A.2B.4C.6D.84.判斷字符串str1可否大于字符串str2,應(yīng)該使用()。A.if(str1>str2)B.if(strcmp(str1,str2)<0)C.if(strcmp(str2,str1)>0)D.if(strcmp(str1,str2)>0)45《C語言程序設(shè)計(jì)基礎(chǔ)》教材參照答案5.以下程序段的功能是給數(shù)組全部的元素輸入數(shù)據(jù),爾后輸出,請選擇正確答案填空()。#include<stdio.h>voidmain(){inta[10],i=0;while(i<10)scanf("%d",);for(i=0;i<10;i++)printf("%4d",a[i]);}A.a(chǎn)+(i++)B.&a[i+1]C.a(chǎn)+iD.&a[++i]二.填空題1.定義一個名為a的單精度浮點(diǎn)型一維數(shù)組,數(shù)組的長度為4,全部元素的初值均為0,定義語句為,引用該數(shù)組元素時,下標(biāo)的范圍是,該數(shù)組占用的儲藏空間為字節(jié)。2.設(shè)有數(shù)據(jù)定義語句inti=3,x[4]={1,2,3};,則數(shù)組元素x[i]的值是。3.以下程序的功能是讀取10個實(shí)數(shù),爾后挨次輸出前1個實(shí)數(shù)和、前2個實(shí)數(shù)和、...、前9個實(shí)數(shù)和、前10個實(shí)數(shù)和。請將程序補(bǔ)充完滿。#include<stdio.h>voidmain(){floatf[10],x=0;inti;for(i=0;i<10;i++)scanf("%f",&f[i]);for(i=0;i<10;i++){;printf("sumofNo.%2dis%.2f.\n",i,x);}}4.以下程序的功能是求兩個矩陣的和,請將程序補(bǔ)充完滿。#include<stdio.h>voidmain(){inta[3][4],b[3][4],c[3][4];//數(shù)組c存放矩陣a與b的和inti,j;for(i=0;i<3;i++)for(j=0;j<4;j+
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 冰場裝修保修協(xié)議
- 礦山車輛運(yùn)輸服務(wù)協(xié)議樣本
- 沙石運(yùn)輸行業(yè)環(huán)保措施合同
- 懸崖別墅裝修設(shè)計(jì)協(xié)議
- 2025年度個人旅游保險(xiǎn)服務(wù)協(xié)議3篇
- 餐飲行業(yè)自助餐服務(wù)協(xié)議
- 2024年生物醫(yī)藥項(xiàng)目投資合同
- 2024年智慧農(nóng)業(yè)產(chǎn)業(yè)鏈建設(shè)項(xiàng)目合作合同
- 電子商務(wù)平臺技術(shù)支持服務(wù)合同
- 礦產(chǎn)資源勘查開發(fā)合作合同
- 《職業(yè)培訓(xùn)師教程》課件
- (康德一診)重慶市2025屆高三高三第一次聯(lián)合診斷檢測 英語試卷(含答案詳解)
- 2025年福建泉州文旅集團(tuán)招聘24人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 建筑行業(yè)砂石物資運(yùn)輸方案
- 文化沖突與民族認(rèn)同建構(gòu)-洞察分析
- 2024年高中一年級數(shù)學(xué)考試題及答案
- 42式太極劍劍譜及動作說明(吳阿敏)
- 危險(xiǎn)化學(xué)品企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化課件
- 巨鹿二中骨干教師個人工作業(yè)績材料
- 《美的歷程》導(dǎo)讀課件
- 心電圖 (史上最完美)課件
評論
0/150
提交評論