计算机语言BC语言春季学期B卷及参考答案Word格式文档下载.docx
- 文档编号:4524562
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:27
- 大小:23.29KB
计算机语言BC语言春季学期B卷及参考答案Word格式文档下载.docx
《计算机语言BC语言春季学期B卷及参考答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机语言BC语言春季学期B卷及参考答案Word格式文档下载.docx(27页珍藏版)》请在冰点文库上搜索。
11.有如下程序
{intn=9;
while(n>
6)
{n--;
n);
}
该程序的输出结果是_____________。
[A]987[B]876[C]8765[D]9876
12.有如下程序
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
case1:
a++;
case2:
b++;
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
13.有如下程序
{floatx=2.0,y;
if(x<
0.0)y=0.0;
elseif(x<
10.0)y=1.0/x;
elsey=1.0;
%f\n"
y);
[A]0.[B]0.[C]0.[D]1.
14.有如下程序
intadd(inta,intb)
{return(a+b);
{intx=3,y=6,z=9,r;
r=add(add(x,y),z);
%d\n"
r);
[A]15 [B]16 [C]17 [D]18
15.有如下程序段
int*p,a=13,b=2;
p=&
a;
a=*p+b;
执行该程序段后,a的值是_____________。
[A]16 [B]15 [C]14 [D]编译出错
16.有如下程序
longfib(intn)
{if(n<
2)return
(1);
elsereturn(fib(n-1)+fib(n-2));
{printf("
%ld\n"
fib(3));
}
[A]2 [B]3 [C]4 [D]6
17.有如下程序
#defineN2
#defineMN+1
#defineNUM2*M+1
{
inti;
for(i=1;
i<
=NUM;
i++)printf("
i);
该程序中的for循环执行的次数是_____________。
[A]5 [B]6 [C]7 [D]8
18.有如下程序段
inta=14,b=15,x;
charc='
A'
;
x=(a&
b)&
(c<
'
B'
);
执行该程序段后,x的值为_____________。
[A]true [B]false [C]0 [D]1
19.若有如下说明
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是_____________。
[A]*p+9 [B]*(p+8) [C]*p+=9 [D]p+8
20.有如下程序
{intn[5]={3,3,3},i,k=2;
for(i=0;
k;
i++)n[i]=n[i]+1;
n[k]);
[A]不确定的值 [B]5 [C]4 [D]3
21.若有定义:
intt[3][2];
能正确表示t数组元素地址的表达式是_________。
[A]&
t[3][2] [B]t[3] [C]t[1] [D]*t[2]
22.有如下程序
{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;
3;
i++)
for(j=0;
j<
=i;
j++)s+=a[i][j];
,s);
[A]18 [B]19 [C]20 [D]21
23.有如下定义
structperson{charname[9];
intage;
};
structpersonclass[10]={"
Zhao"
17,"
Qian"
19,"
Sun"
18,"
Li"
16,};
根据上述定义,能输出字母S的语句是_____________。
[A]printf("
%c\n"
class[3].name);
[B]printf("
class[3].name[1]);
[C]printf("
class[2].name[1]);
[D]printf("
class[2].name[0]);
24.有如下程序
{inta=2,b=-1,c=2;
if(a<
b)
if(b<
0)c=0;
elsec++;
c);
[A]0 [B]1 [C]2 [D]3
25.有如下程序
{inti,sum;
=3;
sum++)sum+=i;
sum);
[A]6 [B]3 [C]死循环 [D]0
26.若x、y是int型变量,则执行以下程序段后的x,y值是_____________。
for(y=1,x=1;
y<
=50;
y++)
{if(x>
=10)break;
if(x%2==1)
{x+=5;
continue;
}
x-=3;
}
[A]10,6[B]6,4[C]7,8[D]10,2
27.能实现求7!
阶乘运算的程序段是。
[A]for(t=1,i=1;
=7;
i++)[B]for(t=1,i=1;
7;
t=t*i;
t=t*i;
[C]for(t=0,i=1;
i++)[D]for(t=0,i=1;
28.有如下程序
{chars[]="
ABCD"
*p;
for(p=s+1;
p<
s+4;
p++)printf("
%s\n"
p);
[A]ABCD [B]A [C]B [D]BCD
BCD B C CD
CD C D D
D D
29.若有如下说明
intw=1,x=2,y=3,z=4;
则表达式w>
x?
w:
z>
y?
z:
x的值是_____________。
[A]4[B]3[C]2[D]1
30.下列程序段的输出是_____________。
int*p,**p1,a=100;
p=&
p1=&
p;
printf("
**p1);
[A]a的地址[B]a的值
[C]p的地址[D]p1的地址
二、阅读程序,写出运行结果(每题4分,共20分)
1.#include<
stdio.h>
main()
{
inti,j,k;
i=12;
j=20;
k=i+j;
k=i+j=%d\n"
k);
运行结果:
2.#include<
main()
{floatx,y;
x=-12.34;
if(x>
0)y=1;
if(x=0)y=0;
if(x<
0)y=-1;
x=%f\ny=%f"
x,y);
3.#include<
intfun(intx)
{intp;
if(x==0||x==1)return(3);
p=x*fun(x-2);
returnp;
main()
fun(7));
4.#include<
char*p[]={"
POOL"
"
opk"
he"
SP"
inti;
for(i=3;
i>
=0;
i--)printf("
%c"
*p[i]);
\n"
5.#include<
inty=5;
voidsub(intx)
{inty=1;
y+=x++;
sub:
y=%d\n"
{
intx=3;
sub(x);
main:
三、填空题,将答案写在答题纸上(每空4分,共40分)
1.以下函数返回a所指数组中最小值所在的下标值。
intfun(int*a,intn)
inti,p;
n;
if(a[i]<
a[p]);
return(p);
2.以下函数把b字符串连到a字符串的后面,并返回a中新字符串的长度。
intstrcen(chara[],charb[])
{intnum=0,n=0;
while(*(a+num)!
=)
num++;
while(b[n])
{*(a+num)=b[n];
;
returnnum;
3.当前磁盘的当前目录下有名为“lut2006”的文本文件,下面的程序是从文件中读出其中的字符,并统计文件中字符的个数,同时还要求统计出字母’b’或‘B’出现的个数。
#include<
{charch;
intnum=0,cg=0;
if((fp=fopen())==NULL)
exit
(1);
else
while((ch=fgetc(fp))!
=EOF)
num++;
if()cg++;
num=%d\tcg=%d\n"
num,cg);
4.请完成程序填空,使之能在运行后输出以下图形。
*
***
*****
*******
#include<
{inti,j,k;
for(i=0;
{for(j=0;
=2-i;
j++);
for(k=0;
k<
=2*i;
k++)printf("
'
*'
{for(j=0;
=i;
j++)printf("
"
=;
参考答案
一、选择题(1-10每题1分,11-30题每题2分,共40分)
1.B
2.A
3.C
4.D
5.D
6.A
7.A
8.A
9.C
10.B
11.B
12.A
13.C
14.D
15.B
16.B
17.B
18.D
19B
20.D
21.C
22.A
23.D
24.C
25.C
26.A
27.A
28.D
29.A
30.B
二、阅读程序,写出其运行结果(每题4分,共20分)
1.k=i+j=32
2.x=0.
y=0.
3.315
4.ShoP
5.sub:
y=4
y=8
三、填空题(每空4分,共40分)
1.p=0;
2.p=i
3.'
\0'
或0
4.n++或++n或n=n+1或n+=1
5.FILE*fp;
6.”lut2006”,”r”
7.ch==’b’||ch==’B’
8.printf("
)
9.4-2*i
10.printf("
31.在while(x)语句中的x与下面条件表达式等价的是【】。
[A]x==0[B]x==1[C]x!
=1[D]x!
=0
32.以下不正确的C语言标识符是【】。
[A]ABC[B]abc[C]ab.c[D]a_bc
33.下面的程序【】。
[A]输出的是1[B]输出的是1和-2[C]输出的是3和0[D]是死循环
main()
{intx=3;
do
{
printf("
x=x-2);
}while(!
(--x));
34.下面程序的输出是【】。
[A]17[B]18[C]23[D]24
{
intx=023;
--x);
35.若执行下面的程序时从键盘上输入5,则输出是【】。
[A]7[B]6[C]5[D]4
intx;
scanf("
&
if(x++>
5)
x);
else
11.下面程序的输出是【】。
{
intx=2;
while(x--);
x);
12.下面程序的输出是【】。
intarr[10],i,k=0;
for(i=0;
i<
10;
i++)
arr[i]=i;
for(i=1;
4;
k=k+arr[i];
k);
13.下面程序的输出是【】。
inta=4,b=6;
int*pa=&
a,*pb=&
b;
pb=pa;
*pb);
14.有以下语句段
"
【】"
n1,n2);
要求按以下格式输出和的值,每个输出行从第一列开始,请填空。
15.有以下程序
intt=1,i=5;
for(;
i--)
t*=t*i;
t);
执行后输出结果是【】。
三、写出下列程序的运行结果(每小题4分,共20分)
1.
inti=16,j,x=6;
j=i+1;
x=x*i;
j,x);
运行结果是:
2.
inta,b,c,d;
a=c=0;
b=1;
d=20;
if(a)d=d-10;
elseif(!
if(!
c)d=25;
elsed=15;
d=%d\n"
d);
3.
inti=10;
switch(i)
case9:
i+=1;
case10:
case11:
default:
4.
inta[4]={1,2,3,4},i,j,s=0;
j=1;
for(i=3;
i--)
{
s=s+a[i]*j;
j=j*10;
}
printf("
s=%d\n"
s);
5.
inti,x;
x=2;
=17;
i=i+5);
x=x*2;
x=%d\n"
i=%d,x=%d\n"
i,x);
四、程序填空题(每空2分,共20分)
阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。
1.已知能被4整除而不能被100整除的年份或者能被400整除的年份是闰年,则判断某一年是否是闰年的程序如下:
intyear,leap;
scanf("
year);
if()
leap=1;
elseleap=0;
if()printf("
是闰年"
elseprintf("
不是闰年"
2.将100至200间不能被3整除的数输出。
intn;
for(n=100;
n<
=200;
n++)
if(n%3==0);
3.判断m是否是素数。
#include<
math.h>
intm,i,k;
scanf("
m);
k=sqrt(m);
for(i=2;
=k;
if(m%i==0);
if(i>
=k+1)printf("
%disaprime!
m);
elseprintf("
%disnotaprime!
4.求m的阶乘。
longfact(intt)
longs=;
for(i=1;
=t;
s=s*i;
;
intm;
longfac;
Pleaseinputm:
"
;
fac=%ld\n"
fac);
5.计算半径为r的圆的周长和面积。
floatr;
floatcircum,area;
Inputr:
circum=2*PI*r;
circum=%.2f,area=%.2f\n"
circum,area);
五、编程题(每小题5分,共10分)
1.计算1-1/2+1/3-1/4+…+1/99-1/100。
2.任意从键盘输入10个整数,计算并输出该10个整数的平均值。
答题纸
一、选择题:
(每小题1分,第35分)
1--5【】【】【】【】【】
6--10【】【】【】【】【】
11--15【】【】【】【】【】
16--20【】【】【】【】【】
21--25【】【】【】【】【】
26--30【】【】【】【】【】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机语言 BC 语言 春季 学期 参考答案