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

下載本文檔

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

文檔簡介

1、(或www)。二 教學(xué)重點,難點分析1. C語言概述知識點所占分值考核幾率專家點評C語言概述0-1分 20%簡單識記C語言程序的構(gòu)成0-1分 30%簡單識記標(biāo)識符1-2分  60%簡單,屬重點識記知識點常量1-2分   80%簡單,屬重點識記知識點變量2-3分100% 難度適中,重點理解重點掌握注意:從幾年的試題分析看C語言的概述和程序的構(gòu)成合起來考試已經(jīng)是一個慣例了。2. 運算符與表達(dá)式知識點所占分值考核幾率 專家點評C運算符簡介0-1分 10%簡單識記運算符的結(jié)合和優(yōu)先級0-1分60%簡單識

2、記強制類型轉(zhuǎn)換運算符0-1分30%簡單識記逗號運算符和逗號表達(dá)式0-1分40%簡單,屬重點識記知識點基本的算術(shù)運算符1-2分100%簡單,屬重點識記知識點算術(shù)表達(dá)式和運算符的1-2分100%難度適中,重點理解重點掌握優(yōu)先級與結(jié)合、自增自減運算符2-3分100%難度適中,重點理解重點掌握賦值運算符和賦值表達(dá)式2-4分100%簡單,重點掌握重點理解復(fù)合的賦值運算符1-2分80%偏難,不是重點賦值運算中的類型轉(zhuǎn)換0-1分75%偏難,不是重點位運算符和位運算0-1分80%偏難,屬重點識記知識點三 教學(xué)講點1. C語言的基本構(gòu)成和格式#include “stdio.h”main() int a,b,su

3、m;/* 定義變量*/ a=10; /*把整數(shù)10賦值給變量a*/ b=20; /*把整數(shù)20賦值給變量b*/ sum=a+b; /*把兩數(shù)之和賦值給變量 sum*/ printf(“a=%d,b=%d,sum=%dn”,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語言中每條語句

4、都以分號“;”結(jié)束,分號時C語句的一部分。即使是程序的最后一個語句也不例外。分號是語句結(jié)束的標(biāo)志。(4). 一行可以寫多條語句,一條語句也可以分在多行上寫,但是,不能將一個整體分開。 例如:i nt 是錯誤的,而int正確。(5). C語言的注釋必須放在“/*”和“*/”之間,“/”和“*”之間不允許有空格?!?*”和“*/”之間不允許再插入“/*”或“*/”。注釋可以出現(xiàn)在程序中的任意位置。注釋部分不被執(zhí)行。(6).C語言程序書寫格式自由,語句可以從任一列開始書寫,一行內(nèi)可以寫多個語句。但是過于“自由”的程序書寫格式往往使人們很難讀懂程序,初學(xué)者應(yīng)該從一開始就養(yǎng)成好的習(xí)慣,是程序便于閱讀。2

5、. 標(biāo)識符(1) 標(biāo)識符只能由字母、數(shù)字和下劃線組成。(2) 標(biāo)識符的第一個字符必須是字母或下劃線。(3) 標(biāo)識符的大小寫字母是有區(qū)別的,如abc和ABC是兩個完全不同的標(biāo)識符。 (3) 標(biāo)識符的分類:關(guān)鍵字:關(guān)鍵字是具有特定的含義的、專門用來說明C語言特定成分的一類標(biāo)識符。詳細(xì)的查閱附錄二。預(yù)定義標(biāo)識符:在C語言中它也有特定的含義。預(yù)定義標(biāo)識符可以用位“用戶表標(biāo)識符”使用,只是這將使這些標(biāo)識符失去了原來的意義。用戶標(biāo)識符:由用戶根據(jù)需要定義的標(biāo)識符被成為用戶標(biāo)識符。用戶標(biāo)示符用來給變量、函數(shù)、數(shù)組或者指針等命名。3. C語言的數(shù)據(jù)類型3.1數(shù)據(jù)可以分為常量和變量。常量是指在程序執(zhí)行中不變的量

6、,常量分為:整型常數(shù)、實型常數(shù)、字符常量、字符串常量。整型數(shù)據(jù):進(jìn)制間的轉(zhuǎn)換3.11.二、八、十六進(jìn)制轉(zhuǎn)為十進(jìn)制規(guī)則:“按權(quán)相加”3.12.十進(jìn)制轉(zhuǎn)為二、八、十六進(jìn)制規(guī)則:整數(shù)部分:基數(shù)除取余,逆序排列小數(shù)部分:基數(shù)乘取整,順序排列3.13.二進(jìn)制轉(zhuǎn)為八、十六進(jìn)制規(guī)則:三(四)合一,按序相拼(整數(shù)部分,從右向左取,小數(shù)部分從左向右取,位數(shù)不足補零)。3.14.八、十六進(jìn)制轉(zhuǎn)為二進(jìn)制規(guī)則:一分三(四),按序相拼3.2整型數(shù)據(jù)在內(nèi)存中的存放形式1字節(jié)8位,1Byte8bit字長:指CPU能同時處理的二進(jìn)制位數(shù)。由CPU的型號而定。如:16位微機的字長就是16位或2字節(jié)。1GB=1024MB,1MB

7、=1024KB,1KB=1024BB:表示字節(jié),字節(jié)是表示存儲容量的最小單位。位(bit):是計算機中信息表示的最小單位。3.21.正整數(shù)在內(nèi)存中用“原碼”形式存放。(直接轉(zhuǎn)換為二進(jìn)制即可)。如:5 0000000000000101二字節(jié)能存放的最大數(shù)是:327670111111111111111對帶符號數(shù),最高位是符號位,用0表示正,用1表示負(fù)。3.22.負(fù)整數(shù)在內(nèi)存中用“補碼”形式存放。取補碼的步驟:(1)忽略負(fù)號,求出原碼。(2)將原碼按位取反(0 、1 互換)。(3)在第二步的基礎(chǔ)上加1。如:取-5的補碼。(1)0000000000000101(2)1111111111111010(3

8、)1111111111111011將補碼轉(zhuǎn)換成相應(yīng)的整數(shù)的步驟:(1)將補碼按位取反加1。(2)將步驟1得到的二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù),然后加上負(fù)號即可。例如:1000000000000000按位取反加10111111111111111 1 1000000000000000轉(zhuǎn)換成十進(jìn)制:1×21532768 加負(fù)號:-32768幾個特殊的帶符號整數(shù):3.23.無符號整數(shù):只有正整數(shù),沒有負(fù)整數(shù),最高位不表示符號位,每一位均參與轉(zhuǎn)換。二進(jìn)制帶符號整數(shù)無符號整數(shù)-165535-3276832768例2-12:若有:int a=-1; unsigned b=65535;則printf(“%d

9、,%u,%d,%u”,a,a,b,b); 輸出結(jié)果是:-1,65535,-1,65535數(shù)據(jù)益出問題:例2-13:若有int a=32767;則a=a+1的結(jié)果是:-32768例2-14:若有unsigned b=65536;則b的值是:0 +1+11111111111111111+11000000000000000065536unsigned b=655536;而b屬于無符號整型,在內(nèi)存中只占兩字節(jié),所以只能包括16位。 標(biāo)準(zhǔn)C沒有具體要求規(guī)定各類型數(shù)據(jù)所占內(nèi)存的字節(jié)數(shù), 現(xiàn)以這次考試標(biāo)準(zhǔn)viusal c+6.0為例,說明各類型變量所占的位數(shù)。 類型所占位數(shù)所占字節(jié)數(shù)類型

10、所占位數(shù)所占字節(jié)數(shù)short162unsigned int  324int 324unsigned long 324long324float 324unsigned short162double 64 83.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ù)。

11、他們和前后的數(shù)字之間不能有空格。例如:例2-15:下列合法的常量是( )。A.-32169 B.0128 C例2-16:下列合法的實型常量是()。(A) 0Xff (B)124E (C) 1.23E5.0 (D) 3.E2 (E) 1.25E+2 (F).23e+02 3.32.實型變量單精度型 float 占 4 字節(jié)雙精度型 double 占 8 字節(jié)長雙精度 long double 占 16字節(jié)(較少用)4. 表達(dá)式與運算符4.1算術(shù)運算符及其表達(dá)式:+ - * / %:(求余運算)注意:(1)%兩邊必須是整型數(shù)據(jù)。12.0%3 表達(dá)式是錯誤的。(2)求余(%)的方法是:忽略符號,求出余

12、數(shù),再將所得余數(shù)的符號定為與被除數(shù)相同。 例如:17%3 結(jié)果是:217%-3 結(jié)果是:2,-17%3 結(jié)果是:-2,-17%-3 結(jié)果是:-24.2強制類型轉(zhuǎn)換強制類型表達(dá)式:(類型名)表達(dá)式注意:類型名(表達(dá)式)這種形式是C+的強制類型表達(dá)方式。5.賦值運算符及其表達(dá)式5.1.賦值運算符 = 格式:變量名=表達(dá)式功能:將表達(dá)式的值賦給左邊的變量。注:(1)賦值運算符左邊只能是一個變量,不能是常量,也不能是表達(dá)式。a+b=3 4=3 是非法的表達(dá)式a=6 a+(b=3) 都是合法的表達(dá)式a=b=20 a=(b=10)/(c=2) 都是合法的表達(dá)式(2)實型數(shù)據(jù)賦給整型變量時,小數(shù)部分被舍去,

13、整型數(shù)據(jù)賦給實型變量時,系統(tǒng)自動將整型數(shù)據(jù)轉(zhuǎn)換為實型數(shù)據(jù)。例如:float a; int b;表達(dá)式a=10%3 的值是1.0表達(dá)式b=a=10%3的值是15.2.復(fù)合賦值運算符及其表達(dá)式:+= -= *= /= %= &= |= = >>= <<=例如:a+=3 相當(dāng)于a=a+3,a/=b+4 相當(dāng)a/=(b+4) 或a=a/(b+4)例:若a=12,則執(zhí)行表達(dá)式a+=a-=a+a后a的值是多少?分析:a+=a-=(a+a) /*a的值是12*/a+=a-=24 /*a的值是12*/a+=a=a-24 /*a的值是12*/a+=a=-12 /*a的值是12*/

14、a+=-12 /*a的值是-12*/a=a+(-12) /*a的值是-12*/a=-24 /*a的值是-24*/5.3.自增、自減運算符及其表達(dá)式+ - 注意:(1)只能用于變量,不能用于常量和表達(dá)式。如:6+ (a+b)- 都是錯誤的。(2)當(dāng)它們用于變量名前時,表達(dá)式的值為變量的值加一或減一。當(dāng)位于變量名后時,表達(dá)式的值為變量原來的值。不論位于變量名前還是變量名后,只要進(jìn)行了自增、自減運算,變量的值都會在原來的基礎(chǔ)上加1或減1。如:a=3 則 a+ 表達(dá)式的值是3 運算之后變量的值是 4a=3 則 +a 表達(dá)式的值是 4之后變量的值是 4a=3 則 a- 表達(dá)式的值是3 之后變量的值是 2

15、a=3 則 -a 表達(dá)式的值是2 之后變量的值是 2(3)口訣: j=i+;這個表達(dá)式是先引用后增值。即:先把i的初始值給變量j,然后 i再自加1。 j=+i;這歌表達(dá)式是先增值后引用。即:i先自加1,然后再將我們自加后的值賦值給變量 j。 但是記住它們是一起執(zhí)行的,就是說:例如j=i+先引用后增值實際上是一起執(zhí)行的,它們之間不存在先后關(guān)系,我們只是位了好記才用到了上面的方法。老師在上課的時候先不要說,但是你們必須知道。j=i-,j=-i和上面j=i+,j=+i的方法是一樣。5.4逗號運算符及其表達(dá)式1.格式:表達(dá)式1,表達(dá)式2,表達(dá)式n注意:1.逗號表達(dá)式的值是整個逗號表達(dá)式中最后

16、一個表達(dá)式的值。2.求值順序是從左到右依次求解。例如:a(3,b1)的值是1 運算結(jié)束后a的值是1, b的值是 1。 四 相關(guān)試題 1.2008年4月相關(guān)試題(11)以下敘述中正確的是 A)C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面 B)C程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個語句 C)C程序書寫格式自由,一個語句可以寫在多行上 D)用C語言編寫的程序只能放在一個程序文件中 (12)以下選項中不合法的標(biāo)識符是 A)print B)FOR C)&a D)_00 (13)以下選項中不屬于字符常量的是 A) 'C' B) "C" C)'xC

17、C0' D) '072' (14)設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是 A)x=y*5=x+z B)int(15.8%5) C)x=y+z+5,+y D)x=25%5.0 填空(7)設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,+i,i+的值為【7】。 2.2007年9月相關(guān)試題(11)C語言源程序名的后綴是A).exeB).CC).objD).cp(12)可在C程序中用作用戶標(biāo)識符的一組標(biāo)識符是A)andB)DateC)HiD)case_2007y-m-dDr.TomBig1(13)以下選項中,合法的一組C語言數(shù)值常量是A)028B)12.C).177D)0x8A

18、.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可作為用戶標(biāo)識符,用以命名任意一個函數(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=5;

19、B)x=n%2.5;C)x+n=i;D)x=5=4+1;3.2007年4月相關(guān)考題(12)下列敘述中錯誤的是(D )A)計算機不能直接執(zhí)行用C語言編寫的源程序B)C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個二進(jìn)制文件C)后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個二進(jìn)制文件D)后綴為.obj和.exe的二進(jìn)制文件都可以直接運行 (13)按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是(B )A)大寫字母   B)連接符   C)數(shù)字字符   D)下劃線 (14)以下敘述中錯誤的是(C )A)C語

20、言是一種結(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()unsigned int x=0xFFFF; 

21、0; /* x的初值為十六進(jìn)制數(shù) */        printf(“%un”,x);/*注意:x是占兩個字節(jié)*/程序運行后的輸出結(jié)果是A)-1      B)65535     C)32767   D)0xFFFF 第二章 順序結(jié)構(gòu)一教學(xué)重點、難點知識點所占分值考核幾率專家點評C語句分類0-130% 簡單識記字符輸出函數(shù)putchar()1-270%難度適中,重點掌握字符輸入函數(shù)getchar()1-27

22、0%難度適中,重點掌握格式輸入函數(shù)printf() 3-4100%難度適中,重點理解重點掌握格式輸出函數(shù)scanf()3-4100%難度適中,重點理解重點掌握二教學(xué)內(nèi)容1.語句 C語句共分為5類:1.1控制語句1.2函數(shù)調(diào)用語句:printf(“this is a c statement”);1.3表達(dá)式語句每一個合法的表達(dá)式后加上分號(;)就構(gòu)成了表達(dá)式語句。+a;i+j;語句和表達(dá)式的區(qū)別:表達(dá)式有唯一確定的值,而語句沒有值。1.4賦值語句格式:賦值表達(dá)式;i=1,j2是逗號表達(dá)式i=1; j2;是兩條賦值語句i+; i-;+i;-i;都是賦值語句等價于ii+1;或i=i-1;1

23、.5空語句:只有一個單獨的分號構(gòu)成的語句。如: ;就是一條空語句。1.6復(fù)合語句:用一對將若干語句括起來構(gòu)成一條復(fù)合語句。2.輸入輸出語句在使用庫函數(shù)時必須先用預(yù)編譯命令#include<頭文件名> 或 #include“頭文件名”將相應(yīng)的頭文件包含到源程序中。如:#include<stdio.h> 2.1.printf()函數(shù)格式:printf(“格式控制”,輸出列表);功能:按格式控制指定的格式輸出數(shù)據(jù)。注意:格式控制包括以開頭的“格式說明符”和原樣輸出的普通字符。如:printf(“ad,a+bd”,30,4+7);輸出結(jié)果是:a30,a+b11(1)d格式d:按

24、實際長度輸出十進(jìn)制整數(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:以無符號十進(jìn)制形式輸出整數(shù)。printf(“%u”,-1); 65535ptintf(“%u”,-32768);32768(3)o格式o:以無符號八進(jìn)制形式

25、輸出整數(shù),不輸出前導(dǎo)符0。printf(“%d,%o”,-1,-1); -1,177777(4)x或X格式x或X以無符號十六進(jìn)制形式輸出整數(shù)。不輸出前導(dǎo)符0x或0X,小寫對小寫,大寫對大寫。printf(“%d,%x,%X,%x”,-1,-1,0xabc,0XAbc);-1,ffff,ABC,abc注:若要輸出十六進(jìn)制和八進(jìn)制的前導(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,97print

26、f(“%c,%d”,100,100); d,100(6)s格式用來輸出一個字符串,不輸出雙引號和字符串結(jié)束符。s:輸出字符串的有效字符。printf(“%s”,”china0yunnan”); 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:默認(rèn)輸出6位小數(shù)。如:printf(“%

27、f,%f”,543.12,5.4312e+2);543.120000,543.120000%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ù)部分

28、不輸出無意義的0。如:printf(“%g,%g”,123.45,123.45e-2);123.45,1.2345printf(“%g”,123000000.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ù),輸入后由系

29、統(tǒng)自動截取相應(yīng)的位數(shù)。如:scanf(“%3d%2d”,&a,&b);若輸入:3863018則:a的值是:386b的值是:30若輸入:3863 a的值是:386b的值是:3scanf(“%3c%2d”,&ch,&c);若輸入:3863018則: ch的值是:3b的值是: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(

30、)函數(shù)中,輸入時普通字符原樣輸入。如:scanf(“a=%d,b=%d”,&a,&b);若要給a賦值5,b賦值10,正確的輸入是:a5,b10scanf(“%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<

31、回車> 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)變量的類型相同。如:int a; scanf(“%f”,&a); /*出錯*/總結(jié):1.普通字符原樣輸入,原樣輸出。2.對于d格式,指定寬度小于輸出寬度,原樣輸出。3.#o,#x,#X表示要輸出八進(jìn)制的前導(dǎo)符數(shù)字0,和十六進(jìn)制的前導(dǎo)符0x,0X

32、。4.x,X格式,小寫對小寫,大寫對大寫。5.*md:表示跳過相應(yīng)的輸入項。6.注意進(jìn)制間的轉(zhuǎn)換,以及無符號數(shù)和帶符號數(shù)之間的轉(zhuǎn)換。7.在scanf()函數(shù)中,給double類型變量輸入數(shù)據(jù)時,應(yīng)該使用lf類型說明符,而輸出時,可以用lf,也可以用lf。三 試題分析1.2008年4月試題分析(16)有以下程序段 char ch; int k; ch='a' k=12; printf("%c,%d,",ch,ch,k); printf("k=%dn",k); 已知字符a的ASCll十進(jìn)制代碼為97,則執(zhí)行上述程序段后輸出結(jié)果是 A)因變量類

33、型與格式描述符的類型不匹配輸出無定值 B)輸出項與格式描述符個數(shù)不符,輸出為零值或不定值 C)a,97,12k=12 D)a,97,k=12 2.2007年9月試題分析(15)若在定義語句:int a,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)有以下程序段 int j; float y; char name5

34、0; scanf("%2d%f%s", &j, &y, name);當(dāng)執(zhí)行上述程序段,從鍵盤上輸入55566 7777abc 后,y的值為A)55566.0B)566.0C)7777.0D)566777.0填空(6)執(zhí)行以下程序時輸入1234567<CR>,則輸出結(jié)果是 【6】 。#include <stdio.h>main() int a=1,b; scanf("%2d%2d",&a,&b); printf("%d %dn",a,b);3.2007年4月試題分析(16)設(shè)變量均

35、已正確定義,若要通過scan(“%d%c%d%c”,&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:代表空格字符)( D)A)10X20Y回車    B)10X20Y回車  C)10X回車        D)10X回車      20Y回車      

36、0;    20Y回車 填空(6) 執(zhí)行以下程序后的輸出結(jié)果是       。main()int a=10;       a=(3*5,a+4);    printf(“a=%dn”,a); 第三章 選擇結(jié)構(gòu)一教學(xué)重點、難點知識點所占分值考核幾率專家點評關(guān)系運算符及優(yōu)先次序0-140% 簡單識記關(guān)系表達(dá)式0-150%簡單,屬重點識記知識點邏輯運算符及優(yōu)先級1-250%簡單識記邏輯表達(dá)式1-250%簡單,屬重

37、點識記知識點if語句的幾種形式1-2100%簡單識記if語句的嵌套1-2 100%難度適中,重點掌握條件運算符0-1100%難度適中,重點掌握switch語句2-4100%簡單,重點掌握重點理解語句標(biāo)號0-110%偏難,不是重點goto1-210%簡單識記二教學(xué)內(nèi)容1.關(guān)系運算與邏輯運算1.1邏輯值真(非零值) 假(零)1.2關(guān)系運算符及其表達(dá)式< <= > >= = !=關(guān)系運算符優(yōu)先級別低于算術(shù)運算符,高于賦值運算符。( < <= > >=)優(yōu)先級別高于(= !=)如:a>b+c 等價于a>(b+c)a=b<c等價

38、于a=(b<c)a=b<c等價于a=(b<c)4=4 表達(dá)式的值為“真”。44 表達(dá)式不合法關(guān)系表達(dá)式的值只有1和0,其中1表示“真”,0表示“假”。1.3邏輯運算符及其表達(dá)式&& 邏輯“與” | 邏輯“或” !邏輯“非”優(yōu)先級別:! && |運算規(guī)則:邏輯&&:遇假則假邏輯|:遇真則真邏輯!:真假互換邏輯表達(dá)式的值:1(真)、0(假)例如:3>4 結(jié)果是:03&&4結(jié)果是:1!3&&4結(jié)果是:00|3結(jié)果是:1注意:在求解邏輯與(&&)表達(dá)式時,若&&運算符

39、左邊表達(dá)式的值為0(假),則不再進(jìn)行&&右邊表達(dá)式的運算,且將整個&&表達(dá)式的值定為0;在求解邏輯或(|)表達(dá)式時,若|左邊表達(dá)式的值為非0值(真),則不再進(jìn)行|右邊表達(dá)式的運算,且將整個邏輯|表達(dá)式的值定為1(真)。2.if語句2.1if語句格式:1) if(表達(dá)式) 2)if(表達(dá)式) 語句1; 語句1; else 語句2; 稱為:全if 單if注意:(1)if 后的表達(dá)式必須用()括起,else后沒有表達(dá)式。(2)if和else都只能控制緊跟它的一條語句,若要控制多條語句,必須用一對括起構(gòu)成一條復(fù)合語句。2.2執(zhí)行方式:2.21 if語句的執(zhí)行方式:首先判

40、斷表達(dá)式的值是否為“真”,若“真”,則執(zhí)行語句部分。如果表達(dá)式的值為“假”,則“跳過”語句部分執(zhí)行if語句后面的其它語句。2.22 if-else語句的執(zhí)行方式:首先判斷表達(dá)式的值是否為“真”,若“真”,則執(zhí)行語句部分。如果表達(dá)式的值為“假”,則執(zhí)行else語句后面的語句。例1:main()int m=5; if(m+>5) printf(“m=%d”,m); else printf(“m=%d”,m-);例2:main()int m=5; if(+m>5) printf(“m=%d”,m); else printf(“m=%dn”,m-); printf(“m=%d”,m); 2

41、.3 if 語句的嵌套if(表達(dá)式1) if(表達(dá)式2) 語句1; else 語句2;else if(表達(dá)式3) 語句3; else 語句4;else總是與前面最近的且未配對的if語句配對,組成一對if-else語句。if(表達(dá)式1) if(表達(dá)式2) 語句1;else if(表達(dá)式3) 語句2; else 語句3;第一個else語句有的同學(xué)會把它誤以為和第一個if配對,但是實際的情況是和第二個if語句配對,即: if(表達(dá)式1) if(表達(dá)式2) 語句1;else if(表達(dá)式3) 語句2; else 語句3;例1請分析下列程序的輸出結(jié)果。main() int s,t,a,b; sanf(“

42、%d%d”,&a,&b); s=1;t=1; if(a>0) s=s+1;if(a>b) t=s+1; else if(a=b) t=s;else t=2*s;printf(“%dn”,t);若運行時輸入5 10 回車,則程序的執(zhí)行結(jié)果是?main() int s,t,a,b; sanf(“%d%d”,&a,&b); s=1;t=1; if(a>0) s=s+1;if(a>b) t=s+1; else if(a=b) t=s;else t=2*s;printf(“%dn”,t);若運行時輸入5 10 回車,則輸出結(jié)果是?例2分析下列程序的

43、輸出結(jié)果main() int a=4,b=3,c=5,t=0; if(a<b) t=a;a=b;b=t; if(a<c) t=a;a=c;c=t; printf(“%d %d %dn”,a,b,c);main() int a=4,b=3,c=5,t=0; if(a<b) t=a;a=b;b=t; if(a<c) t=a;a=c;c=t; printf(“%d %d %dn”,a,b,c);聯(lián)想交換的思想:若要交換a和b的值,通常的做法是:t=a;a=b;b=t;3.條件運算符和條件表達(dá)式條件運算符:? :是唯一一個三目運算符。優(yōu)先級別高于賦值運算,結(jié)合方向自右向左。格式

44、:表達(dá)式1 ?表達(dá)式2 :表達(dá)式3執(zhí)行方式:先求“表達(dá)式1”的值,若其值為“真”,求出“表達(dá)式2”的值作為整個條件表達(dá)式的值;若其值為“假”,求出“表達(dá)式3”的值作為整個表達(dá)式的值。例如:max=a>b?a:b;相當(dāng)于:if(a>b) max=a; else max=b; a>b?a:c>d?c:d 相當(dāng)于a>b?a:(c>d?c:d)注意:表達(dá)式1、2、3的值不要求具有相同的類型,最后結(jié)果的類型為表達(dá)式2、3中較高類型的一種。如:(x=6)>(y=5)?1:1.5 表達(dá)式的值是 1.0而不是1。4.switch語句格式:switch(表達(dá)式) cas

45、e 常量表達(dá)式1:語句1;break; case 常量表達(dá)式2:語句2;break; case 常量表達(dá)式n:語句n;break;default :語句n+1;break;說明:(1) switch、case、default、break都是關(guān)鍵字。花括號里面的語句叫做switch語句體。Switch語句體中可以沒有break語句和default部分。(2) Switch語句的圓括號中表達(dá)式的值必須是整型或是字符型,不能為實型。case后的表達(dá)式可以是求得整型量的常量表達(dá)式,但是常量表達(dá)式中不能含有變量。(3) 執(zhí)行Switch語句時,首先計算Switch后圓括號的表達(dá)式的值,然后將這個值與語句

46、體中case后的常量表達(dá)式的值相比較,如果某個常量表達(dá)式的值與之相等,則執(zhí)行該case后的語句塊;如果沒有任何一個常量表達(dá)式的值與之相等,則執(zhí)行default后的語句塊。(4) 在執(zhí)行的時候如果遇到break語句,則跳出switch語句。如果執(zhí)行完一個case或者default語句塊后沒有遇到break,則繼續(xù)順序往下執(zhí)行,知道遇到break語句或者語句體被執(zhí)行完畢為止。(5) default最多只能有一個,通常出現(xiàn)在switch語句的最后部分,但也可以出現(xiàn)在case之間或所有的case之前。四試題分析1.2008年4月試題分析:(17)已知字母A的ASC代碼值為65,若變量kk為char型,

47、以下不能正確判斷出kk中的值為大寫字母的表達(dá)式是 A)kk>='A'&&kk<='Z' B)!(kk>='A'|kk<='Z') C)(kk+32)>='a'&&(kk+32)<='z' D)isalpha(kk)&&(kk<91) (18)當(dāng)變量c的值不為2、4、6時,值也為“真”的表達(dá)式是 A)(c=2)|(c=4)|(c=6) B)(c>=2&&c<=6)|(c!=3)|(c!

48、=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&&c<=6)&&(c%2!=1) (19)若變量已正確定義,有以下程序段 int a=3,b=5,c=7; if(a>b) a=b; c=a; if(c!=a) c=b; printf("%d,%d,%dn",a,b,c); 其輸出結(jié)果是 A)程序段有語法錯 B)3,5,3 C)3,5,5 D)3,5,7 (20)有以下程序 #include <stdio.h> main() int x=1,y=0,

49、a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; case 3: a+; b+; printf(“a=%d,b=%dn”,a,b); 程序的運行結(jié)果是 A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1 2.2007年9月試題分析(20)有以下計算公式若程序前面已在命令行中包含math.h文件,不能夠正確計算上述公式的程序段是A)if(x>=0) y=sqrt(x);B)y=sqrt(x);else y=sqrt(-

50、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è)有條件表達(dá)式:(EXP)? i+ :j- ,則以下表達(dá)式中與(EXP)完全等價的是A)(EXP=0)B)(EXP!=0)C)(EXP=1)D)(EXP!=1)(23)已有定義:char c; ,程序前面已在命令行中包含ctype.h文件。不能用于判斷c中的字符是否為大寫字母的表達(dá)式是A)isupper(c)B)'A'<=c<='Z'C)'A&#

51、39;<=c&& c <='Z'D)c <=('z'-32)&&('a'-32)<= c(7)以下程序的功能是:輸出a、b、c三個變量中的最小值。請?zhí)羁铡?include <stdio.h>main( ) int a,b,c,t1,t2; scanf("%d%d%d",&a,&b,&c); t1= a<b ? 【7】 ; t2= c <t1 ? 【8】 ; printf("%dn", t2 );3.200

52、7年4月試題分析(20)設(shè)變量x和y均已正確定義并賦值,以下if語句中,在編譯時將產(chǎn)生錯誤信息的是(C )A)if(x+);                           B)if(x>y&&y!=0);  C)if(x>y) x- -     

53、                   D)if(y<0) ;  else y+;                           else

54、x+; (21)以下選項中,當(dāng)x為大于1的奇數(shù)時,值為0的表達(dá)式( )A)x%2=1      B)x/2      C)x%2!=0    D)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()i

55、nt k=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)235     B)0235    C)02356     D)2356第四章 循環(huán)結(jié)構(gòu)一教學(xué)重點、難點知識點所占分值 考核幾率專家點評while語句2-3100%重點理解重點掌握do.while語句2-3100%重點理解重點掌握for語句5-7100%重點理解重點掌握循環(huán)嵌套4-6 100%重點理解重點掌握循環(huán)比較0-120%簡單識記break語句2-370% 難度適中,重點掌握continue語句2-350%難度適中,重點掌握注意:循環(huán)在這一章中的知識點比較少,但是它貫穿了整個的C語言的章節(jié)中,老師在教學(xué)中一定要把它它當(dāng)做重點中的重點來抓!二教

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論