历年C语言期末考试试题.docx

上传人:b****2 文档编号:597350 上传时间:2023-04-29 格式:DOCX 页数:48 大小:36.86KB
下载 相关 举报
历年C语言期末考试试题.docx_第1页
第1页 / 共48页
历年C语言期末考试试题.docx_第2页
第2页 / 共48页
历年C语言期末考试试题.docx_第3页
第3页 / 共48页
历年C语言期末考试试题.docx_第4页
第4页 / 共48页
历年C语言期末考试试题.docx_第5页
第5页 / 共48页
历年C语言期末考试试题.docx_第6页
第6页 / 共48页
历年C语言期末考试试题.docx_第7页
第7页 / 共48页
历年C语言期末考试试题.docx_第8页
第8页 / 共48页
历年C语言期末考试试题.docx_第9页
第9页 / 共48页
历年C语言期末考试试题.docx_第10页
第10页 / 共48页
历年C语言期末考试试题.docx_第11页
第11页 / 共48页
历年C语言期末考试试题.docx_第12页
第12页 / 共48页
历年C语言期末考试试题.docx_第13页
第13页 / 共48页
历年C语言期末考试试题.docx_第14页
第14页 / 共48页
历年C语言期末考试试题.docx_第15页
第15页 / 共48页
历年C语言期末考试试题.docx_第16页
第16页 / 共48页
历年C语言期末考试试题.docx_第17页
第17页 / 共48页
历年C语言期末考试试题.docx_第18页
第18页 / 共48页
历年C语言期末考试试题.docx_第19页
第19页 / 共48页
历年C语言期末考试试题.docx_第20页
第20页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

历年C语言期末考试试题.docx

《历年C语言期末考试试题.docx》由会员分享,可在线阅读,更多相关《历年C语言期末考试试题.docx(48页珍藏版)》请在冰点文库上搜索。

历年C语言期末考试试题.docx

历年C语言期末考试试题

历年C语言期末考试试题

一填空题(15分)

1.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后,x的值为(  )。

2.设inta=7,b=9,t;执行完表达式t=(a>b)?

a:

b后,t的值是()。

3.下面程序段的输出结果是()。

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

4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是()。

chara[3];

5.设有以下宏定义,则执行赋值语句a=PP*20;(a为int型变量)后,a的值是()。

#definePR80

#definePPPR+403

6.在C程序中,可以通过三种运算方式为指针变量赋地址值,它们是:

()、()和()。

7.在C文件中,数据存在的两种代码形式是()和()。

8.C语言中调用()函数打开文件,调用()函数关闭文件,调用()函数可实现文件的随机读写。

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

二判断对错(5分,对的划“√”,错的划“×”)

1.在TurboC中,整型数据在内存中占2个字节。

()

2.表达式1/4+2.75的值是3。

()

3.结构体类型只有一种。

()

4.函数若无返回值,则它一定无形参。

()

5.C语言只能处理文本文件和二进制文件。

()

三选择题(20分)

1.设inta=12;表达式a+=a-=a*=a的值是( )。

A12B144C0D132

2.以下程序的输出结果是(  )。

main()

{inta=011;

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

}

A12B11C10D9

3.以下程序的输出结果是( )。

#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循环执行(  )次。

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

 A10B9C0D1

6.数组名作为实参传递给形参时,数组名被处理为(  )。

A该数组的长度B该数组的元素个数C该数组的首地址D该数组中各元素的值

7.两个指针变量不可以()。

A.相加B比较C相减D指向同一地址

8.若有以下程序段,则值为6的表达式是()。

structst{intn;structst*next;};

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

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

9.要打开一个已存在的非空文件"file"用于修改,选择正确的语句()。

Afp=fopen("file","r");Bfp=fopen("file","w");

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

四写出下列程序的运行结果。

(28分)

1.main()

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

invert(a,0,5);

for(i=0;i<6;i++)printf(“%d,”,a[i]);

printf(“\n”);

}

invert(int*s,inti,intj)

{intt;

if(i

{invert(s,i+1j-1);

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

}

}

2.f1(inta)

{intb=0;staticintc=3;

b+=1;c++;

return(a+b+c);

}

main()

{inta=1,i;

chars1[10]=“java”,s2[10]=“basic”,s[10];

for(i=0;i<3;i++)printf("%d",f1(a));

printf(“\n”);

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

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

}

3.#defineMAX100

main()

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

for(i=0;i<=m;i++)f[i]=1;f[k-1]=2;

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

for(j=i-k;j<=i-1;j++)f[i]+=f[j];

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

}

五阅读下列程序,在处填入适当内容,使程序完整。

(32分)

1.求100~200间的全部素数。

(1)

main()

{intm,k,i,n=0;

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

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

k=sqrt(m);

for(i=

(2);i<=k;i++)if(m%i==0)(3);

if(i==(4))

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

}

}

2.用选择法对数组中的10个字符按由大到小排序。

voidsort(

(1))

chara[];intn;

{inti,j,k;

chart;

for(i=0;i

{

(2);

for(j=i+1;j

if((3))k=j;

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

}

main()

{chars[10];

inti;

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

(4);

printf(“thesortedarray:

\n”);

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

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

printf(“\n”);

}

33.输入3×4数组,用指针方法实现将每行中的最小数与第0列元素对调。

main()

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

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

for(j=0;j<4;j++)scanf(“%d”,p++);

for(p=&a[0][0];p

(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=p1,*p3;

(4);

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

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

}

min=*p1;*p1=*p3;*p3=min;

}

一填空题(20分,每空1.5分)

1.当执行完以下语句后,变量a的值为(),b的值为(),c的值为()。

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

2.已知a=3、b=2,则表达式a*=b+8的值是()。

3.下面程序段的输出结果是()。

inta=125;printf(“%d\n”,a>>4);

4.a数组定义如下,a数组中可用最小下标值是(),最大下标值是()。

chara[3];

5.设有以下宏定义,则执行赋值语句a=ADD(4+6)*7;(a为int型变量)后,a的值是()。

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

6.若有以下说明、定义和语句,则对x.b成员的另外两种引用方式是:

()和()。

structst

{inta;

structstb;

}*p,x;

p=&x;

7.在C中,文件指针变量的类型只能是()。

8.在C中文件结束标志EOF只可用于()文件。

9.a数组定义如下,若使数组a中存放字符串“friend”,写出为数组a赋值的语句()。

chara[10];

二判断对错(10分,每题1分。

对的划“√”,错的划“×”)

1.在TurboC中,实型数据在内存中占4个字节。

()

2.被main函数调用的函数只能是库函数。

()

3.对整型变量可进行自加或自减运算,而对常量或表达式不可以。

()

4.算术运算符和赋值运算符的结合方向均由左自右。

()

5.定义在main函数后的任何函数都需在main中进行函数声明。

()

6.一个函数中只允许有一条return语句。

()

7.任何数组在使用时必须先定义。

()

8.在int*p;和语句printf(“%d”,*p);中的*p含义相同。

()

9.在定义枚举时,枚举常量可以是标识符或数字。

()

10.用fopen(“file1”,”r+”)方式打开的文件可进行修改。

()

三选择题(20分,每题2分)

1.若有代数式

,则错误的C语言表达式是( )。

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

2.以下程序的输出结果是(  )。

main()

{inta=7,b=5;

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

}

A不确定值B5C1D0

3.以下程序的输出结果是( )。

main()

{intk1=1,k2=2,k3=3,x=15;

if(!

k1)x--;

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

printf(“x=%d\n”,x);

}

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

4.以下程序的输出结果是(  )。

main()

{chars1[20]=“China”,s2[20]=“for”,s[10];

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

elseprintf(“%d\n”,strlen(s1));

}

AChinaforB5CforChinaD3

5.C语言中函数调用的方式有()。

A函数调用作为语句1种B函数调用作为函数表达式1种

C函数调用作为语句或函数表达式2种D函数调用作为语句、函数表达式或函数参数3种

6.关于return语句,下列正确的说法是()。

A可以在同一函数中出现多次B必须在每个函数中出现

C只能在除主函数之外的函数中出现一次D在主函数中不能出现

7.已知职工记录描述如下,设变量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.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是()。

A存放读入数据项的存储区B存放读入数据的地址或指向此地址的指针

C一个指向所读文件的文件指针D一个整形变量,代表要读入的数据项总数

9.若有下面的变量定义,以下语句中合法的是()。

inti,a[10],*p;

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

10.若有以下的定义和语句,则值为12的表达式是()。

structwc{inta;int*b;}*p;intx0[]={11,12},x1[]={31,32};

staticstructwcx[2]={100,x0,300,x1};p=x;

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

四写出下列程序的运行结果(25分,每题5分)

1.main()

{intnumber=0;

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

printf("**%d\n",number);

}

2.#defineN7

main()

{inti,j,a[N][N];

for(i=1;i

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

for(i=3;i

for(j=2;j<=i-1;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];

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

printf("\n");

}

3.hcf(intu,intv)

{inta,b,c,r;

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

a=u;b=v;

while((r=b%a)!

=0){b=a;a=r;}

return(a);

}

main()

{intu,v,h,l;

u=32;v=48;

h=hcf(u,v);

printf("H.C.F=%d\t",h);

}

4.main()

{inta[]={1,2,3,4,5,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==1)||(n==0))*t=1;

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

}

五阅读下列程序,在处填入适当内容,使程序完整(25分,每个空2分)

1.试求出1000以内的“完全数”。

(提示:

如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”。

如:

6的因子是1、2、3,而6=1+2+3,则6是个“完全数”。

main()

{

inti,a,m;

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

{

for(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++)

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

sort(_

(1)__);

for(i=0;i

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

printf("\n");

}

sort(str)

charstr[N];

{inti,j;

chart;

for(j=1;j

for(i=0;i

if(str[i]>

(2))

{t=str[i];

______(3)______;

______(4)______;

}

}

3.3.将一个磁盘文件中的信息复制到另一个磁盘文件中。

#include"stdio.h"

main()

{

(1)*in,*out;

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

printf("Entertheinfilename:

\n");

scanf("%s",infile);

printf("Entertheoutfilename:

\n");

scanf("%s",outfile);

if((in=fopen(infile,"r"))==NULL)

{printf("Cannotopeninputfile.\n");

exit(0);

}

if((out=fopen(outfile,"w"))==NULL)

{printf("Cannotopenoutputfile.\n");

exit(0);

}

while(!

feof(in))

fputc(

(2),out);

(3);

(4);

}

4.4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。

#defineN10

main()

{

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

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

p1=&a;p2=&b;

maxmin(array,p1,p2,N);

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

}

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

{

inti;

*pt1=*pt2=arr[0];

for(i=1;i

{

if(arr[i]>*pt1)

(1);

if(arr[i]<*pt2)

(2);

}

}

2003C语言试题1

一填空题(20分)

1.C语言表达式5>2>7>8的值是(  )。

2.当执行完以下语句后,变量a的值为(),d的值为(),e的值为()。

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

3.下面程序段的输出结果是()。

chara=111;a=a^00;printf(“%d%o\n”,a,a);

4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是()。

chara[3];

5.设有以下宏定义,则执行赋值语句a=PP+20;(a为int型变量)后,a的值是()。

#definePR8

#definePPPR*40

6.定义结构体类型时,应使用关键字(),定义枚举类型时,应使用关键字()。

7.C文件可以分为两种类型,它们是()文件和()文件。

8.若有chara[3]=“as”;则*a=(),*(a+2)=()。

二判断对错(5分,对的划“√”,错的划“×”)

1.。

()

2.表达式1/4+2.75的值是3。

()

3.结构体类型只有一种。

()

4.函数若无返回值,则它一定无形参。

()

5.C语言只能处理文本文件和二进制文件。

()

二判断对错(10分,每题1分。

对的划“√”,错的划“×”)

1.在TurboC中,实型数据在内存中占4个字节。

()

2.被main函数调用的函数只能是库函数。

()

3.对整型变量可进行自加或自减运算,而对常量或表达式不可以。

()

4.算术运算符和赋值运算符的结合方向均由左自右。

()

5.定义在main函数后的任何函数都需在main中进行函数声明。

()

6.一个函数中只允许有一条return语句。

()

7.任何数组在使用时必须先定义。

()

8.在int*p;和语句printf(“%d”,*p);中的*p含义相同。

()

9.在定义枚举时,枚举常量可以是标识符或数字。

()

10.用fopen(“file1”,”r+”)方式打开的文件可进行修改。

()

三选择题(20分,每题2分)

1.a,b为整形变量,二者均不为0,以下关系表达式中恒成立的是()。

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

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

2.C语言源程序的基本单位是()。

(A)过程(B)函数(C)子程序(D)标识符

3.以下函数调用语句中含有()个实参。

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

(A)2(B)3(C)5(D)语法错误

4.以下的for循环()。

for(x=0,y=0;(y!

=123)&&(x<4);x++);

(A)执行3次(B)执行4次

(C)循环次数不定(D)是无限循环

5.以下程序的输出结果为()。

#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.以下程序的输出结果为()。

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.在下列程序段中,枚举变量c1,c2的值依次是(),()。

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

c1=yellow;c2=white;

printf("%d,%d\n",c1,c2);

(A)1(B)3(C)5(D)6

8.要打开一个已存在的非空文件"file"用于修改,选择正确的语句()。

(A)fp=fopen("file","r");(B)fp=fopen("file","w");

(C)fp=fopen("file","r+");(D)fp=fopen("file","w+");

9.以下程序的输出结果是(  )。

main()

{chars1[20]=“abc”,s2[20]=“123”;

if(strcmp(s1,s2)>0)printf(“%s\n”,s1));

elseprintf(“%s\n”,s2);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2