版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家開(kāi)放大學(xué)《C語(yǔ)言程序設(shè)計(jì)》章節(jié)測(cè)試參考答案第一章C語(yǔ)言概述自測(cè)練習(xí)一:C語(yǔ)言字符集自測(cè)練習(xí)1.在C語(yǔ)言字符集中,包含有全部262.在C(√)3.在C語(yǔ)言程序中,ABC和abc自測(cè)練習(xí)二:C語(yǔ)言字符集自測(cè)練習(xí)1.在C2.在C3.C語(yǔ)言中使用的字符常量,其起止標(biāo)記符是(a.雙引號(hào)b.尖括號(hào)c.單引號(hào)d.中括號(hào)4.C語(yǔ)言中使用的字符串常量,其起止標(biāo)記符是(a.雙引號(hào)b.中括號(hào)c.尖括號(hào)d.單引號(hào)自測(cè)練習(xí)三:C語(yǔ)句分類(lèi)自測(cè)練習(xí)1.在C語(yǔ)言中,一條簡(jiǎn)單語(yǔ)句的結(jié)束符是(a.分號(hào)b.空格c.冒號(hào)d.逗號(hào)2.在C語(yǔ)言中,每條復(fù)合語(yǔ)句的開(kāi)始標(biāo)記字符為(1/a.<b.[c.(d.{3.不符合C語(yǔ)言規(guī)定的復(fù)合語(yǔ)句是(a.{x=0;}b.{}c.{;}d.{y=10}4.C語(yǔ)言中的選擇類(lèi)語(yǔ)句有兩條,它們是(a.else和caseb.if和switchc.if和elsed.switch和case自測(cè)練習(xí)四:函數(shù)分類(lèi)與使用自測(cè)練習(xí)1.在每個(gè)C語(yǔ)言程序中都必須包含有這樣一個(gè)函數(shù),該函數(shù)的函數(shù)名為(b.mainc.MAINd.function2.C語(yǔ)言程序中的基本功能模塊為(a.標(biāo)識(shí)符b.函數(shù)c.表達(dá)式d.語(yǔ)句3.一個(gè)函數(shù)定義所包含的兩個(gè)部分是(a.函數(shù)頭和函數(shù)體b.函數(shù)原型和函數(shù)體c.函數(shù)名和參數(shù)表2/d.函數(shù)頭和函數(shù)尾4.一個(gè)程序文件開(kāi)始使用的每條預(yù)處理命令,其首字符必須是(a.#b.@c.%d.$5.在一個(gè)程序文件中,若要使用#include命令包含一個(gè)系統(tǒng)頭文件,則此頭文件所使用的起止定界符為一對(duì)(a.雙引號(hào)b.花括號(hào)c.尖括號(hào)d.單引號(hào)6.7.8.若要在程序文件中使用數(shù)學(xué)函數(shù),則需要引入的系統(tǒng)頭文件為math.h9.若要在程序文件中使用標(biāo)準(zhǔn)輸入和輸出函數(shù),則需要引入的系統(tǒng)頭文件為stdio.h自測(cè)練習(xí)五:C語(yǔ)言程序的層次結(jié)構(gòu)自測(cè)練習(xí)1.在C語(yǔ)言程序中,單行或行尾注釋使用的標(biāo)記符為(a.//b.**c./*d.*/2.在C語(yǔ)言程序中,多行注釋使用的結(jié)束標(biāo)記符為().a./*b.**c.*/d.//3.3/4.自測(cè)練習(xí)六:標(biāo)準(zhǔn)輸出函數(shù)printf()的使用自測(cè)練習(xí)1.用于輸出表達(dá)式值的標(biāo)準(zhǔn)輸出函數(shù)是(a.print()b.scanf()c.output()d.printf()2.在printf()函數(shù)調(diào)用的格式字符串中,每個(gè)格式符的先導(dǎo)字符為(a.#b.@c.$d.%3.在printf()%d據(jù)類(lèi)型為(b.charc.floatd.double4.在printf()函數(shù)調(diào)用的格式字符串中,若使用格式符為“據(jù)類(lèi)型為(d.double5.在printf()函數(shù)調(diào)用的格式字符串中,若使用格式符為“%5d出的數(shù)據(jù)占用的字符位置個(gè)數(shù)為(a.5b.4c.6d.34/6.在利用printf()7.printf("%d-%d=-”語(yǔ)句所使用的格式字符串中,包含有3個(gè)8.在執(zhí)行“printf("s=%s\n","abc");”語(yǔ)句時(shí),輸出結(jié)果為9.printf("s=%c\n","abc");”語(yǔ)句中,格式符的使用同后面的輸出數(shù)據(jù)相適合。(×)10.在執(zhí)行“printf("%d-%d=%d",x,y,x-”語(yǔ)句時(shí),其輸出的前兩個(gè)數(shù)據(jù)值之自測(cè)練習(xí)七:標(biāo)準(zhǔn)輸入函數(shù)scanf()的使用自測(cè)練習(xí)1.程序運(yùn)行中需要從鍵盤(pán)上輸入多于一個(gè)數(shù)據(jù)時(shí),若不特別規(guī)定分隔符,則輸入的各數(shù)據(jù)之間所使用的分隔符為(a.空格或回車(chē)b.空格或逗號(hào)c.逗號(hào)或回車(chē)d.逗號(hào)或分號(hào)2.用于從鍵盤(pán)上為變量輸入值的標(biāo)準(zhǔn)輸入函數(shù)是(a.print()b.scanf()c.printf()3.在scanf()函數(shù)調(diào)用的格式字符串中,每個(gè)格式符的先導(dǎo)字符為(a.%b.#c.@d.$4.在scanf()函數(shù)調(diào)用的格式字符串中,若使用格式字符串為“%d,%d輸入的兩個(gè)數(shù)據(jù)之間的分隔符為(a.$b.#c.@5/d.%5.在利用scanf()6.scanf("%d%d",&x,&y);2個(gè)格式符。(√)7.在執(zhí)行“scanf("%d%d",&x,&y);”語(yǔ)句時(shí),需要從鍵盤(pán)上輸入2自測(cè)練習(xí)八:C語(yǔ)言程序的上機(jī)操作過(guò)程自測(cè)練習(xí)1.C語(yǔ)言源程序文件的擴(kuò)展名為(a.exeb.objc.cd.cpp2.每個(gè)C語(yǔ)言程序文件的編譯錯(cuò)誤的類(lèi)型有(a.2種b.3種c.1種d.4種3.每個(gè)C程序文件在編譯時(shí)可能出現(xiàn)有警告性錯(cuò)誤,其對(duì)應(yīng)的標(biāo)識(shí)符號(hào)為(a.errb.errorc.warnd.warning4.一個(gè)C5.一個(gè)C6.在C第一章綜合練習(xí)一、單項(xiàng)選擇題1.C語(yǔ)言中的循環(huán)類(lèi)語(yǔ)句有3條,它們是(A.for,if,whileB.for,while,do6/C.while,do,switchD.for,break,do2.C語(yǔ)言中的跳轉(zhuǎn)類(lèi)語(yǔ)句有四條,它們是goto,return和(A.break,constB.static,continueC.break,continueD.while,extern3.當(dāng)不需要函數(shù)返回任何值時(shí),則所使用的返回類(lèi)型為(A.intB.unionC.voidD.43A.表達(dá)式B.語(yǔ)句C.函數(shù)體D.參數(shù)表5.在一個(gè)程序文件的開(kāi)始,若需要使用一個(gè)包含命令包含一個(gè)頭文件時(shí),則命令標(biāo)識(shí)符為(A.#cludeB.#constC.#includeD.#defile6.在#include預(yù)處理命令中,不可以包含(A.系統(tǒng)頭文件B.程序文件C.用戶(hù)頭文件D.目標(biāo)文件7.在printf()函數(shù)調(diào)用的格式字符串中,若使用格式符為“%6.2f7/輸出的數(shù)據(jù)占用的字符位置個(gè)數(shù)為(A.5B.6C.4D.28.在printf()函數(shù)調(diào)用的格式字符串中,若使用格式符為“%6.2f輸出的數(shù)據(jù)中,其小數(shù)部分占用的字符位置個(gè)數(shù)為(A.5B.6C.4D.29.在printf()函數(shù)調(diào)用的格式字符串中,若使用格式符為“%6.2f輸出的數(shù)據(jù)中,其整數(shù)部分占用的字符位置個(gè)數(shù)為(A.6B.4C.3D.210.在scanf()函數(shù)調(diào)用的格式字符串中,若使用格式符為“數(shù)據(jù)類(lèi)型為(A.charB.intC.floatD.double.在scanf()函數(shù)調(diào)用的格式字符串中,若使用格式符為“%Lf的數(shù)據(jù)類(lèi)型為(A.charB.intC.floatD.double8/12.每個(gè)C程序文件在編譯時(shí)可能出現(xiàn)有嚴(yán)重性錯(cuò)誤,其對(duì)應(yīng)的標(biāo)識(shí)符號(hào)為(A.warningB.errorC.warnD.err13A.objB.exeC.dswD.dsp二、判斷題1C(×)2C3#include4.使用#include5.注釋語(yǔ)句的內(nèi)容只會(huì)出現(xiàn)在源程序文件中,不會(huì)出現(xiàn)在編譯后而生成的目標(biāo)67.源程序文件被編譯成目標(biāo)文件后,其目標(biāo)文件中也存在有對(duì)應(yīng)的注釋內(nèi)容。(×)8910.在執(zhí)行“printf("%5d",x);”語(yǔ)句時(shí),其輸出的x的值所占用的顯示寬度將大于等于512.在執(zhí)行“printf("%6d",x);”語(yǔ)句時(shí),其輸出的x的值所占用的顯示寬度將小于69/13.在執(zhí)行“printf("%8.2f",x);”語(yǔ)句時(shí),其輸出的x的值所占用的顯示寬度將大于等于814.在“scanf("%d%d",&x,&y);”語(yǔ)句中,x和y15.在“scanf("%s",x);”語(yǔ)句中,x16.在“scanf("%d-17C18.在C語(yǔ)言程序上機(jī)操作的過(guò)程中,需要對(duì)每個(gè)用戶(hù)頭文件進(jìn)行單獨(dú)的編譯19.在C語(yǔ)言程序上機(jī)操作的過(guò)程中,不能夠?qū)τ脩?hù)頭文件進(jìn)行單獨(dú)的編譯操第二章基本數(shù)據(jù)類(lèi)型和表達(dá)式自測(cè)練習(xí)一:數(shù)據(jù)類(lèi)型自測(cè)練習(xí)1.char類(lèi)型的長(zhǎng)度為(a.1b.3c.4d.22.常數(shù)120的數(shù)據(jù)類(lèi)型為(a.雙精度型b.短整型c.長(zhǎng)整型d.整型3.一個(gè)無(wú)符號(hào)字符類(lèi)型的值域范圍是(a.127到255b.0到255c.1到255d.128到+127/4.廣義整數(shù)類(lèi)型包括短整型、標(biāo)準(zhǔn)整型和長(zhǎng)整型35.短整型、標(biāo)準(zhǔn)整型和長(zhǎng)整型的長(zhǎng)度分別為2、4和8自測(cè)練習(xí)二:常量自測(cè)練習(xí)1.數(shù)值常量0x62的表示方式為(a.八進(jìn)制b.十進(jìn)制c.二進(jìn)制d.十六進(jìn)制2.在C語(yǔ)言中,表示換行符的轉(zhuǎn)義字符為(a.\rb.\fc.\md.\n3.字符串"It\'s\'"中包含的字符個(gè)數(shù)為(a.8b.7c.6d.54.執(zhí)行“printf("%c",'B'+2);”語(yǔ)句后得到的輸出結(jié)果為(a.Db.Bc.Cd.A5.常數(shù)3.266.常數(shù)3.26f7.8.常數(shù)3.26自測(cè)練習(xí)三:變量自測(cè)練習(xí)1.要定義a和b為兩個(gè)整型變量,則使用的定義語(yǔ)句為(a:b;/ab;a,b;a;b;自測(cè)練習(xí)四:運(yùn)算符和表達(dá)式自測(cè)練習(xí)1.運(yùn)算符優(yōu)先級(jí)最高的是(a./b.||c.++d.%2.下列數(shù)值中最小值是(a.28/8b.28%8c.35/3d.35%33.已知x的初值為15,則下列各表達(dá)式中的最小值為(a.x*=2b.x+=10c.x/=2d.x%=204.若x=5,,則計(jì)算y*=++x表達(dá)式后,y的值為(a.40b.60c.50d.555.設(shè)x和y均為邏輯值,則x&&y為真的條件是(a.其中一個(gè)為假。b.它們均為假c.它們均為真d.其中一個(gè)為真/6.x<=10的相反表達(dá)式為(a.x>=10b.x!=10c.x>0d.x>107.表達(dá)式(float)25/4的值為68.表達(dá)式x=x+y表示成復(fù)合賦值表達(dá)式為9.增量表達(dá)式++y表示成賦值表達(dá)式為y=y+110.表達(dá)式sizeof(25)的值等于4邏輯表達(dá)式(x>3&&x<10)的相反表達(dá)式為(x<=3||自測(cè)練習(xí)五:一些系統(tǒng)函數(shù)的使用自測(cè)練習(xí)1.函數(shù)pow(4,3)的值為(a.64.0b.27c.12.0d.562.假定x=4.6,則函數(shù)floor(x)的值為(a.5.0b.4.0c.4.6d.4.53.正弦函數(shù)sin48在C語(yǔ)言的表示為(a.sin(48*3.14159)b.sin(48)c.sin(48/180.0)d.sin(48*3.14159/180)4.在C語(yǔ)言中,求一個(gè)實(shí)數(shù)的絕對(duì)值的數(shù)學(xué)函數(shù)為fabs(x)5.已知x=25,則abs(x)的值為256.在C/第二章綜合練習(xí)一、單項(xiàng)選擇題(112題每題3分,1316題每題4分,共48分)1.int類(lèi)型的長(zhǎng)度為(A.1B.2C.4D.82.常數(shù)4.25的數(shù)據(jù)類(lèi)型為(A.整型B.單精度型C.雙精度型D.長(zhǎng)雙精度型3.一個(gè)有符號(hào)字符類(lèi)型的值域范圍是(A.128到+127B.0到255C.127到255D.1到2554.字符串"Its\40\n"的長(zhǎng)度為(A.5B.6C.7D.85.實(shí)數(shù)340.25對(duì)應(yīng)的規(guī)格化浮點(diǎn)數(shù)為(A.340.25B.34.025e1C.3.4025e2D.0.34025e36.要利用const保留字定義整型常量ABC的值為10A.constintABC10;B.constintABC,10;/C.constintABC;10;D.constintABC=10;7.要利用#define命令定義ABC常量的值為100,則對(duì)應(yīng)的命令格式為(A.#defineABC=100B.#defineABC==100C.#defineABC100D.#defineABC;1008.下列數(shù)值中最大值是(A.28/8B.35/3C.28%8D.35%49.在下面運(yùn)算符中,優(yōu)先級(jí)最高的是(A.!B.&&C.||D.!=10.設(shè)有語(yǔ)句序列為“inta=12;a+=a*a;a的值為(A.12B.144C.156D.288.在C語(yǔ)言中,用于比較大小的關(guān)系運(yùn)算符的總數(shù)為(A.3B.4C.5D.612.x>0&&y<=5的相反表達(dá)式為(A.x<=0||y>5B.x>0||y<=5/C.x<=0&&y>5D.x<0&&y!=513.假定x是一個(gè)邏輯量,則(x&&!x)和(x||!x)的值分別為(A.1和1B.0和0C.0和1D.1和014.假定x=4.6,則函數(shù)ceil(x)的值為(A.4.0B.4.6C.4.5D.5.015.表達(dá)式floor(2.3457*100+0.5)/100的值為(A.2.35B.2C.2.34D.2.3457二、判斷題(每題4分,共52分)16.常數(shù)3.26e417.18.19.定義符號(hào)常量只有一種方法,就是采用預(yù)處理命令#define20.使用const21.在一條變量定義語(yǔ)句中,定義的變量和賦給它的初值之間只能使用等號(hào)(=)。(√)22.假定x=5,則表達(dá)式2+x++的值為723.表達(dá)式(int)14.6%5的值為024.表達(dá)式x=x+1表示成增量表達(dá)式為x++25.假定x=5a=(x?10:20);”語(yǔ)句后a的值為10/26.邏輯表達(dá)式(a>b||b==5)的相反表達(dá)式為(a>b&&b==5)27.在C語(yǔ)言中,求一個(gè)整數(shù)的絕對(duì)值的數(shù)學(xué)函數(shù)為abs(x)28.在C語(yǔ)言中,退出程序運(yùn)行的系統(tǒng)函數(shù)為exit()第三章流程控制語(yǔ)句自測(cè)練習(xí)一:if條件語(yǔ)句自測(cè)練習(xí)1.若x的值為5if(x>10)x++;elsex;”語(yǔ)句后,x的值為(a.4b.6c.3d.52.若x的值為10if(x)x++;elsex”語(yǔ)句后,x的值為(a.9b.11c.10d.03.在if語(yǔ)句中,可以帶有else4.在if語(yǔ)句中,每個(gè)else關(guān)鍵字與它前面同層次并且最接近的if關(guān)鍵字相配套。(×)5.執(zhí)行下面程序的輸出結(jié)果為#include<stdio.h>voidmain(){inta=25,b=18;if(a>b)printf("%s\n","a>b");if(a==b)printf("%s\n","a==b");if(a<b)printf("%s\n","a}答案:a>b/6.執(zhí)行下面程序的輸出結(jié)果為#includestdio.h>#include<stdio.h>voidmain(){inta=18,b=4,c=0;if(a/b){c+=a/b;c+=a%b;}if(a%b){a=a/b;b=a%b;}printf("%d",a+b+c);}答案:a>b自測(cè)練習(xí)二:switch開(kāi)關(guān)語(yǔ)句自測(cè)練習(xí)1.在switch語(yǔ)句的每個(gè)casebreakswitch語(yǔ)句容易被改寫(xiě)成語(yǔ)句(a.ifb.whilec.dod.for2.每個(gè)C語(yǔ)言程序文件的編譯錯(cuò)誤的類(lèi)型有(2.在switch語(yǔ)句中,每個(gè)保留字case后面的表達(dá)式必須是(a.函數(shù)調(diào)用b.變量種c.一般表達(dá)式d.常量3.執(zhí)行下面程序的輸出結(jié)果為#include<stdio.h>voidmain(){intx=5,y=0;switch(2*x3){case4:y+=x;break;case7:y+=2*x+1;break;/case10:y+=3*x;break;}printf("y=%d\n",y);}答案:y=114.執(zhí)行下面程序的輸出結(jié)果為#include<stdio.h>voidmain(){intx=9,y=0;switch(x%3){case0:y+=x;case1:y+=2*x+1;case2:y+=3*x;break;default:y+=x1;}printf("y=%d\n",y);}答案:y=55自測(cè)練習(xí)三:for循環(huán)語(yǔ)句自測(cè)練習(xí)1.當(dāng)處理問(wèn)題時(shí)的循環(huán)次數(shù)是確定的,則采用的最合適的循環(huán)方式為(a.whileb.switchc.whiled.for2.C的開(kāi)始使用保留字(a.caseb.continuec.staticd.const/3.已知'A'~'Z'的ASCII碼為65~90,當(dāng)執(zhí)行“intx='C'+5;”語(yǔ)句后x的值為(a.70b.73c.72d.714.5.在一條變量定義語(yǔ)句中,當(dāng)同時(shí)定義多個(gè)變量時(shí),各變量之間只能使用逗號(hào)分6.在一條變量定義語(yǔ)句中,定義的變量和賦給它的初值之間不需要使用等號(hào)(=)。(×)自測(cè)練習(xí)四:while循環(huán)語(yǔ)句自測(cè)練習(xí)1.每次先進(jìn)行循環(huán)條件的判斷,然后再執(zhí)行循環(huán)體的語(yǔ)句為(a.for和whileb.for和doc.switch和breakd.while和do2.若n的值為5s的值為0while(n>0)--;sa.13b.14c.15d.123.當(dāng)循環(huán)次數(shù)確定時(shí),while循環(huán)語(yǔ)句能夠轉(zhuǎn)換為for4.while5.執(zhí)行下面程序的輸出結(jié)果為#include<stdio.h>voidmain(){intn=10,y=0;while(n>5)y+=n;printf("y=%d\n",y);}/答案:y=406.執(zhí)行下面程序的輸出結(jié)果為。#include<stdio.h>voidmain(){inti=1,p=1,s=1;while(s<40){i++;p=p*i;s=s+p;}printf("s=%d\n",s);}答案:s=153自測(cè)練習(xí)五:do循環(huán)語(yǔ)句自測(cè)練習(xí)1.流程控制類(lèi)語(yǔ)句包括的3類(lèi)語(yǔ)句為(a.選擇、循環(huán)、跳轉(zhuǎn)b.選擇、循環(huán)、輸入c.選擇、輸入、輸出d.循環(huán)、選擇、函數(shù)2.若i的值為0,則執(zhí)行“doi++;while(i*i<10);”語(yǔ)句的過(guò)程中,循環(huán)體被執(zhí)行的次數(shù)為(a.2b.3c.5d.43.dowhile4.dowhile5.執(zhí)行下面程序的輸出結(jié)果為#include<stdio.h>voidmain(){intx=16,s=0;do{s+=x;x=3;}while(x>0);printf("s=%d\n",s);}/答案:s=516.______。#include<stdio.h>voidmain(){intx,y;doscanf("%d%d",&x,&y);while(x<=0||y<=0);printf("%d\n",x*x+y*y);}答案:正整數(shù)自測(cè)練習(xí)六:跳轉(zhuǎn)類(lèi)語(yǔ)句自測(cè)練習(xí)1.若要結(jié)束所在函數(shù)的執(zhí)行過(guò)程,返回到調(diào)用該函數(shù)所在位置,則使用的語(yǔ)句為(a.gotob.continuec.returnd.break2.要結(jié)束所在循環(huán)語(yǔ)句中循環(huán)體的一次執(zhí)行,則在其中使用的語(yǔ)句為(a.gotob.returnc.breakd.continue3.break4.return5.continue6.執(zhí)行下面程序的輸出結(jié)果為#include<stdio.h>voidmain(){inti,s=0;for(i=1;i<10;i++){s+=i*(i+1);/if(s>40)break;}printf("s=%d\n",s);}答案:s=707.執(zhí)行下面程序的輸出結(jié)果為#include<stdio.h>voidmain(){inti=0,s=0;do{i+=2;if(i%3==0)continue;s+=i*(i+1);}while(s<60);printf("s=%d\n",s);}答案:s=98第三章綜合練習(xí)一、單項(xiàng)選擇題1.若x的值為15if(x>10)x++;elsex;”語(yǔ)句后,x的值為(a.16b.10c.15d.142.若x的值為10if(!x)x++;elsex”語(yǔ)句后,x的值為(a.0b.10c.9/d.113.若x的值為10,則執(zhí)行“switch(x%3){case0:x++;case1:x++;case2:x++;}”語(yǔ)句后,x的值為(a.13b.10c.12d.114.若x的值為10switch(x%3){case0:x++;break;case1:x++;default:x++;}”語(yǔ)句后,x的值為(a.9b.10c.12d.115.若n的值為10for(i=1;i<n;i++)S;”語(yǔ)句的過(guò)程中,表達(dá)式i=1共被執(zhí)行的次數(shù)為(a.1b.1c.nd.n+16.若n的值為10for(i=0;;i++)if(i>n/3)break;ia.6b.3c.4d.57.若n的值為10,則執(zhí)行“for(i=1;i<n;i++)S;”語(yǔ)句的過(guò)程中,表達(dá)式共被執(zhí)行的次數(shù)為(a.nb.n+1c.1d.n1/8.若n的值為10,則執(zhí)行“for(i=0;i<n;i++)for(j=i;j<n;j++)S;”語(yǔ)句后,內(nèi)層循環(huán)體S語(yǔ)句的執(zhí)行總次數(shù)為(a.n*nb.n(n+1)/2c.(n+1)/2d.n(n1)/29.若n的值為10while(n-->0)s+=n;”語(yǔ)句的過(guò)程中,循環(huán)體被執(zhí)行的次數(shù)為(a.9b.11c.8d.1010.若n的值為5s的值為0while(n-->0)s+=n;sa.15b.12c.10d.14在下列的語(yǔ)句中,必須以分號(hào)作為結(jié)束的語(yǔ)句是(a.whileb.forc.dod.switch12.若n的值為5,s的值為0,則執(zhí)行“dos+=n;while(n>0);”語(yǔ)句后,s的值為(a.14b.12c.15d.13/13.要結(jié)束任一種循環(huán)語(yǔ)句或switcha.gotob.breakc.continued.return二、判斷題14.在if語(yǔ)句中,必須帶有else15.在for循環(huán)語(yǔ)句的頭部,for后面括號(hào)內(nèi)共有316.for循環(huán)語(yǔ)句不能夠被轉(zhuǎn)換為while17.while18.while19.dowhile20.dowhile21.dowhile22.break語(yǔ)句可以使用在switch23.return24.continue三、程序填空題25.#include<stdio.h>voidmain(){inta=5,b=8,c=6,d=15,x,y;if(a>=b)x=a;elsex=b;if(c>=d)y=c;elsey=d;if(x>=y)printf("%d\n",x);elseprintf("%d\n",y);}答案:1526.#include<stdio.h>voidmain(){intx=5,y=8,z=12;/if(x>y&&x>z)printf("%d\n",x);elseif(y>x&&y>z)printf("%d\n",y);elseprintf("%d\n",z);}答案:1227.#include<stdio.h>voidmain(){inta=5,b=8,c;if(3*a>2*b)c=2*a+3*b;elseif(a==b)c=a*a+b*b;elsec=a*b+3;printf("c=%d\n",c);}答案:c=4329.#include<stdio.h>voidmain(){intx=5,y=0;switch(2*x3){case4:y+=x;case7:y+=2*x+1;case10:y+=3*x;}printf("y=%d\n",y);}答案:y=2629.#include<stdio.h>voidmain(){charch;inta,b,c;scanf("%c",&ch);/scanf("%d%d",&a,&b);switch(ch){case'+':c=a+b;break;case-':c=ab;break;case'*':c=a*b;break;case'/':c=a/b;break;default:printf("Error!\n");}printf("%d%c%d=%d\n",a,ch,b,c);}答案:35=1530.#include<stdio.h>voidmain(){inti,s=0;for(i=16;i>0;i=2)if(i%3==0||i%4==0)s+=i;printf("s=%d\n",s);}答案:s=4631.#include<stdio.h>voidmain(){inti,x,y,s=0;scanf("%d%d",&x,&y);if(x>y){i=x;x=y;y=i;}for(i=x;i<=y;i++)if(i%2==1)s+=i*i;printf("s=%d\n",s);}答案:奇數(shù)32.#include<stdio.h>/constintN=100;voidmain(){inta,b;for(a=2;a<=N;a++){for(b=2;b*b<=a;b++)if(a%b==0)break;if(b*b>a)printf("%d",a);}}答案:素?cái)?shù)(質(zhì)數(shù))33.#include<stdio.h>voidmain(){inti=0,s=0;while(s<50){i+=2;s+=i*i;}printf("s=%d\n",s);}答案:s=5634.#include<stdio.h>voidmain(){intx,p=2;scanf("%d",&x);while(x>=p)if(x%p==0){printf("%d=%d*%d\n",x,p,x/p);break;}elsep++;}答案:35=5735.#include<stdio.h>voidmain(){intx,y,a,p=1;scanf("%d%d",&x,&y);/if(x<y){a=x;x=y;y=a;}if(x%y==0){printf("%d\n",y);return;}a=2;while(y>=a)if(x%a==0&&y%a==0){x=x/a;y=y/a;p*=a;}elsea++;printf("%d\n",p);}答案:公約數(shù)36.#include<stdio.h>voidmain(){intx=36,y=48,z;do{z=x%y;x=y;y=z;}while(y>0);printf("x=%d\n",x);}答案:x=1237.#include<stdio.h>voidmain(){intx,i=0,s=0;scanf("%d",&x);do{i+=2;s+=i*i;}while(s<x);printf("n=%d\n",i2);}答案:最大38.#include<stdio.h>voidmain(){intx=37,k=2;do{if(x%k==0)break;k++;}while(k*k<=x);if(k*k>x)printf("Yes!\n");elseprintf("No!\n");/}答案:Yes!第四章數(shù)組的概念自測(cè)練習(xí)一:數(shù)組的概念自測(cè)練習(xí)1.在一個(gè)數(shù)組中,數(shù)組元素a[i]前面的元素個(gè)數(shù)為(a.2*ib.i+1c.id.i12.假定一維數(shù)組的定義為“chara[8];(a.8b.32c.64d.163.4.自測(cè)練習(xí)二:一維數(shù)組的定義和使用自測(cè)練習(xí)1.假定有一個(gè)定義語(yǔ)句為“inta[10]={3,4,2,8,6};a[3]的值為(a.6b.8c.4d.22.在下面字符數(shù)組的定義語(yǔ)句中,有語(yǔ)法錯(cuò)誤的是(a.chara[]="x+y=55.";b.chara[15]={'1','2'};c.chara[10]='5';d.chara[20]="abcdefg";/3.4.doublea[M];1~M自測(cè)練習(xí)三:二維數(shù)組的定義和使用自測(cè)練習(xí)1.inta[3][4]={{3,4},{2,8,6}};a[2][1]a.8b.6c.4d.02.假定二維數(shù)組的定義語(yǔ)句為“int*a[3][5];節(jié)數(shù)為(a.120b.60c.30d.153.4.doublea[M][N];范圍在0~N1自測(cè)練習(xí)四:使用typedef語(yǔ)句定義數(shù)組類(lèi)型自測(cè)練習(xí)1.使用“typedefintInteger;”語(yǔ)句把標(biāo)識(shí)符Integer定義為一個(gè)(a.整數(shù)變量b.整數(shù)類(lèi)型c.數(shù)組類(lèi)型d.數(shù)組變量2使用“typedefint”語(yǔ)句把標(biāo)識(shí)符ABC定義為(a.符號(hào)常量b.字符數(shù)組c.整型數(shù)組類(lèi)型d.簡(jiǎn)單變量/3.執(zhí)行“typedefint”語(yǔ)句后,在使用int定義整型變量的地方都可以使用整數(shù)類(lèi)型標(biāo)識(shí)符intType4.使用“typedefcharBB[10][50];”語(yǔ)句定義標(biāo)識(shí)符BB為含有10行50列共500自測(cè)練習(xí)五:數(shù)組的應(yīng)用自測(cè)練習(xí)1.執(zhí)行下面程序的輸出結(jié)果為#include<stdio.h>voidmain(){inta[8]={3,8,6,5,9,2,8,5};inti,s=0;for(i=0;i<8;i++)s+=a[i];printf("s=%d\n",s);}答案:s=462.執(zhí)行下面程序的輸出結(jié)果為#include<stdio.h>voidmain(){inta[8]={12,15,20,8,25,30,28,36};inti,c[3]={0};for(i=0;i<8;i++){if(a[i]%2==0)c[0]++;if(a[i]%3==0)c[1]++;if(a[i]%4==0)c[2]++;}printf("%d%d%d\n",c[0],c[1],c[2]);}答案:6453.執(zhí)行下面程序的輸出結(jié)果為#include<stdio.h>voidmain(){/inta[3][3]={{13,18,16},{15,19,12},{8,15,22}};inti,j,x=a[0][0];for(i=0;i<3;i++)for(j=0;j<3;j++)if(a[i][j]<x)x=a[i][j];printf("x=%d\n",x);}答案:x=84.執(zhí)行下面程序的輸出結(jié)果為#include<stdio.h>voidmain(){inta[3][3]={{12,18,10},{8,6,14},{5,10,19}};inti,j,s[3]={0};for(i=0;i<3;i++)for(j=0;j<3;j++)s[a[i][j]%3]+=a[i][j];for(i=0;i<3;i++)printf("%d",s[i]);}答案:363927自測(cè)練習(xí)六:字符串的定義與應(yīng)用自測(cè)練習(xí)1.利用一維字符數(shù)組存儲(chǔ)一個(gè)字符串時(shí),在其末尾自動(dòng)存儲(chǔ)的一個(gè)字符是(a.'\n'b.'\0'c.空格d.回車(chē)2.一個(gè)二維字符數(shù)組a[M][N]能夠存儲(chǔ)的字符串個(gè)數(shù)至多為(a.Mb.1c.1d.N/3.若需要把一個(gè)字符串賦給字符數(shù)組,則選用的函數(shù)是(a.strlenb.strcatc.strcpyd.strcmp4.在C5.對(duì)于一個(gè)長(zhǎng)度為n的字符串,存儲(chǔ)它的字符數(shù)組的長(zhǎng)度至少為n6.有一個(gè)語(yǔ)句為“chars2[4]="abcd";s27.執(zhí)行下面程序的輸出結(jié)果為#include<<stdio.h>#include<string.h>voidmain(){intc1,c2;chara[20]="String1234\n";charb[10]="str";c1=strlen(a);strcat(b,"245\0");intc2=strlen(b);printf("%d%d\n",c1,c2);}答案:1168.執(zhí)行下面程序后,假定從鍵盤(pán)上輸入的兩個(gè)字符串?dāng)?shù)據(jù)為123和,則輸出結(jié)果為#include<stdio.h>#include<string.h>voidmain(){chara[20],b[20];scanf("%s%s",a,b);if(strcmp(a,b)>=0)printf("%s%s\n",a,b);elseprintf("%s%s\n",b,a);/}答案:456123第四章綜合練習(xí)一、單項(xiàng)選擇題1.假定有一個(gè)元素類(lèi)型為int的數(shù)組a[10],它所占用的存儲(chǔ)空間的字節(jié)數(shù)為a.20(b.80c.10d.402.假定一維數(shù)組的定義為“char*a[8];a.16(b.8c.32d.643.假定有一個(gè)定義語(yǔ)句為“inta[10]={3,4,2,8,6};a[5]的值為(a.6b.2c.0d.84.在下面的一維數(shù)組定義語(yǔ)句中,有語(yǔ)法錯(cuò)誤的是(a[];a[5];a[10]={0};a[]={1,2,3};5.inta[3][5];a.12/b.8c.10d.156.假定有一個(gè)定義語(yǔ)句為“inta[3][4]={{3,4},{2,8,6}};a[1][2]的值為(a.4b.6c.8d.27.對(duì)于一個(gè)長(zhǎng)度為n的字符串,保存它至少需要占用的存儲(chǔ)字節(jié)數(shù)為(a.n+2b.n+1c.nd.n18.對(duì)于一個(gè)二維字符數(shù)組a[M][N],存儲(chǔ)每個(gè)字符串的長(zhǎng)度至多為(a.Mb.Nc.1d.N19.若需要比較兩個(gè)字符串的大小,則選用的函數(shù)是(a.strcmpb.strlenc.strcatd.strcpy二、判斷題10.12.在一維數(shù)組的定義語(yǔ)句中,給數(shù)組賦初值的部分是用一對(duì)花括號(hào)括起來(lái)的數(shù)/13.14.15.假定二維數(shù)組的定義語(yǔ)句為“doublea[M][N];值范圍在1~N16.typedefcharBB[10];BB為含有10個(gè)元素的一維字符17.typedefcharBB[10][50];BB為含有10行50列共50018.一個(gè)二維字符數(shù)組a[10][20]中存儲(chǔ)每個(gè)字符串的最大長(zhǎng)度為19三、程序填空題19.#include<stdio.h>voidmain(){inta[8]={10,8,6,15,9,21,8,16};inti,x=a[0];for(i=1;i<8;i++)if(a[i]>x)x=a[i];printf("x=%d\n",x);}答案:x=2120.#include<stdio.h>voidmain(){inta[8]={12,15,20,8,5,9,16,10};inti,s[3]={0};for(i=0;i<8;i++)s[a[i]%3]+=a[i];printf("%d%d%d\n",s[0],s[1],s[2]);}答案:36263321.#include<stdio.h>voidmain(){/inta[3][3]={{3,8,6},{5,9,2},{8,5,12}};inti,j,b[3]={0};for(i=0;i<3;i++)for(j=0;j<3;j++)b[j]+=a[i][j];for(j=0;j<3;j++)printf("%d",b[j]);}答案:16222022.#include<stdio.h>voidmain(){inta[3][4]={{60,75,83,52},{76,94,88,35},{80,74,46,90}};inti,j,x=a[0][0],y=-1;for(i=0;i<3;i++)for(j=0;j<4;j++)if(a[i][j]>x){y=x;x=a[i][j];}elseif(a[i][j]>y)y=a[i][j];printf("%d%d\n",x,y);}答案:949023.#include<stdio.h>#include<string.h>voidmain(){chara[10],b[10],c[10];intc1,c2,c3;scanf("%s%s%s",a,b,c);c1=strlen(a);c2=strlen(b);c3=strlen(c);if(c1>c2&&c1>c3)printf("%s",a);elseif(c2>c1&&c2>c3)printf("%s",b);elseprintf("%s",c);}/答案:xucong24.#include<stdio.h>voidmain(){chara[]="abcdbfbgacd";inti=0,i1=0,i2=0,i3=0;for(i=0;a[i]!='\0';i++){switch(a[i]){case'a':i1++;break;case'b':i2++;break;case'c':i3++;break;}}printf("%d%d%d%d\n",i1,i2,i3,i);}答案:21125.#include<stdio.h>voidmain(){chara[]="12342345342356";inti,c[7]={0};for(i=0;a[i]!='\0';i++)c[a[i]-48]++;//48為數(shù)字字符0的ASCII碼for(i=1;i<7;i++)printf("%d",c[i]);}答案:4第五章指針的概念自測(cè)練習(xí)一:指針的概念自測(cè)練習(xí)1.一個(gè)指針類(lèi)型的簡(jiǎn)單變量占用內(nèi)存中的字節(jié)數(shù)為(a.16/b.4c.2d.82.在定義指針變量的語(yǔ)句中,在指針變量名的前面標(biāo)記的字符為(a.$b.*c.#d.&3.4.假定一個(gè)數(shù)據(jù)對(duì)象為x,則x的地址表示為*x自測(cè)練習(xí)二:指針變量的定義和使用自測(cè)練習(xí)1.假定p是一個(gè)指向float型數(shù)據(jù)的指針,則p+1所指數(shù)據(jù)的地址比p所指數(shù)據(jù)的地址大(。a.4個(gè)字節(jié)b.8個(gè)字節(jié)c.1個(gè)字節(jié)d.2個(gè)字節(jié)2.假定變量m定義為“intm=7;p=&m;*p=m;&p=*m;*p=&m;3.假定一個(gè)數(shù)據(jù)對(duì)象為int*類(lèi)型,則指向該對(duì)象的指針類(lèi)型為(*******p,**pp;,p和pp/自測(cè)練習(xí)三:指針運(yùn)算自測(cè)練習(xí)1.假定p是一個(gè)指向數(shù)據(jù)對(duì)象的指針,則通過(guò)p表示該數(shù)據(jù)對(duì)象為(a.*pb.p&c.p*d.&p2.若p指向x,則與x的等價(jià)表示為(a.*xb.*pc.pd.&x3.假定p所指對(duì)象的值為25p+1所指對(duì)象的值為42*++p的值為42。(√)4.假定p所指對(duì)象的值為25,p1所指對(duì)象的值為42,則執(zhí)行*p運(yùn)算后,p所指對(duì)象的值為42自測(cè)練習(xí)四:指針與數(shù)組的關(guān)系自測(cè)練習(xí)1.假定a為一個(gè)數(shù)組名,則下面表達(dá)式中錯(cuò)誤的是(a.*(a+1)b.*ac.*a++d.a[i]2.已知“inta[10],x,*pa=a;a[3]元素的值賦給x,則不正確的語(yǔ)句為(a.x=pa[3];b.x=a[3];c.x=*pa+3;d.x=*(a+3);3.已知“chara[3][5];a[2][3]的地址比該數(shù)組的首地址大(a.52個(gè)字節(jié)/b.26個(gè)字節(jié)c.13個(gè)字節(jié)d.48個(gè)字節(jié)4.一個(gè)二維數(shù)組元素為a[i][j],它的指針訪(fǎng)問(wèn)方式不正確的是(a.(*(a+i))[j]b.*(a[i]+j)c.*a[i]+jd.*(*(a+i)+j)5.1.假定a是一個(gè)一維數(shù)組,則表達(dá)式所對(duì)應(yīng)的元素為a[i]6.1.假定a是一個(gè)一維數(shù)組,則表達(dá)式所對(duì)應(yīng)的元素為a[i]7.假定a是一個(gè)一維數(shù)組,則進(jìn)行8.已知“inta[3][5];int(*p)[5]=a;自測(cè)練習(xí)五:變量存儲(chǔ)空間的動(dòng)態(tài)分配自測(cè)練習(xí)1.對(duì)于每個(gè)進(jìn)行動(dòng)態(tài)存儲(chǔ)分配的函數(shù),其返回值類(lèi)型為(a.void*b.charc.char*d.void2.已知“int*p=calloc(24,sizeof(int));p所指向的動(dòng)態(tài)內(nèi)存空間中,能夠存儲(chǔ)整型元素的個(gè)數(shù)為(a.12b.58c.24d.63.stdio.h。(×)4.進(jìn)行動(dòng)態(tài)存儲(chǔ)分配的malloc()/自測(cè)練習(xí)六:使用指針和動(dòng)態(tài)存儲(chǔ)分配的程序舉例自測(cè)練習(xí)1.執(zhí)行下面程序的輸出結(jié)果為#include<stdio.h>#includevoidmain(){int*p=malloc(sizeof(int));*p=20;*p+=30;printf("%d\n",*p);}答案:502.執(zhí)行下面程序的輸出結(jié)果為#include<stdio.h>#include<stdlib.h>voidmain(){int*p=calloc(6,sizeof(int));int*t;*p=1;for(t=p+1;t<p+6;t++)*t=*(t1)+3;printf("%d\n",*(p+5));}答案:16第五章綜合練習(xí)一、單項(xiàng)選擇題1.一個(gè)指針指向一個(gè)數(shù)據(jù)對(duì)象,它保存著該數(shù)據(jù)對(duì)象的地址,若數(shù)據(jù)對(duì)象為DataType類(lèi)型,則該指針的類(lèi)型為(a.DataType&b.DataType*/c.DataType**d.DataType2.NULL是一個(gè)符號(hào)常量,通常作為空指針值,它的取值為(a.1b.0c.1d.'\n'3.若要把一個(gè)整型指針pa.(int)*pb.(char*)*)pd.(char*)p4.若要定義整型指針p并初始指向x,則所使用的定義語(yǔ)句為(*p=&x;p=&*p=x;*p=&x;5.假定p所指對(duì)象的值為25p+1所指對(duì)象的值為42*p++a.43b.26c.25d.426.假定p是一個(gè)指針變量,則該變量的地址表示為(a.&&pb.&pc.**pd.*p7.已知“char*s="Helloworld!";p指向s所指向的同一個(gè)字符串,則p應(yīng)定義為(a.char*p(s);/b.char*p=&s;c.char*p;p=*s;d.char*p=s;8.假定a為一個(gè)數(shù)組名,則下面表達(dá)式中錯(cuò)誤的是(a.(*a)++b.*a++c.a+id.*a+i9.已知“charb[10]=”12345”,*p=b;*(p+2)的值為(a.'4'b.'3'c.'2'd.'5'10.已知“inta[6][5];a[2][4]的地址比該數(shù)組的首地址大(a.56個(gè)字節(jié)b.14個(gè)字節(jié)c.28個(gè)字節(jié)d.96個(gè)字節(jié)要使p指向二維整型數(shù)組a[10][20],p應(yīng)定義為((*p)[20]=a;*p=a;**p=a;*p[20]=a;12.執(zhí)行“int*p=malloc(sizeof(double)*2);”語(yǔ)句后得到的動(dòng)態(tài)存儲(chǔ)空間的字節(jié)數(shù)為(a.16b.4c.8d.32/13.利用動(dòng)態(tài)存儲(chǔ)分配創(chuàng)建具有10a.char*p=calloc(5,4);b.char*p=malloc(10);c.char*p=malloc(10,1);d.char*p=calloc(10);二、判斷題14.15.在定義指針變量的語(yǔ)句“int*p,pp;”中,p和pp16.typedefint*inPointer;inPointer定義為int*17.假定a是一個(gè)一維數(shù)組,則a+i的值與&a[i]18.已知“inta[10],*p=a;19.假定a是一個(gè)二維數(shù)組,則表達(dá)式*(a[j]+i)所對(duì)應(yīng)的元素為a[i][j]20.假定a是一個(gè)二維數(shù)組,則數(shù)組名a的值和a[0]21.進(jìn)行動(dòng)態(tài)存儲(chǔ)分配的22.用于釋放動(dòng)態(tài)存儲(chǔ)空間的函數(shù)為23.假定aa+i所指對(duì)象的地址比a地址大4*i三、程序填空題24.執(zhí)行下面程序的輸出結(jié)果為答案:8025.#include<stdio.h>voidmain(){inta[8];ints1=0,s2=0,*p;請(qǐng)輸入8個(gè)整數(shù):");for(p=a;p<a+8;p++)scanf("%d",p);for(p=a;p<a+8;p++){if(*p%2)s1+=*p;elses2+=*p;}printf("%d%d\n",s1,s2);/}答案:偶數(shù)26.#include<stdio.h>voidmain(){chara[5][10]={"12345","asde45","wer45t","zxc12","89uy78"};char*p;inti,c=0,k=0;for(i=0;i<5;i++){p=&a[i][0];while(*p!='\0'){if(*p>='0'&&*p<='9')k++;c++;p++;}}printf("%d%d\n",k,c);}答案:152827.#include<stdio.h>#include<stdlib.h>voidmain(){inti,n,*a;doscanf("%d",&n);while(n<2);a=calloc(n,sizeof(int));for(i=0;i<n;i++)if(i%2)a[i]=2*n+i;elsea[i]=2*ni;for(i=0;i<n;i++)printf("%d\n",a[i]);}答案:13628.#include<stdio.h>#include<stdlib.h>/voidmain(){inti=0,j,n=10,*a;a=calloc(10,sizeof(int));while(i<n){a[i]=rand()%30+10;//每次得到一個(gè)隨機(jī)整數(shù)for(j=0;j<i;j++)if(a[i]==a[j])break;if(i==j)i++;}for(i=0;i<n;i++)printf("%d\n",a[i]);}答案:相同(相等)第六章函數(shù)的定義自測(cè)練習(xí)一:函數(shù)的定義自測(cè)練習(xí)1.下面正確的函數(shù)原型語(yǔ)句是()a.voidint(doublea);Function(voida);c.voidFunction(int);Function(a);2.函數(shù)調(diào)用中所含實(shí)參的個(gè)數(shù)為(a.3b.4c.5d.23.在程序的一個(gè)文件中定義的函數(shù),若要在另一個(gè)文件中調(diào)用,則必須在這另一個(gè)文件中給出該函數(shù)的(a.參數(shù)表/b.函數(shù)名c.返回類(lèi)型d.原型語(yǔ)句4.在一個(gè)函數(shù)定義中,參數(shù)表中的參數(shù)類(lèi)型可以為void5.6.自測(cè)練習(xí)二:函數(shù)的調(diào)用自測(cè)練習(xí)1.假定一個(gè)函數(shù)的原型為intff(intx),一個(gè)整型變量為,則下面函數(shù)調(diào)用表達(dá)式不正確的是(a.ff(a+10)b.ff(3)c.ff(*a)d.ff(a)2.若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是(a.數(shù)組元素的個(gè)數(shù)b.數(shù)組中全部元素的值c.數(shù)組的首地址d.數(shù)組中第一個(gè)元素的值3.假定一個(gè)函數(shù)原型為intf1(inta[][N],intn),與數(shù)組參數(shù)等價(jià)的表示為(****a[N](*a)[N]4.5.6.當(dāng)使用xk4(2,4)調(diào)用此函數(shù)時(shí),返回值為intxk4(intx,intn){//n為大于等于0的整數(shù)inti,p=1,s=1;for(i=1;i<=n;i++){p*=x;/s+=i*p;}returns;}答案:997.假定以1.0作為結(jié)束鍵盤(pán)輸入的標(biāo)志,此函數(shù)的功能是求出并返回從鍵盤(pán)上輸入的一批實(shí)數(shù)的doublexk7(){doublex,y=0;intn=0;printf("請(qǐng)輸入一批實(shí)數(shù),直到1.0為止!\n");do{scanf("%Lf",&x);if(x==1.0)break;n++;y+=x;}while(1);if(n==0)returny;elsereturny/n;}答案:平均值8.此函數(shù)的功能是把十進(jìn)制正整數(shù)x轉(zhuǎn)換為()進(jìn)制數(shù)輸出出來(lái)__________。voidxk10(intx){chara[10];inti=0,rem;do{rem=x%16;x=x/16;if(rem<10)a[i]=48+rem;//'0'字符的ASCII碼為48elsea[i]=55+rem;//'A'字符的ASCII碼為65i++;}while(x!=0);while(i>0)printf("%c",a[i]);/}答案:十六9.此程序運(yùn)行后,得到的輸出結(jié)果為#include<stdio.h>intwr9(int*a,intn){inti,s=0;for(i=0;i<n;i++)s+=a[i];returns;}voidmain(){inta[]={5,10,8,7,20,15};printf("%d%d\n",wr9(a,4),wr9(a+2,3));}答案:3035自測(cè)練習(xí)三:變量的作用域自測(cè)練習(xí)1.在C44種作用域的是(a.全局b.語(yǔ)句c.文件d.局部2.函數(shù)定義參數(shù)表中的每個(gè)形參變量,其作用域范圍為所在的整個(gè)(a.參數(shù)表b.程序c.函數(shù)d.文件3.在函數(shù)外定義的變量,若不帶有作用域關(guān)鍵字,則它具有(a.局部作用域b.文件作用域/c.全局作用域d.函數(shù)作用域4.15.(√)6.對(duì)于不加static0自測(cè)練習(xí)四:分析變量作用域的程序舉例自測(cè)練習(xí)1.在此程序中,具有全局文件作用域的變量是#include<stdio.h>intx1=5;staticintx2=10;constintn=25;voidmain(){while(x1+x2<n){x1+=2;x2++;}printf("%d%d\n",x1,x2);}答案:x12.此程序運(yùn)行后,得到的輸出結(jié)果為#include<stdio.h>intfn3(inta,intb){intc=a;a=b;b=c;return2*a+b+1;}voidmain(){intx=5,y=8;intz=fn3(x,y);printf("%d\n",x+2*y+z);}答案:43/3.此程序運(yùn)行后,得到的輸出結(jié)果為#include<stdio.h>intfn3(inta,int*b){a*=2;*b+=5;returna+*b2;}voidmain(){inta=5,b=10;intc=fn3(a+1,&b)+a+b;printf("%d\n",c);}答案:454.此程序運(yùn)行后,得到的輸出結(jié)果為#include<stdio.h>voidfn1(intx){inty=2;staticintz=2;y+=x;z+=x;printf("%d",x+y+z);}voidmain(){fn1(3);fn1(4);}答案:1319自測(cè)練習(xí)五:遞歸函數(shù)和函數(shù)指針自測(cè)練習(xí)1.在函數(shù)體中把出現(xiàn)調(diào)用自身函數(shù)的情況稱(chēng)為(a.間接遞歸調(diào)用b.非遞歸調(diào)用/c.直接遞歸調(diào)用d.末尾遞歸調(diào)用2.在函數(shù)定義的參數(shù)表中,也可以使用函數(shù)參數(shù),假定一個(gè)函數(shù)參數(shù)原型為int,則等價(jià)的函數(shù)指針說(shuō)明為(*ff(int)(*ff)(int)*ff3.在函數(shù)定義中,存在著調(diào)用自身函數(shù)的函數(shù)調(diào)用表達(dá)式,則稱(chēng)此函數(shù)為遞歸函4.在遞歸函數(shù)的每次遞歸調(diào)用中,對(duì)于參數(shù)表中的每個(gè)形參,得到的值都相同。(×)5.在C自測(cè)練習(xí)六:利用函數(shù)編寫(xiě)應(yīng)用程序舉例自測(cè)練習(xí)1.這是一個(gè)遞歸函數(shù),其功能是求出并返回?cái)?shù)組a[n]中n個(gè)元素之積,請(qǐng)?jiān)跈M線(xiàn)處填。intff1(inta[],intn){if(n==1)returna[0];elsereturna[n1]*;}答案:ff1(a,n1)2.這是一個(gè)含有遞歸函數(shù)的程序,此程序運(yùn)行后,得到的輸出結(jié)果為。#include<stdio.h>intff1(inta[],intn){if(n==1){a[0]=1;returna[0];}else{a[n1);returna[n-1];}}voidmain(){inta[5];/ff1(a,5);printf("%d\n",a[4]);}答案:163.m和n在橫線(xiàn)處填寫(xiě)合適內(nèi)容。intff2(intm,intn,intb){//初始調(diào)用時(shí)傳送給b的值必須為2if(m<b||n<b)returnm*n;elseif(m%b==0&&n%b==0)returnb*ff2(m/b,n/b,b);elsereturn;}答案:ff2(m,n,++b)第六章綜合練習(xí)一、單項(xiàng)選擇題1.在下面的函數(shù)聲明語(yǔ)句中存在著語(yǔ)法錯(cuò)誤的是(a.AA(int,int)b.AA(inta;intb)c.AA(inta,int)d.AA(inta,intb)2.添加的關(guān)鍵字為(a.autob.defaultc.staticd.extern3.externchar*f1(char*x){returnx;}/關(guān)鍵字為(b.externc.chard.char*4.intff(int*a[10],則下面函數(shù)調(diào)用表達(dá)式不正確的是(a.ff(a+3)b.ff(&a[0])c.ff(a)d.ff(a[0])5.假定一個(gè)函數(shù)原型語(yǔ)句為“intf1(inta[],intn);(***&a6.假定一個(gè)函數(shù)的參數(shù)說(shuō)明為constintaa.a=10b.printf("%d",a)x=ad.a==07.在函數(shù)體中定義的變量具有(a.函數(shù)作用域b.局部作用域c.全局作用域d.文件作用域8.在函數(shù)外定義的變量,若帶有作用域關(guān)鍵字static,則它具有(a.文件作用域/b.全局作用域c.局部作用域d.函數(shù)作用域9.在函數(shù)體中定義一個(gè)靜態(tài)變量時(shí),選用的存儲(chǔ)屬性關(guān)鍵字為(a.externb.autoc.registerd.static10.voidff(inta[],(*ff)(int*a,int)b.void(*ff)(int*a,int)c.*ff(int[],int)d.void*ff(int*a,int)二、判斷題12.13.14.對(duì)于標(biāo)識(shí)為static屬性的變量,若沒(méi)有對(duì)它進(jìn)行初始化,則默認(rèn)的初值為0。(√)15.在函數(shù)體中定義一個(gè)變量時(shí),若不選用任何存儲(chǔ)屬性關(guān)鍵字進(jìn)行標(biāo)識(shí),則它17.在C18.在C三、程序填空題18.voidxk9(intx){chara[10];inti=0,rem;do{rem=x%8;x=x/8;/a[i]=48+rem;i++;//'0'字符的ASCII碼為48}while(x!=0);while(i>0)printf("%c",a[i]);printf("\n");}答案:八19.intwr1(inta[],intn,intx){inti;for(i=0;i<n;i++)if(a[i]==x)return1;return0;}答案:查找(順序查找)20.voidwr4(inta[],intb[],intn){inti;b[0]=b[1]=0;for(i=0;i<n;i++)if(a[i]%2==0)b[0]++;elseb[1]++;}答案:奇數(shù)21.#include<stdio.h>intwr11(inta[],intn,intk){inti,c=0;for(i=0;i<n;i++)if(a[i]>=k)c++;returnc;}voidmain(){inta[9]={9,5,7,12,4,8,15,10,15};/intc=wr11(a,9,8);printf("%d\n",c);}答案:622.#include<stdio.h>intc=15;voidmain(){inta=10,b=20;{intb=a+15;printf("%d",a+b+c);}printf("%d\n",a+b+c);}答案:504523.#include<stdio.h>voidfn2(int*a,int*b){intx=*a;*a=*b;*b=x;}voidmain(){intx=15,y=26;fn2(&x,&y);printf("%d%d\n",x,y);}答案:261524.#include<stdio.h>intfn1(){intx=0;staticinty=0;x++;y++;returnx+y;}/voidmain(){intx1=fn1();intx2=fn1();printf("%d%d\n",x1,x2);}答案:2325.intff3(intm,intn,intb){if(m<b||n<b)return1;elseif(m%b==0&&n%b==0)returnb*ff3(m/b,n/b,b);elsereturn}答案:ff3(m,n,++b)四、程序設(shè)計(jì)題26.編寫(xiě)一個(gè)函數(shù),求出一維整型數(shù)組a[n]中所有元素的平方之和。intfun1(inta[],intn);答案:intfun1(inta[],intn){inti,s=0;for(i=0;i<n;i++)s+=a[i]*a[i];returns;}27.函數(shù),分別求出一維整型數(shù)組a[n]中所有奇數(shù)元素的個(gè)數(shù)和所有偶數(shù)元素的個(gè)數(shù),假定分別用c1和c2所指的對(duì)象保存。voidfun2(inta[],intn,int*c1,int*c2);答案:voidfun2(inta[],intn,int*c1,int*c2){inti;*c1=*c2=0;/for(i=0;i<n;i++)if(a[i]%2!=0)(*c1)++;else(*c2)++;}28.編寫(xiě)一個(gè)非遞歸函數(shù)過(guò)程,求出兩個(gè)自然數(shù)m和n的最大公約數(shù)。intfun5(intm,intn);答案:intfun5(intm,intn){intr;while(1){if(n==0)returnm;r=m%n;m=n;n=r;}}第七章結(jié)構(gòu)類(lèi)型的定義自測(cè)練習(xí)一:結(jié)構(gòu)類(lèi)型的定義自測(cè)練習(xí)1.在結(jié)構(gòu)類(lèi)型的定義中,使用的關(guān)鍵字是(a.staticb.enumc.structd.union2.在結(jié)構(gòu)類(lèi)型的定義中,不同數(shù)據(jù)成員的定義項(xiàng)之間采用的分隔符是(a.冒號(hào)b.分號(hào)c.句點(diǎn)d.逗號(hào)/3.假定一個(gè)結(jié)構(gòu)類(lèi)型的定義為“structB{inta[5];char*b;};(a.28b.20c.24d.214.在C語(yǔ)言中,一個(gè)結(jié)構(gòu)類(lèi)型的長(zhǎng)度等于所含的所有數(shù)據(jù)成員類(lèi)型的長(zhǎng)度之和。(√)5.6.自測(cè)練習(xí)二:結(jié)構(gòu)變量的定義和成員訪(fǎng)問(wèn)自測(cè)練習(xí)1.structBook{chartitle[20];doubleprice;}bk;句定義為(a.structBook*d=NULL;b.structBookc=&bk;c.structBooka=bk;d.structBook*b=&bk;2.structBook{chartitle[20];doubleprice;};定義為(a.structBooka,*x=&a;b.structBook*x=malloc(sizeof(structBook));c.structBooka={"C++Programming",27.0};d.structBook*x=calloc(sizeof(structBook));3.假定要訪(fǎng)問(wèn)一個(gè)結(jié)構(gòu)變量x中的數(shù)據(jù)成員,則表示方法為(a.x(a)b.x>ac.x:ad.x.a4.假定要訪(fǎng)問(wèn)一個(gè)結(jié)構(gòu)指針p所指對(duì)象中的b/為(a.x>ab.x:ac.x(a)d.x.a5.使用結(jié)構(gòu)類(lèi)型時(shí),只需要使用類(lèi)型標(biāo)識(shí)符,不需要使用關(guān)鍵字struct6.在結(jié)構(gòu)成員訪(fǎng)問(wèn)運(yùn)算符中,點(diǎn)運(yùn)算符7.自測(cè)練習(xí)四:結(jié)構(gòu)與鏈表自測(cè)練習(xí)1.假定一個(gè)鏈表中結(jié)點(diǎn)的結(jié)構(gòu)類(lèi)型為“structAA{intdata,structAA*next;};next數(shù)據(jù)成員的類(lèi)型為(a.structAAb.structAA*c.AA*2.假定一個(gè)鏈表的表頭指針為,結(jié)點(diǎn)中包含有data和next域,則向該鏈表的表頭插入一個(gè)地址為p的結(jié)點(diǎn)時(shí),應(yīng)執(zhí)行的操作為p>next=f和(a.>next=p提示:答案為C。向表頭指針為f的一個(gè)鏈表中插入表頭結(jié)點(diǎn)p時(shí),應(yīng)通過(guò)p>next=f操作使原表頭結(jié)點(diǎn)成為p的后繼結(jié)點(diǎn),再通過(guò)f=p操作使表頭指針f指向新插入的表頭結(jié)點(diǎn)(即pb.>nextc.f=pd.>next3.4.在一個(gè)鏈表中,表尾結(jié)點(diǎn)指針域的值為空(NULL)5.6.structstrNode{charname[15];structstrNode*next;};數(shù)能夠遍歷以f為表頭指針的單鏈表,請(qǐng)?jiān)跈M線(xiàn)處填寫(xiě)合適內(nèi)容。voidxb1(structstrNode*f){while(f!=NULL){/printf("%s",f->name);f=}printf("\n");}答案:f>next7.此程序運(yùn)行后,得到的輸出結(jié)果為#include#includestructintNode{intvalue;structintNode*next;};voidmain(void){structintNodex={32,NULL},y={45,&x},*r;for(r=&y;r!=NULL;r=r>next)printf("%d",r>value);printf("\n");}答案:45328.structstrNode{charname[15];structstrNode*next;};數(shù)能夠建立并返回以f為表頭指針的單鏈表,請(qǐng)?jiān)跈M線(xiàn)處填寫(xiě)合適內(nèi)容。structstrNode*xb2(){structstrNode*f=NULL,*r;chara[15];輸入每個(gè)字符串,用1\"作為結(jié)束標(biāo)志\n");do{sca
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育培訓(xùn)機(jī)構(gòu)校長(zhǎng)合同3篇
- 旅游代理加盟合同3篇
- 安裝工程合同的工程結(jié)算報(bào)告3篇
- 方程式賽車(chē)教練勞動(dòng)合同范本3篇
- 工業(yè)門(mén)安裝工程合同書(shū)3篇
- 教育培訓(xùn)機(jī)構(gòu)入職勞動(dòng)合同3篇
- 摩托車(chē)租賃合同范文簡(jiǎn)版3篇
- 數(shù)據(jù)庫(kù)安全防護(hù)與信息服務(wù)3篇
- 工業(yè)設(shè)備購(gòu)銷(xiāo)協(xié)議3篇
- 教育機(jī)構(gòu)合作協(xié)議范文3篇
- 2024-2030年中國(guó)除顫儀行業(yè)市場(chǎng)分析報(bào)告
- 歷史-安徽省皖江名校聯(lián)盟2025屆高三12月聯(lián)考試題和答案
- 成都中醫(yī)藥大學(xué)博士申請(qǐng)
- 公司業(yè)績(jī)匯報(bào)及規(guī)劃
- 統(tǒng)編版(2024版)七年級(jí)上冊(cè)歷史期末復(fù)習(xí)課件
- 【MOOC】工程制圖-北京科技大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 招標(biāo)代理崗位職責(zé)規(guī)章制度
- 幼兒園大班音樂(lè)《獻(xiàn)上最美的哈達(dá)》課件
- 專(zhuān)題07 非連性閱讀(新熱點(diǎn)題型)-2023-2024學(xué)年八年級(jí)語(yǔ)文下學(xué)期期中專(zhuān)題復(fù)習(xí)(深圳專(zhuān)用)(原卷版)
- 2024年凈化車(chē)間工程的合同
- 殘疾兒童家長(zhǎng)培訓(xùn)講座
評(píng)論
0/150
提交評(píng)論