




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)互聯(lián)網(wǎng)平臺網(wǎng)絡(luò)安全態(tài)勢感知技術(shù)產(chǎn)業(yè)生態(tài)構(gòu)建策略與實施研究報告
- 2024年丹東市全科醫(yī)生特崗計劃招聘筆試真題
- 中考試題類型及答案
- 入駐伙伴合同協(xié)議書
- 合伙人合租合同協(xié)議書
- 2025-2030中國蜂蜜柚子茶行業(yè)市場深度調(diào)研及供需趨勢與投資前景研究報告
- 制造業(yè)數(shù)字化轉(zhuǎn)型數(shù)據(jù)治理策略:數(shù)據(jù)治理與業(yè)務(wù)流程優(yōu)化的深度融合
- 采購?fù)苛虾贤瑓f(xié)議書范本
- 開門紅工作報告
- 藥房承包經(jīng)營合同協(xié)議書
- 2023-2024年整形外科學(xué)(副高)考試參考題庫(真題考點版)帶答案解析
- 廣東省中山市八年級下學(xué)期期末考試語文試題
- 【淺析如何將游戲化課程融入幼兒一日活動之中2600字】
- 雙減背景下高中語文優(yōu)化作業(yè)設(shè)計實踐與研究
- 《企業(yè)財務(wù)現(xiàn)狀的杜邦分析-以大疆科技為例》開題報告(含提綱)2400字
- 道德與法治六年級下冊7《多元文化 多樣魅力》(課件)
- 中醫(yī)治療頸椎病課件完整版
- KJ251煤礦人員定位系統(tǒng)-設(shè)計方案
- 消防接警調(diào)度崗位理論知識考試題庫匯總-上(單選題)
- YS/T 778-2011真空脫脂燒結(jié)爐
- GB/T 15256-1994硫化橡膠低溫脆性的測定(多試樣法)
評論
0/150
提交評論