C程序設(shè)計(jì)基礎(chǔ)練習(xí)題3及答案_第1頁
C程序設(shè)計(jì)基礎(chǔ)練習(xí)題3及答案_第2頁
C程序設(shè)計(jì)基礎(chǔ)練習(xí)題3及答案_第3頁
C程序設(shè)計(jì)基礎(chǔ)練習(xí)題3及答案_第4頁
C程序設(shè)計(jì)基礎(chǔ)練習(xí)題3及答案_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

一、單選題1、?下列合法的字符串常量是()。A.'56'B."56"C.'\t'D.56正確答案:B解析:A、單引號(hào)內(nèi)只能一個(gè)字符,或轉(zhuǎn)義字符,才是字符常量2、?已知字母A的ASCII碼為十進(jìn)制的65,下面程序的輸出是()。?intmain()?{charch1,ch2;?ch1='A'+'5'-'3';?ch2='A'+'6'-'3';?printf("%d,%c",ch1,ch2);?}?A.B,CB.不確定的值C.C,DD.67,D正確答案:D解析:D、數(shù)字字符的ASCII碼與數(shù)字一樣,按序遞增,所以,'5'-'3'結(jié)果為2,字母字符的ASCII碼與字母順序一樣,按序遞增,所以,'A'+'5'-'3'='A'+2='C',按%d輸出,輸出它的ASCII為67同理,ch2='D',按%c輸出,結(jié)果為D3、?若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是()。A.(c>='a')||(c<='z')B.(c>='a')&&(c<='z')C.('a'<=c)and('z'>=c)D.'a'<=c<='z'正確答案:B4、?有如下程序段,執(zhí)行該程序段后,x的值為()。?inta=14,b=15,x;?charc='A';?x=(a&&b)&&(c<'B');A.falseB.0C.1D.14正確答案:C解析:C、非0即為真,a&&b結(jié)果為1,c<'B'結(jié)果為1,因此,x=1&&1,結(jié)果為15、?若有下列類型說明語句:?charw;intx;floaty;doublez;?則表達(dá)式w*x+z-y值的正確數(shù)據(jù)類型為()。A.charB.doubleC.floatD.int正確答案:B解析:B、z是double型,因此,隱式轉(zhuǎn)換規(guī)則,其它類型都將轉(zhuǎn)為double型,結(jié)果為double6、若有下列類型說明語句:intx;doubley;則表達(dá)式x-y值的正確數(shù)據(jù)類型為()。A.floatB.doubleC.charD.int正確答案:B解析:B、根據(jù)隱式自動(dòng)轉(zhuǎn)換規(guī)則,int與double運(yùn)算,int將自動(dòng)轉(zhuǎn)為double型7、?下面()將十進(jìn)制數(shù)轉(zhuǎn)為八進(jìn)制數(shù)輸出。A.printf("%c",50);B.printf("%d",50);C.printf("%x",50);D.printf("%o",50);正確答案:D8、?下面()將十六進(jìn)制數(shù)轉(zhuǎn)為八進(jìn)制輸出。A.printf("%d",050);B.printf("%o",0x50);C.printf("%x",50);D.printf("%o",050);正確答案:B9、?以下說法正確的是()A.C語言程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行B.C語言程序中,被調(diào)用的函數(shù)必須在main()函數(shù)中定義C.C語言程序總是從主函數(shù)main()開始執(zhí)行。D.C程序中的main()函數(shù)必須放在程序的開始處正確答案:C解析:A、從主函數(shù)開始執(zhí)行B、被調(diào)用的函數(shù)必須在main()函數(shù)外定義D、可以放在程序的任何位置10、?下面函數(shù)定義正確的是()。?注意:形參的格式A.doublefun(doubleu;doublev){returnu+v;}B.doublefun(floatu,floatv){returnu+v;}C.doublefun(doubleu,v){returnu+v;}D.doublefun(u,v){floatu,v;returnu+v;}正確答案:B解析:A、形參間不能用分號(hào)C、形參定義錯(cuò)誤,v沒有定義類型D、形參定義錯(cuò)誤,u,v沒有定義類型11、?以下函數(shù)fun的返回值類型為()。fun(doublex){……}?A.voidB.無法確定類型C.doubleD.int正確答案:D解析:D、沒有寫函數(shù)類型,默認(rèn)為int型12、?C語言中函數(shù)返回值類型由()決定。A.return語句中的表達(dá)式類型B.調(diào)用該函數(shù)的主調(diào)函數(shù)類型C.定義函數(shù)時(shí)指定的函數(shù)類型D.函數(shù)參數(shù)類型正確答案:C解析:A、由定義函數(shù)時(shí)指定類型,當(dāng)表達(dá)式類型與它不一致時(shí),要轉(zhuǎn)換成函數(shù)類型13、voidarea(intlength,intwidth){ints;s=length*width;printf(“長(zhǎng)%d,寬%d的長(zhǎng)方形面積是%d\n”,length,width,s);}?有如上求長(zhǎng)方形面積函數(shù),正確的調(diào)用方法是()。??提示:?本題area是無返回值的函數(shù)。A.c=area(1,2);B.area(1,2);C.area();D.c=area();正確答案:B解析:A、錯(cuò)誤。area無返回值,不能放在表達(dá)式中C、少實(shí)參14、?intarea(intlength,intwidth){ints;s=length*width;returns;}有如上求長(zhǎng)方形面積函數(shù),正確的調(diào)用方法是()。提示:本題area是有返回值的函數(shù)。?A.area(1);B.area();C.c=area(1,2);D.c=area("12","34");正確答案:C解析:A、實(shí)參個(gè)數(shù)與形參不一致D、實(shí)參為字符串型,與形參類型不一致15、??編寫函數(shù)area(intlength,intwidth),函數(shù)的功能是:求長(zhǎng)方形面積,并打印輸出面積值。?下面()是正確的。提示:本題area沒有要求返回值。?A.voidarea(intlength,intwidth){ints;s=length*width;returns;}B.intarea(intlength,intwidth){ints;s=length*width;returns;}C.voidarea(intlength,intwidth){ints;s=length*width;printf(“長(zhǎng)方形面積是%d\n”,s);}D.intarea(intlength,intwidth){ints;s=length*width;printf(“長(zhǎng)方形面積是%d\n”,s);}正確答案:C解析:A、有返回值,函數(shù)類型應(yīng)為int型。此外,函數(shù)內(nèi)沒有輸出s,與題意不符。B、函數(shù)內(nèi)無printf語句,與題目要求不符。D、無return語句,無返回值,area函數(shù)類型應(yīng)為void16、?編寫函數(shù)area(intlength,intwidth),函數(shù)的功能是:求長(zhǎng)方形面積,并返回面積值。下面()是正確的。?A.intarea(intlength,intwidth){ints;s=length*width;returns;}B.voidarea(intlength,intwidth){ints;s=length*width;printf(“長(zhǎng)方形面積是%d\n”,s);}C.intarea(intlength,intwidth){ints;s=length*width;printf(“長(zhǎng)方形面積是%d\n”,s);}D.voidarea(intlength,intwidth){ints;s=length*width;returns;}正確答案:A解析:B、沒有用return返回面積,與題意不符。C、無return語句,無返回值,area函數(shù)類型應(yīng)為void。此外,沒有用return返回面積,與題意不符。D、有返回值,函數(shù)類型應(yīng)為int型。17、?以下敘述中錯(cuò)誤的是()。A.函數(shù)中定義的變量默認(rèn)是自動(dòng)變量B.staticintx;則x會(huì)被初始化為0C.函數(shù)形參是存儲(chǔ)類型為自動(dòng)類型的局部變量D.全局變量的存儲(chǔ)類別是auto型的。正確答案:D解析:D、全局變量的存儲(chǔ)類別默認(rèn)是extern型18、?下列敘述錯(cuò)誤的是()。A.形參是局部變量B.主函數(shù)中定義的變量在整個(gè)程序中都有效C.其他函數(shù)中定義的變量在主函數(shù)中不能使用D.復(fù)合語句中定義的變量只在該復(fù)合語句中有效正確答案:B解析:B、主函數(shù)中定義的變量也是局部變量,只能在主函數(shù)中使用19、?當(dāng)全局變量與函數(shù)內(nèi)部的局部變量同名時(shí),則在函數(shù)內(nèi)部()。A.全局變量與局部變量都無效B.全局變量有效C.局部變量有效D.全局變量與局部變量都有效正確答案:C解析:C、公共作用域范圍內(nèi),全局變量暫時(shí)被同名局部變量屏蔽。假設(shè)每個(gè)函數(shù)是一間教室,函數(shù)中的變量(局部變量)比作教室內(nèi)的椅子,每間教室可以使用自己的椅子,不能使用其它教室的椅子。全局變量比作公共場(chǎng)所的椅子,大家都可以使用。因此,某學(xué)生即可以使用公共場(chǎng)所的椅子,又可以使用自己教室的椅子,但進(jìn)入教室后,他使用的是教室內(nèi)的椅子,即函數(shù)內(nèi)的變量20、下面程序運(yùn)行中,x被分配---釋放存儲(chǔ)空間,總共有()次這樣的過程。#include<stdio.h>voidproc(inta);intmain(){proc(2);proc(3);}voidproc(inta){staticintx;....;}全局變量、static型變量在編譯時(shí),給變量分配存儲(chǔ)空間;整個(gè)程序運(yùn)行結(jié)束,釋放變量所占的存儲(chǔ)空間。本題x是靜態(tài)存儲(chǔ)變量。?A.1B.2C.0D.3正確答案:A解析:A、x是靜態(tài)存儲(chǔ)變量,與全局變量一樣,只分配1次存儲(chǔ)空間,整個(gè)程序運(yùn)行結(jié)束,才釋放空間21、下面程序運(yùn)行中,形參a被分配---釋放存儲(chǔ)空間,總共有()次這樣的過程。#include<stdio.h>voidproc(inta);intmain(){proc(1);proc(2);proc(3);}voidproc(inta){a=2;....;}?提示:本題a是局部變量,作用域只在proc函數(shù)內(nèi)(1)定義變量a時(shí),給a分配存儲(chǔ)空間。(2)proc函數(shù)執(zhí)行結(jié)束,a消失,釋放a所占的存儲(chǔ)空間?A.2B.4C.3D.1正確答案:C解析:C、形參a是局部變量,每次執(zhí)行proc函數(shù)時(shí),給a分配存儲(chǔ)空間,執(zhí)行結(jié)束,釋放存儲(chǔ)空間。proc被調(diào)用3次,所以形參a被分配---釋放存儲(chǔ)空間3次22、?程序輸出結(jié)果為()?#include<stdio.h>?voidproc();?intmain()?{?intx=1;//定義局部變量x,局部變量只在本函數(shù)中有效?proc();??printf("%d\n",x);?}?voidproc()?{?intx;//定義局部變量x,局部變量只在本函數(shù)中有效?x=2;?}?A.2B.main,proc函數(shù)中都定義了變量x,程序錯(cuò)誤C.1D.0正確答案:C解析:B、C語言允許在不同的函數(shù)中使用同名變量,且不同函數(shù)中變量互不影響C、main,proc函數(shù)中都定義了變量x,但main中的x只在main中可使用,proc中的x只在proc中可使用,互不干擾。例如,2間教室都有黑板,但上面可書寫各自的內(nèi)容,互不影響。main、proc可視為2間教室,其中的x變量可視為黑板23、?下面程序的執(zhí)行結(jié)果為()。?#include<stdio.h>?voidproc();?intmain()?{?intx=8;//定義局部變量x,局部變量只在本函數(shù)中有效?proc();?printf("%d\n",x);?return0;?}?voidproc()?{?x=100;?}?A.100B.8C.編譯不能通過D.隨機(jī)數(shù)正確答案:C解析:C、變量在使用前要定義,但proc中的x沒有定義二、多選題1、?編程統(tǒng)計(jì)某高速收費(fèi)站單向通過的車輛數(shù)量,該高速為3車道,一次通過的車不超過3輛。?程序功能:通過車輛時(shí),輸入相應(yīng)的數(shù)(1-3之間),程序進(jìn)行累加;當(dāng)輸入字符s時(shí),輸出當(dāng)前通過的車輛總和;當(dāng)輸入e時(shí),輸出通過的車輛總數(shù),并結(jié)束程序。?程序有一個(gè)空,請(qǐng)選擇正確的答案。?#include<stdio.h>?intmain()?{?charc1;?inttotal=0;?printf("\t\t\t\t計(jì)數(shù)程序\n\n");//輸出提示菜單?printf("s---顯示當(dāng)前通過的車輛總數(shù)\t1-3---新增車輛數(shù)\te---顯示通過的車輛總數(shù),并結(jié)束程序\n\n");?do?{?//輸入一個(gè)字符? if(c1=='s')? printf("當(dāng)前通過的車輛總數(shù)是:%d\n",total);? elseif(c1=='1')? total=total+1;?? elseif(c1=='2')? total=total+2;? elseif(c1=='3')? total=total+3;?}while(c1!='e');?printf("總過的車輛總數(shù)是:%d\n",total);?return0;?}?輸入、輸出樣例如下圖:A.getchar();B.scanf("%c",&c1);//%c前有空格C.scanf("%c",&c1);D.c1=getchar();正確答案:B、C、D解析:A、輸入一個(gè)字符,但沒有保存下來,后面if中的變量c1沒有值B、輸入一個(gè)字符,可以跳過空格、tab與回車C、輸入一個(gè)字符,并賦值給變量c1D、輸入一個(gè)字符,并賦值給變量c12、?用for循環(huán)語句編程輸出A~Z之間的所有大寫字母,字母之間以空格分隔,要求一行輸出8個(gè)字符。下面的程序有一個(gè)空,請(qǐng)選擇恰當(dāng)?shù)难h(huán)語句完善程序。?#include<stdio.h>?intmain()?{?charc;?intcount=0;?{?printf("%c",c);?count++;?if(count%8==0)//每8個(gè)字符換行?printf("\n");?}?return0;?}?A.for(c=1;c<=26;c++)B.for(c='a';c<='z';c++)C.for(c=65;c<=90;c++)D.for(c='A';c<='Z';c++)正確答案:C、D解析:A、如果用此循環(huán),輸出語句就要改為printf("%c",c+'A'-1);與字母字符的ASCII碼值對(duì)應(yīng)B、輸出的是小寫字母,與題意不符C、65-90是大寫字母'A'-'Z'的ASCII標(biāo)準(zhǔn)碼值,循環(huán)從'A'的ASCII碼值遍歷至'Z'的ASCII碼值,printf("%c",c);則輸出對(duì)應(yīng)的字母D、可以使用字符常量做為循環(huán)變量的值,從'A'遍歷至'Z',實(shí)質(zhì)上使用的是字符的ASCII碼值參與循環(huán)本題中用字母為循環(huán)變量的值比較方便,注意'A'與'Z'上要加單引號(hào)才是字符常量,才有ASCII碼值三、填空題1、編寫函數(shù)計(jì)算下面多項(xiàng)式的值,并返回值?編寫main,輸入x,調(diào)用該函數(shù)計(jì)算多項(xiàng)式的值并顯示結(jié)果。請(qǐng)完善下面的程序:(有2個(gè)空,答案一行寫一個(gè),不要添加多余的空格)#include<stdio.h>doublef(doublex){2*x*x+3*x+1;//返回計(jì)算結(jié)果}intmain()?{doublex;printf("請(qǐng)輸入x:");scanf("%lf",&x);printf("f(%.2f)的值是%.2f",x,);//調(diào)用f函數(shù)?return0;}正確答案:returnf(x)解析:第一個(gè)空,f函數(shù)是有返回值的,所以,必須有return語句第二個(gè)空,調(diào)用函數(shù)的格式是:函數(shù)名(實(shí)參),所以,應(yīng)寫f(x)2、??一個(gè)正整數(shù)如果恰好等于它的除自身外的因數(shù)之和,這個(gè)數(shù)稱為“完數(shù)”。例如,6的因數(shù)有1、2、3,且6=1+2+3,因此6是“完數(shù)”。?編寫判別完數(shù)的函數(shù)wanshu(intx):功能判斷x是否為完數(shù),如果是,則返回1,不是,則返回0。?編寫main()中讓x從1循環(huán)至1000,并調(diào)wanshu函數(shù),如果返回值為1,則輸出該數(shù)。?請(qǐng)完善下面的程序:(有3個(gè)空,答案一行寫一個(gè),不要添加多余的空格)#include<stdio.h>intwanshu(intx){inti,r=0;for(i=1;i<x;i++){ if()//判斷x能整除i?即判斷i是否是x的因數(shù)? r=r+i;//將因數(shù)累加進(jìn)r中}if(r==x)//判斷因數(shù)和是否等于x,是則返回1,不是,返回0 return1;else return;}intmain(){inti;for(i=1;i<=1000;i++){if()//調(diào)用wanshu函數(shù),根據(jù)函數(shù)值,判斷i是否為完數(shù), printf("%d是完數(shù)\n",i);}return0;}正確答案:x%i==00wanshu(i)==1解析:第一個(gè)空:r保存因數(shù)和,當(dāng)滿足條件時(shí),因數(shù)加入r。所以,條件應(yīng)該是判斷i是否是因數(shù),應(yīng)填x%i==0第二個(gè)空:題目要求不是完數(shù),返回0。當(dāng)不滿足r==x,即因數(shù)和不是x,不是完數(shù),所以,填0第三個(gè)空:要填的是判斷i是完數(shù)的條件,滿足,就輸入i.在wanshu函數(shù)中,當(dāng)是完數(shù)時(shí),返回值是1,所以,應(yīng)該填wanshu(i)==13、?編寫求最大公約數(shù)函數(shù)gcd:功能是求兩數(shù)的最大公約數(shù),并返回該數(shù)。?main函數(shù)中調(diào)用該函數(shù),并輸出最大公約數(shù)。?請(qǐng)?zhí)羁胀晟瞥绦颉#ㄓ?個(gè)空,答案一行寫一個(gè),不要添加多余的空格)?#include<stdio.h>?intgcd(intm,intn)//求m,n的公約數(shù)的函數(shù)?{?intr;?r=m;//r是公約數(shù),初值為m?while((m%r!=0)||(n%r!=0))//當(dāng)r不是公約數(shù)時(shí),循環(huán)直至找到公約數(shù)?;//r減小1?returnr;?}?intmain()?{?intm,n;?printf("請(qǐng)輸入兩個(gè)數(shù)");?

溫馨提示

  • 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. 人人文庫網(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)論