计算机等级考试 二级C语言 笔试模拟试题 北邮五.docx
- 文档编号:3748112
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:24
- 大小:26.91KB
计算机等级考试 二级C语言 笔试模拟试题 北邮五.docx
《计算机等级考试 二级C语言 笔试模拟试题 北邮五.docx》由会员分享,可在线阅读,更多相关《计算机等级考试 二级C语言 笔试模拟试题 北邮五.docx(24页珍藏版)》请在冰豆网上搜索。
计算机等级考试二级C语言笔试模拟试题北邮五
一、选择题(1-11每题2分,11-21每题1分,21-40每题2分,共70分)
下列各题A、B、C、D四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
1.对长度为n的线性表进行顺序查找,在最坏的情况下所需要的比较次数为____。
(A)log2n
(B)n/2
(C)n
(D)n+1
2.下列描述中正确的是_______。
(A)程序就是软件
(B)软件开发不受计算机系统的限制
(C)软件既是逻辑实体,又是物理实体
(D)软件是程序、数据与相关文档的集合
3.在软件设计中,不属于过程设计工具的是______。
(A)PDL(过程设计语言)
(B)PAD图
(C)N-S图
(D)DFD图
4.下列叙述中正确的是______。
(A)程序设计就是编制程序
(B)程序测试必须由程序员自己去做
(C)程序经调试改错后还应进行再测试
(D)程序经调度改错后不必进行再测试
5.以下叙述中正确的是______。
(A)用C语言实现的算法必须要有输入和输出操作
(B)用C语言实现的算法可以没有输出但必须要有输入
(C)用C程序实现的算法可以没有输入但必须要有输出
(D)用C程序实现的算法可以既没有输入也没有输出
6.以下4个选项中,不能被看作是一条语句的是________。
(A){;}
(B)a=0,b=0,c=0;
(C)if(a>0);
(D)if(b==0)m=l;n=2;
7.下列选项中,合法的C语言关键字是________。
(A)VAR
(B)cher
(C)integer
(D)default
8.在16位C编译系统上,若定义longa;,则能给变量a赋值40000的正确语句是________。
(A)a=20000+20000;
(B)a=4000*10;
(C)a=30000+10000;
(D)a=4000L*10L;
9.以下程序运行后的输出结果是________。
main()
{charm;
m='B'+32;printf("%c\n",m);
}
(A)a
(B)b
(C)c
(D)d
10.设有定义:
intk=1,m=2;floatf=7;
则以下选项中错误的表达式是______。
(A)k=k>=k
(B)-k++
(C)k%int(f)
(D)k>=f>=m
11.有以下定义语句
doublea,b;intw;longc;
若各变量已正确赋值,则下列选项中正确的表达式是________。
(A)a=a+b=b++
(B)w%((int)a+b)
(C)(c+w)%(int)a
(D)w=a==b;
12.有以下程序
main()
{inti=l,j=1,k=2;
if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);
}
执行后输出结果是________。
(A)1,1,2
(B)2,2,1
(C)2,2,2
(D)2,2,3
13.数字字符0的ASCII值为48,若有以下程序
main()
{chara='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是_______。
(A)3,2
(B)50,2
(C)2,2
(D)2,50
14.有以下程序
main()
{inti=10,j=1;
printf("%d,%d\n",i--,++j);
}
执行后输出结果是________。
(A)9,2
(B)10,2
(C)9,1
(D)10,1
15.以下能正确定义且赋初值的语句是______。
(A)intn1=n2=10;
(B)charc=32;
(C)floatf=f+1.1;
(D)doublex=12.3E2.5
16.有以下程序
main()
{chara1='M'a2='m';
printf(″%c\n″,(a1,a2));}
以下叙述中正确的是_____。
(A)程序输出大写字母M
(B)程序输出小写字母m
(C)格式说明符不足,编译出错
(D)程序运行时产生出错信息
17.以下程序的功能是进行位运算
main()
{unsignedchara,b;
a=7^3;b=~4&3;
printf("%d%d\n",a,b);
}
程序运行后的输出结果是_____。
(A)43
(B)73
(C)70
(D)40
18.设有定义:
floata=2,b=4,h=3;,以下C语言表达式中与代数式(a+B)h计算结果不相符的是________。
(A)(a+B)*h/2
(B)(1/2)*(a+B)*h
(C)(a+B)*h*l/2
(D)h/2*(a+B)
19.若有以下程序段
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)16,a,10
(C)10,a,0
(D)10,A,0
20.以下程序运行后的输出结果是______。
main()
{inta=1,b=2,c=3;
if(c=a)printf("%d\n",c);
elseprintf("%d\n",b);
}
(A)2
(B)3
(C)5
(D)1
21.有以下程序
#include
main()
{charc1=′1′,c2=′2′;
c1=getchar();c2=getchar();putchar(c1);putchar(c2);
}
当运行时输入:
a<回车>后,以下叙述正确的是_____。
(A)变量c1被赋予字符a,c2被赋予回车符
(B)程序将等待用户输入2个字符
(C)变量c1被赋予字符a,c2中仍是原有字符2
(D)变量c1被赋予字符a,c2中将无确定值
22.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是________。
(A)INPUTx、y、z;
(B)scanf("%d%d%d",&x,&y,&z);
(C)scanf("%d%d%d",x,y,z);
(D)read("%d%d%d",&x,&y,&z);
23.以下程序的输出结果是________。
#defineSQR(X)X*X
main()
{inta=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("d\n",a);
}
(A)16
(B)2
(C)9
(D)1
24.有以下程序
main()
{inta=3,b=4,c=5,d=2;
if(a>b)
if(b>c)
printf("%d",d+++1);
else
printf("%d",++d+1);
printf("%d\n",d);
}
程序运行后的输出结果是________。
(A)2
(B)3
(C)43
(D)44
25.有以下程序
main()
{chark;inti;
for(i=l;i<3;i++)
{scanf("%c",&k);
switch(k)
{case'0':
printf("another\n");
case'l':
printf("number\n");
}
}
}
程序运行时,从键盘输入:
01<回车>,程序执行后的输出结果是________。
(A)another
number
(B)another
number
another
(C)another
number
number
(D)number
number
26.有以下程序
main()
{intx=0,y=5,z=3;
while(z-->0&&++x<5)y=y-l;
printf("%d,%d,%d\n",x,y,z);
}
程序执行后的输出结果是________。
(A)3,2,0
(B)3,2,-1
(C)4,3,-1
(D)5,-2,-5
27.有以下程序
main()
{inta[]={2,4,6,8,10},y=0,x,*p;
p=&a[1];
for(x=1;x<3;x++)y+=p[x];
printf(″%d\n″,y);
}
程序运行后的输出结果是________。
(A)10
(B)11
(C)14
(D)15
28.有以下程序中若有如下说明和定义语句
charfun(char*);
main()
{
char*s="one",a[5]={0},(*f1)()=fun,ch;
...
}
以下选项中对函数fun的正确调用语句是______。
(A)(*f1)(a);
(B)*f1(*s);
(C)fun(&a);
(D)ch=*f1(s);
29.有以下程序
intf(inta)
{returna%2;}
main()
{ints[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[i]);i++)d+=s[i];
printf("%d\n",d);
}
程序运行后的输出结果是________。
(A)9
(B)11
(C)19
(D)21
30.若有定义:
intx=0,*p=&x;则语句printf(″%d\n″,*p);的输出结果是____。
(A)随机值
(B)0
(C)x的地址
(D)p的地址
31.设有定义:
intA,*pA=&A;以下scanf语句中能正确为变量A读入数据的是________。
(A)scanf("%d",pA);
(B)scanf("%d",A);
(C)scanf("%d",&pA);
(D)scanf("%d",*pA);
32.有以下程序
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i;
for(i=0;i<3;i++)printf("%d",a[1][i]);
}
程序运行后的输出结果是______。
(A)012
(B)123
(C)234
(D)345
33.以下能正确定义二维数组的是________。
(A)inta[][3];
(B)inta[][3]={2*3};
(C)inta[][3]={};
(D)inta[2][3]={{1},{2},{3,4}};
34.若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是________。
(A)int*i=NULL;
scanf("%d",i);
(B)float*f=NULL
*f=10.5;
(C)chart='m',*c=&t;
*c=&t;
(D)long*L;
L='\0';
35.有以下定义
#include
chara[l0],*b=a;
不能给a数组输入字符串的语句是________。
(A)gets(A)
(B)gets(a[0]);
(C)gets(&a[0]);
(D)gets(b);
36.已有定义:
inti,a[10],*p;,则合法的赋值语句是________。
(A)p=100;
(B)p=a[5];
(C)p=a[2]+2;
(D)p=a+2;
37.设有定义语句
intx[6]={2,4,6,8,5,7},*p=x,i;
要求依次输出x数组6个元素中的值,不能完成此操作的语句是________。
(A)for(i=0;i<6;i++)printf("%2d",*(p++));
(B)for(i=0;i<6;i++)printf("%2d",*(p+i));
(C)for(i=0;i<6;i++)printf("%2d",*p++);
(D)for(i=0;i<6;i++)printf("%2d",(*p)++);
38.若有以下说明和语句
intc[4][5],(*p)[5];
p=c;
能够正确引用c数组元素的是________。
(A)p+1
(B)*(p+1)
(C)*(p+1)+3
(D)*(p[0]+2)
39.设有定义:
intn=0,*p=&n,**q=&p;,则以下选项中,正确的赋值语句是________。
(A)p=1
(B)*q=2
(C)q=p
(D)*p=5
40.已定义以下函数
fun(int*p)
{return*p;}
该函数的返回值是________。
(A)不确定的值
(B)形参p中存放的值
(C)形参p所指存储单元中的值
(D)形参p的地址值
二、填空题(1-15每题2分,共30分)
请将答案分别写在答题卡中对应的的横线上。
1.有以下程序
main()
{inti,n=0;
for(i=2;i<5;i++)
{do
{if(i%3)continue;
n++;
}while(!
i);
n++;
}
printf("n=%d\n",n);
}
程序执行后输出结果是____【1】____。
2.有以下程序
voidf(intv,intw)
{intt;
t=v;v=w;w=t;
}
main()
{intx=1,y=3,z=2
if(x>y)f(x,y);
elseif(y>z)f(y,z);
elsef(x,z);
printf("%d,%d,%d\n",x,y,z);
}
执行后输出结果是____【2】____。
3.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下:
1
11
121
1331
14641
其构成规律是:
①第0列元素和主对角线元素均为1
②其余元素为其左上方和正上方元素之和
③数据的个数每行递增1
请将程序补充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;x[0][0]=1;
for(i=1;i{x[i][0]=x[i][i]=1;
for(j=1;jx[i][j]=_【3】________;
}
}
4.以下程序运行后的输出结果是__【4】____。
main()
{charc;intn=100;
floatf=10;doublex;
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
5.有以下程序
main()
{inta=7,b=8,*p,*q,*r;
p=&a;q=&b;
r=p;p=q;q=r;
printf("%d,%d,%d,%d\n",*p,*q,a,b);
}
程序运行后的输出结果是____【5】____。
6.以下程序运行后的输出结果是___【6】____。
#include
main()
{charch[]="abc",x[3][4];inti;
for(i=0;i<3;i++)strcpy(x[i],ch);
for(i=0;i<3;i++)printf("%s",&x[i][i]);
printf("\n");
}
7.有以下程序
fun(inta,intb)
{if(a>b)return(a);
elsereturn(b);
}
main()
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
printf("%\d\n",r);
}
程序运行后的输出的结果是____【7】____。
8.有以下程序
#include
structSTU
{charname[10];
intnum;};
voidf(char*name,intnum)
{structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};
num=s[0].num;
strcpy(name,s[0].name);
}
main()
{structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;
p=&s[1];f(p->name,p->num);
printf("%s%d\n",p->name,p->num);
}
程序运行后的输出结果是___【8】____。
9.有以下程序
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i+1;
printf("%d\n",a[1][2]);
}
程序运行后的输出结果是____【9】____。
10.有以下程序
#include
main()
{inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;
*q=*(p+5);
printf("%d%d\n",*p,*q);
}
程序运行后的输出结果是____【10】____。
11.有以下程序
voidf(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
main()
{inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
while(p
{f(p,q);p++;q--;}
for(i=0;i<8;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是____【11】____。
12.有以下程序
prt(int*m,intn)
{inti;
for(i=0;i}
main()
{inta[]={1,2,3,4,5},i;
prt(a,5);
for(i=0;i<5;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是___【12】_____。
13.有以下程序
floatf1(floatn)
{returnn*n;}
floatf2(floatn)
{return2*n;}
main()
{float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;
p1=f1;p2=f2;
y1=p2(p1(2.0));
t=p1;p1=p2;p2=t;
y2=p2(p1(2.0));
printf("%3.0f,%3.0f\n",y1,y2);
}
程序运行后的输出结果是___【13】____。
14.设有以下定义和语句
inta[3][2]={1,2,3,4,5},*p[3];
p[0]=a[1];
则*(p[0]+1)所代表的数组元素是__【14】______。
15.设函数findbig已定义为求3个数中的最大值,以下程序将利用函数指针调用findbig函数。
请填空。
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=____【15】_______;
scanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,z);
printf("big=%d\n",big);
}
参考答案与分析
一、选择题(1-11每题2分,11-21每题1分,21-40每题2分,共70分)
1.C
2.D
3.C
4.C
5.C
6.D
7.D
8.D
9.B
10.C
11.C
12.C
13.C
14.B
15.A
16.B
17.A
18.B
19.A
20.B
21.A
22.B
23.D
24.A
25.C
26.B
27.C
28.A
29.A
30.B
31.A
32.D
33.B
34.A
35.B
36.D
37.D
38.D
39.D
40.C
二、填空题(1-15每题2分,共30分)
1.【1】n=4
2.【2】1,3,2
3.【3】x[i-1][j-1]+x[i-1][j]
4.【4】220.000000
5.【5】8,7,7,8
6.【6】abcbcc
7.【7】12
8.【8】SunDan20042
9.【9】6
10.【10】运行后报错
11.【11】8,7,6,5,4,3,2,1,
12.【12】2,3,4,5,6,
13.【13】8,16
14.【14】a[1][1]
15.【15】findbig
答案及简单分析
一、选择题
1.分析:
顺序查找的最坏情况是所找的元素在线性表的最后,因此查找的比较次数是线性表的长度,即n。
2.分析:
程序是软件的一部分,软件是一种逻辑实体,它的开发、运行都依赖计算机系统,因此出现了软件的移植问题。
3.分析:
DFD(DataFlowDiagram)是数据流图结构化分析的常用工具。
软件设计中,常见的过程设计工具有:
(1)图形工具:
程序流程图,N-S,PAD,HIPO
(2)表格工具:
判定表
(3)语言工具:
PDL(过程设计语言)
4.分析:
软件测试包括需求分析、结构功能模块设计、编制程序等阶段。
程序的测试可以由专门的测试人员来完成。
程序经调试改错后还应进行再测试。
5.分析:
根据算法的特性,算法必须有0个或多个输入,和1个或多个输出。
6.分析:
选项D中有两条语句。
7.分析:
本题考查C语言基本知识。
本题中default是C语言的关键字。
8.分析:
本题中a是长整型变量,故应将一个长整型常量赋值给a,选项A、B、C中的数值的末尾都没有加L或l,所以不正确。
9.分析:
字符参与运算的值是其对应的ASCII码,小写英文字符的ASCII值比大写英文字符的ASCII值大32,执行语句m='B'+32;得出结果m=66+32=98,以"%c"的格式输出结果为b。
10.分析:
A、D选项是关系运算表达式,在C语言中,只要关系运算符两边是合法的表达式就
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机等级考试 二级C语言 笔试模拟试题 北邮五 二级 语言 笔试 模拟 试题