C語言程序設計實驗教程2014教師版1_第1頁
C語言程序設計實驗教程2014教師版1_第2頁
C語言程序設計實驗教程2014教師版1_第3頁
C語言程序設計實驗教程2014教師版1_第4頁
已閱讀5頁,還剩158頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

ネズ或スギ鼠C語言程序設計實驗指導書學院 專業(yè)班級姓名 學號目錄TOC\o"1-5"\h\z\o"CurrentDocument"第1章引論 1\o"CurrentDocument"本章導學 1\o"CurrentDocument"基礎實驗 2\o"CurrentDocument"拓展實驗 8習題 10\o"CurrentDocument"第2章C程序設計的初步知識 12\o"CurrentDocument"本章導學 12\o"CurrentDocument"基礎實驗 17\o"CurrentDocument"拓展實驗 19習題 20\o"CurrentDocument"第3章順序結(jié)構(gòu)程序設計 26\o"CurrentDocument"本章導學 26\o"CurrentDocument"基礎實驗 28\o"CurrentDocument"拓展實驗 31習題 34\o"CurrentDocument"第4章選擇結(jié)構(gòu)程序設計 41\o"CurrentDocument"本章導學 41\o"CurrentDocument"基礎實驗 46\o"CurrentDocument"拓展實驗 48\o"CurrentDocument"習題 57\o"CurrentDocument"第5章循環(huán)結(jié)構(gòu)程序設計 67\o"CurrentDocument"本章導學 67\o"CurrentDocument"基礎實驗 71\o"CurrentDocument"拓展實驗 73\o"CurrentDocument"習題 78\o"CurrentDocument"第6章數(shù)組 89\o"CurrentDocument"本章導學 89\o"CurrentDocument"基礎實驗 91\o"CurrentDocument"拓展實驗 95\o"CurrentDocument"習題 100\o"CurrentDocument"第7章函數(shù) 110\o"CurrentDocument"本章導學 111\o"CurrentDocument"基礎實驗 113\o"CurrentDocument"拓展實驗 120\o"CurrentDocument"習題 123\o"CurrentDocument"第8章指針 133\o"CurrentDocument"本章導學 133基礎實驗 140\o"CurrentDocument"拓展實驗 141\o"CurrentDocument"習題 147第1章引論本章導學ー、教學目標.了解程序和程序設計語言、C語言的發(fā)展和特點。.初步掌握C語言源程序的結(jié)構(gòu)特點與書寫規(guī)范。.掌握在集成環(huán)境中編輯、編譯、連接和運行C語言程序的方法。二、知識要點.程序與程序設計語言所謂程序,就是ー組計算機能識別和執(zhí)行的指令序列。任何人之間的交流需要通過語言,人和計算機交流信息,需要創(chuàng)造ー種計算機和人都能識別的語言。編寫計算機程序所采用的語言形式稱為程序設計語言。程序設計ー一般可以分為以下兒個步驟:(1)問題分析。(2)確定算法。(3)編寫程序。(4)對源程序進行編輯、編譯和連接,得到可執(zhí)行程序。(5)運行程序,分析結(jié)果。(6)編寫程序文檔。.C程序舉例#include<stdio.h>intmain(){ printf(liThisisaCprogram!”);〃輸出語句return0;)運行結(jié)果:ThisisaCprogram!程序說明如下:(1)C程序是由函數(shù)構(gòu)成的,ー個C程序至少且僅包含一個主函數(shù)(main函數(shù))。一個函數(shù)由函數(shù)首部和函數(shù)體構(gòu)成。函數(shù)首部定義了函數(shù)的類型、函數(shù)名及函數(shù)參數(shù);函數(shù)首部下面的花括號內(nèi)的部分為函數(shù)體。C程序總是從主函數(shù)(main函數(shù))開始執(zhí)行。include是“文件包含”預處理命令。編譯器在開始工作之前,先對預處理命令進行預處理。預處理命令必須放在程序的開始處。.h為擴展名的文件稱為頭文件,可以是C語言程序中的標準庫文件,也可以是自定義的庫文件。標準輸入輸出庫函數(shù)包含在stdio.h頭文件中。intmain()是按照C99標準,將主函數(shù)定義為int(整型)類型,并在函數(shù)的末尾加ー個返回語句“return。;”,表示主函數(shù)正常結(jié)束時,返回整數(shù)。。(7)大括號{和}分別位于函數(shù)定義的開始和結(jié)尾處,括的內(nèi)容是函數(shù)的主體。大括號的另ー種用法是將語句塊括起來。printf()為標準輸出函數(shù),?般格式:printf(格式控制,輸出表列)。(9)每個語句和數(shù)據(jù)聲明的最后必須以分號結(jié)束。(1。)C語言中注釋只是方便閱讀,并不參與程序的編譯和運行,分為兩種注釋方式:/*…*/為塊式注釋,〃為單行注釋。(IDC語言源程序的擴展名為.c。.C程序的格式特點C程序并無嚴格的格式要求,以下建議可幫助提高程序的可讀性,不影響程序功能。(1)整體采用小寫字母的風格書寫程序,C語言區(qū)分大小寫。(2)書寫格式自由,一行可以寫多個語句,ー個語句也可以寫在多行上。-一般ー個聲明或ー個語句占一行。(4)同層次關(guān)系的一對大括號的位置上下對齊。(5)低層次的語句或聲明可比高ー層次的語句或聲明縮進若干格后書寫。(6)添加足夠的注釋信息。.C程序的開發(fā)過程計算機不能直接執(zhí)行用C語言編寫的程序,C程序必須經(jīng)過編譯和連接后才能執(zhí)行。C程序的開發(fā)過程如圖L1所示。從圖中可以看出,編輯后得到C源程序,其擴展名為“.c”。然后經(jīng)過編譯生成目標文件,其擴展名為“.obj”,編譯時會檢查語法錯誤。如果程序有誤則需返回編輯階段進行修改,直至沒有語法錯誤,才能通過編譯。之后再經(jīng)過連接,即把目標文件與系統(tǒng)的庫函數(shù)和該文件有關(guān)的其他目標文件連接起來,形成一個可執(zhí)行文件,其擴展名為“.exe”。連接的時候如果連接程序不能在所有的庫函數(shù)和其他目標文件內(nèi)找到所引用的函數(shù)或變量,也會提示出錯。最后,運行可執(zhí)行文件,如果結(jié)果正確則結(jié)束,否則返回編輯階段修改,直至得到正確的運行結(jié)果?;A實驗.VC的啟動及窗口組成首先要安裝VC++,然后單擊“開始”菜單或桌面上的VC++快捷方式圖標,啟動VC++,進入VC++的主窗口,如圖1.2所示。主窗口包含了開發(fā)環(huán)境的所有功能,其主要功能可以通過菜單欄中的各菜單項以及工具欄中的命令按鈕實現(xiàn)。

開始圖1.2VC++6.0主窗口

.創(chuàng)建工程項目在VC++主窗口的主菜單欄中單擊“文件(F)”,在其下拉菜單中單擊“新建(N)”選項,如圖1.3所示。圖1.3文件菜單彈出"新建”對話框,單擊此對話框左上角的工程選項卡,選擇“Win32ConsoleApplication"選項,如圖1.4所示。在磁盤上新建一個目錄,用于存放C語言程序,如"D:'張三、第1章、”。修改文件保存位置為:"D:'張三'第1章”,工程名稱為“chapド’,單擊“確定”按鈕,如圖1.4所示。圖1.4新建工程項目界面屏幕上出現(xiàn)如圖1.5所示的“Win32ConsoleApplicaionー步驟1共1步”對話框后,選擇“一個空工程”,單擊“完成”按鈕繼續(xù)。Win32ConsoleApplication-歩獲1共1步然想要創(chuàng)建什么類熨的控制臺程序?r然想要創(chuàng)建什么類熨的控制臺程序?r一個簡單的程序包r一個"Hello,World!"理序[W1一個支持MFC的程序(MJ〈上一步Ir一步>」[完成]取消圖1.5新建工程向?qū)С霈F(xiàn)如圖L6所示的“新建工程信息”對話框后,單擊“確定”按鈕完成工程創(chuàng)建。創(chuàng)建的工作區(qū)文件為chapl.dsw和工程項目文件“chapl.dsp”。圖1.6圖1.6新建工程信息.創(chuàng)建源程序文件選擇"工程(P)”菜單中的“增加到工程(A)”選項下的“新建(N)”子選項,為工程添加新的C源程序文件。如圖1.7所示。出現(xiàn)如圖1.8所示的“新建”對話框后,選擇“文件”選項卡,選擇"C++SourceFile"選項,輸入“12c”文件名,單擊“確定”按鈕,出現(xiàn)程序編輯區(qū),光標閃爍等待輸入。注意:在填入C源文件名時,一定要加上擴展名“.c”,否則系統(tǒng)會為文件添加默認的C++源文件擴展名“.cpp”。

圖1.7增加到工程界面圖1.8新建文件界面.編輯源程序文件在程序編輯區(qū)輸入準備好的源程序,在輸入過程中可隨時單擊工具欄保存圖標,如圖1.9所示。.編譯文件單擊菜單欄中“組建(B)”下的“編譯[12c]”選項,或單擊工具欄上按鈕か,或按Ctrl+F7快捷鍵進行編譯,編譯后生成目標文件“chapl.obj”。主窗口下方的輸出窗口將顯示編譯過程中檢查出的錯誤或警告信息,在錯誤信息處單擊鼠標右鍵或雙擊鼠標左鍵,可以使輸入焦點跳轉(zhuǎn)到引起錯誤的源代碼處大致位置進行修改。如圖1.10所示。

schapl-MicrosoftVisualC??.口?2?D文儂BM(DMGO,入〇)エ噸E)電?限)工JUD?ロ叱)?鮎(H)國ゴ。。も?schapl-MicrosoftVisualC??.口?2?D文儂BM(DMGO,入〇)エ噸E)電?限)工JUD?ロ叱)?鮎(H)國ゴ。。も?づ▼-Q陽官聃廠 M[Globals] ▼”(Allglobalmember,main ▼[ヌ▼⑤過昌,凰州お工作區(qū)’chapi,:1re顧chaplfiles?ロSourceFilesLJHeaderFilesrIResourceFilesIinclude<stdio.h>intMin()|printf("ThisisaCprogram,return?;處理命令普

ー返

的畢

筠疋完束

開掘&BSCIassV...1,11圖1.9編輯C源文件Schapl-MicrosoftVisualC??-[l-2.c]0文伸(E)m(£)moo,入〇)i?(?ea(wta(daa(w)?助(h)Ws;W0龜‘一(□⑻官? で-HIx(Globals) _*j|(AIIglobalmember*?main‘ロ’…IDrikK'chWl(:I工程顧chaplfiles回CjSourceFilesLJHeaderFilesIIResourceFilesBSCIassvZT]t]FileView|Iinclude<stdio.h>intiwin()<printF(*'Thisisareturn?;Cprogranf*")預瞿所樂譚ぬ圖欝第王ー^8^函〃〃〃〃〃〃1,UZJ ConFiguration:chapl--Win32DebugConpiling...1-2.c1-2.obj-0error(s),0warning(s)組金ス調(diào)試、在文件1中、找'ス,II就緒 JH[<|COL,隸?圖1.10編譯C源文件.連接文件單擊菜單欄中“組建(B)”下的“組建[chapl.exe]”選項,或單擊工具欄上按鈕儈,或按ド/快捷鍵進行連接,鏈接后生成可執(zhí)行文件“chapl.exe"。如圖!.1I所示。程序組建生成的目標文件(.obj)和可執(zhí)行文件(.exe)存放在當前工程項目所在文件夾的“Debug”子文件夾中。.運行程序單擊菜單欄中“組建(B)”下的“執(zhí)行[chapl.exe]”選項,或單擊工具欄上按鈕!,或按Ctrl+F5快捷鍵執(zhí)行程序,將會出現(xiàn)運行結(jié)果顯示窗口,如圖1.12所示,按任意鍵返回到VC++編輯窗口。

對于比較簡單的程序,可以直接選擇該項命令,編譯、連接和運行?次完成。Schapl-MicrosoftVisual-[l-2.c] 1d[30文件(DMl(£)M(y)?A(DIS(B£>(£)HMD■□(W) _|g|xI國Su。4G:mis?fj廠 -3N▼JI(Allglobalmembers£||.main⑤西昌!包小]石工作區(qū)dapr:1エ白-&chaplfilesS石工作區(qū)dapr:1エ白-&chaplfilesS|_jSourceFilesLJHeaderFilesLJResourceFilesa;Cla8sV...[J]FilcVIewTBinclude<stdio.h>intnain()<printfC'Thisisareturn0;Cprograms)預螯所督隼王一sit?函〃〃〃〃〃〃ー返

始定完束凹 ConFiguration:chapl-Win32Debug -Linking...chapl.exe-0error(s),0warning(s)lIfk細tズ上試ス在文件1中査我、ザ?」」 ,rIan 廣行5.到1 ”—及と貨取圖!.1I連接C程序圖!.12運行結(jié)果.關(guān)閉工作空間單擊菜單欄中”文件(F)”下的“關(guān)閉工作空間(K)”選項,屏幕提示如圖1.13所示。單擊“是”按鈕關(guān)閉工作空間以結(jié)束對該程序的操作。如果不關(guān)閉工作區(qū)就寫程序,可能原來的程序還在工作區(qū)內(nèi),從而會給初學者運行程序帶來麻煩。圖1.13關(guān)閉工作空間對話框拓展實驗.程序分析,預測運行結(jié)果,并上機編譯、連接、運行。#include<stdio.h>intmain(){printf(44helloeveryone!\nM);return0;}程序的運行結(jié)果是屏幕上顯示:helloeveryone!/〇[提示]printf()函數(shù)將雙引號內(nèi)的普通字符按原樣輸出;“\n”是轉(zhuǎn)義字符,含義為換行。[思考]如果printf(44helloeveryone!?”);修改為printf(uhello\neveryone!\nM);則程序的運行結(jié)果是:hello/everyone!/〇.程序改錯,請查找并修改以下程序中的語法錯誤,使程序運行后在屏幕上顯示一行信息。#include<stdio.h>intmian(){printf("Icandoit!\n")return0;[提示](1)要調(diào)試本程序,應先關(guān)閉之前運行程序的工作區(qū)。(2)注意體會輸出窗口的提示信息,依次雙擊出錯信息,可快速定位到出錯位置附近。(3)應把程序中的mian改為main。(4)C語言程序要以“ビ結(jié)束,注意在英文狀態(tài)下輸入。(4)C語言程序要以“ド結(jié)束。3.。程序設計。編寫一個C程序,實現(xiàn)輸出如下結(jié)果:姓名:張三豐性別:男年齡:105[提示]注意中英文轉(zhuǎn)換。C程序的標點符號需在英文半角狀態(tài)輸入。3.#include<stdio.h>intmain(){ printf("姓名:張三豐\n");printf(“性別:男Xn”);printf(“年齡:105\nM);return0;1.4習題ー、選擇題C語言屬于()〇A.機器語言 B.低級語言 C,中級語言D.高級語言.以下敘述中正確的是( )〇A.C語言程序?qū)脑闯绦蛑械谝粋€函數(shù)開始執(zhí)行B.可以在程序中由用戶指定任意ー個函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行C.C語言規(guī)定必須用main作為主函數(shù)名,程序從此開始執(zhí)行,在此結(jié)束D.main作為用戶標識符,用以命名任意ー個函數(shù)作為主函數(shù).C語言規(guī)定,在ー個源程序中,main函數(shù)的位置()〇A.必須在最開始B.必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C.可以任意D.必須在最后.以下敘述中錯誤的是( )〇A.ー個C程序中可以包含多個不同名的函數(shù)B.一個C程序只能有一個主函數(shù)C.C程序在書寫時,有嚴格的縮進要求,否則不能編譯通過D.C程序中主函數(shù)必須用main作為函數(shù)名.以下敘述中正確的是( )〇C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面C語言程序書寫時,不區(qū)分大小寫字母C程序書寫格式自由,?個語句可以寫在多行上D.C程序書寫格式嚴格,要求一行內(nèi)只能寫ー個語句.C語言程序的塊注釋是( )〇A,由“/*”開頭,“*/”結(jié)尾B,由“/*”開頭,“/*”結(jié)尾C,由ク/”開頭 D.由“/*”或ッ/”開頭,“刃”結(jié)尾.C語言程序的每條語句結(jié)束要使用( )標點符號。A.句號 B,分號 C.逗號 D.冒號.以下敘述中正確的是( )〇A.在編譯時可發(fā)現(xiàn)注釋中的拼寫錯誤C語言程序的每行只能寫一條語句main函數(shù)必須位于程序的開始處D.C語言程序可以由?個或多個函數(shù)組成

.。用C語言編寫的代碼程序()〇A,可立即執(zhí)行 B,是ー個源程序C.經(jīng)過編譯即可執(zhí)行 D.經(jīng)過編譯解釋才能執(zhí)行.。計算機能直接執(zhí)行的程序是()〇A,源程序B.目標程序C,匯編程序D.可執(zhí)行程序.標準C語言程序的文件名的后綴為()〇A..cB..cppC..objD.,exe.C語言程序經(jīng)過編譯以后生成的文件名的后綴為()〇A..c B..cpp C..obj D..exe.C語言程序經(jīng)過鏈接以后生成的文件名的后綴為( )。A.,c B..cpp C..obj D..exe二、程序設計題.。編寫ー個C程序,輸入a,b兩個值,輸出這兩個數(shù)的和。.編寫ー個C程序,輸出以下圖案。****l.#include<stdio.h>intmain(l.#include<stdio.h>intmain(){inta,b,c;scanft%d%d〃,&a,&b);c=a+b;printf(〃%d〃,c);return0;2.#include<stdio.h>intmain(){inta,b,c;printf("*\n〃);printf("***\n");printf("*****\n");return0;第2章C程序設計的初步知識本章導學ー、教學目標.掌握C語言的基本數(shù)據(jù)類型。.掌握算術(shù)、關(guān)系、邏輯、賦值、逗號、強制類型轉(zhuǎn)換等運算符的應用。.明確運算符優(yōu)先級關(guān)系,并能掌握各類表達式的運算方法。.學會分析問題的方法,能使用流程圖、偽碼等方式正確描述算法。二、知識要點1.常量、變量與標識符(1)常量在程序運行過程中,其值不能被改變的量,稱為常量。C語言中,常量可分為數(shù)值常量、字符常量、字符串常量和符號常量。數(shù)值常量包含整型常量和實型常量,它們有正值和負值的區(qū)分,如:12、ー1、ー23.2等。字符常量是使用單引號標識的ー個字符,如:H、0、’后等。字符串常量是使用雙引號標識的多個字符,如:''lamaboy!"、"HelloCprogram!”等。符號常量是在main()之前使用#define定義代表…個常量的標識符,如:#definePI3.1416,PI是符號常量,代表3.1416。符號常量一般用大寫字母表示。(2)變量在程序運行過程中,其值可改變的量,稱為變量。程序中調(diào)用的每一個變量都要先定義,后使用。ー個變量實質(zhì)上是代表了內(nèi)存中的某個存儲單元,針對調(diào)用數(shù)據(jù)的不同而定義不同類型的變量。C語言中常見的數(shù)據(jù)類型如表2.1所示。表2.1基本數(shù)據(jù)類型類型字節(jié)數(shù)取值范圍整型[signed]int2或4-215-(2|5-1)或ー23し(2叫1)unsignedint2或4〇?216.1或0?232.1[signed]short[int]2-2,s~(215-1)unsignedshort[int]20?2%Iong[int]4-231-(23,-1)unsignedlong[int]4〇?232-1實型float40以及l(fā).2*10-38-3.4*1038(絕對值)double8〇以及2.3*10ー皎?1フ*103。8(絕對值)longdouble8或16。以及2.3*1〇ー30S?1.7*1產(chǎn)(絕對值)字符型char10-28-1或ー2’?2’-1注:表中列出了TurboC2.0和VC++6.0兩種編譯系統(tǒng)為不同數(shù)據(jù)類型分配的字節(jié)數(shù)和取值范圍,部分類型取值不同,例如,2或4個字節(jié),表示TurboC2.0分配2字節(jié),VC++6.0分配4字節(jié);變量定義的一般格式為:數(shù)據(jù)類型說明符變量列表:例如:inti,j;longk,m;floatx,y;charchl,ch2;(3)標識符在C語言中,標識符可用作變量名、符號常量名、函數(shù)名等。合法的標識符由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線。C語言的標識符可分為以下三類:①關(guān)鍵字:在程序中代表固定的含義,不能另作它用(見教材附錄A)。②預定義標識符:庫函數(shù)名、預編譯處理命令等。③用戶標識符:由用戶根據(jù)需要定義的標識符,一般用來給變量、常量、函數(shù)等命名。2.運算符與表達式對運算對象完成規(guī)定操作運算的符號稱為運算符,由運算符和操作數(shù)共同構(gòu)成的式子稱為表達式。C語言中的運算符可分為算術(shù)運算符、賦值運算符、關(guān)系運算符、邏輯運算符、條件運算符、逗號運算符、位運算符、其它運算符。常見運算符及優(yōu)先級如表2.2所示。表2.2運算符及優(yōu)先級類型運算符優(yōu)先級基本運算符優(yōu)先級算術(shù)運算符+-*/%++--+--++-*/%+-同級 同級 同級|^< ハ咼!算術(shù)運算符關(guān)系運算符&&II條件運算符賦值運算符低賦值運算符=+=-=*=/=%=關(guān)系運算符><>=<===!=> >=vv= = !=同級 同級高< 低邏輯運算符&&II!! &&II高? 低條件運算符9?逗號運算符(1)算術(shù)運算符算術(shù)表達式主要功能是完成數(shù)值運算,其中:①“/”除法運算中,除數(shù)不可為0,且當兩個整數(shù)相除時,結(jié)果為整數(shù),舍去小數(shù)部分。②“%”求余運算中,操作數(shù)只能是整數(shù)或整型變量,結(jié)果為整型。③“++”自加運算,“一”自減運算:?前置運算,先自加(減)后取值,++i,-i(先執(zhí)行i=i+l(或i=i-l),再調(diào)用1值;?后置運算,先取值后自加(減),i++,i-,先調(diào)用1值,再執(zhí)行i=i+l(或i=i-l)。前置或后置運算的區(qū)別在于表達式的值不同,前置運算取自加(減)1后變量的值為表達式的值,后置運算取自加(減)1前變量的值為表達式的值;二者對變量本身沒有區(qū)別,都能使變量的值自加(減)1。例:#include<stdio.h>intmain(){inta=4,b,c;b=(++a)*6;c=(a++)*6;printf("a=%d,b=%d,c=%d\n”,a,b,c);return0;}運彳了結(jié)果為:a=6,b=30,c=30(2)賦值運算符賦值運算完成將右邊的值賦給左邊的變量。賦值運算符左邊必須是變量,右邊可以是C語言任意合法的表達式。如:inta=3;charm=匕';m%=3+n(等價于m=m%(3+n))。(3)邏輯運算符邏輯運算按照從左至右的順序進行,一旦能夠確定邏輯表達式的值,就立即結(jié)束運算。其運算規(guī)則如表2.3所示。表2.3邏輯運算規(guī)則ab!a!ba&&ballb非。非〇0011非〇001010非〇1001001100(4)逗號運算符使用逗號運算符將多個表達式連接起來的式子稱為逗號表達式,表達式一般形式如下:表達式1,表達式2, ,表達式n運算時先求解表達式1,再求解表達式2,……,最后求解表達式n,整個逗號表達式的值為表達式n的值。(5)條件運算符

條件運算符是C語言中唯一的一個三目運算符,由條件運算符連接操作數(shù)構(gòu)成的式子稱為條件表達式,其一般形式如下:表達式1?表達式2:表達式3對表達式1求解,若表達式1的值為真(非零),則執(zhí)行表達式2,否則執(zhí)行表達式3。(6)強制類型轉(zhuǎn)換運算符在C語言中可以利用強制類型轉(zhuǎn)換運算將一個表達式轉(zhuǎn)換成所需要的類型。強制轉(zhuǎn)換的一般形式如下:(類型名)(表達式)例:(double)a將a的值轉(zhuǎn)換成double類型;(int)(x+y)將x+y的值轉(zhuǎn)換成整型:(float)(5%3)將5%3的值轉(zhuǎn)換成float型。3.算法描述(1)算法解決某ー特定問題的方法和步驟稱為算法。一個算法應具有以下五個特性。①有窮性。ー個算法應包含有限個操作步驟。②確定性。算法中每一條指令必須有確切的含義。③有效性。算法中的每一個步驟都應當能有效地執(zhí)行,并得到確定的結(jié)果。④有零個或多個輸入。輸入是指在執(zhí)行算法時需要從外界取得必要的信息。⑤有一個或多個輸出。算法的目的是求解,沒有解的算法是無意義的。(2)算法描述算法可以通過多種方式來描述,常用的描述工具有程序流程圖、N-S盒圖、偽碼等。①程序流程圖程序流程圖基本圖形元素符號如圖2.1所示:〇 〇起止框 判斷框〇 〇起止框 判斷框〇 -I—連接點 注釋框圖2.IZZIロ處理框 輸入ノ輸出框ゴ流向線1流程圖基本圖形元素符號例:輸入兩個數(shù),輸出較大值。圖2.2輸出兩個數(shù)中較大者②N-S流程圖圖2.3N-S流程圖基本元素符例:輸入兩個數(shù),輸出較大值。圖2.2輸出兩個數(shù)中較大者②N-S流程圖圖2.3N-S流程圖基本元素符號當型循環(huán)結(jié)構(gòu)(while)例:輸入兩個數(shù),輸出較大值。圖2.4用N-S流程圖表示輸入兩個數(shù),輸出較大值③偽碼偽代碼是用介于自然語言和計算機語言之間的文字和符號來描述算法。例:計算5!BEGIN{算法開始}lytyiwhilei<5{tXiyti+1yi}printtEND{算法結(jié)束}2.2基礎實驗ー、程序分析.以下程序的運行結(jié)果是:******/verygood!/******/#include<stdio.h>intmain(){ printf(*******\nverygood!\n******\n");return0;}.以下程序若輸入25和43,則運行結(jié)果是:_43,25〇#include<stdio.h>intmain(){inta,b,t;printf("entera,b,'‘);scanf("%d%d”,&a,&b);t=a;a=b;b=t;printf("%d,%d”,a,b);}.以下程序的運行結(jié)果是:_/x=1.08333/〇#include<stdio.h>intmain(){floatx;x=1.0/2+1.0/3+1.0/4;printf("\nx二%An",x);return0;)如果代碼中相應的表達式改為x=l/2+l/3+l/4,則運行結(jié)果是ー/x=0.000000/,原因是一整型除整型,結(jié)果為整型 。二、程序填空.以下程序?qū)崿F(xiàn)的功能是:分別定義4個變量a,b,c,d,其中a為字符型,b為整型,c為單精度實型,d雙精度實型,分別將a、98、3.2、17.668賦給4個變量并輸出。請將程序補充完整,并分析程序的運行結(jié)果。#include<stdio.h>intmain() {chara;intb;_float c;doubled;aゴa'_;_b=98;c=3.2;d=17.668;printf("%c,%d,%f,%lf\n”,a,b,c,d);return0;}運行結(jié)果:_a,98320000〇』7.66800〇/。.以下程序?qū)崿F(xiàn)的功能是計算(10+24)*3的結(jié)果,請將程序補充完整,并分析程序的運行結(jié)果。#include<stdio.h>intmain(){intx;_x=(10+24)*3;printfC6x=%d\n,,,x);return0;}運行結(jié)果:_x=102/〇.。以下程序?qū)崿F(xiàn)的功能是計算半徑為L5的圓的面積,請將程序補充完整,并分析程序的運行結(jié)果。#include<stdio.h>#include<math,h>#definePI3.14intmain(){floatr=1.5;doubles;s=PI*pow(r,2);printfC'Xn%lf\nM,s);return0;}運行結(jié)果:/7.065000/〇2.3拓展實驗ー、程序改錯(以下程序存在錯誤,請調(diào)試程序并將錯誤找出后改正,運行程序,填寫結(jié)果)1.以下程序?qū)崿F(xiàn)的功能是對U,V進行初始化,并輸出U,V的值。行號源程序123456#include<stdio.h>intmain(){intu=v=89;printfC'u=%d,v=%d\n,,,u,v);return0;)找錯錯誤在3行應改為:intu=89,v=89;調(diào)試正確后的運行結(jié)果運行結(jié)果:u=89,v=89/2.下面的程序試圖計算由鍵盤輸入的任意兩個整數(shù)的平均值。行號源程序i2345678#include<stdio.h>intmain(){intx,y,a;scanf("%x,%y",&x,&y);a=(x+y)/2;printf("Theaverageis:%d\n”,a);return0;}找錯錯誤在4行應改為:scanf("%d,%d”,&x,&y);

調(diào)試正確后的運行結(jié)果輸入數(shù)據(jù)2,61,4運行結(jié)果:Theaverageis:4Theaverageis:2(5/2?整型除整型,結(jié)果為整型)二、程序設計.輸入任一整數(shù)X,計算y=3x2+2x-10的值。.將小寫字符,ゼ、,〇,、’ヅ轉(zhuǎn)換為大寫。1.#include<stdio.h>intmain(){1.#include<stdio.h>intmain(){floatx,y;scanf("%ド,&x);y=3*x*x+2*x-10;printf(“y=%f\n”,y);return0;intmain(){charx,y,z;xゴb’;y=’〇';z='y';x-=32;y-=32;z-=32;printf("%c%c%c\n”,x,y,z);return0;2.4習題ー、選擇題1.0一個算法應該具有“確定性”等5個特性,下面對另外4個特性的描述中錯誤的是()〇A.有0個或多個輸入 B.有〇個或多個輸出 C.有窮性D.可行性2.。以下敘述中正確的是()〇A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出3.。針對簡單程序設計,以下敘述的實施步驟順序正確的是()〇A.確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試、整理文檔B.編碼、確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、整理文檔C,整理文檔、確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試D.確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、編碼、整理文檔.C語言中用于結(jié)構(gòu)化程序設計的3種基本結(jié)構(gòu)是()〇A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu) B.if、switch>breakC.for>while>do-while D?if、for>continue.以下敘述中錯誤的是()〇A,用戶所定義的標識符允許使用關(guān)鍵字B.用戶所定義的標識符應盡量做到“見名知意”C,用戶所定義的標識符必須以字母或下劃線開頭D,用戶定義的標識符中,大、小寫字母代表不同標識.以下選項中合法的用戶標識符是()〇A.longB._2TestC.3DmaxD.for.以下4個用戶定義標識符中,全部合法的ー組是()〇A._mainencludeInt B.if-maxturboC.txtREAL3COM D.intk_2_001.。以下不是C語言提供的轉(zhuǎn)義字符的是( )。A.’\\'B.'\" C.'074'D.''0'.C語言中,定義PI為ー個符號常量,正確的是()〇A.#definePI3.14 B.#define<PI3.14>C.#definePI=3.14 D.#include<PI3.14>.在定義變量時同時給a、b、c三個整型變量賦初值5的正確語句是( )。A.inta=b=c=5; B.inta,b,c=5;C.inta=5;b=5;c=5;D.inta=5,b=5,c=5;.在C語言中,要求參加運算的數(shù)必是整數(shù)的運算符是( )。A./B,*C.%D.=.若intk=7,x=12;則能使值為3的表達式是()〇A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5).若a是int型變量,則執(zhí)行下面表達式a=2“%3后a的值為()〇A.2B.0C.2.3D.25.若以下選項中的變量已正確定義,則正確的賦值語句是()〇A.xl=26.8%3;B.l+2=x2;C.x3-=12; D.x4=1+2=3;.〇已知chara='B',b='O',c='Y';inti;則表達式i=a+b+c的值為( )。A.BOYB.'BOY'C.'a+b+c'D.234.定義:inta=8,b=5,c;,執(zhí)行語句c=a/b+0.4;后,c的值為()〇A.1.4B.1C.2.0D.2.假定x和y為double型,則表達式x=2,y=x+M的值是()〇A.3.500000B.3C.2.000000D.3.000000.intx=ll,表達式(x++*Q/3)的值是()〇3 B.4C.11D.12.。假設a=5,則printfド%d,%d\n”,a,a++);語句的執(zhí)行結(jié)果為()〇A.5,5B.55C,6,5D.65.?運行如下程序段inta=5;printf("%d%d\n”,a,(a++)+(a++));后運行結(jié)果是()〇A.714B.612C.510D.711.運行如下程序段inti=10,j=l;printf("%d,%d如下ー,++j);后運行結(jié)果是()〇A.9,2B.10,2C.9,1D.10,1.。以下為非法的賦值表達式是( )。A.n=(i=2,++i)B.j++C,++(j+l)D.x=j>0.設a和b均為double型變量,a=5.5,b=2.5則表達式(int)a+b/b的值是()〇A.6.500000B.6C.5.500000D.6.000000.已知x=3,y=2,則表達式x*=y+8的值為( )。A.3 B.2C.30D.10.。若a為int類型,且其值為3,則執(zhí)行完表達式a+=a-=a*a后,a的值是()〇A.-3B.9C.-12D.6.已知ch是字符型變量,下面不正確的賦值語句是()〇A.chゴboy'; B.ch='、〇'; C,ch=98D.ch='W;.執(zhí)行下列程序片段時運行結(jié)果是()〇intx=13,y=5;printf(u%d,,,x%=(y/=2));A.3 B.2 C.lD.O.。假設所有變量均為整型,且num=7,sum=7;則表達式sum=num++/sum++/++num執(zhí)行后的值為( )〇A.7B.8C.9D.10.設x,i,j,k都是int型變量,表達式x=(i=4,j=16,k=32)計算后,x的值為()〇A.4 B.16 C.32 D.表達式不正確.?執(zhí)行下列程序片段時運行結(jié)果是()〇intx=5,y;y=2+(x+=x++,x+8,++x);printf("%d",y);A.13 B.14 C.15 D.16二、填空題.C語言中的標識符只能由 字母、數(shù)字和下劃線 三種字符組成,且第一個字符必須是字母或ド劃線 。.在C語言中的實型變量分為單精度實型float和雙精度實型double兩種類型。.表達式m%=3+n等價于_m=m%(3+n)〇.若有定義inta=5,n=2;則執(zhí)行表達式a%二(n%=2)+1后a的值是 〇〇.如果a=3,b=O,c=-l,以表達式(a+c)||b&&c的結(jié)果為 1〇.。設a=2zb=3/x=3.5/y=2.5/!4lJ(float)(a+b)/2+(int)x%(int)y的結(jié)果為3.5〇.。設inta;floatf;doublei;則表達式10+W+i*f值的數(shù)據(jù)類型是 double.假設所有變量均為整型,則表達式(a=2,b=5,a++,b++,a+b)的值為 9 0三、程序分析題1.以下程序的運行結(jié)果是:Ja+b)*3=66/〇#include<stdio.h>intmain(){inta,b,s;a=4;b=18;s=(a4-b)*3;printf("(a+b)*3=%d\n”,s);return0;).以下程序的運行結(jié)果是:—8,9,4,17/0#include<stdio.h>intmain(){inti,j,m,n;i=6;j=9;m=++i-3;n=j+(++i);printf("%d,%d,%d,%d\n”,i,j,m,n);return0;).數(shù)字字符。的ASCII值為48,以下程序的運行結(jié)果是:—22/〇#include<stdio.h>intmain(){chara=T,b='2';printf("%c”,b++);printf("%d\n”,b-a);return0;.以下程序的運行結(jié)果是:2,1/〇#include<stdio.h>intmain(){inta,b,d=25;a=d/10%9;b=a&&(-l);printf("%d,%d\n”,a,b);return0;).?以下程序的運行結(jié)果是:—b=3=#include<stdio.h>intmain(){inta,b;printf(fc4b=%dM,(a=3,a+5,a++));return0;)四、程序填空題.?輸入2個整數(shù)a,b,不通過增加變量的方法實現(xiàn)a,b交換。#include<stdio.h>intmain(){int_a,b;printf("entera,b:“);scanf("%d,%d”,&a,&b);a=a+b;b=a-b;a=a-b;printf(44a=%d,b=%d,,,a,b);return0;).計算求(2x+3)/6的值。#include<stdio.h>intmain(){intx=10,y;y=_(2*x+3)/6;printf("y=%d\n”,_y);return0;

五、程序設計題1.輸入一個三位數(shù),將該數(shù)逆序輸出。如,輸入123,則輸出3212.編寫程序,把560分鐘換算成用小時和分鐘表示,然后進行輸出。1.#include<stdio.h>intmain()1.#include<stdio.h>intmain(){intn,ge,shi,bai;scanf("%d'',&n);ge=n%10;shi=n/10%10;bai=n/100;n=ge*100+shi*10+bai;printf(44%d\nM,n);return0;intmain(){intx,y;x=560/60;y=560%60;prin情(“560分鐘為%d小時%d分鐘\n”,x,y);return0;)第3章順序結(jié)構(gòu)程序設計本章導學一、教學目標.了解C語句的分類。.掌握各種類型數(shù)據(jù)的格式化輸入/輸出方法。.掌握字符數(shù)據(jù)的非格式化輸入/輸出方法。4,理解C語言順序執(zhí)行過程。二、知識要點.C語占語句C語言語句可分為5類:控制語句、函數(shù)調(diào)用語句、表達式語句、空語句、復合語句。每條語句結(jié)束必須在末尾加號。(1)控制語句控制語句能實現(xiàn)對程序執(zhí)行過程的控制功能,C語言中的控制語句包含9種:①分支結(jié)構(gòu)語句:if()~else條件語句;switchい開關(guān)語句(多分支結(jié)構(gòu));②循環(huán)結(jié)構(gòu)語句:for()~循環(huán)語句;while()~循環(huán)語句(當型);do~while();循環(huán)語句(直到型);③其它語句:break間斷語句;continue繼續(xù)語句;return返回語句;goto轉(zhuǎn)向語句(不建議使用)。(2)函數(shù)調(diào)用語句由?一個函數(shù)調(diào)用加―一個分號構(gòu)成?個語句。如:printf("ThisisaCstatement");。(3)表達式語句由一個表達式加一個分號構(gòu)成一個語句。如:y=x+36;o(4)空語句由一個分號構(gòu)成。空語句可用作程序轉(zhuǎn)向點和什么也不做的循環(huán)體。如:while(i<=ll);o(5)復合語句使用{}括起來的多條語句并看成一條語句,稱為復合語句。2,輸入語句接收用戶輸入數(shù)據(jù)的語句,稱為輸入語句。C語言本身不提供輸入語句,輸入功能是通過庫函數(shù)實現(xiàn)的。常見的輸入函數(shù)有:格式輸入函數(shù)scanf(),字符輸入語句getchar()。(1)格式輸入函數(shù)scanf(格式控制,地址列表);格式輸入函數(shù)適用于各種數(shù)據(jù)類型數(shù)據(jù)的輸入操作?!案袷娇刂啤眳?shù)是ー個字符串,字符串中的普通字符原樣輸入,數(shù)據(jù)格式由格式字符控制,表3-1列出了常用的scanf格式字符。“地址列表”為接收輸入的變量地址。輸入時格式控制字符串中的普通字符原樣輸入,格式字符順序?qū)刂妨斜碇械淖兞?。?scanf("a=%f,b=%f,c=%f\&a,&b,&c);,輸入格式形如a=1.2,b=3.4,c=5.6,輸入的三個值分別傳給變量a,b,c。表3-1常用scanf格式字符字符含義d以有符號的1?進制形式輸入整數(shù)U以無符號的十進制形式輸入整數(shù)〇以ハ進制無符號輸入整數(shù)X以十六進制無符號輸入整數(shù)f以小數(shù)或指數(shù)形式輸入實數(shù)C輸入單一字符S輸入一個字符串1用于輸入長數(shù)整型數(shù)據(jù)(用%ld,%lo,%lx)以及double(用%If或%le)m(m是一個正整數(shù))用于指定輸入數(shù)據(jù)所占寬度(列表)為m*表示該輸入項在讀入后不賦給相應的變量例:輸入三個數(shù),分別為65、32、56.7并按字符格式、整型格式及帶兩位小數(shù)的實型格式輸出。#include<stdio.h>intmain(){inta,b;floatc;scanf(l4a=%d,b=%d,c=%f,,&a,&b,&c);printf("a=%c,b=%d,c=%.2F',a,b,c);return0;}輸入形式:a=65,b=32,c=56.7運行結(jié)果:a=A,b=32,c=56.70(2)字符輸入函數(shù)getchar();字符輸入函數(shù)用于輸入ー個字符。如:c=getchar();3.輸出語句將數(shù)據(jù)顯示到屏幕上的語句,稱為輸出語句。C語言本身不提供輸出語句,輸出功能是通過庫函數(shù)實現(xiàn)的。常見的輸出函數(shù)有:格式輸出函數(shù)printf(),字符輸出函數(shù)putchar()。(1)格式輸出函數(shù)printf(格式控制,輸出列表);格式輸出函數(shù)適用于各種數(shù)據(jù)類型數(shù)據(jù)的輸出操作。其中格式控制可分解為“格式”、“最小輸出寬度”、“?精度”、“長度”、“格式字符”五個部分,“格式字符”參數(shù)與scanf基本相同?!拜敵隽斜怼笨梢允浅A俊⒆兞?、或表達式。使用格式輸出函數(shù)時,格式控制字符中的普通字符原樣輸出,格式字符順序?qū)敵隽斜碇械淖兞俊"俑袷?。格式有四種?!?”表示結(jié)果左對齊,右邊補空格,省略時表示結(jié)果右對齊,左邊補空格;“+”表示輸出符號(正號或負號);“空格”表示輸出時正號則為空格,負號則冠以負號;“#”表示。類加前綴。,x類加前綴Ox,e,g,f類,結(jié)果有小數(shù)時オ給出小數(shù)點。②最小輸出寬度。規(guī)定輸出的最小寬度為m位,不夠m位補空格。③.精度。對于實數(shù),表示小數(shù)的位數(shù),如果大于所定義的精度數(shù),則截取超出部分;對于字符串,表示截取字符串的前n個字符。④長度。有h(短整型)和1(長整型)兩種。⑤格式字符。與scanf()函數(shù)的格式字符相同。有d或i(有符號十進制)、〇(無符號ハ進制)、x或X(無符號十六進制)、u(無符號十進制)、f(小數(shù)形式輸出單,雙精度實數(shù))、e或E(指數(shù)形式輸出單/雙精度實數(shù))、g或G(從%f和%e中選擇較短寬度輸出)、c(輸出字符)、s(輸出字符串)例;#include<stdio.h>intmain(){inta,b;floatc;a=65,b=32,c=56.7;printf("a=%c,b=%d,c=%5.2F'a,b,c);return0;}運行結(jié)果:a=A,b=32,c=56.70(2)字符輸出函數(shù)putchar(c);字符輸出函數(shù)適用于字符型數(shù)據(jù)的輸出操作。其中c為ー個字符類型的常量或變量;ー個putchar函數(shù)只能輸出ー個字符?;A實驗ー、程序分析.以下程序若輸入則輸入格式為:_cl=a―;運行結(jié)果為:_a,A/〇#include<stdio.h>intmain(){charcl,c2;scanf("c1=%c'',&c1);c2=cl-32;printf("%c,%c\n”,cl,c2);return0;}.以下程序如果使得a的值為2、b的值為3,則輸入格式為:_a=2,b=3_:運行結(jié)果為:-2,3/_。#include<stdio.h>intmain(){inta,b;scanf(ita=%d,b=%d,\&a,&b);printf(t4%d,%d\n”,a,b);return0;).以下程序若輸入12.3、7.6、1.1,則輸入格式為:」_:運行結(jié)果為:_aver=7.00 〇#include<stdio.h>intmain(){floata,b,c,d;scanfC4%f%f%f\&a,&b,&c);d=(a+b+c)/3;printf("aveu%.2ド,d);return0;)二、程序填空.輸入ー個四位整數(shù),求各位數(shù)字之和(如1234,則結(jié)果為1+2+3+4=10)。若輸入3562,則塔行結(jié)果為: 3+5+6+2=16/〇#include<stdio.h>intmain(){intn,a,b,c,d,m;scanf("%d”,&n);a=n%10;b=(n/10)%10;c=(n/100)%10;d=_n/1000;m=_a+b+c+d;printf("%d+%d+%d+%d二%d\nエd,c,b,a,m);return0;.給定一個華氏法表示的溫度值,將其轉(zhuǎn)換為攝氏法表示的溫度,轉(zhuǎn)換公式為。=京f-32)則運行結(jié)果為:_f=64.00,c=17.78/ー。#include<stdio.h>intmain(){floatf,c;f=64.0;c=_(f-32)*5.0/9,0;printfC4f=%.2f,c=%5.2f\n,,,f,c);return0;)三、程序改錯1.分析以下程序段,找出錯誤并改正。行號源程序12345678#include<stdio.h>main(){inti;floatk;scanfCti=%d,,,i);k=3.12*i;printf("%.2f\n",k);return0;)找錯錯誤在 4行應改為:scanfC為%d”,&i);調(diào)試正確后的運行結(jié)果輸入數(shù)據(jù):i=17 運行結(jié)果:53.04/2.分析以下程序段,找出錯誤并改正。行號源程序1#include<stdio.h>2main()3{chara;intb;floatc;doubled;4scanf(,4%c,%d,%f,%lf',&a,&b,&c,&d);5putchar(a\n);6printf(44%d,%0.2f,%.21f\n,,,b,c,d);78return0;)找錯錯誤在 5行應改為:putchar(a);putchar("\n”);調(diào)試正確后的運行結(jié)果輸入數(shù)據(jù):A,19,12.3,10.98運行結(jié)果:AZ19,12.30,10.98四、程序設計1.對輸入的字符進行加密,加密規(guī)則為“輸入4個字符,將每個字符加4后轉(zhuǎn)換成加密字符”,如輸入“Ab2c”則加密后的字符序列為“Ef6g”。#include<stdio.h>intmain(){charcl,c2,c3,c4;scanfC4%c%c%c%cM,&cI,&c2,&c3,&c4);cl+=4;c2+=4;c3+=4;c4+=4;printf(44%c%c%c%c\n”,cl,c2,c3,c4);return0;3.3拓展實驗ー、程序分析.。以下程序若輸入3.4、12.0、8.9,則輸入格式為:3.4,12.0,8.9,運行結(jié)果為:7.20/。#include<stdio.h>#include<math.h>intmain(){floata,b,c;floats,area;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);return0;.以下程序若輸入C和2,則運行結(jié)果分別為:_F和5〇#include<stdio.h>intmain(){charc1;intc2=0;cl=getchar();c2=cl+3;putchar(’ヽ");putchar(c2);putchar(V);return0;}二、程序填空.。以下程序?qū)崿F(xiàn)按由大到小順序輸出任意兩個整數(shù)。若輸入3562,則運行結(jié)果為:_62,35#include<stdio.h>intmain(){intm,n;scanf("%d%d”,_&m,&n);n>=m?printfC<%d,%d\n,\n,m):_printf("%d,%d\n”,m,n);return0;).以下程序?qū)崿F(xiàn)輸入任意兩個整數(shù),完成加、減、乘、除、求余操作并運行結(jié)果。若輸入29、18,則運行結(jié)果為:一29+18=47,29-18=11,29*18=522,2%18=1,29%18=11ー。#include<stdio.h>intmain(){intx,y;printf("請輸入x,y的值:");scanf("%d%d”,&x,&y);printf("%d+%d=%d;',_x,y,x+y);printf("%d-%d=%d「,_x,y,x-y);printf("%d*%d=%d,‘',_x,y,x*y);printf("%d/%d=%d,”,_x,y,x/y);printf("%d%%%d二%d”,_x,y,x%y);return0;

三、程序改錯1.分析以下程序段,找出錯誤并改正。行號源程序12345678#include<stdio.h>main();{chari;intj;scanfCti=%d,j=%d,,,&i,&j);j=i+j/2;printff*%c%c\n”,i,j);return0;)找錯錯誤在 2行應改為:main()調(diào)試正確后的運行結(jié)果輸入數(shù)據(jù):i=65,j=5運行結(jié)果:AC2.分析以下程序段,找出錯誤并改正。行號源程序123456789#include<stdio.h>#include<math.h>#definepi=3.1416main(){floatr;scanf("r=%f",&r);printf(44%.2f,%.21f\nM,pi*pow(r,2),2pi*r);return0;)找錯錯誤在 3,7行應改為:#definepi3.1416printf("%.2f,%,21f\n'',pi*pow(r,2),2*pi*r);調(diào)試正確后的運行結(jié)果輸入數(shù)據(jù):r=2r=3運行結(jié)果:12.57,12.57/28.27,18.85/

四、程序設計.輸入圓的半徑,輸出該圓的周長和面積,結(jié)果保留2位小數(shù)。.。求ax2+bx+c的根,a、b、c從鍵盤輸入,結(jié)果保留2位小數(shù)。1.#include<stdio.h>intmain()1.#include<stdio.h>intmain(){floatr,s,area;scanf("%F',&r);s=2*3.14*r;area=3.14*r*r;printf("周長為%.2f,面積為%.2f\n”,r,area);return0;#include<math.h>intmain(){floata,b,c,x1,x2,disc,p,q;scanfC4%f%f%f;&a,&b,&c);disc=sqrt(b*b-4*a*c);p=-b/2/a;q=disc/2/a;xl=p+q;x2=p-q;printf(44xl=%.2f,x2=%.2f\n,,,x1,x2);return0;)3.4習題ー、選擇題.以下4個選項中,不能看作一條語句的是( )。A.{;}B.a=O,b=O,c=O;C.if(a>0);D.if(b==O)m=l;n=2;.以下敘述中錯誤的是( )。A.C語句必須以分號結(jié)束B.復合語句在語法上被看作一條語句C,空語句出現(xiàn)在任何位置都不會影響程序運行D.賦值表達式末尾加分號就構(gòu)成賦值語句.。已有如下定義和輸入語句,若要求al,a2,cl,c2的值分別為10,20,A,B,當從第一列開始輸入數(shù)據(jù)時,正確的數(shù)據(jù)輸入方式是( )。intal,a2;charcl,c2;scanf("%d%c%d%c”,&a1,&c1,&a2,&c2);A.10A20B/B.10A20B/C.10A20B/D.10A20B/.有輸入語句:scanf("a=%d,b=%d,c=%d”,&a,&b,&c);為使變量a的值為1,b的值為3,c的值為2.則正確的數(shù)據(jù)輸入方式是( )。.132/B.1,3,2/C.a=lb=3c=2/D.a=l,b=3,c=2/.若定義x為double型變量,則能正確輸入x值的語句是( )。A.scanf("%ド,x); B.scanf("%ド,&x);C.scanf("%l「',&x); D.scanf("%5.1ド,&x);.已知i,j,k為int型變量,若從鍵盤輸入:1,2,女回車〉,以下選項中正確的輸入語句是( )。A.scanf(“%2d%2d%2d”,&i,&j,&k); B.scanf("%d_%d_%d”,&i,&j,&k);C.scanf("%d,%d,%d'',&i,&j,&k); D.scanf("i=%d,j=%d,k=%d”,&i,&j,&k);.。若運行時輸入:12345678/,則下列程序運行結(jié)果為( )。inta,b;scanf(“%2d%2d”,&a,&b);printf("%d\n",a+b);A.46B.579C.5690D,出錯.以下說法正確的是( )。A,輸入項可以為ー實型常量,如scanf("%仔,3.5);B.只有格式控制,沒有輸入項,也能進行正確輸入,如scanf("a=%d,b=%d");C,當輸入一個實型數(shù)據(jù)時,格式控制部分應規(guī)定小數(shù)點后的位數(shù),如scanf(“%4.2ド,&り;D.當輸入數(shù)據(jù)時,必須指明變量的地址,如scanf("%『,&f);.〇以下程序若輸入:12〈回車〉,運行結(jié)果是( )。#include<stdio.h>intmain(){chara,b;intn,m;a=getchar();b=getchar();n=a-,0,;m=n*l0+(b-'O');printf(4<%d\n,,,m);return0;)A.112B.12C.120D.出錯.。以下程序的運行結(jié)果是( )。#include<stdio.h>intmain(){intx=102,y=012;printf("%2d,%2d”,x,y);return0;}A.10,01 B.002,12 C.102,10 D.02,10ll.Oprintf函數(shù)中用到格式符%ms,其中數(shù)字m表示輸出的字符串占的總列數(shù)。如果m為負整數(shù),則輸出方式為( )。A,從左起輸出該字串,當指定列數(shù)大于實際列數(shù)時右補空格B,按原字符長從左向右全部輸出C,右對齊輸出該字串,當指定列數(shù)大于實際列數(shù)時左補空格D.輸出錯誤信息12.。設有如下程序段:intx=17,y=18,z=19;printf("%d\n”,(x,y,++z));則以下敘述正確的是()〇A.輸出語句中格式說明的個數(shù)少于輸出項的個數(shù),不能正確輸出B,運行時產(chǎn)生出錯信息C.輸出值為17,18,20D.輸出值為2013.有以下程序#include<stdio.h>intmain(){charal='M',a2="m';printf(u%c\n,\(al,a2));return0;TOC\o"1-5"\h\z}以下敘述中正確的是( )〇A.程序輸出大寫字母M B,程序輸出小寫字母mC.格式說明符不足,編譯出錯 D,程序運行時出錯14.putchar()函數(shù)可以向終端輸出ー個( )〇A.整型變量表達式值 B.實型變量值C,字符串 D.字符或字符型變量值60以下程序若輸入:123〈回車>45678V回車〉,則運行結(jié)果是( )。#include<stdio.h>intmain(){chara,b,c,d,e,f;scanf(t4%c%c%c%c,\&a,&b,&c,&d);e=getchar();f=getchar();putchar(a);putchar(b);printfCt%c%c\n,,,e,f);return0;)A.1267 B.1256 C.1278 D.1245二、填空題.復合語句是用ー對大括號界定的語句塊。.printf函數(shù)和scanf函數(shù)的格式說明都使用ー%字符開始。.在C語言中,輸入操作是由庫函數(shù)一scanf完成,輸出操作是由庫函數(shù)一printf完成。.在C語言中,字符輸出是由庫函數(shù)一putchar完成,字符輸入是由庫函數(shù)_getchar完成。.字符輸出函數(shù)putchar每次輸出」ー個字符。三、程序分析題1.0用下面的scanf函數(shù)輸入數(shù)據(jù),使a=3,b=7,x=8.5,y=71.82,cl='A',c2="a',則在鍵盤輸入格式為:_a=3b=78.57.182elAa。#include<stdio.h>intmain(){inta,b;floatx,y;charcl,c2;scanf("a=%db=%dM,&a,&b);scanfC4%f%e",&x,&y);scanf("%c%c,,,&cl,&c2);printf(44%d,%d,%f,%f,%c,%c,,,a,b,x,y,cl,c2);return0;}.以下程序的運行結(jié)果是_a=12345,b=-1.98e+002,c=6,5〇/〇#include<stdio.h>intmain(){inta=12345;floatb=-198.345,c=6.5;printfCa=%4d,b=%-l0.2e,c=%6.2f\nM,a,b,c);return0;).以下程序的運行結(jié)果是x=lv=2*sum*=3/10Squaredis:100Z。#include<stdio.h>intmain(){intx=l,y=2;printf("x=%dy=%d*sum*=%d\n”,x,y,x+y);printf("10Squaredis:((1)10return0;(2) 10j(3)56.100000J4.以下程序運行結(jié)果是(4) 3.141600#include<stdio.h>intmain(){intx=10;floatpi=3.1416;printfCXl)%d\n,,,x);printf("(2)%6d\n”,x);printf("⑶%f\n,\56.1);printf("(4)%-pi);return0;)5.。以下程序若輸入100/,則運行結(jié)果是yes0#include<stdio.h>intmain(){inta;scanf("%d”,&a);printf("%s”,(a%2!=〇)?"No'T'Yes");)四、程序填空題.以下程序?qū)崿F(xiàn)的功能是輸入ー個字符,輸出該字符的后4位,請將程序補充完整。#include<stdio.h>intmain(){intcl;cl=getchar();putchar(_c1+4);return0;).以下程序的功能是輸出si,x,y的值,保留原小數(shù)位數(shù),請將程序補充完整。#include<stdio.h>intmain(){floatx=655.35;doubley=765.4271;charsl='c';printf(t4_%c,%.2f,%.41f_”,sl,x,y);return0;).以下程序是使用“*”在屏幕上顯示ー個C,請將程序補充完整。include“stdio.h"intmain(){ printfC'HelloC-world!\nM);printf("_****\n");printf(44*\rT);printfC4*\n");printf(44****\n”);).要求按照以下形式輸入3個整數(shù)并完成計算,請將程序補充完整。從鍵盤輸入:a=l3,b=14,c=25〈回車〉#include<stdio.h>intmain(){inta,b,c;scanf("—a=%d,b=%d,c=%d",&a,&b,&c);printf("%d\n”,a+b*c);)五、程序設計題1.編寫程序,輸入一個人三門課的成績,輸出其平均成績。1.#include<stdio.h>intmain(){floatxl,x2,x3,avg;scanfCfc%f%f%f;&x1,&x2,&x3);avg=(xl-i-x2+x3)/3;printf(4fcavg=%f\n,\avg);return0;)第4章選擇結(jié)構(gòu)程序設計本章導學ー、教學目標.掌握關(guān)系運算符和邏輯運算符。.理解C語

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論