2023年國家計算機二級C語言考試復(fù)習(xí)知識點_第1頁
2023年國家計算機二級C語言考試復(fù)習(xí)知識點_第2頁
2023年國家計算機二級C語言考試復(fù)習(xí)知識點_第3頁
2023年國家計算機二級C語言考試復(fù)習(xí)知識點_第4頁
2023年國家計算機二級C語言考試復(fù)習(xí)知識點_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本文由xueping1206奉獻doc文檔也許在WAP端瀏覽體驗不佳。建議您優(yōu)先選擇TXT,或下載源文獻到本機查看。第一章C語言基礎(chǔ)知識一.全國計算機等級考試問答(NationalComputerRankExaminat(yī)ion)全國計算機等級考試(簡稱NCRE)是由教育部考試中心舉辦,用于測試應(yīng)試人員計算機應(yīng)用知識與能力的等級水平考試。隨著計算機技術(shù)在我國各個領(lǐng)域的推廣、普及,越來越多的人開始學(xué)習(xí)計算機知識,許多用人部門已將具有一定的計算機知識與能力作為考核和錄用工作人員的標準之一。因此,教育部決定舉辦全國計算機等級考試,其目的在于推動計算機知識的普及,促進計算機技術(shù)的推廣應(yīng)用,以適應(yīng)社會主義經(jīng)濟建設(shè)的需要,為用人部門錄用和考核工作人員服務(wù)。目前,全國計算機等級考試正日趨成為繼高考后全國第二大考試,特別是計算機二級證書是計算機等級考試證書中用得最廣泛的證書,它已和英語四六級同樣成為社會用人單位對大學(xué)生的必備規(guī)定之一。(一)考試性質(zhì)和目的1、什么是全國計算機等級考試?全國計算機等級考試(Nat(yī)ionalComputerRankExaminat(yī)ion,簡稱NCRE),是經(jīng)原國家教育委員會(現(xiàn)教育部)批準,由教育部考試中心主辦,面向社會,用于考察應(yīng)試人員計算機應(yīng)用知識與能力的全國性計算機水平考試體系。2、為什么要舉辦NCRE?計算機技術(shù)的應(yīng)用在我國各個領(lǐng)域發(fā)展迅速,為了適應(yīng)知識經(jīng)濟和信息產(chǎn)業(yè)發(fā)展的需要,操作和應(yīng)用計算機已成為人們必須掌握的一種基本技能。許多單位部門已把掌握一定的計算機知識和應(yīng)用技能作為干部錄用、職務(wù)晉升、職稱評估、上崗資格的重要依據(jù)之一。鑒于社會的客觀需求,經(jīng)原國家教委批準,原國家教委考試中心于1994年面向社會推出了NCRE,其目的在于以考促學(xué),向社會推廣和普及計算機知識,也為用人部門錄用和考核工作人員時提供一個統(tǒng)一、客觀、公正的標準。(二)報考條件與報考對象1、誰可以報名參與考試?考生不受年齡、職業(yè)、學(xué)歷等背景的限制,任何人均可根據(jù)自己學(xué)習(xí)和使用計算機的實際情況,選考不同等級的考試。考生一次只能報考一個等級(含筆試和上機考試)的考試。假如一個級別中有不同類別,考生只能選擇其中一類。考生一次考試只能在一個考點報名??忌梢圆粎⑴c考前培訓(xùn),直接報名參與考試。(三)報名及考試時間安排1、NCRE采用什么考試形式?考試時間如何規(guī)定?考試采用由全國統(tǒng)一命題,統(tǒng)一考試時間,紙筆考試和上機操作考試相結(jié)合的形式。紙筆考試中題型以選擇題、填空題為主,其中四級具有論述題。紙筆考試時間:二級C90分鐘、三級、四級為120分鐘(四級只考筆試)。上機操作考試時間:二級C90分鐘、三級60分鐘,一級實行無紙化的上機考試,時間為90分鐘。2、NCRE每年考幾次?各次考試是什么日期?NCRE每年開考兩次,上半年開考一、二、三級,下半年開考一、二、三、四級。上半年考試時間為4月第二個星期六上午(筆試),下半年考試時間為9月倒數(shù)第二個星期六上午(筆試),上機考試從筆試的當天下午開始。上機考試期限為五天,由考點根據(jù)考生數(shù)量和設(shè)備情況具體安排。3、如何報名?筆試和上機成績只有單項合格有何規(guī)定?每次考試報名的具體時間由各省(自治區(qū)、直轄市)級承辦機構(gòu)規(guī)定。考生按照有關(guān)規(guī)定到就近考點報名。考生可攜帶身份證到就近考點報名。沒有身份證的未成年人,可憑戶口本,現(xiàn)役軍人憑軍人身份證件報名。上次考試的筆試和上機考試僅其中一項成績合格的,下次考試報名時應(yīng)出具上次考試成績單,成績合格項可以免考,只參與未通過項的考試。(五)考生報名繳費(四)考試等級劃分1、NCRE等級如何構(gòu)成?重要考核什么能力?全國計算機等級考試目前共設(shè)立四個等級:一級:考核微型計算機基礎(chǔ)知識和使用辦公軟件及因特網(wǎng)(Internet)的基本技能。2023年下半年考試科目:一級MS-OFFICE、一級WPS、一級B二級:考核計算機基礎(chǔ)知識和使用一種高級計算機語言或數(shù)據(jù)庫管理軟件編寫程序以及上機調(diào)試的基本技能。2023年下半年考試科目:編程類:VisualBasic、C、C++、Java,數(shù)據(jù)庫類:FoxPro、Access。基礎(chǔ)知識涉及如下內(nèi)容:數(shù)據(jù)結(jié)構(gòu)與算法、程序設(shè)計方法、軟件工程、數(shù)據(jù)庫基礎(chǔ)、新增的考試科目:二級Delphi語言程序設(shè)計(VF,VB將近年???。三級:分為”PC技術(shù)”、“信息管理技術(shù)”、”數(shù)據(jù)庫技術(shù)”和”網(wǎng)絡(luò)技術(shù)”四個類別。技術(shù)”考核PC機硬件組成和Windows操作系統(tǒng)的基礎(chǔ)知識以及PC機使”PC用、管理、維護和應(yīng)用開發(fā)的基本技能;”信息管理技術(shù)”考核計算機信息管理應(yīng)用基礎(chǔ)知識及管理信息系統(tǒng)項目和辦公自動化系統(tǒng)項目開發(fā)、維護的基本技能;”數(shù)據(jù)庫技術(shù)”考核數(shù)據(jù)庫系統(tǒng)基礎(chǔ)知識及數(shù)據(jù)庫應(yīng)用系統(tǒng)項目開發(fā)和維護的基本技能;”網(wǎng)絡(luò)技術(shù)”考核計算機網(wǎng)絡(luò)基礎(chǔ)知識及計算機網(wǎng)絡(luò)應(yīng)用系統(tǒng)開發(fā)和管理的基本技能。四級:四級網(wǎng)絡(luò)工程師、四級數(shù)據(jù)庫工程師和四級軟件測試工程師、考核計算機專業(yè)基本知識以及計算機應(yīng)用項目的分析設(shè)計、組織實行的基本技能。2、是否必須通過第一(二、三)級,才干報考第二(三、四)級考試?沒有規(guī)定考生必須通過第一(二、三)級才干報考第二(三、四)級,考生可根據(jù)自己的實際情況選考不同的等級,但一次考試只能報考一個等級。考生一次考試只能在一個考點報名。(五)考試成績的計算1、如何計算成績?是否有合格證書?該考試筆試、上機考試實行百分制計分,筆試以百分制告知考生,上機以等級分數(shù)告知考生成績。等級分數(shù)分為”不及格”、”及格”、”良好”、”優(yōu)秀”四等。100-90分為”優(yōu)秀”,89-80分為”良好”,79-60分為”及格”,59-0分為”不及格”。筆試和上機考試成績均在”及格”以上者,由教育部考試中心發(fā)合格證書。筆試和上機考試成績均為”優(yōu)秀”的,合格證書上會注明”優(yōu)秀”字樣,證書上沒有良好,按及格對待。(六)證書獲得者應(yīng)具有的能力1、證書獲得者具有什么樣的能力?可以勝任什么工作?一級證書表白持有人具有計算機的基礎(chǔ)知識和初步應(yīng)用能力,掌握字、表解決、電子表格和演示文稿等辦公自動化(Office或WPS)軟件的使用及因特網(wǎng)(Internet)應(yīng)用的基本技能,具有從事機關(guān)、企事業(yè)單位文秘和辦公信息計算機化工作的能力。二級證書表白持有人具有計算機基礎(chǔ)知識和基本應(yīng)用能力,可以使用計算機高級語言編寫程序和調(diào)試程序,可以從事計算機程序的編制工作、初級計算機教學(xué)培訓(xùn)工作以及計算機公司的業(yè)務(wù)和營銷工作。二、虎賁教育計算機等級考試培訓(xùn)班問答1、全國計算機等級考試證書有有效期嗎?絕對沒有,等級考試證書是終身有效的,詳情可以訪問等級考試官方網(wǎng)站(.cn或.edu.cn)。(全國計算機等級考試教育部考試中心官方網(wǎng)站的回答原話是:“等級考試的證書是終身有效的,等級考試的大綱會在每2-3年更新一次,但更新并不影響以前證書的效力,因此有些人的‘等級考試證書2年左右就會失效’的說法是不對的的。)”2、我沒有參與一級考試,能參與二級考試嗎?全國計算機等級考試分為一至四級,考生可以任意選擇考試等級,不是非要先考一級再考二級。一般來說,一級重要適合社會在職人員考試,二級適合在校大學(xué)生考試,二級對大學(xué)生找工作也是最有用的。三級和四級可以作為進一步學(xué)習(xí)的考試。3、有的專業(yè)會開設(shè)相關(guān)課程,有必要參與培訓(xùn)嗎?二級考試所考核的內(nèi)容基本屬于基礎(chǔ)知識,早點學(xué)習(xí)可以早點打牢基礎(chǔ),以便于進一步學(xué)習(xí)計算機知識,從而在以后的競爭中處在有利地位。學(xué)校雖然有些專業(yè)的相關(guān)課程和計算機等級考試有一定的聯(lián)系,但都不具有針對性。并且新大綱推出后,不少內(nèi)容只有計算機專業(yè)才開設(shè)有關(guān)聯(lián)的課程,但也不具有針對性。新大綱推出后等級考試通過率再創(chuàng)新低,參與專業(yè)培訓(xùn)勢在必行。4、什么時候參與二級考試比較合算?一般來說,大一大二時學(xué)習(xí)和通過計算機二級考試比較劃算。大二時重要精力用來考英語四六級,大三時專業(yè)課比較緊張,大四已經(jīng)到了找工作的時候。相對來說,大一同學(xué)求知欲強、時間精力充沛、易于接受新東西,是學(xué)習(xí)的黃金時段,假如能較早的掌握必備的計算機知識,如大一就過國家二級,并掌握一些相關(guān)應(yīng)用知識,這樣就在競爭劇烈且殘酷的當今社會占盡先機,無疑在此后的學(xué)習(xí)中將以更為輕松的心態(tài),更為充沛的精力從事于你所鐘愛的事業(yè)中。5、二級考試可以有多種語言選擇,為什么要選擇C語言呢?C語言被譽為最有“錢”途的語言,具有廣泛的用途,受到社會的熱烈追捧,如Linux、Unix操作系統(tǒng)均由C語言編寫,Windows操作系統(tǒng)也有90%的代碼由C語言編寫。C語言語法和C++、Java、C#等類似,可以方便進一步學(xué)習(xí)。在許多計算機考試中,C語言是必考內(nèi)容,甚至是唯一考核內(nèi)容,如計算機三級、四級的上機考核部分,程序員、高級程序員的下午試卷等。6、二級考試什么時候報名?什么時候參與考試?二級考試每年考兩次,分別在上半年的4月份順數(shù)第二個周六和下半年的9月份倒數(shù)第二個周六。一般上半年4月份考試的報名時間從前一年11月中旬到第二年1月中旬均可。下半年9月份考試的報名時間一般從5月底到7月底。而一般在報名考試之前相關(guān)知識必須已經(jīng)學(xué)得差不多了,因此,假如參與4月份的考試必須在下半年10-1月份學(xué)習(xí),然后在寒假之后考前短暫的時間進行適當強化即可參與考試。參與9月份的考試必須在上半年3-6月份學(xué)習(xí),然后在暑假之后考前短暫的時間進行適當強化即可參與考試。7、參與培訓(xùn)是否會影響到我們的正常上課?我們的授課時間均選在業(yè)余時間,不會與學(xué)校的正常教學(xué)產(chǎn)生沖突。8、二級(C語言)考試的考試內(nèi)容是什么?根據(jù)新大綱的規(guī)定,二級(C語言)考試分為理論考試和上機考試兩部分,必須都通過考試才干算合格??荚噧?nèi)容分為C語言程序設(shè)計(順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、函數(shù)、指針、數(shù)組、字符串、編譯預(yù)解決、作用域、結(jié)構(gòu)體、共用體、文獻等)和公共基礎(chǔ)(數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計、軟件工程和數(shù)據(jù)庫)。9、虎賁IT培訓(xùn)有何特色?本中心和很多高校的網(wǎng)絡(luò)中心、計算機學(xué)院、現(xiàn)代教育中心有合作關(guān)系,立足于在校大學(xué)生,填補學(xué)校教育的局限性,相輔相成。除重要培訓(xùn)最有“錢”途的語言――C語言外,還注重引導(dǎo)學(xué)員,并向?qū)W員介紹國內(nèi)外IT業(yè)發(fā)展的各種動態(tài)和發(fā)展趨勢、社會上對IT人才各種需求信息等,力爭讓學(xué)員通過培訓(xùn)后有明確的學(xué)習(xí)目的,并掌握一套行之有效的方法,能舉一反三,獨立的走自己的道路。10、我沒有計算機基礎(chǔ),可以參與培訓(xùn)嗎?可以,無需任何基礎(chǔ)知識,完全從零開始,即使歷來沒有接觸過計算機,也可以學(xué)好!11、大幾參與培訓(xùn)比較好?一般大學(xué)的規(guī)劃是:“大一通過計算機二級、大二通過英語四六級、大三專業(yè)課及考研、大四找工作及實踐”,因此,一般大一最佳,特別是假如大一上學(xué)期參加學(xué)習(xí)準備考試,那么下學(xué)期4月份就可以參與考試了,假如大一下學(xué)期準備考試的話,那么要等到大二9月份才干考試,而大二已經(jīng)開始準備英語四六級等其他事宜了。所以大一上學(xué)期學(xué)習(xí)等級考試最佳,并且剛進大學(xué),時間精力充沛,進取心強,是學(xué)習(xí)的黃金時段。二.教學(xué)重點,難點分析1.C語言概述所占分值0-1分0-1分1-2分1-2分考核幾率20%30%60%80%專家點評簡樸識記簡樸識記簡樸,屬重點識記知識點簡樸,屬重點識記知識點知識點C語言概述C語言程序的構(gòu)成標記符常量變量2-3分100%難度適中,重點理解重點掌握注意:從幾年的試題分析看C語言的概述和程序的構(gòu)成合起來考試已經(jīng)是一個慣例了。2.運算符與表達式知識點C運算符簡介運算符的結(jié)合和優(yōu)先級所占分考核幾率值0-1分0-1分10%60%簡樸識記簡樸識記專家點評強制類型轉(zhuǎn)換運算符逗號運算符和逗號表達式基本的算術(shù)運算符算術(shù)表達式和運算符的賦值運算符和賦值表達式復(fù)合的賦值運算符賦值運算中的類型轉(zhuǎn)換位運算符和位運算0-1分0-1分1-2分1-2分2-4分1-2分0-1分0-1分30%40%100%100%100%100%80%75%80%簡樸識記簡樸,屬重點識記知識點簡樸,屬重點識記知識點難度適中,重點理解重點掌握難度適中,重點理解重點掌握簡樸,重點掌握重點理解偏難,不是重點偏難,不是重點偏難,屬重點識記知識點優(yōu)先級與結(jié)合、自增自減運算符2-3分三.教學(xué)講點1.C語言的基本構(gòu)成和格式#include“stdio.h”main(){inta,b,sum;/*定義變量*/a=10;/*把整數(shù)10賦值給變量a*/b=20;/*把整數(shù)20賦值給變量b*/sum=a+b;/*把兩數(shù)之和賦值給變量sum*/printf(“a=%d,b=%d,sum=%d\n”,a,b,sum);/*輸出計算結(jié)果*/}(1).C程序由函數(shù)組成,一個程序必須且只能有一個主函數(shù)(main()),C程序總是從主函數(shù)開始執(zhí)行,在主函數(shù)中結(jié)束。(2).定義函數(shù)時函數(shù)名后必須有一對小括號,函數(shù)體必須放在一對花括號內(nèi),在函數(shù)體中,函數(shù)體有兩個部分:定義部分和執(zhí)行部分。定義語句必須出現(xiàn)在執(zhí)行語句之前,我們先定義了a,b,sum,然后才給它們賦值。(3).C語言中每條語句都以分號“;”結(jié)束,分號時C語句的一部分。即使是程序的最后一個語句也不例外。分號是語句結(jié)束的標志。(4).一行可以寫多條語句,一條語句也可以分在多行上寫,但是,不能將一個整體分開。例如:int是錯誤的,而int對的。(5).C語言的注釋必須放在“/*”和“*/”之間,“/”和“*”之間不允許有空格?!?*”和“*/”之間不允許再插入“/*”或“*/”。注釋可以出現(xiàn)在程序中的任意位置。注釋部分不被執(zhí)行。(6).C語言程序書寫格式自由,語句可以從任一列開始書寫,一行內(nèi)可以寫多個語句。但是過于“自由”的程序書寫格式往往使人們很難讀懂程序,初學(xué)者應(yīng)當從一開始就養(yǎng)成好的習(xí)慣,是程序便于閱讀。2.標記符(1)標記符只能由字母、數(shù)字和下劃線組成。(2)標記符的第一個字符必須是字母或下劃線。(3)標記符的大小寫字母是有區(qū)別的,如abc和ABC是兩個完全不同的標記符。(3)標記符的分類:關(guān)鍵字:關(guān)鍵字是具有特定的含義的、專門用來說明C語言特定成分的一類標記符。具體的查閱附錄。預(yù)定義標記符:在C語言中它也有特定的含義。預(yù)定義標記符可以用位“用戶表標記符”使用,只是這將使這些標記符失去了本來的意義。用戶標記符:由用戶根據(jù)需要定義的標記符被成為用戶標記符。用戶標示符用來給變量、函數(shù)、數(shù)組或者指針等命名。3.C語言的數(shù)據(jù)類型3.1數(shù)據(jù)可以分為常量和變量。常量是指在程序執(zhí)行中不變的量,常量分為:整型常數(shù)、實型常數(shù)、字符常量、字符串常量。整型數(shù)據(jù):進制間的轉(zhuǎn)換3.11.二、八、十六進制轉(zhuǎn)為十進制規(guī)則:“按權(quán)相加”3.12.十進制轉(zhuǎn)為二、八、十六進制規(guī)則:整數(shù)部分:基數(shù)除取余,逆序排列小數(shù)部分:基數(shù)乘取整,順序排列3.13.二進制轉(zhuǎn)為八、十六進制規(guī)則:三(四)合一,按序相拼(整數(shù)部分,從右向左取,小數(shù)部分從左向右取,位數(shù)局限性補零)。3.14.八、十六進制轉(zhuǎn)為二進制規(guī)則:一分三(四),按序相拼3.2整型數(shù)據(jù)在內(nèi)存中的存放形式1字節(jié)=8位,1Byte=8bit字長:指CPU能同時解決的二進制位數(shù)。由CPU的型號而定。如:16位微機的字長就是16位或2字節(jié)。1GB=1024MB,1MB=1024KB,1KB=1024B:是計算機中信息表達B:表達字節(jié),字節(jié)是表達存儲容量的最小單位。位(bit)的最小單位。3.21.正整數(shù)在內(nèi)存中用“原碼”形式存放。(直接轉(zhuǎn)換為二進制即可)。如:50000000000000101二字節(jié)能存放的最大數(shù)是:327670111111111111111對帶符號數(shù),最高位是符號位,用0表達正,用1表達負。3.22.負整數(shù)在內(nèi)存中用“補碼”形式存放。取補碼的環(huán)節(jié):(1)忽略負號,求出原碼。。(2)將原碼按位取反(0、1互換)(3)在第二步的基礎(chǔ)上加1。如:取-5的補碼。(1)0000000000000101(2)1111111111111010(3)1111111111111011將補碼轉(zhuǎn)換成相應(yīng)的整數(shù)的環(huán)節(jié):(1)將補碼按位取反加1。(2)將環(huán)節(jié)1得到的二進制數(shù)轉(zhuǎn)換成十進制數(shù),然后加上負號即可。例如:1000000000000000按位取反加10111111111111111+11000000000000000轉(zhuǎn)換成十進制:1×215=32768加負號:-32768幾個特殊的帶符號整數(shù):0000-327681111327671111-13.23.無符號整數(shù):只有正整數(shù),沒有負整數(shù),最高位不表達符號位,每一位均參與轉(zhuǎn)換。二進制帶符號整數(shù)無符號整數(shù)1111-1655350000-3276832768例2-12:若有:inta=-1;unsignedb=65535;則printf(“%d,%u,%d,%u”,a,a,b,b);輸出結(jié)果是:-1,65535,-1,65535數(shù)據(jù)益出問題:例2-13:若有inta=32767;則a=a+1的結(jié)果是:-32768例2-14:若有unsignedb=65536;則b的值是:0分析:32767:11111+1000將000按照帶符號數(shù)轉(zhuǎn)為十進制為-3276865535:1111+11111111111111111+11000000000000000065536unsignedb=655536;而b屬于無符號整型,在內(nèi)存中只占兩字節(jié),所以只能涉及16位。標準C沒有具體規(guī)定規(guī)定各類型數(shù)據(jù)所占內(nèi)存的字節(jié)數(shù),現(xiàn)以這次考試標準viusalc++6.0為例,說明各類型變量所占的位數(shù)。類型shortintlong所占位所占字數(shù)163232節(jié)數(shù)2442unsignedintunsignedlongfloatdouble類型所占位所占字節(jié)數(shù)32323264數(shù)4448unsignedshort163.3實型數(shù)據(jù)(浮點數(shù))3.31.實型常量(1)小數(shù)形式:由數(shù)字和小數(shù)點組成,必須有小數(shù)點,小數(shù)點的某一側(cè)可以沒有數(shù)字。如:.23,123.876,123.(2)指數(shù)形式:用“e”或“E”后接一個整數(shù),表達以10為底的冪數(shù)。注意:“e”或“E”之前之后必須有數(shù)字,且之后的數(shù)字必須是整數(shù)。他們和前后的數(shù)字之間不能有空格。例如:例2-15:下列合法的常量是()。A.-32169B.0128C.0XDEFGD.13E0.5例2-16:下列合法的實型常量是()。(A)0Xff(B)124E(C)1.23E5.0(D)3.E2(E)1.25E+2(F).23e+023.32.實型變量單精度型float占4字節(jié)雙精度型double占8字節(jié)長雙精度longdouble占16字節(jié)(較少用)4.表達式與運算符4.1算術(shù)運算符及其表達式:+-*/%%:(求余運算)注意:(1)%兩邊必須是整型數(shù)據(jù)。12.0%3表達式是錯誤的。(2)求余(%)的方法是:忽略符號,求出余數(shù),再將所得余數(shù)的符號定為與被除數(shù)相同。例如:17%3結(jié)果是:217%-3結(jié)果是:2,-17%3結(jié)果是:-2,-17%-3結(jié)果是:-24.2強制類型轉(zhuǎn)換強制類型表達式:(類型名)表達式注意:類型名(表達式)這種形式是C++的強制類型表達方式。5.賦值運算符及其表達式5.1.賦值運算符=格式:變量名=表達式功能:將表達式的值賦給左邊的變量。注:(1)賦值運算符左邊只能是一個變量,不能是常量,也不能是表達式。a+b=34=3是非法的表達式a=6a+(b=3)都是合法的表達式a=b=20a=(b=10)/(c=2)都是合法的表達式(2)實型數(shù)據(jù)賦給整型變量時,小數(shù)部分被舍去,整型數(shù)據(jù)賦給實型變量時,系統(tǒng)自動將整型數(shù)據(jù)轉(zhuǎn)換為實型數(shù)據(jù)。例如:floata;intb;表達式a=10%3的值是1.0表達式b=a=10%3的值是15.2.復(fù)合賦值運算符及其表達式:+=-=*=/=%=&=|=^=>>=<<=例如:a+=3相稱于a=a+3,a/=b+4相稱a/=(b+4)或a=a/(b+4)例:若a=12,則執(zhí)行表達式a+=a-=a+a后a的值是多少?分析:a+=a-=(a+a)/*a的值是12*/a+=a-=24a+=a=a-24a+=a=-12a+=-12a=a+(-12)a=-24/*a的值是12*//*a的值是12*//*a的值是12*//*a的值是-12*//*a的值是-12*//*a的值是-24*/5.3.自增、自減運算符及其表達式++-注意:(1)只能用于變量,不能用于常量和表達式。如:6++(a+b)--都是錯誤的。(2)當它們用于變量名前時,表達式的值為變量的值加一或減一。當位于變量名后時,表達式的值為變量本來的值。不管位于變量名前還是變量名后,只要進行了自增、自減運算,變量的值都會在本來的基礎(chǔ)上加1或減1。如:a=3則a++表達式的值是3運算之后變量的值是4a=3則++a表達式的值是4之后變量的值是4a=3則a--表達式的值是3之后變量的值是2a=3則--a表達式的值是2之后變量的值是2(3)口訣:j=i++;這個表達式是先引用后增值。即:先把i的初始值給變量j,然后i再自加1。j=++i;這歌表達式是先增值后引用。即:i先自加1,然后再將我們自加后的值賦值給變量j。但是記住它們是一起執(zhí)行的,就是說:例如j=i++先引用后增值事實上是一起執(zhí)行的,它們之間不存在先后關(guān)系,我們只是位了好記才用到了上面的方法。老師在上課的時候先不要說,但是你們必須知道。j=i--,j=--i和上面j=i++,j=++i的方法是同樣。5.4逗號運算符及其表達式1.格式:表達式1,表達式2,…,表達式n注意:1.逗號表達式的值是整個逗號表達式中最后一個表達式的值。2.求值順序是從左到右依次求解。例如:a=(3,b=1)的值是1運算結(jié)束后a的值是1,b的值是1。四.相關(guān)試題1.2023年4月相關(guān)試題(11)以下敘述中對的的是A)C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面B)C程序書寫格式嚴格,規(guī)定一行內(nèi)只能寫一個語句C)C程序書寫格式自由,一個語句可以寫在多行上D)用C語言編寫的程序只能放在一個程序文獻中(12)以下選項中不合法的標記符是A)printB)FORC)&aD)_00(13)以下選項中不屬于字符常量的是A)'C'B)"C"C)'\xCC0'D)'\072'(14)設(shè)變量已對的定義并賦值,以下對的的表達式是A)x=y*5=x+zB)int(15.8%5)C)x=y+z+5,++yD)x=25%5.0填空(7)設(shè)變量已對的定義為整型,則表達式n=i=2,++i,i++的值為【7】。2.2023年9月相關(guān)試題(11)C語言源程序名的后綴是A).exeB).CC).objD).cp(12)可在C程序中用作用戶標記符的一組標記符是A)andB)DateC)HiD)case_2023y-m-dDr.TomBig1(13)以下選項中,合法的一組C語言數(shù)值常量是A)028B)12.C).177D)0x8A.5e-30Xa234e1.510,000-0xf4.5e00abc3.e5(14)以下敘述中對的的是A)C語言程序?qū)脑闯绦蛑械谝粋€函數(shù)開始執(zhí)行B)可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行C)C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行,在此結(jié)束D)main可作為用戶標記符,用以命名任意一個函數(shù)作為主函數(shù)(16)以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中對的的是A)均占4個字節(jié)B)根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C)由用戶自己定義D)由C語言編譯系統(tǒng)決定(17)若變量均已對的定義并賦值,以下合法的C語言賦值語句是A)x=y(tǒng)==5;B)x=n%2.5;C)x+n=i;D)x=5=4+1;3.2023年4月相關(guān)考題(12)下列敘述中錯誤的是(D)A)計算機不能直接執(zhí)行用C語言編寫的源程序B)C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文獻是一個二進制文獻C)后綴為.obj的文獻,經(jīng)連接程序生成后綴為.exe的文獻是一個二進制文獻D)后綴為.obj和.exe的二進制文獻都可以直接運營(13)按照C語言規(guī)定的用戶標記符命名規(guī)則,不能出現(xiàn)在標記符中的是(B)A)大寫字母B)連接符C)數(shù)字字符D)下劃線(14)以下敘述中錯誤的是(C)A)C語言是一種結(jié)構(gòu)化程序設(shè)計語言B)結(jié)構(gòu)化程序有順序、分支、循環(huán)三種基本結(jié)構(gòu)組成C)使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡樸問題D)結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法(15)對于一個正常運營的C程序,以下敘述中對的的是(A)A)程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束B)程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束C)程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束D)程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束(19)有以下程序,其中%u表達按無符號整數(shù)輸出(B)main(){unsignedintx=0xFFFF;/*x的初值為十六進制數(shù)*/printf(“%u\n”,x);}/*注意:x是占兩個字節(jié)*/程序運營后的輸出結(jié)果是A)-1B)65535C)32767D)0xFFFF第二章順序結(jié)構(gòu)一.教學(xué)重點、難點知識點C語句分類字符輸出函數(shù)putchar()字符輸入函數(shù)getchar()格式輸入函數(shù)printf()格式輸出函數(shù)scanf()所占分考核幾率專家點評值0-11-21-23-43-430%70%70%100%100%簡樸識記難度適中,重點掌握難度適中,重點掌握難度適中,重點理解重點掌握難度適中,重點理解重點掌握二.教學(xué)內(nèi)容1.語句C語句共分為5類:1.1控制語句1.2函數(shù)調(diào)用語句:printf(“thisisacstatement”;)1.3表達式語句每一個合法的表達式后加上分號(;)就構(gòu)成了表達式語句。++a;i+j;語句和表達式的區(qū)別:表達式有唯一擬定的值,而語句沒有值。1.4賦值語句格式:賦值表達式;i=1,j=2是逗號表達式i=1;j=2;是兩條賦值語句i++;i--;++i;--i;都是賦值語句等價于i=i+1;或i=i-1;1.5空語句:只有一個單獨的分號構(gòu)成的語句。如:;就是一條空語句。1.6復(fù)合語句:用一對{}將若干語句括起來構(gòu)成一條復(fù)合語句。2.輸入輸出語句在使用庫函數(shù)時必須先用預(yù)編譯命令#include<頭文獻名>或#include“頭文獻名”將相應(yīng)的頭文獻包含到源程序中。如:#include2.1.printf()函數(shù)格式:printf(“格式控制”,輸出列表);功能:按格式控制指定的格式輸出數(shù)據(jù)。注意:格式控制涉及以%開頭的“格式說明符”和原樣輸出的普通字符。如:printf(“a=%d,a+b=%d”,30,4+7);輸出結(jié)果是:a=30,a+b=11(1)d格式%d:按實際長度輸出十進制整數(shù)。%md:輸出占m列,若小于m列,左邊補空格,若大于m列,按實際輸出。%-md:輸出占m列,若小于m列,右邊補空格,若大于m列,按實際輸出。%ld:輸出長整型數(shù)據(jù),輸入輸出長整型數(shù)據(jù)時必須用該格式。例如:printf(“%d,%6d,%-6d,%ld”,386,1234,3456,12345L);輸出結(jié)果:386,1234,3456,12345printf(“%2d”,12345);輸出結(jié)果:12345(2)u格式%u:以無符號十進制形式輸出整數(shù)。printf(“%u”,-1);65535ptintf(“%u”,-32768);32768(3)o格式%o:以無符號八進制形式輸出整數(shù),不輸出前導(dǎo)符0。printf(“%d,%o”,-1,-1);-1,177777(4)x或X格式%x或%X以無符號十六進制形式輸出整數(shù)。不輸出前導(dǎo)符0x或0X,小寫對小寫,大寫對大寫。printf(“%d,%x,%X,%x”,-1,-1,0xabc,0XAbc);-1,ffff,ABC,abc注:若要輸出十六進制和八進制的前導(dǎo)符,則要用%#o和%#x、%#X格式。printf(“%#o,%#x,%#X”,-1,-1,0xaBc);0177777,0xffff,0XABC(5)c格式%c用來輸出一個字符,不輸出單引號定界符。%c和%d可以互相轉(zhuǎn)換。printf(“%c,%d”,’a’,’a’);a,97printf(“%c,%d”,100,100);d,100(6)s格式用來輸出一個字符串,不輸出雙引號和字符串結(jié)束符。%s:輸出字符串的有效字符。printf(“%s”,”china\0yunnan”);china%ms:輸出占m列,若小于m列,左邊補空格,大于m列,按實際輸出。printf(“%5s,%-5s,%2s”,”swfc”,”swfc”,”swfc”);swfc,swfc,swfc%m.ns:輸出占m列,只輸出字符串的左n個字符到m列的右端。如:printf(“%7.5s”,”yunnan”);yunna(7)f格式:按小數(shù)形式輸出實型數(shù)據(jù)。%f:默認輸出6位小數(shù)。如:printf(“%f,%f”,543.12,5.4312e+2);543.120230,543.120230%m.nf:輸出占m列,其中有n位小數(shù)。若超過m列,保證n位小數(shù)后按實際輸出。注意四舍五入問題。如:printf(“%7.3f,%-7.3f,%4.2f”,3.1415726,3.1415926,314.5926);3.142,3.142,314.59(8)e格式以指數(shù)形式輸出一個實數(shù)。小數(shù)點前只有一位非零數(shù),5位小數(shù),3位指數(shù)。如:printf(“%e,%e”,123.4,123.45e-7);234000e+002,1.234500e-005(9)g格式自動在%f和%e中選擇較短的一種輸出,對于小數(shù)部分不輸出無意義的0。如:printf(“%g,%g”,123.45,123.45e-2);123.45,1.2345printf(“%g”,.0);23e+08小結(jié):(1)%%表達輸出一個%。如:printf(“%%d=%d”,10,10);%d=10(2)除了x,e,g大小寫均可外,其它都只能小寫。如:printf(“%d=%D”,20,20);20=%D(3)輸出格式說明符所能操作的數(shù)據(jù)類型必須與輸出項的類型一致。如:printf(“%d”,1.234);/*犯錯*/2.2.scanf()函數(shù)格式:scanf(“格式控制”,地址列表);注意:(1)可指定數(shù)據(jù)所占的列數(shù),輸入后由系統(tǒng)自動截取相應(yīng)的位數(shù)。如:scanf(“%3d%2d”,&a,&b);若輸入:3863018則:a的值是:386b的值是:30若輸入:3863a的值是:386b的值是:3scanf(“%3c%2d”,&ch,&c);若輸入:3863018則:ch的值是:’3’b的值是:30(2)%*md:表達跳過m列不讀。如:scanf(“%*3d%3d%4d”,&a,&b);若輸入:123456則:a的值是:456b的值是:本來的值。(3)不能在scanf()函數(shù)中指定輸入數(shù)據(jù)的小數(shù)位數(shù)。如:scanf(“%7.5f”,&a);/*犯錯*/在scanf()函數(shù)中,輸入時普通字符原樣輸入。如:scanf(“a=%d,b=%d”,&a,&b);若要給a賦值5,b賦值10,對的的輸入是:a=5,b=10scanf(“%d*,%d#,%d”,&a,&b,&c);若要讓a,b,c分別得到1,2,3,對的的輸入是:1*,2#,3<回車>若兩個格式說明符之間沒有其它字符,則在輸入數(shù)據(jù)時,兩數(shù)據(jù)之間要用回車或空格分隔,回車或空格可以是多個。但是,%c格式除外。如:scanf(“%d%d”,&a,&b);若想讓a的值為5,b的值為10。則對的的輸入是:5空格10<回車>或5<回車>10<回車>或5空格空格空格10<回車>(6)多個%c格式之間沒有其它字符,仍然不能用回車或空格來分隔。如:scanf(“%c%c%c”,&a,&b,&c);若輸入:a空格b空格c<回車>a的值是’a’,b的值是空格,c的值是’b’。(7)格式說明符所能操作的數(shù)據(jù)類型必須與相應(yīng)變量的類型相同。如:inta;scanf(“%f”,&a);/*犯錯*/總結(jié):1.普通字符原樣輸入,原樣輸出。2.對于%d格式,指定寬度小于輸出寬度,原樣輸出。3.%#o,%#x,%#X表達要輸出八進制的前導(dǎo)符數(shù)字0,和十六進制的前導(dǎo)符0x,0X。4.%x,%X格式,小寫對小寫,大寫對大寫。5.%*md:表達跳過相應(yīng)的輸入項。6.注意進制間的轉(zhuǎn)換,以及無符號數(shù)和帶符號數(shù)之間的轉(zhuǎn)換。7.在scanf()函數(shù)中,給double類型變量輸入數(shù)據(jù)時,應(yīng)當使用%lf類型說明符,而輸出時,可以用%lf,也可以用%lf。三.試題分析1.2023年4月試題分析(16)有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCll十進制代碼為97,則執(zhí)行上述程序段后輸出結(jié)果是A)因變量類型與格式描述符的類型不匹配輸出無定值B)輸出項與格式描述符個數(shù)不符,輸出為零值或不定值C)a,97,12k=12D)a,97,k=122.2023年9月試題分析(15)若在定義語句:inta,b,c,*p=&c;之后,接著執(zhí)行以下選項中的語句,則能對的執(zhí)行的語句是A)scanf("%d",a,b,c);B)scanf("%d%d%d",a,b,c);C)scanf("%d",p);D)scanf("%d",&p);(18)有以下程序段intj;floaty;charname[50];scanf("%2d%f%s",&j,&y,name);當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為B)566.0C)7777.0D)566777.0A)55566.0填空(6)執(zhí)行以下程序時輸入1234567<CR>,則輸出結(jié)果是【6】。#includemain(){inta=1,b;scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b);}3.2023年4月試題分析(16)設(shè)變量均已對的定義,若要通過scan(“%d%c%d%c”,&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中對的的是(注:□代表空格字符)(D)A)10□X□20□Y〈回車〉B)10□X20□Y〈回車〉C)10□X〈回車〉D)10X〈回車〉20□Y〈回車〉20Y〈回車〉填空(6)執(zhí)行以下程序后的輸出結(jié)果是。main(){inta=10;a=(3*5,a+4);printf(“a=%d\n”,a);}第三章選擇結(jié)構(gòu)一.教學(xué)重點、難點知識點關(guān)系運算符及優(yōu)先順序關(guān)系表達式邏輯運算符及優(yōu)先級邏輯表達式if語句的幾種形式if語句的嵌套條件運算符switch語句語句標號goto所占分值0-10-11-21-21-21-20-12-40-11-2考核幾率40%50%50%50%100%100%100%100%10%10%專家點評簡樸識記簡樸,屬重點識記知識點簡樸識記簡樸,屬重點識記知識點簡樸識記難度適中,重點掌握難度適中,重點掌握簡樸,重點掌握重點理解偏難,不是重點簡樸識記二.教學(xué)內(nèi)容1.關(guān)系運算與邏輯運算1.1邏輯值真(非零值)假(零)1.2關(guān)系運算符及其表達式<<=>>===!=關(guān)系運算符優(yōu)先級別低于算術(shù)運算符,高于賦值運算符。(<<=>>=)優(yōu)先級別高于(==!=)如:a>b+c等價于a>(b+c)a==b<c等價于a==(b<c)a=b<c等價于a=(b<c)4==4表達式的值為“真”。4=4表達式不合法關(guān)系表達式的值只有1和0,其中1表達“真”表達“假”,0。1.3邏輯運算符及其表達式&&邏輯“與”||邏輯“或”!邏輯“非”優(yōu)先級別:》&&》||!運算規(guī)則:邏輯&&:遇假則假邏輯||:遇真則真邏輯!:真假互換邏輯表達式的值:1(真)、0(假)例如:3>4結(jié)果是:03&&4結(jié)果是:1!3&&4結(jié)果是:00||3結(jié)果是:1注意:在求解邏輯與(&&)表達式時,若&&運算符左邊表達式的值為0(假),則不再進行&&右邊表達式的運算,且將整個&&表達式的值定為0;在求解邏輯或(||)表達式時,若||左邊表達式的值為非0值(真),則不再進行||右邊表達式的運算,且將整個邏輯||表達式的值定為1(真)。2.if語句2.1.if語句格式:1)if(表達式)2)if(表達式)語句1;else語句2;語句1;稱為:全if單if注意:(1)if后的表達式必須用()括起,else后沒有表達式。(2)if和else都只能控制緊跟它的一條語句,若要控制多條語句,必須用一對{}括起構(gòu)成一條復(fù)合語句。2.2執(zhí)行方式:,若“真”,則執(zhí)2.21if語句的執(zhí)行方式:一方面判斷表達式的值是否為“真”行語句部分。假如表達式的值為“假”,則“跳過”語句部分執(zhí)行if語句后面的其它語句。2.22if-else語句的執(zhí)行方式:一方面判斷表達式的值是否為“真”,若“真”,則執(zhí)行語句部分。假如表達式的值為“假”,則執(zhí)行else語句后面的語句。例1:main(){intm=5;if(m++>5)printf(“m=%d”,m);elseprintf(“m=%d”,m--);}例2:main(){intm=5;if(++m>5)printf(“m=%d”,m);elseprintf(“m=%d\n”,m--);printf(“m=%d”,m);}2.3if語句的嵌套if(表達式1)if(表達式2)語句1;else語句2;elseif(表達式3)語句3;else語句4;else總是與前面最近的且未配對的if語句配對,組成一對if-else語句。if(表達式1)if(表達式2)語句1;elseif(表達式3)語句2;else語句3;第一個else語句有的同學(xué)會把它誤認為和第一個if配對,但是實際的情況是和第二個if語句配對,即:if(表達式1)if(表達式2)語句1;elseif(表達式3)語句2;語句3;else例1.請分析下列程序的輸出結(jié)果。main(){ints,t,a,b;sanf(“%d%d”,&a,&b);s=1;t=1;if(a>0)s=s+1;if(a>b)t=s+1;elseif(a==b)t=s;elset=2*s;printf(“%d\n”,t);}若運營時輸入510回車,則程序的執(zhí)行結(jié)果是?main(){ints,t,a,b;sanf(“%d%d”,&a,&b);s=1;t=1;if(a>0){s=s+1;if(a>b)t=s+1;}elseif(a==b)t=s;elset=2*s;printf(“%d\n”,t);}若運營時輸入510回車,則輸出結(jié)果是?例2.分析下列程序的輸出結(jié)果main(){inta=4,b=3,c=5,t=0;if(ab?a:b;相稱于:if(a>b)max=a;elsemax=b;a>b?a:c>d?c:d相稱于a>b?a:(c>d?c:d)注意:表達式1、2、3的值不規(guī)定具有相同的類型,最后結(jié)果的類型為表達式2、3中較高類型的一種。如:(x=6)>(y=5)?1:1.5表達式的值是1.0而不是1。4.switch語句格式:switch(表達式){case常量表達式1:語句1;break;case常量表達式2:語句2;break;…case常量表達式n:語句n;break;default:語句n+1;break;}說明:(1)switch、case、default、break都是關(guān)鍵字?;ɡㄌ柪锩娴恼Z句叫做switch語句體。Switch語句體中可以沒有break語句和default部分。(2)Switch語句的圓括號中表達式的值必須是整型或是字符型,不能為實型。case后的表達式可以是求得整型量的常量表達式,但是常量表達式中不能具有變量。(3)執(zhí)行Switch語句時,一方面計算Switch后圓括號的表達式的值,然后將這個值與語句體中case后的常量表達式的值相比較,假如某個常量表達式的值與之相等,則執(zhí)行該case后的語句塊;假如沒有任何一個常量表達式的值與之相等,則執(zhí)行default后的語句塊。(4)在執(zhí)行的時候假如碰到break語句,則跳出switch語句。假如執(zhí)行完一個case或者default語句塊后沒有碰到break,則繼續(xù)順序往下執(zhí)行,知道遇到break語句或者語句體被執(zhí)行完畢為止。(5)default最多只能有一個,通常出現(xiàn)在switch語句的最后部分,但也可以出現(xiàn)在case之間或所有的case之前。四.試題分析1.2023年4月試題分析:(17)已知字母A的ASCⅡ代碼值為65,若變量kk為char型,以下不能對的判斷出kk中的值為大寫字母的表達式是A)kk>='A'&&kk<='Z'B)!(kk>='A'||kk<='Z')C)(kk+32)>='a'&&(kk+32)<='z'D)isalpha(kk)&&(kk<91)(18)當變量c的值不為2、4、6時,值也為“真”的表達式是A)(c==2)||(c==4)||(c==6)B)(c>=2&&c<=6)||(c?。?)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&&c<=6)&&(c%2!=1)(19)若變量已對的定義,有以下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n",a,b,c);其輸出結(jié)果是A)程序段有語法錯B)3,5,3C)3,5,5D)3,5,7(20)有以下程序#includemain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf(“a=%d,b=%d\n”,a,b);}程序的運營結(jié)果是A)a=1,b=0B)a=2,b=2C)a=1,b=1D)a=2,b=12.2023年9月試題分析(20)有以下計算公式xy=???x(x≥0)(x<0)若程序前面已在命令行中包含mat(yī)h.h文獻,不可以對的計算上述公式的程序段是A)if(x>=0)y=sqrt(x);B)y=sqrt(x);elsey=sqrt(-x);if(x<0)y=sqrt(-x);C)if(x>=0)y=sqrt(x);D)y=sqrt(x>=0?x:-x);if(x<0)y=sqrt(-x);(21)設(shè)有條件表達式:(EXP)?i++:j--,則以下表達式中與(EXP)完全等價的是B)(EXP!=0)C)(EXP==1)D)(EXP!=1)A)(EXP==0)(23)已有定義:charc;,程序前面已在命令行中包含ctype.h文獻。不能用于判斷c中的字符是否為大寫字母的表達式是A)isupper(c)B)'A'<=c<='Z'C)'A'<=c&&c<='Z'D)c<=('z'-32)&&('a'-32)<=c(7)以下程序的功能是:輸出a、b、c三個變量中的最小值。請?zhí)羁铡?includemain(){inta,b,c,t1,t2;scanf("%d%d%d",&a,&b,&c);t1=ay&&y!=0);C)if(x>y)x-D)if(y<0){;}elsey++;elsex++;(21)以下選項中,當x為大于1的奇數(shù)時,值為0的表達式()A)x%2==1B)x/2C)x%2!=0D)x%2==0(22)以下敘述中對的的是(C)A)break語句只能用于switch語句體中B)continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)C)break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)D)在循環(huán)體內(nèi)使用break語句和continue語句的作用相同(23)有以下程序()main(){intk=5,n=0;do{switch(k){case1:case3:n+=1;break;default;n=0;k--;case2:case4:n+=2;k--;break;}printf(“%d”,n);}while(k>0&&n<5);}程序運營后的輸出結(jié)果是A)235B)0235C)02356D)2356第四章循環(huán)結(jié)構(gòu)一.教學(xué)重點、難點知識點while語句do……while語句for語句循環(huán)嵌套循環(huán)比較break語句continue語句所占分值2-32-35-74-60-12-32-3考核幾率100%100%100%100%20%70%50%專家點評重點理解重點掌握重點理解重點掌握重點理解重點掌握重點理解重點掌握簡樸識記難度適中,重點掌握難度適中,重點掌握注意:循環(huán)在這一章中的知識點比較少,但是它貫穿了整個的C語言的章節(jié)中,老師在教學(xué)中一定要把它它當做重點中的重點來抓!二.教學(xué)內(nèi)容1.while語句格式:while(表達式){循環(huán)體語句}注意:1.1.while是C語言的關(guān)鍵字。1.2.while后必須有小括號將表達式括起,里面的表達式是C語言中任意的表達式,作用是控制循環(huán)。其值為“真”(非0)則執(zhí)行循環(huán)體語句,否則跳出while循環(huán)。1.3.while語句也只能控制緊跟它的一條語句。若需要控制多條語句,必須用{}括起,構(gòu)成一條復(fù)合語句。1.4.圓括號內(nèi)的表達式不能省略。循環(huán)體中的可以由一條空語句構(gòu)成,表達循環(huán)體部分不做任何的操作。如:while(表達式);/*;是循環(huán)體,它是一條空語句*/例如:分析下列程序的輸出結(jié)果。1.5.執(zhí)行過程:(1)計算圓括號中表達式的值。若為非0則執(zhí)行循環(huán)體語句,若為0則跳出循環(huán)。(2)執(zhí)行完循環(huán)體語句后反復(fù)過程(1)。main(){inti=1,sum=0;while(i<=100){sum=sum+I;i++;}printf(“sum=%d”,sum);}這是學(xué)習(xí)C語言基礎(chǔ)循環(huán)的最佳的練習(xí),老師讓學(xué)生練習(xí)的時候可以把i控制在10以內(nèi),讓學(xué)生知道什么是循環(huán).2.d0-while語句格式:do循環(huán)體while(表達式);注意:2.1.do是C語言的關(guān)鍵字,需要和while一起搭配使用。2.2.while后必須有小括號將表達式括起,里面的表達式是C語言中任意的表達式,作用是控制循環(huán)。其值為“真”(非0)則執(zhí)行循環(huán)體語句,否則跳出while循環(huán)。2.3.while語句也只能控制緊跟它的一條語句。若需要控制多條語句,必須用{}括起,構(gòu)成一條復(fù)合語句。2.4.圓括號內(nèi)的表達式不能省略。循環(huán)體中的可以由一條空語句構(gòu)成,表達循環(huán);/*;是循環(huán)體,它是一條空體部分不做任何的操作。如:do{;}while(表達式)語句*/2.5.由于do-while循環(huán)結(jié)構(gòu)整個語法上也是C語言語句,因此最后的分號必不可少,它同樣表達語句的結(jié)束。2.6.執(zhí)行過程:(1)執(zhí)行循環(huán)體語句。(2)計算圓括號中表達式的值。若為非0則反復(fù)(1),否則跳出循環(huán)。3.for語句格式:for(表達式1;表達式2;表達式3)循環(huán)體3.1.for是C語言的關(guān)鍵字.”隔開。一般情況下,表3.2for之后的圓括號內(nèi)一共有三個表達式,以分號“;達式1的作用是賦初值;表達式2的作用是控制循環(huán);表達式3的作用是賦值。3.3.for語句也只能控制緊跟它的一條語句。若需要控制多條語句,必須用{}括起,構(gòu)成一條復(fù)合語句。3.4.表達式1、2、3均可以省略,若省略表達式2,則認為表達式2的值始終為真。而兩個分號絕不能省。3.5執(zhí)行過程:(1)計算表達式1;(2)計算表達式2,若其值為非0,轉(zhuǎn)環(huán)節(jié)(3);若其值為0則轉(zhuǎn)環(huán)節(jié)(5);(3)執(zhí)行一次for循環(huán)體。(4)計算表達式3,轉(zhuǎn)環(huán)節(jié)(2)。(5)結(jié)束循環(huán),執(zhí)行for語句后面的語句。4.循環(huán)結(jié)構(gòu)的嵌套在一個循環(huán)體內(nèi),又包含另一個循環(huán)。三種循環(huán)語句可以互相嵌套。main(){inti,j;for(i=1;i<3;i++)for(j=1;j<4;j++)printf(“\ni=%d,j=%d”,i,j);printf(“\ni=%d,j=%d”,i,j);}for(i=1;;i++)printf(“%d”,i);/*表達式2的值始終為真,這是死循環(huán)*/5.break和continue語句break語句用于結(jié)束循環(huán)或switch結(jié)構(gòu)。continue語句用于結(jié)束本次循環(huán),跳過循環(huán)中continue后尚未執(zhí)行的語句,繼續(xù)進行下一次循環(huán)條件的判斷。注意:break語句只能控制直接包含它的switch結(jié)構(gòu)或循環(huán)。continue語句只能控制直接包含它的循環(huán)。例1:main(){inti,s1=0,s2=0,s3=0;for(i=1;i<=10;i++){switch(i%5){case1:s1++;case2:s2++;break;case3:s3++;contiune;}s1++;}printf(“%d,%d,%d”,s1,s2,s3);}例2:把1~100之間能被4整除的數(shù)輸出。(老師一定要教會學(xué)生這中方法!)main(){inti;for(i=1;i<=100;i++){if(i%4!=0)continue;printf(”%3d”,i);}}三.試題分析1.2023年4月試題分析(21)有以下程序#includemain(){intx=8;for(;x>0;x--){if(x%3){printf(“%d,”,x--);continue;}printf(“%d,”,--x);}}程序的運營結(jié)果是A)7,4,2B)8,7,5,2C)9,7,6,4D)8,5,4,2(22)以下不構(gòu)成無限循環(huán)的語句或者語句組是A)n=0;B)n=0;do{++n;}while(n<=0);while(1){n++;}C)n=10;D)for(n=0,i=1;;i++)n+=i;while(n);{n--;}(31)有以下程序#includemain(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]]++;for(i=1;i<5;i++)printf(“%d”,c[i]);printf(“\n”);}程序的運營結(jié)果是A)1234B)2344C)4332D)1123(32)有以下程序#includevoidfun(int*s,intnl,intn2){inti,j,t;i=nl;j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf(“%d”,a[k]);printf(“\n”);}程序運營的結(jié)果是A)B)C)D)(33)有以下程序#include#includevoidfun(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”};fun(ss,5);printf(“%s,%s\n”,ss[0],ss[4]);}程序的運營結(jié)果是A)xy,aaaaccB)aaaacc,xyC)bcc,aabccD)aabcc,bcc(35)有以下程序#includevoidfun(char*a,char*b){while(*a==’*’)a++;while(*b=*a){b++;a++;}}main(){char*s=”****a*b****”,t[80];fun(s,t);puts(t);}程序的運營結(jié)果是A)*****a*bB)a*bC)a*b****D)ab(8)若有定義:intk;,以下程序段的輸出結(jié)果是【8】。for(k=2;k<6;k++,k++)printf(“##%d”,k);x[1]的初值是【9】程序運營后輸出的內(nèi)容是,【10】。(9)以下程序段的定義語句中,#includemain(){intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;for(i=0;i<4;i++){p[i]=&x[2*i+1];printf(“%d”,p[i][0]);}printf(“\n”);}2.2023年9月試題分析(19)若變量已對的定義,有以下程序段i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);其輸出結(jié)果是A)0,0B)0,1C)1,1(22)有以下程序#includemain(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運營結(jié)果是D)程序進入無限循環(huán)A)741B)963C)852D)875421(24)有以下程序#includemain(){inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf("%d\n",m);}程序的運營結(jié)果是A)0B)1C)2D)3(34)有以下程序#includevoidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]main(){intn=12345,d;while(n!=0){d=n%10;printf("%d",d);n/=10;}}(9)有以下程序段,且變量已對的定義和賦值for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));printf("s=%f\n\n",s);請?zhí)羁?,使下面程序段的功能與之完全相同s=1.0;k=1;while(【10】){s=s+1.0/(k*(k+1));【11】;}printf("s=%f\n\n",s);(10)以下程序的輸出結(jié)果是【12】。#includemain(){inti;for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');printf("\n");}3.2023年4月試題分析(22)以下敘述中對的的是(C)A)break語句只能用于switch語句體中B)continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)C)break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)D)在循環(huán)體內(nèi)使用break語句和continue語句的作用相同(23)有以下程序()main(){intk=5,n=0;do{switch(k){case1:case3:n+=1;break;default;n=0;k--;case2:case4:n+=2;k--;break;}printf(“%d”,n);}while(k>0&&n<5);}程序運營后的輸出結(jié)果是A)235B)0235C)02356D)2356(24)有以下程序mian(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf(“%d*%d=%d“,i,j,i*j);printf(“\n”);}}程序運營后的輸出結(jié)果是()A)1*1=11*2=21*3=3B)1*1=11*2=21*3=32*1=22*2=42*2=42*3=63*1=33*3=9C)1*1=1D)1*1=11*2=22*2=42*1=22*2=41*3=32*3=63*3=93*1=33*2=63*3=9}(7)當執(zhí)行以下程序時,輸入<回車>,則其中while循環(huán)體將執(zhí)行次。#includemain(){charch;(ch=getchar())==’0’)printf(“?!保?;While(}第五章一.教學(xué)內(nèi)容1.字符型數(shù)據(jù)字符型數(shù)據(jù)位運算1.1字符常量:用一對單引號括起的一個字符。例如:’A’,’a’,’6’是合法的字符型常量?!保帷?’ab’,A,5,‘12’都是不合法的字符型常量。1.2轉(zhuǎn)義字符常量:必須以一個反斜杠“\”開頭.常見的轉(zhuǎn)義字符見表5-1。\n:回車換行\(zhòng)t:橫向跳格\v:豎向跳格\b:退格\r:回車\f:換頁\\:\\’:’\”:”1.3\ddd:ddd表達最多可以有三位8進制數(shù)。1.4\xhh:hh表達最多可以有二位16進制數(shù)。注意:三位8進制數(shù)不一定以0開頭,只要是0~7之間的數(shù)字即可。例:下列字符常量中合法的是()A.\027B.’\028’C.’\x12’D.’\0x1f’E.’\1234’F.’\xffh’G.’AB’H.’123’I.’\12’J.”A”K.’\xf’例:下列字符常量中合法的是()A.’/’B.’/t’C.’’’D.’”’E.’\b’F.’\’G

溫馨提示

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

評論

0/150

提交評論