C语言试题.docx

上传人:b****5 文档编号:29329523 上传时间:2023-07-22 格式:DOCX 页数:22 大小:19.23KB
下载 相关 举报
C语言试题.docx_第1页
第1页 / 共22页
C语言试题.docx_第2页
第2页 / 共22页
C语言试题.docx_第3页
第3页 / 共22页
C语言试题.docx_第4页
第4页 / 共22页
C语言试题.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C语言试题.docx

《C语言试题.docx》由会员分享,可在线阅读,更多相关《C语言试题.docx(22页珍藏版)》请在冰豆网上搜索。

C语言试题.docx

C语言试题

试卷编号:

12895

所属语言:

TurboC

试卷方案:

lx

试卷总分:

100分

共有题型:

4种

 

一、单项选择共26题(共计50分)

第1题(1.0分)题号:

2691

若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是______。

A:

1

B:

3

C:

2.0

D:

2.5

答案:

C

第2题(1.0分)题号:

2673

()是C语言提供的合法描述数据类型的关键字。

A:

unsigned

B:

integer

C:

Char

D:

fLoat

答案:

A

第3题(1.0分)题号:

2727

以下选项中非法的表达式是______。

A:

0<=x<100

B:

i=j==0

C:

(char)(65+3)

D:

x+1=x+1

答案:

D

第4题(1.0分)题号:

2760

设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______。

A:

0

B:

1

C:

2

D:

3

答案:

C

第5题(1.0分)题号:

2762

假定w、x、y、z、m均为int型变量,有如下程序段:

w=1;x=2;y=3;z=4

m=(w

w:

x;m=(m

m:

y;m=(m

m:

z;

则该程序段执行后,m的值是______。

A:

4

B:

3

C:

2

D:

1

答案:

D

第6题(1.0分)题号:

2723

有以下程序段

intm=0,n=0;charc='a';

scanf("%d%c%d",&m,&c,&n);

printf("%d,%c,%d\n",m,c,n);

若从键盘上输入:

10A10↙,则输出结果是______。

A:

10,A,10

B:

10,a,10

C:

10,a,0

D:

10,A,0

答案:

A

第7题(1.0分)题号:

2732

有以下程序

main()

{intx=102,y=012;

printf("%2d,%2d\n",x,y);

}

执行后输出结果是______。

A:

10,01

B:

02,12

C:

02,10

D:

102,10

答案:

D

第8题(1.0分)题号:

2710

以下程序的输出结果是______。

main()

{inta=4,b=5,c=0,d;

d=!

a&&!

b||!

c;

printf("%d\n",d)

}

A:

1

B:

-1

C:

0

D:

非0的数

答案:

A

第9题(1.0分)题号:

2798

C语言中用于结构化程序设计的三种基本结构是______.

A:

顺序结构、选择结构、循环结构

B:

if、switch、break

C:

for、while、do-while

D:

if、for、continue

答案:

A

第10题(1.0分)题号:

2802

下面有关for循环的正确描述是().

A:

for循环只能用于循环次数已经确定的情况

B:

for循环是先执行循环体语句,后判断表达式

C:

在for循环中,不能用break语句跳出循环体

D:

for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

答案:

D

第11题(1.0分)题号:

176

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

A:

该数组的长度

B:

该数组的元素个数

C:

该数组的首地址

D:

该数组中各元素的值

答案:

C

第12题(1.0分)题号:

676

以下只有在使用时才为该类型变量分配内存的存储类说明是()。

A:

auto和static

B:

auto和register

C:

register和static

D:

extern和register

答案:

B

第13题(1.0分)题号:

564

在一个C程序中()。

A:

main函数必须出现在所有函数之前

B:

main函数可以在任何地方出现

C:

main函数必须出现在所有函数之后

D:

main函数必须出现在固定位置

答案:

B

第14题(1.0分)题号:

642

在C语言中,一维数组的定义方式为:

类型说明符数组名()。

A:

[常量表达式]

B:

[整型表达式]

C:

[整型常量]或[整型表达式]

D:

[整型常量]

答案:

D

第15题(1.0分)题号:

644

以下对一维整型数组a的正确说明是()。

A:

inta(10);

B:

intn=10,a[n];

C:

intn;scanf("%d",&n);inta[n];

D:

#defineSIZE10(换行)inta[SIZE];

答案:

D

第16题(1.0分)题号:

649

若有说明:

inta[3][4]={0};则下面正确的叙述是()。

A:

只有元素a[0][0]可得到初值0

B:

此说明语句不正确

C:

数组a中各元素都可得到初值,但其值不一定为0

D:

数组a中每个元素均可得到初值0

答案:

D

第17题(1.0分)题号:

646

若有说明inta[3][4];则a数组元素的非法引用是()。

A:

a[0][2*1]

B:

a[1][3]

C:

a[4-2][0]

D:

a[0][4]

答案:

D

第18题(1.0分)题号:

165

下列定义数组的语句中正确的是()。

A:

#definesize10charstr1[size],str2[size+2];

B:

charstr[];

C:

intnum['10'];

D:

intn=5;inta[n][n+2];

答案:

A

第19题(1.0分)题号:

2916

当定义一个结构体变量时,系统分配给它的内存是______.

A:

各成员所需内存量的总和

B:

结构中第一个成员所需内存量

C:

结构中最后一个成员所需内存量

D:

成员中占内存量最大者所需的容量

答案:

A

第20题(1.0分)题号:

551

应用缓冲文件系统对文件进行读写操作,打开文件的函数名为()。

A:

open

B:

fopen

C:

close

D:

fclose

答案:

B

第21题(5.0分)题号:

2822

有以下程序

#include

voidmain()

{

ints=0,a=1,n;

scanf("%d",&n);

do

{

s+=1;

a=a-2;

}

while(a!

=n);

printf("%d\n",s);

}

若要使程序的输出值为2,则应该从键盘给n输入的值是().

A:

-1

B:

-3

C:

-5

D:

0

答案:

B

第22题(5.0分)题号:

2821

有以下程序

#include

voidmain()

{

inti=0,s=0;

do

{

if(i%2)

{i++;continue;}

i++;

s+=i;

}while(i<7);

printf("%d\n",s);

}

执行后输出的结果是().

A:

16

B:

12

C:

28

D:

21

答案:

A

第23题(5.0分)题号:

2820

有以下程序

#include

voidmain()

{

inti;

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

switch(i)

{case1:

printf("%d",i);

case2:

printf("%d",i);

default:

printf("%d",i);

}

}

执行后输出的结果是______.

A:

11122

B:

12

C:

12020

D:

120

答案:

A

第24题(5.0分)题号:

2838

以下程序中f函数的功能是将n个字符串,按由大到小的顺序进行排序。

#include

#include

voidf(charp[][10],intn)

{

chart[20];

inti,j;

for(i=0;i

for(j=i+1;j

if(strcmp(p[i],p[j])<0)

{

strcpy(t,p[i]);

strcpy(p[i],p[j]);

strcpy(p[j],t);

}

}

voidmain()

{

charp[][10]={"abc","aabdfg","abbd","dcdbe","cd"};

f(p,5);

printf("%d\n",strlen(p[0]));

}

A:

6

B:

4

C:

5

D:

3

答案:

C

第25题(5.0分)题号:

2755

有如下程序

#include

voidmain()

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=1.0/x;

elsey=1.0;

printf("%f\n",y);

}

该程序输出结果是______。

A:

0.000000

B:

0.250000

C:

0.500000

D:

1.000000

答案:

C

第26题(5.0分)题号:

2754

有如下程序

#include

voidmain()

{intx=1,a=0,b=0;

switch(x){

case0:

b++;

case1:

a++;

case2:

a++;b++;

}

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

}

该程序的输出结果是______。

A:

a=2,b=1

B:

a=1,b=1

C:

a=1,b=0

D:

a=2,b=2

答案:

A

二、程序填空共1题(共计10分)

第1题(10.0分)题号:

3

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

已定义一个含有30个元素的数组s,函数fun1的功能是按

顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序

每五个元素求一个平均值,并将该值存放在数组w中。

-------------------------------------------------------*/

floats[30],w[6];

fun1(floats[])

{

intk,i;

for(k=2,i=0;i<30;i++)

{

/***********SPACE***********/

【?

】;

k+=2;

}

}

fun2(floats[],floatw[])

{

floatsum=0.0;

intk,i;

for(k=0,i=0;i<30;i++)

{

sum+=s[i];

/***********SPACE***********/

【?

】;

{

w[k]=sum/5;

/***********SPACE***********/

【?

】;

k++;

}

}

}

main()

{

inti;

fun1(s);

/***********SPACE***********/

【?

】;

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

{

if(i%5==0)printf("\n");

printf("%8.2f",s[i]);

}

printf("\n");

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

printf("%8.2f",w[i]);

}

 

答案:

1).s[i]=k或s[i]=(i+1)*2

2).if((i+1)%5==0)或if((i+1)/5*5==i+1)

3).sum=0或sum=0.0

4).fun2(s,w)

 

三、程序改错共2题(共计20分)

第1题(10.0分)题号:

13

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

求1到10的阶乘的和。

------------------------------------------------------*/

main()

{

inti;

floatt,s=0;

floatfac(intn);

/**********FOUND**********/

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

/**********FOUND**********/

s=fac(i);

printf("%f\n",s);

}

floatfac(intn)

{

/**********FOUND**********/

inty=1;

inti;

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

y=y*i;

/**********FOUND**********/

return;

}

答案:

1).for(i=1;i<=10;i++)或for(i=1;10>=i;i++)或for(i=1;i<11;i++)或for(i=1;11>i;i++)

2).s=s+fac(i);或s+=fac(i);或s=fac(i)+s;

3).floaty=1.0;或floaty=1;

4).returny;或return(y);或return(y);

 

第2题(10.0分)题号:

414

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

一球从100米高度自由落下,每次落地后反跳回原高度的

一半;再落下,求它在第10次落地时,共经过多少米?

第10次反弹多高?

------------------------------------------------------*/

#include"stdio.h"

main()

{

/**********FOUND**********/

floatsn=100.0;hn=sn/2;

intn;

/**********FOUND**********/

for(n=2;n<10;n++)

{

sn=sn+2*hn;

/**********FOUND**********/

hn=hn%2;

}

printf("thetotalofroadis%f\n",sn);

printf("thetenthis%fmeter\n",hn);

}

答案:

1).floatsn=100.0,hn=sn/2;

2).for(n=2;n<=10;n++)或for(n=2;n<11;n++)

3).hn=hn/2;

 

四、程序设计共2题(共计20分)

第1题(10.0分)题号:

390

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

编写函数求表达式的和(n的值由主函数输入)。

1-1/2+1/3-1/4+......+1/m

例如:

当n=20时,表达式的值为0.668771。

------------------------------------------------*/

#include"stdio.h"

floatsum(intn)

{

/**********Program**********/

/**********End**********/

}

main()

{

intn;

scanf("%d",&n);

printf("sum=%f\n",sum(n));

yzj();

getch();

}

yzj()

{

FILE*IN,*OUT;

intm,n;

inti[10];

floato;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFileError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFileError");

}

for(n=0;n<5;n++)

fscanf(IN,"%d",&i[n]);

for(n=0;n<5;n++)

{

o=sum(i[n]);

fprintf(OUT,"%f\n",o);

}

fclose(IN);

fclose(OUT);

}

答案:

----------------------

floats=0;

inti,k=1;

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

{s=s+k*1.0/i;

k=-k;

}

return(s);

----------------------

第2题(10.0分)题号:

370

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

编写函数判断一个整数m的各位数字之和能否被7整除,

可以被7整除则返回1,否则返回0。

调用该函数找出

100~200之间满足条件的所有数。

------------------------------------------------*/

#include"stdio.h"

intsub(intm)

{

/**********Program**********/

/**********End**********/

}

main()

{

inti;

for(i=100;i<=200;i++)

if(sub(i)==1)

printf("%4d",i);

yzj();

getch();

}

yzj()

{

FILE*IN,*OUT;

intn;

inti[10];

into;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFileError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFileError");

}

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

{

fscanf(IN,"%d",&i[n]);

}

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

{

o=sub(i[n]);

fprintf(OUT,"%d\n",o);

}

fclose(IN);

fclose(OUT);

}

答案:

----------------------

intk,s=0;

do

{s=s+m%10;

m=m/10;

}while(m!

=0);

if(s%7==0)k=1;

elsek=0;

return(k);

----------------------

 

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

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1