C語言練習(xí)題、期末題、復(fù)試題_第1頁
C語言練習(xí)題、期末題、復(fù)試題_第2頁
C語言練習(xí)題、期末題、復(fù)試題_第3頁
C語言練習(xí)題、期末題、復(fù)試題_第4頁
C語言練習(xí)題、期末題、復(fù)試題_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C語百技能試題1、設(shè)圓半徑r=1.5,圓柱高h(yuǎn)=3,求圓周長、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf輸入數(shù)據(jù),輸出計(jì)算結(jié)果。輸出時(shí)要有文字說明,取小數(shù)點(diǎn)后兩位數(shù)字。2、編程序,用getchar函數(shù)讀放兩個(gè)字符給cl、c2,然后分別用putchar函數(shù)和printf函數(shù)輸出這兩個(gè)字符。3、有一個(gè)函數(shù)xx<1J2x1<x<10y=、xx>10用scanf函數(shù)輸入x的值(分別為x<1、110、>10三種情況),求y值。4、給一個(gè)百分制成績,要求輸出成績等級A、B'、C'、D'、'E'。90分以上為A',

2、8189分為'B',7079分為'C',6069分為'D',60分以下為E'。5、給一個(gè)不多于5位的正整數(shù),要求:求出它是幾位數(shù);分別打印出每一位數(shù)字;按逆序打印出各位數(shù)字,例如原數(shù)為321,應(yīng)輸出123。6、輸入四個(gè)整數(shù),要求按大小順序輸出。7、輸入兩個(gè)正整數(shù),求其中最大公約數(shù)和最小公倍數(shù)。8、輸入一行字符,分別統(tǒng)計(jì)出其中的英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)。9、猴子吃桃問題。猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不過癮,又多吃了一個(gè)。第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第1

3、0天早上想再吃時(shí),見只剩下一個(gè)桃子了。求第一天共摘了多少桃子。10、用選擇法對10個(gè)整數(shù)排序。10個(gè)整數(shù)用scanf函數(shù)輸入。11、有15個(gè)數(shù)存放在一個(gè)數(shù)組中,輸入一個(gè)數(shù),要求用折半查找法找了該數(shù)是數(shù)組中第幾個(gè)元素的值。如果該數(shù)不在數(shù)組中,則輸出“無此數(shù)”。以15個(gè)數(shù)用賦初值的方法在程序中給出,要找的數(shù)用scanf函數(shù)輸入。12、將兩個(gè)字符串連接起來,不要用strcat函數(shù)。13、找出一個(gè)二維數(shù)組的“鞍點(diǎn)”,即該位置上的元素在該行上最大,在該列上最小。也可能沒有鞍點(diǎn)。數(shù)組元素的值用賦初值方法在程序中指定。14、寫一個(gè)判素?cái)?shù)的函數(shù),在主函數(shù)輸入一個(gè)整數(shù),輸出是否素?cái)?shù)的信息。15、用一個(gè)函數(shù)來實(shí)現(xiàn)

4、將一行字符串中最長的單詞輸出。此行字符串從主函數(shù)傳遞給該函數(shù)。16、用遞歸法將一個(gè)整數(shù)輪換成字符串。例如,輸入483,應(yīng)輸出字符串“483”。n的位數(shù)不確定,可以是任意的整數(shù)。17、求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù),用一個(gè)函數(shù)求最大公約數(shù)。用另一個(gè)函數(shù)根據(jù)求出的最大公約數(shù)求最小公倍數(shù)。(1)用全局變量的方法。將兩個(gè)整數(shù)的最大公約數(shù)、最小公倍數(shù)都設(shè)為全局變量。(2)不用全局變量,兩個(gè)整數(shù)在主函數(shù)中輸入,并傳送給函數(shù)1,求出的最大公約數(shù)返回主函數(shù),然后再與兩個(gè)整數(shù)一起作為實(shí)參傳遞給函數(shù)2,以求出最小公倍數(shù),返回到主函數(shù)輸出最大公約數(shù)和最小公倍數(shù)。18、寫一個(gè)函數(shù),輸入一個(gè)十六進(jìn)制數(shù),輸出相應(yīng)的十

5、進(jìn)制數(shù)。19、定義一個(gè)帶參數(shù)的宏,使兩個(gè)參數(shù)的值互換。在主函數(shù)中輸入兩個(gè)數(shù)作為使用宏的實(shí)參,輸出已交換后的兩個(gè)值。20、設(shè)計(jì)輸出實(shí)數(shù)的格式,包括:(1)一行輸出一個(gè)實(shí)數(shù);(2)一行內(nèi)輸出兩上實(shí)數(shù);(3)一行內(nèi)輸出三個(gè)實(shí)數(shù)。實(shí)數(shù)用“”格式輸出。用一個(gè)文件包含以上用#3向3命令定義的格式。在自己的文件(自己命名)中用#include命令交文件包含進(jìn)來。在程序中用scanf函數(shù)讀入三個(gè)實(shí)數(shù)給fl、f2、f3。然后用上面定義的三種格式分別輸出(1)fl,f2;(2)fl,f2,f3。21、用條件編譯方法實(shí)現(xiàn)以下功能:輸入一行電報(bào)文字,可以任選兩種輸出,一為原文輸出;一為將字母變成其下一字母(如a變成b

6、',z變成'a'。其它字符不變)。用#6巾ne命令來控制是否要譯成密碼。例如:#defineCHANG1則輸出密碼。若#defineCHANG0則不譯成密碼,按原碼輸出。用條件編譯方法來處理。22、輸入三個(gè)整數(shù),按由小到大的順序輸出,然后交程序改為:輸入三個(gè)字符串,按由小到大順序輸出。(要求用指針處理)。素:廠1357911j131519.>23、得一個(gè)3X3的矩陣轉(zhuǎn)置,用一函數(shù)實(shí)現(xiàn)之。在主函數(shù)中用scanf函數(shù)輸入以下矩陣元將數(shù)組名作為函數(shù)實(shí)參。函數(shù)調(diào)用后在主函數(shù)中輸出已轉(zhuǎn)置的矩陣。(要求用指針處理)24、用一個(gè)函數(shù)實(shí)現(xiàn)兩個(gè)字符串的比較,即自己寫一個(gè)strcmp

7、函數(shù):strcmp(s1,s2)如果s1=s2,則函數(shù)返回值為0;如果s1ws2,返回它們二者第一個(gè)不同字符的ASCII碼差值(如“BOY與“BAD,第二個(gè)字母不同,"O'與"A'之差為79-65=14);如果s1>s2,則輸出正值;如果s1<s2則輸出負(fù)值。兩個(gè)字符串s1、s2由main函數(shù)輸入,strcmp函數(shù)的返回值也在main函數(shù)輸出。(要求用指針處理)25、用指向指針的指針的方法對n個(gè)整數(shù)排序并輸出。要求將排序單獨(dú)寫一個(gè)函數(shù)。N和各整數(shù)在主函數(shù)中輸入。最后在主函數(shù)中輸出。26、有5個(gè)學(xué)生,每個(gè)學(xué)生裝的數(shù)據(jù)包括學(xué)號、姓名、三門課的成績,從

8、鍵盤輸入5個(gè)學(xué)生數(shù)據(jù),要求打印出三門課總平均成績,以及最高分的學(xué)生的數(shù)據(jù)(包括學(xué)號、姓名、三門課成績、平均分?jǐn)?shù))。要求用一個(gè)input函數(shù)輸入5個(gè)學(xué)生數(shù)據(jù);用一個(gè)average函數(shù)求總平均分;用max函數(shù)找出最高分學(xué)生數(shù)據(jù);總平均分和最高分的學(xué)生的數(shù)據(jù)都在主函數(shù)中輸出。27、13個(gè)人圍成一個(gè)圈,從第1個(gè)人開始順序報(bào)號1、2、3。凡報(bào)到“3”者退出圈子,找出最后留在圈子中的人原來的序號。28、建立一個(gè)鏈表,每個(gè)結(jié)點(diǎn)包括:學(xué)號、姓名、性別、年齡。輸入一個(gè)年齡,如果鏈表中的結(jié)點(diǎn)所包含的年齡等于此年齡,則將此結(jié)點(diǎn)刪去。29、有5個(gè)學(xué)生,每個(gè)學(xué)生有3門課的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)生號、姓名、三門

9、課成績),計(jì)算出平均成績,將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件“stud”中。30、將上題“stud”文件中的學(xué)生數(shù)據(jù),按平均分進(jìn)行排序處理,將已排序的學(xué)生數(shù)據(jù)存入一個(gè)新文件"stu_sort"中。單項(xiàng)選擇題:1 .(A)是構(gòu)成C語言程序的基本單位。A、函數(shù)B、過程C、子程序D、子例程2 .C語言程序從C開始執(zhí)行。A)程序中第一條可執(zhí)行語句B)程序中第一個(gè)函數(shù)C)程序中的main函數(shù)D)包含文件中的第一個(gè)函數(shù)3、以下說法中正確的是(C)。A、C語言程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行B、在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義C、C語言程序總是從main

10、()函數(shù)開始執(zhí)行D、C語言程序中的main()函數(shù)必須放在程序的開始部分4.下列關(guān)于C語言的說法錯(cuò)誤的是(B)A)C程序的工作過程是編輯、編譯、連接、運(yùn)行B)C語言不區(qū)分大小寫。C) C程序的三種基本結(jié)構(gòu)是順序、選擇、循環(huán)D) C程序從main函數(shù)開始執(zhí)行5 .下列正確的標(biāo)識符是(C)。A.-a1B.aiC.a2_iD.intt6 .下列C語言用戶標(biāo)識符中合法的是(B)。A)3axB)xC)caseD)-e2E)union7 .下列四組選項(xiàng)中,正確的C語言標(biāo)識符是(C)。123A)%xB)a+bC)a123D)8、下列四組字符串中都可以用作C語言程序中的標(biāo)識符的是(A)。A、print_3dd

11、b8aBcC、str_1Cpppowwhile9.C語言中的簡單數(shù)據(jù)類型包括(DA、整型、實(shí)型、邏輯型C、整型、字符型、邏輯型B、Iamone_halfstart$it3paiD、)°B、整型、實(shí)型、邏輯型、字符型D、整型、實(shí)型、字符型10.在C語言程序中,表達(dá)式A)2.5B)25%2的結(jié)果是CC)1D)311.如果inta=3,b=4;則條件表達(dá)式"a<b?a:b"的值是AA)3B)4C)0D)112 .若intx=2,y=3,z=4則表達(dá)式x<z?y:z的結(jié)果是(B).A)4B)3C)2D)0E)113 .C語言中,關(guān)系表達(dá)式和邏輯表達(dá)式的值是(B

12、)。A)0B)0或1C)1D)T或'F'14 .下面(D)表達(dá)式的值為4.A)11/3B)C)(float)11/3D)(int)(11.0/3+0.5)15 .設(shè)整型變量a=2,則執(zhí)行下列語句后,浮點(diǎn)型變量b的值不為的是(A.b=1.0/aB.b=(float)(1/a)C.b=1/(float)aD.b=1/(a*1.0)16 .若“intn;floatf=13.8;",則執(zhí)行"n=(int)f%3"后,n的值是(A)17 .以下對一維數(shù)組a的正確說明是:A)chara(10);B)inta;C)intk=5,ak;D)chara3=aT,b&

13、#39;,'c'18 .以下能對一維數(shù)組a進(jìn)行初始化的語句是:(C)A.inta5=(0,1,2,3,4,)B.inta(5)=C.inta3=0,1,2D.inta5=10*119 .在C語言中對一維整型數(shù)組的正確定義為DqA)inta(10);B)intn=10,an;C)intn;an;D)#defineN10intaN;20、已知:inta10;則對a數(shù)組元素的正確引用是(D)。A、a10B、a3.5C、a(5)D、a021.若有以下數(shù)組說明,則i=10;aai元素?cái)?shù)值是(B)。inta12=1,4,7,10,2,5,8,11,3,6,9,12;22.若有說明:inta

14、口3=1,2,3,4,5,6,7;則數(shù)組a的第一維的大小為:(BA.2B.3C.4D.無確定值57D)36923 .對二維數(shù)組的正確定義是(C)A.inta=1,2,3,4,5,6;B.inta2=1,2,3,4,5,6;C.inta3=1,2,3,4,5,6;D.inta2,3=1,2,3,4,5,6;24 .已知inta34;則對數(shù)組元素引用正確的是CA)a24B)a1,3C)a20D)a(2)(1)25 .C語言中函數(shù)返回值的類型是由A決定的.A)函數(shù)定義時(shí)指定的類型B)return語句中的表達(dá)式類型C)調(diào)用該函數(shù)時(shí)的實(shí)參的數(shù)據(jù)類型D)形參的數(shù)據(jù)類型26 .在C語言中,函數(shù)的數(shù)據(jù)類型是指

15、(A)A函數(shù)返回值的數(shù)據(jù)類型B.函數(shù)形參的數(shù)據(jù)類型C調(diào)用該函數(shù)時(shí)的實(shí)參的數(shù)據(jù)類型D.任意指定的數(shù)據(jù)類型27 .在函數(shù)調(diào)用時(shí),以下說法正確的是(B)A.函數(shù)調(diào)用后必須帶回返回值B.實(shí)際參數(shù)和形式參數(shù)可以同名C.函數(shù)間的數(shù)據(jù)傳遞不可以使用全局變量D.主調(diào)函數(shù)和被調(diào)函數(shù)總是在同一個(gè)文件里28 .在C語言中,表示靜態(tài)存儲類別的關(guān)鍵字是:(C)A)autoB)registerC)staticD)extern29 .未指定存儲類別的變量,其隱含的存儲類別為(A)。A)autoB)staticC)externD)register30 .若有以下說明語句:structstudentintnum;charnam

16、e;floatscore;stu;則下面的敘述不正確的是:(D)A. struct是結(jié)構(gòu)體類型的關(guān)鍵字B. structstudent是用戶定義的結(jié)構(gòu)體類型C. num,score都是結(jié)構(gòu)體成員名D. stu是用戶定義的結(jié)構(gòu)體類型名31 .若有以下說明語句:structdateintyear;intmonth;intday;brithday;則下面的敘述不正確的是C.A) struct是聲明結(jié)構(gòu)體類型時(shí)用的關(guān)鍵字B) structdate是用戶定義的結(jié)構(gòu)體類型名C) brithday是用戶定義的結(jié)構(gòu)體類型名D) year,day都是結(jié)構(gòu)體成員名32 .以下對結(jié)構(gòu)變量stul中成員age的非法引

17、用是Bstructstudentintage;intnum;stu1,*p;p=&stu1;8) student.ageC)p->ageD)(*p).age33 .設(shè)有如下定義:struckskinta;floatb;data;int*p;若要使P指向data中的a域,正確的賦值語句是CA)p=&a;B)p=data.a;C)p=&data.a;D)*p=data.a;34 .設(shè)有以下說明語句:typedefstructstuinta;floatb;stutype;則下面敘述中錯(cuò)誤的是(D)。A、struct是結(jié)構(gòu)類型的關(guān)鍵字B、structstu是用戶定義的結(jié)構(gòu)

18、類型C、a和b都是結(jié)構(gòu)成員名D、stutype是用戶定義的結(jié)構(gòu)體變量名35 .語句int*p;說明了C。A)p是指向一維數(shù)組的指針B)p是指向函數(shù)的指針,該函數(shù)返回一int型數(shù)據(jù)C)p是指向int型數(shù)據(jù)的指針D)p是函數(shù)名,該函數(shù)返回一指向int型數(shù)據(jù)的指針36 .下列不正確的定義是(A)。A.int*p=&i,i;B.int*p,i;C.inti,*p=&i;D.inti,*p;37 .若有說明:intn=2,*p=&n,*q=p,則以下非法的賦值語句是:(D)A)p=qB)*p=*qC)n=*qD)p=n38 .有語句:inta10,;則B是對指針變量p的正確定義和

19、初始化。A)intp=*a;B)int*p=a;C)intp=&a;D)int*p=&a;39 .若有說明語句“inta5,*p=a;",則對數(shù)組元素的正確引用是(C)。A.apB.paC.*(p+2)D.p+240 .有如下程序inta10=1,2,3,4,5,6,7,8,9,10,*P=a;則數(shù)值為9的表達(dá)式是BA)*P+9B)*(P+8)C)*P+=9D)P+841 .在C語言中,以D作為字符串結(jié)束標(biāo)志A)'n'B)''C)0'D)'0'42 .下列數(shù)據(jù)中屬于“字符串常量”的是(A)。A."a&q

20、uot;B.ABCC.'abc'0'D.'a'43 .已知charx尸"hello",y='h','e','a','b','e',則關(guān)于兩個(gè)數(shù)組長度的正確描述是B.A)相同B)x大于yC)x小于yD)以上答案都不對44 .下面各函數(shù)中能實(shí)現(xiàn)打開文件功能的是AA)fopenB)fgetcC)fputcD)fclose45 .下列語句中,把變量fp說明為一個(gè)文件型指針的是(A)。A)FILE*fp;B)FILEfp;C)file*fp;D)filefp;46

21、.以讀寫方式打開一個(gè)已有的文本文件file1,并且FILE*fp,下面fopen函數(shù)正確的調(diào)用方式是(B)。A.fp=fopen(file1","r")B.fp=fopen(file1","r+")C.fp=fopen("file1","rb")D.fp=fopen(file1","w")讀程序基本輸入輸出及流程控制1.#include<stdio.h>main()inta=1,b=3,c=5;if(c=a+b)printf("yesn&quo

22、t;);elseprintf("non");運(yùn)行結(jié)果為:no2.#include<stdio.h>main()inta=12,b=-34,c=56,min=0;min=a;if(min>b)min=b;if(min>c)min=c;printf("min=%d",min);運(yùn)行結(jié)果為:min=-343.#include<stdio.h>main()intx=2,y=-1,z=5;if(x<y)if(y<0)z=0;elsez=z+1;printf(“%nd”,z);運(yùn)行結(jié)果為:54.#include<

23、stdio.h>main()floata,b,c,t;a=3;b=7;c=1;if(a>b)t=a;a=b;b=t;if(a>c)t=a;a=c;c=t;if(b>c)t=b;b=c;c=t;printf("%5.2f,%5.2f,%5.2f",a,b,c);運(yùn)行結(jié)果為:1.00,2.00,5.#include<stdio.h>main()floatc=3.0,d=4.0;if(c>d)c=5.0;elseif(c=d)c=6.0;elsec=7.0;printf(“%n.1”f,c);運(yùn)行結(jié)果為:6.#include<std

24、io.h>main()intm;scanf("%d",&m);if(m>=0)if(m%2=0)printf("%disapositiveevenn",m);elseprintf("%disapositiveoddn",m);elseif(m%2=0)printf("%disanegativeevenn",m);elseprintf("%disanegativeoddn",m);若鍵入9,則運(yùn)行結(jié)果為:-9isanegativeodd7.#include<stdio.h

25、>main()intnum=0;while(num<=2)num+;printf("%dn",num);運(yùn)行結(jié)果為:1238.#include<stdio.h>main()intsum=10,n=1;while(n<3)sum=sum-n;n+;printf(“%d,%d”,n,sum);運(yùn)行結(jié)果為:3,79.#include<stdio.h>main()intnum,c;scanf("%d",&num);doc=num%10;printf("%d",c);while(num/=10)

26、>0);printf("n");從鍵盤輸入23,則運(yùn)行結(jié)果為:3210#include<stdio.h>main()ints=0,a=5,n;scanf("%d",&n);dos+=1;a=a-2;while(a!=n);printf("%d,%dn",s,a);若輸入的值1,運(yùn)行結(jié)果為:2,111.#include"stdio.h"main()charc;c=getchar();while(c!='?')putchar(c);c=getchar();如果從鍵盤輸入abcd

27、e?fgh(回車)運(yùn)行結(jié)果為:abcde12.#include<stdio.h>main()charc;while(c=getchar()!=$)if(A<=c&&c<=Z)putchar(c);elseif(a<=c&&c<=z)putchar(c-32);當(dāng)輸入為ab*AB%cd#CD$時(shí),運(yùn)行結(jié)果為:ABABCDCD13.#include<stdio.h>main()intx,y=0;for(x=1;x<=10;x+)if(y>=10)break;y=y+x;printf(“%d%d”,y,x);

28、運(yùn)行結(jié)果為:10514.#include<stdio.h>main()charch;ch=getchar();switch(ch)caseA:printf(“%c”,A);caseB:printf(“%c”,B);break;default:printf(“n%”s,”other”);當(dāng)從鍵盤輸入字母A時(shí),運(yùn)行結(jié)果為:AB15.#include<stdio.h>main()inta=1,b=0;scanf(“%d”,&a);switch(a)case1:b=1;break;case2:b=2;break;default:b=10;printf("%d&

29、quot;,b);若鍵盤輸入5,運(yùn)行結(jié)果為:1016.#include<stdio.h>main()_chargrade=C;switch(grade)caseA:printf(“9n0”);caseB:printf(“8n”0);caseC:printf(“7n0”);caseD:printf(“6n0”);break;caseE:printf(“n”<6);0default:printf(“errno”r!);運(yùn)行結(jié)果為:70-8060-7017.#include<stdio.h>main()inty=9;for(;y>0;y-)if(y%3=0)pri

30、ntf(%d”,-y);continue;運(yùn)行結(jié)果為:85218.#include<stdio.h>main()inti,sum=0;i=1;dosum=sum+i;i+;while(i<=10);printf(“%d”,sum);運(yùn)行結(jié)果為:5519.#include<stdio.h>#defineN4main()inti;intx1=1,x2=2;printf("n");for(i=1;i<=N;i+)printf("%4d%4d",x1,x2);if(i%2=0)printf("n");x1=x1+x2;x2=x2+x1;運(yùn)行結(jié)果為:1235813213420#include<stdio.h>main()intx,y;for(x=30,y=0;x>=10,y<10;x-,y+)x/=2,y+=2;printf(“x=%d,y=%dn”,x,y);運(yùn)行結(jié)果為:x=0,y=1221.#include<stdio.h>#defineN4main()inti,j;f

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論