C程序设计基础期中考试试题详解Word文件下载.docx

上传人:b****4 文档编号:18022471 上传时间:2022-12-12 格式:DOCX 页数:11 大小:22.30KB
下载 相关 举报
C程序设计基础期中考试试题详解Word文件下载.docx_第1页
第1页 / 共11页
C程序设计基础期中考试试题详解Word文件下载.docx_第2页
第2页 / 共11页
C程序设计基础期中考试试题详解Word文件下载.docx_第3页
第3页 / 共11页
C程序设计基础期中考试试题详解Word文件下载.docx_第4页
第4页 / 共11页
C程序设计基础期中考试试题详解Word文件下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C程序设计基础期中考试试题详解Word文件下载.docx

《C程序设计基础期中考试试题详解Word文件下载.docx》由会员分享,可在线阅读,更多相关《C程序设计基础期中考试试题详解Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。

C程序设计基础期中考试试题详解Word文件下载.docx

}

printf(“%d,%d,%d”,a,b,c);

A.1,2,0

B.2,1,0

C.1,2,1

D.2,1,1

a=1,b=2,c=2

(1)表达式a<

c→1<

2<

2→1<

2→1条件成立,则执行循环体,结果为:

a=2,b=1,c=1

(2)表达式a<

c→2<

1<

1→0<

1→1条件成立,则执行循环体,结果为:

a=1,b=2,c=0

(3)表达式a<

0→1<

0→0条件不成立,循环结束。

6.在下图中,阴影部分区域可用表达式_______来表示。

////////

                            X

abc

A.(x<

=a)&

&

(x>

=b)&

(x<

=c)

B.(x<

=a)||(b<

=x<

C.(x<

=a)||(x>

=c)

D.(x<

(b<

=a)||((x>

=b)&

(x<

=c))→(x<

=a)||(x>

=c)

7.下列程序段输出结果为_____。

intx=-3,y=2;

if(x>

y);

x=-x;

if(x<

y)

y=-y;

printf("

x=%d,y=%d\n"

x,y);

A.x=3,y=-2

B.x=3,y=2

C.x=-3,y=2

D.x=-3,y=-2

【解答】x=3,y=2;

请注意:

if(x>

8.对于循环while(!

e)语句,!

e等价于_____。

A.e==0

B.e!

=0

C.e==1;

D.e!

=1

!

e

e==0

e!

e==1

e为0

1

e为非0

0/1

9.循环for(i=0,j=5;

++i!

=--j;

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

将执行_____。

A.6次

B.3次

C.0次

D.无限次

(1)i=0,j=5:

++i→1,--j→4,i=1,j=4,1!

=4成立;

打印;

i=1,j=4;

(2)i=1,j=4:

++I→2,--j→3,i=2,j=3,2!

=3成立;

i=2,j=3;

(3)i=2,j=3:

++I→3,--j→2,I=3,j=2,3!

=2成立;

i=3,j=2;

(4)……

10.下列程序段执行后s值为_____。

inti=5,s=0;

doif(i%2)continue;

elses+=i;

while(--i);

A.15

B.9

C.6

D.以上均不是

(1)I=5,s=0:

i%2→5%2→1成立:

continue;

--i→4,i=4;

(2)I=4,s=0:

i%2→4%2→0不成立:

s=0+4=4;

--i→3,i=3

(3)I=3,s=4:

i%2→3%2→1成立:

--i→2,i=2

(4)I=2,s=4:

i%2→2%2→0不成立:

s=4+2=6;

--i→1,i=1

(5)I=1,s=6:

i%2→1%2→1成立:

--i→0

试题二、填空题(每小题2分,共20分)

1.表达式1+4/5+15<

7+4%5+(8,10)的值为_____。

1+(4/5)+15<

7+4%5+(8,10)

→1+0+15<

7+4%5+(8,10)

→1+15<

→16<

7+4+(8,10)

11+(8,10)

11+10

21

→1

2.表达式!

5的值为_____。

5→!

(!

5)→!

0→1

3.表达式~(10<

<

1)&

4的值为______。

10:

00001010

10<

1:

00010100

~(10<

1):

11101011

4:

00000100

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

00000000即0

4.假设有定义:

intx=10;

则表达式0<

=9的值为_____。

0<

=9→(0<

=x)<

=10)<

=9→1<

=9→1

5.下列for循环语句将输出:

012012012.

for(i=1;

i<

=9;

i++)printf("

%2d"

_______);

【解答】(i-1)%3

6.对于定义:

intm=5,y=2;

当计算表达式y+=y-=m*=y后,y的值为_____。

y+=y-=m*=y⇔y+=(y-=(m*=y))

先计算m*=y:

由于m=5,y=2,所以:

m=m*y=5*2→10

再计算y-=10:

由于y=2,所以:

y=y-10=2-10→-8

最后计算y+=-8:

由于y=-8,所以:

y=y+(-8)=(-8)+(-8)→-16

7.对于charc;

若已知其值为小写字母,则将其转换为相应大写字母的表达式为_____。

c-‘a’+’A’

8.下列语句的输出结果为_____。

printf("

%d#%x#"

027,27);

23#1b#

9.已知字符’a’的ASCII码为97,则下列语句的输出结果为_____。

%c#%d#"

98,’c’);

b#99#

10.下列程序段将输出_____。

unsignedcharx=255,y=’\1’;

switch(!

x){

case0:

printf("

*0*#"

);

break;

case1:

switch(y){

case0:

*1*#"

case1:

*2*#"

}

default:

*3*#"

}

*2*#*3*#

试题三、程序阅读题(每小题6分,共30分)

1.下列程序将输出_____。

#include<

stdio.h>

voidsx,inty)

{

intt;

t=x;

x=y;

y=t;

return;

voidmain(void)

inta=3,b=2;

swap(a,b);

%d#%d#"

a,b);

3#2#

注:

尽管在函数swap()里,形参x和y的值发生了交换,但根据函数参数的传递原则——“实参向形参单向传值(即x向a赋值,y向b赋值),形参的改变不影响实参”,实参变量a和b的值未发生交换!

2.下列程序将输出_____。

#include<

ints;

intf(intm)

staticintk=0;

for(;

k<

=m;

k++)s++;

returns;

voidmain(void)

{

ints=1;

s=f

(2)+f

(2);

s,f(20));

return;

【解答】输出结果为:

6#21#

(1)全局变量s的初始值为0;

(2)在f函数中,s是全局变量有效,而在main函数中,s是局部变量有效;

(3)在f函数中,k是静态变量,每次函数f调用结束后,其内存单元和值仍然保留。

3.若输入:

1273<

回车>

,以下程序的输出结果是_______。

#include<

{

intn,m;

scanf(“%d”,&

n);

m=0;

while(n>

0){

m=m*10+n%10;

n/=10;

printf(“%d”,m);

【解答】输出结果是:

3721

4.若输入-6+15*3/5=<

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

voidmain()

{

intm=0,sum=0;

charc,oldc='

+'

;

do{

c=getchar();

if(c<

='

9'

c>

0'

m=10*m+c-'

else{

if(oldc=='

sum+=m;

else

sum-=m;

m=0;

oldc=c;

%d#"

sum);

}while(c!

【解答】0#-6#9#6#1#

程序的意思:

对输入的字符串扫描,若碰到数字字符序列,求出相应的整数值m;

若碰到其它字符——若字符是+号,则将m值加入到sum中去;

若字符不是+号,则将从sum中减去m值。

5.若输入:

howareyou?

<

intword;

charch;

word=0;

while((ch=getchar())!

?

'

){

if(ch=='

'

)word=0;

elseif(word==0){

word=1;

if(ch<

z'

ch>

a'

)ch=ch-'

A'

putchar(ch);

}

【解答】HowAreYou

该程序思路:

碰到一个新单词,则将该单词首字母从小写改为大写,其它字符原样输出。

提示:

可借鉴统计单词个数程序的算法。

试题四、程序填空题(每空2分,共30分)

1.输入正整数n,计算s=1/1!

+1/2!

+1/3!

+……+1/n!

的值。

voidmain(void)

intj,k,n;

doublef,s;

scanf("

%d"

&

(1);

s=0.0

for(k=1;

=n;

k++){

(2);

f=1.0

for(j=1;

(3);

j++)j<

=k

(4);

f=f*j

s=s+1.0/f;

sum=%f\n"

(5));

s

return;

2.输入一个整数,统计该数的位数。

如:

输入12534,输出5;

输入-99,输出2;

输入0,输出1。

intcount=0,number;

scanf(“%d”,(6));

&

number

if(number<

0)number=(7);

-number

do{

number=(8);

number/10

count++;

}while((9));

number!

printf(“%d\n”,count);

3.下面程序验证“哥德巴赫猜想”:

寻找3到1000间满足“偶数=素数1+素数2”(如10=3+7)的所有偶数。

素数指只能被1和自身整除的正整数,如2,3,17等;

1不是素数。

voidmain(void)

{

inti,j;

(10);

/*prime()函数声明*/intprime(intn)

for(i=3;

=500;

i++)

for(j=2;

;

j++)

if((11)){prime(j)==1&

prime(2*i-j)==1

printf(“%d=%d+%d\n”,2*i,j,2*i-j);

/*若2*i为两个素数之和*/

break;

(12);

return

intprime(intn)/*判断n是否为素数:

是返回1,不是返回0*/

inti;

if(n==1)

return(13);

0

for(i=2;

=n/2;

if((14))n%i==0

return0;

return(15);

1

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

当前位置:首页 > 初中教育 > 其它课程

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

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