2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 9月全国计算机等级考试二级C语言笔试试题及答案

9月全国计算机等级考试二级C语言笔试试题及答案

时间:2023-08-04 07:28:02

相关推荐

9月全国计算机等级考试二级C语言笔试试题及答案

9月全国计算机等级考试二级C语言笔试试题及答案

1.与十进制数200等值的十六进制数为

A.A8 B.A4

C.C8 D.C4

2.DOS文件系统的组织结构属于

A.星形结构B.网形结构

C.环形结构D.树形结构

3. 对存储器按字节进行编址,若某存储器芯片共有10根地址线,则该存储器芯片的存储容量为

A.1KB B.2KB

C.4KBD.8KB

4. 在DOS环境下,代表键盘和显示器的设备文件名为

A.PRN B.CON

C.NUL D.LPT

5. 计算机网络的主要特点是

A.运算速度快B.运算精度高

C.资源共享D.人机交互

6.磁盘处于写保护状态时其中的数据

A.不能读出,不能删改B.可以读出,不能删改

C.不能读出,可以删改D.可以读出,可以删改

7.从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为

A.EXITB.QUIT

C.RET D.MSDO

8. 在Windows环境下,若资源管理器左宣传品中的某文件夹左边标有“+”标记,则表示

A.该文件夹为空

B.该文件夹中含有子文件夹

C.该文件夹中只包含有可执行文件

D.该文件夹中包含系统文件

9.在Windows菜单中,暗淡的命令名项目表示该命令

A.暂时不能用B.正在执行

C.包含下一层菜单D.包含对话框

10.在Windows环境下,单击当前窗口中的按钮“×”(右上角的关闭按钮),其功能是

A.将当前应用程序转为后台运行

B.退出Windows后再关机

C.终止当前应用程序的运行

D.退出Windows后重新启动计算机

11.用C语言编写的代码程序

A.可立即执行B.是一个源程序

C.经过编译即可执行D.经过编译解释才能执行

12.结构化程序由三种基本结构组成,三种基本结构组成的算法

A.可以完成任何复杂的任务

B.只能完成部分复杂的任务

C.只能完成符合结构化的任务

D.只能完成一些简单的任务

13. 以下定义语句中正确的是

A.char a='A'b='B';B.floata=b=10.0;

C.int a=10,*b=&a;D.float*a,b=&a;

14.下列选项中,不能用作标识符的是

A._1234_B._1_2

C.int_2_D.2_int_

15.有以下定义语句

double a,b;int w; long c;

若各变量已正确赋值,则下列选项中正确的表达式是

A.a=a+b=b++ B.w%(int)a+b

C.(c+w)%(int)a D.w=a==b;

16.有以下程序

main()

{ intm=3,n=4,x;

x=-m++;

x=x+8/++n;

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

}

程序运行后的输出结果是

A.3B.5

C.-1D.-2

17.有以下程序

main()

{ chara='a',b;

print("%c,",++a);

printf("%c\n",b=a++);

}

程序运行后的输出结果是

A.b,b B.b,c

C.a,b D.a,c

18.有以下程序

main()

{ int m=0256,n=256;

printf("%o%o\n",mn,n);

}

程序运行后的输出结果是

A.0256 0400

B.0256 256

C.256 400

D.400 400

19.有以下程序

main()

{ inta=666,b=888;

printf("%d\n",a,

B.;

}

程序运行后的输出结果是

A.错误信息

B.666

C.888

D.666,888

20.有以下程序

main()

{ int i;

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

switch(i)

{

case0:printf("%d",i);

case2:printf("%d",i);

default:printf("%d",i);

}

}

程序运行后的输出结果是

A.022111

B.021021

C.000122

D.012

21.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是

资料来源:东方教育网全国计算机等级考试频道

A.abs(x-y)<10

B.x-y>-10&& x-y<10

C.@(x-y)<-10||!(y-x)>10

D.(x-y)*(x-y)<100

22.有以下程序

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

23.下列条件语句中,功能与其他语句不同的是

A. if(a) printf("%d\n",x);else printf("%d\n",y);

B. if(a==0)printf("%d\n",y); else printf("%d\n",x);

C. if (a!=0)printf("%d\n",x); else printf("%d\n",y);

D. if(a==0) printf("%d\n",x);else printf("%d\n",y);

24.有以下程序

main()

{ inti=0,x=0;

for (;;)

{

if(i==3||i==5)continue;

if (i==6)break;

i++;

s+=i;

};

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

}

程序运行后的输出结果是

A.10

B.13

C.21

D.程序进入死循环

25.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是B

A.for(i=1,p=1;i<=5;i++) p*=i;

B.for(i=1;i<=5;i++){ p=1; p*=i;}

C.i=1;p=1;while(i<=5){p*=i; i++;}

D.i=1;p=1;do{p*=i; i++;}while(i<=5);

26.有以下程序

main()

{ chara,b,c,d;

scanf("%c,%c,%d,%d",&a,&b,&c,&

D.;

printf("c,%c,%c,%c\n",a,b,c,

D.;

}

若运行时从键盘上输入:6,5,65,66<回车>。则输出结果是

A.6,5,A,B

B.6,5,65,66

C.6,5,6,5

D.6,5,6,6

27)以下能正确定义二维数组的是

A.int a[][3];

B.int a[][3]=2{2*3};

C.int a[][3]={};

D.int a[2][3]={{1},{2},{3,4}};

28. 有以下程序

int f(int a)

{ returna%2; }

main()

{ ints[8]={1,3,5,2,4,6},i,d=0;

for(i=0;f(s);i++) d+=s;

printf("%d\n",

D.;

}

程序运行后的输出结果是

A.9

B.11

C.19

D.21

29.若有以下说明和语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是

A.p+1

B.*(p+3)

C.*(p+1)+3

D.*(p[0]+2])

30.有以下程序

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.;

}

程序运行后的输出结果是

A.8,7,8,7

B.7,8,7,8

C.8,7,7,8

D.7,8,8,7

31.s12和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,s1)>0)S;

D.if(strcmp(s1,s2)>0)S;

资料来源:东方教育网全国计算机等级考试频道

32.设有定义语句

intx[6]={2,4,6,8,5,7},*p=x,i;

要求依次输出x数组6个元素中的值,不能完成此操作的语句是

A.for(i=0;i<6;i++) printf("-",*(p++));

B.for(i=0;i<6;i++)printf("-",*(p+i));

C.for(i=0;i<6;i++)printf("-",*p++);

D.for(i=0;i<6;i++)printf("-",(*p)++);

33.有以下程序

#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,*1);

}

程序运行后的输出结果是

A.运行后报错

B.6 6

C.6 11

D.5 10

34有以下定义和语句

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

p[0]=a[1];

则*p[0]+1)所代表的数组元素是

A.a[0][1]

B.a[1][0]

C.a[1][1]

D.a[1][2]

35.有以下程序

main()

{charstr[][10]={"China","Beijing"},*p=str;

printf("%s\n",p+10);

}

程序运行后的输出结果是

A.China

B.Bejing

C.ng

D.ing

36. 有以下程序

main()

{chars[]="ABCD",*p;

for(p=s+1;p

}

程序运行后的输出结果是

A. ABCD

B.A

C.B

D.BCD

BCD B C CD

CD C D D

D D

37.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则

A.称为函数的直接递归调用

B.称为函数的间接递归调用

C.称为函数的循环调用

D.C语言中不允许这样的递归调用

38.已有定义:int i,a[10],*p;,则合法的赋值语句是

A.p=100;

B.p=a[5];

C.p=a[2]+2;

D.p=a+2;

39.以下叙述中正确的是

A.局部变量说明为static存储数,其生存期将得到延长

B.全局变量说明为static存储类,其作用域将被扩大

C.任何存储类的变量在未赋初值时,其值都是不确定的

D.形参可以使用的存储类说明符与局部变量完全相同

40.设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是

A.c1^c2

B.c1&c2

C.~c2

D.c1|c2

41.程序中对fun函数有如下说明

void *fun();

此说明的含义是:

A.fun了数无返回值

B.fun函数的返回值可以是任意的数据类型

C.fun函数的返回值是无值型的指针类型

D.指针fun指向一个函数,该函数无返回值

42.有以下程序

main()

{ chars[]"Yes\n/No",*ps=s;

puts(ps+4);

*(ps+4)=0;

puts(s);

}

程序运行后的输出结果是

A.n/No

B./No

C.n/NO

D.

Yes Yes Yes/No

/No /No Yes

43.有以下程序

main()

{ unsignedint a;

int b=-1;

a=b;

printf("%u",a);

}

程序运行后的输出结果是

A.-1

B.65535

C.32767

D.-32768

44.有以下程序

void fun(int*a,int i,int j)

{ int t;

if(i

{t=a;a=a[j];a[j]=t;

i++; j--;

fun(a,i,j);

}

}

main()

{ intx[]={2,6,18},i;

fun(x,0,3);

for(i=0;i<4;i++)printf("-",x);

printf("\n");

}

程序运行后的输出结果是

A.1 2 6 8

B. 8 6 2 1

C. 8 1 6 2

D.8 6 1 2

45.有以下说明和定义语句

structstudent

{ int age;char num[8];};

structstudentstu[3]={{20,"01"},{21,"02"},{10\9,"03"}};

structstudent *p=stu;

资料来源:东方教育网全国计算机等级考试频道

以下选项中引用结构体变量成员的表达式错误的是

A. (p++)->num

B.p->num

C.(*p).num

D.stu[3].age

46.有以下程序

mina()

{ intx[]={1,3,5,7,2,4,6,0},i,j,k;

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

for(j=2;j>=i;j--)

if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}

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

for(j=4;j<7-i;j++)

if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}

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

for(j=4;j<7-i;j++)

if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;}

for(i=0;i<8;i++) printf("%d",x);

printf("\n");

}

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

A.75310246

B.01234567

C.76310462

D.13570246

47.有如下程序

#include

main()

{FILE *fp1;

fp1=fopen("f1.txt","w");

fprintf(fp1,"abc");

fclose(fp1);

}

若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为

A.goodabc

B.abcd

C.abc

D.abcgood

48~50.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的

字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选若中选择出

正确的选项。

#include

stuct node

{ chardata; struct node *next;};

(48)CreatList(char *s)

{ structnode *h,*p,*q);

h=(structnode *) malloc(sizeof(struct node));

p=q=h;

while(*s!='\0')

{ p=(structnode *) malloc(sizeof(struct node));

p->data=(49) ;

q->next=p;

q= (50) ;

s++;

}

p->next='\0';

return h;

}

main()

{ charstr[]="link list";

struct node*head;

head=CreatList(str);

...

}

(48)

A.char *

B.struct node

C.struct node*

D.char

(49)

A.*s

B.s

C.*s++

D.(*s)++

(50)

A.p->next

B.p

C.s

D.s->next

二、填空题:(每空2分,共40分)

1.在64位高档微机中,CPU能同时处理 _____ 个字节的二进制数据。

2.E-mail地址由域名和用户名两部分组成,它们之间用@分隔,其中在@后面的部分是 _______

3.Windows窗口一般由标题栏、菜单栏、控制按钮等部分组成。为了移动窗口,则要用鼠标拖动 _____

4.计算机软件分为系统软件和应用软件,UNIX系统属于 ________ 。

5.在Windows环境下,为了将屏幕内容存入剪贴板,应按 ________ 键。

6.以下程序段的输出结果是 _____

int i=9;

printf("%o\n",i);

7.以下程序运行后的输出结果是 _______ 。

main()

{ inta,b,c;

a=25;

b=025;

c=0x25;

printf("%d %d %d\n',a,b,c);

}

8.以下程序运行后的输出结果是 ______ 。

main()

{ intp[7]={11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7 && p%2==1) j+=p[i++];

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

}

9.以下程序运行后的输出结果是 _______ 。

main()

{ intx=1,y=0,a=0,b=0;

switch(x)

{case1:switch(y)

{ case0:a++; break;

case 1:b++;break;

}

case2:a++;b++; break;

}

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

}

10.以下程序运行后的输出结果是 _______ 。

main()

{ inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};

inti=0,j=0,s=0;

while(i++<4)

{

if(i==2||i==4) continue;

j=0;

do{ s+=a[j]; j++; } while(j<4);

}

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

}

11.以下程序运行后的输出结果是 _____ 。

main ()

{ chara[]="Language",b[]="Programe";

char*p1,*p2; int k;

p1=a; p2=b;

for(k=0;k<=7;k++)

if(*p1+k)==*(p2+k)) printf("%c",*(p1+k));

}

12.以下程序运行后的输出结果是 _______ 。

main()

{ chara[]="123456789",*p; int i=0;

p=a;

while(*p)

{if(i%2==0) *p='*";

p++;i++;

}

puts(a);

}

13.以下程序中, for循环体执行的次数是 _____ 。

#define N 2

#define MN+1

#define KM+1*M/2

main()

{ int i;

for(i=1;i { ... ]

...

}

14、通过函数求f(x)的累加和,其中f(x)=x2+1

main()

{

printf("Thesum=%d\n",SunFun(10));

}

SunFun(int n)

{

int x,s=0;

for(x=0;x<=n;x++)s+=F(________);

return s;

}

F( int x)

{ return____________;}

15. 以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。

请填空。

main()

{ inti,a[20],sun,count;

suum=count=0;

for(i=0;i<20;i++) scanf("%d", _____ );

fro(i=0;i<20;i++)

{if(a>0)

{ count++;

sum+=______ ;

}

}

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

}

16.以下程序中,函数

sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。

#define M 2

#define N 4

voidSumColumMin(int a[M][N],int *sum)

{ inti,j,k,s=0;

for(i=0;i { k=0;

for(j=1;j if(a[k]>a[j])k=j;

s+= _______;

}

[*sum] =s;

}

main()

{ intx[M][N]={3,2,5,1,4,1,8,3},s;

SumColumMin( _______ );

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

}

9月二级C笔试答案

选择题

1-5 C D A BC 6-10 B A B A C

11-15 B C CD C 16-20 D A C B C

21-25 C A DD B26-30 A C A D C

31-35 D D AC B 36-40 D B D A A

41-45 C B BC D 46-50 A C C A B

填空题

1. 8 2. 域名3. 标题栏

4. 系统软件5. PEINTSCREEN

6. 11 7. 25 21 37

8. 24 9. 21

10 . 9211. gae

12.1*3*5*7*9 13. 4

14. x x*x+115. &a[i] a[i] 16. a[k][i] *sum x,&s

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。