歷年C語(yǔ)言期末考試試題_第1頁(yè)
歷年C語(yǔ)言期末考試試題_第2頁(yè)
歷年C語(yǔ)言期末考試試題_第3頁(yè)
歷年C語(yǔ)言期末考試試題_第4頁(yè)
歷年C語(yǔ)言期末考試試題_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

歷年C語(yǔ)言期末考試試題

2004-12-22由vince整理

打印自:長(zhǎng)春工業(yè)大學(xué)三味書(shū)屋

地址:/article.php/928

C語(yǔ)言試題1

-填空題(15分)

1.設(shè)x的值為15,n的值為2,則表達(dá)式x%=(n+=3)運(yùn)算后,x的值為()。

2.設(shè)inta=7,b=9,t;執(zhí)行完表達(dá)式t=(a>b)?a:b后,t的值是()。

3.下面程序段的輸出結(jié)果是()。

inta=1234;a=a&0377;printf("%d%o\n,,,a,a);

4.a數(shù)組定義如下,按照內(nèi)存排列順序,a數(shù)組中的所有元素是()。

chara[3];

5.設(shè)有以下宏定義,則執(zhí)行賦值語(yǔ)句a=PP*20;(a為int型變量)后,a的值是()。

#definePR80

#definePPPR+403

6.在C程序中,可以通過(guò)三種運(yùn)算方式為指針變量賦地址值,它們是:()、()和()。

7.在C文件中,數(shù)據(jù)存在的兩種代碼形式是()和()。

8.C語(yǔ)言中調(diào)用()函數(shù)打開(kāi)文件,調(diào)用()函數(shù)關(guān)閉文件,調(diào)用()函數(shù)

可實(shí)現(xiàn)文件的隨機(jī)讀寫(xiě)。

9.若有inta[3]={10,12,30};則a+1是()的地址,*(a+2)=()?

二判斷對(duì)錯(cuò)(5分,對(duì)的劃“小,錯(cuò)的劃“x”)

1.在TurboC中,整型數(shù)據(jù)在內(nèi)存中占2個(gè)字節(jié)。()

2.表達(dá)式1/4+2.75的值是3。()

3.結(jié)構(gòu)體類(lèi)型只有一種。()

4.函數(shù)若無(wú)返回值,則它一定無(wú)形參。()

5.C語(yǔ)言只能處理文本文件和二進(jìn)制文件。()

三選擇題(20分)

1.設(shè)inta=12;表達(dá)式a+=a?=a*=a的值是()。

A12B144COD132

2.以下程序的輸出結(jié)果是()。

main()

{inta=011;

printf("%d\n”,++a);

}

A12B11C10D9

3.以下程序的輸出結(jié)果是()o

#defineADD(x)(x)+(x)

main()

{inta=4,b=6,c=7,d=ADD(a+b)*c;

printf,d=%d'',d);

}

Ad=70Bd=140Cd=280Dd=80

4.下面的選項(xiàng)中正確的賦值語(yǔ)句是(chara[5],*p=a;)()。

Ap="abcd”;Ba="abcd”;C*p="abcd";D*a="abcd";

5.若k為整形,則while循環(huán)執(zhí)行()次。

k=2;while(k=0)printf("%d”,k);k-;prin氓“\n");

A10B9COD1

6.數(shù)組名作為實(shí)參傳遞給形參時(shí),數(shù)組名被處理為()。

A該數(shù)組的長(zhǎng)度B該數(shù)組的元素個(gè)數(shù)C該數(shù)組的首地址D該數(shù)組中各元素的值

7.兩個(gè)指針變量不可以()。

A.相加B比較C相減D指向同一地址

8.若有以下程序段,則值為6的表達(dá)式是()。

structst{intn;structst*next;};

staticstructsta[3]={5,&a[1],7,&a[2],9,6\0,},*p;p=&a[O];

Ap-H-->nBp->n++C(*p).n++D++p?>n

9.要打開(kāi)一個(gè)已存在的非空文件“file”用于修改,選擇正確的語(yǔ)句()。

Afp=fopen(MfileH,V);Bfp=fopen(MfileM,,,wM);

Cfp=fopen("filen,nr+n);Dfp=fbpen("filen,"w+u);

四寫(xiě)出下列程序的運(yùn)行結(jié)果。(28分)

1.main()

{inta[6]={10,6,23,-90,0,3},i;

invert(a,0,5);

fdr(i=0;i<6;i++)printfT%d,?,a[i]);

printf("\iT);

)

invert(int*s,inti,intj)

{intt;

if(i<j)

{invert(s,i+lj-l);

t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;

)

}

2.fl(inta)

{intb=0;staticintc=3;

b+=l;c-H-;

retum(a+b+c);

}

main()

{inta=l,i;

charsl[l0]="java”,s2[10]="basic”,s[10];

for(i=0;i<3;i-H-)printf(M%dH,fl(a));

printfTW");

if(strcmp(sl,s2)){strcpy(s,sl);puts(s);}

printf(<<%d,%s\n,,,strlen(s2),strcat(s2,s1));

}

3.#defineMAX100

main()

{intf[MAX],i,j,k=2,m=5;

fbr(i=0;i<=m;i++)f[i]=l;f[k-l]=2;

fbr(i=k;i<=m;i++)

fbr(j=i-k;j<=i-l;j++)f[i]+=f[j];

printf(,,%d%5d%5d\n",k,m,f[m]);

}

五閱讀下列程序,在處填入適當(dāng)內(nèi)容,使程序完整。(32分)

1.求100?200間的全部素?cái)?shù)。

(1)

main()

{intm,k,i,n=0;

for(m=10l;m<=200;m+=2)

{if(n%10==0)printf("\n");

k=sqrt(m);

fbr(i=(2);i<=k;i-H-)if(m%i==0)(3)

if(i=(4))

{printf("%d",m);n++;}

)

}

2.用選擇法對(duì)數(shù)組中的10個(gè)字符按由大到小排序。

voidsort((1))

chara[];intn;

{inti,j,k;

chart;

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

(2)

fbr(j=i+l;j〈n;j++)

if((3))k=j;

t=a[k];a[k]=a[i];a[i]=t;}

}

main()

{chars[10];

inti;

fbr(i=0;i<10;i++)scanf("%c”,&s[i]);

(4);

printfit^thesortedairay:\n’');

fbr(i=0;i<10;i++)

printf(“%c”,(5));

printf(“\n”);

}

33.輸入3x4數(shù)組,用指針?lè)椒▽?shí)現(xiàn)將每行中的最小數(shù)與第0列元素對(duì)調(diào)。

main()

{inta[3][4],ij,*p=a[0];

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

fbr(j=0;jv4;j++)scanff%d”,p++);

for(p=&a[0][0];p<a[0]+12;(1))

swap(p);

(2);

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

{for(j=0;j<4;j++)printf("%3d”,*p++);

printf("\n");}

)

swap(int(3))

{intmin,i,*p2=pl,*p3;

(4);

fbr(i=0;i<4;i++)

{if(*p2<*p3)p3=p2;(5);

)

min=*pl;*pl=*p3;*p3=min;

)

2002試題2

—填空題(20分,每空1.5分)

1.當(dāng)執(zhí)行完以下語(yǔ)句后,變量a的值為(),b的值為(),c的值為()。

a=6;b=++a;c=-a;

2.已知a=3、b=2,則表達(dá)式a*=b+8的值是()。

3.下面程序段的輸出結(jié)果是()。

inta=125;printfi^%d\n,,,a?4);

4.a數(shù)組定義如下,a數(shù)組中可用最小下標(biāo)值是(),最大下標(biāo)值是()。

chara[3];

5.設(shè)有以下宏定義,則執(zhí)行賦值語(yǔ)句a=ADD(4+6)*7;(a為int型變量)后,a的值是()。

#defincADD(x)(x)+(x)

6.若有以下說(shuō)明、定義和語(yǔ)句,則對(duì)x上成員的另外兩種引用方式是:()和()o

structst

{inta;

structstb;

}*p,x;

p=&x;

7.在C中,文件指針變量的類(lèi)型只能是()。

8.在C中文件結(jié)束標(biāo)志EOF只可用于()文件。

9.a數(shù)組定義如下,若使數(shù)組a中存放字符串“friend”,寫(xiě)出為數(shù)組a賦值的語(yǔ)句()。

chara[10];

二判斷對(duì)錯(cuò)(io分,每題1分。對(duì)的劃“小,錯(cuò)的劃“x”)

1.在TurboC中,實(shí)型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié)。()

2.被main函數(shù)調(diào)用的函數(shù)只能是庫(kù)函數(shù)。()

3.對(duì)整型變量可進(jìn)行自加或自減運(yùn)算,而對(duì)常量或表達(dá)式不可以。()

4.算術(shù)運(yùn)算符和賦值運(yùn)算符的結(jié)合方向均由左自右。()

5.定義在main函數(shù)后的任何函數(shù)都需在main中進(jìn)行函數(shù)聲明。()

6.一個(gè)函數(shù)中只允許有一條return語(yǔ)句。()

7.任何數(shù)組在使用時(shí)必須先定義。()

8.在int*p;和語(yǔ)句printf("%d”,*p);中的*p含義相同。()

9.在定義枚舉時(shí),枚舉常量可以是標(biāo)識(shí)符或數(shù)字。()

10.用fopen(“行方式打開(kāi)的文件可進(jìn)行修改。()

三選擇題(20分,每題2分)

1.若有代數(shù)式,則錯(cuò)誤的C語(yǔ)言表達(dá)式是()。

Aa*e/c/bBa*e/b/cCa*e/b*cDa/b/c*c

2.以下程序的輸出結(jié)果是()o

main()

{inta=7,b=5;

printf("%d\n”,b=b/a);

}

A不確定值B5C1DO

3.以下程序的輸出結(jié)果是()o

main()

{intkl=l,k2=2,k3=3,x=15;

if(!kl)x-;

elseif(k2)if(k3)x=4;elsex=3;

printfC4x=%d\n,,,x);

}

Ax=4Bx=15Cx=14Dx=3

4.以下程序的輸出結(jié)果是()o

main()

{chars1[20]=44China,,,s2[20]=4fcfbr,,,s[10];

if(strcmp(s1,s2))printf("%s\n”,strcat(s2,s1));

elseprintf("%d\n”,strien(s1));

AChinafbrB5CfbrChinaD3

5.C語(yǔ)言中函數(shù)調(diào)用的方式有()o

A函數(shù)調(diào)用作為語(yǔ)句1種B函數(shù)調(diào)用作為函數(shù)表達(dá)式1種

C函數(shù)調(diào)用作為語(yǔ)句或函數(shù)表達(dá)式2種D函數(shù)調(diào)用作為語(yǔ)句、函數(shù)表達(dá)式或函數(shù)參數(shù)

3種

6.關(guān)于return語(yǔ)句,下列正確的說(shuō)法是(

A可以在同一函數(shù)中出現(xiàn)多次B必須在每個(gè)函數(shù)中出現(xiàn)

C只能在除主函數(shù)之外的函數(shù)中出現(xiàn)一次D在主函數(shù)中不能出現(xiàn)

7.已知職工記錄描述如下,設(shè)變量w中的“生日”是“1993年10月25日”,下列對(duì)“生日”的

正確賦值方式是()。

structworker

{intno;charname[20];charsex;

structbirth{intday;intmonth;intyear;}a;

);

structworkerw;

Aday=25;month=10;year=1993;

Bw.birth.day=25;w.birth.month=10;w.birth.year=1993;

Cw.day=25;w.month=10;w.year=1993;

Dw.a.day=25;w.a.month=10;w.a.year=1993;

8.已知函數(shù)fread的調(diào)用形式為fread(buffer,size,count,fp),其中buffer代表的是()。

A存放讀入數(shù)據(jù)項(xiàng)的存儲(chǔ)區(qū)B存放讀入數(shù)據(jù)的地址或指向此地址的指針

C一個(gè)指向所讀文件的文件指針D一個(gè)整形變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)

9.若有下面的變量定義,以下語(yǔ)句中合法的是()o

inti,a[10],*p;

Ap=a+2;Bp=a[5];Cp=a[2]+2;Dp=&(i+2);

10.若有以下的定義和語(yǔ)句,則值為12的表達(dá)式是()o

structwc{inta;int*b;}*p;intx0[]={ll,12},xl[]={31,32);

staticstructwcx[2]={100,xO,300,xl};p=x;

A*++p->bB-H-p->aCp->bD*(p++)->b

四寫(xiě)出下列程序的運(yùn)行結(jié)果(25分,每題5分)

1.main()

{intnumber=O;

while(number++<=1)printf(H*%d,n,number);

printf(H**%d\nn,number);

)

2.#defineN7

main()

{intij,a[N][N];

fbr(i=l;i<N;i++)

{a[i][i]=l;a[i][l]=l;}

fbr(i=3;i<N;i++)

for(j=2;jv=i?l;j++)a[i]O]=a[i-l]U-l]+a[M][j];

for(j=l;jv=4;j++)printf("%2d",a[4][j]);

printf(M\nM);

3.hcfifintu,intv)

{inta,b,c,r;

if(u>v){c=u;u=v;v=c;}

a=u;b=v;

while((r=b%a)!=O){b=a;a=r;}

retum(a);

}

main()

{intu,v,h,l;

u=32;v=48;

h=hcRu,v);

printf(HH.C.F=%d\tn,h);

)

4.main()

{inta[]={l,2,3A5,6),*p;

p=a;*(p+3)+=2;

printf("%d,%d\n”,*p,*(p+3));

)

5.main()

{inty;

fac(4,&y);

printf("y=%d\n”,y);

}

fac(intn,int*t)

{ints;

if((n=l)||(n=O))*t=l;

else{fac(n-l,&s);t=n*s;}

}

五閱讀下列程序,在處填入適當(dāng)內(nèi)容,使程序完整(25分,每個(gè)空2分)

I.試求出1000以?xún)?nèi)的“完全數(shù)”。(提示:如果一個(gè)數(shù)恰好等于它的因子之和(因子包括I,

不包括數(shù)本身),則稱(chēng)該數(shù)為“完全數(shù)如:6的因子是1、2、3,而6=1+2+3,則6是個(gè)“完

全數(shù))

main()

{

inti,a,m;

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

{

fbr(m=0,a=l;a<=i/2;a++)

if(!(i%a))(1);

if((2))printf(,,%4d,,,i);

)

}

2.用“起泡法”對(duì)輸入的10個(gè)字符排序后按從小到大的次序輸出。

#defineN10

charstr[N];

main()

(

inti,flag;

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

scanR"%c",&str[i]);

sortG(l)_);

for(i=O;i<N;i++)

printf("%c",str[i]);

printf("\n");

}

sort(str)

charstr[N];

{inti,j;

chart;

fbr(j=l;j<N;j-H-)

fbr(i=O;i<N-j;i++)

if(str[i]>(2))

{t=str[i];

(3);

(4);

3.3.將一個(gè)磁盤(pán)文件中的信息復(fù)制到另?個(gè)磁盤(pán)文件中。

#include"stdio.h”

main()

{(1)*in,*out;

charch,infile[10],outfile[10];

printfif1*Entertheinfilename:\nH);

scanf("%sM,infile);

printf(nEntertheoutfilename:\nH);

scanfC%sM,outfile);

if((in=fbpen(infile,V,))=NULL)

{printfif'Cannotopeninputfile.\nH);

exit(0);

)

if((out=fbpen(outfile,nw,,))==NULL)

{printf(,'Cannotopenoutputfile.\n");

exit(0);

}

while(!feof(in))

fputc((2),out);

(3);

(4)

4.4.用指針作函數(shù)參數(shù),編程序求?維數(shù)組中的最大和最小的元素值。

#defincN10

main()

(

voidmaxmin(intarr[],int*ptl,int*pt2,intn);

intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;

pl=&a;p2=&b;

maxmin(array,pl,p2,N);

printf(nmax=%d,min=%dH,a,b);

}

voidmaxmin(intarr[],int*ptl,int*pt2,intn)

{

inti;

*ptl=*pt2=arr[0];

fbr(i=l;i<n;i-H-)

(

ifi(arr[i]>*ptl)(1);

if(arr[i]<*pt2)(2);

)

}

2002試題3

一填空題(20分)

1.C語(yǔ)言表達(dá)式5>2>7>8的值是()。

2.當(dāng)執(zhí)行完以下語(yǔ)句后,變量a的值為(),d的值為(),e的值為()o

a=6;b=++a;c=—a;d=a++;e=a—;

3.下面程序段的輸出結(jié)果是()o

chara=lll;a=aA00;printf("%d%o\n,,,a,a);

4.a數(shù)組定義如下,按照內(nèi)存排列順序,a數(shù)組中的所有元素是()。

chara[3];

5.設(shè)有以下宏定義,則執(zhí)行賦值語(yǔ)句a=PP+20;(a為int型變量)后,a的值是()。

#definePR8

#definePPPR*40

6.定義結(jié)構(gòu)體類(lèi)型時(shí);應(yīng)使用關(guān)鍵字(),定義枚舉類(lèi)型時(shí),應(yīng)使用關(guān)鍵字()。

7.C文件可以分為兩種類(lèi)型,它們是()文件和()文件。

8.若有chara[3]="as";貝ij*a=(),*(a+2)=()。

二判斷對(duì)錯(cuò)(5分,對(duì)的劃7”,錯(cuò)的劃“x”)

1.0()

2.表達(dá)式1/4+2.75的值是3。()

3.結(jié)構(gòu)體類(lèi)型只有一種。()

4.函數(shù)若無(wú)返回值,則它一定無(wú)形參。()

5.C語(yǔ)言只能處理文本文件和二進(jìn)制文件。()

二判斷對(duì)錯(cuò)(10分,每題1分。對(duì)的劃“鏟,錯(cuò)的劃“*”)

1.在TurboC中,實(shí)型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié)。()

2.被main函數(shù)調(diào)用的函數(shù)只能是庫(kù)函數(shù)。()

3.對(duì)整型變量可進(jìn)行自加或自減運(yùn)算,而對(duì)常量或表達(dá)式不可以。()

4.算術(shù)運(yùn)算符和賦值運(yùn)算符的結(jié)合方向均由左自右。()

5.定義在main函數(shù)后的任何函數(shù)都需在main中進(jìn)行函數(shù)聲明。()

6.一個(gè)函數(shù)中只允許有一條return語(yǔ)句。()

7.任何數(shù)組在使用時(shí)必須先定義。()

8.在int*p;和語(yǔ)句printf("%d”,*p);中的*p含義相同。()

9.在定義枚舉時(shí),枚舉常量可以是標(biāo)識(shí)符或數(shù)字。()

10.用fopen("filel",“什“)方式打開(kāi)的文件可進(jìn)行修改。()

三選擇題(20分,每題2分)

1.a,b為整形變量,二者均不為0,以下關(guān)系表達(dá)式中恒成立的是()。

(A)a*b/a*b==l(B)a/b*b/a=l

(C)a/b*b+a%b=a(D)a/b*b==a

2.C語(yǔ)言源程序的基本單位是()。

(A)過(guò)程(B)函數(shù)(C)子程序(D)標(biāo)識(shí)符

3.以下函數(shù)調(diào)用語(yǔ)句中含有()個(gè)實(shí)參。

func((el,e2),(e3,e4,e5));

(A)2(B)3(C)5(D)語(yǔ)法錯(cuò)誤

4.以下的for循環(huán)()。

for(x=0,y=0;(y!=123)&&(x<4);x++);

(A)執(zhí)行3次(B)執(zhí)行4次

(C)循環(huán)次數(shù)不定(D)是無(wú)限循環(huán)

5.以下程序的輸出結(jié)果為()。

#defineN2

#defineMN+2

#defineCUBE(x)(x*x*x)

include“stdio.h”

main()

{inti=M;

i=CUBE(i);

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

}

(A)17(B)64(C)125(D)53

6.以下程序的輸出結(jié)果為()。

main()

{inti=010,j=10,*pi,*pj;

pi=&i;pj=&j;

printf(”%d.%d\n",*pi,*pj);

}

(A)10,10(B)8,10(C)010,10(D)8,8

7.在下列程序段中,枚舉變量cl,c2的值依次是(),()。

enumcolor{red,yellow,blue=4,green,white}cl,c2;

cl=yellow;c2=white;

printf(,,%d,%d\n,,,cl,c2);

(A)l(B)3(Q5(D)6

8.要打開(kāi)一個(gè)已存在的非空文件“file”用于修改,選擇正確的語(yǔ)句()。

(A)fp=fopen(MfileM,"rn);(B)fp=fopen(nfileM,nwM);

(C)fp=fbpen("file",nr+n);(D)fp=fbpen(nfile,,,,,w+");

9.以下程序的輸出結(jié)果是()。

main()

{charsl[20]="abc”,s2[20]="123”;

i心rtcmp(s1,s2)>0)printf("%s\n”,s1));

elseprintf(<4%s\n,,,s2);

}

(A)abc(B)123(C)abcl23(D)123abc

10.已知職工記錄描述如下,設(shè)變量w中的“生日”是“1993年10月25日”,下列對(duì)“生日”

的正確賦值方式是()。

structworker

{intno;charname[20];charsex;

struct{intday;intmonth;intyear;}birth;

};

structworkerw;

(A)day=25;month=l0;year=1993;

(B)w.birth.day=25;w.birthjnonth=10;w.birth.year=1993;

(C)w.day=25;w.month=10;w.year=1993;

(D)birth.day=25;birth.month=10;birth.year=1993;

四寫(xiě)出下列程序的運(yùn)行結(jié)果(25分,每題5分)

1.main()

{inti,j;

i=16;j=(i++)+i;printf("%d\n"J);

i=15;printf("%d\t%d\n”,Hi,i);

}

2.#include"stdio.h"

main()

{inti;

fbr(i=l;i+l;i-H-)

{if(i>4)

{printf("%d\n”,i++);

break;

)

printf("%d\n”,i++);

)

)

3.#includenstdio.h"

main()

{inti,j,a[]={0,2,8,4,5};

printf(,,\nM);

fbr(i=l;i<=5;i++)

{j=5-i;

printf("%2d",a[j]);

)

}

4.#include"stdio.h”

inain()

{charstring1[]={MABCDEFGHIJ"},string2[10];

s(stringl,string2,5);

printf(,,%s\nM,string2);

)

s(p,q,m)

char*p.*q;

intm;

{intn=0;

while(n<m-l)

{n++;

p++;

}

while(*p!=W)

{*q=*p;

p++;

q++;

*q='\0';

)

5.main()

{inty;

fac(5,&y);

printffty=%d\n,,,y);

)

fac(intn,int*t)

{ints;

ifi[(n==l)||(n==O))*t=2;

else{fac(n-l,&s);t=n*s;}

}

五閱讀下列程序,在處填入適當(dāng)內(nèi)容,使程序完整(25分,每個(gè)空2分)

I.試求出1000以?xún)?nèi)的“完全數(shù)”。(提示:如果一個(gè)數(shù)恰好等于它的因子之和(因子包括1,

不包括數(shù)本身),則稱(chēng)該數(shù)為“完全數(shù)如:6的因子是1、2、3,而6=1+2+3,則6是個(gè)“完

全數(shù))

main()

(

inti,a,m;

fbr(i=l;i<1000;i++)

fdr(m=0,a=l;a<=i/2;a++)

if(!(i%a))(1);

if(⑵)printfC%4d”,i);

}

)

2.用“起泡法”對(duì)輸入的10個(gè)字符排序后按從小到大的次序輸出。

//defineN10

charstr[N];

main()

(

inti,flag;

fbr(i=0;i<10;i++)

scanf("%cn,&str[i]);

sort(_(l)_);

fbr(i=0;i<N;i++)

printf(M%cn,str[i]);

printf(”\n)

)

sort(str)

charstr[N];

{inti,j;

chart;

fbr(j=l;j<N;j++)

fbr(i=O;i<N-j;i++)

if(str[i]>⑵)

{t=str[i];

(3);

(4);

)

}

3.將一個(gè)磁盤(pán)文件中的信息復(fù)制到另一個(gè)磁盤(pán)文件中。

#include"stdio.h”

main()

{(1)*in,*out;

charch,infile[l0],outfile[l0];

printf(nEntertheinfilename:\n");

scanf("%sM,infile);

printf(nEntertheoutfilename:\nH);

scanfif"%sn,outfile);

if((in=fbpen(infile,Hr,,))=NULL)

{printffCannotopeninputfile.\nn);

exit(0);

)

if((out=fbpen(outfile,nwn))=NULL)

{printfif^Cannotopenoutputfile.\n");

exit(O);

while(!feof(in))

fputc((2),out);

(3);

(4);

}

4.用指針作函數(shù)參數(shù),編程序求一維數(shù)組中的最大和最小的元素值。

#defineN10

main()

{

voidmaxmin(intarr[],int*ptl,int*pt2,intn);

intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;

pl=&a;p2=&b;

maxmin(array,pl,p2,N);

printf(,,max=%d,min=%d,,,a,b);

)

voidmaxmin(intarr[],int*ptl,int*pt2,intn)

(

inti;

*pt1=*pt2=arr[0];

fbr(i=l;i<n;i-H-)

if(arr[i]>*ptl)(1);

if(arr[i]<*pt2)(2);

)

)

2003C語(yǔ)言試題1

—選擇題(7分,每小題0.5分)

1.設(shè)a為整型變量,初值為12,執(zhí)行完語(yǔ)句a+=a-=a*a后,a的值是()。

A552B144C264D-264

2.下列標(biāo)識(shí)符中,不能作為合法的C用戶(hù)定義標(biāo)識(shí)符的是()o

Aa3_b3BvoidC_123DIF

3.下列整數(shù)值中,不正確的八進(jìn)制或十六進(jìn)制數(shù)值常量是()。

AOxcdB-017C-oxl23DOxfdc

4.若給定條件表達(dá)式(M)?(a++):(a-),則其中表達(dá)式M和()等價(jià)。

AM==0BM=1CM!=1DM!=0

5.在C語(yǔ)言中,if語(yǔ)句后的一對(duì)圓括號(hào)中,用以決定分支流程的表達(dá)式為()。

A只能是邏輯表達(dá)式B只能是關(guān)系表達(dá)式

C只能是邏輯表達(dá)式或關(guān)系表達(dá)式D可以是任意表達(dá)式

6.以下程序的輸出結(jié)果為()。

main()

{charc;

inti;

for(i=65;i<68;i+4-)

{c=i+32;

switch(c)

{caseta,:printf(n%c,",c);break;

case'b':case'e':printf(”ok,”);

default:printfCend)

Aa,ok,endBa,ok,endendCa,ok,end,endDa,ok,ok

7.數(shù)組名作為實(shí)參數(shù)傳遞給函數(shù)時(shí),數(shù)組名被處理為()o

A該數(shù)組的長(zhǎng)度B該數(shù)組的元素個(gè)數(shù)

C該數(shù)組的首地址D該數(shù)組中各元素的值

8.關(guān)于return語(yǔ)句,下列正確的說(shuō)法是()。

A可以在同一函數(shù)中出現(xiàn)多次B在主函數(shù)中不能出現(xiàn)

C必須在每個(gè)函數(shù)中出現(xiàn)D只能在除主函數(shù)之外的函數(shù)中出現(xiàn)一次

9.以下程序的輸出結(jié)果為()。

#defineA3

#defineB(a)(A+l)*a

main()

{intx;

x=3*A+B(7);

printf(Mx=%d\n",x);

)

Ax=93Bx=37Cx=60Dx=90

10.設(shè)有以下定義,則以下對(duì)變量w的賦值()是錯(cuò)誤的。

enumweek{sun,mon=4,tue,wed,thu,fri,sat}w;

Aw=sun;Bw=(enumweek)4;Cw=san;Dw=(enumweek)9;

11.以下定義結(jié)構(gòu)體類(lèi)型stl,其中正確的是()o

Atypedefstructstudent

{intnum;intage;}STD;

STDstl;

Bstructstl{intnum,age;}s;

Cstruct{intnum;floatage;}stl;

Dstructstl{intnum;intage;}

12.若有下面的變量定義,以下語(yǔ)句中合法的是()。

inti,a[10],*p;

Ap=a+2;Bp=a[5];Cp=a[2]+2;Dp=&(i+2);

13.若有以下定義和語(yǔ)句,則值為12的表達(dá)式是()。

structwc{inta;int*b;}*p;

intx0[]={ll,12},xl[]={31,32};

staticstructwcx[2]={100,xO,300,xl};

p=x;

A*++p->bB++p->aCp->bD*(p++)->b

14.要打開(kāi)一個(gè)已存在的非空文件“file”用于修改,選擇正確的語(yǔ)句()o

A巾=fbpen("file","r");Bfp=fbpen("file","w");

Cfp=fopen("file","H-");Dfp=fopen("file","w+");

二判斷對(duì)錯(cuò),對(duì)的劃錯(cuò)的劃“x”(5分,每小題0.5分)

1.在TurboC中,實(shí)型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié)。()

2.若有形參定義:inta[10];則a++是合法的表達(dá)式。()

3.若有宏定義:#definePI3.14i5926,則系統(tǒng)預(yù)編譯時(shí)會(huì)報(bào)錯(cuò)。()

4.函數(shù)的遞歸調(diào)用不過(guò)是一個(gè)函數(shù)直接地調(diào)用它自身。()

5.定義在main函數(shù)后的任何函數(shù)都需在main中進(jìn)行函數(shù)聲明。()

6.若有定義:inta;則scanf("%d",a);可以給變量a賦值。()

7.任何數(shù)組在使用前必須先定義。()

8.在int*p;和語(yǔ)句printf("%d”,*p);中的*p含義相同。()

9.共用體變量的各個(gè)成員所占內(nèi)存單元的地址相同。()

10.在使用緩沖文件系統(tǒng)時(shí),與文件輸入和輸出相關(guān)的數(shù)據(jù)都先送到緩沖區(qū)中。()

三寫(xiě)出下列程序的運(yùn)行結(jié)果(10分,每小題2分)

1,main()

{charcl='A',c2='\144',c3='\x44',c=0xf5,x=13,a;

inti=0122j=0xa4;

printf("c1=%c,c4=%c\tc5=%c\n",c1,c2,c3);

printf("%d,%d\n”,i,j);

i=-34;

j=20;

printf(44%d,%d,%d\n,,,i%j,i&j<<2,sizeof(j));

printf(uc=%d\n,\c|x);

a=cAx?2;

printfC4a=%d\n,,,a);

)

2.main()

(

intx,y=l,z=10;

if(y!=O)x=5;

printf(6<x=%d\t,,,x);

x=l;

if(z<0)

if(y>0)x=3;

elsex=5;

printf(44x=%d\n,,,x);

if(z=y<0)x=3;

elseif(y==O)x=5;

elsex=7;

printfC4x=%d\t,,,x);

printfC4z=%d\n,,,z);

3.main()

{chars[20]=uIlikeit.”,t[20]="Areyou?,,,c[20];

inti=0;

while(s[++i]!='\O')

t[i]=s[i];

t[i]=O;

printff'strings:%s\n”,s);

printf(<4stringt:%s\n”,t);

}

4.inti=5;

main()

{inti=3;

{inti=10;

i++;

printf(64%d\n,,,i);

}

fl();

i+=l;

printfC<%d\n,,,i);

}

intfl()

{i=i+l;

retum(i);

}

5.main()

{inti=10,a[]={10,20,30,15},*pl;

char*b=,,Leaming,,,**p2=&b;

pl=&i;

printf(<6%4d,,,*pl+20);

for(p1=a;pl<a+4;p1+=2)

printf(t6%4d,,,*pl);

printfC4\n%c\t%s\n,\*(b+4),*p2);

}

四閱讀下列程序,在處填入適當(dāng)內(nèi)容,使程序完整(8分,每個(gè)空1分)

1.用冒泡法對(duì)任意10個(gè)整數(shù)排序。

main()

{inta[ll],i,j,t;

fbr(i=l;i<ll;i++)

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

printf(,,\n,');

fbr(i=l;(1);i++)

forO=l;(2);j++)

if(aU+l]>aU])

{t=aU];(3);(4);)

printff'Thesortednumbers:\n");

fbr(i=l;i<ll;i++)

printf(,,%4d",a[i]);

printf("\n”);

}

2.求100?200間的素?cái)?shù)。

(5)

main()

{intm,flag;

for(m=101;m<=200;m+=2)

{flag=prime(m);

if((6))

printf("%4d”,m);

}

)

prime((7))

{

inti,k,flag;

k=sqrt(a);

fbr(i=2;i<=k;i-H-)

if(a%i=0)

(8)

if(i==k+l)flag=l;

elseflag=O;

2003C語(yǔ)言試題2

-選擇題(7分,每小題0.5分)

LC語(yǔ)言源程序的基本單位是()o

A過(guò)程B函數(shù)C子程序D標(biāo)識(shí)符

2.下列程序的輸出結(jié)果是()。

main()

{inta=7,b=5;

printf("%d\n",b=b/a);

}

A5B1COD不確定值

3.假設(shè)變量a,b均為整型,表達(dá)式(a=5,b=2,a>b?a++:b++,a+b)的值是(

A7B8C9D2

4.設(shè)a為int型變量,執(zhí)行下列賦值語(yǔ)句后,a的取值分別是()。

a=125.534;a=(int)l25.521%4;a=5?2;

A125,31,1B125,1,20C125,31,20D125.534,2,20

5.設(shè)有如下程序段,下面描述中正確的是()。

intk=10;while(k=0)k=k-l;

A循環(huán)執(zhí)行一次B循環(huán)是無(wú)限循環(huán)C循環(huán)體語(yǔ)句一次也不執(zhí)行D循環(huán)體語(yǔ)句執(zhí)行一

6.以下程序的輸出結(jié)果為()o

inti;

voidprt()

{fbr(i=5;i<8;i++)printf(”%c”,");

printf(n\tn);

main()

{fbr(i=5;iv=8;i++)prt();

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

7.在C語(yǔ)言程序中,以下說(shuō)法正確的是()o

A函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套

B函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套

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

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

8.以下函數(shù)調(diào)用語(yǔ)句中含有()個(gè)實(shí)參。

func((eI,e2),(e3,e4,e5));

A2B3C5D語(yǔ)法錯(cuò)誤

9.以下程序的輸出結(jié)果為()。

#defineADD(x)x*x

main()

{inta=4,b=6,c=7,d=ADD(a+b)*c;

printf(nd=%d",d);

)

Ad=70Bd=80Cd=140Dd=700

10.已知職工記錄描述如下,在TurboC中,系統(tǒng)為變量w分配()字節(jié)的空間。

structworker

{intno;

charname[20];

charsex;

union

{intday;intmonth;intyear;{birth;

}w;

A29B20C25D6

11.設(shè)有以下定義,值為5的枚舉常量是()。

enumweek{sun,mon=4,tue,wed,thu,fri,sat)w;

AtueBsatCfriDthu

12.下面選項(xiàng)中正確的賦值語(yǔ)句是(設(shè)chara[5],*p=a;)()。

Ap="abcd”;Ba=nabcdn;C*p=MabcdH;D*a="abcdH;

13.設(shè)有以下程序段,則值為6的表達(dá)式是()。

structst{intn;structst*next;};

staticstructsta[3]={5,&a[l],7,&a[2],9,0},*p;

p=&a[0];

Ap-F+->nB++p?>nCp->n++D(*p).n++

14.C語(yǔ)言中的文件類(lèi)型只有()0

A索引文件和文本文件兩種B文本文件一種

C二進(jìn)制文件一種DASCH碼文件和二進(jìn)制文件兩種

二判斷對(duì)錯(cuò),對(duì)的劃“小,錯(cuò)的劃“X”(5分,每小題0.5分)

1.在TurboC中,整型數(shù)據(jù)在內(nèi)存中占2個(gè)字節(jié)。()

2.inti=20;switch(i/10){case2:printff'A");casel:printf("B");}的輸出結(jié)果為A。()

3.break語(yǔ)句用在循環(huán)體中,可結(jié)束本層循環(huán),continue語(yǔ)句用在循環(huán)體中,可結(jié)束本次循

環(huán)。()

4.函數(shù)的遞歸調(diào)用不過(guò)是一個(gè)函數(shù)直接或間接地調(diào)用它自身。()

5.函數(shù)strlen("ASDFG\n")的值是7。()

6.通過(guò)return語(yǔ)句,函數(shù)可以帶回一個(gè)或一個(gè)以上的返回值。()

7.結(jié)構(gòu)體類(lèi)型只有一種。()

8.char*p="girl";的含義是定義字符型指針變量p,p的值是字符串"girl"。()

9.若有定義:char*p(chara[10]);則p是函數(shù)名。()

10.用fopen("file","r+");打開(kāi)的文件冷le"可以進(jìn)行修改。()

三寫(xiě)出下列程序的運(yùn)行結(jié)果(10分,每小題2分)

1.floataverage(floatarray[10])

{inti;

floataver,sum=array[0];

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

sum=sum+array[i];

aver=sum/10;

retum(aver);

main()

{floatscore[10]={89,67.5,78,91,56,82.5,65,70,79,88),aver;

inti;

aver=average(score);

printf("averagescoreis%5.2f\n”,aver);

}

2.main()

{chara[5]={'A','B','C','D','E'},*p=a,**pa;

fdr(p=0;p<a+5;p4-+)

printfC4%2c,,,*p);

printf(“\n”);

printfC4%2c\n,,,**(pa=&p));

)

3.main()

{inta,b,s=0;

fbr(a=l,b=1;a<=l00;a++)

{if(b>=20)break;

if(b%3==l)

{b+=3;continue;}

b-=5;

)

printf(6ta=%d\tb=%d\n,,,a,b);

)

4.main()

{printf(4tmain():%d\n”,fact(5));

fact(-5);

)

fact(intvalue)

{intf;

if(value<0)

{printff'Argerror\n");

retum(-l);

}

elseiflfvalue=1||value=O)f=1;

elsef=value*fact(value-1)+1;

printf(44Thiscalledvalue=%d\n,,,f);

returnf;

}

5.main()

{inta=012,b=0x12,k=12;

charc='\102',d='\r';

printf(4<a=%d\tb=%d\tk=%d\n,\a,b,k);

printf(t<c=%c,d=%c%o\n,,,c,d,a);

a='A';c=49;

printf(t4a=%d\tc=%c\n,,,a,c);

}

四閱讀下列程序,在處填入適當(dāng)內(nèi)容,使程序完整(8分,每個(gè)空1分)

1.有一個(gè)3*4矩陣,求其中的最大元素。

max_value((1))

{inti,j,max;

max=array[O][O];

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

fbr(j=0;j<4;j++)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論