全国计算机等级考试c语言套题8.docx

上传人:b****7 文档编号:11324331 上传时间:2023-02-26 格式:DOCX 页数:13 大小:20.81KB
下载 相关 举报
全国计算机等级考试c语言套题8.docx_第1页
第1页 / 共13页
全国计算机等级考试c语言套题8.docx_第2页
第2页 / 共13页
全国计算机等级考试c语言套题8.docx_第3页
第3页 / 共13页
全国计算机等级考试c语言套题8.docx_第4页
第4页 / 共13页
全国计算机等级考试c语言套题8.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

全国计算机等级考试c语言套题8.docx

《全国计算机等级考试c语言套题8.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试c语言套题8.docx(13页珍藏版)》请在冰豆网上搜索。

全国计算机等级考试c语言套题8.docx

全国计算机等级考试c语言套题8

 一、选择题

(1)~(10)每小题2分,(11)-(50)每小题1分,共60分)

  下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

  

(1)数据结构中,与所使用的计算机无关的是数据的________。

  A)存储结构  B)物理结构     C)逻辑结构     D)物理和存储结构

  答案:

C

  评析:

数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构及数据上的运算集合。

数据的逻辑结构只抽象的反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。

  

(2)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,

  则出栈序列可能是________。

  A)ABCED    B)DBCEA      C)CDABE      D)DCBEA

  答案:

D

  评析:

栈操作原则上"后进先出",栈底至栈顶依次存放元素A、B、c、D,则表明这4个元素中D是最后进栈,B、c处于中间,A最早进栈。

所以出栈时一定是先出D,再出c,最后出A。

  (3)线性表的顺序存储结构和线性表的链式存储结构分别是________。

  A)顺序存取的存储结构、随机存取的存储结构

  B)随机存取的存储结构、顺序存取的存储结构

  C)随机存取的存储结构、随机存取的存储结构

  D)任意存取的存储结构、任意存取的存储结构

  答案:

B

  评析:

顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式LOC(ai)。

LOC(a1)+(i-1)L计算得到,从而实现了随机存取。

对于链式存储结构,要对某结点进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。

  (4)在单链表中,增加头结点的目的是________。

  A)方便运算的实现          B)使单链表至少有一个结点

  C)标识表结点中首结点的位置     D)说明单链表是线性表的链式存储实现

  答案:

A

  评析:

头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点目的是为了便于运算的实现。

  (5)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指________。

  A)模块间的关系           B)系统结构部件转换成软件的过程描述

  C)软件层次结构           D)软件开发过程

  答案:

B

  评析:

软件设计包括软件结构设计、数据设计、接口设计和过程设计。

其中结构设计是定义软件系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信;过程设计则是把系统结构部件转换成软件的过程性描述。

  (6)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程  图,通常也把这种图称为________。

  A)PAD图    B)N-S图      C)结构图      D)数据流图

  答案:

B

  评析:

常见的过程设计工具有:

程序流程图、N-S图、PAD图和HIPO图。

其中,为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为N-S图。

  (7)数据处理的最小单位是________。

  A)数据    B)数据元素      C)数据项     D)数据结构

  答案:

C

  评析:

数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。

  (8)下列有关数据库的描述,正确的是________。

  A)数据库是一个DBF文件       B)数据库是一个关系

  C)数据库是一个结构化的数据集合   D)数据库是一组文件

  答案:

C

  评析:

数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。

数据库中的数据具有"集成"、"共享"之特点。

  (9)单个用户使用的数据视图的描述称为______。

  A)外模式    B)概念模式     C)内模式      D)逻辑模式

  答案:

A

  评析:

外模式是用户的数据视图,也就是用户所见到的数据模式;全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;存储模式即为内模式。

  (10)需求分析阶段的任务是确定______。

  A)软件开发方法 B)软件开发工具  C)软件开发费用   D)软件系统功能

  答案:

D

  评析:

需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。

  (11)若变量a是int类型,并执行了语句:

a='A'+1.6;,则正确叙述是______。

  A)a的值是字符C          B)a的值是浮点型

  C)不允许字符型和浮点型相加     D)a的值是字符'A'的ASCII值加上l

  答案:

D

  评析:

在赋值表达式中,赋值符右边的值的类型会自动转换成赋值符左边的变量的类型。

在本题中,先用"A"的ASCII码值加上1.46得到66.46,然后将它强制转换成int型,转换后,实数的小数部分全部

  (12)若以下选项中变量已正确定义,则正确的赋值语句是______。

  A)x1=26.8%3;  B)1+2=x2;   C)x3=0x12;     D)x4=1+2=3;

  答案:

C

  评析:

赋值符号"="就是赋值运算符,它的作用是将一个数据赋给一个变量。

如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,所以选项A错误。

在赋值表达式中,赋值运算符的左侧必须是一个变量,所以选项B、D错误。

选项C是将一个十六进制数赋值给变量x3。

  (13)以下程序段的输出结果是______。

  inta=1234;

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

  A)12       B)34       C)1234      D)提示出错、无结果

  答案:

C

  评析:

本题主要考查对primf函数域宽描述符的理解,在这里我们要特别注意:

输出数据的实际精度并不主要决定于格式项中的域宽与精度,也不决定于输入的数据精度,而主要决定于数据在机器内的存储精度。

  (14)以下选项中不属于C语言的类型的是______。

  A)signedshortint         B)unsignedchar

  C)signedlong           D)longshort

  答案:

D

  评析:

c语言中归纳起来,基本类型数据有以下几种:

  [signed]char;unsignedchar;[signed]short[int];unsignedshort[int];[signed]long[int];unsignedlong[int];float;double.

  (15)设有定义:

inta,*pa=&a;以下scanf语句能正确为变量a读入数据的是______。

  A)scanf("%d",B);         B)scanf("%d",a);

  C)scanf("%d",&pa);       D)scanf("%d",*pa);

  答案:

C

  评析:

scanf函数要求其中的输入项必须是地址形式,比如:

普通变量的地址、数组名、指针变量等。

对于普通变量,地址形式为:

&变量名;当一个普通变量的地址赋予了一个指针变量名,scanf函数的输入项处就可以直接写这个指针变量名。

  (16)以下程序的输出结果是______。

  main()

  {inta=5,b=4,c=6,d;

  printf("%d\n",d=a>c?

(a>c?

a:

C):

(b));

  }

  A)5       B)4        C)6        D)不确定

  答案:

B

  评析:

本题最重要的分析d=a>c?

(a>c?

a:

C):

(b)),首先运算括号内的式子a>c?

a:

c,它的值是c的值6,即式子化成d=a>c?

6:

4。

显然a=c,所以将4赋给d。

  (17)以下程序中,while循环的循环次数是______ 。

  main()

  {inti=0:

  while(i<10)

  {if(i<1)continue;

  if(i==5)break;

  i++:

  }

  ……

  }

  A)1       B)10       C)6       D)死循环,不能确定次数

  答案:

D

  评析:

进入循环后,先执行一个条件语句,如果i的值小于l,那么直接进入下一轮循环,因为i的初始值是0,小于l,故直接进入下一轮循环,又因为i的值始终没有改变,所以这个循环成了死循环。

  (18)有以下程序:

  main()

  {

  chark;inti;

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

  {

  scanf("%c",&k);

  switch(k)

  {

  case'0':

printf["another\n"];

  case'1':

printf["number\n");

  }

  }

  }

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

0l<回车>,程序执行后输出结果是______。

  A)another   B)another     C)another     D)number

  number     number       number      number

  another       number

  答案:

C

  评析:

switch语句是多分支选择语句,执行完一个case后面的语句后,流程控制转移到下一个case继续执行。

"case常量表达式"只是起语句标号作用,并不是在该处进行条件判断。

在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。

  (19)以下程序的输出结果是______。

  main()

  {Inta=O,i;

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

  {switch(i)

  { case0:

  case3:

a+=2:

  casel:

  case2:

a+=3:

  default:

a+=5;

  }

  }

  printf("%d\n",a)

  }

  A)3l      B)13       C)10         D)20

  答案:

A

  评析:

switch结构的执行过程同上题。

  (20)己定义c为字符型常量,则下列语句中正确的是______。

  A)C='97'   B)c="97"    C)c=97       D)c="a"

  答案:

C

  评析:

字符变量占内存一个字节,只能放一个字符;字符常量为单引号括起的单个字符;字符串常量为双引号括起的一串字符(可以0个字符,即"",称为空串)。

选项c为字符ASCII码的整数形式。

  (21)以下程序的输出结果是_________。

  main()

  finta=4,b=5,c=0,d;

  d=!

a&&!

b||!

c;

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

  }

  A)l      B)0        C)非0的数     D)-1

  答案:

A

  评析:

!

a值为0,故!

a&&!

b的值为0,!

c的值为l,而0IIl的值应该是l。

所以答案是A

(22)以下程序的输出结果是_________。

  #include

  main()

  {inti=0,a=0;

  while(i<20)

  {for(;;)

  {if((i%10)==0)break;

  else  I--:

  }

  i+=ll;a+=i;

  }

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

  }

  A)21      B)32        C)33        D)11

  答案:

B

  评析:

本题中,有两个循环语句。

首先,i=0,进入while循环,for语句中对循环没有任何条件,故直接进入for循环,因为0%10结果还是O,所以跳出for循环,执行i+:

11,i的值变为11,执行a+=i,a的值变为11:

接着进入下一轮while循环,在for循环中,因为i的值是11,对10取余结果为l,所以执行i自减,i的值变成10,进入又一轮for循环,因为10%10==0,所以跳出for循环,执行i+=1l,i的值变成21,执行a+=i,也就是将21+11的和赋给a,a=32,因为此时i的值不再小于20,所以结束循环,

  故输出结果是32。

  (23)有以下程序:

  intn(intx,inty)

  {retumx>y?

x:

y;}

  Intf2(intx,inty)

  {returnx>y?

y:

x;)

  main()

  {inta=4,b=3,c=5,d,e,f;

  d=f1(a,b);d=fl(d,C);

  e=f2(a,b);e=f2(e,C);

  f=a+b+C-d-e;

  printf("%d,%d,%d\n",d,e,f);

  }

  程序运行后的输出结果是_________。

  A)3,4,5    B)5,3,4     C)5,4,3      D)3,5,4

  答案:

B

  评析:

函数n是一个求两个整数中最大值的函数,函数f2是一个求两个整数中最小值的函数。

在main函数中两次调用函数n,求得变量a、b、、c中的最大值赋值给d;两次调用函数f2,求得变量a、b、c中的最小值赋值给e;表达式a+b+c-d-e得到中间值,输出5,3,4。

  (24)以下程序的输出结果是_________。

  int f()

  {staticinti=0;

  ints=1:

  s+=i;i++;

  returns;

  }

  main()

  {inti,a=0;

  for(i=0;i<5;j++)a+=f();

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

  }

  A)20      B)24       C)25        D)15

  答案:

D

  评析:

静态变量,在编译时就为其分配了存储空间,程序一开始执行便被建立,直到该程序执行结束都存在,而不像动态变量只存在于函数或分程序被调用期间。

在函数多次被调用的过程中静态局部变量的值具有可继承性。

  (25)已定义以下函数:

  fun(int*p)

  {retum*p;}

  该函数的返回值是______。

  A)不确定的值 B)形参p中存放的值 C)形参p所指存储单元中的值 D)形参p的地址值

  答案:

C.

  评析:

函数首部fun(int*p)中+p表示这是一个指针变量,指向整型数据,用来从主调函数接收地址;而语句return*p;中的*p代表p所指向存储单元中的值。

  (26)若有以下程序

  #include

  Voidf(intn);

  main()

  {voidf(intn);

  f(5);

  }

  Voidf(intn)

  {print("%d\n",n);}

  则以下叙述中不正确的是______ 。

  A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

  B)若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f

  C)对于以上函数程序,编译时系统会提示出错信息;提示对f函数重复说明

  D)函数f无返回值,所以可用void将其类型定义为无值型

  答案:

C

  评析:

一个函数在一个文件中的定义只能有一次,但对它的声明却可以有很多个。

一个函数可以正确调用在当前函数之前声明的函数

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

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

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

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