C语言期末考试题8.docx

上传人:b****3 文档编号:3752353 上传时间:2022-11-25 格式:DOCX 页数:18 大小:18.63KB
下载 相关 举报
C语言期末考试题8.docx_第1页
第1页 / 共18页
C语言期末考试题8.docx_第2页
第2页 / 共18页
C语言期末考试题8.docx_第3页
第3页 / 共18页
C语言期末考试题8.docx_第4页
第4页 / 共18页
C语言期末考试题8.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言期末考试题8.docx

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

C语言期末考试题8.docx

C语言期末考试题8

试卷编号:

11208

所属语言:

C语言

试卷方案:

C语言期末考试

试卷总分:

100分

共有题型:

4种

 

一、单项选择共30题(共计60分)

第1题(2.0分)

若有定义:

inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A).

A:

2.500000

B:

2.750000

C:

3.500000

D:

0.000000

第2题(2.0分)

已有定义:

charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是(B).

A:

isupper(c)

B:

'A'<=c<='Z'

C:

'A'<=c&&c<='Z'

D:

c<=('z'–32)&&('a'–32)<=c

 

第3题(2.0分)

以下程序的功能是:

给r输入数据后,计算半径为r的圆面积s.程序在编译时出错.

#include

voidmain()

/*Beginning*/

{intr;floats;

scanf("%d",&r);

s=p*r*r;printf("s=%f\n",s);

}

出错的原因是(D).

A:

注释语句书写位置错误

B:

存放圆半径的变量r不应该定义为整型

C:

输出语句中格式描述符非法

D:

计算圆面积的赋值语句中使用了非法变量

第4题(2.0分)

"\\\″ABC\″\\″的长度是(B).

A:

11

B:

7

C:

5

D:

3

 

第5题(2.0分)

已知inti,a;,执行语句i=(a=2*3,a*5),a+6;后,变量i的值是(C).

A:

6

B:

12

C:

30

D:

36

 

第6题(2.0分)

有以下程序:

#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的值是(B).

A:

-1

B:

-3

C:

-5

D:

0

 

第7题(2.0分)

要求计算s=1+1/2+1/3+…+1/10,程序为:

#include

voidmain()

{intn;

floats;

s=1.0;

for(n=10;n>1;n––)s=s+1/n;

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

}

程序运行后输出结果错误,导致错误结果的程序行是(C).

A:

s=1.0;

B:

for(n=10;n>1;n––)

C:

s=s+1/n;

D:

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

 

第8题(2.0分)

有以下程序:

#include

voidmain()

{inti,j,m=55;

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

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

m=m%j;

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

}

程序的运行结果是(B)

A:

0

B:

1

C:

2

D:

3

第9题(2.0分)

有以下程序:

#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的值是(B).

A:

-1

B:

-3

C:

-5

D:

0

第10题(2.0分)

设变量已正确定义并赋值,以下正确的表达式是(C).

A:

x=y*5=x+z

B:

int(15.8%5)

C:

x=y+z+5,++y

D:

x=25%5.0

第11题(2.0分)

以下程序执行后,sum的值是(C).

#include

voidmain()

{inti,sum;

for(i=1;i<6;i++)sum+=i;

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

}

A:

15

B:

14

C:

不确定

D:

0

第12题(2.0分)

运行以下程序后,如果从键盘上输入china#〈回车〉,则输出结果是(D).

#include

voidmain()

{intv1=0,v2=0;

charch;

while((ch=getchar())!

='#')

switch(ch)

{case'a':

case'h':

case'o':

v2++;

default:

v1++;

}

printf("%d,%d\n",v1,v2);

}

A:

2,0

B:

5,0

C:

5,5

D:

5,2

第13题(2.0分)

有以下程序段:

intk=0;

while(k=1)k++;

while循环执行的次数是(A).

A:

无限次

B:

有语法错误,不能执行

C:

1次也不执行

D:

执行1次

 

第14题(2.0分)

执行以下程序后,输出的结果是D().

#include

voidmain()

{inty=10;

do{

y––;

}while(––y);

printf("%d\n",y––);

}

A:

-1

B:

1

C:

8

D:

0

第15题(2.0分)

以下能正确定义一维数组的选项是(B).

 

A:

intnum[];

B:

#defineN100intnum[N];

C:

intnum[0..100];

D:

intN=100;intnum[N];

 

第16题(2.0分)

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

#include

voidmain()

{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

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

for(j=0;j<=i;j++)s+=a[i][j];

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

}

A:

18

B:

19

C:

20

D:

21

第17题(2.0分)C

以下错误的定义语句是().

A:

intx[][3]={{0},{1},{1,2,3}};

B:

intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

C:

intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

D:

intx[][3]={1,2,3,4};

 

第18题(2.0分)

以下对一维数组a的正确定义是(D).

 

A:

inta(10)

B:

intn=10,a[n];

C:

intn;

scanf("%d",&n);

inta[n];

D:

#defineSIZE10

inta[SIZE]

 

第19题(2.0分)

有以下程序:

#include

voidmain()

{ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;

for(i=0;i<12;i++)c[s[i]]++;

for(i=1;i<5;i++)printf("%d",c[i]);

printf("\n");

}

程序的运行结果是(C).

A:

1234

B:

2344

C:

4332

D:

1123

 

第20题(2.0分)

有以下程序:

fun(intx,inty)

{

return(x+y);

}

main()

{

inta=1,b=2,c=3,sum;

sum=fun((a++,b++,a+b),c++);

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

}

执行后的输出结果是B

A:

6

B:

7

C:

8

D:

9

第21题(2.0分)

有以下程序:

voidfun(inta,intb,intc)

{

a=456;b=567;c=678;

}

main()

{

intx=10,y=20,z=30;

fun(x,y,z);

printf("%d,%d,%d",x,y,z);

}

运行后输出结果是B

 

A:

30,20,10

B:

10,20,30

C:

456,567,678

D:

678,567,456

第22题(2.0分)

有以下程序:

#include

inta=1;

intf(intc)

{

staticinta=2;

c=c+1;

return(a++)+c;

}

main()

{

intk=0,i;

for(i=0;i<2;i++){inta=3;k+=f(a);}

k+=a;

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

}

程序运行后的输出结果是A

A:

14

B:

15

C:

16

D:

17

第23题(2.0分)

有以下程序:

intfun(intx[],intn)

{staticintsum=0,i;

for(i=0;i

returnsum;

}

main()

{inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;

s=fun(a,5)+fun(b,4);

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

}

A:

45

B:

50

C:

60

D:

55

第24题(2.0分)

若有以下定义和语句:

ints[4][5],(*ps)[5];

ps=s;

则对s数组元素的正确引用形式是(C).

A:

ps+1

B:

*(ps+3)

C:

ps[0][2]

D:

*(ps+1)+3

第25题(2.0分)

有以下程序:

#include

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t–'a'+'A';

s++;

}

}

voidmain()

{charstr1[100]="abcddfefdbd",c='d';

ss(str1,c);

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

}

程序运行后的输出结果是(B).

 

A:

ABCDDEFEDBD

B:

abcDDfefDbD

C:

abcAAfefAbA

D:

Abcddfefdbd

第26题(2.0分)

以下程序运行后,输出结果是(C).

#include

#include

voidfun(char*w,intn)

{chart,*s1,*s2;

s1=w;s2=w+n–1;

while(s1

{t=*s1++;

*s1=*s2––;

*s2=t;

}

}

voidmain()

{char*p;

p="1234567";

fun(p,strlen(p));

puts(p);

}

A:

1234567

B:

7654321

C:

1711717

D:

7177171

第27题(2.0分)

语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(C).

A:

a\bre\'hi\'y\\\bou

B:

a\bre\'hi\'y\bou

C:

re'hi'you

D:

abre'hi'y\bou

 

第28题(2.0分)

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

#include"stdio.h"

#defineM(x,y)x%y

main()

{inta,m=12,n=100;

a=M(n,m);

printf("%d\n",a––);}

A:

2

B:

3

C:

4

D:

5

第29题(2.0分)

不合法的main()函数命令行参数表示形式是(C).

A:

main(inta,char*c[])

B:

main(intarc,char**arv)

C:

main(intargc,char*argv)

D:

main(intargv,char*argc[])

第30题(2.0分)

若有说明:

inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是(B).

A:

i=*p;

B:

*p=*&j;

C:

i=&j;

D:

i=**p;

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

第1题(10.0分)

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

【程序填空】

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

功能:

输入3个数a,b,c,按从小到大的顺序输出。

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

main()

{

voidswap(int*p1,int*p2);

intn1,n2,n3;

int*pointer1,*pointer2,*pointer3;

printf("pleaseinput3number:

n1,n2,n3:

");

scanf("%d,%d,%d",&n1,&n2,&n3);

pointer1=&n1;

pointer2=&n2;

pointer3=&n3;

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

if(【?

】)swap(pointer1,pointer2);

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

if(【?

】)swap(pointer1,pointer3);

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

if(【?

】)swap(pointer2,pointer3);

printf("thesortednumbersare:

%d,%d,%d\n",n1,n2,n3);

}

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

voidswap(【?

】)

int*p1,*p2;

{

intp;

p=*p1;*p1=*p2;*p2=p;

}

三、程序改错共1题(共计10分)

第1题(10.0分)

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

【程序改错】

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

功能:

求出两个非零正整数的最大公约数,并作为函数值返回。

例如:

若给num1和num2分别输入49和21,则输出的最大公约数为7。

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

intfun(inta,intb)

{

intr,t;

if(a

{

t=a;

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

b=a;

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

a=t;

}

r=a%b;

while(r!

=0)

{

a=b;

b=r;

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

r=a/b;

}

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

returna;

}

main()

{

intnum1,num2,a;

scanf("%d%d",&num1,&num2);

a=fun(num1,num2);

printf("themaximumcommondivisoris%d\n\n",a);

}

 

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

第1题(20.0分)

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

【程序设计】

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

功能:

编写函数判断一个整数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);

}

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

当前位置:首页 > 工程科技 > 能源化工

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

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