计算机二级考试c语言试题及答案.docx

上传人:b****8 文档编号:9599649 上传时间:2023-02-05 格式:DOCX 页数:16 大小:23.47KB
下载 相关 举报
计算机二级考试c语言试题及答案.docx_第1页
第1页 / 共16页
计算机二级考试c语言试题及答案.docx_第2页
第2页 / 共16页
计算机二级考试c语言试题及答案.docx_第3页
第3页 / 共16页
计算机二级考试c语言试题及答案.docx_第4页
第4页 / 共16页
计算机二级考试c语言试题及答案.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

计算机二级考试c语言试题及答案.docx

《计算机二级考试c语言试题及答案.docx》由会员分享,可在线阅读,更多相关《计算机二级考试c语言试题及答案.docx(16页珍藏版)》请在冰豆网上搜索。

计算机二级考试c语言试题及答案.docx

计算机二级考试c语言试题及答案

9月全国计算机二级C语言笔试试题

  一、选取题(每小题2分,共70分)

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

请将对的选项填涂在答题卡相应位置上,答在试卷上不得分。

  

  

(1)下列论述中对的是

  A)线性表链式存储构造与顺序存储构造所需要存储空间是相似

  B)线性表链式存储构造所需要存储空间普通要多于顺序存储构造

  C)线性表链式存储构造所需要存储空间普通要少于顺序存储构造

  D)上述三种说法都不对

  

  

(2)下列论述中对的是

  A)在栈中,栈中元素随栈底指针与栈顶指针变化而动态变化

  B)在栈中,栈顶指针不变,栈中元素随栈底指针变化而动态变化

  C)在栈中,栈底指针不变,栈中元素随栈顶指针变化而动态变化

  D)上述三种说法都不对

  

  (3)软件测试目是

  A)评估软件可靠性

  B)发现并改正程序中错误

  C)改正程序中错误

  D)发现程序中错误

  

  (4)下面描述中,不属于软件危机体现是

  A)软件过程不规范

  B)软件开发生产率低

  C)软件质量难以控制

  D)软件成本不断提高

  

  (5)软件生命周期是指

  A)软件产品从提出、实现、使用维护到停止使用退役过程

  B)软件从需求分析、设计、实现到测试完毕过程

  C)软件开发过程

  D)软件运营维护过程

  (6)面向对象办法中,继承是指

  A)一组对象所具备相似性质

  B)一种对象具备另一种对象性质

  C)各对象之间共同性质

  D)类之间共享属性和操作机制

  

  (7)层次型、网状型和关系型数据库划分原则是

  A)记录长度

  B)文献大小

  C)联系复杂限度

  D)数据之间联系方式

  

  (8)一种工作人员可以使用多台计算机,而一台计算机可被各种人使用,则实体工作人员、与实体计算机之间联系是

  A)一对一

  B)一对多

  C)多对多

  D)多对一

  

  (9)数据库设计中反映顾客对数据规定模式是

  A)内模式

  B)概念模式

  C)外模式

  D)设计模

  (10)有三个关系R、S和T如下:

则由关系R和S得到关系T操作是

  A)自然连接

  B)交

  C)投影

  D)并

(11)如下关于构造化程序设计论述中对的是

  A)一种构造化程序必要同步由顺序、分支、循环三种构造构成

  B)构造化程序使用goto语句会很便捷

  C)在C语言中,程序模块化是运用函数实现

  D)由三种基本构造构成程序只能解决小规模问题

  

  (12)如下关于简朴程序设计环节和顺序说法中对的是

  A)拟定算法后,整顿并写出文档,最后进行编码和上机调试

  B)一方面拟定数据构造,然后拟定算法,再编码,并上机调试,最后整顿文档

  C)先编码和上机调试,在编码过程中拟定算法和数据构造,最后整顿文档

  D)先写好文档,再依照文档进行编码和上机调试,最后拟定算法和数据构造

  

  (13)如下论述中错误是

  A)C程序在运营过程中所有计算都以二进制方式进行

  B)C程序在运营过程中所有计算都以十进制方式进行

  C)所有C程序都需要编译链接无误后才干运营

  D)C程序中整型变量只能存储整数,实型变量只能存储浮点数

  

  (14)有如下定义:

int a;long b;double x,y;则如下选项中对的表达式是

  A)a%(int)(x-y)

  B)a=x!

=y;

  C)(a*y)%b

  D)y=x+y=x

  

  (15)如下选项中能表达合法常量是

  A)整数:

1,200

  B)实数:

1.5E2.0

  C)字符斜杠:

‘\’

  D)字符串:

"\007"

(16)表达式a+=a-=a=9值是

  A)9

  B)_9

  C)18

  D)0

  

  (17)若变量已正拟定义,在if(W)printf(“%d\n,k”);中,如下不可代替W是

  A)a<>b+c

  B)ch=getchar()

  C)a==b+c

  D)a++

  

  (18)有如下程序

  #include

  main()

  {int a=1,b=0;

  if(!

a)b++;

  else if(a==0)if(a)b+=2;

  else b+=3;

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

  }

  程序运营后输出成果是

  A)0

  B)1

  C)2

  D)3

  

  (19)若有定义语句inta,b;doublex;则下列选项中没有错误是

  A)switch(x%2)              B)switch((int)x/2.0

  {case0:

a++;break;           {case0:

a++;break;

  case1:

b++;break;            case1:

b++;break;

  default:

a++;b++;            default:

a++;b++;

  }                              }

  C)switch((int)x%2)       D)switch((int)(x)%2)

  {case0:

a++;break;           {case0.0:

a++;break;

  case1:

b++;break;             case1.0:

b++;break;

  default:

a++;b++;             default:

a++;b++;

  }                               }

(20)有如下程序

  #include

  main()

  {inta=1,b=2;

  while(a<6){b+=a;a+=2;b%二10;}

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

  }

  程序运营后输出成果是

  A)5,11

  B)7,1

  C)7,11

  D)6,1

  

  (21)有如下程序

  #include<stdio.h>

  main()

  {inty=10;

  while(y--);

  printf(”Y=%d\n”,Y);

  }

  程序执行后输出成果是

  A)y=0

  B)y=-1

  C)y=1

  D)while构成无限循环

  (22)有如下程序

  #include<stdio.h>

  main()

  {chars[」=”rstuv";

  printf(”%c\n”,*s+2);

  }

  程序运营后输出成果是

  A)tuv

  B)字符tASCII码值

  C)t

  D)出错

  (23)有如下程序

  #include<stdio.h>

  #include<string.h>

  main()

  {charx[]=”STRING”;

  x[0」=0;x[1]=’\0’;x[2」=’0’;

  printf(”%d %d\n”,sizeof(x),strlen(x));

  }

  程序运营后输出成果是

  A)6 1

  B)7 0

  C)6 3

  D)7 1

  

  (24)有如下程序

  #include<stdio.h>

  Int  f(int x);

  main()

  {int n=1,m;

  m=f(f(f(n)));printf(”%d\n”,m);

  }

  int f(int x)

  {return x*2;}

  程序运营后输出成果是

  A)1

  B)2

  C)4

  D)8

  

  (25)如下程序段完全对的是

  A)int*p; scanf("%d",&p);

  B)int*p; scanf(“%d”,p);

  C)intk,*p=&k; scanf("%d",p);

  D)intk,*p:

; *p=&k;  scanf(“%d”,p);

  (26)有定义语句:

int*p[4];如下选项中与此语句等价是

  A)int p[4];

  B)int **p;

  C)int *(p「4」);

  D)int(*p)「4」;

  

  (27)下列定义数组语句中,对的是

  A)int N=10;           B)#defineN10

  int x[N];               intx[N];

  C)int x[0..10];       D)intx[];

  

  (28)若要定义一种具备5个元素整型数组,如下错误定义语句是

  A)int a[5]=﹛0﹜;

  B)int b[]={0,0,0,0,0};

  C)int c[2+3];

  D)int i=5,d[i];

  

  (29)有如下程序

  #include<stdio.h>

  void f(int*p);

  main()

  {int a[5]={1,2,3,4,5},*r=a;

  f(r);printf(”%d\n”;*r);

  }

  voidf(int*p)

  {p=p+3;printf(”%d,”,*p);}

  程序运营后输出成果是

  A)1,4

  B)4,4

  C)3,1

  D)4,1

  (30)有如下程序(函数fun只对下标为偶数元素进行操作)

  #include<stdio.h>

  voidfun(int*a;intn)

  {inti、j、k、t;

  for(i=0;i<n一1;1+=2)

  {k=i;‘

  for(j=i;ja〔k])k=j;

  t=a〔i];a〔i]=a[k];a〔k]=t;

  }

  }

  main()

  {intaa「10」={1、2、3、4、5、6、7},i;

  fun(aa、7);

  for(i=0,i<7;i++)printf(”%d,”,aa[i]));

  printf(”\n”);

  }

  程序运营后输出成果是

  A)7,2,5,4,3,6,1

  B)1,6,3,4,5,2,7

  C)7,6,5,4,3,2,1

  D)1,7,3,5,6;2,1

  

  (31)下列选项中,可以满足“若字符串s1等于字符串s2,则执行ST"规定是

  A)if(strcmp(s2,s1)==0)ST;

  B)if(sl==s2)ST;

  C)if(strcpy(sl,s2)==1)ST;

  D)if(sl-s2==0)ST;

  

  (32)如下不能将s所指字符串对的复制到t所指存储空间是

  A)while(*t=*s){t++;s++;}

  B)for(i=0;t[i]=s[i];i++);

  C)do{*t++=*s++;}while(*s);

  D)for(i=0,j=0;t[i++]=s[j++];);

  (33)有如下程序(strcat函数用以连接两个字符串)

  #include<stdio.h>

  #include<string.h>

  main()

  {chara[20]=”ABCD\OEFG\0”,b[]=”IJK”;

  strcat(a,b);printf(”%s\n”,a);

  }

  程序运营后输出成果是

  A)ABCDE\OFG\OIJK

  B)ABCDIJK

  C)IJK

  D)EFGIJK

  

  (34)有如下程序,程序中库函数islower(ch)用以判断ch中字母与否为小写字母

  #include<stdio.h>

  #include<ctype.h>

  void fun(char*p)

  {int i=0;

  while(p[i])

  {if(p[i]==’’&&islower(p「i-1」))p[i-1]=p[i-1]-‘a’+‘A’;

  i++;

  }

  }

  main()

  {chars1[100]=”abcdEFG!

”;

  fun(s1);printf(”%s\n”,s1);

  }

  程序运营后输出成果是

  A)ab cd EFG!

  B)Ab Cd EFg!

  C)aB cD EFG!

  D)ab cd EFg!

  (35)有如下程序

  #include<stdio.h>

  void fun(intx)

  {if(x/2>1)fun(x/2);

  printf(”%d”,x);

  }

  main()

  {fun(7);printf(”\n”);}

  程序运营后输出成果是

  A)137

  B)731

  C)73

  D)37

  

  (36)有如下程序

  #include<stdio.h>

  intfun()

  {staticintx=1;

  x+=1;returnx;

  }

  main()

  {inti;s=1;

  for(i=1;i<=5;i++)s+=fun();

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

  }

  程序运营后输出成果是

  A)11

  B)21

  C)6

  D)120

  (37)有如下程序

  #inctude<stdio.h>

  #include<stdlib.h>

  Main()

  {int*a,*b,*c;

  a=b=c=(int*)malloc(sizeof(int));

  *a=1;*b=2,*c=3;

  a=b;

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

  }

  程序运营后输出成果是

  A)3,3,3   B)2,2,3   C)1,2,3   D)1,1,3

  

  (38)有如下程序

  #include<stdio.h>

  main()

  {ints,t,A=10;doubleB=6;

  s=sizeof(A);t=sizeof(B);

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

  }

  在VC6平台上编译运营,程序运营后输出成果是

  A)2,4     B)4,4     C)4,8     D)10,6

  

  (39)若有如下语句

  TypedefstructS

  {intg;charh;}T;

  如下论述中对的是

  A)可用S定义构造体变量

  B)可用T定义构造体变量

  C)S是struct类型变量

  D)T是structS类型变量

  

  (40)有如下程序

  #include<stdio.h>

  main()

  {shortc=124;

  c=c_______;

  printf(“%d\n”、C);

  }

  若要使程序运营成果为248,应在下划线处填入是

  A)>>2      B)|248    C)&0248   D)<

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

  请将每空对的答案写在答题卡【1】至【15】序号横线上,答在试卷上不得分。

  

(1)一种栈初始状态为空。

一方面将元素5,4,3,2,1依次入栈,然后退栈一次,再将元素A,B,C,D依次入栈,之后将所有元素所有退栈,则所有元素退栈(涉及中间退栈元素)顺序为【1】

  

  

(2)在长度为n线性表中,寻找最大项至少需要比较【2】次。

  

  (3)一棵二叉树有10个度为1结点,7个度为2结点,则该二叉树共有【3】个结点。

  

  (4)仅由顺序、选取(分支)和重复(循环)构造构成程序是【4】程序。

  

  (5)数据库设计四个阶段是:

需求分析,概念设计,逻辑设计【5】。

  

  (6)如下程序运营后输出成果是【6】。

  #include<stdio.h>

  main()

  {inta=200,b=010;

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

  }

  

  (7)有如下程序

  #include<stdio.h>

  main()

  {int x,Y;

  scanf(”%2d%ld”,&x,&y);printf(”%d\n”,x+y);

  }

  程序运营时输入:

1234567程序运营成果是【7】。

  

  (8)在C语言中,当表达式值为0时表达逻辑值“假”,当表达式值为【8】时表达逻辑值“真”。

  (9)有如下程序

  #include<stdio.h>

  main()

  {inti,n[]={0,0,0,0,0};

  for(i=1;i<=4;i++)

  {n[i]=n[i-1]*3+1;printf(”%d",n[i]);}

  }

  程序运营后输出成果是【9】。

  

  (10)如下fun函数功能是:

找出具备N个元素一维数组中最小值,并作为函数值返回。

请填空。

(设N已定义)

  intfun(intx[N])

  {inti,k=0;

  for(i=0;i

  if(x[i]

  returnx[k];

  }

  

  (11)有如下程序

  #include<stdio.h>

  int*f(int*p,int*q);

  main()

  {intm=1,n=2,*r=&m;

  r=f(r,&n);printf(”%d\n”,*r);

  }

  int*f(int*p,int*q)

  {return(*p>*q)?

p:

q;}

  程序运营后输出成果是【11】

  

  (12)如下fun函数功能是在N行M列整形二维数组中,选出一种最大值作为函数值返回,请填空。

(设M,.N已定义)

  intfun(inta[N][M))

  {inti,j,row=0,col=0;

  for(i=0;i

  for(j=0;j

  if(a[i][j]>a[row][col]){row=i;col=j;}

  return(【12】):

  }

(13)有如下程序

  #include<stdio.h>

  main()

  {int n[2],i,j;

  for(i=0;i<2;i++)n[i]=0;

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

  for(j=0;j<2;j++)n[j]=n[i]A+1;

  printf(”%d\n”,n[1]);

  }

  程序运营后输出成果是【13】

  

  (14)如下程序功能是:

借助指针变量找出数组元素中最大值所在位置并输出该最大值。

请在输出语句中填写代表最大值输出项。

  #include<stdio.h>

  main()

  {inta〔10],*p,*s;

  for(p=a;p-a<10;p++)scanf(”%d”,p);

  for(p=a,s=a;p-a<10;p++)if(*p>*s)S=P;

  printf("max=%d\n”,【14】);

  }

  

  (15)如下程序打开新文献f.txt,并调用字符输出函数将a数组中字符写入其中,请填空。

  #include<stdio.h>

  main()

  {【15】*fp;

  chara[5]={’1’,’2’,’3’,’4’,’5’},i;

  fp=fopen(”f.txt”,”w”);

  for(i=0;i<5;i++)fputc(a[i],fp);

  fclose(fp);

  }

答案:

一、选取题

(1)

B

(2)

C

(3)

D

(4)

A

(5)

A

(6)

D

(7)

D

(8)

C

(9)

C

(10)

A

(11)

C

(12)

B

(13)

B

(14)

A

(15)

D

(16)

D

(17)

A

(18)

A

(19)

C

(20)

B

(21)

B

(22)

C

(23)

B

(24)

D

(25)

C

(26)

C

(27)

B

(28)

D

(29)

D

(30)

A

(30)

A

(32)

C

(33)

B

(34)

C

(35)

D

(36)

B

(37)

A

(38)

C

(39)

B

(40)

D

二、填空题

1:

 1DCAB2345

2:

 n-1

3:

 25

4:

 构造化

5:

 物理设计

6:

 

7:

 15

8:

 非0

9:

 141340

10:

i

11:

2

12:

a[row][col]

13:

3

14:

*s

15:

FILE

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

当前位置:首页 > 高等教育 > 医学

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

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