c語(yǔ)言程序設(shè)計(jì)試題及答案_第1頁(yè)
c語(yǔ)言程序設(shè)計(jì)試題及答案_第2頁(yè)
c語(yǔ)言程序設(shè)計(jì)試題及答案_第3頁(yè)
c語(yǔ)言程序設(shè)計(jì)試題及答案_第4頁(yè)
已閱讀5頁(yè),還剩98頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語(yǔ)言復(fù)習(xí)資料必須清楚的:1)程序結(jié)構(gòu)是三種:順序結(jié)構(gòu),循環(huán)結(jié)構(gòu)(三個(gè)循環(huán)結(jié)構(gòu)),選擇結(jié)構(gòu)(if和switch)2)讀程序都要從main()入口,然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。3)計(jì)算機(jī)的數(shù)據(jù)在電腦中保存是以二進(jìn)制的形式.數(shù)據(jù)存放的位置就是他的地址.4)bit是位是指為〇或者!〇byte是指字節(jié),ー個(gè)字節(jié)=八個(gè)位.5)一定要記住二進(jìn)制如何劃成十進(jìn)制。概念??嫉降?1、編譯預(yù)處理不是C語(yǔ)言的一部分,不再運(yùn)行時(shí)間。C語(yǔ)言編譯的程序稱為源程序,它以ASCI!數(shù)值存放在文本文件中。2、每個(gè)C語(yǔ)言程序中main函數(shù)是有且只有一個(gè)。3、在函數(shù)中不可以再定義函數(shù)。4、算法的是一定要有輸出的,他可以沒有輸入。5ヽbreak可用于循環(huán)結(jié)構(gòu)和switch語(yǔ)句〇6、逗號(hào)運(yùn)算符的級(jí)別最低。第一章1)合法的用戶標(biāo)識(shí)符考查:合法的要求是由字母,數(shù)字,下劃線組成。有其它元素就錯(cuò)了。并且第一個(gè)必須為字母或則是下劃線。第一個(gè)為數(shù)字就錯(cuò)了。關(guān)鍵字不可以作為用戶標(biāo)識(shí)符號(hào)〇maindefinescanfprintf都不是關(guān)鍵字。迷惑你的地方If是可以做為用戶標(biāo)識(shí)符。因?yàn)镮f中的第一個(gè)字母大寫了,所以不是關(guān)鍵字。2)實(shí)型數(shù)據(jù)的合法形式:2.333e-1就是合法的,且數(shù)據(jù)是2.333x10-1??荚嚳谠E:e前e后必有數(shù),e后必為整數(shù)。.3)字符數(shù)據(jù)的合法形式::T是字符占ー個(gè)字節(jié),是字符串占兩個(gè)字節(jié)(含有一個(gè)結(jié)束符號(hào))。,0I的ASCII數(shù)值表示為48,宜的ASCII數(shù)值是97,A的ASCII數(shù)值是65。4)整型一般是兩個(gè)字節(jié),字符型是ー個(gè)字節(jié),雙精度一般是4個(gè)字節(jié):考試時(shí)候一般會(huì)說,在16位編譯系統(tǒng),或者是32位系統(tǒng)。碰到這種情況,不要去管,一樣做題。掌握整型一般是兩個(gè)字節(jié),字符型是ー個(gè)字節(jié),雙精度一般是4個(gè)字節(jié)就可以了。5)轉(zhuǎn)義字符的考查:在程序中inta=0x6d,是把ー個(gè)十六進(jìn)制的數(shù)給變量a注意這里的Ox必須存在。在程序1inta=06d,是ー,個(gè)ハ進(jìn)制的形式。在轉(zhuǎn)義字符中,''x6d"オ是合法的,。不能寫,并且x是小寫。へ14「是合法的,〇是不能寫的。ヘ108,是非法的,因?yàn)椴豢梢猿霈F(xiàn)8。6)算術(shù)運(yùn)算符號(hào)的優(yōu)先級(jí)別:同級(jí)別的有的是從左到右,有的是從右到左。7)強(qiáng)制類型轉(zhuǎn)換:一定是(int)a不是int(a),注意類型上一定有括號(hào)的。注意(int)(a+b)和(int)a+b的區(qū)別。前是把a(bǔ)+b轉(zhuǎn)型,后是把a(bǔ)轉(zhuǎn)型再加b。8)表達(dá)式的考查:是表達(dá)式就一定有數(shù)值。賦值表達(dá)式:表達(dá)式數(shù)值是最左邊的數(shù)值,a=b=5;該表達(dá)式為5,常量不可以賦值。自加、自減表達(dá)式:假設(shè)a=5,++a(是為6),a++(為5);運(yùn)行的機(jī)理:++a是先把變量的數(shù)值加上1,然后把得到的數(shù)值放到變量a中,然后再用這個(gè)++a表達(dá)式的數(shù)值為6,而a++是先用該表達(dá)式的數(shù)值為5,然后再把a(bǔ)的數(shù)值加上1為6,再放到變量a中。進(jìn)行了++a和a++后在下面的程序中再用到a的話都是變量a中的6了。考試口訣:++在前先加后用,++在后先用后加。逗號(hào)表達(dá)式:優(yōu)先級(jí)別最低;表達(dá)式的數(shù)值逗號(hào)最右邊的那個(gè)表達(dá)式的數(shù)值。(2,3,4)的表達(dá)式的數(shù)值就是409)位運(yùn)算的考查:會(huì)有一到二題考試題目??偟奶幚矸椒?幾乎所有的位運(yùn)算的題目都要按這個(gè)流程來處理(先把十進(jìn)制變成二進(jìn)制再變成十進(jìn)制)。例1:chara=6,b;b=a?2;這種題目的計(jì)算是先要把a(bǔ)的十進(jìn)制6化成二進(jìn)制,再做位運(yùn)算。例2r 一定要記住,例3: 在沒有舍去數(shù)據(jù)的時(shí)候,vく左移一位表示乘以2;?右移一位表布除以2〇018的數(shù)值是非法的,ハ進(jìn)制是沒有8的,逢8進(jìn)1。%符號(hào)兩邊要求是整數(shù)。不是整數(shù)就錯(cuò)了。12)三種取整丟小數(shù)的情況:>inta=1.6;ヽ(int)a;3ヽ第二章printf函數(shù)的格式考查:%d對(duì)應(yīng)整型;%c對(duì)應(yīng)字符;%f對(duì)應(yīng)單精度等等。寬度的,左對(duì)齊等修飾。%ld對(duì)應(yīng)!ongint;%lf對(duì)應(yīng)double〇scanf函數(shù)的格式考察:注意該函數(shù)的第二個(gè)部分是&a這樣的地址,不是a;Scanf("%d%d%*d%d”,&a,&b,&c);跳過輸入的第三個(gè)數(shù)據(jù)。)putchar,getchar函數(shù)的考查:chara二getchar()是沒有參數(shù)的,從鍵盤得到你輸入的一個(gè)字符給變量a。putchar(y)把字符y輸出到屏幕中。4)如何實(shí)現(xiàn)兩個(gè)變量x,y中數(shù)值的互換(要求背下來)不可以把x=y,y=x;要用中間變量t=x;x=y;y=to5)如何實(shí)現(xiàn)保留三位小數(shù),第四位四舍五入的程序,(要求背下來)這個(gè)有推廣的意義,注意x=(int)x這樣是把小數(shù)部分去掉。第三章特別要注意:c語(yǔ)言中是用非。表示邏輯真的,用〇表示邏輯假的。1)關(guān)系表達(dá)式:表達(dá)式的數(shù)值只能為1(表示為真),或。(表示假)當(dāng)關(guān)系的表達(dá)是為真的時(shí)候得到1。如9>8這個(gè)是真的,所以表達(dá)式的數(shù)值就是1;2)邏輯表達(dá)式:只能為1(表示為真),或。(表示假)共有&&II!三種邏輯運(yùn)算符號(hào)。!>&&>11優(yōu)先的級(jí)別。注意短路現(xiàn)象??荚嚤容^喜歡考到。要表示x是比。大,比10小的方法。0<x<10是不可以的(一定記住)。是先計(jì)算Ovx得到的結(jié)果為1或則〇;再用。,或1與10比較得到的總是真(為1)。所以一定要用(0<x)&&(xvl0)表示比〇大比10小。3)if語(yǔ)句else是與最接近的if且沒有else的相組合的。4)條件表達(dá)式:表達(dá)式1?表達(dá)式2:表達(dá)式3注意是當(dāng)非0時(shí)候是表達(dá)式2的數(shù)值,當(dāng)為0是就是表達(dá)式2的數(shù)值??荚嚗碓E:真前假后。switch語(yǔ)句:一定要注意有break和沒有break的差別,書上(34頁(yè))的兩個(gè)例子,沒有break時(shí)候,只要有一個(gè)case匹配了,剩下的都要執(zhí)行,有break則是直接跳出了swiche語(yǔ)句。switch只可以和break一起用,不可以和continue用。第四章1)三種循環(huán)結(jié)構(gòu):for();while();do-while()三種。for循環(huán)當(dāng)中必須是兩個(gè)分號(hào),千萬不要忘記。c)寫程序的時(shí)候一定要注意,循環(huán)一定要有結(jié)束的條件,否則成了死循環(huán)。d)do-while()循環(huán)的最后一個(gè)while。;的分號(hào)一定不能夠丟。(當(dāng)心上機(jī)改錯(cuò))2)break和continue的差別記憶方法:break:是打破的意思,(破了整個(gè)循環(huán))所以看見break就退出真?zhèn)€ー層循環(huán)。continue:是繼續(xù)的意思,(繼續(xù)循環(huán)運(yùn)算),但是要結(jié)束本次循環(huán),就是循環(huán)體內(nèi)剩下的語(yǔ)句不再執(zhí)行,跳到循環(huán)開始,然后判斷循環(huán)條件,進(jìn)行新一輪的循環(huán)。3)嵌套循環(huán)就是有循環(huán)里面還有循環(huán),這種比較復(fù)雜,要一層ー層ー步ー步耐心的計(jì)算,一般記住兩層是處理二維數(shù)組的。4)while((c=getchar())!=,\n,)和while(c=getchar()!=''n')的差別先看a=3!=2和(a=3)!=2的區(qū)別:。二號(hào)的級(jí)別高于二號(hào)所以第ー個(gè)先計(jì)算3I二2)第一個(gè)a的數(shù)值是得到的1;第二個(gè)a的數(shù)值是3??荚囎⒁恻c(diǎn):括號(hào)在這里的重要性。第五章函數(shù):是具有一定功能的ー個(gè)程序塊;1)函數(shù)的參數(shù),返回?cái)?shù)值(示意圖):main()(inta=5,b=6,c;c=add(a,b);printf("%d”,c);)調(diào)用函數(shù)a,b是實(shí)參整個(gè)函數(shù)得到ー個(gè)數(shù)值就是Add函數(shù)的返回?cái)?shù)值。intadd(intx,inty)(intz;z=x+y;returnz;)被調(diào)用函數(shù)x,y是形式參數(shù)函數(shù)返回?cái)?shù)值是整型Z就是這個(gè)add函數(shù)計(jì)算后得到的結(jié)果,就是函數(shù)返回給主程序的返回?cái)?shù)值。程序是在從上往下順序執(zhí)行,當(dāng)碰到了函數(shù)add后,把a(bǔ),b的數(shù)值穿給調(diào)用函數(shù),程序暫時(shí)中斷等待返回?cái)?shù)值。當(dāng)?shù)玫搅朔祷財(cái)?shù)值后,再順序的往下執(zhí)行2)一定要注意參數(shù)之間的傳遞實(shí)參和形參之間傳數(shù)值,和傳地址的差別。(考試的重點(diǎn))傳數(shù)值的話,形參的變化不會(huì)改變實(shí)參的變化。傳地址的話,形參的變化就會(huì)有可能改變實(shí)參的變化。3)函數(shù)聲明的考查:一定要有:函數(shù)名,函數(shù)的返回類型,函數(shù)的參數(shù)類型。不一定要有:形參的名稱。指針變量的本質(zhì)是用來放地址,而一般的變量是放數(shù)值的。int*p中?p和p的差別:*p可以當(dāng)做變量來用;?的作用是取后面地址p里面的數(shù)值p是當(dāng)作地址來使用。*p++和(*p)++的之間的差別:改錯(cuò)題目中很重要*p++是地址會(huì)變化。(*p)++是數(shù)值會(huì)要變化。三名主義:(考試的重點(diǎn))數(shù)組名:表示第一個(gè)元素的地址。數(shù)組名不可以自加,他是地址常量名。(考了很多次)函數(shù)名:表示該函數(shù)的入口地址。字符串常量名:表示第一個(gè)字符的地址。第七章!ー維數(shù)組的重要概念:對(duì)a[10]這個(gè)數(shù)組的討論。1、a表示數(shù)組名,是第一個(gè)元素的地址,也就是元素a[10]的地址。2、a是地址常量,所以只要出現(xiàn)a++,或者是a=a+2賦值的都是錯(cuò)誤的。3、a是ー維數(shù)組名,所以它是列指針,也就是說a+1是跳ー列。對(duì)a[3][3]的討論。1、a表示數(shù)組名,是第一個(gè)元素的地址,也就是元素a[10]的地址。2、a是地址常量,所以只要出現(xiàn)a++,或者是a=a+2賦值的都是錯(cuò)誤的。3、a是二維數(shù)組名,所以它是行指針,也就是說a+1是跳ー行。4、a[0]、a[l]>a[2]也都是地址常量,不可以對(duì)它進(jìn)行賦值操作,同時(shí)它們都是列指針,a[O]+l,a[l]+l,a[2]+!都是跳一列。5、注意a和a[〇]>a[l]>a[2]是不同的,它們的基類型是不同的。前者是一行元素,后三者是一列元素。二維數(shù)組做題目的技巧:TOC\o"1-5"\h\z如 果 有a[3][3]={l,2,3,4,5,6,7,8,9}這樣的題目。步驟ー:把他們寫成:第一列第二列第三列a[O]a1 2 3->第一行a[l]a4 5 6—>第二行a[2]a7 8 9 ->第三行步驟ニ:這樣作題目間很簡(jiǎn)單:*(a[0]+l)我們就知道是第一行的第一個(gè)元素往后面跳一列,那么這里就是a[0][l]元素,所以是1。*(a[l]+2)我們就知道是第二行的第一個(gè)元素往后面跳二列。那么這里就是a[l]⑵元素,所以是6〇一定記住:只要是二維數(shù)組的題目,一定是寫成如上的格式,再去做題目,這樣會(huì)比較簡(jiǎn)單。數(shù)組的初始化,ー維和二維的,ー維可以不寫,二維第二個(gè)ー定要寫inta[]={1,2}合法。inta[][4]={2,3,4}合法。但inta[4][]={2,3,4}非法。二維數(shù)組中的行指針inta[l][2];其中a現(xiàn)在就是ー個(gè)行指針,a+1跳一行數(shù)組元素。搭配(*)p⑵指針a[0],a[l]現(xiàn)在就是ー個(gè)列指針。a[O]+l跳ー個(gè)數(shù)組元素。搭配?p⑵指針數(shù)組使用還有記住脫衣服法則:a⑵變成?(a+2) a[2][3]變成?(a+2)[3]再可以變成?(*(a+2)+3)這個(gè)思想很重要!第一部分:基礎(chǔ)知識(shí)(20項(xiàng),共40分)】.ー個(gè)C語(yǔ)言程序是由( )組成的。A.主程序B,子程序 C.函數(shù)D,過程.轉(zhuǎn)換說明符%x的輸出形式是( )。A,十進(jìn)制B.ハ進(jìn)制 C.十六進(jìn)制D.二進(jìn)制.若a、b均為int型變量,且a=100,則關(guān)于循環(huán)語(yǔ)句for(b=100;a!=b;++a,++b)printf(" ");的正確說法是( )。A,循環(huán)體只執(zhí)行ー次B,死循環(huán)C.循環(huán)體ー次也不執(zhí)行D.輸出 .若x、y、z均為int型變量,則執(zhí)行下列語(yǔ)句后的z值為()〇x=l;y=2;z=3;z=(x>y)?z:y;z=(z<y)?z:x;A.1 B.42 D.3.下面標(biāo)識(shí)符中,合法的用戶標(biāo)識(shí)符為()〇A.P#Ad B.12aC.char D._int.'A'+3的結(jié)果是( )〇A.'A' BJD’的ASCn碼 C.653.語(yǔ)句charstr[20];說明str是一個(gè)字符串,最多能表示()〇A.20個(gè)字符 B.19個(gè)字符C.18個(gè)字符D.21個(gè)字符.將int型變量n轉(zhuǎn)換成float型變量的方法是()〇A.floatnB.(float)nC.float(n)D.2I個(gè)字符9.以下不正確的描述是()〇使用while和do-while循環(huán)時(shí),循環(huán)變量初始化的操作應(yīng)在循環(huán)語(yǔ)句之前完成while循環(huán)是先判斷表達(dá)式后執(zhí)行循環(huán)體語(yǔ)句do-while和for循環(huán)均是先執(zhí)行循環(huán)體語(yǔ)句,后判斷表達(dá)式for、while>do-while循環(huán)中的循環(huán)體均可以由空語(yǔ)句構(gòu)成.在循環(huán)中使用break語(yǔ)句的功能是( )〇A,使程序的執(zhí)行跳出break所在的那一重循環(huán)B,使程序執(zhí)行結(jié)束C.跳出包含此break語(yǔ)句的所有循環(huán)D.終止本次循環(huán),繼續(xù)下次循環(huán).下面是ー個(gè)初始化指針的語(yǔ)句:int*px=&a;其中指針變量的名字應(yīng)該是()〇A.*pz B.aC.px D.&a12.若指針px為空指針,則()〇A.px指向不定B.px的值為零C.px的目標(biāo)為零 D.px的地址為零13.對(duì)于語(yǔ)句int*px[10],以下說法正確的是( )。A.px是一個(gè)指針,指向ー個(gè)數(shù)組,數(shù)組的元素是整數(shù)型。B.px是ーー個(gè)數(shù)組,其數(shù)組的每ー個(gè)元素是指向整數(shù)的指針。C.A和B均錯(cuò),但它是C語(yǔ)言的正確語(yǔ)句。D.C語(yǔ)言不允許這樣的語(yǔ)句。14.具有相同基類型的指針變量P和數(shù)組變量Y,下列寫法中不合法的是( )。A.P=Y*P=Y[i]C.P+ &Y[i]D.P=&Y15.已知staticinta[]={5,4,3,2,l},*p[]={a+3,a+2,a+l,a},**q=p,則表達(dá)式*(p[0]+l)+**(q+2)的值是()〇A.5 B.46 D.716.已知for(;n>=l;n--),下歹リ語(yǔ)句實(shí)現(xiàn)將S2所指字符數(shù)組中前n個(gè)字符復(fù)制到S1所指字符數(shù)組中,其中代碼不正確的是()〇A. *S1++=*S2++Sl[n-l]=S2[n-l]*(Sl+n-1)=?(S2+n-l)*(++S1)=?(++S2).調(diào)用函數(shù)的實(shí)參與被調(diào)用函數(shù)的形參應(yīng)該有如下關(guān)系()〇A.只要求實(shí)參和形參個(gè)數(shù)相等B.只要求形參和實(shí)參順序相同C.只要求實(shí)參和形參數(shù)據(jù)類型相同 D,上述三點(diǎn)均需具備.聯(lián)合體成員的數(shù)據(jù)類型()〇A.相同B.可以不同也可以相同C.長(zhǎng)度一樣D,是結(jié)構(gòu)體變量.由系統(tǒng)分配和控制的標(biāo)準(zhǔn)輸出文件為( )。A.鍵盤B.磁盤C.打印機(jī)D.顯示器20.C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)fread(fd,buffer,n)的功能是(A.從文件fd中讀取長(zhǎng)度不超過n個(gè)字節(jié)的數(shù)據(jù)送入buffer指向的內(nèi)存區(qū)域B.從文件fd中讀取長(zhǎng)度不超過n-1個(gè)字節(jié)的數(shù)據(jù)送入buffer指向的內(nèi)存區(qū)域C.從文件fd中讀取長(zhǎng)度不超過n個(gè)字符送入buffer指向的內(nèi)存區(qū)域D.從文件fd中讀取長(zhǎng)度不超過n-1個(gè)字符送入buffer指向的內(nèi)存區(qū)域第二部分:簡(jiǎn)單程序(12項(xiàng),共30分)21,下列程序main(){intx,y,z;x=y=2;z=3;y=z++-1;printf(44%d\t%d\t,,,x,y);y=++x-l;printf("%d\t%d\n",x,y);y=z—1;printf(t<%d\t%d\t,,,z,y);y=--z-1;

printf(t<%d\t%d\n,,,z,y);)運(yùn)行后輸出的數(shù)據(jù)為A.3142C.223241332122.下列程序main(){inti,j;char*a,c;a="computer”;printf(44%s,,,a);for(i=0,j=7;i<j;i++,j-){c=a[i];*(a+i)=*(a+j);a[j]=c;)printf("<->%s\n,,,a);c=a[j-l,i=2+j];printf(4ta[%d]=%c\n,,,i,c);}B.3133B.3133D.213224221312A.computer->computerB.computer->retupmoca[3]=ua[5]=mC.computer->retupmocD.computer->retupmoca[4]=pa[2]=t.下列程序intsum(intn){intp=l,s=O,i;for(i=l;i<=n;i++)s+=(p*=i);returns;)main(){printf(t<sum(5)=%d\n,,,sum(5));)運(yùn)行后輸出的數(shù)據(jù)為ーーA.sum(5)=151 B.sum(5)=152C.sum(5)=153Dsum(5)=155.下列程序main(){ staticintaロ={5,6,7,3,2,9};intsl,s2,i,*ptr;sl=s2=0;ptr=&a[O];for(i=0;i<5;i+2=2){sl+=*(ptr+i);s2+=*(ptr+i+l);)printfC's1=%d,s2=%d\n,,,s1,s2);)運(yùn)行后輸出的數(shù)據(jù)為A.sl=18,s2=14B.sl=14,s2=32C.sl=14,s2=18D.sl=15,s2=19.下列程序intc=l;main(){staticinta=5;intb=6;printf("a二%d b二%dc二%d\n”,a,b,c);func();printf("a二%d,b二%d,c二%d\n”,a,b,c);func();)func(){staticinta=4;intb=10;a十二2;c+=10;b十二c;printf((“a二%d,b二%d,c二%d\n”,a,b,c);)運(yùn)行后輸出的數(shù)據(jù)為ーー.TOC\o"1-5"\h\za=5 b=6 c二1a二5b=6“1a=6 b=21 c=l1a二7b=17c二11a二5 b=6 c二11a二5b=6c二11a二8 b二31 c=21a=9b=17c=21a二5 b=6 c二1a=5b=6ala=6 b=21 c=l1a=7b=17c=l1a=6 b=21 c=l1a=7b=17c=lla=8 b=31 c=21a=9b=38c=21.已知structstudent{char*name;intstudent_n;chargrade;);structstudenttemp,*p=&temp;ゴchou”;則下面不正確的是。表達(dá)式值A(chǔ).p―?namechouB.(*P)-Aname+2hC.*p―>name+2eD.*(p-Aname+2)0.下列程序#defineMAX10main(){ inti,sum,aロ={1,2,3,4,5,6,7,8,9,10};sum=l;for(i=0;i<MAX;i++)sum-=a[i];printf("SUM=%d”,sum);)程序運(yùn)行結(jié)果是:A.SUM二55 B.SUM二一54C.SUM二一55 D.SUM二54.下列程序voidinv(int*x,intn){int*p,t,*i,*j,m=(n-1)/2;i=x;j=x+n-l;p=x+m;for(;i<p;i++,j-){t二?i;*j=t;)return;)main(){ staticinti,a[10]=[3,7,9,ll,0,6,7,5,4,2);inv(a,10);for(i=0;i<10;i++)printf(“%d,”,a[i]);)程序運(yùn)行結(jié)果:A.0,2,3,4,5,6,7,7,9,11B.11,9,7,7,6,5,4,3,2,0C.3,7,9,11,0,6,7,5,4,2D.2,4,5,7,6,0,11,9,7,3.下列程序main(){inta[10],b[10],*pa,*pb,i;pa=a;pb=b;for(i=0;i<3;i++,pa++,pb++){*pa=i;*pb=2*i;printf("%d\t%d\n”,*pa,*pb);)printf("\n”);pa二&a[〇];pb=&b[〇];for(i=0;iv3;i++){*pa二*pa+j;*pb二*pb*i;printf("%d\t%d\n",*pa++,*pb++);))運(yùn)行后輸出的數(shù)據(jù)為〇A.00B.00C.00D.001212122224242424000000002222121248 24 244830.下列程序copy_string(from,to)char*from,*to;{ while(*from)*to++=*from++;*to='、〇';)main(){ staticcharsl[]="c_program.";staticchars2[80];copy_string(s1,s2);printf("%s\n",s2);copy_string("123",s2);printf("%s\n",s2);)運(yùn)行后輸出的數(shù)據(jù)為()〇A.c_program123 B.123C.c_program123 D.c_program123.下列程序:#include<stdio.h>main(){chara[40],b[40];inti,j;printf(4'Enterthestring:");scanf("%s",a);i+0;while(a[i]!='\0'){if(!(a[i]>='\0'&&a[i]<='9,)){b[j]=a[i];j++;)++i;)b|j]='\O';printf("%s",b);)運(yùn)行后輸出的結(jié)果是()〇A,把鍵盤輸入的字符串顯示在屏幕上B,把鍵盤輸入的字符串中的數(shù)字字符刪掉,然后顯示該字符串C,把鍵盤輸入的字符串中的字符。和9刪掉,然后顯示該字符串D.只保留由鍵盤輸入的字符串中的字母數(shù)字,然后顯示該字符串.下列程序#include<stdio.h>main(){chara[80];inti,j;printfC'Enterthestring:^^);scanf("%s”,a);i二。;while(a[i]!=,\O,){if(a[i]>=,A,&&a[i]<=,Z,)a[i]=a[i]-<A,+,a,;)printf(<<%s,,,a);運(yùn)行后輸出的結(jié)果是()〇A,把鍵盤輸入的字符串中的大寫字母變換成小寫字母,然后顯示變換后的字符串。B.把鍵盤輸入的字符串中的數(shù)字字符刪除掉,然后顯示該字符串。C,把鍵盤輸入的字符串中的小寫字母變換成大寫字母,然后顯示變換后的字符串。D,把鍵盤輸入的字符串原封不動(dòng)地顯示在屏幕上。第二卷說明:(1)第二卷含二大題,均屬填空題,每題各有5個(gè)空欄,在閱讀和理解原題程序的基礎(chǔ)上,在空欄處填入適當(dāng)?shù)淖址?、語(yǔ)句,以構(gòu)成一個(gè)正確的C語(yǔ)言程序。(2)每空欄填對(duì)得3分,兩大題共10個(gè)空欄,全填對(duì)得30分。試題ーー個(gè)整數(shù)稱為完全平方數(shù),是指它的值是另ー個(gè)整數(shù)的平方。如81是個(gè)完全平方數(shù),因?yàn)樗?的平方。下列程序是在三位的正整數(shù)中尋找符合下列條件的整數(shù):它既是完全平方數(shù),且三位數(shù)字中又有兩位數(shù)字相同:例如!44(12*12)、676(26*26)等,從程序中找出并輸出所有滿足上述條件的三位數(shù)。程序如下:main(){intn,k,a,b,c;for(k=1;;k++){①if(n<l00)②if(n<999)③a=n/100;b=(4)c=n%10,if(flag(a,b,c))printfC<n=%d=%d*%d\n,,,n,k,k);))flag⑤{return(!(x-y)*(x-z)*(y-z));)試題ニ以下程序所列函數(shù)replace(char*si,char*s2,charstr1,char*str2)的功能是將已知字符串si中的所有與字符串str!相同的子串替換成字符串str2,并將替換后所生成的新的字符串存于字符數(shù)組s2中。說明:生成字符串s2的過程是ー個(gè)循環(huán),順序訪問字符串si的每個(gè)字符;當(dāng)從某個(gè)字符開始不能構(gòu)成與str!相同的子字符時(shí),就把該字符拷貝到數(shù)組s2,當(dāng)從某個(gè)字符開始能構(gòu)成一個(gè)與strl相同的子字符串時(shí),就將字符串str2的各字符拷貝到字符數(shù)組s2,并繼續(xù)訪問字符串s!中那個(gè)子串之后的字符,直至字符串s!被訪問完畢,字符復(fù)制即告結(jié)束。下列程序運(yùn)行的結(jié)果是輸出:ABCXYZdefgabABCXYZdabab程序如下:replace(char*sl,char*s2,char*strl,char*str2){char*t0,*tl,*t2;while(⑥){for(tO=sl,tl=strl;*tl!=,\0,&& ⑦;tO++,t1++);if(%1!='、0')*s2++= ⑧ ;else{ for(tl=str2;*tl!='\0';)*s2++=;;))*s2=‘、〇';)main(){charsl[]="abcdefgababcdabab.";chars2[80];replace(sl,s2,"abc","ABCXYZ")printfC<%s\n",s2);)參考答案第一卷一.基礎(chǔ)知識(shí)(20項(xiàng),共40分)l.C2.C3.C4.A5.D6.B7.B8.B9.C10.All.C12.B13.B14.D15.A16.D17.D18.B19.D20.A二.簡(jiǎn)單程序21.C22.B23.C24.C25.A26.B27.B28.D29.A30.D31.B32.A第二卷試題ー:①n=k*k②continue③break④n%100/10或(n-100*a)/10或n/10-(n/100)*10⑤intx,inty,intz試題ニ:@*s!或sl!='\0'⑦*t0ニニ*tl或?t]ニニ?tO⑧*sl++⑨*tl++ ⑩sl=tO或sl=sl+strlen(strl)C語(yǔ)言程序設(shè)計(jì)第一部分:基礎(chǔ)知識(shí)(20題,共40分)1、ー個(gè)C語(yǔ)言的源程序中,()〇(A)必須有一個(gè)主函數(shù)(B)可以有多個(gè)主函數(shù)(C)必須有主函數(shù)和其他函數(shù)(D)可以沒有主函數(shù)2、下列數(shù)據(jù)中,為字符串常量的是( )。(A),A'(B)“house”(C)Howdoyoudo.(D)'$abc'3、若有定義:inta=8,b=5,c;,執(zhí)行語(yǔ)句c=a/b十0.4;后,c的值為( )。(A)1.4 (B)l (C)2.0(D)24、設(shè)有intx=l1;則表達(dá)式(x++*l/3)的值為()〇(A)3 (B)4(C)ll(D)125、執(zhí)行x=5>1+2&&2II2*4v4-!〇后,x的值為()〇(A)-l(B)O(C)l(D)56、以下變量x、y、z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式子:(x)/(yXz)的c語(yǔ)言表達(dá)式是()〇(A)x/y*z (B)x*(l/(y*z))(C)x/y*l/z (D)x/y/z7、設(shè)有以下說明語(yǔ)句structex{intx;floaty;charz;{example;則下面的敘述不正確的是()〇(A)struct是結(jié)構(gòu)體類型的關(guān)鍵字(B)example是結(jié)構(gòu)體類型名(C)x,y,z都是結(jié)構(gòu)體成員名(D)structex是結(jié)構(gòu)體類型8、假定w、x、y、z、m均為血型變量;有如下程序段:w=l;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;則該程序段執(zhí)行后,m的值是()〇(A)4 (B)3 (C)2 (D)19、在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是( )。(A)地址傳遞(B)單向值傳遞(C)由實(shí)參傳給形參,再由形參傳回實(shí)參(D)傳遞方式由用戶指定TOC\o"1-5"\h\z10、以下定義語(yǔ)句中,錯(cuò)誤的是( )。(A)inta[]={l,2}; (B)char*a[3];(C)chars[10]="textn; (D)intn=5,a[n];11、下列程廳執(zhí)行后的輸出結(jié)果是( )。main(){chararr[2][4];strcpy(arr,"you") ;strcpy(arr[l],nme");arr[0][3]='&';printf("%s\n",arr);)(A)you&me(B)you(C)me(D)err12、標(biāo)有/**/的語(yǔ)句的執(zhí)行次數(shù)是()〇inty,i;for(i=O;i<20;i++){if(i%2=0)continue;TOC\o"1-5"\h\zy+=i; /* */)(A)20 (B)19 (C)10 (D)913、若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是()〇(A)數(shù)組的首地址(B)數(shù)組第一個(gè)元素的值(C)數(shù)組中全部元素的值(D)數(shù)組元素的個(gè)數(shù)14、下列語(yǔ)句執(zhí)行后的結(jié)果是()〇y=5;p=&y;xニ*p++;(A) x=5,y=5 (B)x=5,y=6 (C)x=6,y=5(D)X-61y=615、執(zhí)行下面的語(yǔ)句后,表達(dá)式?(p[0]+l)+**(q+2)的值為(TOC\o"1-5"\h\zinta[]={5,4,3,2,l} ,*Pロ={a+3,a+2,a+l,a},**q=p;(A) 8 (B) 76 (D)516、經(jīng)過下面的語(yǔ)句后inti,a[10],*p;定義后,下列語(yǔ)句中合法的疋( )。(A) p=100: (B)p=a[5]; (C) p=a+2;p=&(i+2);17、若有以下說明和語(yǔ)句,則對(duì)pup中sex域的正確引用方式是( )。structpupil{charname[20];

intsex;}pup,*p;p=&pup;(A)p.pup.sex(B)p->pup.sex(C)(*p).pup.sex(D)(*p).sex18、若已定義了如下的共用體類型變量x,則x所占用的內(nèi)存字節(jié)數(shù)為( )。uniondata{inti;charch;doublef;}x;(A)7 (B) 11 (C)8(D)1019、若有下面的說明和定義:structtest{intml;charm2;floatm3;unionuu{charul[5];intu2[2];}ua;}myaa;則sizeof(structtest)的值是TOC\o"1-5"\h\z( )〇(A)12 (B)16 (C)14 (D)920、若要打開:A盤上user子目錄下名為abc.txt的文本文件進(jìn)行讀、寫操作,下面符合此要求的函數(shù)調(diào)用是( )。TOC\o"1-5"\h\z(A)fopen("A :WuserWabc.txピ,nr")(B)fopen("A:WuserWabc.txt","r+")(C)fopen("A :WuserWabc.txt",nrb") (D)fopen("A:WuserlWabc.txt","w")第二部分:簡(jiǎn)單程序(12題,共30分)21、以下程序的運(yùn)行情況是()〇main(){inti=l,sum=0;while(i<10)sum=sum+l;i++;printf("i=%d,sum=%d",i,sum);)(A)i=10,sum=9(B)i=9,sum=9 (C) i=2,sum=l(D)運(yùn)行出現(xiàn)錯(cuò)誤22、若輸入B,以下程序的運(yùn)行結(jié)果為( )。main(){chargrade;scanf("%c",&grade);switch(grade){case,A':printf(,'>=85");case'B':case 'C :printf(n>=60");case 'D':printf("<60");default:printf("error");})(A)>=85 (B)>=60(C)>=60<60error (D)error.有如下程序 main(){intx=23;do{printf("%d",x—);}while(!x);}TOC\o"1-5"\h\z該程序的執(zhí)行結(jié)果是( )。(A)321 (B)23 (C)不輸出任何內(nèi)容 (D)陷入死循環(huán).有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);)該程序的輸出結(jié)果是()〇(A) 12 (B) 13(C)14 (D)15.以下程序的輸出結(jié)果是()〇main(){inta,b;for(a=1,b=l;a<=100;a++){if(b>=10)break;if(b%3==l){b+=3;continue;}printf(n%d\n",a);)(A)101 (B)6(C)5 (D)4.以下程序的輸出結(jié)果是()〇inta,b;voidfun(){a=100;b=200;}main(){inta=5,b=7;fun();printf(n%d%d\n",a,b);)TOC\o"1-5"\h\z(A) 100200 (B)57(C)200100 (D)75.下面的程序執(zhí)行后,文件test,t中的內(nèi)容是( ),#include<stdio.h>voidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"w");for(i=0 ;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);)main(){ fun("test.t","newworld");fun("test.t","hello,n);}(A) hello ,(B)new,worldhello (C)new,world (D)hello,rld.以下程序的運(yùn)行結(jié)果是()〇#include<stdio.h>main(){static chars[30]="abcdefgn;staticchart[]="abcd";inti,j;i=0;while(s[i]!=\0')i++;j=0;while(t[j]!='\0'){s[i+j]=tU];

j++; }s[i+j]=,\O,;printf("%s\n",s);)(A) abcdabcdefg(B)abcdefg (C)abcd(D)abcdefgabcd29.有如下程序main(){charch[2][5]={"6937",n8254H},*p[2];inti,j,s=0;for(i=0; i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)(C)6385 (D)69382530.若已建立如下圖所示的單向鏈表結(jié)構(gòu)在該鏈表中,指針p,s分別指向圖中所示結(jié)點(diǎn),則不能將s所指的結(jié)點(diǎn)插入到鏈表末尾仍構(gòu)成單向鏈表的語(yǔ)句組是( )。p=p->next;s->next=p;p->next=s;p=p->next;s->next=p->next;p->next=s;s->next=NULL;p=p->next;p->ne)〇)〇(A)69825( )中。(B)63825include<stdio.h>s=10*s+p[i][j]-,0,;printf("%d\n",s);)該程序的輸出結(jié)果是(D)p=(*p).next;(*s).next=(*p).next;(*p).next=s;.請(qǐng)選擇正確的運(yùn)行結(jié)果填入intx,y;num()(inta=15,b=10;intx,y;y=a-b;y=a+b;return;)main(){inta=7,b=5;x=a+b;y=a-b;num();printf("%d,%d\n",x,y);)(A) 12,2 (B) 5,25(C)2,12 (D)不確定.以下程序的輸出結(jié)果是()。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;TOC\o"1-5"\h\zprintf("%d\n” ,M(a+b,b+c,c+a)); }(A)19 (B)17 (C)15(D)12說明:(1)第二卷含兩大題,均屬填空題,每題各有5個(gè)空欄,在閱讀和理解原題程序的基礎(chǔ)上,在空欄處填入適當(dāng)?shù)淖址⒄Z(yǔ)句,以構(gòu)成一個(gè)正確的C語(yǔ)言程序。(2)每空欄填對(duì)得3分,兩大題共10個(gè)空欄,全對(duì)得30分。試題ー:有一函數(shù),實(shí)參傳來ー個(gè)字符串,統(tǒng)計(jì)此字符串中字母、數(shù)字、空各和其他字符的個(gè)數(shù),在主函數(shù)中輸入字符串以及輸出上述的結(jié)果。int letter,digit,space,others;/?是全局變量?/main(){intcount(char(1));chartext[80];printf("\nlnputstring:\n");—(2)—;printf("string:");puts(text);letter=O;digit=O;space=O;others=O;(3);printf("letter: %d,digit:%d,space: %d,other :%d\n",letter,digit,space,others);}intcount(charstr[]){inti;for(i=O;str[i]!二、〇';i++)if(((4)>='a'&&str[i]<='z')ll(str[i]>='A'&&str[i]<='Z'))letter++; elseif(str[i]>='0'&&str[i]<='9')digit++;elseif(str[i]=='')space++;else—(5)—;試題ニ:把下列程序補(bǔ)充完整,實(shí)現(xiàn)兩個(gè)字符串的比較,即自己寫個(gè)strcmp函數(shù),函數(shù)原型為:intstrcmp(char*pl,char*p2)設(shè)p1指向字符串s1,p2指向字符串s2o要求:當(dāng)sl=s2時(shí),返回值為〇〇當(dāng)slos2時(shí),返回它們兩者的第一個(gè)不同的字符的ASCH碼差值(如“BOY”與“BAD”,第二個(gè)字母不同,“〇”與“A”之差為79-65=14);如果sl>s2,則輸出正值;如果sks2,則輸出負(fù)值。main(){intm;char(6),str2[20],*pl,*p2;printf("Inputtwostring:\n");scanf("%s",strl);scanf("%s",—(7));pl=&strl[O];p2=(8);m=strcmp(pl,p2);printf("result:%d,\nn,m);)strcmp(char(9),char*p2)/?兩個(gè)字符串比較的函數(shù)?/{inti;—(10);while(*(pl+i)==*(p2+i))if(*(pl+i++)==,\O,)return(O);retum(*(pl+i)-*(p2+i));/?不等時(shí)返回結(jié)果為第一個(gè)不等字符ASCH碼的差值?/)參考答案第一卷第一部分:基礎(chǔ)知識(shí)l.A2.B3.B4.A5.C6.A7.B8.D9.B10.Dll.A12.C13.A14.A15.D16.C17.D18.C19.A20.B第二部分:簡(jiǎn)單程序21.D22.C23.B24.D25.D26.B27.A28.D29.C30.A31.A32.D試題ー:1、str[]2、gets(text)或scanf("%s”,text) 3、count(text)4、str[i] 5、others++試題ニ:6、str1[20] 7、str2 8ヽ&str2[0]9、*pl 10、i=0C語(yǔ)言程序設(shè)計(jì)》(卷)考核班級(jí)學(xué)生數(shù) 印數(shù)考核方式閉卷考核時(shí)間!20分鐘(本試卷包括第一卷和第二卷,答卷時(shí)間總共120分鐘)第一卷本卷共70分,其中第1?26題每題2分,第27?32題每題3分。第一部分:基礎(chǔ)知識(shí)1、ー個(gè)C語(yǔ)言程序是從開始執(zhí)行的。A、程序中的第一個(gè)語(yǔ)句B、包含文件(頭文件)的第一個(gè)函數(shù)C、名為main的函數(shù)D、程序中的第一個(gè)函數(shù)2、語(yǔ)句while(!E){……}中的條件!E等價(jià)于A、E=0B、E!=lC、E!=0D、~E3、若有以下類型說明語(yǔ)句:charw;intx;floaty;doublez;則表達(dá)式w*x+z-y的結(jié)果為 類型。A、floatB、doubleC、intD、char4、ー個(gè)函數(shù)返回值的類型是由決定的A>return語(yǔ)句中的表達(dá)式類型;B、定義函數(shù)時(shí)所指定的函數(shù)類型C、調(diào)用該函數(shù)的函數(shù)的類型D、調(diào)用函數(shù)時(shí)臨時(shí)類型5、設(shè)x、y、z和k都是int型變量,則執(zhí)行下列表達(dá)式后,變量x的值為.x=(y=4,z=l6,k=32);A、4B、16C、32D、526、有以下程序:main(){inti=10,j=l;printf("%d,%d\n”,i—,++j);)執(zhí)行后輸出的結(jié)果是 A、9,2B、10,2C、9,1D、10,1以下指針s的指字符串的長(zhǎng)度為 char*s="ヽtVName\\Address\n^^;A、19B、15C、18D、-128、設(shè)有語(yǔ)句inta=3;則執(zhí)行了語(yǔ)句a+=a-=a*a;后,變量a的值是ーA、3B、0C、9D、-129、對(duì)于下面的for循環(huán)語(yǔ)句,可以斷定它 〇for(x=0,y=0;(y!=123)&&(x<4);x++)printfC' つ;A、是無限循環(huán)(死循環(huán))B、循環(huán)次數(shù)不定C、共執(zhí)行4次循環(huán)D、共執(zhí)行3次循環(huán)10、設(shè)有以下語(yǔ)句,則不是對(duì)a數(shù)組元素的正確引用,其中0a[10]={0,1,2,3,4,5,6,7,8,9);int*p=a;A、a[p-5]B、*(&a[i])C、a[i]D、*(a+i)11、為了判斷兩個(gè)字符串si和s2是否相等,應(yīng)當(dāng)使用A、if(sl==s2)B>if(sl=s2)Cヽif(strcmp(sl,s2))D、if(strcmp(sl,s2)==0)12、對(duì)于C語(yǔ)言程序中的函數(shù),下列敘述中正確的是A、函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套B、函數(shù)的定義可嵌套,但函數(shù)的調(diào)用不能嵌套C、函數(shù)的定義和調(diào)用均不能嵌套D、函數(shù)的定義和調(diào)用均可嵌套13、有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case 1:printf(<<%d,,,i);case 2:printf("%d”,i);default:printf(t<%d,,,i);))執(zhí)行后輸出的結(jié)果是A、011122B、012C、012020D、12014、假定有以下變量定義:intk=7,x=12;則能使值為3的表達(dá)式是ーA、x%=(k%=5)B、x%=(k-k%5)C、 x%=(k-k%5)D、(x%=k)-(k%=5)15、以下程序的輸出結(jié)果是main(){intx=4,y=8;x+=y;y+=x;priDtf(“%d%d\n”,x,y);)A、12 20B、48C、12 12D、8 416、有以下程序執(zhí)行后輸出的main(){intx[8]={8,7,6,5,0,0},*s;s=x+3;printf("%d\n'',s[2]);)A、隨機(jī)值B、0C、5D、617、以下函數(shù)的功能是fun(char*sl,char*s2){inti=0;while(sl[i]==s2[i]&&s2[i]!=,\0,)i++;retum(s1[i]==,\0,&&s2[i]==,\0,);)A、將s2所指字符串賦給siB、比較si和s2所指字符串的大小,若si比s2的大,函數(shù)值為!,否則函數(shù)值為0C、比較si和s2所指字符串是否相等,若相等,函數(shù)值為!,否則函數(shù)值為0D、比較si和s2所指字符串的長(zhǎng)度,若si比s2的長(zhǎng),函數(shù)值為!,否則函數(shù)值為018、以下敘述中正確的是ーA、全局變量的作用域一定比局部變量的作用域范圍大B、靜態(tài)(static)類型變量的生存期貫穿于整個(gè)程序的運(yùn)行期間C、函數(shù)的形參都屬于全局變量D、未在定義語(yǔ)句中賦初值的auto變量和static變量的初值都是隨機(jī)值19、有以下程序,執(zhí)行后輸出的結(jié)果是ーmain(){inti=l,j=l,k=2;if((j++llk++)&&i++)printf("%d,%d,%d\n,,,i,j,k);)A、1,1,2B、2,2,1C>2,2,2D、2,2,320、以下函數(shù)abc的功能是intabc(char*ps){char*p;p=ps;while(*p++);return(p-ps);)A、比較兩個(gè)字符串的大小B、求字符串的長(zhǎng)度C、將串ps復(fù)制到串P中D、以上三種說法都不對(duì)第二部分:簡(jiǎn)單程序21、以下程序的輸出結(jié)果是:main(){inti=10,j=10;printf("%d,%d\n”,++i+j++,j-);)A、21,10B、20,10C、21,9D、20,922、以下程序的輸出結(jié)果是:main(){intm=5;if(m++>5)printf(44%d\n,,,m);elseprintf("%d\rT,m--);}A、7B、6C、5D、423、當(dāng)a=l,b=3,c=5,d=4時(shí),執(zhí)行下面一段程序后,x的值為if(a<b)if(c<d)x=l;elseif(a<c)if(b<d)x=2;elsex=3;elsex=6;elsex=7;A、1B、2C、3D、624、以下程序企圖把從終端輸入的字符輸出到名為abc.txt的文件中,直到從終端讀入字符#號(hào)時(shí)結(jié)束輸入和輸出操作,但程序有錯(cuò)。出錯(cuò)的原因是#include<stdio.h>main()

{FILE*fout;charch;fout=fopen(4abc.txt,,,w,);ch=fgetc(stdin);while(ch!=^#^){fputc(ch,fout);ch=fgetc(stdin);)fclose(fout);)A、函數(shù)fopen調(diào)用形式有誤B、輸入文件沒有關(guān)閉C、函數(shù)fgetc調(diào)用形式有誤D、文件指針stdin沒有定義25、有以下程序,執(zhí)行后輸出結(jié)果是 main(){union{unsignedintn;unsignedcharc;}ul;A、產(chǎn)生語(yǔ)法錯(cuò)B、隨機(jī)值C、AD、6526、有以下程序,執(zhí)行后輸出main(){ intm[][3]={1,4,7,2,5,8,3,6,9);inti,k=2;for(i=0;i<3;i++)printf("%d5,,m[k][i]);)A、456B、258C、369D、78927、以下程序運(yùn)行后,輸出結(jié)ホ疋 intfunc(inta,intb){staticintm=0,i=2;i+=m+l;m=i+a+b;printf(''%c\n",uLn);}main()printf(''%c\n",uLn);}main(){intk=4,m=l,n;n=func(k,m);printf("%d,tn);n=func(k,m);printf(u%d'n);)A、8,15B,8,16C、8,17D、8,828、在執(zhí)行以程序時(shí),如果從鍵盤上輸入:ABCdef,則輸出結(jié)果為:—#include<stdio.h>main(){charch;while((ch=getchar())!=,\n,){if(ch>=,A,&&ch<=,Z,)ch=ch+32;elseif(ch>='a'&&ch<=,z,)ch二ch-32;printf("%c”,ch);)printf("\n”);)A、ABCdefB、abcDEFC、abcD、DEF29、有以下程序,執(zhí)行后輸出結(jié)果是ーint*f(int*x,int*y){if(*xv*y)returnx;elsereturny;)main(){inta=7,b=8,*p,*q,*r;p=&a;q二&b;r=f(p,q);printf("%d,%d,%d\n”,*p,*q,*r);)A、7,8,8B、7,8,7C、8,7,7D、8,7,830、下面程序的輸出結(jié)果是fun(char*s,intpl,intp2){charc;while(pl<p2){C=s[pl];s[pl]=s[p2];s[p2]=c;p1++;p2一;)}main(){chara[]="ABCDEFG",k,*p;fun(a,0,2);fun(a,4,6);printf("%s\n”,a);)A、ABCDEFGB、DEFGABCC、GFEDCBAD、CBADGFE31、以下程序的運(yùn)行結(jié)果是#include<stdio.h>longfunc(intx){longp;if(x==0llx==l)return(2);p=x*func(x-l);return(p);)main()(printf("%d\n”,func(4));)A、8B、12C、24D、4832、下面的程序運(yùn)行后,全局量t.x和t.s的正確結(jié)果為structtree{intx;char*s;}t;func(structtreet){ t.x=10;t.s二"computer”;return(O);)main(){t.x=l;t.s-”minicomputer”;func(t);printf(u%d,%s”,t.x,t.s);)A>10,computerB、1,computerC>1,minicomputerD、!0,minicomputer第二卷說明:(1)第二卷均為填空題,在閱讀和理解原題程序的基礎(chǔ)上,在空欄處填入適當(dāng)?shù)淖址?、語(yǔ)句以構(gòu)成一個(gè)正確的C語(yǔ)言程序。(2)答本卷的題目時(shí),要在本卷答題紙上編號(hào)對(duì)應(yīng)的欄目中,用鋼筆或圓珠筆書寫。用鉛筆答題無效,在試題上直接答題者無效。請(qǐng)勿在第一卷的答題卡上填寫本卷答案。(3)每空欄3分,共10個(gè)空欄,共30分。試題ー下列程序是求1+1/2+1/4+……+1/50的值。#include“stdio.h"main(){inti=2;floatsum=l;while((1)){sum=sum+1.0/i;(2);)printf(“sum二%f",sum);)試題二下列函數(shù)用于統(tǒng)計(jì)ー行字符中的單詞個(gè)數(shù),單詞之間用空格分隔。word_num(charstr[])(inti,num=0,word=0;for(i=0;str[i]!=(3);i++)if(—(4)=づッword=0;elseif(word=0){word=l;(5);)return(num);)試題三以下函數(shù)的功能是刪除字符串s中的所有數(shù)字字符。voiddele(char*s){intn=0,i;for(i=0;s[i];i++)if(—(6))s[n++]=s[i];s[n]=—(7);)試題四以下程序的功能是:從鍵盤輸入若干個(gè)學(xué)生的成績(jī),統(tǒng)計(jì)計(jì)算出平均成績(jī),并輸出低于平均分的學(xué)生成績(jī),用輸入負(fù)數(shù)結(jié)束輸入。main(){floatx[1000],sum=0.0,ave,a;intn=0,i;printf(4<Entermark:\n^^);scanf(u%f,,&a);while(a>=0.0&&n<1000)(sum=(8);x[n]=(9);n++;scanf("%f",&a);)ave=sum/n;printf("〇utput:\n’');printf(ttave=%f\n,,,ave);for(i=0;i<n;i++)if(10)printf("%f\n",x[i]);)參考答案第一卷ー、基礎(chǔ)知識(shí)!.C2.A3.B4.B 5.C 6.B 7.B 8.D9.C10.A11.D12.A13.A14.D15.A16.B17.C18.B19.C20.B二、簡(jiǎn)單程序21.B22.B23.B24.A25.C26.C27.C28.B29.B30.D31.D32.C第二卷1、i<=502、i+=2或i=i+23、 ‘、。'4、str[i]ヽnum++、!(s[i]>='0'&&s[i]<='9')7、t\0'sum+aa10、(x[i]<ave)《C語(yǔ)言程序設(shè)計(jì)》(卷)考

核班級(jí)學(xué)生數(shù) 印數(shù) 考核方式閉卷考核時(shí)間120分鐘ー、選擇題(每小題2分,共70分)下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。(1)數(shù)據(jù)的邏輯結(jié)構(gòu)可以分為()〇A)靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)結(jié)構(gòu)B)物理結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)C)線性結(jié)構(gòu)和非線性結(jié)構(gòu)D)緊湊結(jié)構(gòu)和松散結(jié)構(gòu)(2)對(duì)線性表,采用順序存儲(chǔ)的優(yōu)點(diǎn)是( )。A)便于隨機(jī)存取B)便于進(jìn)行插入和刪除操作C)需要的存儲(chǔ)空間不必連續(xù)D)方便線性表的擴(kuò)充(3)設(shè)具有n個(gè)結(jié)點(diǎn)的完全二叉樹的第1層為根結(jié)點(diǎn),若一個(gè)結(jié)點(diǎn)i滿足2i>n,則該結(jié)點(diǎn)沒有( ).A)左子結(jié)點(diǎn)B)右子結(jié)點(diǎn)〇左子結(jié)點(diǎn)和右子結(jié)點(diǎn)D)左子結(jié)點(diǎn)、右子結(jié)點(diǎn)和兄弟結(jié)點(diǎn)(4)快速排序算法的平均時(shí)間復(fù)雜度為( )。A)〇(n)B)〇(n2)C)O(nlog2n)D)O(log2n!)(5)在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,描述對(duì)象靜態(tài)和動(dòng)態(tài)特征的三要素是()〇A)封裝、繼承和重載B)屬性、事件和方法〇數(shù)據(jù)、代碼和接口D)內(nèi)聚、耦合和驅(qū)動(dòng)(6)軟件測(cè)試的目的是()〇A)證明軟件的正確性B)找出軟件系統(tǒng)中存在的所有錯(cuò)誤C)證明軟件系統(tǒng)中存在錯(cuò)誤 D)盡可能多地發(fā)現(xiàn)軟件系統(tǒng)中的錯(cuò)誤(7)軟件開發(fā)范型的作用是()〇A)為了控制軟件需求的易變性B)作為ー種軟件工程方法學(xué)C)作為一種項(xiàng)目管理方法D)作為需求分析的指導(dǎo)(8)在數(shù)據(jù)庫(kù)三級(jí)模式結(jié)構(gòu)中,描述數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特征的是()〇A)外模式B)內(nèi)模式C)存儲(chǔ)模式D)模式(9)在數(shù)據(jù)庫(kù)技術(shù)中,面向?qū)ο髷?shù)據(jù)模型是ー種( )。A)概念模型B)結(jié)構(gòu)模型C)物理模型D)邏輯模型(10)數(shù)據(jù)庫(kù)(DB)、數(shù)據(jù)庫(kù)系統(tǒng)(DBS)、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)三者之間的關(guān)系是()〇

A)DBS包括DB和DBMSB)DBMS包括DB和DBSC)DB包括DBS和DBMSD)DBS就是DB,也就是DBMS(11)閱讀以下程序main(){intx;scanf("%d",&x);if(x--<5)printf("%d\n",x);elseprinff("%d\n”,x++); }程序運(yùn)行后,如果從鍵盤上輸入5,則輸出結(jié)果是()〇A)3B)4C)5D)6(12)假定W,X,Y,z和m均為int型變量,有如下程序段:w=1;x=2;y=3;z:4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;則該程序段執(zhí)行后,m的值為( )。A)4B)3C)2D)1t為int型變量,進(jìn)入下面的循環(huán)之前,t的值為0。while(t-1)則以下敘述中正確的是()〇A)循環(huán)控制表達(dá)式的值為0B)循環(huán)控制表達(dá)式的值為1C)循環(huán)控制表達(dá)式不合法D)以上說法都不對(duì)(14)以下程序的輸出結(jié)果是()〇main(){intnum=0;while(num<=2){num++;printf("%d\n”,num);} }C)1A)1B)1

C)1D)12 2 23 34(15)以下各選項(xiàng)企圖說明一種新的類型名,其中正確的是()〇A)typedefvlint; B)typedefv2=int;C)typedefintv3; D)typedefv4:int;(16)在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是()〇A)地址傳遞B)單向值傳遞〇由實(shí)參傳給形參,再由形參傳給實(shí)參 D)傳遞方式由用戶指定(17)以下函數(shù)值的類型是fun(floatx){floaty;y=3*x-4:returny; }A)intB)不確定voidD)float(18)設(shè)有以下函數(shù):f(inta){intb=0;staticintc=3;b++;C++;return(a+b+c); }如果在下面的程序中調(diào)用該函數(shù),則輸出結(jié)果是()〇main(){inta=2,i;for(i=0;i<3;i++)printf("%d\nn, f(a)); )A)7B)7C)7107109 11 137(19)以下程序的輸出結(jié)果是()。main(){charc='Z';printfTOC\o"1-5"\h\z(n%c",c-25); }A)aB)ZC)z-25D)Y(20)以下選項(xiàng)中,非法的字符常量是( )。A)'\t'B)'\17'C)n\n"D)'\xaa'(21)若有說明inti,j=2,*p=&i;,則能完成i=j賦值功能的語(yǔ)句是( )。A)i二?p;B)*p二?&j;i=&j;D)i二**p;(22)以下定義語(yǔ)句中,錯(cuò)誤的是( )。A)inta[]二{1,2}; B)char*a[3]; C)chars[10]="test";D)intn=5,a[n];(23)假設(shè)int型變量占兩個(gè)字節(jié)的存儲(chǔ)單元,若有定義intx[10]={0,2,4};,則數(shù)組x在內(nèi)存中所占字節(jié)數(shù)為 。A)3B)6C)1020(24)以下程序的輸出結(jié)果是()〇main(){inti,a[10];for(i=9;i>ニ〇;i--)a[i]=10-i:printfC'%d%d%d",a[2],a[5],a[8]); }A)258B)741C)852D)369(25)以下數(shù)組定義中不正確的是( )。A)inta[2][3];B)intb[][3]={0,1,2,3};C)intc[100][100]={0};D)intd[3][]={{l,2},{1,2,3},{1,2,3,4}};(26)以下程序的輸出結(jié)果是()〇main(){inta[4][4]={{l,3,5},{2,4,6},{3,5,7}};prinff(n%d%d%d%d\n",a[0][3],a[l][2],a[2][l],a[3][0]); }A)0650B)1470C)5430D)輸出值不確(27)以下程序的輸出結(jié)果是()〇#include<string.h>main(){charst[20]=,'hello\0\tV\\H;printf(n%d%d\n",stden(st,sizeof(st)); }A)99B)520C)1320D)2020(28)以下程序的輸出結(jié)果是()〇amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;})main(){int*p,a[3][3]={{l,3,5},{2,4,6));p=(int*)malloc(100);amovep(p,a,3);printf("%d%d\n",p[2],p[5]);free(p);)A)56B)25C)34D)程序錯(cuò)誤(29)以下程序的輸出結(jié)果是()〇structHAR{intx,y;structHAR*p;}h[2];main(){h[O].x=l;h[0].y=2;h[l].x=3;h[l].y=4;h[O].p=&h[l];h[l].p-h;printf(n%d%d\n",(h[O].p)->x,(h[l].p)->y);}A)12B)23C)14D)32(30)以下程序的輸出結(jié)果是()〇main(){inta,b;for(a=l,b=l;a<=100;a++){if(b>=10)break;if(b%3==l){b+=3;continue;})printf(*'%d\n",a);)A)101B)6C)5D)4(31)以下程序的輸出結(jié)果是unionmyun{struct{intx,y,z;}u;intk;}a;main(){ a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf("%d\n”,a.u.x);)A)4 B)5 06D)0(32)以下程序的輸出結(jié)果是()〇inta,b;voidfun(){a=100;b=200;}main(){inta=5,b=7;fun();printf("%d%d\n",a,b);)A)100200B)57

C)200100D)75(33)以下程序的輸出結(jié)果是()〇#defineM(x,y,z)x*y+zmain(){inta=l,b=2,c=3;printf(n%d\n",M(a+b,b+c,c+a));)A)19B)17C)15D)12(34)整型變量X和Y的值相等,且為非0值,則以下選項(xiàng)中,結(jié)果為0的表達(dá)式是()〇A)xllyB)xlyC)x&yD)xAy(35)下面的程序執(zhí)行后,文件test,t中的內(nèi)容是( )。#include<stdio.h>#include<string.h>voidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,nw");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);)main(){fun(world");fun("test,t",)A)hello,worldhello,D)hello,world二、填空題(每空2分,共30分)請(qǐng)將

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論