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

上传人:b****4 文档编号:4063151 上传时间:2023-05-06 格式:DOCX 页数:18 大小:22.66KB
下载 相关 举报
全国计算机等级考试二级C语言笔试试题及答案.docx_第1页
第1页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第2页
第2页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第3页
第3页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第4页
第4页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第5页
第5页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第6页
第6页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第7页
第7页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第8页
第8页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第9页
第9页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第10页
第10页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第11页
第11页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第12页
第12页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第13页
第13页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第14页
第14页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第15页
第15页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第16页
第16页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第17页
第17页 / 共18页
全国计算机等级考试二级C语言笔试试题及答案.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《全国计算机等级考试二级C语言笔试试题及答案.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言笔试试题及答案.docx(18页珍藏版)》请在冰点文库上搜索。

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

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

全国计算机考试C语言笔试试题及答案

(1)

一、选择题

  下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

  

(1)在32位计算机中,一个字长所占的字节数为

  A.1

  B.2

  C.4

  D.8

  

(2)与十进制数511等值的十六进制数为

  A.1FF

  B.2FF

  C.1FE

  D.2FE

  (3)能将高级语言编写的源程序转换成目标程序的是

  A.编程程序

  B.编译程序

  C.解释程序

  D.链接程序

  (4)在计算机系统中,存储一个汉字的国标码所需要的字节数为

  A.1

  B.2

  C.3

  D.4

  (5)下列带有通配符的文件名中,能表示文件ABC.TXT的是

  A.*BC.?

  B.A?

.*

  C.?

BC.*

  D.?

.?

  (6)在多媒体计算机系统中,不能用以存储多媒体信息的是

  A.光缆

  B.软盘

  C.硬盘

  D.光盘

  (7)DOS命令“COPY/?

”的功能是

  A.将当前盘当前目录中的所有文件复制到当前盘的根目录下

  B.将当前盘当前目录中所有以单个字符命名的文件复制到当前盘的根目录下

  C.以提示方式复制文件

  D.显示COPY命令的帮助信息

  (8)在Windows环境下,若要将当前活动窗口存入剪贴板,则可以按

  A.Ctrl+PrintScreen键

  B.Ctrl+PrintScreen键

  C.Shift+PrintScreen键

  D.PrintScreen键

  (9)在Windows环境下,单击当前应用程序窗口中的“关闭”按钮,其功能是

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

  B.退出Windows后再关机

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

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

  (10)以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。

  #include

  voidf(charp[][10],intn)

  {chart[20];inti,j;

  for(i=0;i

  for(j=i+1;j

  if(strcmp(p[i],p[j])<0)

  {strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}

  }

  main()

  {charp[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,“cd”};inti;

  f(p,5);printf(“%d\n”,strlen(p[0]));

  }

  程序运行后的输出结果是

  A.6

  B.4

  C.5

  D.3  

(11)以下叙述中正确的是

  A.构成C程序的基本单位是函数

  B.可以在一个函数中定义另一个函数

  C.main()函数必须放在其它函数之前

  D.所有被调用的函数一定要在调用之前进行定义

  (12)以下选项中合法的实型常数是

  A.5E2.0

  B.E-3

  C..2E0

  D.1.3E

  (13)以下选项中合法的用户标识符是

  A.long

  B._2Test

  C.3Dmax

  D.A.dat

  (14)已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量‘\101’是

  A.字符AB)字符aC)字符eD)非法的常量

  (15)以下非法的赋值语句是

  A.n=(i=2,++i);B)j++;

  C.++(i+1);D)x=j>0;

  (16)设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是

  A)6.500000B)6

  C.5.500000

  D.6.000000

  (17)已知i、j、k为int型变量,若从键盘输入:

1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是

  A.scanf(“---”,&i,&j,&k);

  B.scanf(“%d%d%d”,&i,&j,&k);

  C.scanf(“%d,%d,%d”,&i,&j,&k);

  D.scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);

  (18)与数学式子对应的C语言表达式是

  A.3*x^n(2*x-1)

  B.3*x**n(2*x-1)

  C.3*pow(x,n)*(1/(2*x-1))

  D.3*pow(n,x)/(2*x-1)

  (19)设有定义:

longx=-123456L;,则以下能够正确输出变量x值的语句是

  A)printf(“x=%d\n”,x);

  B.printf(“x=\n”,x);

  C)printf(“x=?

L\n”,x);D)printf(“x=%LD\n”,x);

  (20)若有以下程序:

  main()

  {intk=2,i=2,m;

  m=(k+=i*=k);printf(“%d,%d\n”,m,i);

  }

  执行后的输出结果是

  A.8,6

  B.8,3

  C.6,4

  D.7,4

  (21)已有定义:

intx=3,y=4,z=5;,则表达式!

(x+y)+z-1&&y+z/2的值是

  A.6

  B.0

  C.2

  D.1

  (22)有一函数,,以下程序段中不能根据x值正确计算出y值的是

  A.if(x>0)y=1;

  B.y=0;

  elseif(x==0)y=0;if(x>0)y=1;

  elsey=-1;elseif(x<0)y=-1;

  C)y=0;D)if(x>=0)

  if(x>=0);if(x>0)y=1;

  if(x>0)y=1;elsey=0;

  elsey=-1;elsey=-1;

(23)以下选项中,与k=n++完全等价的表达式是

  A.k=n,n=n+1

  B.n=n+1,k=n

  C.k=++n

  D.k+=n+1

  (24)以下程序的功能是:

按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:

  main()

  {intn,k;

  floatscore,sum,ave;

  sum=0.0;

  for(n=1;n<=10;n++)

  {for(k=1;k<=4;k++)

  {scanf(“%f”,&score);sum+=score;}

  ave=sum/4.0;

  printf(“NO%d:

%f\n”,n,ave);

  }

  }

  上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。

这条语句是

  A.sum=0.0;

  B.sum+=score;

  C.ave=sun/4.0;

  D.printf(“NO%d:

%f\n”,n,ave);

  (25)有以下程序段

  intn=0,p;

  do{scanf(“%d”,&p);n++;}while(p!

=12345&&n<3);

  此处do—while循环的结束条件是

  A.P的值不等于12345并且n的值小于3

  B.P的值等于12345并且n的值大于等于3

  C.P的值不等于12345或者n的值小于3

  D.P的值等于12345或者n的值大于等于3

  (26)有以下程序

  main()

  {inta=15,b=21,m=0;

  switch(a%3)

  {case0:

m++;break;

  case1:

m++;

  switch(b%2)

  {default:

m++;

  case0:

m++;break;

  }

  }

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

  }

  程序运行后的输出结果是

  A.1

  B.2

  C.3

  D.4

  (27)C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是

  A.void

  B.int

  C.float

  D.double

  (28)若有说明:

intn=2,*p=&n,*q=p;,则以下非法的赋值语句是

  A.p=q;

  B.*p=*q;

  C.n=*q;

  D.p=n;

  (29)有以下程序

  floatfun(intx,inty)

  {return(x+y);}

  main()

  {inta=2,b=5,c=8;

  printf(“%3.0f\n”,fun(int)fun(a+c,

  B.,a-

  C.);

  }

  程序运行后的输出结果是

  A.编译出错

  B.9

  C.21

  D.9.0

  (30)有以下程序

  voidfun(char*c,int

  D.

  {*c=*c+1;d=d+1;

  printf(“%c,%c,”,*c,

  D.;

  }

  main()

  {chara=’A’,b=’a’;

  fun(&b,a);printf(“%c,%c\n”,a,

  B.;

  }

  程序运行后的输出结果是

  A)B,a,B,a

  B.a,B,a,B

  C.A,b,A,b

  D.b,B,A,b

  (31)以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序

  voidsort(inta[],intn)

  {inti,j,t;

  for(i=0;i

  for(j=i+1,j

  if(a[i]  }

  main()

  {intaa[10]={1,2,3,4,5,6,7,8,9,10},i;

  sort(&aa[3],5);

  for(i=o;i<10;i++)print(“%d,”,aa[i]);

  printf(‘\n”);

  }

  程序运行后的输出结果是

  A)1,2,3,4,5,6,7,8,9,10

  B.10,9,8,7,6,5,4,3,2,1,

  C.1,2,3,8,7.6.5.4.9,10

  D.1,2,10,9,8,7,6,5,4,3

  (32)有以下程序

  intf(intn)

  {if(n==1)return1;

  elsereturnf(n-1)+1;

  }

  main()

  {inti,j=0;

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

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

  }

  程序运行后的输出结果是

  A.4

  B.3

  C.2

  D.1

(33)有以下程序

  main()

  {chara[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’,‘\0’};inti,j;

  i=sizeof(a);j=strlen(a);

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

  }

  程序运行后的输出结果是

  A)9,9B)8,9C)1,8D)9,8

  (34)以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。

  voidreverse(inta[],intn)

  {inti,t;

  for(i=0;i

  {t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

  }

  main()

  {intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;

  reverse(b,8);

  for(i=6;i<10;i++)s+=b[i];

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

  }

  程序运行后的输出结果是

  A.22

  B.10

  C.34

  D.30

  (35)有以下程序

  main()

  {intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};

  inti,s=0

  for(i=0;i<4;i++)s+=aa[i][1];

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

  }

  程序运行后的输出结果是

  A.11

  B.19

  C.13

  D.20

  (36)有以下程序

  #include

  main()

  {char*p=“abcde\Ofghjik\0”;

  printf(“%d\n”,strlen(p));

  }

  程序运行后的输出结果是

  A.12

  B.15

  C.6

  D.5

  (37)程序中头文件typel.h的内容是:

  #defineN5

  #defineM1N*3

  程序如下:

  #define“type1.h”

  #defineM2N*2

  main()

  {inti;

  i=M1+M2;printf(“%d\n”,i);

  }

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

  A.10

  B.20

  C.25

  D.30

  (38)有以下程序

  #include

  main()

  {FILE*fp;inti=20,j=30,k,n;

  fp=fopen(“d1.dat”“w”);

  fprintf(fp,“%d\n”,i);fprintf(fp,“%d\n”j);

  fclose(fp);

  fp=fopen(“d1.dat”,“r”);

  fp=fscanf(fp,“%d%d”,&k,&n);printf(“%d%d\n”,k,n);

  fclose(fp);

  }

  程序运行后的输出结果是

  A.2030

  B.2050

  C.3050

  D.3020

  (39)以下叙述中错误的是

  A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以

  B.在程序结束时,应当用fclose函数关闭已打开的文件

  C.在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

  D.不可以用FILE定义指向二进制文件的文件指针

  (40)有以下程序

  #include

  main(intargc,char*argv[])

  {inti,len=0;

  for(i=1;i  printf(“%d\n”,len);

  }

  程序编译连接后生成的可执行文件是ex1.exe,若运行时输入带参数的命令行是:

  ex1abcdefg10<回车>

  则运行的结果是:

  A.22

  B.17

  C.12

  D.9

(41)有以下程序

  intfa(intx)

  {returnx*x;}

  intfb(intx)

  {returnx*x*x;}

  intf(int(*f1)(),int(*f2)(),intx)

  {returnf2(x)-f1(x);}

  main()

  {inti;

  i=f(fa,fb,2);printf(“%d\n”,i);

  }

  程序运行后的输出结果是

  A.-4

  B.1

  C.4

  D.8

  (42)有以下程序

  inta=3;

  main()

  {ints=0;

  {inta=5;s+=a++;}

  s+=a++;printf(“%d\n”,s);

  }

  程序运行后的输出结果是

  A.8

  B.10

  C.7

  D.11

  (43)有以下程序

  voidss(char*s,chart)

  {while(*s)

  {if(*s==t)*s=t-‘a’+’A’;

  s++;

  }

  }

  main()

  {charstr1[100]=“abcddfefdbd”,c=’d’;

  ss(str1,c);printf(“%s\n”,str1);

  }

  程序运行后的输出结果是

  A.ABCDDEFEDBD

  B.abcDDfefDbD

  C.abcAAfefAbA

  D.Abcddfefdbd

  (44)有以下程序

  structSTU

  {charnum[10];floatscore[3];};

  main()

  {structstus[3]={{“20021”,90,95,85},

  {“20022”,95,80,75},

  {“20023”,100,95,90}},*p=s;

  inti;floatsum=0;

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

  sum=sum+p->score[i];

  printf(“%6.2f\n”,sum);

  }

  程序运行后的输出结果是

  A.260.00

  B.270.00

  C.280.00

  D.285.00

  (45)设有如下定义:

  strucksk

  {inta;

  floatb;

  }data;

  int*p;

  若要使P指向data中的a域,正确的赋值语句是

  A.p=&a;

  B.p=data.a;

  C.p=&data.a;

  D.*p=data.a;

  (46)有以下程序

  #include

  structNODE

  {intnum;structNODE*next;};

  main()

  {structNODE*p,*Q,*R;

  p=(structNODE*)malloc(sizeof(structNODE));

  q=(structNODE*)malloc(sizeof(structNODE));

  r=(structNODE*)malloc(sizeof(structNODE));

  p->num=10;q->num=20;r->num=30;

  p->next=q;q->next=r;

  printf(“%d\n”,p->num+q->next->num);

  }

  程序运行后的输出结果是

  A.10

  B.20

  C.30

  D.40

  (47)若有以下说明和定义

  typedefint*INTEGER;

  INTEGERp,*q;

  以下叙述正确的是

  A.P是int型变量

  B.p是基类型为int的指针变量

  C.q是基类型为int的指针变量

  D.程序中可用INTEGER代替int类型名

  (48)有以下程序

  main()

  {unsignedchara,b,c;

  a=0x3;b=a|0x8;c=b<<1;

  printf(“%d%d\n”,b,c);

  }

  程序运行后的输出结果是

  A.–1112

  B.–6–13

  C.1224

  D.1122

(49)有以下程序

  #include

  main()

  {char*p,*q;

  p=(char*)malloc(sizeof(char)*20);q=p;

  scanf(“%s%s”,p,q);printf(“%s%s\n”,p,q);

  }

  若从键盘输入:

abcdef<回车>,则输出结果是:

  A.defdef

  B.abcdef

  C.abcd

  D.dd

  二、填空题

  请将答案分别写在答题卡中序号为【1】至【20】的横线上,答在试卷上不得分。

  1、计算机软件分为系统软件和应用软件,操作系统属于[1]。

  2、在DOS环境下,代表键盘和显示器的设备文件名为[2]。

  3、支持Internet基本服务的协议是[3]。

  4、从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为[4]。

  5、某微型机的运算速度为2MIPS,则该微型机每秒执行[5]条指令。

  6、设有定义:

intn,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。

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

  printf(“%d\n”,[7]。

);

  7、以下程序运行后的输出结果是[8]。

  main()

  {intx=10,y=20,t=0;

  if(x==y)t=x;x=y;y=t;

  printf(“%d,%d\n”,x,y);

  }

  8、以下程序运行后的输出结果是[9]。

  main()

  {intx=15;

  while(x>10&&x<50)

  {x++;

  if(x/3){x++;break;}

  elsecontinue;

  }

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

  }

  9、有以下程序:

  #include

  main()

  {charc;

  while((c=getchar())!

=’?

’)putchar(--c);

  }

  程序运行时,如果从键盘输入:

Y?

N?

<回车>,则输出结果为[10]。

  10、以下程序运行后的输出结果是[11]。

  voidfun(intx,inty)

  {x=x+y;y=x-y;x=x-y;

  printf(“%d,%d,”,x,y);}

  main()

  {intx=2,y=3;

  fun(x,y);

  printf(“%d,%d\n”,x,y);

  }

  11、以下函数的功能是计算s=1+++……+,请填空。

  doublefun(intn)

  {doubles=0.0,fac=1.0;inti;

  for(i=1,i<=n;i++)

  {fac=fac[12];

  s=s+fac;

  }

  returns;

  }

  12fun函数的功能是:

首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。

请填空。

  #include

  #defineN

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2