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

下載本文檔

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

文檔簡介

歷年C語言期末考試試題

2004-12-22由vince整理

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

地址:/article.php/928

C語言試題1

-填空題(15分)

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

2.設(shè)inta=7,b=9,t;執(zhí)行完表達式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í)行賦值語句a=PP*20;(a為int型變量)后,a的值是()。

#definePR80

#definePPPR+403

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

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

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

可實現(xiàn)文件的隨機讀寫。

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

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

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

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

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

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

5.C語言只能處理文本文件和二進制文件。()

三選擇題(20分)

1.設(shè)inta=12;表達式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.下面的選項中正確的賦值語句是(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ù)組名被處理為()。

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

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

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

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

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.要打開一個已存在的非空文件“file”用于修改,選擇正確的語句()。

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

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

四寫出下列程序的運行結(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間的全部素數(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.用選擇法對數(shù)組中的10個字符按由大到小排序。

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ù)組,用指針方法實現(xiàn)將每行中的最小數(shù)與第0列元素對調(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í)行完以下語句后,變量a的值為(),b的值為(),c的值為()。

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

2.已知a=3、b=2,則表達式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í)行賦值語句a=ADD(4+6)*7;(a為int型變量)后,a的值是()。

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

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

structst

{inta;

structstb;

}*p,x;

p=&x;

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

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

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

chara[10];

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

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

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

3.對整型變量可進行自加或自減運算,而對常量或表達式不可以。()

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

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

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

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

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

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

10.用fopen(“行方式打開的文件可進行修改。()

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

1.若有代數(shù)式,則錯誤的C語言表達式是()。

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語言中函數(shù)調(diào)用的方式有()o

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

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

3種

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

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

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

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

正確賦值方式是()。

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ù)項的存儲區(qū)B存放讀入數(shù)據(jù)的地址或指向此地址的指針

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

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

inti,a[10],*p;

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

10.若有以下的定義和語句,則值為12的表達式是()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

四寫出下列程序的運行結(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分,每個空2分)

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

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

全數(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.用“起泡法”對輸入的10個字符排序后按從小到大的次序輸出。

#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.將一個磁盤文件中的信息復(fù)制到另?個磁盤文件中。

#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語言表達式5>2>7>8的值是()。

2.當(dāng)執(zhí)行完以下語句后,變量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í)行賦值語句a=PP+20;(a為int型變量)后,a的值是()。

#definePR8

#definePPPR*40

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

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

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

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

1.0()

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

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

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

5.C語言只能處理文本文件和二進制文件。()

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

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

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

3.對整型變量可進行自加或自減運算,而對常量或表達式不可以。()

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

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

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

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

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

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

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

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

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

(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語言源程序的基本單位是()。

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

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

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

(A)2(B)3(C)5(D)語法錯誤

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)是無限循環(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.要打開一個已存在的非空文件“file”用于修改,選擇正確的語句()。

(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日”,下列對“生日”

的正確賦值方式是()。

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;

四寫出下列程序的運行結(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分,每個空2分)

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

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

全數(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.用“起泡法”對輸入的10個字符排序后按從小到大的次序輸出。

//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.將一個磁盤文件中的信息復(fù)制到另一個磁盤文件中。

#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語言試題1

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

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

A552B144C264D-264

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

Aa3_b3BvoidC_123DIF

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

AOxcdB-017C-oxl23DOxfdc

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

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

5.在C語言中,if語句后的一對圓括號中,用以決定分支流程的表達式為()。

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

C只能是邏輯表達式或關(guān)系表達式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ù)組名被處理為()o

A該數(shù)組的長度B該數(shù)組的元素個數(shù)

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

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

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

C必須在每個函數(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è)有以下定義,則以下對變量w的賦值()是錯誤的。

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

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

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

Atypedefstructstudent

{intnum;intage;}STD;

STDstl;

Bstructstl{intnum,age;}s;

Cstruct{intnum;floatage;}stl;

Dstructstl{intnum;intage;}

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

inti,a[10],*p;

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

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

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.要打開一個已存在的非空文件“file”用于修改,選擇正確的語句()o

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

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

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

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

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

3.若有宏定義:#definePI3.14i5926,則系統(tǒng)預(yù)編譯時會報錯。()

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

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

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

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

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

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

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

三寫出下列程序的運行結(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分,每個空1分)

1.用冒泡法對任意10個整數(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間的素數(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語言試題2

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

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

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

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

main()

{inta=7,b=5;

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

}

A5B1COD不確定值

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

A7B8C9D2

4.設(shè)a為int型變量,執(zhí)行下列賦值語句后,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)是無限循環(huán)C循環(huán)體語句一次也不執(zhí)行D循環(huán)體語句執(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語言程序中,以下說法正確的是()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)用語句中含有()個實參。

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

A2B3C5D語法錯誤

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.下面選項中正確的賦值語句是(設(shè)chara[5],*p=a;)()。

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

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

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語言中的文件類型只有()0

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

C二進制文件一種DASCH碼文件和二進制文件兩種

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

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

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

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

環(huán)。()

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

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

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

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

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

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

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

三寫出下列程序的運行結(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分,每個空1分)

1.有一個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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論