




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C語言練習題一、選擇題1 .一個完整的C源程序是BoA)要由一個主函數或一個以上的非主函數構成B)由一個且僅由一個主函數和零個以上的非主函數構成C)要由一個主函數和一個以上的非主函數構成D)由一個且只有一個主函數或多個非主函數構成2 .以下關于函數的敘述中正確的是CoAC語言程序將從源程序中第一個函數開始執(zhí)行B)可以在程序中由用戶指定任意一個函數作為主函數,程序將從此開始執(zhí)行C) C語言規(guī)定必須用main作為主函數名,程序將從此開始執(zhí)行,在此結束D) main可作為用戶標識符,用以定義任意一個函數3 .以下關于函數的敘述中不正確的是BoAC程序是函數的集合,包括標準庫函數和用戶自定義函數B)在
2、C語言程序中,被調用的函數必須在main函數中定義C)在C語言程序中,函數的定義不能嵌套D)在C語言程序中,函數的調用可以嵌套4 .在一個C程序中,【B】。Amain函數必須出現(xiàn)在所有函數之前B) main函數可以在任何地方出現(xiàn)C) main函數必須出現(xiàn)在所有函數之后D) main函數必須出現(xiàn)在固定位置5 .C程序的執(zhí)行是從【A】開始的A)主函數B)子函數C)從程序第一行D)printf()函數6 .以下選項中不合法的標識符是【C】A)printB)FORC)&aD)_007 .以下選項中用作為C語言合法常量的是【AA)-80B)-080C)-8e1.0D)-80.0e8 .以下選項中不屬于字
3、符常量的是BA)CB)CC)xCCD)0729.若在C語言中未說明函數的類型,則系統(tǒng)默認該函數的數據類型是CA)floatB)longC)intD)double10 .以下關于函數敘述中,錯誤的是【DIoA)函數未被調用時,系統(tǒng)將不為形參分配內存單元B)實參與形參的個數應相等,且實參與形參的類型必須對應一致C)當形參是變量時,實參可以是常量、變量或表達式D)形參可以是常量、變量或表達式11 .C程序中各函數之間可以通過多種方式傳遞數據,下列不能用于實現(xiàn)數據傳遞的方式是【DioA)參數的形實(啞實)結合B)函數返回值C)全局變量D)同名的局部變量12 .若有定義:inta23;,以下選項中對a數
4、組元素正確引用的是【QA)a2!1B)a23C)a12!1D)a0313 .若有說明:inta4=0,0;則下面不正確的敘述是【D】A)數組a的每個元素都可得到初值0B)二維數組a的第一維大小為1C)因為二維數組a中第二維大小的值除經初值個數的商為1,故數組a的行數為1D)有元素a00和a01可得到初值0,其余元素均得不到初值014 .下列選項中錯誤的說明語句是DA)chara=t,o,y,o,u,0;B)chara=toyou0;C)chara=toyou0;D)chara=toyou0;15.chara1=abc,a280=1234”;將a1串連接到a2串后面的語句是A)strcat(a2
5、,a1);B)strcpy(a2,a1);C)strcat(a1,a2);D)strcpy(a1,a2);15 .若函數調用時參數為基本數據類型的變量,以下敘述正確的是【C】。A)實參與其對應的形參共占存儲單元B)只有當實參與其對應的形參同名時才共占存儲單元C)實參與對應的形參分別占用不同的存儲單元D)實參將數據傳遞給形參后,立即釋放原先占用的存儲單元16 .函數調用時,當實參和形參都是簡單變量時,他們之間數據傳遞的過程是【D】。A)實參將其地址傳遞給形參,并釋放原先占用的存儲單元B)實參將其地址傳遞給形參,調用結束時形參再將其地址回傳給實參C)實參將其值傳遞給形參,調用結束時形參再將其值回傳
6、給實參D)實參將其值傳遞給形參,調用結束時形參并不將其值回傳給實參17 .若函數調用時的實參為變量時,以下關于函數形參和實參的敘述中正確的是DoA)函數的實參和其對應的形參共占同一存儲單元B)形參只是形式上的存在,不占用具體存儲單元C)同名的實參和形參占同一存儲單元D)函數的形參和實參分別占用不同的存儲單元18 .若用數組名作為函數調用的實參,則傳遞給形參的是【A】。A)數組的首地址B)數組的第一個元素的值C)數組中全部元素的值D)數組元素的個數19若函數調用時,用數組名作為函數的參數,以下敘述中正確的是【A。A)實參與其對應的形參共用同一段存儲空間B)實參與其對應的形參占用相同的存儲空間C)
7、實參將其地址傳遞給形參,同時形參也會將該地址傳遞給實參D)實參將其地址傳遞給形參,等同實現(xiàn)了參數之間的雙向值的傳遞20 .如果一個函數位于C程序文件的上部,在該函數體內說明語句后的復合語句中定義了一個變量,則該變量【Q。A為全局變量,在本程序文件范圍內有效B)為局部變量,只在該函數內有效C)為局部變量,只在該復合語句中有效D)定義無效,為非法變量21 .C語言中函數返回值的類型是由【D!決定。Areturn語句中的表達式類型B)調用函數的主調函數類型C)調用函數時臨時D)定義函數時所指定的函數類型22 .有以下程序#includemain()charp=a,b,c,q10=a,b,c,;pri
8、ntf(%d%dn,strlen(p),strlen(q);以下敘述中正確的是BA)在給p和q數組置初值時,系統(tǒng)會自動添加字符串結束符,故輸出的長度都為3B)由于p數組中沒有字符串結束符,長度不能確定,但q數組中字符串長度為3C)由于q數組中沒有字符串結束符,長度不能確定,但p數組中字符串長度為3D)由于p和q數組中都沒有字符串結束符,故長度都不能確定23定義一個void型函數意味著調用該函數時,函數CA)通過return返回一個用戶所希望的函數值B)返回一個系統(tǒng)默認值C)沒有返回值D)返回一個不確定的值24.若定義函數float*fun(),則函數fun的返回值為【B】。A)一個實數B)一個
9、指向實型變量的指針C)一個指向實型函數的指針D)一個實型函數的入口地址25 .下列數組說明中,正確的是DA)staticcharstr尸China;B)staticcharstr;str=China;C)staticcharstr15,str2=China;str1=str2;D)staticcharstr1,str2口;str2=China;strcpy(str1,str2);26 .在C語言程序中,當調用函數時【B】A)實參和形參共用一個存儲空間B)實參和形參各占一個獨立的存儲空間C)由用戶指定實參和形參是否共用存儲空間D)由系統(tǒng)確定實參和形參是否共用存儲空間27.21.22.關于以下fu
10、n函數的功能敘述中,正確的是【ALintfun(char*s)char*t=s;while(*t+);t-;)return(t-s);A)求字符串s的長度B)比較兩個串的大C)將串s復制到串tD)求字符串s所占字節(jié)數下面程序段運行后的輸出結果是B(假設程序運行時輸入5,3回車)inta,b;voidswap()(intt;t=a;a=b;b=t;main()scanf(%d,%d,&a,&b);swap();)printf(a=%d,b=%dn,a,b);A)a=5,b=3B)a=3,b=5C)5,3D)3,5以下程序運行后的輸出結果是【DIofun(inta,intb)(if(ab)retu
11、rna;elsereturnb;)main()(intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf(%dn,r);)A)3B)6C)8D)1223.以下程序的運行結果是【Q。voidf(inta,intb)intt;t=a;a=b;b=t;)main()intx=1,y=3,z=2;if(xy)f(x,y);elseif(yz)f(x,z);elsef(x,z);printf(%d,%d,%dn,x,y,z);)A)1,2,3B)3,1,2C)1,3,2D)2,3,125有以下程序#includeintf(intx)inty;if(x=0|x=1)retur
12、n(3);y=x*x-f(x-2);returny;main()intz;z=f(3);printf(%dn,z);程序的運行結果是【C】A)0B)9C)6D)826.有以下程序voidss(char*s,chart)while(*s)if(*s=t)*s=t-a+A;s+;main()charstr1100=abcddfefdbd,c=dss(str1,c);printf(%sn,str1);程序運行后的輸出結果是BA)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd26以下程序運行后的輸出結果為Bint*f(int*x,int*y)if(
13、*x*y)returnx;elsereturny;main()inta=7,b=8,*P,*q,*r;p=&a,q=&b;r=f(P,q);A)7,8,88,7,8printf(%d,%d,%dn,*p,*q,*r);B)7,8,7C)8,7,7D)27.以下程序的正確運行結果是【A#incluedmain()intk=4,m=1,p;p=func(k,m),printf(%a,p);p=func(k,m);,printf(%dn,p);func(inta,intb)sstaticintm=0,i=2;i+=m+1;m=i+a+b;return(m);A)8,17D)8,828.有以下程序B)
14、8,16C)8,20intfun(intn)if(n=1)return1;elsereturn(n+fun(n-1);main()intx;scanf(%d,&x);x=fun(x);printf(%dn,x);程序執(zhí)行時,若輸入10,程序的輸出結果是【AA)55B)54C)65D)4529.下面是一個計算1至m的階乘并依次輸出的程序。程序中應填入的正確選項是【D】。#includedoubleresult=1;factorial(intj)result=result*j;return;main()intm,i=0,x;printf(Pleaseenteraninteger:);scanf(%
15、d,&m);for(;i+m;)x=factorial(i);printf(%d!=%.0fn,【】);A)i,factorial(i)B)i,xC)j,xD)i,result30 .下面程序段的運行結果是Dchar*s=abcde;s+=2;printf(%d,s);A)cdeB)字符cC)字得,c的地/D)無病定的輸出結果31 .有以下程序#includevoidfun(int*s,intn1,intn2)inti,j,t;i=n1;j=n2;while(ij)t=si;si=sj;sj=t;i+;j-;main()inta10=1,2,3,4,5,6,7,8,9,0,k;fun(a,0,
16、3);fun(a,4,9);fun(a,0,9);for(k=0;kl0;k+)printf(%d,ak);printf(n);郎的運井封果是【ciA)0987654321B)4321098765C)5678901234D)098765123432 .下面程序的輸出結果是#includemain()char*p1=abc,*p2=ABC,str50=xyz;strcpy(str+2,strcat(p1,p2);printf(%sn,str);A)xyzabcABCB)xyabcABCzabcABCD)yzabcABCC)#include33 .有以下程序voidf(int*q)inti=0;f
17、or(;i5;i+)(*q)+;main()finta5=1,2,3,4,5,i;fOr);=0;i5;i+)printf(%d,ai);程序運行后的輸出結果是【AJA)6,2,3,4,5,B)2,2,3,4,5,C)1,2,3,4,5,D)2,3,4,5,6,34 .有以下程序#include#includetypedefstructcharname9;charsex;floatscore2;STU;voidf(STUa)STUb=Zhao,m,85.0,90.0;inti;strcpy(,);a.sex=b.sex;for(i=0;i2;i+)a.scorei=b.
18、scorei;main()STUc=Qian,f,95.0,92.0;f(c);,c.score程序的運行結printf(%s,%c,%2.0f,%2.0fn,,c.sex飛.sc嘴1);A)Qian,f,85,90B)Qian,m,95,92C)Zhao,f,95,92D)Zhao,m,85,9035 .有以下程序#includemain()intx=1,y=0,a=0,b=0;switch(x)case1:switch(y)case0:a+;break;case1:b+;break;case2:a+;b+;break;case3:a+;b+;printf(a=%d,b=%dn,
19、a,b);程序的運行結果是DA)a=1,b=0B)a=2,b=2C)a=1,b=1D)a=2,b=136 .下列程序的輸出結果是C#includestdio.hmain()inti,a=0,b=0;for(i=1;i10;i+)if(i%2=0)a+;continue;b+;)printf(a=%d,b=%d,a,b);A)a=4,b=4B)a=5,b=4C)a=4,b=5D)a=5,b=537 .已知#intt=0;while(t=1).則以下敘述正確的是【AA)循環(huán)控制表達式的值為1B)循環(huán)控制表達式的值為0C)循環(huán)控制表達式不合法D)以上說法都不對38 .有如下程序main()charc
20、h25=“6937“,“8254,*p2;inti,j,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i0;j+=2)s=10*s+pij-0;printf(dn,s);該程序的輸出結果是CoA)69825B)63825C)6385D)69382539 .下面程序的輸出是Bmain()intnum=0;while(num=2)num+;printf(%dn,num);A)1B)1C)1 D)12 223 3440以下能正確定義一維數組的選項是BA)inta5=0,1,2,3,4,5;B)chara=0,1,2,3,4,5,,0;C)chara=A,B,C;D)inta5=0
21、123”;41 .若有如下定義和語句,且0=i8+2B)a&dC)(a*2-c)|dC)a-bmC)(*p).mD)p.stu.n46.下列函數中不能用于對文件進行輸入輸出操作的是【B】A)fscanf()B)printf()C)fgetc()D)fputs()47.若要用fopen函數打開一個新的二進制文件,該文件要既能讀也能寫,則文件方式字符串應是【B】。A)ab+B)wb+C)rb+D)ab48.1. fp是指向某文件的指針,文件操作結束之后,關閉文件指針應使用下列【D1語句A)fp=fclose();B)fp=fclose;C)fclose;D)fclose(fp);二、程序填空題1
22、.以下程序實現(xiàn)了計算x的n次方,請將程序填寫完整。floatpower(floatx,intn)inti;floatt=1;for(i=1;i=n;i+)t=t*x;returnt】八main()floatx,y;ntn;scanf(%f,%d,&x,&n);y=power(x,n);printf(%8.2fn,y);2 .以下程序實現(xiàn)了求兩個數的最大公約數,請將程序填寫完整。intdivisor(inta,intb)intr;r=a%b;while()【r!=0a=b;b=r;r=a%b;returnb;voidmain()inta,b,d,t;scanf(%d%d,&a,&b);if(ab
23、)t=a;a=b;b=t;d=divisor(a,b);printf(ngcd=%d,d);3 .給定程序中,函數fun的功能是:找出100至x(x999)之間各位上白數字之和為15的所有整數,然后輸出;符合條件的整數個數作為函數值返回。#includeintfun(intx)intn,s1,s2,s3,t;n=0;t=100while(t999|x0)printf(Pleaseinput(0x=999):);scanf(%d,&x);printf(nTheresultis:%dn,);【fun(x)】4 .輸入N個實數,輸出其中的最大值、最小值。#includevoidmain()intn,
24、i;floatno1,nmax,nmin;scanf(%d,&n);scanf(%f”,&no1);nmax=no1;nmin=no1;for(i=2;inmax)nmax=no1;if(no1nmin)nmin=no1;】printf(MAX=%fMIN=%fn,nmax,nmin);5 .輸入若干個字符,分別統(tǒng)計數字字符的個數、英文字母的個數,當輸入換行符時輸出統(tǒng)計結果,運行結束。#include#includevoidmain()ints1=0,s2=0;charch;while()!=n)【ch=getchar()】if(ch=0&ch=a&ch=A&ch=Z】printf(%d,%d
25、,s1,s2);)6 .以下程序功能是輸入10門成績,實現(xiàn)成績的升序排列并輸出,請在程序的下劃線處填入正確的內容,使程序得出正確的結果。#includemain()for(i=0;i10-1;i+);k=ifor(j=i+1;jscorej);k=j1)t=scorek;scorek=;scorei=tscorei)printf(成績輸出n);for(i=0;i10;i+)printf(%7.2f”,scorei);)printf(n);7.以下程序的功能是:刪去一維數組中所有相同的數使之只剩一個。數組中的數已按由小到大的順序排列,函數返回刪除后數組中數據的個數。請將程序填寫完整。例如,若一維
26、數組中的數據是:666677899101010刪除后,數組中的內容應該是:910。#include1 defineN80intfun(inta,intn)inti,j=1;【!=】【j】for(i=1;in;i+)if(aj-1a川aj+=ai;return;main()(intN=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,0,10,i,n=19;printf(Theoriginaldata:n);for(i=0;in,i+)printf(%d,ai);prifon=fun(a,n);printf(nThedataafterdeleted:n);fo(i=0;in;
27、i+)Printf(d,ai);三、編程題1.編寫程序從鍵盤輸入三角形的三邊長,(其中,l=(a+b+c)/2,s=Vl(l-a)(l-b)(l-c)#include#includemain()floata,c,l;doubleS;逗用哪文4輸入三邊長度(如345):求三角形面);/注后、scanf(%f,%f,%f,&a,&b,&c);if(a+b=c|b+c=a|a+c=b)printf(您所輸入的三包不構成三角形!);elsel=(a+b+c)/2;)瑞q(抑*耐翻b珠甯:;,儼;海倫公式2 .編寫一個程序,求方程ax2+bx+c=0的根。#include#includeintroot(
28、floata,floatb,floatc,float*x1,float*x2)(floatd;d=b*b-4*a*c;if(d0)return0elseif(d=0)(*x1=(-b)/(2*a)return1;)else(*x1=(-b+sqrt(d)/(2*a);*x2=(-b-sqrt(d)/(2*a);return2;)3 .川!定義國教的形式編程實現(xiàn)求10名學生1門課程成疑的半均不。#include#defineN10floataveragefloatarray口)inti=0;floats=0;for(i=0;iN;i+)s+=arrayi;s=s/N;returns;八main(
29、)floatscoreN,i;floatave;printf(Pleaseinput10scores:n);for(i=0;iN;i+)scanf(%f”,&scorei);ave=average(score);printf(nTheaveragescoreis%.2fn,ave);4 .編寫程序輸出所有的水仙花數。所謂水仙花數是指一個三位數,其各位數字立方和等于該數本身,例如:153=1八3+5八3+3八3。#includevidmain()intn,a,b,c;for(n=100;n=999;n+)a=n/100;b=n%100/10;c=n%10;if(a*a*a+b*b*b+c*c*c=n)printf(%dn,n);5.1!一個年份,判斷其是否為閏年,并輸出判斷結voidmain()intyear;printf(”請輸入年份:);scanf(%d,&year);if(year%4=0&year/100!=0)|(year%400=0printf(%d此年是閏年n,year);elseprintf(%d此年非閏
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度浙江省二級注冊建筑師之法律法規(guī)經濟與施工題庫檢測試卷B卷附答案
- 腫瘤單抗藥物治療護理
- 前期營銷案場客服培訓
- DB43-T 2875-2023 安寧療護舒適照護基本規(guī)范
- 中考物理核心考點考前沖刺 摩擦力的利用與防止(含解析)
- 教育企業(yè)文化匯報
- 高考歷史核心考點押題預測 工業(yè)革命(含解析)
- 幼兒園小班生活活動教案小花被
- 刮胡刀面試題及答案
- 工科情景面試題及答案
- 鎖骨骨折的護理查房
- 印度博帕爾甲基異氰酸酯泄漏事故回顧分析
- 廣東省佛山市順德區(qū)2023-2024學年七年級下學期期末語文試題(原卷版)
- 部編人教版六年級上冊語文全冊教學課件+單元復習課件
- 【新教材】蘇科版(2024)七年級上冊數學第1-6章全冊教案設計
- 車輛維修保養(yǎng)服務 投標方案(技術方案)
- 陜西省西安市雁塔區(qū)2023-2024學年六年級下學期期末語文試卷
- 加油站會員體系設計與運營策略
- 精索靜脈曲張教學
- GB/T 5683-2024鉻鐵
- 提高靜脈血栓栓塞癥規(guī)范預防率-醫(yī)務科-2023.12.7
評論
0/150
提交評論