版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西中醫(yī)藥大學(xué)《植物免疫學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 陜西職業(yè)技術(shù)學(xué)院《中外歌劇劇目排練》2023-2024學(xué)年第一學(xué)期期末試卷
- 肉雞采購(gòu)合同范例
- 2024至2030年浮雕裝飾線項(xiàng)目投資價(jià)值分析報(bào)告
- 2024至2030年醫(yī)療手術(shù)器材項(xiàng)目投資價(jià)值分析報(bào)告
- 微信引流合同范例
- 委托訂制書(shū)籍合同范例
- 電梯設(shè)備銷(xiāo)售合同范例
- 山地承包30合同范例
- 陜西師范大學(xué)《硬質(zhì)容器造型》2023-2024學(xué)年第一學(xué)期期末試卷
- 航天航空與國(guó)防行業(yè)“鑄劍”系列深度報(bào)告(五):軍品定價(jià)機(jī)制改革~激勵(lì)與補(bǔ)償?shù)乃囆g(shù)
- 國(guó)開(kāi)公共政策概論形考任務(wù)4試題及答案
- (完整版)馬克思主義基本原理概論知識(shí)點(diǎn)
- 鐘點(diǎn)工雇傭協(xié)議書(shū)3篇
- 電子耳蝸植入術(shù)后護(hù)理查房課件
- DB34∕T 2290-2022 水利工程質(zhì)量檢測(cè)規(guī)程
- 星巴克哈佛商學(xué)院案例
- ICS(國(guó)際標(biāo)準(zhǔn)分類(lèi)法)分類(lèi)
- 幼兒園課件:《認(rèn)識(shí)國(guó)旗》
- 【規(guī)劃】高中語(yǔ)文教師專(zhuān)業(yè)成長(zhǎng)五年規(guī)劃
- 華南農(nóng)業(yè)大學(xué)農(nóng)學(xué)院生物技術(shù)復(fù)習(xí)題附答案
評(píng)論
0/150
提交評(píng)論