




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語言程序設(shè)計(jì)知識(shí)點(diǎn)及示例PAGE第1頁,共21頁四川大學(xué)錦江學(xué)院C語言程序設(shè)計(jì)知識(shí)點(diǎn)及示例知識(shí)點(diǎn)1:除了復(fù)合語句而外,C語言的語句都以分號(hào)結(jié)束。示例1:C語言的簡(jiǎn)單語句(非復(fù)合語句語句)必須以結(jié)束。參考答案:分號(hào)知識(shí)點(diǎn)2:目標(biāo)程序和可執(zhí)行程序都屬于機(jī)器代碼程序(即二進(jìn)制的機(jī)器指令程序.),但只有可執(zhí)行程序才能被計(jì)算機(jī)直接執(zhí)行。C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令.示例2:可以被直接執(zhí)行的程序是。A)源代碼程序 B)目標(biāo)代碼程序 C)word文檔程序 D)可執(zhí)行程序參考答案:D示例3:下列敘述中正確的是。A)計(jì)算機(jī)能直接執(zhí)行C語言源程序B)C程序經(jīng)C編譯后生成后綴為.obj的文件可以直接運(yùn)行C)C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令.D)C程序經(jīng)C編譯后生成后綴為.obj的文件不是二進(jìn)制文件參考答案:C知識(shí)點(diǎn)3:可執(zhí)行程序的擴(kuò)展名是“.exe”,目標(biāo)程序的擴(kuò)展名是“.obj”,C語言源程序的擴(kuò)展名是“.c”。示例4:可執(zhí)行程序的擴(kuò)展名是。參考答案:.exe示例5:目標(biāo)程序的擴(kuò)展名是。參考答案:.obj知識(shí)點(diǎn)4:C語言程序總含有main函數(shù),程序執(zhí)行時(shí),總是從main函數(shù)開始,在main函數(shù)結(jié)束。函數(shù)可以嵌套調(diào)用但不能嵌套定義.函數(shù)可以單獨(dú)編譯,但除main()函數(shù)外不能單獨(dú)運(yùn)行.每個(gè)函數(shù)(不包括main函數(shù))都可以被其他函數(shù)調(diào)用.示例6:C語言程序一定包含函數(shù)。參考答案:main示例7:C語言程序運(yùn)行時(shí)第一個(gè)被執(zhí)行的函數(shù)是函數(shù)。參考答案:main示例8:C語言程序執(zhí)行時(shí),如下敘述中正確的是。A)總是從main函數(shù)開始,在main函數(shù)結(jié)束B)從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束C)從程序的第一個(gè)函數(shù)開始,在main函數(shù)結(jié)束D)C語言中的函數(shù)不可以單獨(dú)進(jìn)行編譯.參考答案:A知識(shí)點(diǎn)5:C語言一個(gè)語句可以寫在多行上,也可以一行寫多個(gè)語句。示例9:以下敘述中正確的是。A)C程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個(gè)語句B)C程序一個(gè)語句可以寫在多行上C)用C語言編寫的程序一行最多只能寫一個(gè)語句D)前面都是錯(cuò)誤的參考答案:B知識(shí)點(diǎn)6:C語言的標(biāo)識(shí)符由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。示例10:按照C語言規(guī)定的用戶標(biāo)識(shí)符命名規(guī)則,標(biāo)識(shí)符中包含正負(fù)號(hào)。參考答案:不能示例11:按照C語言規(guī)定的用戶標(biāo)識(shí)符命名規(guī)則,下面是標(biāo)識(shí)符。A)1a B)a$ C)_for D)-for參考答案:C示例12:下列定義變量的語句中正確的。A)int1x; B)doublex1; C)char-x D)floatUS$;參考答案:B知識(shí)點(diǎn)6:在C語言源程序中,整常數(shù)可用以下三種形式表示:十進(jìn)制整數(shù);八進(jìn)制整數(shù);十六進(jìn)制整數(shù)。不能表示二進(jìn)制整數(shù)。以0開頭的數(shù)是八進(jìn)制數(shù);以0x開頭的數(shù)是16進(jìn)制數(shù)。示例13:以下選項(xiàng)中可作為C語言合法的整數(shù)常量的是。A)0xabg B)-0819 C)-819 D)x9a參考答案:C示例14:在C語言中,八進(jìn)制整常數(shù)以開頭。參考答案:0示例15:在C語言中,十六進(jìn)制整常數(shù)以開頭。參考答案:0x示例16:在C語言源程序中,直接使用二進(jìn)制數(shù)表示十進(jìn)制數(shù)。參考答案:不能知識(shí)點(diǎn)7:在C語言的實(shí)型常數(shù)的指數(shù)表示法中,字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù)。示例17:在C語言的實(shí)型常數(shù)的指數(shù)表示法中,字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為。參考答案:整數(shù)示例18:以下選項(xiàng)中是合法的C語言常量。A)-80 B)-08 C)-1e6.0 D)1.68e參考答案:A知識(shí)點(diǎn)8:在C語言中,以l或L結(jié)束的常整數(shù)為長(zhǎng)整型常數(shù)。示例19:在C語言中,合法的長(zhǎng)整型常數(shù)是。A)0L B)6u C)-0823 D)0x16g參考答案:A知識(shí)點(diǎn)9:在C語言中,任何非零的數(shù)值被認(rèn)作“真”,零值表示“假”。示例20:設(shè)有定義:“intm=1,n=6;”,則以下選項(xiàng)中值為0的表達(dá)式是。A)(!m==1)&&(!n==6) B)(m<n)||m||0C)m&&n D)m||n參考答案:A示例21:設(shè)有定義:“inta=1,b=6,c=8;”,則以下選項(xiàng)中值為0的表達(dá)式是。A)(!a==6)&&(!b==0) B)a%b||1C)a||b+c&&b-c D)c||(a++)/(++b)參考答案:A知識(shí)點(diǎn)10:在C語言中,定義變量時(shí)可以為變量賦初值,但其初值應(yīng)是常量表達(dá)式,不能包含變量。示例22:以下能正確定義且賦初值的語句是。A)intx=y=16; B)charch=98; C)inta=a+6; D)doublex=1.68e-8.0參考答案:B知識(shí)點(diǎn)11:正確的賦值語句是賦值運(yùn)算符‘=’右端為一個(gè)數(shù)值或正確的表達(dá)式,其左端為一個(gè)變量示例23:若以下選項(xiàng)中的變量a1,a2,a3,a4已正確定義,則正確的賦值的語句是。A)a1=26.8%3
;B)1+2=a2;C)a3=0x79c;D)a4=2+2=5
;參考答案:C知識(shí)點(diǎn)12:字符常量的界定符為一對(duì)單引號(hào),表示一個(gè)單字節(jié)字符,可以表示普通字符和轉(zhuǎn)義字符。示例24:以下選項(xiàng)中不屬于字符常量的是。A)'\n' B)"A" C)'\xAC' D)'\063'參考答案:B知識(shí)點(diǎn)13:C語言的邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象可以是任意合法的表達(dá)式。示例25:以下關(guān)于邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的敘述中正確的是。A)只能是整數(shù)0或1 B)只能是整數(shù)C)可以是任意合法的表達(dá)式 D)前面都是錯(cuò)誤的參考答案:C知識(shí)點(diǎn)14:break語句可用于switch語句和循環(huán)體中,continue只能用于循環(huán)體中,用于結(jié)束本次循環(huán)。示例26:continue只能用于中。參考答案:循環(huán)體示例27:下列敘述正確的是。A)break語句只能用于switch語句B)continue語句只能用于switch語句C)break語句必須與switch語句中的case配對(duì)D)break可用于switch語句和循環(huán)體中參考答案:D知識(shí)點(diǎn)15:在C語言switch語句中,一般break語句需要case配對(duì)使用,但不使用break語句在語法上也是正確的。而且在switch語句中并不一定必須使用default 示例28:下列敘述正確的是。A)break語句只能用于循環(huán)體中,而且一次能跳出多層循環(huán),B)break語句必須與switch語句中的case配對(duì)C)在switch語句中必須使用defaultD)從語法上講,switch語句中不包含break語句也是正確的參考答案:D知識(shí)點(diǎn)16:指針變量不能被賦值為整型值。只能被賦值為地址值。另外必須是同維同類的二個(gè)指針變量才能進(jìn)行賦值運(yùn)算(例如:有定義inta[3]={1,2,3},*p;則p=&a;就是錯(cuò)誤的.)另外數(shù)組名代表了數(shù)組的首地址具有指針的概念,.示例29:若有定義語句inta[3][2]={1,2,3,4,5,6};int(*p)[2]=a;則*(*(p+1)+1)的值是。A)3B)5C)6D)4參考答案:D示例30:設(shè)已有定義:“floatx;”,則以下對(duì)指針變量p進(jìn)行定義且賦初值的語句中正確的是。A)float*p=0x1024;B)float*p=(int)x+1;C)floatp=&x; D)float*p=&x;參考答案:D知識(shí)點(diǎn)17:如果指針變量p指向x,則可用*p間接訪問x。示例31:若有定義:“intx=18,*p=&x;”,則*p的值是。參考答案:18知識(shí)點(diǎn)18:在定義數(shù)組時(shí)可為其賦初值,但初值的個(gè)數(shù)不能超過數(shù)組長(zhǎng)度。而在程序執(zhí)行時(shí)并不對(duì)數(shù)組元素的下標(biāo)是否超出所定義的下標(biāo)范圍作安全性檢查.示例32:下面正確定義一維數(shù)組的選項(xiàng)是。A)inta[2][4]={0,1,2,3,4,5,6,7,8}; B)inta[2][3]={1,2,3,4,5,6}; C)inta[3,2]={1,2,3,4,5,6}; D)chara[3]="abc";參考答案:B知識(shí)點(diǎn)19:在定義數(shù)組時(shí),若賦的是全部初值(即全賦值的情況,不是部分賦值的情況.),則對(duì)一維數(shù)組而言可省略數(shù)組長(zhǎng)度的定義,而對(duì)二維數(shù)組而言則只可省略列行下標(biāo)的長(zhǎng)度定義,而決不能省略列下標(biāo)的長(zhǎng)度定義。下列數(shù)組定義中錯(cuò)誤的是示例33:A)intX[][3]={0,1,2,3}B)intX[]={1,2,3,4,5,6}C)intX[][3]={1,2,3,4,5,6}D)intX[2][]={1,2,3,4,5,6}參考答案:D知識(shí)點(diǎn)20:用typedef只是聲明一個(gè)新的類型名來代替已有的類型名。不是增加新類型.(已有的類型名仍可使用)這樣做通??梢栽黾映绦虻目勺x性.注意:typedef不能用來為變量說明一個(gè)新名.一般使用格式為typedwf已有的類型名新類型名;。例如typedwffloatreal;示例34:設(shè)有以下語句:typedefstructDateType{ intmonth; intday; intyear;}DATE;則下面敘述中正確的是。A)不能用structDateType定義結(jié)構(gòu)體變量 B)DATE是DateType這種結(jié)構(gòu)體類型的變量C)可以用DATE定義結(jié)構(gòu)體變量 D)DATE是structDateType類型的變量參考答案:C示例35:設(shè)有如下說明:typedefstructST{longa;intb;}NEW;則下面敘述中正確的是。A)以上的說明形式非法 B)ST是一個(gè)結(jié)構(gòu)變量C)NEW是一個(gè)結(jié)構(gòu)類型 D)NEW是一個(gè)結(jié)構(gòu)變量參考答案:C示例36:使用typedef增加新類型。參考答案:不能知識(shí)點(diǎn)21:宏定義和文件包含都屬于預(yù)處理命令,它們是對(duì)源程序編譯之前做一些預(yù)處理,生成擴(kuò)展C源程序,在源程序的一行上只能寫一條預(yù)處理命令,都不占用程序運(yùn)行時(shí)間。其中宏定義是在對(duì)C源程序進(jìn)行預(yù)處理(即預(yù)編譯)時(shí)用宏體替換宏名.例如:有宏定義”#defineN179“表示在對(duì)C源程序進(jìn)行預(yù)處理時(shí)將對(duì)源程序中所有出現(xiàn)標(biāo)識(shí)符為N的宏名用宏體179來替換.示例36:宏替換命令程序的運(yùn)行時(shí)間。參考答案:不占用示例37:以下敘述中正確的是。A)在源文件的一行上只能有一條預(yù)處理命令B)宏名必須用小寫字母表示C)宏替換要占用程序的運(yùn)行時(shí)間D)前面都是錯(cuò)語的參考答案:A示例38:若有如下程序#include<stdio.h>#defineCUBE1(X)X*X*X#defineCUBE2(X)(X)*(X)*(X)voidmain(){intk=2,m=1;printf(“%d”,CUBE1(k+m));printf(“%d\n”,CUBE2(k+m));}則此程序的運(yùn)行結(jié)果是。A)77 B)2727 C)277 D)727參考答案:D知識(shí)點(diǎn)22:如到文件末尾,則函數(shù)feof的函數(shù)值為真(1),否則函數(shù)值為假(0)。示例39:設(shè)fp為指向一二進(jìn)制文件的指針,且還未讀到此文件末尾,則函數(shù)feof(fp)的返回值為。A)EOF B)1 C)0 D)NULL參考答案:C示例40:設(shè)fp為指向一二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為。參考答案:1知識(shí)點(diǎn)23:用于二進(jìn)制文件操作的數(shù)據(jù)塊讀寫函數(shù)(fread()和fwrite())的函數(shù)調(diào)用“fread(buffer,size,count,fp);”與“fwrite(buffer,size,count,fp);”中的buffer是指針,對(duì)fread來說,它是讀入數(shù)據(jù)的存放地址,對(duì)fwrite來說,是要輸出數(shù)據(jù)的地址(均指起始地址)。而用于文本文件操作的格式輸出輸入函數(shù)(fprintf()和fscanf())的函數(shù)調(diào)用fprintf(fp,”格式控制字符串”,輸出表項(xiàng));和fscanf(fp,”格式控制字符串”,輸入表項(xiàng));其函數(shù)調(diào)用功能fprintf函數(shù)是將”輸出表項(xiàng)”按”格式控制字符串”的格式要求輸出到fp所指的文件中.而fscanf函數(shù)是將fp所指的文件中的數(shù)據(jù)按”格式控制字符串”的格式要求輸入到對(duì)應(yīng)的輸入表項(xiàng)中.示例41:讀取二進(jìn)制文件的函數(shù)調(diào)用形式為“fwrite(buffer,size,count,pt);”,其中buffer是。A)一個(gè)文件指針 B)一個(gè)內(nèi)存塊的首地址,表示讀入數(shù)據(jù)存放的地址C)一個(gè)內(nèi)存塊的字節(jié)數(shù) D)一個(gè)內(nèi)存塊的首地址,表示輸出數(shù)據(jù)存放的地址參考答案:D示例42:按某格式要求向一個(gè)文本文件輸出數(shù)據(jù)的函數(shù)調(diào)用形式,例如為:fprintf(fp,”%s%d\n”,”wang”,98);假如fp所指的文件名字為”data.txt”則函數(shù)調(diào)用后在文件”data.txt”中,數(shù)據(jù)的存入格式如所示那樣.Awang98 B)wang,98C)wang98 D)wang98參考答案:A知識(shí)點(diǎn)24:函數(shù)返回值類型取決于定義函數(shù)時(shí)的函數(shù)首部所說明的函數(shù)類型。示例43:函數(shù)返回值類型取決于定義函數(shù)時(shí)的函數(shù)首部所說明的。參考答案:函數(shù)類型示例44:在C語言中,函數(shù)返回值的類型與相同。A)函數(shù)原型中的函數(shù)類型 B)return語句中表達(dá)式的類型C)函數(shù)的實(shí)參類型 D)函數(shù)的形參類型參考答案:A知識(shí)點(diǎn)25:函數(shù)的實(shí)參與形參變量的作用域不用,并且占用不同的存儲(chǔ)單元。示例45:函數(shù)的形參和實(shí)參分別占用的存儲(chǔ)單元參考答案:不同知識(shí)點(diǎn)26:兩個(gè)整數(shù)相除,結(jié)果它們之商是整數(shù)。示例46:表達(dá)式9/2+5.6的值為。參考答案:9.6知識(shí)點(diǎn)27:對(duì)于邏輯表達(dá)式,并不是所有的邏輯運(yùn)算符都要被執(zhí)行。例如a&&b,只有a為真時(shí),才需要判斷b的值,又如a||b,只要a為真,就不必判斷b的值。如:inta=2,b=7,c=3,d,e;則執(zhí)行d=(a%b==2)||c++;e=(a%b<2)&&c++;后d為1,e為0,c為3.示例47:已有定義“floatx=6;intn=8,k;”,執(zhí)行“k=x||n++”以后,n的值為。參考答案:8示例48:已有定義“intm=6,n=8,k;”,執(zhí)行“k=!m&&--n”以后,n的值為。參考答案:8示例49:有以下程序:#include<stdio.h>intmain(void){ inta,b,c; a=2;b=3; c=(a/b<1)||(a%b>1); printf("%d%d%d\n",a,b,c); return0;}運(yùn)行結(jié)果是:參考答案:231點(diǎn)評(píng):由于“a/b<1”為真,所以“(a/b<1)||(a%b>1)”也為真(值為1),所以c=1。知識(shí)點(diǎn)28:在定義數(shù)組時(shí)為其賦初始,如果實(shí)初值的個(gè)數(shù)少于數(shù)組元素個(gè)數(shù),則未被賦初值的元素的值都取默認(rèn)值0。示例50:設(shè)有定義語句:“inta[16]={18};”,則數(shù)組元素a[1]的值為。參考答案:0示例49:設(shè)有定義語句:“inta[][3]={{5},{1},{8}};”,則數(shù)組元素a[0][2]的值為。參考答案:0知識(shí)點(diǎn)29:對(duì)于“intn,*p=&n;”,則*p為p所指向變量n的值,&n為n的地址.scanf()函數(shù)的各輸入表項(xiàng)應(yīng)為地址表項(xiàng)示例50:對(duì)于“intn=9,*p=&n;”,則*p的值為。參考答案:9示例51:已有定義“inta=0x1024;”,a的地址為0x1026,則&a=。參考答案:0x1026示例52:若有說明語句:“float*q,b;”則能通過scanf函數(shù)正確給輸入項(xiàng)b讀入數(shù)據(jù)的程序段是。A)*q=&b;scanf(“%f”,q); B)q=&b;scanf(“%f”,q);C)q=&b;scanf(“%f”,*p); D)q=&b;scanf(“%f”,b);參考答案:B示例53:若有定義語句”intb,charc[10];“則下面給b輸入整數(shù)值,給c輸入字符串的輸入語句中正確的是。A)scanf(“%d%s”,&b,&c); B)scanf(“%d%s”,&b,c); C)scanf(“%d%s”,b,c); D)scanf(“%d%s”,b,&c);參考答案:B知識(shí)點(diǎn)30:打開文件語句“fopen(文件名,使用文件方式);”,使用文件方式為字符串,對(duì)于打開文本文件,“r”表示(只讀)為輸入打開一個(gè)文本文件,“w”表示(只寫)為輸出打開一個(gè)文本文件,“a”表示(追加)向文本文件尾增加數(shù)據(jù)。示例54:設(shè)有定義:“FILE*fp;”,將以下打開文件的語句補(bǔ)充完整,以便為輸出打開一個(gè)文本文件。fp=fopen("test.txt",);參考答案:"w"示例55:設(shè)有定義:“FILE*fp;”,請(qǐng)將以下打開文件的語句補(bǔ)充完整,以便可以從文本文件data.txt中讀出內(nèi)容。fp=fopen("","");參考答案:data.txtr示例56:以下程序建立一個(gè)名為test.txt的字符文件(文本文件),將從鍵盤輸入的一行字符存入文件中。請(qǐng)?zhí)羁铡?include<stdio.h>#include<stdlib.h>voidmain(){ FILE*fp; charch; if((fp=fopen("test.txt",[1]))==NULL) { printf("Cannotopen!\n"); exit(0); } printf("Enterdata\n"); while((ch=getchar())!='\n')fputc(ch,fp); fclose(fp); }參考答案:[1]"w"點(diǎn)評(píng):文件操作方式是字符串,注意"w"應(yīng)用雙引號(hào)括起來。知識(shí)點(diǎn)31:malloc的函數(shù)原型為“void*malloc(unsignedintsize);”,一般使用格式為“(基類型*)malloc(sizeof(基類型))”。示例57:已有指針定義“float*p;”,請(qǐng)寫出完整的語句,利用malloc函數(shù)使p指向一個(gè)單精度實(shí)型動(dòng)態(tài)存儲(chǔ)單元。參考答案:p=(float*)malloc(sizeof(float))知識(shí)點(diǎn)32:定義靜態(tài)變量的關(guān)鍵字是static。定義外部變量的關(guān)鍵字是extern.示例58:用于定義靜態(tài)變量。參考答案:static知識(shí)點(diǎn)33:每個(gè)枚舉類型都必須進(jìn)行類型的定義,定義時(shí)必須將其所有的標(biāo)識(shí)符一一列舉,采用enum關(guān)鍵字定義枚舉類型。示例59:用于定義枚舉類型。參考答案:enum知識(shí)點(diǎn)34:對(duì)于逗號(hào)表達(dá)式“表達(dá)式1,表達(dá)式2”,先求解表達(dá)式1,再求解表達(dá)式2。整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式2的值。逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低。示例60:有如下程序:#include<stdio.h>intmain(void){ inta=5,b=9; a=a*2,a+13; b=(2*b,1+b); printf("%d%d\n",a,b); return0;}運(yùn)行結(jié)果是:參考答案:1019點(diǎn)評(píng):對(duì)于“a=a*2,a+13;”先計(jì)算“a=a*2”,再計(jì)算“a+13”,a的值為10;對(duì)于“b=(2*b,1+b);”,先計(jì)算“2*b”,再計(jì)算“1+b”,b的值為19。知識(shí)點(diǎn)35:if語句嵌套時(shí),else子句與if的匹配原則是:else總是和之前與其最近的且沒有配過對(duì)的if配對(duì)。編程時(shí)最好采用恰當(dāng)?shù)目s進(jìn)格式。例如:示例61:有如下程序:#include<stdio.h>voidmain(){intx=16,y=30,z=40,u=80,v;if(x<y) if(y>u)v=1; elseif(y>u)v=3; elsev=3; elsev=4; printf("%d\n",v); }運(yùn)行結(jié)果是:參考答案:3點(diǎn)評(píng):上面程序ifelse結(jié)構(gòu)縮進(jìn)格式恰當(dāng),容易看出else與if的匹配關(guān)系,由于關(guān)系表達(dá)式“x<y”為真,“y>u”和“y>u”為假,將執(zhí)行“elsev=3;”,顯示v的值3。知識(shí)點(diǎn)35:switch語句執(zhí)行時(shí),首先計(jì)算switch的判斷表達(dá)式,并以此值去依次找與之相等的case標(biāo)號(hào)值,找到后就將流程轉(zhuǎn)到該標(biāo)號(hào)處,執(zhí)行后面各語句,直到遇到break語句或switch語句結(jié)束為止。示例59:有如下程序:#include<stdio.h>voidmain(){ charn1=1,n2=2; inta=1,b=2;switch(n1){ case1: switch(n2) { case1:a++;break; case2:b++;break; case3:a++;b++;break; }case2:a++,++b;break; case3:++b;++a;break; default:a++,b++;break; } printf("%d%d\n",a,b);}運(yùn)行結(jié)果是:參考答案:24點(diǎn)評(píng):由于n1=1,所以外層switch語句將執(zhí)行外層“case1”后的語句,由于n2=2,所以內(nèi)層switch語句將執(zhí)行內(nèi)層“case2”后的語句,執(zhí)行“b++;”后執(zhí)行“break;”退出內(nèi)層switch語句,繼續(xù)執(zhí)行“a++,++b;”,然后執(zhí)行“break;”,退出外層switch語句。有以下程序:#include<stdio.h>voidmain(){inti,j=0,k=0,m=0;for(i=9;i<12;i++){switch(i/10){case0:j++;k++;break;case10:k++;break;default:m++;k++;}} printf("%d%d%d%d\n",i,j,k,m; }運(yùn)行結(jié)果是:參考答案:12132知識(shí)點(diǎn)36:條件運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算,但低于算術(shù)、關(guān)系、邏輯運(yùn)算。示例60:有如下程序:#include<stdio.h>intmain(void){ inta=1,b=2,x,y; x=a+1<b?a+3:b; y=(a+1<b?a+3:b); printf("%d%d\n",x,y); return0;}運(yùn)行結(jié)果是:參考答案:22點(diǎn)評(píng):先計(jì)算“a+1”和“a+3”,再計(jì)算“a+1<b?a+3:b”。知識(shí)點(diǎn)37:對(duì)于C語言的表達(dá)式,如果表達(dá)式的值為0,表示邏輯假,如果表達(dá)式的值非0,表示邏輯真。示例61:有以下程序:#include<stdio.h>intmain(void){ intx=-6; while(x++); printf("%d\n",x); return0;}運(yùn)行結(jié)果是:參考答案:1點(diǎn)評(píng):當(dāng)while條件“x++”為假時(shí),“x++”的值為0,也就是取出x的值為0,然后再將x的值加1,所以x的值變?yōu)?。示例62:有以下程序:#include<stdio.h>intmain(void){ inti=2; do printf("%d",i);while(i-=2); printf("%d\n",i); return0;}運(yùn)行結(jié)果是:參考答案:20點(diǎn)評(píng):第1次循環(huán)時(shí),i的值為1,顯示1,條件“--i”的值為0,i的值也變?yōu)?,所以第2個(gè)printf語句顯示0。知識(shí)點(diǎn)38:對(duì)于邏輯表達(dá)式a&&b,只有a與b都為真時(shí),結(jié)果才為真,而對(duì)于a||b,只要a與b有一個(gè)為真,結(jié)果就為真。示例63:有以下程序:#include<stdio.h>intmain(void){ inta,b,c,d; a=1;b=2; c=a>1||b>1; d=a>1&&b>1; printf("%d%d%d%d\n",a,b,c,d); return0;}運(yùn)行結(jié)果是:參考答案:1210點(diǎn)評(píng):“a>1”為假,“b>1”為真,“a>1||b>1”為真,“a>1&&b>1”為假。知識(shí)點(diǎn)39:簡(jiǎn)單遞歸函數(shù)通常對(duì)應(yīng)數(shù)學(xué)中遞推式,可簡(jiǎn)單地將遞推式中的遞推條件用if語句表示來進(jìn)行編程。示例64:試用遞歸編程實(shí)現(xiàn)求階乘n!的函數(shù),并編寫測(cè)試程序。分析:求階乘函數(shù)f(n)=n!=1*2*…*n可用遞推式表示如下:具體遞歸函數(shù)及測(cè)試程序如下:#include<stdio.h>intf(intn){ if(n==0)return1; elsereturnn*f(n-1);}voidmain(){ printf("%d\n",f(3));}示例65:試用遞歸編程實(shí)現(xiàn)求累加和1+2+3+…+n的函數(shù),并編寫測(cè)試程序。分析:求求累加和1+2+3+…+n的函數(shù)可用遞推式表示如下:具體遞歸函數(shù)及測(cè)試程序如下:#include<stdio.h>ints(intn){ if(n==0)return0; elsereturnn+s(n-1);}voidmain(){ printf("%d\n",s(3)); }知識(shí)點(diǎn)40:通常采用推遞方式在求遞推函數(shù)的值。示例66:有以下程序:#include<stdio.h>intfun(intx){ if(x==0)return2; elseif(x==1)return5; elseif(x==2)return9; elsereturnx+fun(x-3);}voidmain(){ printf("%d\n",fun(6));}運(yùn)行結(jié)果是:參考答案:11點(diǎn)評(píng):fun(6)=6+fun(3)=6+3+fun(0)=6+3+2=11。知識(shí)點(diǎn)40:對(duì)于定義“inta[N],*p=a;”,由有*a,*p和a[0]相等,*(a+i),*(p+i)和a[i]相等。示例67:#include<stdio.h>voidmain(){ charstr[]="china",*p=str; printf("%c%c%s\n",*str,*(p+3),str);}運(yùn)行結(jié)果是:參考答案:cnchina示例68:有以下程序:#include<stdio.h>voidmain(){ intdata[]={9,2,8,1,7,5,7,10},*pt=data; printf("%d%d%d%d\n",*pt,*(data+2),*data,data[5]);}運(yùn)行結(jié)果是:參考答案:9895點(diǎn)評(píng):*p=a[0]=9,*(a+2)=a[2]=8。知識(shí)點(diǎn)41:函數(shù)返回值類型由函數(shù)首部說的函數(shù)類型決定,與“return表達(dá)式”中的表達(dá)式類型無關(guān)。示例69:有以下程序:#include<stdio.h>intf(doublex,doubley){ returnx+y;}voidmain(){ intw=f(1.3,2.6); printf("%d\n",w); return0;}運(yùn)行結(jié)果是:參考答案:3點(diǎn)評(píng):調(diào)用函數(shù)f(1.3,2.6)時(shí),“returnx+y;”表達(dá)式的值為3.9,由于函數(shù)類型為整型,所以將3.9轉(zhuǎn)抽為整型3作為函數(shù)的返回值。知識(shí)點(diǎn)42:對(duì)于數(shù)組,通常采用依次比較方式求最大值(最小值)。示例70:有以下程序:#include<stdio.h>intmain(void){ inti,j,m; inta[3][3]={10,20,60,28,72,-30,-85,1,6}; m=a[0][0]; for(i=0;i<3;i++) for(j=0;j<3;j++) if(a[i][j]>m)m=a[i][j]; printf("%d\n",m); return0;}運(yùn)行結(jié)果是:參考答案:72示例70:有以下程序:#include<stdio.h>intmain(void){ inti,j,m; inta[3][3]={10,20,60,28,72,-30,-85,1,6}; m=a[0][0]; for(i=0;i<3;i++) for(j=0;j<3;j++) if(a[i][j]<m)m=a[i][j]; printf("%d\n",m); return0;}運(yùn)行結(jié)果是:參考答案:-85示例71:有以下程序:#include<stdio.h>voidmain(){ inta[9]={10,20,60,28,72,-30,-85,1,6}}; inti,max=a[0],min=a[0]; for(i=1;i<9;i++) if(a[i]>max)max=a[i]; elseif(a[i]<min)min=a[i]; printf("%d%d\n",max,min); }運(yùn)行結(jié)果是:參考答案:721知識(shí)點(diǎn)43:通常求累加和時(shí),用于求和的變量被初始化為0。示例71:下面程序的功能是計(jì)算1+2+3+…+100,將程序補(bǔ)充完整。#include<stdio.h>voidmain(){ ints=[1]; for(intn=1;n<=100;n++) s=s+[2]; printf("%d\n",s);}參考答案:[1]0 [2]n示例72:編程通過函數(shù)計(jì)算數(shù)組中各元素的平均值。#include<stdio.h>floataverage(inta[],intn){ floats=0; for(inti=0;i<n;i++) s+=a[i]; returns/n;}voidmain(){ inta[6]={2,4,6,8,10,18}; floatmean; mean=average(a,6); printf("mean=%f\n",mean);}知識(shí)點(diǎn)44:通常求連乘積時(shí),用于求積的變量被初始化為1。示例73:下面程序的功能是計(jì)算階乘n!,將程序補(bǔ)充完整。#include<stdio.h>intf(intn){ intt=[1]; for(inti=1;i<=n;i++) t=t*i; returnt;}voidmain(){ printf("%d\n",f(6));}參考答案:[1]1示例74:下面程序的功能是計(jì)算一個(gè)二維數(shù)組各元素之乘積,將程序補(bǔ)充完整。#include<stdio.h>intmain(void){ inti,j,t=[1]; staticinta[3][3]={{1,2,6},{2,3,-10},{-5,1,5}}; for(i=0;i<3;i++) for(j=0;j<3;j++) t=t*[2]; printf("%d\n",t); return0;}參考答案:[1]1 [2]a[i][j]知識(shí)點(diǎn)45:在C語言中,數(shù)組名為數(shù)組的起始地址,是一個(gè)指針常量,因此“intf(inta[],intn)”與“intf(int*a,intn)”等價(jià),并且a是指針變量,因此在函數(shù)體內(nèi),a還可被賦值。示例75:下面程序的功能是計(jì)算一個(gè)一維數(shù)組各元素之積,將程序補(bǔ)充完整。#include<stdio.h>intmul(int*a,intn){ inti,t=[1]; for(i=0;i<n;i++) t=t**a++; returnt;}voidmain(){ inta[]={1,2,3,4,5,6}; printf("%d\n",mul(a,6)); return0;}參考答案:[1]1知識(shí)點(diǎn)46:對(duì)于鏈表通常采用動(dòng)態(tài)內(nèi)存分配函數(shù)“void*malloc(unsignedintsize)”,在編程時(shí)應(yīng)將函數(shù)強(qiáng)制轉(zhuǎn)換為特定指針類型,并用sizeof()函數(shù)求存儲(chǔ)單元所點(diǎn)空間大小,在顯示鏈表時(shí),一般從頭指針開始(p=head)依次顯示各節(jié)點(diǎn)(p=p->next)。示例76:下面程序的功能為先建立線性鏈表,然后再顯示線性鏈表各元素的值,將程序補(bǔ)充完整。#include<stdio.h>#include<stdlib.h>typedefstructNode{ intdata; structNode*next;}Node;voidmain(){ Node*head=NULL,*tail=NULL,*p;//head表示頭指針,tail表尾指針,p為臨時(shí)指針變量 inta[]={1,2,3,4,5,6}; for(inti=0;i<6;i++) { //建立線性鏈表 p=([1])malloc([2])); p->data=a[i]; p->next=NULL; if(head==NULL) { //在空鏈表中插入節(jié)點(diǎn),所插入節(jié)點(diǎn)為惟一節(jié)點(diǎn) head=tail=p; //頭尾指針指向同一節(jié)點(diǎn) } else { //將p追加到tail所指示結(jié)點(diǎn)的后面 tail->next=p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度廠房裝修工程合同管理及咨詢服務(wù)
- 2025年系列自動(dòng)遙測(cè)氣象站項(xiàng)目建議書
- 秋季重點(diǎn)學(xué)科教學(xué)方案計(jì)劃
- 秘書職業(yè)女性的挑戰(zhàn)與機(jī)遇計(jì)劃
- 幼兒表達(dá)能力提升計(jì)劃
- 社區(qū)親和力提升的途徑計(jì)劃
- 資金流動(dòng)性管理策略計(jì)劃
- 急診科應(yīng)急響應(yīng)機(jī)制強(qiáng)化計(jì)劃
- 藝術(shù)設(shè)計(jì)行業(yè)新年工作策略計(jì)劃
- 營(yíng)造積極班級(jí)氣氛的實(shí)踐計(jì)劃
- 《電氣作業(yè)安全培訓(xùn)》課件
- 水平二(四年級(jí)第一學(xué)期)體育《小足球(18課時(shí))》大單元教學(xué)計(jì)劃
- 《關(guān)于時(shí)間管理》課件
- 人工智能在教育中的語文教學(xué)應(yīng)用
- 環(huán)保合規(guī)與企業(yè)風(fēng)險(xiǎn)管理
- 預(yù)防深靜脈血栓VTE持續(xù)改進(jìn)QCC品管圈PDCA案例3例
- 水環(huán)境綜合治理服務(wù)方案(技術(shù)標(biāo))
- 【原創(chuàng)】頭腦特工隊(duì)開的那些心理學(xué)腦洞
- 美甲藝術(shù)全套教學(xué)課件
- 中國(guó)古代餐具
- 上海市嘉定一中2023年高二數(shù)學(xué)第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
評(píng)論
0/150
提交評(píng)論