C語言程序設(shè)計(jì)課程重點(diǎn)、難點(diǎn)及例題分析(共8頁)_第1頁
C語言程序設(shè)計(jì)課程重點(diǎn)、難點(diǎn)及例題分析(共8頁)_第2頁
C語言程序設(shè)計(jì)課程重點(diǎn)、難點(diǎn)及例題分析(共8頁)_第3頁
C語言程序設(shè)計(jì)課程重點(diǎn)、難點(diǎn)及例題分析(共8頁)_第4頁
C語言程序設(shè)計(jì)課程重點(diǎn)、難點(diǎn)及例題分析(共8頁)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上C語言程序設(shè)計(jì)課程重點(diǎn)、難點(diǎn)及例題分析第一章 重點(diǎn):(1)算法的特性;(2)簡單算法的設(shè)計(jì);(3)c程序的基本結(jié)構(gòu)。難點(diǎn):算法設(shè)計(jì)以及表示方法是本章的難點(diǎn)。算法在程序設(shè)計(jì)中占有重要的地位,是程序設(shè)計(jì)的靈魂。算法設(shè)計(jì)師程序設(shè)計(jì)必不可少的步驟。結(jié)構(gòu)化的程序設(shè)計(jì)方法在其中起著重要的作用。用結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)算法可使編寫的程序結(jié)構(gòu)清晰,易于調(diào)試和修改。算法的表示有流程圖、N-S圖、PAD圖以及偽代碼等,圖形表示使得程序的控制結(jié)構(gòu)清晰。偽代碼不能在計(jì)算機(jī)上執(zhí)行。例題:1.1 C語言源程序的最小單位是: A 程序行B 語句C 函數(shù)D 字符【分析】程序行、語句和函數(shù)都是由字符構(gòu)

2、成的,字符是C語言最小單位。正確答案:【D】1.2 C語言源程序文件的后綴是 ,經(jīng)過編譯后生成文件的后綴是 ,經(jīng)過連接后生成的文件后綴是 ?!痉治觥课募暮缶Y即是文件的冠名,主要用來標(biāo)示該文件的類型。C語言源程序文件的擴(kuò)展命為”c”;經(jīng)過編譯后生成目標(biāo)程序,其文件的擴(kuò)展名為”obj”,目標(biāo)程序必須經(jīng)過連接生成可執(zhí)行程序才能運(yùn)行,其擴(kuò)展名為”exe”,本題的答案分別是”c”、 ”obj”、 ”exe”。第二章 重點(diǎn):(1)標(biāo)示符的正確使用;(2)變量和常量的定義與應(yīng)用;(3)C語言的各種基本數(shù)據(jù)類型及其標(biāo)示方法;(4)C語言的各種運(yùn)算符的優(yōu)先級和結(jié)合性;(5)C語言表達(dá)式的運(yùn)算以及計(jì)算過程的類型

3、轉(zhuǎn)換; 難點(diǎn):數(shù)據(jù)類型的概念;各種類型的數(shù)據(jù)在內(nèi)存中的存儲方式;運(yùn)算符對運(yùn)算對象類型的要求和限制,這涉及到運(yùn)算對象類型的自動轉(zhuǎn)換和牽制轉(zhuǎn)換的概念;C語言表達(dá)式的運(yùn)算,特別是自增/自減運(yùn)算等。例題:2.1 不是C語言基本數(shù)據(jù)類型的是: 。 A 指針類型B 整型C 無符號長整型D 單精度型【分析】c語言的數(shù)據(jù)類型分為兩大類,基本類型和構(gòu)造類型。指針類型即不是基本類型也不是構(gòu)造類型。正確答案:【A】2.2 表達(dá)式!2+1>2&&15%5+2的值是: A0 B1 C2 D3【分析】本題是考核對運(yùn)算符優(yōu)先級的掌握程度,注意邏輯運(yùn)算符“!”的優(yōu)先級高于所有的算數(shù)運(yùn)算符,而“&

4、&”和“|”的優(yōu)先級則低于所有的關(guān)系運(yùn)算符。正確答案 :【A】2.3 執(zhí)行下面的程序斷后,輸出結(jié)果為: int x=1,y=1,z=1; x=x+y+z+; printf(“%d,%d,%d”,x,+y,z+); A4,3,2 B3,3,2 C3,3,3 D3,2,2【分析】語句x=x+y+z+;可以改寫成x=(x+)+(y+)+(z+),執(zhí)行此語句后,得到結(jié)果x=4,y=2,z=2,在執(zhí)行printf語句,注意printf語句中變量y是一個(gè)自增(前綴)運(yùn)算,所以輸出的y的值是3,變量z是一個(gè)后綴的自增運(yùn)算,輸出的z的值為2。正確答案:【A】第三章 重點(diǎn):(1)順序、選擇、循環(huán)三種結(jié)構(gòu)

5、的設(shè)計(jì)與使用;(2)格式輸入/輸出函數(shù)的各種使用方法;(3)條件的表示方法與運(yùn)算策略;(4)if 語句的執(zhí)行過程:三種形式的if 語句的正確使用方法;(5)switch語句的流程控制;(6)分支嵌套的執(zhí)行過程以及嵌套的使用;(7)循環(huán)語句while、dowhile 、for的構(gòu)成、區(qū)別與轉(zhuǎn)換;(8)循環(huán)前套的執(zhí)行過程與前套的使用;(9)break、continue、goto語句的使用方式。(9)難點(diǎn):運(yùn)用三種基本結(jié)構(gòu)實(shí)現(xiàn)簡單算法是本章的重點(diǎn)。因此下面的內(nèi)容需要注意:格式輸入/輸出函數(shù)中的各種格式控制形式的變化與使用,例如精度的使用等;在構(gòu)成選擇條件時(shí)的邏輯表達(dá)式設(shè)置形式;ifelse 語句的匹

6、配原則(不以形式上相鄰,而從最內(nèi)層開始);if語句的嵌套;switch語句的嵌套以及switch語句break的正確使用;For 語句表達(dá)式的各種省略方式、處理方法;多重循環(huán)初始值的設(shè)置值與設(shè)置點(diǎn); break、continue、goto三個(gè)語句的區(qū)別和聯(lián)系。例題:3.1 已知:int x;float y;語句scanf的調(diào)用格式為:scanf(“x=%d,y=%f”,&x,&y);則為了將數(shù)據(jù)10和66.6分別賦給x和y,正確的輸入應(yīng)當(dāng)是( )。 Ax=10,y=66.6<回車> B. 10,66.6<回車>C. 10<回車>66.6<

7、;回車> D. x=10<回車>y=66.6<回車>【分析】本題考察的使scanf函數(shù)的輸入格式,在scanf函數(shù)中,如果格式字符串中除了格式字符外還有其他字符,則在輸入數(shù)據(jù)時(shí),其他字符應(yīng)原樣輸入。本題中格式字符中由” x=”、”,”、”y=”等字符,這些字符在輸入時(shí)應(yīng)原樣輸入。正確答案:A3.2 下面程序的執(zhí)行的結(jié)果為: #include <stdio.h>main() int x=5;int y=x,z;int x=10;z=x;printf(“%d,%d,%dn”,x,y,z);【分析】x在開始和后面的復(fù)合語句塊中分別被定義,它們被賦予了不同的初

8、值.在復(fù)合語句塊中x等于5的值賦給了y,接著在重新定義x的同時(shí)將10賦給了它,所以z的值為10。最后的輸出結(jié)果為x=10,y=5,z=10。3.3 下面程序的執(zhí)行的結(jié)果為: #include <stdio.h> main() int a,b;for (a=1,b=1;a<=100;a+)if (b>=20) break;if (b%3= =1) b+=3;continue;b=-5; printf(“%dn”,a);【分析】for語句的表達(dá)式1是一個(gè)逗號表達(dá)式,這是for語句很有用的一個(gè)特性,可一次完成對多個(gè)變量的賦初值的功能,應(yīng)學(xué)會使用。循環(huán)體中有一條break語句和

9、一條 continue語句,分析程序時(shí)要注意它們的作用:當(dāng)b>=20時(shí),執(zhí)行break語句直接跳出循環(huán)體而執(zhí)行最后一條printf語句;當(dāng)b%3= =1時(shí),b+=3后,執(zhí)行continue語句跳出此次循環(huán),進(jìn)行下一次循環(huán)處理。所以最后的輸出結(jié)果為8。3.4程序的功能是統(tǒng)計(jì)用09之間不同的三個(gè)數(shù)字構(gòu)成一個(gè)三位數(shù)的個(gè)數(shù)。請?zhí)羁铡?#include <stdio.h> main() int a,b,c,count;for (a=1;a<9;a+)for(b=0;b<=9;b+)if( 【1】 ) continue;for(c=0;c<=9;c+)if ( 【2】

10、) count+;printf(“%d”,count);【分析】構(gòu)成三個(gè)數(shù)字不同的一個(gè)三位數(shù)的采用三重循環(huán)處理,百位上的數(shù)字的取值范圍在19之間;十位數(shù)字和個(gè)位數(shù)字的取值范圍是:09。不同的條件是百位、十位、個(gè)位上的數(shù)不能相等。正確答案: 【1】a= =b 【2】c!=a&&c!=b 第四章 重點(diǎn):(1)庫函數(shù)的正確調(diào)用(頭文件的正確包含);(2)函數(shù)的定義;(3)函數(shù)的聲明與return語句使用;(4)函數(shù)的調(diào)用與參數(shù)傳遞原則(傳值/傳址);(5)函數(shù)的嵌套調(diào)用與遞歸調(diào)用;(6)變臉個(gè)存儲類型及其特性。難點(diǎn):函數(shù)定義、聲明、調(diào)用三者之間的聯(lián)系和區(qū)別;函數(shù)的調(diào)用(無值/帶值);

11、參數(shù)傳遞過程中傳值與傳址之間的區(qū)別與正確使用方法;遞歸函數(shù)的構(gòu)建(條件及形式)和動態(tài)執(zhí)行過程;不同函數(shù)中變量的適用范圍;變量的生存期和作用域。遞歸和遞推、迭代之間色區(qū)別和聯(lián)系。正確包含庫函數(shù)的頭文件,不同的庫函數(shù)可能頭文件不同;例題:4.1 以下函數(shù)值的類型是 。fun( float x) float y; y=3*x-4; return y;【分析】本題考察函數(shù)返回值的應(yīng)用。當(dāng)使用return語句返回的值的類型與函數(shù)定義時(shí)規(guī)定的返回值類型不一致時(shí),應(yīng)意定義時(shí)的類型為準(zhǔn)。將return語句返回時(shí)的值的類型轉(zhuǎn)換為定義是規(guī)定的類型,定義函數(shù)時(shí)如果沒有給出返回值的類型,則默認(rèn)類型為int。所以正確答

12、案應(yīng)為int類型。4.2 對于C語言的函數(shù),下列說法正確的是: A 函數(shù)的定義不能嵌套,但函數(shù)的調(diào)用可以嵌套。B 函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不能嵌套。C 函數(shù)的調(diào)用和定義都不能嵌套。D 函數(shù)的定義和調(diào)用都可以嵌套【分析】C語言不允許嵌套定義,但是允許嵌套調(diào)用。正確答案:【A】4.3 下面程序的執(zhí)行的結(jié)果為: #include <stdio.h>main()int x=2,p;p=f(x,+x);printf(“%d”,p);int f(int a,int b)int c;if(a>b) c=1;elseif (a= =b) c=0;else c=-1;return(c)

13、;【分析】在程序中的第四行有p=f(x,+x);語句,它的作用是將一個(gè)函數(shù)調(diào)用的結(jié)果賦給變量p中。在函數(shù)體f(a,b)中,a和b所對應(yīng)的實(shí)參為2和3,通過函數(shù)體內(nèi)的條件語句進(jìn)行判斷可知執(zhí)行的是c=-1這條語句,所以返回值為-1。最后的輸出結(jié)果為-1。第五章 重點(diǎn):(1)一維數(shù)組的定義、引用和初始化;(2)二維數(shù)組的定義、引用和初始化;(3)字符數(shù)組(字符串)的定義、引用和初始化;(4)各類數(shù)組的存儲方式;(5)字符串庫函數(shù)的調(diào)用和使用。難點(diǎn):利用數(shù)組解決實(shí)際問題。c語言的數(shù)組必須先定義后使用,不允許動態(tài)定義;對數(shù)組的存儲方式按行存儲的理解;二維數(shù)組初始化的不同形式;字符數(shù)組與字符串之間的關(guān)系,

14、字符數(shù)組與字符串初始化的區(qū)別;字符串庫函數(shù)的正確使用。例題:5.1 以下正確的數(shù)組定義為: A int a13=1,2,3,4;B float b3 =1,2,3,4;C long c24=1,2,3,1,2,3,4;D double t 2=0;【分析】如果二維數(shù)組在說明的同時(shí)進(jìn)行初始化,則一維長度可以省略,但不允許省略二維長度,初始化的數(shù)據(jù)個(gè)數(shù)不允許超過二維數(shù)組定義的數(shù)組元素的個(gè)數(shù)。正確答案:【D】5.2 若有以下的數(shù)組定義: char a =“12345”; char b =1,2,3,4,5; 則正確的描述是: Aa 數(shù)組和b數(shù)組的長度相等Ba 數(shù)組的長度大于b數(shù)組的長度Ca 數(shù)組的長

15、度小于b數(shù)組的長度D兩個(gè)數(shù)組中存放相同的內(nèi)容【分析】可以利用字符串常量給字符數(shù)組賦初值,但是要注意:在存儲一個(gè)字符串時(shí),系統(tǒng)自動在其末尾加一個(gè)字符串結(jié)束標(biāo)志“0”。雖然字符串的長度為5,但在內(nèi)存占6個(gè)字節(jié),因此數(shù)組a的長度應(yīng)該為6,而數(shù)組b賦的初值是字符常量,在內(nèi)存中分配5個(gè)字節(jié)。正確答案:【B】5.3 設(shè)有下列程序段,執(zhí)行后的輸出結(jié)果是: char a =“ ”An%d%c” ; printf(“%dn” ,strlen(stract(a,“good” ); A5 B6 C11 D12【分析】函數(shù)strlen的功能是求字符串參數(shù)的長度并返回,stract函數(shù)的功能是進(jìn)行兩個(gè)字符串的合并,即將

16、一個(gè)字符串追加到另一個(gè)字符串的結(jié)尾處。需要注意的是:a =“ ”An%d%c”中的%d%c不是輸入輸出函數(shù)的格式控制符,而是字符串中的4個(gè)普通字符;另外這兩個(gè)函數(shù)實(shí)現(xiàn)過程中是不對字符串的結(jié)束標(biāo)志進(jìn)行處理的,所以在函數(shù)stract(a,“good” )執(zhí)行后,a的值為“ ”An%d%cgood”對該字符串求長度,結(jié)果為12。5.4 下面findmax函數(shù)將返回?cái)?shù)組a中最大元素的下標(biāo),數(shù)組元素的個(gè)數(shù)由x傳入。請?zhí)羁?。findmax(int a ,int x) int k,p;for (p=0,k=p;p<x;p+)if(ap>ak) 【1】 ;return (k);【分析】函數(shù)的功能是

17、返回?cái)?shù)組中最大的元素的下標(biāo),函數(shù)中用于返回的變量是k,所以k就是記錄最大數(shù)組元素下標(biāo)的變量,在程序中,應(yīng)對其賦值。for循環(huán)中,當(dāng)ap>ak時(shí),元素ap的值為本次循環(huán)中的最大值,應(yīng)該記錄p的值到k中。正確答案:【1】k=p第六章 重點(diǎn):(1)指針的概念;(2)指針與指針變量的區(qū)別;(3)指針變量的引用與指針運(yùn)算;(4)指針處理一維數(shù)組;(5)指針處理字符串;(6)指針作為參數(shù)進(jìn)行函數(shù)的傳址調(diào)用。難點(diǎn):指針變量的概念、利用指針傳址調(diào)用以及一維數(shù)組的數(shù)組名/起始地址與指針變量的關(guān)系。指針變量與內(nèi)存地址的關(guān)系;指針變量與指針?biāo)赶蜃兞康膮^(qū)別和聯(lián)系;指針運(yùn)算的不同表示方式;函數(shù)指針的處理。 例題

18、:6.1 下面程序段運(yùn)行的結(jié)果是: 。 char *s=“abcde” ;s+=1;printf(“%d” ,s);A bcdeB 字符b的地址C 字符c的地址D 字符b的ASCII碼【分析】定義一個(gè)指針類型變量指向一個(gè)字符串,該變量的值即為該字符串的首地址。語句s+=1執(zhí)行后地址值改變,s的值是指向字符串中字符b所在單元的地址,通過printf函數(shù)輸出變量s的值,即輸出的是字符b所在單元的地址。正確答案:【B】6.2 選擇下面程序運(yùn)行后的結(jié)果是: 。#include <stdio.h.main()int x=10,*p;*p=x;printf(“%d,%d”,x+,+*p);A.11,

19、11 B.10,11 C.10,10 D.有錯(cuò)誤,無確定值【分析】本題出現(xiàn)了一種典型的致命錯(cuò)誤。本題中定義p是一個(gè)int 型的指針變量,而后沒有為指針變量p賦初值(注意不是間接引用),就直接做*p=x;這個(gè)動作,這樣的p的值是不定的,所以*p的存儲地址就不是一個(gè)確定的存儲地址,這樣*p將可能覆蓋任何區(qū)域,這種錯(cuò)誤上致命的錯(cuò)誤,甚至可能引起整個(gè)系統(tǒng)的癱瘓,所以在使用指針時(shí),一定要先定義完后,對其本身賦值,使其有一個(gè)具體的指向。在本題中,*p=x;語句之前要增加一條p=&x;語句才能保證程序正確。正確答案:【D】6.3 下面程序的輸出結(jié)果 。 #include<stdio.h>

20、 main() int a=10,20,30,40,50; int *p=&a3;printf(“%d”,*-p);【分析】本題主要考察對指針引用與自減運(yùn)算以及一維數(shù)組在內(nèi)存中的存放方式的理解。C語言中,自減運(yùn)算(-)與取內(nèi)容運(yùn)算(*)的優(yōu)先級為同一級別,即先執(zhí)行p操作,使指針遷移一個(gè)位置,然后再取指針p當(dāng)前指向位置的內(nèi)容。本題中,p首先指向了a3,遷移一個(gè)為之后指向a2,取p指向的內(nèi)容既a2的值,因此數(shù)出結(jié)果為30。第七章 重點(diǎn):(1)結(jié)構(gòu)體類型的定義;(2)結(jié)構(gòu)體類型變量的定義;(3)結(jié)構(gòu)體類型變量的引用方式;(4)結(jié)構(gòu)體類型數(shù)組的定義、初始化、應(yīng)用;(5)結(jié)構(gòu)與指針。難點(diǎn):結(jié)構(gòu)體類型定義與結(jié)構(gòu)體類型變量定義之間的區(qū)別;通過指向結(jié)構(gòu)體的指針引用結(jié)構(gòu)體成員的方法以及通過操作符“.”引用成員的方法;結(jié)構(gòu)體變量與公用體變量在內(nèi)存中不同存儲方式。例題:7.1 設(shè)有以下說明語句,則下面的敘述不正確的是_struct abc int m; float n; stype;A、struct是結(jié)構(gòu)體類型的關(guān)鍵字B、abc是用戶定義的結(jié)構(gòu)體類型名C、m和n都是結(jié)構(gòu)體成員名D、stype是用戶定義的結(jié)構(gòu)體變量名【分析】本題重點(diǎn)考察對結(jié)構(gòu)體類型的概念掌握情況。Struct時(shí)一個(gè)關(guān)鍵字,在定義結(jié)構(gòu)體類型的同時(shí)可以定義結(jié)構(gòu)體變量, stype是結(jié)構(gòu)體變量名,結(jié)構(gòu)體中可以包含有各種類型的成

溫馨提示

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

評論

0/150

提交評論