《C語言》考試試題集_第1頁
《C語言》考試試題集_第2頁
《C語言》考試試題集_第3頁
《C語言》考試試題集_第4頁
《C語言》考試試題集_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2007-2008學(xué)年第一學(xué)期

《C語言程序設(shè)計》課程考試試題

一、選擇題(每小題2分,共50分)

(1)C語言開始于二十世紀(jì)()年代

A)六十B)七十C)八十D)九十

(2)下面的數(shù)據(jù)類型中,C語言沒有的是()

A)空類型B)布爾型C)枚舉類型D)共用體類

(3)printf(“\65”);語句輸出的是()

A)\65B)65C)5D)A

(4)x=(a=3*5,a*4);那么x的值為()

A)15B)60C)75D)不確定值

(5)若變量已正確定義并賦值,下面符合C語言語法的表達(dá)式是

()

A)a:=b+1B)a=b=c+lC)int8.5%3D)a=a+l=c+b

(6)C語言中運(yùn)算對象必須是整型的運(yùn)算符是()

A)%=B)/C)<>D)<=

(7)若已定義x、y為double類型,則表達(dá)式x=l,y=x+3/2的

值是()

A)1B)2C)3D)2.5

(8)若有以下程序段

intc1=1,c2=2,c3;

c3=1.0/c2*c1;

則執(zhí)行后,c3中的值是()

A)0B)0.5C)1D)2

(9)有如下程序

main()

{inty=3,x=3,z=l;

printf(<4%d%d\n”,(++x,y++),z+2);

)

運(yùn)行該程序的輸出結(jié)果是()

A)34B)42C)43D)33

(10)能正確表示邏輯關(guān)系或a<0”的C語言表達(dá)式是

()

A)a>=lora<=0B)a>=l|a<=0

C)a>=1&&a<=0D)a>=l||a<=0

(11)有如下程序

main()

{intx=1,a=0,b=0;

switch(x)

{case0:b++;

case1:a++

case2:a++;b++

)

printf(a=%d,b=%d\nv,a,B);

)

該程序的輸出結(jié)果是()

A)a=2,b=lB)a=1,b=1C)a=1,b=0D)a=2,b=2

(12)有如下程序

main()

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=l.0/x;

elsey=1.0;

printf("%f\n",y);

)

該程序的輸出結(jié)果是()

A)0.000000B)0.250000C)0.500000D)1.000000

(13)有如下程序

main()

{inta=2,b=-1,c=2;

if(if(b<0))c=0;

elsec++

printf("%d\n”,C);

}

該程序的輸出結(jié)果是()

A)0B)1C)2D)3

(14)有如下程序

main()

{inti,sum;

for(i=1;i<=3;sum++)sum+=i;

printf("%d\n",sum);

該程序的執(zhí)行結(jié)果是()

A)6B)3C)死循環(huán)D)0

(15)有如下程序

#defineN2

#defineMN+1

#defineNUM2*M+1

main()

{inti:

for(i=l;i<=NUM;i++)printf(“%d\n”,i);

)

該程序中的for循環(huán)執(zhí)行的次數(shù)是()

A)5B)6C)7D)8

(16)有如下程序段

inta=14,b=15,x;

charc='A';

x=(a&&B)&&(c—B,);

執(zhí)行該程序段后,x的值為()

A)trueB)falseC)0D)1

(17)以下敘述正確的是()

A)do-while語句構(gòu)成的循環(huán)不能用其它語句構(gòu)成的循環(huán)來代替。

B)do-while語句構(gòu)成的循環(huán)只能用break語句退出。

C)用do-while語句構(gòu)成的循環(huán),在while后的表達(dá)式為非零時結(jié)束循環(huán)。

D)用do-while語句構(gòu)成的循環(huán),在while后的表達(dá)式為零時,結(jié)束循環(huán)。

(18)設(shè)x和y均為int型變量,則以下語句:x+y=y;y=x-y;y=x-y;x-=y;的功能是

()

A)把x和y按從大到小排列

B)把x和y按從小到大排列

0無確定結(jié)果

D)交換x和y中的值

(19)在VC++6.0的編輯環(huán)境下,使用()進(jìn)行對已打開的源

程序進(jìn)行編譯并執(zhí)行

A)F5B)CTRL+F5C)ALT+F9D)ALT+F5

(20)C語言屬于()

A)機(jī)器語言B)匯編語言

C)面向過程的語言D)面向?qū)ο蟮恼Z言

(21)以下選項中,能做為C程序自定義標(biāo)識符的是()

A)num(10)B)filebakC)breakD)c1ass+2

(22)下列選項中,不是C語言提供的合法關(guān)鍵字的是()

A)switchB)beginC)caseD)default

(23)字符串"xyz〃在內(nèi)存中占用的字節(jié)數(shù)是()

A)3B)4C)5D)6

(24)一個char型數(shù)據(jù),它的值在內(nèi)存中存放的是()

A)ASCH碼值B)BCD碼值C)內(nèi)碼值D)十進(jìn)制碼值

(25)設(shè)a為5,執(zhí)行下列語句后,b的值不為2的是()

A)b=a/2BB)b=6-(--a)C)b=a*2D)b=a<3?3:2

二、判斷題(每題2分,共20分)

1、C語言中,優(yōu)先級最低的運(yùn)算符是邏輯運(yùn)算符(f)

2、C語言本身沒有輸入輸出語句(t)

3、C語言的標(biāo)識符只能由字母和數(shù)字組成(f)

4、for語句中的三個表達(dá)式都可以省略,但兩個分號不能省略

(t)

5、一個函數(shù)調(diào)用自己,必將產(chǎn)生死循環(huán)(f)

6、函數(shù)的定義和調(diào)用都可以嵌套(f)

7、宏定義是C語句,要在行末尾加分號(f)

8、int(*p)[4]定義的是一個指針數(shù)組,該數(shù)組每個元素是指向

整型變量的指針(f)

9、fwriteO函數(shù)的正確調(diào)用形式是

fwrite(buffer,count,fp,size);(f)

10、d。和char都是合法的關(guān)鍵字(t)

三、編程題(每小題15分,共30分)

1.已知三角形的面積為area=sqrt(s*(s-a)*(s-b)*(s-c)),其

中s=(a+b+c)/2,a,b,c為三角形的三邊,由鍵盤輸入三個數(shù),

請編程計算以這三個數(shù)為邊長的三角形的面積(先判斷能否成為

三角形,再計算面積)。

#include"stdio.h"

voidmain()

{floata,b,c,s,area;

scanf("%f%f%f",&a,&b,&c);

if(a>0&&b>0&&c>0&&a+b>c&&a+c>b&&b+c>a)

s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("三角形的面積為:%f\n",area);

)

elseprintf("不能構(gòu)成三角形)

)

2.求百元百雞問題。用100元錢來買100只雞,其中公雞5元一

只,母雞3元一只,小雞一元5只,問該如何買,才能100元錢

買到100只雞。

#include"stdio.h"

voidmain()

{intx,y,z;

printf("百雞問題解:\n");

for(x=0;x<=l00;x++)

for(y=0;y<=100;y++)

(

z=100-x-y;

if(5*x+3*y+(float)z/3==100)

printf("\tx=%3dy=%3dz=%3d\n",x,y,z);

)

printf("\n");

2007-2008學(xué)年第一學(xué)期

《C語言程序設(shè)計》課程重修考試試題

一、選擇題(每小題3分,共60分)

1、c語言中,函數(shù)的隱含存儲類型是()

AautoBstaticCexternD無存儲類別

2、假定所有變量均已正確定義,下列程序段運(yùn)行后x的值是()

a=b=c=0;x=35;

if(!a)x—;elseif(b);if(c)x=3;elsex=4;

A34B4C35D3

3、執(zhí)行下列程序段后的輸出結(jié)果是()

x=9;

while(x>7)

{printfC*,,);x-;}

A****B***c**D*

4、下列語句中錯誤的是()

Awhile(x=y)5;Bdox++while(x==10):

Cwhile(O);Ddo2;while(a==b);

5、循環(huán)語句for(x=0,y=0;(y!=123)ll(x<4);x++);的循環(huán)執(zhí)行()

A無限次B不確定次C4次D3次

6、若i、j已定義為int類型,則以下程序段中的內(nèi)循環(huán)體的執(zhí)行次數(shù)是()

for(i=5;i;i—)

for(j=0;j<4;j++){……}

A20B24C25D30

7、以只寫方式打開一個二進(jìn)制文件,應(yīng)選擇的使用方式是()

A“a+”B“w+”C“rb"D"wb”

8、設(shè)有定義語句"int(*ptr)[10]”,其中的ptr是O

A10個指向整型變量的指針

B指向10個整型變量的函數(shù)指針

C一個指向具有10個元素的一維數(shù)組的指針

D具有10個指針元素的一維數(shù)組

9、執(zhí)行語句chara[10]={“abcd"},*p=a;B,*(p+4)的值是()

A“abed”BdCD不能確定

10、設(shè)a=3,b=4,執(zhí)行printf("%d,%d”,(a,b),(b,a));語句后的輸出是()

A3,4B4,3C3,3D4,4

11、在c語言中,下列說法中錯誤的是()

A函數(shù)定義可以分為兩個部分:函數(shù)說明部分和函數(shù)體

B主函數(shù)可以調(diào)用任何非主函數(shù)

C任何非主函數(shù)可以調(diào)用其他任何非主函數(shù)

D程序可以從任何函數(shù)開始執(zhí)行

12、函數(shù)調(diào)用時,下列說法中不正確的是()

A若用值傳遞方式,則形式參數(shù)不予分配內(nèi)存

B實際參數(shù)和形式參數(shù)可以同名

C主調(diào)函數(shù)和被調(diào)用函數(shù)可以不在同一個文件中

D函數(shù)間傳遞數(shù)據(jù)可以使用全局變量

13、若有說明語句inta[10],*p=a;,對數(shù)組元素的正確引用是()

Aa[p]Bp[a]C*(D+2)Dp+2

14、若有以下定義,則不能表示a數(shù)組元素的表達(dá)式是()

inta[10]={1,23,4,5,6,7,8,9,10),*p=a;

A*pBa【101C*aDa[p-a]

15、設(shè)有如下定義,則正確的敘述為()

charx[]={""abcdefg""),y[]={'a'/b'/cVd'/e'/f;g'};

A數(shù)組x和數(shù)組y等價B數(shù)組x和數(shù)組y長度相同

C數(shù)組x的長度大于數(shù)組丫的長度D數(shù)組x的長度小于數(shù)組y的長度

16、以下對C語言函數(shù)的有關(guān)描述中,正確的是()

A在C語二中,調(diào)用函數(shù)時,只能把實參的值傳遞給形參,形參的值不能傳遞給實

BC函數(shù)既可以嵌套定義,又可以遞歸調(diào)用

C函數(shù)必須有返回值,否則不能使用函數(shù)

DC程序中,有調(diào)用關(guān)系的所有函數(shù)必須放在同一個源程序文件中"

Ainial」01:Binta[2,5];Cinta[];Dint*a[10]

17、設(shè)inta=8,b=7,c=6,x=l;,則執(zhí)行下列語句if(a>6)if(b>7)if(c>8)x=2;elsex=3;后x

的值是()

A0B1C2D3

18、下列語句中,將c定義為文件類型指針的是()

AFILEc;BFILE*c:Cfilec;Dfile*c;

19、存儲整形數(shù)據(jù)-7856時,在二進(jìn)制文件和文本文件中占用的字節(jié)數(shù)分別是()

A2,2B2,5C5,5D5,2

20、C語言中運(yùn)算對象必須是整型的運(yùn)算符是()

A%=B/C<>D<=

二、程序題(每題20分,共40分)

1、編程序解百雞問題:100元錢買100只雞,公雞每只3元,母雞每只5元,

小雞3只1元,問公雞、母雞、小雞各多少只?

#includeustdio.h"

voidmain()

{intx,y,z;

printf("百雞問題解:\n)

for(x=0;x<=100;x++)

for(y=0;y<=100;y++)

(

z=100-x-y;

if(5*x+3*y+(float)z/3==100)

printf("\tx=%3dy=%3dz=%3d\nM,x,y,z);

printf("\nn);

2、用遞歸的方法求n!

floatfac(intn)

{floatf;

if(n<0)printf("n<O,dataerror!”);

elseif(n==0lln==l)f=l;

elsef=fac(n-l)*n;

returnf;}

main()

{intn;

scanf("%d”,&n);

printfC4%d!=%15.Of\n,fac(n));}

2007-2008學(xué)年第一學(xué)期

《C語言程序設(shè)計》課程期末考試試題(G卷)

一、選擇題(每小題1.5分,共45分)

I、下列選項中,不是用來表達(dá)轉(zhuǎn)義字符的是()

A\\BVC074D\0

2、下列選項中,不是C語言提供的合法關(guān)鍵字的是()

AswitchBbeginCcaseDdefault

3、以下選項中,能作為C程序自定義標(biāo)識符的是()

Anum(10)BfilebakCbreakDclass+2

4、設(shè)a為5,執(zhí)行下列語句后,b的值不為2的是()

Ab=a/2Bb=6-(-a)Cb=a%2Db=a<3?3:2

5、執(zhí)行語句x=(a=3,b=a--);后,x,a,b的值依次為()

A3,3,2B2,3,2C3,2,3D2,3,3

6、在以下一組運(yùn)算符中,優(yōu)先級最高的運(yùn)算符是()

A<=B=C%D&&

7、設(shè)a為整形變量,下列C表達(dá)式中,不能表達(dá)數(shù)學(xué)關(guān)系式10<a<15的是()

Al0<a<l5Ba==lllla==12lla==13lla==14

Ca>10&&a<15D!(a<=10)&&!(a>=15)

8、若有以下定義:chara;intb;floatc;doubled;則表達(dá)式a*b+d-c值的類型為()

AfloatBintCcharDdouble

9、設(shè)a,b為字符型變量,執(zhí)行scanf("a=%c,b=%c”,&a,&b)函數(shù)調(diào)用后使a為‘A"

b為'B,,正確的輸入是()

A'A,EBCA=A,B=BDa=A.b=B

10、設(shè)有inti=010,j=10;執(zhí)行printf("%d,%d\n”,++i,j-);語句后的輸出是()

A11,10B9.10C010,9D10,9

11、設(shè)a=3,b=4,執(zhí)行printf("%d,%d”,(a,b),(b,a));語句后的輸出是()

A3,4B4,3C3,3D4,4

12、假定所有變量均已正確定義,下列程序段運(yùn)行后x的值是()

a=b=c=0;x=35;

if(!a)x—;elseif(b);if(c)x=3;elsex=4;

A34B4C35D3

13、執(zhí)行下列程序段后的輸出結(jié)果是()

x=9;

while(x>7)

{printfC*");x-;}

A****B***c**D*

14、下列語句中錯誤的是()

Awhile(x=y)5;Bdox++while(x==10):

Cwhile(O);Ddo2;while(a==b);

15、循環(huán)語句for(x=0,y=0;(y!=123)ll(x<4);x++);的循環(huán)執(zhí)行()

A無限次B不確定次C4次D3次

16、若i、j已定義為int類型,則以下程序段中的內(nèi)循環(huán)體的執(zhí)行次數(shù)是()

for(i=5;i;i—)

for(j=0;j<4;j++){……}

A20B24C25D30

17、以只寫方式打開一個二進(jìn)制文件,應(yīng)選擇的使用方式是()

A“a+”B“w+”C“rb”D“wb”

18、設(shè)有定義語句“int(*ptr)[10]”,其中的ptr是()

A10個指向整型變量的指針

B指向10個整型變量的函數(shù)指針

C一個指向具有10個元素的一維數(shù)組的指針

D具有10個指針元素的一維數(shù)組

19、執(zhí)行語句chara[10]={"abcd"},*p=a;后,*(p+4)的值是()

A“abed”BdCD不能確定

20、C語言中,函數(shù)的隱含存儲類型是()

AautoBstaticCexternD無存儲類別

21、函數(shù)調(diào)用時,下列說法中不正確的是()

A若用值傳遞方式,則形式參數(shù)不予分配內(nèi)存

B實際參數(shù)和形式參數(shù)可以同名

C主調(diào)函數(shù)和被調(diào)用函數(shù)可以不在同一個文件中

D函數(shù)間傳遞數(shù)據(jù)可以使用全局變量

22、定義一個具有10個元素的整型數(shù)組,應(yīng)該使用語句()

AintaflOl:Binta[2,5];Cinta[];Dint*a[10]

21、設(shè)有定義inta=3,b,*p=&a;,則下列語句中不能使為3的語句是。

Ab=*&aBb=*pCb=aDb=*a

24、若已定義:inta[9],*p=a;,并在以后的語句中未改變p的值,不能表示a[l]

地址的表達(dá)式是。

Ap+1Ba+1Ca++D++P

25、設(shè)有定義語句struct{intx;inty;}d[2]={{l,3},{2,7}};,則

printf("%d\n'',d[O].y/d⑼.x*d[l].x);的輸出是()

A0B1C3D6

26、存儲整形數(shù)據(jù)-7856時,在二進(jìn)制文件和文本文件中占用的字節(jié)數(shù)分別是()

A2,2B2,5C5,5D5,2

27、以下數(shù)據(jù)類型屬于構(gòu)造類型的是()

A整型B字符型C數(shù)組型D單精度實型

28、字符串"m\x42\\\np\102q"的長度是()

A7B9C15D16

29、執(zhí)行下列程序段后*(p+7)的值為()

charsf]=,,student,,,*p;p=s;

ABT的地址C'\(TD不確定值

30、若fp是指向某文件的指針,且已讀到該文件的末尾,則C語言函數(shù)feof(fp)

的返回值是()

AEOFB-1C非零值DNULL

二、判斷題(每題1.5分,共15分)

1、C語言中,優(yōu)先級最低的運(yùn)算符是邏輯運(yùn)算符(f)

2、C語言本身沒有輸入輸出語句(t)

3、C語言的標(biāo)識符只能由字母和數(shù)字組成(f)

4、for語句中的三個表達(dá)式都可以省略,但兩個分號不能省略(t)

5、一個函數(shù)調(diào)用自己,必將產(chǎn)生死循環(huán)(f)

6、函數(shù)的定義和調(diào)用都可以嵌套(f)

7、宏定義是C語句,要在行末尾加分號(f)

8、int(*p)[4]定義的是一個指針數(shù)組,該數(shù)組每個元素是指向整型變量的指針(f)

9^fwrite()函數(shù)的正確調(diào)用形式是fwrite(buffer,count,fp,size);(f)

10、do和char都是合法的關(guān)鍵字(t)

三、程序題(每題10分,共40分)

1、編程序解百雞問題:100元錢買100只雞,公雞每只3元,母雞每只5元,

小雞3只1元,問公雞、母雞、小雞各多少只?

#include"stdio.h"

voidmain()

{intx,y,z;

printf("百雞問題解:\n“);

for(x=0;x<=100;x++)

for(y=0;y<=100;y++)

(

z=100-x-y;

if(5*x+3*y+(float)z/3==100)

printf(M\tx=%3dy=%3dz=%3d\n'*,x,y,z);

printf("\nH);

2、輸入n個整數(shù),對它們用冒泡法從小到大排序,然后輸出。

#include"stdio.h"

#defineN1000

voidmain()

{inti,nJ,temp,k,up;

inta[N];

printf("輸入整數(shù)序列的整數(shù)個數(shù)n(0<n<=%d)n,N);

scanf("%d”,&n);

if(nv=0lln>N){printf("輸入n不合理!\n");return;}

printf("輸入整數(shù)序列!\n“);

for(j=0;j<n;j++)scanf("%dM,&a[j]);

up=0;

while(up<n){

for(k=nj=n-l;j>up;j-)

if(a[j]<aU-l]){

temp=a|jj;a|jj=a|j-1J;k=j;

)

up=k;

)

for(i=0;i<n;i++){

if(i%5==0)printf(H\nn);

printf(M%d\tn,a[i]);

)

printf("\nK);

3、使用遞歸函數(shù)將輸入的一個正整數(shù)按逆序輸出。如:輸入12345,輸出54321。

#include"stdio.h"

voidback(intn)

{printf(',%2d,,,n%10);

if(n<10)return;

elseback(n/10);

)

voidmain()

{intn;

printf("請輸入一個正整數(shù):");

scanf(n%d",&n);

printf("逆序后的結(jié)果為巧;

back(n);

printf(M\nn);

4、輸入5個學(xué)生的學(xué)號,姓名,語文成績,數(shù)學(xué)成績,英語成績,并把它們的

相關(guān)信息保存到student.dat文件中。

#include<stdio.h>

#include<stdlib.h>

#defineSIZE5

structstudent

{intnum;

charname[10];

intscore[3];

}stud[SIZE];

voidmain(void)

{FILE*fp;

inti;

printf(n\nNChineseenglishmalh\nu);

printf("--------------------------------------\nu);

for(i=0;i<SIZE;i++)

(

scanf("%d%s%d%d%d",&stud[i].num,stud[i].name,

&stud[i].score[0],&stud[i].score[l],&stud[i].score[2]);

)

if<(fp=fopen(',student.dat",',wb',))==NULL)

(

printf("Thefilecannotopen\n");

return;

)

for(i=0;i<SIZE;i++)

if(fwrite(&stud[i],sizeof(structstudent),l,fp)!=1)

(

printf(Hfilewriteerror\n");

return;

)

fclose(fp);

)

2007-2008學(xué)年第一學(xué)期

《C語言程序設(shè)計》課程期末考試試題(H卷)

一、選擇題(每小題1.5分,共45分)

I、以下選項中,能做為c程序自定義標(biāo)識符的是()

Anum(10)BfilebakCbreakDclass+2

2、下列選項中,不是C語言提供的合法關(guān)鍵字的是()

AswitchBbeginCcaseDdefault

3、字符串“xyz”在內(nèi)存中占用的字節(jié)數(shù)是()

A3B4C5D6

4、一個char型數(shù)據(jù),它的值在內(nèi)存中存放的是()

AASCH碼值BBCD碼值C內(nèi)碼值D十進(jìn)制碼值

5、設(shè)a為5,執(zhí)行下列語句后,b的值不為2的是()

Ab=a/2Bb=6-(-a)Cb=a%2Db=a<3?3:2

6、若已定義x和y為double類型,則表達(dá)式x=l,y=x+3/2的結(jié)果是()

A1B2C2.0D2.5

7、若有以下定義:chara;intb;floatc;doubled;,則表達(dá)式a*b+d-c值的類型為()

AfloatBintCcharDdouble

8、表達(dá)式9!=7的值是()

AtrueB非0值C0DI

9、使用scanf(""x=%f,y=%F",&x,&y)函數(shù)調(diào)用,要使x,y均為1.25,正確的輸入是()

A"1.25,1.25"B1.251.25C”x=l.25.v=l.25"Dx=1.25

y=1.25

10、設(shè)inta=8,b=7,c=6,x=l;,則執(zhí)行下列語句if(a>6)if(b>7)if(c>8)x=2;elsex=3;后x

的值是()

A0B1C2D3

11、執(zhí)行下列程序段:x=9;while(x>7){printf("",*"");x—;}后輸出的結(jié)果是()

A****B***c**D*

12、若i,j已定義為int類型,則以下程序段中的內(nèi)循環(huán)的執(zhí)行次數(shù)是()

for(i=5;i;i—)for(j=0;j<4;j++){---}

A20B24C25D30

13、在c語言中,下列說法中正確的是()

A編程時盡量不要使用"d。語句while(條件)”的循環(huán)

Bdo語句while(條件)〃的循環(huán)中必須使用"break”語句退出循環(huán)

Cdo語句while(條件)''的循環(huán)中,當(dāng)條件非0時將結(jié)束循環(huán)

Ddo語句while(條件)”的循環(huán)中,當(dāng)條件為0時將結(jié)束循環(huán)

14、下列c代碼中,合法的數(shù)組定義是()

Ainta[]={""string""};Binta[5]={0』,2,3,4,5};

Cchara={""string""};Dchara"=lCM2345k

15、字符串""m\x42\\\np\102q""的長度是()

A7B9C15D16

16、設(shè)有如下定義,則正確的敘述為()

charx[]={""abcdefg""},y[]={'a','b','c','d';e','f,'g'};

A數(shù)組x和數(shù)組y等價B數(shù)組x和數(shù)組y長度相同

C數(shù)組x的長度大于數(shù)組y的長度D數(shù)組x的長度小于數(shù)組y的長度

17、在c語言中,下列說法中錯誤的是()

A函數(shù)定義可以分為兩個部分:函數(shù)說明部分和函數(shù)體

B主函數(shù)可以調(diào)用任何非主函數(shù)

C任何非主函數(shù)可以調(diào)用其他任何非主函數(shù)

D程序可以從任何函數(shù)開始執(zhí)行

18、函數(shù)調(diào)用時,下列說法中不正確的是()

A若用值傳遞方式,則形式參數(shù)不予分配內(nèi)存

B實際參數(shù)和形式參數(shù)可以同名

C主調(diào)函數(shù)和被調(diào)用函數(shù)可以不在同一個文件中

D函數(shù)間傳遞數(shù)據(jù)可以使用全局變量

19、若有說明語句inta[10],*p=a;,對數(shù)組元素的正確引用是()

Aa[p]Bp[a]C*(p+2)Dp+2

20、若有以下定義,則不能表示a數(shù)組元素的表達(dá)式是()

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

A*pBal101C*aDa[p-a]

21、執(zhí)行語句chara[10]={""abcd""},*p=a;后,*(p+4)的值是()

A"abed"Bd'C\0D不能確定

22、以下對C語言函數(shù)的有關(guān)描述中,正確的是()

A在C語言中,調(diào)用函數(shù)時,只能把實參的值傳遞給形參,形參的值不能傳遞給實

BC函數(shù)既可以嵌套定義,又可以遞歸調(diào)用

C函數(shù)必須有返回值,否則不能使用函數(shù)

DC程序中,有調(diào)用關(guān)系的所有函數(shù)必須放在同一個源程序文件中"

Ainta[10];Binta[2,5];Cinta[];Dint*a[10]

23、以只寫方式打開一個二進(jìn)制文件,應(yīng)選擇的使用方式是()

A"a+"B"w+"C"rb"C"wb"

24、下列語句中,將c定義為文件類型指針的是()

AFILEc;BFILE*c:Cfilec;Dfile*c;

25、存儲整形數(shù)據(jù)-7856時,在二進(jìn)制文件和文本文件中占用的字節(jié)數(shù)分別是()

A2,2B2,5C5,5D5,2

26、C語言中運(yùn)算對象必須是整型的運(yùn)算符是()

A%=B/C<>D<=

27、C語言開始于二十世紀(jì)()年代

A六十B七十C八十D九十

28、函數(shù)調(diào)用語句f((el,e2),(e3,e4,e5));中參數(shù)的個數(shù)是()

A1B2C4D5

29、在以下一組運(yùn)算符中,優(yōu)先級最高的運(yùn)算符是()

A<=B=C%D&&

30、設(shè)有定義inta=3,b,*p=&a;,則下列語句中不能使為3的語句是()

Ab=*&a;Bb=*pCb=a;Db=*a:

二、判斷題(每題L5分,共15分)

1若有說明intc;則while(c=getchar());是正確的C語句。(t)

2inti,*p=&i;是正確的。(t)"

37&3+12的值是15o(f)

4在利用fread函數(shù)從文件中讀數(shù)據(jù)時,可以用數(shù)組名給數(shù)組中所有元素讀入

數(shù)據(jù).()

5for(;;)S;中的語句S必執(zhí)行無窮多次。(f)

6unsigned和void在C中都是關(guān)鍵字。(t)

7C語言中,函數(shù)值類型的定義可以缺省,此時函數(shù)值的隱含類型是void.(f)

8C語言中,函數(shù)的隱含存儲類型是extern.。)

9全局變量的有效范圍為,從定義變量的位置開始到本文件結(jié)束。(t)

10C語言的標(biāo)識符可以由一個字母或數(shù)字開頭。(f)

三、程序題(每題10分,共40分)

1求出100-999的所有的水仙花數(shù)(水仙花數(shù)既xyz=x*x*x+y*y*y+z*z*z)

main()

{inti,j,k,n;

for(n=l01;n<l000;n++)

{k=n%10;/*個位*/

j=n%100/10;/*十位*/

i=n/100;/*百位*/

if(n==i*i*i+j*j*j+k*k*k)

printf(tt%5d,,,n);

})

2使用數(shù)組,對用戶輸入的10個數(shù)進(jìn)行排序后輸出.

main()

{inta[10],ij,t;

printf("input10numberin'');

for(i=0;i<=9;i++)scanf("%d”,&a[i]);

for(j=0;j<=9;j++)

for(i=0;i<=9-j;i++)

if(a[i]>a[i+l])

{t=a[i];a[i]=a[i+l];

a[i+l]=t;}

printf(44thesortednumbers:\nv);

for(i=0;i<=9;i++)printfC'%4d,,,a[i]);}

3用遞歸的方法求n!

floatfac(intn)

{floatf;

if(n<0)printf(un<0,dataerror!”);

elseif(n==0lln==l)f=l;

elsef=fac(n-l)*n;

returnf;}

main()

{intn;

scanfC'%d",&n);

printf(44%d!=%15.0f\n,fac(n));}

4編程將一個文本文件中的內(nèi)容復(fù)制到的一個新的文本文件里面.

main()

{FILE*in,*out;

charch=0,infile[20],outfile[20];

scanf(n%sn,infile);scanf(u%sn,outfile);

if(fopen(infile,Mru)==NULLIIfopen(outfile,"wn)==NULL)

{printf(ncannotopeninfileoroutfile\n");exit(0);)

in=fopen(infile,"ru);out=fopen(outfile,"w");

while((ch=fgetc(in))!=EOF){fputc(ch,out);}

fclose(in);fclose(out);}

2008-2009學(xué)年第一學(xué)期

《C語言程序設(shè)計》課程期末考試試題(K卷)

一、選擇題(每小題1.5分,共45分)

1、c語言中最簡單的數(shù)據(jù)類型包括o

A整型、實型、邏輯型B整型、實型、字符型

C整型、字符型、邏輯型D整型、實型、邏輯型、字符型

2、若變量已正確說明為float類型,要通過語句5?2比(”%£%£%1,&4&'&0;給

a賦于10.0,b賦予22.0,c賦予33。不正確的輸入形式是:()

A10〈回車>22〈回車>33〈回車〉B10.0.22。33.0<|可主〉

C10.0〈回車>22.033.0〈回車〉D1022〈回車>33〈回車〉

3、若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是()

A'a'<=c<='z'B(c>='a')ll(c<='z')

CCa,v=c)and(N>=c)D(c>='a')&&(cv=N)

4、若有定義:inta[3][4];不能表示數(shù)組元素的是()

A*(a[l]+l)B*(&a[l]fl])C(*(a+l))[l]D*(a+5)

5、假定所有變量均已正確說明,下列是程序段運(yùn)行后x的值是?()

a=b=c=0;x=33;if(!a)x—;elseif(b);if(c)x=7;elsex=6;

A32B33C7D6

6、程序中定義以下宏#defineS(a,b)a*b,若定義intarea;且令area=S(3+1,3+4),

則變量area的值為:()

A10B12C21D28

7、以下所列的C語言常量中,錯誤的是()

AOxFFBL2e0.5C2LD'\72'

8、假設(shè)指針pl已經(jīng)指向了某個整型變量,要使指針p2也指向同一個變量,則

下面各項中正確的是:()

Ap2=**plBp2=*&plCp2=*plDD2=&*D1

9、函數(shù)調(diào)用語句func((expl,exp2),(exp3,exp4,exp5));中,實參的個數(shù)為:()

A1B2C4D5

10、以下c語言函數(shù)聲明中,不正確的是:。

Avoidfun(intx,inty);Bfun(intx,inty);Cintfun(iniX.Y)Dchar

*fun(char*s);

11、表達(dá)式1&&3&&5&&7的值為:()

AlB3C5D7

12、若i、j已定義為int型,則以下程序段中內(nèi)循環(huán)體的總的執(zhí)行次數(shù)是

for(i=5;i>0;i—)

for(j=0;j<4;j++){...}()

A20B24C25D30

13、以下程序的輸出結(jié)果是

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(5,2,a);

printf("%d",a);

)

A0B29C31D無確定值

14、若有以下說明和語句,則輸出結(jié)果是?

(strlen(s)為求字符串s的長度的函數(shù))

charsp[]=,,\t\v\\\0will\nn;

printf("%dn,strlen(sp));

A14B3C9D字符串中有非法字符

15、循環(huán)語句while(舊)中的表達(dá)式!E等價于:()

AE!=0BE==0CE!=lDE==l

16^函數(shù)調(diào)用:strcat(strcpy(strl,str2),str3)的功能是()

A將串strl復(fù)制到串str2中后再連接到串str3之后

B將串strl連接到串str2之后再復(fù)制到串str3之后

C將串str2復(fù)制到串str1中后再將串str3連接到串str1之后

D將串str2連接到串strl之后再將串strl復(fù)制到串str3中

17、以只讀方式打開一個二進(jìn)制文件,應(yīng)選擇的使用方式是()

A“a+”B“w+"C“rb”D"wb”

18、設(shè)有定義語句“int*ptr[10]”,其中的ptr是()

A10個指向整型變量的指針

B指向10個整型變量的函數(shù)指針

C一個指向具有10個元素的一維數(shù)組的指針

D具有10個指針元素的一維數(shù)組

19^執(zhí)行語句chara[10]={"abcd"},*p=a;后,*(p+4)的值是O

A“abed”BdCWD不能確定

20、若t為double類型,表達(dá)式t=l,t+5,t++的值是()

A1B6.0C2.0D1.0

21、表達(dá)式-k=3<=-5值是:()

A0B1C3D表達(dá)式語法有錯

22、定義一個具有10個元素的整型數(shù)組,應(yīng)該使用語句()

AintahO:Binta[2,5];Cinta[];Dint*a[101

23、在以下一-組運(yùn)算中,優(yōu)先級最高的運(yùn)算符是()

A<=B=C%C&&

24、在用一個字節(jié)存儲一個字符的系統(tǒng)中;\n,在內(nèi)存中占用的字節(jié)數(shù)是。

A1B2C3D4

25、設(shè)變量m,n,a,b,c,d均為0,執(zhí)行(m=a==b)H(n=c==d)后,m,n的值是()

A0,0B0,1C1,0D1,1

26、存儲整型數(shù)據(jù)-7684時,在二進(jìn)制文件和文本文件中占用的字節(jié)數(shù)分別是()

A4,4B5,4C4,5D5,5

27、以下選項中,不是C的合法關(guān)鍵字的是()

AscanfBdowhileCforDcontinue

28、設(shè)a=3,b=4,執(zhí)行printf("%d,%d”,(b,a,a+b),(a,b,b-a))()

A3,4B4,3C4,1D7〉

29、設(shè)a=1,b=2,c=3,d=4,則表達(dá)式a<b?a:c<d?c,d的結(jié)果為()

A4B3C2D1

30、下列語句中,將c定義為文件型指針的是()

AFILEc;_B_FILE*c:CfilecDfile*c

二、程序題(共55分)

1、打開programl.c,編程序求解以下問題:輸入長方體的長、寬、高,求長方

體的體積并輸出。

#include"stdio.h"

voidmain()

doublel,w,h,v;

printf("請輸入長、寬、高:");

scanf(,,%lf%lf%lf,,,&l,&w,&h);

v=l*w*h;

printf("長方體的體積是:%f\nu,v);

)

2、打開program2.c,先從鍵盤上輸入一個3行3列矩陣的各個元素的值,然后輸

出主對角線元素之和。

例如,輸入下面的矩陣:

100200300

400500600

700800900

程序輸出:

主對角線元素之和為:100+500+900=1500

#include"stdio.h”

voidmain()

inta[3][3],i,j,s=O;

printf("請輸入矩陣:\n”);

for(i=0;i<3;i++)

for(j=0;j<3;j++)

scanf("%dn,&a[i][j]);

for(i=0;i<3;i++)

s=s+a[i][i];

printf(”主對角線的和為:%d+%d+%d=%d\n",a[0][0],a[l][l],a[2][2],s);

3、打開program3.c,輸入正整數(shù)n,輸出n行n列的空心四邊形圖案。以下是n

等于4的圖案。

****

**

**

****

#includeustdio.h"

voidmain()

(

inti,j,n;

printf("請輸入n:n);

scanf("%d",&n);

for(i=l;i<=n;i++)

(

for(j=l;j<=n;j++)

if(i==1llj==1lli==nllj==n)

printf(n*");

else

printfC*”);

printf(n\n");

)

)

4、打開programme,使用遞歸方法將輸入的--個正整數(shù)按逆序輸出。例如:輸

入1234,輸出4321

#includeustdio.h"

voidback(intn)

{printf(M%2d';n%10);

if(n<10)return;

elseback(n/10);

}

voidmain()

{intn;

printf("請輸入一個正整數(shù)

scanf("%d”,&n);

printf("逆序后的結(jié)果為:");

back(n);

printf(',\nM);

5、打開programs.c,輸入3個數(shù),使用指針(不使用指針不給分)求出其中的

最大數(shù)并輸出。

#includeustdio.hn

voidmain()

(

floati,j,k,*ip,*jp,*kp;

printf(”請輸入三個數(shù)

scanf(u%f%f%r,&i,&j,&k);

ip=&i;jp=&j;kp=&k;

if(*ip>*jp)

if(*ip>*kp)

printf("最大值是:%f\n”,*ip);

else

primf("最大值是:%f\n”,*kp);

else

if(*jp>*kp)

printf("最大值是:

else

printf("最大值是:%f\n",*kp);

)

6、打開program6.c,輸入3個教師的姓名,性別,單位,工資,并把它們的相

關(guān)信息保存到teacher.dat文件中。

#include<stdio.h>

#include<stdlib.h>

#defineSIZE3

structteacher

{charname[10];

charsex[10];

chardepartment[20];

intgongzi;

}t[SIZE];

voidmain(void)

{FILE*fp;

inti;

printf(M\nnamesexdepartmentgongzi\nn);

for(i=0;i<SIZE;i++)

(

scanf("%s%s%s%dn,t[i].name,

t[i].sex,tli].department,&t[i].gongzi);

)

if((fp=fopen(nteacher.datM,HwbM))==NULL)

printf("Thefilecannotopen\nH);

return;

)

for(i=0;i<SIZE;i++)

if(fwrite(&t[i],sizeof(structteacher),IJ'p)!=1)

(

printf(nfilewriteerror\nH);

return;

)

fclose(fp);

}

1、打開programl.c,輸入梯形的上底、下底和高,輸出梯形的面積。

main()

{floata,b,h,s;

scanf(t6%f%f%f\&a,&b,&h);

s=(a+b)*h/2;

printfC6s=%f\n,,,s);

2、打開program2c輸入一個5位數(shù),判斷它是不是回文數(shù)。即12321是回文

數(shù),個位與萬位相同,十位與千位相同。

main()

{intge,shi,qian,wan,x;

scanf(,,%d',,&x);

wan=x/10000;

qian=x%10000/1000;

shi=x%100/10;

ge=x%10;

if(ge==wan&&shi==qian)printf(nthisnumberisahuiwen\nn);

elseprintf("thisnumberisnotahuiwen\nn);

3、打開programs.c,輸入正整數(shù)n,將其分解質(zhì)因數(shù)。例如:輸入90,打印出

90=2*3*3*5o

main()

{intn,i;

scanf(n%d'\&n);

printf(n%d=M,n);

for(i=2;i<=n;i++)

{while(n!=i)

{if(n%i==0)

{printf(n%d*u,i);

n=n/i;

elsebreak;

)

)

printf("%dn,n);}

4、打開programme,利用遞歸函數(shù)調(diào)用方式,將所輸入的5個字符,以相反順

序輸出。

#include"stdio.h"

voidpalin(n)

intn;

{charnext;

if(n<=l)

{next=getchar();

printf(n\nn);

putchar(next);

}

else

{next=getchar();

palin(n-l);

putchar(next);

main()

{inti=5;

palin(i);

)

5、打開program5.c,輸入3個數(shù)a,b,c,使用指針(不用指針不給分)按從大到小

順序輸出。

swap(int*a,int*b)

{intt;

t=*a,*a=*b,*b=t;

)

exchange(q1,q2,q3)

int*ql,*q2,*q3;

{if(*ql<*q2)swap(ql,q2);

if(*ql<*q3)swap(ql,q3);

if(*q2<*q3)swap(q2,q3);}

main()

{inta,b,c,*pl,*p2,*p3;

scanf(tt%d%d%d,,,&a,&b,&c);

p1=&a,p2=&b,p3=&c;

exchange(pI,p2,p3);

printfC6%d,%d,%d\n,,,a,b,c);}

6、打開program6.c,將一個文本文件中的內(nèi)容復(fù)制到的一個新的文本文件里面。

#include<stdio.h>

main(

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論