C語言練習題、期末題、復試題_第1頁
C語言練習題、期末題、復試題_第2頁
C語言練習題、期末題、復試題_第3頁
C語言練習題、期末題、復試題_第4頁
C語言練習題、期末題、復試題_第5頁
免費預覽已結(jié)束,剩余16頁可下載查看

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

12、)。A)0B)0或1C)1D)T或'F'14 .下面(D)表達式的值為4.A)11/3B)C)(float)11/3D)(int)(11.0/3+0.5)15 .設(shè)整型變量a=2,則執(zhí)行下列語句后,浮點型變量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進行初始化的語句是:(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元素數(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ù)定義時指定的類型B)return語句中的表達式類型C)調(diào)用該函數(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ù)據(jù)類型D.任意指定的數(shù)據(jù)類型27 .在函數(shù)調(diào)用時,以下說法正確的是(B)A.函數(shù)調(diào)用后必須帶回返回值B.實際參數(shù)和形式參數(shù)可以同名C.函數(shù)間的數(shù)據(jù)傳遞不可以使用全局變量D.主調(diào)函數(shù)和被調(diào)函數(shù)總是在同一個文件里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)體類型時用的關(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;則下面敘述中錯誤的是(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的表達式是BA)*P+9B)*(P+8)C)*P+=9D)P+841 .在C語言中,以D作為字符串結(jié)束標志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)于兩個數(shù)組長度的正確描述是B.A)相同B)x大于yC)x小于yD)以上答案都不對44 .下面各函數(shù)中能實現(xiàn)打開文件功能的是AA)fopenB)fgetcC)fputcD)fclose45 .下列語句中,把變量fp說明為一個文件型指針的是(A)。A)FILE*fp;B)FILEfp;C)file*fp;D)filefp;46

21、.以讀寫方式打開一個已有的文本文件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");運行結(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);運行結(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);運行結(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);運行結(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);運行結(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,則運行結(jié)果為:-9isanegativeodd7.#include<stdio.h

25、>main()intnum=0;while(num<=2)num+;printf("%dn",num);運行結(jié)果為:1238.#include<stdio.h>main()intsum=10,n=1;while(n<3)sum=sum-n;n+;printf(“%d,%d”,n,sum);運行結(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,則運行結(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,運行結(jié)果為:2,111.#include"stdio.h"main()charc;c=getchar();while(c!='?')putchar(c);c=getchar();如果從鍵盤輸入abcd

27、e?fgh(回車)運行結(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);當輸入為ab*AB%cd#CD$時,運行結(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、運行結(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”);當從鍵盤輸入字母A時,運行結(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,運行結(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!);運行結(jié)果為:70-8060-7017.#include<stdio.h>main()inty=9;for(;y>0;y-)if(y%3=0)pri

30、ntf(%d”,-y);continue;運行結(jié)果為:85218.#include<stdio.h>main()inti,sum=0;i=1;dosum=sum+i;i+;while(i<=10);printf(“%d”,sum);運行結(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;運行結(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);運行結(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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論