全国计算机等级考试二级C语言(附详解)课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《全国计算机等级考试二级C语言(附详解)课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 附详解 全国 计算机等级考试 二级 语言 详解 课件
- 资源描述:
-
1、全国计算机等级考试二级C语言一、选择题下列叙述中正确的是:A、循环队列是队列的一种顺序存储结构 B、循环队列是队列的一种链式存储结构C、循环队列是非线性结构 D、循环队列是一直逻辑结构A 为了充分利用存储空间,可以把顺序队列看成一个环状空间,即把顺序队列的头尾指针相连,这样的队列称之为循环队列。 是对顺序队列的改进,故循环队列是队列的一种顺序存储结构3下列叙述中正确的是A、栈是一种先进先出的线性表 B、队列是一种后进先出的线性表C、栈和队列都是非线性结构 D、以上三种说法都不对栈是一种后进先出的线性表队列是一种先进先出的线性表,二者均是线性结构,答案为选项D。一棵二叉树共有25个节点,其中5个
2、是子节点,那么度为1的节点数为A、4 B、6 C、10 D、16二叉树的性质3,度为0的结点数(即叶子结点数)=度为2的结点数+1。题中叶子结点数为5个,利用性质3可计算出度为2的结点数为4个。二叉树只有三种结点:度为0的、度为1的、度为2的,总数为25个,所以度为1的结点数即为25-5-4=16个,所以为D。在下列模式中,能够给出数据库物理存储结构与物理存取方法的是A、内模式 B、外模式 C、概念模式 D、逻辑模式内模式也称存储模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述。选项A正确。在
3、一个关系中,候选关键字可以有多个且在任何关系中至少有一个关键字。所以在满足数据完整性约束的条件下,一个关系应该有一个或多个候选关键字,选项D正确。在满足实体完整性约束的条件下一个关系中可以没有候选关键词一个关系中只能有一个候选关键词一个关系中必须有多个候选关键词一个关系中应该有一个或者多个候选关键词R和S的差是由属于R但不属于S的元组组成的集合根据本题关系R和关系S运算前后的变化,可以看出此处进行的是关系运算的差运算有三个关系R、S和T如下:软件生命周期-提出、实现、使用、维护到停止使用(退役)软件生命周期三个阶段-软件定义、软件开发及软件运行维护软件生命周期的主要活动阶段是可行性研究与计划制
4、定、需求分析、软件设计、软件实现、软件测试、运行和维护。软件生命周期不包括市场调研。软件生命周期中的活动不包括A、软件维护 B、市场调研 C、软件测试 D、需求分析需求分析是对待开发软件提出的需求进行分析并给出详细的定义。主要工作是编写软件需求规格说明书及用户手册。需求分析的任务是导出目标系统的逻辑模型,解决“做什么”的问题。制定软件集成测试计划是软件设计阶段需要完成的任务下面不属于需求分析阶段任务的是A、确定软件系统的功能需求 B、确定软件系统的系统的系能需求B、制定软件集成测试计划 D、需求规格说明书审评黑盒测试-功能测试或数据驱动测试测试着眼于程序外部结构、不考虑内部逻辑结构主要针对软件
5、界面和软件功能进行测试。在黑盒测试方式中,设计测试用例的主要根据是A、程序外部功能 B、程序内部逻辑C、程序数据结构 D、程序流程图软件设计包括概要设计和详细设计软件详细设计-程序流程图(PDF)和PAD(问题分析图)是过程设计的常用工具数据流图(DFD图)是软件定义阶段结构化分析方法常用的工具。在软件设计中不使用的工具是A、系统结构图 B、程序流程图 C、PAD图 D、数据流图(DFD图)简单程序设计的步骤:首先要确定算法和数据结构然后编码、调试最后整理相关文档。针对简单程序设计,以下叙述的实施步骤正确的是A、确定算法和数据结构、编码、调试、整理文档B、编码、确定算法和数据结构、调试、整理文
6、档C、整理文档、确定算法和数据结构、编码、调试D、确定算法和数据结构、调试、编码、整理文档实型数据在内存中存储的二进制位数是有限的例如float型数据在内存中有24位二进制尾数而一个十进制实数转化为二进制实数时,其有效数字位数有可能会超过尾数的存储长度,从而导致有效数字丢失而产生误差。关于C语言中数的表示,以下叙述正确的是A、只有整型数在允许范围内能精确无误的表示,实型数会有误差B、只要在在允许范围内整型和实型都能精确表示C、只有实型数在允许范围内能精确无误的表示,整型数会有误差D、只有八进制表示的数在不会有误差一个正确的算法可以有零个或者多个输入,必须有一个或者多个输出以下关于算法叙述错误的
7、是A、算法可以用伪代码、流程图等多种形式来描述B、一个正确的算法必须有输入C、一个正确的算法必须有输出D、用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码一个C程序有且只有一个主函数 main()。一个C 程序可以包含多个不同名字的子函数C程序在书写时没有严格的缩进要求。以下叙述错误的是A、一个C程序可以包含多个不同名的函数B、一个C程序只能有一个主函数C、C程序在书写时,有严格的缩进要求,否则不能编译通过D、C程序的主函数必须用main作为函数名在输入格式中定义好了”%c%c”,其中没有任何符号,所以中间不能加任何字符,包含不能加逗号、回车和空格,因为这些也算是字符。设有以下
8、语句Char ch1,ch2, scanf(”%c%c”,&ch1,&ch2);若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是A、A和B之间用逗号间隔 B、A和B之间不能有任何间隔符C、A和B之间可以用回车间隔 D、A和B之间用空格间隔转义字符,即反斜杠加数字或字母的形式(例如n是换行符),转义字符本身就是一个字符。C的X后面是十六进制数数字不需要以0开头的,以0开头了,0所代表的意义是指八进制,例如01,是指八进制的1,八进制里是没有数字8和9的,所以09是错误的,同理,D项的019错了C以x开头代表了xff这个数是16进制,16进制里是有f的,数值上等于十进制里的15数字
9、前什么都不加,例如A和B项,C语言默认为十进制。以下选项中非法的字符常量是A、102 B、65 C、xff D、0191、首先执行a-=a-5,即a=a-(a-5)使得a的值为52、执行c=(a-=a-5)即将a的值5赋给变量c使得c的值也为5。3、执行下句逗号表达式中的a=b,把b的值0赋给a,此时a的值为04、执行b=b+4,使得b的值为4。最后输出。有以下程序#include Main()Int A=0,B=0,C=0;C=(A-=A-5);(A=B,B+=4);Printf(“%d, %d, %dn”,A,B,C)程序运行后输出的结果是A 0,4,5 B 4,4,5 C 4,4,4 D
10、 0,0,0+x表示先将x值加1后再用,x+表示先使用x值,用后加1,所以本题中ABC选项都会输出x+1的值,只有D选项会输出x值。设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是A、x+; printf(“%dn”,x); B、n=+x; printf(“%dn”,n);C、+x; printf(“%dn”,x); D、n=x+; printf(“%dn”,n);C语言中非0的值表示真,0表示假以下选项中,能表示逻辑值“假”的是A 1 B 0.000001 C 0 D 100.0判断条件中if(a+9)是先用后加,即a的值为9,所以条件不成立,但是a已经进行了自增1操作,a
11、的值此时为10。执行else语句时,打印a-,是先用后减,所以先输出10,然后a的值变为9。有以下程序#include Main() int a;Scanf(“%d”,&a);If(a+9) printf(“%dn”,a);Else printf(“%dn”,a-);程序运行时键盘输入9,则输出的结构是A、10 B 11 C 9 D 8case分支后面如果没有break,那么就会顺序执行下面的case,直到遇到break跳出。第一次循环后s的值为3。第二次s的值为:s=s+3,s=s+4,即为10。第三次没有匹配成功直接执行default语句,s=s+4,所以s的值为14。有以下程序#incl
12、ude Main()int s=0,n; For (n=0;n3;n+)switch(s) case 0;Case 1;s+=1;Case 2;s+=2;break;Case 3;s+3;Case 4;s+=4;printf(“%dn”,s);程序运行后的结果是A 1,2,4 B 1,3,6 C 3,10,14 D 3,6,10本题中k初始值为-1,执行一次循环体,执行完后k值为0,不满足k0条件,推出循环,所以执行了一次。若k是int类型变量,且有以下for语句For(k=-1;k0;k+) printf(*n”);下面关于语句执行情况的叙述中正确的是A、循环体执行一次 B、循环体执行两次C
13、、循环体一次也不执行 D、构成无限循环第一次循环a的值为0 ,a%2也为0 ,条件不满足所以打印的是(c+a)即变量c的值“A”。第二次a的值为1,条件a%2的值为1,条件满足打印字符(b+a)即字符 “2”。第三次a的值为2,条件不满足,打印(a+c)即字符”C”。同理打印后续字符为“4E6”。有以下程序#include Main()char A,B,C;B=1;C=AFor(A=0;A6;A+)if(A%2) putchar(B+A);Else putchar(C+A);程序运行后输出的结果是A 1B3D5F B ABCDFE C A2C4E6 D 123456数组和指针的概念本题中*k指
14、向数组m的首地址。*(k+2)现将指针后移两个元素,即为m2的首地址,然后取出m2的值6,所以选择A选项。选项B的值是一个地址无意义。选项C的值为4。选项D使得m0的值为4。设有如下定义语句Int m =2,4,6,8,*k=m;以下选项中,表达式的值为6的是A *(k+2) B k+2 C *k+2 D *k+=2指针的概念和应用数组名本身就是地址,所以不需要用&符号。C选项不能对所有元素赋值而是反复再给一个数值赋值且是死循环。Dfun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下列划线处应该填写的是#include #define N 5Viod fun(int xN)in
15、t m;For(m=N-1;m0;m-) scanf(“%dn”, );A &x+m B &xm+1 C x+(m+) D x+m选项A中a = /*p1-m;表示方式不正确,未能正确表示出含义。有以下程序#include Main()int a,b,k,m,*p1,*p2;k=1,m=8;p1=&k,p2=&m;a=/*p1-m; b=*p1+*p2+6;printf(“%d ”,a); printf(“%dn”,b);编译时编译器提示错误信息,你认为出错的语句是A、a=/*p1-m B、b=*p1+*p2+6C、k=1,m=8; D、p1=&k,p2=&m;指针数组的概念D选项中str为二
16、维字符数组,不能够直接把一个字符串赋值到二维数组的某一行中。以下选项中有语法错误的是A char *str =“guest”; B、char str10 =“guest”;C、char *str3 *str1=“guest”; D、char str310;str1=“guest”;函数声明基本用法C选项中函数的第一形参没有指名是数组,代表的是一个整型数,声明不正确。avg函数的功能是求整型数组中的前若干个元素的平均值,设数组元素个数最多不超过10,则下列函数说明语句错误的是A、int avg(int *a,int n); B、int avg(int a10,int n);C、int avg(i
17、nt a,int n) ; D、int avg(int a,int n);转义字符的用法strlen函数的作用是求得字符串长度,n与1均是反义字符各表示一个字符所以打印值为8有以下函数 #include #include main() printf(“%dn”,strren”ATSn0121”) );程序运行后的输出结果是A 3 B 8 C 4 D 9scanf和和gets输入字符串的区别输入字符串的区别scanf语句接收字符时遇到空格就作为一个字符串的结束,所以语句接收字符时遇到空格就作为一个字符串的结束,所以a数组中为数组中为this ,b数组中为数组中为is但是但是getchar函数见到
展开阅读全文