C语言历年题目一Word文档下载推荐.docx

上传人:b****5 文档编号:18613995 上传时间:2022-12-29 格式:DOCX 页数:13 大小:23.92KB
下载 相关 举报
C语言历年题目一Word文档下载推荐.docx_第1页
第1页 / 共13页
C语言历年题目一Word文档下载推荐.docx_第2页
第2页 / 共13页
C语言历年题目一Word文档下载推荐.docx_第3页
第3页 / 共13页
C语言历年题目一Word文档下载推荐.docx_第4页
第4页 / 共13页
C语言历年题目一Word文档下载推荐.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C语言历年题目一Word文档下载推荐.docx

《C语言历年题目一Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言历年题目一Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。

C语言历年题目一Word文档下载推荐.docx

=a<

=10B)1<

a<

10

C)a>

=1,a<

=10D)1<

=a&

&

=10

11.执行下列程序段,x的值为5的程序段是D。

A)m=5;

B)m=5;

C)m=5;

D)m=5;

m++;

++m;

x=++m;

x=m++;

x=m;

x=m;

12.若定义inta=3,b=4,c=5;

,则表达式a||b+c&

b==c的值是B。

A)0B)1C)2D)3

13.与y=(x>

0?

1:

0);

等价的是C。

A)if(x>

0)y=1;

B)if(x)y=1;

elsey=0;

C)y=1;

if(x<

=0)y=0;

D)if(x<

=0)y=1;

14.在for(表达式1;

表达式2;

表达式3)循环中,B常用于表示循环条件判断。

A)表达式1B)表达式2C)表达式3D)都不是

15.下列程序段表示的数学关系是A。

y=-1;

if(x!

=0)

if(x>

0)y=1;

elsey=0;

A)-1x=0B)1x=0C)0x>

0D)-1x<

2

y=1x>

0y=-1x>

0y=1x<

0y=0x=2

0x<

00x<

0-1x=01x>

 

16.inta[6]={1,2,3},则a[0]到a[5]各元素的值是A。

A)1,2,3,0,0,0B)1,2,3,3,3,3

C)1,2,3,1,2,3D)1,2,3,a[3]到a[5]不确定

17.下列程序段执行后,z的结果是B。

#definep(x)x*x

intx=5,y=3,z;

z=p(x+y);

A)64B)23C)46D)32

18.有以下定义,且满足0<

i<

5,则D是对数组元素地址的正确表示。

inta[]={1,2,3,4,5},*p,i;

p=a;

A)&

(a+i)B)a++C)&

pD)&

p[i]

19.下列程序段执行后,i的值是A。

inti=100,*p;

p=&

i;

i=*p+10;

A)110B)100C)120D)90

20.在数组名作函数实参时,传递给函数形参的是A。

A)数组首地址B)数组全部元素C)数组第1个元素D)数组最后一个元素

21.下列的函数原型声明,D是正确的。

A)voidf(intx;

inty);

B)voidf(x,y);

C)voidf(intx,y);

D)voidf(int,int);

22.若inti=10;

执行下列程序后,变量i的正确结果是_D_____。

switch(i)

{case9:

i+=1;

case10:

case11:

default:

}

A)10B)11C)12D)13

23.以下判断两个字符串相等的正确方法是____D_____。

A)if(str1=str2)B)if(str1==str2)

C)if(strcpy(str1,str2)=0)D)if(strcmp(str1,str2)==0)

24.C语言对嵌套if语句的规定是:

else总是_D_____配对。

A)与之前最近的ifB)与第一个if

C)与缩进位置相同的ifD)与其之前最近的且尚为配对的if

25.在下面的条件语句中(其中s1和s2表示C语言的语句),只有一个在功能上与其它三个语句不等价,它是___D___。

A)if(a)s1;

elses2;

B)if(a==0)s2;

elses1;

C)if(a!

=0)s1;

D)if(a==0)s1;

26.以下错误的描述是__B____。

A)break语句不能用于循环语句和switch语句外的任何其它语句。

B)在switch语句中使用break语句或continue语句的作用相同。

C)在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环。

D)在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环。

27.以下四个关于C语言的结论中,只有一个是错误的,它是___D___。

A)可以用while语句实现的循环一定可以用for语句实现

B)可以用for语句实现的循环一定可以用while语句实现

C)可以用do-while语句实现的循环一定可以用while语句实现

D)do-while语句与while语句的区别仅是关键字“while”出现的位置不同

28.以下不是死循环的语句是___D___。

A)for(;

;

x+=i);

B)while

(1)x++;

C)for(i=10;

i--)sum+=i;

D)for(;

(c=getchar())!

='

\n'

)printf("

%c"

c);

29.定义inti=1;

,执行语句while(i++<

5);

后,i的值为___D___。

A)3B)4C)5D)6

30.下面程序段中,for语句的循环次数是__B____。

sum=0;

for(i=0;

100;

i+=2)sum+=i;

A)100B)50C)49D)99

31.在C语言中,引用数组元素时,其数组下标的数据类型允许是____C_____。

A)整型常量B)整型表达式

C)整形常量或整形表达式D)任何类型的表达式

32.若有定义:

inta[10],则对数组a元素的正确引用是___D_____。

A)a[10B)a[3.5]C)a(5)D)a[10-10]

33.以下能对二维数组a进行正确初始化的语句是____A____。

A)inta[2][]={{1,0,1},{5,2,3}};

B)inta[][3]={{1,2,3},{4,5,6}};

C)inta[2][4]={{1,2,3},{4,5},{6}};

D)inta[][3]={{1,0,1},{},{1,1}};

34.若二维数组a有m列,则在a[i][j]之前的元素个数为___B___。

A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+1

35.以下说法中正确的是__C__。

A)C语言程序总是从第一个函数开始执行

B)在C语言程序中,要调用的函数必须在main()函数中定义

C)C语言程序总是从main()函数开始执行

D)C语言程序中的main()函数必须放在程序的开始部分

36.下列叙述中正确的是__A___。

A)函数定义不能嵌套,函数调用能嵌套B)函数定义和函数调用都不能嵌套

C)函数定义能嵌套,函数调用不能嵌套D)函数定义与函数调用都能嵌套

37.以下说法中正确的是__C___。

A、#define和printf都是C语句B、#define是C语句,而printf不是

C、printf是C语句,#define不是D、#define和printf都不是C语句

38.以下关于函数叙述中,正确的是__D___。

A)在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值

B)在函数体中至少必须有一个return语句

C)在函数体中可以定义另一个函数

D)在函数体中可以调用函数自身

39.在C语言中,若对函数类型未加显式说明,则函数的隐含类型是__C____。

A)voidB)doubleC)intD)char

40.下面不正确的描述为___D___。

A)调用函数时,实参可以是表达式

B)调用函数时,实参与形参可以共用内存单元

C)调用函数时,将为形参分配内存单元

D)调用函数时,实参与形参的类型必须完全相同

二、填空题(共10分每空1分)

答案必须填在答题卡的填空题部分,否则不得分。

1.函数由主要由___函数声明_______、____函数体_____组成。

2.结构化程序设计中的三种基本结构是顺序结构、_选择结构____、_循环结构

3.C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为______________。

4.字符串是以__________为结束标志的一维字符数组。

5.定义inta[]={1,2,3,4,5,6},*p=a;

表达式(*++p)++的值是____________。

6.若x=5,y=10,则x>

y和x<

=y的逻辑值分别为0和_______。

7.C语言中,数组是一种重要的数据结构,它的下标总是从_______开始。

8.若有定义FILE*fp;

,要求以二进制读写方式(rb+)打开文件list,正确打开文件list的语句是。

三、程序运行题(共20分每题4分)

答案必须填在答题卡的程序运行题部分,否则不得分。

1.下面程序的运行的结果是。

#include<

stdio.h>

voidmain()

{

inti,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf(“%d,%d,%d,%d”,i,j,m,n);

2.下面程序段执行后,sum的值为。

intsum=0,i;

for(i=1;

=10;

i++)

if(i%5==0)break;

elsesum+=i;

}

3.下面程序运行的结果是:

{ints=0,k;

for(k=7;

k>

=4;

k--)

{switch(k)

{case1:

case2:

case3:

s++;

break;

case4:

case5:

case6:

s+=2;

case7:

case0:

s+=3;

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

4.程序清单如下:

{intsum=0,number,i=1,finished=0;

while(i<

=8&

!

finished)

{scanf(“%d”,&

number);

if(number>

0)sum+=number;

elseif(number==0)finished=1;

i++;

printf(“sum=%d,number=%d”,sum,number);

若运行该程序,并输入数据为:

56–37–40,则结果为。

5.下面程序运行的结果是:

intmax(int,int);

inta=3,b=5,c=100;

{ints=0;

s+=max(max(a,b),c);

intmax(intx,inty)

{inta=15,b=20,max;

max=(a>

b)?

a:

b;

return(max);

四、完善程序题(共20分每空2分)

每空必须且只能填写一个语句或一个表达式,答案必须填在答题卡的完善程序题部分,否则不得分。

1.打印输出100~200间的所有素数,要求每行输出10个素数。

其中判定m是否为素数的方法:

用2到m-1范围内的各整数去除m,若都除不尽,则m是素数。

程序清单如下:

math.h>

{intm,i,n=0;

for(m=100;

m<

=200;

m++)

for(i=2;

=m-1;

if(

(1))break;

if(i>

=m){printf(“%d”,m);

(2);

if(n%10==0)(3);

printf(“\n”);

2.下列程序的功能是:

从键盘输入一行字符,统计其中单词个数,单词之间用空格分隔开。

{charstring[81];

inti,num=0,word=0;

charc;

gets(

(1));

(c=string[i])

(2)‘\0’;

if(c==‘’)word=0;

elseif((3))

{word=1;

(4);

printf(“Thereare%dwordsintheline.\n”,num);

3.下列程序用于输出下面的图形。

要求:

图形第一行的第一个字符输出在第40列且字符0之间以一个空格隔开。

00000

inti,j;

chara[5]={‘0’,‘0’,‘0’,‘0’,‘0’},space=‘’;

=

(1);

{

for(j=1;

j<

=

(2);

j++)printf(“%c”,space);

for(j=0;

5;

j++)printf(“%c%c”,a[j],space);

(3);

五、编程题(共10分第1题4分,第2题6分)

答案必须填在答题卡的编程题部分,否则不得分。

1.编程序,从键盘输入三个整数,求出其中的最大数和最小数(4分)。

2.用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到最后一项的绝对值小于10-6为止(6分)。

参考答案

1

3

4

5

6

7

8

9

D

C

B

A

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

二、填空题(共10分,每空1分)

1.函数声明、函数体(答案不要求有顺序)

2.选择结构、循环结构(答案不要求有顺序)

3.字母

4.‘\0’

5.3

6.1

7.0

8.fp=fopen(“list”,“rb+”);

1.9,11,9,102.10

3.s=94.sum=18,number=05.s=20

四、完善程序题(共20分,每空2分)

1.

(1)m%i==0

(2)n++(3)printf(“”\n)

2.

(1)string

(2)!

=(3)word==0(4)num++

3.

(1)5

(2)38+i(3)printf(“\n”)

五、编程序(共10分第1题4分,第2题6分)

第1题:

程序清单

#include<

voidmain()

{

inta,b,c,max,min;

printf(“Pleaseinputthreenumbers:

\n”);

scanf(“%d,%d,%d”,&

a,&

b,&

c);

max=a;

min=a;

if(b>

max)max=b;

if(b<

min)min=b;

if(c>

max)max=c;

if(c<

min)min=c;

printf(“Max=%d,Min=%d\n”,max,min);

第2题:

#include<

main()

ints;

floatn,t,Pi;

t=1;

Pi=0;

n=1.0;

S=1;

while((fabs(t))>

1e-6)

{Pi=Pi+t;

n=n+2;

s=-S;

t=S/n;

Pi=Pi*4;

printf("

Pi=%10.6f\n"

,Pi);

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

当前位置:首页 > 经管营销 > 生产经营管理

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

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