百度
360搜索
搜狗搜索

计算机二级c语言考试真题,计算机二级考试C语言选择题(2)详细介绍

本文目录一览: 计算机等级二级C语言模拟试题1(八)

一、选择题(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)以下程序段的输出结果是______。
   int a=1234;
   printf("%2d\n",a);
   A)12       B)34        C)1234       D)提示出错、无结果
   答案:C
   评析:本题主要考查对primf函数域宽描述符的理解,在这里我们要特别注意:输出数据的实际精度并不主要决定于格式项中的域宽与精度,也不决定于输入的数据精度,而主要决定于数据在机器内的存储精度。
   (14)以下选项中不属于C语言的类型的是______。
   A)signed short int         B)unsigned char
   C)signed long            D)long short
   答案:D
   评析:c语言中归纳起来,基本类型数据有以下几种:
   [signed]char;unsigned char;[signed]short[int];unsigned short[int];[signed]long[int];unsigned long[int];float;double.
   (15)设有定义:int a,*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()
   {int a=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()
   { int i=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()
   {
   char k;int i;
   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()
   {Int a=O,i;
   for(i=1;i<5;i++)
   {switch(i)
   { case 0:
   case 3:a+=2:
   case l:
   case 2: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()
   f int a=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()
   {int i=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+1 1的和赋给a,a=32,因为此时i的值不再小于20,所以结束循环,
   故输出结果是32。
   (23)有以下程序:
   int n(int x,int y)
   {retum x>y?x:y;}
   Int f2(int x,int y)
   {return x>y?y:x;)
   main()
   { int a=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()
   {static int i=0;
   int s=1:
   s+=i;i++;
   return s;
   }
   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
   Void f(int n);
   main()
   {void f(int n);
   f(5);
   }
   Void f(int n)
   {print("%d\n",n);}
   则以下叙述中不正确的是______ 。
   A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
   B)若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f
   C)对于以上函数程序,编译时系统会提示出错信息;提示对f函数重复说明
   D)函数f无返回值,所以可用void将其类型定义为无值型
   答案:C
   评析:一个函数在一个文件中的定义只能有一次,但对它的声明却可以有很多个。一个函数可以正确调用在当前函数之前声明的函数。

计算机二级C语言操作题积累

2017年计算机二级C语言操作题积累
  多媒体计算机是当前计算机领域中最引人注目的高新技术之一。多媒体计算机就是利用计算机技术、通信技术和大众传播技术,来综合处理多种媒体信息的计算机。下面是我整理的关于计算机二级C语言操作题积累,欢迎大家参考!
  一、单选题(每小题1分,共40分)
  1[单选题] 下列关于综合布线系统的描述中,错误的是(  )。
  A.双绞线扭绞可以减少电磁干扰
  B.管理子系统设置在楼层配线间内
  C.多介质插座是用来连接铜缆和光纤的
  D.对于建筑群子系统直埋布线是最理想的方式
  2[单选题] IP地址块59.67.79.128/28、59.67.79.144/28和59.67.79.160/27经聚合后可用地址数为(  )。
  A.62
  B.64
  C.126
  D.128
  3[单选题] IP地址块202.111.15.128/28、202.111.15.144/28和202.111.15.160/28经过聚合后可用的地址数为(  )。
  A.40
  B.42
  C.44
  D.46
  4[单选题] 下列攻击手段中,基于网络的入侵防护系统无法阻断的是(  )。
  A.SYNFlooding
  B.SQL注入
  C.DDOS
  D.PingofDeath
  5[单选题] 差异备份、增量备份、完全备份三种备份策略的备份速度由快到慢依次为(  )。
  A.增量备份、差异备份、完全备份
  B.差异备份、增量备份、完全备份
  C.完全备份、差异备份、增量备份
  D.完全备份、增量备份、差异备份
  6[单选题] CiscoPIX525防火墙用来允许数据流从具有较低安全级接口流向较高安全级接口的配置命令是(  )。
  A.fixup
  B.conduit
  C.global
  D.nameif
  7[单选题] 在Windows2003系统下DHCP服务器中添加排除时,应输入的信息是(  )。
  A.起始IP地址和结束IP地址
  B.起始IP地址和网关地址
  C.起始IP地址和MAC地址
  D.起始IP地址和掩码
  8[单选题] 下列关于服务器技术的描述中,错误的是(  )。
  A.集群系统中一台主机出现故障时不会影响系统的性能
  B.采用RISC结构处理器的服务器通常使用UNIX系统
  C.热插拔功能允许用户在不切断电源的情况下更换硬盘、电源等
  D.分布式内存访问(NUMA.技术将对称多处理器(SMP)和集群(Cluster)技术结合起来
  9[单选题] 下列对交换机中交换表的描述中,错误的是(  )。
  A.在一些高端交换机中,交换表通常被保存在CAM存储器中
  B.交换表中没有接收帧的目的MAC地址时,交换机用Flood技术转发该帧
  C.使用“showmac-addres-table”命令可显示小型交换机的交换表内容
  D.交换表的内容包括目的IP地址及其所对应的交换机端口号
  10[单选题] 下列关于无线网络HipeR1AN/2协议的描述中,错误的.是(  )。
  A.采用5GHz工作频段
  B.上行速率最多可达54Mbps
  C.室外最大覆盖范围为30米
  D.可支持面向连接的传输服务
  二、综合题(每空2分,共40分)
  (1)打开工作簿文件EXCEL.xlsx,将工作表sheetl的Al:El单元格合并为一个单元格,内容水平居中,计算“合计”列的内容,将工作表命名为“科研经费使用情况表”.
  (2)选取“科研经费使用情况表”的“项目编号”列和“合计”列的单元格内容,建立“簇状棱锥图”,x轴上的项为项目编号,图表标题为“科研经费使用情况图”,插入到表的A7:El8单元格区域内.
  三、演示文稿题
  打开考生文件夹下的演示文稿yswg.pptx,按照下列要求完成对此文稿的修饰并保存.

阅读更多 >>>  结构体类型,C语言中定义结构体类型变量的方法?

  (1)整个演示文稿设置成“时装设计”模板;将全部幻灯片切换效果设置成“分割”.
  (2)将第二张幻灯片对象部分的动画效果设置为“向内溶解”;在演示文稿的开始处插入一张“标题幻灯片”,作为文稿的第一张幻灯片,主标题键人“讽刺与幽默”,并设置为60磅、加粗、红色(请用自定义标签中的红色250,绿色1,蓝色1).
  二、电子表格题
  (1)【解题步骤】
  步骤1:通过“答题”菜单打开EXCEL.xlsx文件,选中A1:E1单元格,在【开始】功能区的【对齐方式】分组中,单击“合并后居中”按钮,合并单元格并使内容居中。
  步骤2:计算“合计”列内容。在E3单元格中插入公式“=SUM(B3:D3)”,并按回车键,将鼠标移动到E3单元格的右下角,按住鼠标左键不放向下拖动即可计算出其他行的值。
  注:当鼠标指针放在已插入公式的单元格的右下角时,它会变为小十字“+”,按住鼠标左键拖动其到相应的单元格即可进行数据的自动填充。
  步骤3:双击现有名称,输入新名称“科研经费使用情况表”。
  步骤4:保存文件。
  (2)【解题步骤】
  步骤1:按照要求建立“簇状棱锥图”。选中“项目编号”列和“合计”列,在【插入】功能区的【图表】分组中,单击“创建图表”按钮,弹出“插入图表”对话框,在“柱形图”中选择“簇状棱锥图”,单击“确定”按钮,即可插入图表。
  步骤2:按照题目要求设置图表标题。在插入的图表中,选中图表标题,改为“科研经费使用情况图”。
  步骤3:调整图的大小并移动到指定位置。选中图表,按住鼠标左键单击图表不放并拖动,将其拖动到A7:El8单元格区域内。
  注:不要超过这个区域。如果图表过大,无法放下,可以将鼠标放在图表的右下角,当鼠标指针变为“、”时。按住左键拖动可以将图表缩小到指定区域内。
  步骤4:保存文件。
  三、演示文稿题
  (1)【解题步骤】
  步骤1:通过“答题”菜单打开ysw9.pptx文件,按照题目要求设置幻灯片模板。选中幻灯片,在【设计】功能区的【主题】分组中,单击“其他”下拉三角按钮,选择“时装设计”模板。
  步骤2:按照题目要求设置幻灯片的切换效果。选中幻灯片,在【切换】功能区的【切换到此幻灯片】分组中,单击“其他”下拉三角按钮,在“细微型”选项组中选择“分割”效果。
  (2)【解题步骤】
  步骤1:按照题目要求设置剪贴画的动画效果。选中第二张幻灯片的图片,在【动画】功能区的【动画】分组中,单击“其他”下拉三角按钮,选择“更多进入效果”选项,弹出“更改进入效果”对话框。在“基本型”选项组中选择“向内溶解”效果,单击“确定”按钮。
  步骤2:按照要求插入新幻灯片。用鼠标右键单击第一张幻灯片前面的位置,在【开始】功能区的【幻灯片】分组中,单击“新建幻灯片”下拉三角按钮,选择“标题幻灯片”选项。新插入的幻灯片作为第一张幻灯片。
  步骤3:在第一张幻灯片的“单击此处添加标题”处输入“讽刺与幽默”。
  步骤4:按题目要求设置字体。选中“讽刺与幽默”,在【开始】功能区的【字体】分组中,单击“字体”按钮,弹出“字体”对话框。在“字体”选项卡中,设置“大小”为“60磅”,设置“字体样式”为“加粗”。单击“字体颜色”下拉三角按钮,选择“其他颜色”选项,弹出“颜色”对话框。单击“自定义”选项卡,设置“红色”为“250”,设置“绿色”为…l’,设置“蓝色”为…l’,单击“确定”按钮,再单击“确定”按钮。
  步骤5:保存文件。
  三、应用题(共20分)
;

9月计算机二级《C语言》上机考题及答案

  1、以下选项中属于C语言的数据类型是( )。
  A. 复合型
  B. 双精度型
  C. 逻辑型
  D. 集合型
  2、以下说法中正确的是( )。
  A. C语言程序总是从第一个的函数开始执行
  B. 在C语言程序中,要调用的函数必须在main()函数中定义
  C. C语言程序总是从main()函数开始执行
  D. C语言程序中的main()函数必须放在程序的开始部分
  3、选出下列标识符中不是合法的标识符的是( )。
  A. hot_do
  B. cat1
  C. _pri
  D. 2ab
  4、下列描述中不正确的是( )。
  A、字符型数组中可能存放字符串。
  B、可以对字符型数组进行整体输入、输出。
  C、可以对整型数组进行整体输入、输出。
  D、 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。
  5、若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( )。
  A. p+1
  B. a+1
  C. a++
  D. ++p
  6、设有如下定义: int x=10,y=3,z; 则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。
  A. 1
  B. 0
  C. 4
  D. 3
  7、定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句for(i=0;i<3;i++) printf("%d",x[i][2-i]); 的输出结果是( )
  A. 1 5 9
  B. 1 4 7
  C. 3 5 7
  D. 3 6 9
  8、读出以下语句的输出结果是( )。
  int x=10,y=10;
  printf(“%d %d\n”,x--,--y);
  A. 10 10
  B. 9 9
  C. 9 10
  D. 10 9
  9、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )。
  if(x++>5) printf("%d",x);
  else printf("%d\n",x - -);
  A. 7和5
  B. 6和3
  C. 7和4
  D. 6和4
  10、设有如下定义:char *aa[2]={"abcd","ABCD"};则以下说法中正确的是( )。
  A)aa数组成元素的值分别是"abcd"和ABCD"
  B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
  C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的`首地址
  D)aa数组的两个元素中各自存放了字符’a’和’A’的地址
  11、以下语句的输出结果是( )。
  int a=-1,b=4,k;
  k=(+ +a<0)&&!(b - -<=0);
  printf("%d,%d,%d\n",k,a,b);
  A. 1,0,4
  B. 1,0,3
  C. 0,0,3
  D. 0,0,4
  12、下列程序的输出结果是( )。
  char *p1="abcd", *p2="ABCD", str[50]="xyz";
  strcpy(str+2,strcat(p1+2,p2+1));
  printf("%s",str);
  A. xyabcAB
  B. abcABz
  C. ABabcz
  D. xycdBCD
  13、执行下面的程序后,a的值是( )。
  #define SQR(X) X*X
  main( )
  { int a=10,k=2,m=1;
  a/=SQR(k+m)/SQR(k+m);
  printf("%d\n",a); }
  A. 10
  B. 1
  C. 9
  D. 0
  14、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。
  A.P+i*2
  B. P+(i-1)*2
  C. P+(i-1)
  D. P+i
  15、下列程序执行后输出的结果是( )。
  int d=1;
  fun (int p)
  { int d=5;
  d + =p + +;
  printf("%d,",d); }
  main( )
  { int a=3;
  fun(a);
  d + = a + +;
  printf("%d\n",d); }
  A. 8, 4
  B. 9, 6
  C. 9, 4
  D. 8, 5
  16、表达式:10!=9的值是( )。
  A. true
  B. 非零值
  C. 0
  D. 1
  17、若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是( )。
  A. i= *p;
  B. *p=*&j;
  C. i=&j;
  D. i=* *p;
  18、不能把字符串:Hello!赋给数组b的语句是( )。
  A. char b[10]={’H’,’e’,’l’,’l’,’o’,’!’};
  B. char b[10]; b="Hello!";
  C. char b[10]; strcpy(b,"Hello!");
  D.char b[10]="Hello!";
  19、在C程序中有如下语句:char *func(int x,int y); 它是( )。
  A. 对函数func的定义。
  B. 对函数func的调用。
  C.对函数func的原型说明。
  D. 不合法的。
  20、以下程序的输出结果是( )。
  char str[15]=”hello!”;
  printf(“%d\n”,strlen(str));
  A. 15
  B. 14
  C. 7
  D. 6
  参考答案:
  1、B 2、C 3、D 4、C 5、C 6、D 7、C 8、D 9、C 10、D
  11、D 12、D 13、B 14、B 15、A 16、D 17、B 18、B 19、C 20、D

计算机二级C语言测试题及答案解析

2017年计算机二级C语言测试题及答案解析
  全国计算机等级考试(National Computer Rank Examination,以下简称 NCRE),是经原国家教育委员会(现教育部)批准,由教育部考试中心主办,面向社会,用于考查非计算机专业应试人员计算机应用知识与技能的全国性计算机水平考试体系。下面是2017年计算机二级C语言测试题及答案解析。欢迎阅读。

  2017年计算机二级C语言测试题及答案解析   1.(A )是构成C语言程序的基本单位。
  A、函数
  B、过程
  C、子程序
  D、子例程
  2.C语言程序从 C 开始执行。
  A、 程序中第一条可执行语句
  B、 程序中第一个函数
  C、 程序中的main函数
  D、包含文件中的第一个函数
  3、以下说法中正确的是( C )。
  A、C语言程序总是从第一个定义的函数开始执行
  B、在C语言程序中,要调用的函数必须在main( )函数中定义
  C、C语言程序总是从main( )函数开始执行
  D、C语言程序中的main( )函数必须放在程序的开始部分
  4.下列关于C语言的说法错误的是( B ) 。
  A、 C程序的工作过程是编辑、编译、连接、运行
  B、 C语言不区分大小写。
  C、 C程序的三种基本结构是顺序、选择、循环
  D、C程序从main函数开始执行
  5.下列正确的标识符是(C )。
  A、-a1
  B、a[i]
  C、a2_i
  D、int t
  5~8题为相同类型题
  考点:标识符的命名规则
  只能由字母、数字、下划线构成
  数字不能作为标识符的开头
  关键字不能作为标识符
  选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)
  6.下列C语言用户标识符中合法的是(B )。
  A、3ax
  B、x
  C、case
  D、-e2 E)union
  选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);
  7.下列四组选项中,正确的C语言标识符是( C )。
  A、 %x
  B、a+b
  C、a123
  D、123
  选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)
  8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。
  A、print _3d db8 aBc
  B、I\am one_half start$it 3pai
  C、str_1 Cpp pow while
  D、Pxq My->book line# His.age
  选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)
  9.C语言中的简单数据类型包括(D )。
  A、整型、实型、逻辑型
  B、整型、实型、逻辑型、字符型
  C、整型、字符型、逻辑型
  D、整型、实型、字符型
  10.在C语言程序中,表达式5%2的结果是 C 。
  A、2.5
  B、2
  C、1
  D、3
  %为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1; 5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;
  /为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2
  11.如果int a=3,b=4;则条件表达式"aA、 3
  B、 4
  C、 0
  D、1
  详见教材P97.
  表达式1?表达式2:表达式3
  先计算表达式1,
  若表达式1成立, 则选择计算表达式2,并表达式2的值作为整个大表达式的值;
  若表达式1不成立,则选择计算表达式3,并将表达式3的值作为整个大表达式的值
  此题中的aa为3,b为4。a12.若int x=2,y=3,z=4 则表达式x
  A、4
  B、3
  C、2
  D、0
  E)1
  13.C语言中,关系表达式和逻辑表达式的值是( B ) 。
  A、0
  B、 0或1
  C、 1
  D、‘T’或’F’
  14. 下面( D )表达式的值为4.
  A、 11/3
  B、 11.0/3
  C、 (float)11/3
  D、 (int)(11.0/3+0.5)
  14~16题为同一类型
  详见教材P54~56.
  (1)相同数据类型的元素进行数学运算(+、-、*、/)得到结果还保持原数据类型。
  (2)不同数据类型的元素进行数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。
  选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.
  选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0/3=3.666666
  选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同
  选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为4
  15.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( B )
  A、b=1.0/a
  B、b=(float)(1/A、
  C、b=1/(float)a
  D、b=1/(a*1.0)
  16. 若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是(A)
  A、1
  B、4
  C、4.333333
  D、4.6
  “(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为1
  17. 以下对一维数组a的正确说明是: D
  A、char a(10);
  B、 int a[];
  C、int k=5,a[k];
  D、char a[3]={‘a’,’b’,’c’};
  详见教材P143~144,一维数组的定义、初始化
  类型符 数组名 [常量表达式]
  类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式是指数组的长度(数组中包含元素的个数),其值只能是整数,不可以是变量,而且从1开始计数。
  选项A,常量表达式只能放在中括号 [ ]中
  选项B,只有在对数组初始化(即赋值)的时候才可以省略数组的长度,B中并未对a进行初始化。
  选项C,常量表达式不能为变量。
  18.以下能对一维数组a进行初始化的.语句是:( C )
  A、int a[5]=(0,1,2,3,4,)
  B、 inta(5)={}
  C、 int a[3]={0,1,2}
  D、 int a{5}={10*1}
  详见教材P145,一维数组的定义、初始化
  选项B,D,常量表达式只能放在中括号 [ ]中
  选项A,数组可以看做是若干个相同数据类型元素的有序集合,因此以集合的形式对其初始化,使用{ }对其初始化,选项A用了().
  19.在C语言中对一维整型数组的正确定义为 D 。
  A、int a(10);
  B、int n=10,a[n];
  C、int n;a[n];
  D、#define N 10
  int a[N];
  20、已知:int a[10]; 则对a数组元素的正确引用是( D )。
  A、a[10]
  B、a[3.5]
  C、a(5)
  D、a[0]
  详见教材P144,数组元素的引用
  数组名[下标]
  引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数
  int a[10]表示定义了一个包含10个整型数据的数组a,数组元素的逻辑地址下标范围为0~9,即a[0] 表示组中第1个元素; a[1] 表示组中第2个元素; a[2] 表示组中第3个元素; ......;a[9] 表示组中第10个元素.
  选项A,超过了数组a的逻辑地址下标范围;
  选项B,逻辑地址下标只能为整数
  选项C,逻辑地址下标只能放在[ ]中
  21.若有以下数组说明,则i=10;a[a[i]]元素数值是(C )。
  int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
  A、10
  B、9
  C、6
  D、5
  先算a[a[i]]内层的a[i],由于i=10,因此a[i]即a[10].
  a[10]对应下面数组中的元素为9. 因此a[a[i]]即为a[9]
  a[9]对应下面数组中的元素为6. 因此a[9]即为6
  22.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( B )
  A、2
  B、3
  C、4
  D、无确定值
  5 7
  D、3 6 9
  二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行
  23.对二维数组的正确定义是(C )
  详见教材P149~152,二维数组的定义、初始化
  类型符 数组名 [常量表达式][常量表达式]
  二维数组可以看做是矩阵
  类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量,而且从1开始计数。
  一维数组初始化时可以省略数组长度
  二维数组初始化时可以省略行数,但不能省略列数
  选项A,B,都省略了列数
  选项D,不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的[]中
  A、int a[ ][ ]={1,2,3,4,5,6};
  B、int a[2] []={1,2,3,4,5,6};
  C、int a[ ] [3]={1,2,3,4,5,6};
  D、int a[2,3]={1,2,3,4,5,6};
  24.已知int a[3][4];则对数组元素引用正确的是__C___
  A、a[2][4]
  B、a[1,3]
  C、a[2][0]
  D、a(2)(1)
  详见教材P150,数组元素的引用
  数组名[下标] [下标]
  引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数
  第一个[下标]表示行逻辑地址下标,第二个[下标]表示列逻辑地址下标。
  本题图示详见P149图6.7
  因此a的行逻辑地址范围0~2;a的列逻辑地址范围0~3;
  选项A,列逻辑地址下标超过范围
  选项B,D,的引用形式不正确。
  25.C语言中函数返回值的类型是由 A 决定的.
  A、函数定义时指定的类型
  B、 return语句中的表达式类型
  C、 调用该函数时的实参的数据类型
  D、形参的数据类型
  26. 在C语言中,函数的数据类型是指(A )
  A、 函数返回值的数据类型
  B、 函数形参的数据类型
  C、 调用该函数时的实参的数据类型
  D、任意指定的数据类型
  27.在函数调用时,以下说法正确的是( B )
  A、函数调用后必须带回返回值
  B、实际参数和形式参数可以同名
  C、函数间的数据传递不可以使用全局变量
  D、主调函数和被调函数总是在同一个文件里
  28. 在C语言中,表示静态存储类别的关键字是: ( C )
  A、 auto
  B、 register
  C、static
  D、extern
  29.未指定存储类别的变量,其隐含的存储类别为(A )。
  A、auto
  B、static
  C、extern
  D、register
  30. 若有以下说明语句:
  struct student
  { int num;
  char name[ ];
  float score;
  }stu;
  则下面的叙述不正确的是: (D )
  A、 struct是结构体类型的关键字
  B、 struct student 是用户定义的结构体类型
  C、 num, score都是结构体成员名
  D、 stu是用户定义的结构体类型名
  31.若有以下说明语句:
  struct date
  { int year;
  int month;
  int day;
  }brithday;
  则下面的叙述不正确的是__C___.
  A、 struct是声明结构体类型时用的关键字
  B、 struct date 是用户定义的结构体类型名
  C、 brithday是用户定义的结构体类型名
  D、year,day 都是结构体成员名
  32. 以下对结构变量stul中成员age的非法引用是 B
  struct student
  { int age;
  int num;
  }stu1,*p;
  p=&stu1;
  A、 stu1.age
  B、 student.age
  C、 p->age
  D、(*p).age
  33.设有如下定义:
  struck sk
  { int a;
  float b;
  }data;
  int *p;
  若要使P指向data中的a域,正确的赋值语句是 C
  A、 p=&a;
  B、 p=datA、a;
  C、p=&datA、a;
  D、*p=datA、a;
  34.设有以下说明语句:
  typedef struct stu
  { int a;
  float b;
  } stutype;
  则下面叙述中错误的是( D )。
  A、struct是结构类型的关键字
  B、struct stu是用户定义的结构类型
  C、a和b都是结构成员名
  D、stutype是用户定义的结构体变量名
  35.语句int *p;说明了 C 。
  A、p是指向一维数组的指针
  B、p是指向函数的指针,该函数返回一int型数据
  C、p是指向int型数据的指针 // 指针的定义教材P223
  D、p是函数名,该函数返回一指向int型数据的指针
  36.下列不正确的定义是( A )。
  A、int *p=&i,i;
  B、int *p,i;
  C.int i,*p=&i;
  D、int i,*p;
  选项A先定义一个整型指针变量p,然后将变量i的地址赋给p。然而此时还未定义变量i因此编译器无法获得变量i的地址。(A与C对比,选项C先定义变量i,则在内存中为i分配空间,因此i在内存空间的地址就可以确定了;然后再定义p,此时可以为p赋i的地址,C正确)
  37. 若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是: ( D )
  A、p=q
  B、*p=*q
  C、n=*q
  D、p=n
  p,q同为整型指针变量,二者里面仅能存放整型变量的地址。
  选项A,q中为地址,因此可将此地址赋给p
  选项B,*p表示p所指向对象n的内容,即一个整数;*q表示q所指向对象的内容,由于在定义q时为其初始化,将p中n的地址给q,因此p中存放n的地址,*q表示q所指向对象n的内容.因此*p=*q 相当于 n=n;
  选项C,n=*q 等价于n=n;
  选项D,p中只能存放地址,不能将n中的整数值赋给p
  38.有语句:int a[10],;则 B 是对指针变量p的正确定义和初始化。
  A、int p=*a;
  B、int *p=a;
  C、int p=&a;
  D、int *p=&a;
  选项A,a是数组名,不是指针变量名,因此不可用*标注数组名a
  选项C,a是数组名,数组名就是地址,无需再用地址符号。而且在定义指针变量p时,应在变量名前加*,标明p是指针变量
  选项D,a是数组名,数组名就是地址,无需再用地址符号。
  39.若有说明语句“int a[5],*p=a;”,则对数组元素的正确引用是( C )。
  A、a[p]
  B、p[a]
  C、*(p+2)
  D、p+2
  首先定义一个整型数组a,a的长度为5,然后定义一个指针变量p,并同时对p进行初始化,将数组a的地址赋给p。因此此时p中存放的数组a的首地址,即数组中第一个元素a[0]的地址。
  对于数组元素下标的引用(详见p144), 一般形式 数组名[下标] 其中下标为逻辑地址下标,从0开始计数,方括号中的下标可以是变量,可以是表达式,但结果一定要是整数。
  选项A,p中存放的是地址,不是整数,不能做数组元素的下标
  选项B,a是数组名,数组名就是地址,不是整数,不能做数组元素的下标
  选项C,(重点!!!详见p231~234) p+2表示指向同一数组中的下两个元素的地址,当前p指向a[0],则p+2表示a[2]的地址,因此*(p+2)表示a[2]的内容
  40. 有如下程序
  int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a;
  则数值为9的表达式是 B
  A、 *P+9
  B、 *(P+8)
  C、 *P+=9
  D、P+8
  (重点!!!详见p231~234)
  首先定义一个整型数组a,a的长度为5,然后定义一个指针变量P,并同时对P进行初始化,将数组a的地址赋给P。因此此时P中存放的数组a的首地址,即数组中第一个元素a[0]的地址。
  数组中9对应的是a[8], 选项B,P+8表示数组中后8个元素的地址,即a[8]的地址。*(P+8)则表示该地址内所存放的内容,即a[8]的值。
  选项A,*P表示P所指向对象的内容,此时P指向a[0], *P即a[0]的值1. *P+9=1+9=10
  选项C,*P表示P所指向对象的内容,此时P指向a[0], *P即a[0]的值。因此*P+=9 即*P =*P+9, 等价于a[0]=a[0]+9.
  选项D,P+8表示数组中后8个元素的地址,即a[8]的地址,而非a[8]中的值。
  41. 在C语言中,以 D 作为字符串结束标志
  A、’\n’
  B、’ ’
  C、 ’0’
  D、’\0’
  42.下列数据中属于“字符串常量”的是( A )。
  A、“a”
  B、{ABC}
  C、‘abc\0’
  D、‘a’
  若干个字符构成字符串
  在C语言中,用单引号标识字符;用双引号标识字符串
  选项B,C,分别用{}和’’标识字符串
  选项D,标识字符。
  43.已知char x[]="hello", y[]={'h','e','a','b','e'};, 则关于两个数组长度的正确描述是 B .
  A、相同
  B、x大于y
  C、x小于y
  D、以上答案都不对
  C语言中,字符串后面需要一个结束标志位'\0',通常系统会自动添加。
  对一维数组初始化时可采用字符串的形式(例如本题数组x),也可采用字符集合的形式(例如本题数组y)。在以字符串形式初始化时,数组x不尽要存储字符串中的字符,还要存储字符串后的结束标志位,因此数组x的长度为6;在以字符集合形式初始化时,数组y,仅存储集合中的元素,因此数组y长度为5
;

阅读更多 >>>  综艺字体是什么结构类型(综艺字体的结构类型是什么?)

计算机二级考试C语言选择题(2)

  { char x=0xFFFF;printf("%d\n",x--);}

  A.-32767

  B.FFFE

  C.1

  D.32768

  22.下面的函数调用语句中func函数的实参个数是( )。

  func((f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)))

  A.3

  B.4

  C.5

  D.8

  23.语句“printf("akbre"\’hi\’y\\\bou\n")”;的输出结果是( )。

  A.akbre\’hi\’y ’\\\bou

  B.a\bre\’hi\\y\bou

  C.re ’hi’you

  D.abre’hi’y\bou

  24.下面程序输出的是( )。

  main()

  { int t=l;fun(fun(t));}

  fun(int h)

  { static int a[3]={1.2.3};

  int k;

  for(k=0;k<3;k++)a[k]+=a[k]-h;

  for(k=0;k<3;k++)printf("%d",a[k]);

  printf("\n");

  return(a[h]);}

  A.1,2,3,

  1,5,9,

  B.1,3,5,

  1,3,j,

  C.1,3,5,

  0,4,8,

  D.1,3。5,

  -1,3,7,

  25.以下叙述中正确的是( )。

  A.预处理命令行必须位于C源程序的起始位置

  B.在C语言中,预处理命令行都以“#”开头

  c.每个C程序必须在开头包含预处理命令行:#include

  D.C语言的预处理不能实现宏定义和条件编译的功能

  26.为了避免在嵌套的条件语句if else中产生二义性,C语言规定,else子句总是与( )配对。

  A.缩排位置相同if

  B.其前面最近的if

  C.其后面最近的if

  D.同一行上的if

  27.设有下列程序段:

  char str[]="HelloWorld":

  char* plr;

  ptr=str:

  执行上面的程序段后,*(ptr+10)的'值为( )。

  A.’\0 ’

  B.’0’

  C.不确定的值

  D.’0’的地址

  28.有以下程序:

  void swap(char*x,char*y)

  { char t;

  t=*x;*x=*y;*y=t;

  }

  main()

  { char*s1="abe",*s2="123":

  swap(s1,s2);

  printf("%s,%s\n",s1,s2);

  }

  程序执行后的输出结果是( )。

  A.123,abe

  B.abc.123

  C.1bc,a23

  D.321,cba

  29.下列程序的运行结果是( )。

  #include

  main()

  { static char a[]="Languagef",b[]="programe":

  char*p1,*p2;int k;

  p1=a;p2=b;

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

  if(*(p1+k)==*(p2+k))

  printf("%c",*(p1+k)):

  }

  A.gae

  B.ang

  C.program

  D.有语法错

  30.下列程序的运行结果为( )。

  #define MAX(x,y)(x)>(y)?(x):(y)

  main()

  { int a=2,b=3,C=1,d=3,t:

  printf("%d\n",(MAX(a+h,c+d))*100):

  }

  A.500

  B.5

  C.4

  D.400

  31.设int x=7,则~x的值是(  )。

  A.-8

  B.7

  C.-1

  D.1

  32.有以下程序:

  void fun(char*a,char*b)

  {a=b; (*a)++; }

  main(  )

  {char c1=’A ’,c2=’a’,*p1,*p2;

  p1=&c1;p2=*c2;fun(p1,p2);

  printf("%C%c\n",c1,c2);

  }

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

  A.Ab

  B.aa

  C.Aa

  D.Bb

  33.有以下程序:

  int fun(int n)

  {if(n==l)return l;

  else return(n+fun(n一1)):

  }

  main(  )

  {int x;

  scanf("%d",&x);x=fun(x);printf("%d\n",

  x):

  }

  执行程序时,给变量X输入10,程序的输出结果是(  )。

  A.55

  B.54

  C.65

  D.45

  34.有以下程序:

  void f(int x,int y)

  {int t;

  if(x  }

  main(  )

  {int a=4,b=3,c=5;

  f(a,b);f(a,c);f(b,c);

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

  }

  执行后输出结果是(  )。

  A.3,4,5

  B.5,3,4

  C.5,4,3

  D.4,3,5

  35.以下程序的输出结果是(  )。

  main(  )

  {char*s="12134211";

  int v[4]=(0,0,0,0),k,i;

  for(k=0;s[k];k++)

  {switch(s[k])

  {case’1’:i=0;

  case’2’:i=1;

  case’3’:i=2;

计算机二级C语言笔试题和面试题答案目

  如下这份计算机二级C语言笔试题目对于要考基计算机二级证书的朋友来说,应该会很有帮助,需要的朋友赶紧收藏吧!
  一、选择题((1)-(10),(21)-(40)每题2分,(11)-(20)每题1分,共70分)
  下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
  1. 下列叙述中正确的是
  A 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
  B 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
  C 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
  D 上述三种说法都不对 答案:B
  2. 下列叙述中正确的是
  A 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
  B 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
  C 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
  D 上述三种说法都不对 答案:C
  3. 软件测试的目的是
  A 评估软件可靠性 B 发现并改正程序中的错误 C 改正程序中的错误
  D 发现程序中的错误 答案:B
  4. 下面描述中,不属于软件危机表现的是
  A 软件过程不规范 B 软件开发生产率低 C 软件质量难以控制
  D 软件成本不断提高 答案:A
  5. 软件生命周期是指
  A 软件产品从提出、实现、使用维护到停止使用退役的过程
  B 软件从需求分析、设计、实现到测试完成的过程 C 软件的开发过程
  D 软件的运行维护过程 答案:A
  6. 面向对象方法中,继承是指
  A 一组对象所具有的相似性质 B 一个对象具有另一个对象的性质 C 各对象之间的共同性质 D 类之间共享属性和操作的机制 答案:D
  7. 层次型、网状型和关系型数据库划分原则是
  A 记录长度 B 文件的大小 C 联系的复杂程度
  D 数据之间的联系方式 答案:D
  8. 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员、与实体计算机之间的联系是
  A 一对一B 一对多C 多对多D 多对一 答案:C
  9. 数据库设计中反映用户对数据要求的模式是
  A 内模式B 概念模式C 外模式D 设计模式 答案:C
  10. 有三个关系R、S和T如下:则由关系R和S得到关系T的操作是
  A 自然连接B 交C 投影D 并 答案:A
  11. 以下关于结构化程序设计的叙述中正确的是
  A 一个结构化程序必须同时由顺序、分支、循环三种结构组成
  B 结构化程序使用goto语句会很便捷 C 在C语言中,程序的模块化是利用函数实现的
  D 由三种基本结构构成的程序本文由论文联盟http://www.LWLm.coM收集整理只能解决小规模的问题 答案:C
  12. 以下关于简单程序设计的步骤和顺序的说法中正确的是
  A 确定算法后,整理并写出文档,最后进行编码和上机调试
  B 首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档
  C 先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档
  D 先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构 答案:D
  13. 以下叙述中错误的是
  A C程序在运行过程中所有计算都以二进制方式进行 B C程序在运行过程中所有计算都以十进制方式进行 C 所有C程序都需要编译链接无误后才能运行
  D C程序中整型变量只能存放整数,实型变量只能存放浮点数 答案:B
  14. 有以下定义:inta; longb; doublex,y;则以下选项中正确的表达式是
  A a%(int)(x-y) B a=x!=y; C (a*y)%b D y=x+y=x 答案:C
  15. 以下选项中能表示合法常量的是
  A 整数:1,200 B 实数:1.5E2.0 C 字符斜杠:‘\’ D 字符串:"\007" 答案:C
  16. 表达式a+=a-=a=9的值是
  A 9 B _9 C 18 D 0 答案:D
  17. 若变量已正确定义,在if (W)printf(“%d\n,k”);中,以下不可替代W的是
  A a<>b+c B ch=getchar() C a==b+c D a++ 答案:A
  18. 有以下程序
  #include
  main()
  {inta=1,b=0;
  if(!a) b++;
  elsEif(a==0)if(a)b+=2;
  elseb+=3;
  printf(”%d\n”,b);
  }
  程序运行后的输出结果是
  A 0 B 1 C 2 D 3 答案:C
  20. 有以下程序
  #include
  main()
  {int a=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 答案:D
  21. 有以下程序
  #include
  main()
  {int y=10;
  while(y--);
  printf(”Y=%d\n”,Y);
  }
  程序执行后的输出结果是
  A y=0 B y= -1 C y=1 D while构成无限循环 答案:B
  22. 有以下程序
  #include
  main()
  {char s[」=”rstuv";
  printf(”%c\n”,*s+2);
  }
  程序运行后的输出结果是
  A tuv B 字符t的ASCII码值 C t D 出错 答案:D
  23. 有以下程序
  #include
  #include
  main()
  {char x[]=”STRING”;
  x[0」=0;x=’\0’;x[2」=’0’;
  printf(”%d%d\n”,sizeof(x),strlen(x));
  }
  程序运行后的输出结果是
  A 61 B 70 C 63 D 71 答案:B
  24. 有以下程序
  #include
  Int f(intx);
  main()
  {intn=1,m;
  m=f(f(f(n)));printf(”%d\n”,m);
  }
  intf(intx)
  {returnx*2;}
  程序运行后的输出结果是
  A 1 B 2 C 4 D 8 答案:D
  25. 以下程序段完全正确的是
  A int *p;scanf("%d",&p); B int *p;scanf(“%d”,p);
  C int k, *p=&k;scanf("%d",p); D int k, *p:;*p= &k; scanf(“%d”,p); 答案:D
  26. 有定义语句:int *p[4];以下选项中与此语句等价的是
  A intp[4]; B int**p; C int*(p「4」); D int (*p)「4」; 答案:D
  27. 下列定义数组的语句中,正确的是
  A B C intx[0..10]; D int x[]; 答案:B
  28. 若要定义一个具有5个元素的整型数组,以下错误的定义语句是
  A inta[5]=﹛0﹜; B intb[]={0,0,0,0,0}; C intc[2+3]; D inti=5,d[i]; 答案:A
  29. 有以下程序
  #include
  voidf(int *p);
  main()
  {inta[5]={1,2,3,4,5},*r=a;
  f(r);printf(”%d\n”;*r);
  }
  void f(int *p)
  {p=p+3;printf(”%d,”,*p);}
  程序运行后的输出结果是
  A 1,4 B 4,4 C 3,1 D 4,1 答案:D
  30. 有以下程序(函数fun只对下标为偶数的元素进行操作)
  # include
  void fun(int*a;int n)
  {int i、j、k、t;
  for (i=0;i

阅读更多 >>>  苹果的icloud空间满了怎么办

2018年计算机二级考试C语言试题及答案(3)

   2018年计算机二级考试C语言试题及答案(3)
  1[单选题] 以下叙述中正确的是
  A.两个字符串可以用关系运算符进行大小比较
  B.函数调用strlen(s);会返回字符串S实际占用内存的大小(以字节为单位)
  C.C语言本身没有提供对字符串进行整体操作的运算符
  D.当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和
  参考答案:C
  参考解析:本题考查字符串处理函数strien、strcat、strcmp。B选项中strlen返回的是字符串s实际占用内存大小加上结尾符,A选项中不能用关系运算符进行大小比较,可以使用strcmp。D选项当使用连接函数strcat时,内存空间会减少一个字符位置。
  2[单选题] 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。
  A.一对一B.一对多C.多对多D.多对一
  参考答案:C
  参考解析:因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。
  3[单选题] 对于while(!E)s;,若要执行循环体s,则E的取值应为:
  A.E等于1B.E不等于0C.E不等于1D.E等于0
  参考答案:D
  参考解析:while语句的一般形式为:while(表达式)语句;其中表达式是循环条件,语句为循环体。while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。该题中如要执行语句s,则!E应为真,因此E应等于0,D选项正确。
  4[单选题] 在软件设计中不使用的工具是( )。
  A.系统结构图B.PAD图C.数据流图(DFD图)D.程序流程图
  参考答案:C
  参考解析:系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择C。
  5[单选题] 若有定义语句:char a='\82';则变量a(  )
  A.说明不合法B.包含1个字符C.包含2个字符D.包含3个字符
  参考答案:B
  参考解析:char a='\82',定义字符量a,char型变量值为1个字节长度,并从右侧开始运算,所以a的值应为'2'。因此B选项正确。
  6[单选题] 若fp已定义为指向某文件的指针,且没有读到该文件的末尾,则C语言函数feof(fp)的函数返回值是
  A.EOFB.非0C.-1D.0
  参考答案:D
  参考解析:本题考查文件的定位,feof函数的用法是从输入流读取数据,如果到达文件末尾(遇文件结束符),eof函数值为非零值,否则为0,所以选项D正确。
  7[单选题] 以下叙述中正确的是
  A.只要适当地修改代码,就可以将do-while与while相互转换
  B.对于“for(表达式1;表达式2;表达式3)循环体”首先要计算表达式2的值,以便决定是否开始循环
  C.对于“for(表达式1;表达式2;表达式3)循环体”,只在个别情况下才能转换成while语句
  D.如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用while语句
  参考答案:A
  参考解析:B选项中,for语句中需要先求解先求解表达式1;C选项中,for语句使用最为灵活,它完全可以取代while语句;D选项中,对于死循环,也可以使用for语句。因此A选项正确。

国家计算机二级C语言考试题

一 、选择题
(1)下列数据结构中,按先进后出原则组织数据的是
A)线性链表
B)栈
C)循环链表
D)顺序表
正确答案: B
(2)具有3个结点的二叉树有
A)2种形态
B)4种形态
C)7种形态
D)5种形态
正确答案: D
(3)设有下列二叉树:
对此二叉树前序遍历的结果为
A)ZBTYCPXA
B)ATBZXCYP
C)ZBTACYXP
D)ATBZXCPY
正确答案: B
(4)结构化程序设计主要强调的是
A)程序的规模
B)程序的效率
C)程序设计语言的先进性
D)程序易读性
正确答案: D
(5)程序的3种基本控制结构是
A)过程、子过程和分程序
B)顺序、选择和重复
C)递归、堆栈和队列
D)调用、返回和转移
正确答案: B
(6)下列叙述中,不属于测试的特征的是
A)测试的挑剔性
B)完全测试的不可能性
C)测试的可靠性
D)测试的经济性
正确答案: C
(7)需求分析中开发人员要从用户那里了解
A)软件做什么
B)用户使用界面
C)输入的信息
D)软件的规模
正确答案: A
(8)下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是
A)选择
B)连接
C)投影
D)并
正确答案: B
(9)下列叙述中,正确的是
A)用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系
B)用E-R图只能表示实体集之间一对一的联系
C)用E-R图只能表示实体集之间一对多的联系
D)用E-R图表示的概念数据模型只能转换为关系数据模型
正确答案: C
(10)"年龄在18~25之间"这种约束是属于数据库当中的
A)原子性措施
B)一致性措施
C)完整性措施
D)安全性措施
正确答案: C
11)以下说法错误的是
A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式
B)计算机只能处理由0和1的代码构成的二进制指令或数据
C)C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件
D)每一种高级语言都有它对应的编译程序
正确答案: C
(12)算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是
A)有零个输入或多个输入
B)高效性
C)有穷性
D)确定性
正确答案: B
(13)已知int a=6; 则执行a+=a-=a*a;语句后,a的值为
A)36
B)0
C)-24
D)-60
正确答案: D
(14)下面各选项中,均是C语言标识符的选项组是
A)forchinato
B)long_123short56_do
C)voidunion_342
D)text.txt _023_3ew
正确答案: B
(15)下列表达式中,结果为5的是
A)6*5%6
B)5*-2+15
C)5+75%10
D)6+-2/3
正确答案: B
(16)下列常量中,为不合法的实型常量表示的是
A).0032
B)0.0
C)0.3242E8
D).E3
正确答案: D
(17)关于C语言的主函数描述正确的是
A)C程序可以有多个main函数
B)C程序必有一个而且只能有一个main函数
C)C程序可以没有main函数
D)C程序的执行不一定在main函数开始执行
正确答案: B
(18)已知int a=1,b=-1;则语句printf("%d\n",(a--,++b));的输出结果是
A)-1
B)0
C)1
D)语句错误
正确答案: B
(19)已知int a,b;double c;则以下语句中错误的函数调用是
A)scanf("%d,%x,%lf",&a,&b,&c);
B)scanf("%d,%d,%le",&a,&b,&c);
C)scanf("%o,%x,%o",&a,&b);
D)scanf("%d,%o,%e",&a,&b,&c);
正确答案: D
(20)已知x,y,z均为整型变量,且值均为1,则执行语句++x||++y&&++z;后,表达式x+y的值为
A)1
B)2
C)3
D)4
正确答案: C

2018年计算机二级考试C语言试题及答案(2)

   2018年计算机二级考试C语言试题及答案(2)
  选择题(每小题1分,共40分)
  1[单选题] 若有定义语句:double a,* P=&a;以下叙述中错误的是(  )。
  A.定义语句中的*号是一个间址运算符
  B.定义语句中的*号是一个说明符
  C.定义语句中的P只能存放double类型变量的地址
  D.定义语句中,*P=&a把变量a的地址作为初值赋给指针变量P
  参考答案:A
  参考解析:在变量定义double a,* P=&a;中,*号是一个指针运算符,而非间址运算符,所以A错误。
  6[单选题] 若有定义语句:int x=10;,则表达式x-=x+x的值为(  )。
  A.0
  B.-20
  C.-10
  D.10
  参考答案:C
  参考解析:算术运算符+的优先级高于-=,且-=的结合方向为自右向左,所以表达式x-=x+x可以表示成x=x-(x+x)=10-(10+10)=-10,选择C。
  2[单选题] 若有定义语句:double x,y,*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是(  )。
  A.scanf(”%If%le”,px,py);
  B.scanf(”%f%f”&x,&y);
  C.sceanf(”%f%f”,x.y);
  D.scanf(”%If%If'’,x,y);
  参考答案:A
  参考解析:因为x,y都是double型数据,所以输入时的格式字符应为%lf,所以B与C错误。D选项中scanf("%lf%If",x,y);应为scanf(“%If%If"”,&x,&y);。
  3[单选题] 下列数据结构中,属于非线性结构的是(  )。
  A.循环队列
  B.带链队列
  C.二叉树
  D.带链栈
  参考答案:C
  参考解析:树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。
  4[单选题] 对于循环队列,下列叙述中正确的是(  )。
  A.队头指针是固定不变的
  B.队头指针一定大于队尾指针
  C.队头指针一定小于队尾指针
  D.队头指针可以大于队尾指针,也可以小于队尾指针
  参考答案:D
  参考解析:循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构,所以队头指针有时可能大于队尾指针,有时也可能小于队尾指针。
  5[单选题] 若变量已正确定义,在if(W)printf(”%d\n”,k);中,以下不可替代w的是(  )。
  A.a<>b+c
  B.ch=getchar()
  C.a==b+c
  D.a++
  参考答案:A
  参考解析:选项A是非法的表达式,C语言中没有<>运算符。
  6[单选题] 下列排序方法中,最坏情况下比较次数最少的是(  )。
  A.冒泡排序
  B.简单选择排序
  C.直接插入排序
  D.堆排序
  参考答案:D
  参考解析:冒泡排序与筒单插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是nlog2n。
  7[单选题] 数据库管理系统是(  )。
  A.操作系统的一部分
  B.在操作系统支持下的系统软件
  C.一种编译系统
  D.一种操作系统
  参考答案:B
  参考解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。是一种在操作系统之上的系统软件。
  8[单选题] 以下选项中,能用作用户标识符的是(  )。
  A._0_
  B.8_8
  C.void
  D.unsigned
  参考答案:A
  参考解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。B中以数字8开头,所以错误。C与D中用的是关键字void与unsigned,所以错误。
  9[单选题] 以下叙述中错误的是(  )。
  A.使用三种基本结构构成的程序只能解决简单问题
  B.结构化程序由顺序、分支、循环三种基本结构组成
  C.C语言是一种结构化程序设计语言
  D.结构化程序设计提倡模块化的设计方法
  参考答案:A
  参考解析:使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A错误。
  10[单选题] 下列叙述中正确的是(  )。
  A.栈是“先进先出”的线性表
  B.队列是“先进后出”的线性表
  C.循环队列是非线性结构
  D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
  参考答案:D
  参考解析:栈是先进后出的线性表,所以A错误;队列是先进先出的线性表,所以B错误;循环队列是线性结构的线性表,所以C错误。
  11[单选题] 以下不构成无限循环的语句或语句组是(  )。
  A.n=0:
  do{++n;}while(n<=0);
  B.n=0;
  while(1){n++;}
  C.n=10;
  while(n);{n--;}
  D.for(n=0,i=1;;i++)n+=i;
  参考答案:A
  参考解析:选项A中do后面的语句只执行了一次便结束了循环;B选项中条件while(1)永远成立,所以是死循环;C选项中n的值为10,而循环体为空语句,所以wilile(n)永远为真,进入死循环;D选项中for语句第二个表达式为空,所以没有判别条件,进入死循环。
  12[单选题] 若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是(  )。
  A.1
  B.0
  C.2
  D.不知道a的值,不能确定
  参考答案:A
  参考解析:逻辑或”||”要求只要两边的运算对象有一个非零,结果就为真。虽然不知道a的值,但是若a为l,则左边运算对象为1;若a的值不是1,则右边运算对象的值为1,所以总能保证一边非零,所以结果为真,即1。
  13[单选题] 下列选项中不属于结构化程序设计原则的是(  )。
  A.可封装
  B.自顶向下
  C.模块化
  D.逐步求精
  参考答案:A
  参考解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
  14[单选题] 某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是(  )。
  A.10
  B.8
  C.6
  D.4
  参考答案:C
  参考解析:根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中是5+1=6个。
  15[单选题] 支持子程序调用的数据结构是(  )。
  A.栈
  B.树
  C.队列
  D.二叉树
  参考答案:A
  参考解析:栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A。

2017年12月计算机二级考试试题及答案:C语言

   2017年12月计算机二级考试试题及答案:C语言
   一、程序填空题
  1 [填空题]
  下列给定程序中,函数fun的功能是:在形参S所指字符串中寻找与参数C相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。
  例如,若s所指字符串为“baacda”,c中的字符为a,执行后S所指字符串为“baaaacdaa”。
  请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
  注意:部分源程序给出如下。
  不得增行或删行,也不得更改程序的结构!
  试题程序:
  参考解析:
  【参考答案】
  【解题思路】
  填空1:for语句循环条件是判断是否到达字符串结尾,即当前字符是否为‘\0’。
  填空2:while语句用以确定字符串的长度,所以变量n赋初值为0。
  填空3:题目要求如果找到与参数c相同的字符,就在后面插入一个相同的字符,且找到后应该给数组元素赋值,本题目给出参数为c。

网站数据信息

"计算机二级c语言考试真题,计算机二级考试C语言选择题(2)"浏览人数已经达到22次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:计算机二级c语言考试真题,计算机二级考试C语言选择题(2)的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!