欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C语言笔试-167及答案解析.doc

    • 资源ID:1325991       资源大小:91KB        全文页数:28页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C语言笔试-167及答案解析.doc

    1、二级 C语言笔试-167 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.设有定义“double a10,*s=a;”,以下能够代表数组元素 a3的是( )。(分数:1.00)A.(*s)3B.*(s+3)C.*s3D.*s+32.有以下程序:#includestdio.hmain()char a,b,c,d;scanf(“%c%c“, break;case 1:a+;C.switch(a)default:a+;break;case 1:a=b;D.switch(a=1)case 1:a=b;break;case 0:a+;17.有以下程序

    2、:#includestdio.h#includestring.hstruct Aint a;char b10;double c;void f(struct A t);main()struct A a=“1001“,“ZhangDa“,1098,0;f(a);printf(“%d,%s,%6.1f/n“,a.a,a.b,a.c);void f(struct A t)(t.a=1002;strcpy(t.b,“ChangRong“);t.c=1202.0;)程序运行后的输出结果是( )。(分数:1.00)A.1001,ZhangDa,1098.0B.1002,ChangRong,1202.0C.1

    3、001,ChangRong,1098.0D.1002,ZhangDa,1202.018.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件),下面属于系统软件的是( )。(分数:1.00)A.编辑软件B.操作系统C.教务管理系统D.浏览器19.数据流程图(DFD 图)是( )。(分数:1.00)A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具D.而向对象方法的需求分析工具20.有以下程序:#includestdio.hmain()int b33=0,1,2,0,1,2,0,1,2),i,j,t=1;for(i=0;i3;i+)for(j=1;j=i;j+)t+

    4、=bibji;printf(“%d/n“,t);程序运行后的输出结果是( )。(分数:1.00)A.1B.3C.4D.021.数据库设计中,用 E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的( )。(分数:1.00)A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段22.有以下程序:#includestdio.hmain()int a=2,b=2,c=2;Printf(“%d/n“,a/b break;case 1:a+;C.switch(a)default:a+;break;case 1:a=b;D.switch(a=1)case 1:a=b;break

    5、;case 0:a+;解析:解析 题中当 a的值为 1时,关系表达式 a=1的值为真即 1,因此程序将跳转到 case1执行a+操作,与题干程序刚好相反。17.有以下程序:#includestdio.h#includestring.hstruct Aint a;char b10;double c;void f(struct A t);main()struct A a=“1001“,“ZhangDa“,1098,0;f(a);printf(“%d,%s,%6.1f/n“,a.a,a.b,a.c);void f(struct A t)(t.a=1002;strcpy(t.b,“ChangRong“

    6、);t.c=1202.0;)程序运行后的输出结果是( )。(分数:1.00)A.1001,ZhangDa,1098.0 B.1002,ChangRong,1202.0C.1001,ChangRong,1098.0D.1002,ZhangDa,1202.0解析:解析 将结构变量作为形参,通过函数间形参与实参相结合的方式将整个结构传递给函数,这种传递方式是值传递。在被调用函数中,对结构形参变量值进行的任何修改都不会影响到调用函数中的结构变量。18.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件),下面属于系统软件的是( )。(分数:1.00)A.编辑软件B.操作系统 C.教务管理系统

    7、D.浏览器解析:解析 编辑软件和浏览器属于工具软件,教务系统是应用软件。19.数据流程图(DFD 图)是( )。(分数:1.00)A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具 D.而向对象方法的需求分析工具解析:解析 数据流程图是一种结构化分析描述模型,用来对系统的功能需求进行建模。20.有以下程序:#includestdio.hmain()int b33=0,1,2,0,1,2,0,1,2),i,j,t=1;for(i=0;i3;i+)for(j=1;j=i;j+)t+=bibji;printf(“%d/n“,t);程序运行后的输出结果是( )。(分数:1.00)

    8、A.1B.3C.4 D.0解析:解析 本题考查了两层 for循环。外层循环单次循环的 i的值作为内层循环的值使用。21.数据库设计中,用 E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的( )。(分数:1.00)A.需求分析阶段B.逻辑设计阶段C.概念设计阶段 D.物理设计阶段解析:解析 E-R(Entity-Relationship)图为实体一联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。22.有以下程序:#includestdio.hmain()int a=2,b=2,c=2;Printf(“%d/n“,a/b&c);程序运行后的输出结果是(

    9、 )。(分数:1.00)A.0 B.1C.2D.3解析:解析 根据 C语言运算符的优先级与结合性,先计算 a/b,结果为 1,再将 a/b的结果与 c做按位与运算,即 1与 2做按位与运算,其结果为 0。23.有以下程序:#includestdio.hint fun( )static int x=1;x*=2;return x;main()int i,s=1;for(i=1;i=2;i+) s=fun( );printf“%d/n“,s;程序运行后的输出结果是( )。(分数:1.00)A.0B.1C.4 D.8解析:解析 本题考查了 static的用法。当 static用于局部变量中,称为静态

    10、局部变量。静态局部变量有两个用法,记忆功能和全局生存期。当 static用于全局变量时,主要作用是限制此全局变量被其他的文件调用。当 static用于类中的成员,则表示这个成员是属于这个类,但是不属于类中任意特定对象。所以本题答案为 C。24.以下关于 C语言的叙述中正确的是( )。(分数:1.00)A.C语言中的注释不可以夹在变量名或关键字的中间B.C语言中的变量可以在使用之前的任何位置进行定义 C.在 C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D.C语言的数值常量中央带空格不影响常量值的正确表示解析:解析 C 语言中的变量必须在使用前定义,注释不记入程序,只是作为一种解释程序

    11、的标识,方便其他用户修改及查看。25.有以下程序:#includestdio.hvoid fun(char*c,int d)*c=*c+1,d=d+1;printf(“%c,%c“,*c,d);main()char b=a,a=A;fun(&b,a);printf(“%c,%c/n“,b,a);程序运行后的输出结果是( )。(分数:1.00)A.b,B,b,A B.b,B,B,AC.a,B,B,aD.a,B,a,B解析:解析 本题考查了函数的调用。首先主函数定义了两个字符型数据 b和 a,给 b赋值为字母 a,a赋值为字母 A,调用 fun(&b,a)函数,*c=*c+1,a 的 ASCII码

    12、值加 1后为 b,A 的 ASCII码值加 1后为B,输出第一组值,排除 C、D 选项。b 的值此时为小 b,排除 B选项,所以本题答案为 A。26.若有定义“int(*pt)3;”,则下列说法正确的是( )。(分数:1.00)A.定义了基类型为 int的三个指针变量B.定义了基类型为 int的具有三个元素的指针数组 ptC.定义了一个名为*pt、具有三个元素的整型数组D.定义了一个名为 pt的指针变量,它可以指向每行有三个整数元素的二维数组 解析:解析 数组指针是指向数组的一个指针,int(*pt)3表示一个指向 3个 int元素的数组的一个指针。27.以下关于 return语句的叙述中正确

    13、的是( )。(分数:1.00)A.一个自定义函数中必须有一条 return语句B.一个自定义函数中可以根据不同情况设置多条 return语句 C.定义成 void类型的函数中可以有带返回值的 return语句D.没有 return语句的自定义函数在执行结束时不能返回到调用处解析:解析 return 语句又称为返回语句。该语句有下述两种格式:不带返回值格式和带返回值格式。即“return;”和“rcturn(表达式);”,其中,return 是关键字。该语句用在被调用函数中,在被调用函数中执行到该语句时,将结束对被调用函数的执行,并把控制权返回给调用函数,继续执行调用函数后边的语句。在带有返回值

    14、的情况下,将 return语句所带的表达式的值返回给调用函数,作为调用函数的值。在被调用函数中,可以用 return语句,也可以不用 return语句。如果要求被调用函数有返回值,则一定要用 return语句,采用 return(表达式)格式。如果被调用函数不需要返回值,并且当被调用函数的所有语句执行完后进行返回,则被调用函数可以不用 return语句。28.有以下程序:#includestdio.hmain()int a=1,b=2;for;a8;a+)b+=a;a+=2;printf(“%d,%d/n“,a,b);程序运行后的输出结果是( )。(分数:1.00)A.9,18B.8,11C.

    15、7,11D.10,14 解析:解析 第一次执行循环前 a=1,满足 a8,执行循环后 b=3,a=3,执行完 a+操作后 a=4;由于a8,执行第二次循环后 b=7,a=6,执行完 a+操作后 a=7;由于 a8,执行第三次循环后 b=14,a=9,执行完 a+操作后 a=10。此时不满足 a8,跳出循环。29.下列叙述中正确的是( )。(分数:1.00)A.对长度为 n的有序链表进行查找,最坏情况下需要的比较次数为 nB.对长度为 n的有序链表进行对分查找,最坏情况下需要的比较次数为 n/2C.对长度为 n的有序链表进行对分查找,最坏情况下需要的比较次数为 log2n D.对长度为 n的有序

    16、链表进行对分查找,最坏情况下需要的比较次数为 nlog2n解析:解析 二分法查找只适用于顺序存储的有序表,对于长度为 n的有序线性表,最坏情况只需比较log2n次。30.有以下程序:#includestdio.hmain()FILE*fp;char str10;fp=fopen(“myfile,dat“,“);fputs(“abc“,ip);fclose(fp);fp=fopen(“myfile.dat“,“a*“);fprintf(fp,“%d“,28);rewind(fp);fscanf(fp,“%s“,str);puts(str);fclose(fp);程序运行后的输出结果是( )。(分

    17、数:1.00)A.abcB.28cC.abc28 D.内类型不一致而出错解析:解析 本题考查文件的操作,首先打开文件,进行写操作,把“abc”写入“myfile”文件,再打开“myfile.data”文件,输入 28,在键盘上接收字符,输出并关闭文件。本题结果为 abc28。31.数据库管理系统中负责数据模式定义的语言是( )。(分数:1.00)A.数据定义语言 B.数据管理语言C.数据操纵语言D.数据控制语言解析:解析 数据定义语言(Data Description Language,DDL)是 SQL语言集中负责数据结构定义与数据库对象定义的语言。32.有以下程序:#includestdi

    18、o.hmain()int i,j,m=1;for(i=1;i3;i+)for(j=3;j0;j-)if(i*j3)break;m*=i+j;printf(“m=%d/n“,m);程序运行后的输出结果是( )。(分数:1.00)A.m=6 B.m=2C.m=4D.m=3解析:解析 本题考查了多重 for循环。当(i*j)3 时,跳出循环,本题中 i=1,j=3,i*j 后值为 3,所以执行语句:m*=i+j,也可写成 m=m*i+j,这时要注意优先级,所以 m的值为 6。33.在学生管理的关系数据库中,存取一个学生信息的数据单位是( )。(分数:1.00)A.文件B.数据库C.字段D.记录 解析

    19、:解析 一个数据库由一个文件或文件集合组成,这些文件中的信息可分解成一个个记录。34.有以下定义和语句:struet workersint num;char name20;char c;Structint day;int month;int year;s;struct workers w,*pw;pw=&w;能给 w中 year成员赋 1980的语句是( )。(分数:1.00)A.*pw.year=1980;B.year=1980;C.pw-year=1980D.s.year=1980; 解析:解析 结构 workers中的成员 s是一个嵌套的结构类型定义,因此在给 year赋值时,要用此结构

    20、类型进行定义。运算在深入一层访问到最基本的成员 year,只有 D项反映出了这一点。35.以下关于 C语言数据类型使用的叙述中错误的是( )。(分数:1.00)A.若要准确无误差的表示自然数,应使用整数类型B.若要保存带权多位小数的数据,应使用双精度类型C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型 解析:解析 C 语言中没有逻辑类型。36.算法的时间复杂度是指( )。(分数:1.00)A.算法的执行时间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的基本运算次数 解析:解析 算法的时间

    21、复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模 n的函数 f(n),算法的时间复杂度也因此记做 T(n)=0(f(n)因此,问题的规模 n越大,算法执行的时间的增长率与 f(n)的增长率正相关,称做渐进时间复杂度(Asymptotic Time Complexity)。简单来说就是算法在执行过程中所需要的基本运算次数。37.下列语句组中,正确的是( )。(分数:1.00)_解析:解析 给字符串数组赋值时,要先定义数组长度,然后再赋值。可以只给部分元素赋初值,当中值的个数少于元素个数时,只给前面部分元素赋值。数组的下标是从 0开始的,所以 s7代表从 s0到 s6七个元素。其格

    22、式可以写成:char 数组名常量=字符,字符,);也可写为 char数组名常量=“字符串“;或去掉38.软件生命周期可分为定义阶段、开发阶段和维护阶段。详细没计属于( )。(分数:1.00)A.定义阶段B.开发阶段 C.维护阶段D.上述三个阶段解析:解析 开发阶段在开发初期分为需求分析、总体设计、详细设计 3个阶段,在开发后期分为编码、测试两个子阶陂。39.有以下程序:#includestdio.hint f(int t,int n);main()int a4=1,2,3,4,s;s=f(a,4);printf(“%d/n“,s);int f(int t,int n)if(n0)return

    23、tn-1+f(t,n-1);else return 0;程序运行后的输出结果是( )。(分数:1.00)A.4B.10 C.14D.6解析:解析 本题考查了函数的调用,并且使用了嵌套。40.有以下程序,其中 k的初值为八进制数:#includestdio.hmain()int k=011;printf“%d/n“,k+);程序运行后的输出结果是( )。(分数:1.00)A.12B.11C.10D.9 解析:解析 八进制数 k=011的十进制值为 9,因此题中输出的是 k的十进制值,输出完成后才执行 k+操作。二、填空题(总题数:15,分数:60.00)41.一个队列的初始状态为空。现将元素 A

    24、,B,C,DE,F,5,4,3,2,1 依次入队,然后再依次退队,则元素退队的顺序为 1。(分数:4.00)填空项 1:_ (正确答案:A,B,C,D,E,F,5,4,3,2,1)解析:解析 队列的修改是依据先进先出的原则进行的。新来的成员总是加入队尾,每次离开的成员总是队列头上的(不允许中途离队),即当前“最老的”成员离队。42.设某循环队列的容量为 50,如果头指针 front=45(指向队头元素的前一位置),尾指针 rear=10(指向队尾元素),则该循环队列中共有 1 个元素。(分数:4.00)填空项 1:_ (正确答案:1 5)解析:解析 该循环队列中共有 10+50-45=15个元

    25、素。43.设二叉树如下:(分数:4.00)填空项 1:_ (正确答案:EDBGHFCA)解析:解析 后序遍历的递归算法定义为:若二叉树非空,则依次遍历左子树、右子树及访问根结点。遍历左右子树时也依照此规律。44.软件是 1、数据和文档的集合。(分数:4.00)填空项 1:_ (正确答案:软件)解析:解析 本题考查软件的概念。软件是程序、数据和文档的集合。45.有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号, 1,成绩)。(分数:4.00)填空项 1

    26、:_ (正确答案:课号)解析:解析 选课关系模式中,外键学号和课号联合作为该关系模式的主键,唯一标识一个元组。46.设 x为 int型变量,请写出一个关系表达式 1,用以判断 x同时为 3和 7的倍数时,关系表达式的值为真。(分数:4.00)填空项 1:_ (正确答案:(x/3=0)&(x/7=0))解析:解析 本题利用 x同时为 3和 7的倍数,即能同时被 3和 7整除这一关系,利用逻辑与表达式进行求解。47.有以下程序:#includestdio.hmain()int a=1,b=2,c=3,d=0;if(a=1)if(b1=2)if(c=3) d=1;else d=2;else if(c

    27、!=3) d=3;else d=4;else d=5;printf(“%d/n“,d);程序运行后的输出结果是_。(分数:4.00)填空项 1:_ (正确答案:4)解析:解析 嵌套形式的 if_else语句中,else 总是与它前面最近的统一复合语句内的不带 else的 if结合。48.有以下程序:#includestdio.hmain()int m,n;scanf(“%d%d“,&m,&n);while(m!=n)while(mn)n1,m=m-n;while(mn)n=1,n=n-m;printf(“%d/n“,m);程序运行后,当输入 1463(回车)时,输出结果是_a(分数:4.00)

    28、填空项 1:_ (正确答案:7)解析:解析 本循环是输出 m的值,首先在键盘上接收两个字符 14和 63,第一个 whik循环,判断当 m不等于 n时,继续执行循环体内的循环,内层循环是判断当 mn 时,则 m的值为 m-n,如果 mn 则执行n=n-m,第一次循环后,m 的值为 14,n 的值为 49还是大于 m,继续循环执行第 2个循环体,此时 n的值为 35,大于 n继续循环,第三次循环后,n 的值为 21。进行第四次循环后 n的值为 7,此时 m的值大于n,执行第一个循环体后,m 的值等于 n的值,都为 7,不符合外循环 while语句,所以跳出循环,最后输出 m的值为 7。49.有以

    29、下程序:#includestdio.hmain()int i,j,a3=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+)for(j=i;j3;j+)printf(“%d“,aij);printf(“/n“);程序运行后的输出结果是_。(分数:4.00)填空项 1:_ (正确答案:123569)解析:解析 a 为三行三列的二维数组,程序依次输出 a00,a01,a02,a11,a12,a22。50.有以下程序:#includestdio.hmain()int a=(1,2,3,4,5,6),*k3,i=0;while(i3)ki=&a2*i;printf(“%d“,*ki);i+

    30、;程序运行后的输出结果是_。(分数:4.00)填空项 1:_ (正确答案:135)解析:解析 ki存储的是数组 a2*i的地址。*ki为 ki地址存放的内容。i=0 时,*ki的值为a0=1;i=1 时,*ki的值为 a2=3;i=2 时,*ki的值为 a4=5。51.有以下程序:#includestdio.hmain()int a33=1,2,3,4,5,6,7,8,9;int b20,i;for(j=0;j3;i+)bi=ai2+a2i;for(i=0;i3;j+)printf(“%d“,bi);printf(“/n“);程序运行后的输出结果是_。(分数:4.00)填空项 1:_ (正确答

    31、案:101418)解析:解析 本题考查二维数组及循环的使用。要求最后输出数组 bi的值,for 循环中当 j满足条件时,数组 bi=ai2+a2i,当满足 i的条件时,则输出结果。52.有以下程序:#includestdio.h#includestring.hvoid fun(char*str)char temp;int n,i;n=strlen(str);temp=strn-1;for(i=n-1;i0;i-)stri=stri-1;str0=temp;main()char s50;scanf(“%s“,s);fun(s);printf(“%s/n“,s);程序运行后输入:abcdef回车,

    32、则输出结果是_。(分数:4.00)填空项 1:_ (正确答案:fabcde)解析:解析 本题考查了数组及函数的调用。首先从键盘上接收一个字符串,然后调用 fun函数,fun函数实现的功能是将字符串的最后一个字符放在第一个位置,最后输出。53.以下程序的功能是:将值为三位正整数的变量 X中的数值按照个位、十位、百位的顺序拆分并输出。请填空#includestdio.hmain()int x=256;printf(“%d-%d-%d/n“,_,x/10%10,x/100);(分数:4.00)填空项 1:_ (正确答案:x%100%10)解析:解析 本题要将三位数按个位、十位和百位的顺序依次输出,用

    33、了取余“%”运算符,它的功能是取一个数的余数,本题的百位数先%100 得到 56,再用 56%10得到 6,取到个位。取十位数时,先用256/10取整得到 25,再%10 取余得到十位数 5。百位数直接取整便可得到。54.以下程序用以删除字符串中所有的空格,请填空。#includestdio.hmain()char s100=(“Our teacher teach C language!“);int i,j;for(i=j=0;si!=/0;i+)if(si!=)(sj)=si;i+;)sj=_;printf(“%s/n“,s);(分数:4.00)填空项 1:_ (正确答案:si+1)解析:解

    34、析 本题考查了数组及 for循环。用以实现删除字符串中所有的空格,当遇到空格时,将后一位字符串向前移一位,占用空格的位置,以此来实现删除空格的目的。55.以下程序的功能是:借助指针变量找出数组元素中的最大值及其元素的下标值,请填空。#includestdio.hmain()int a10,*p,*s;for(p=a;p-a10;p+)scanf(“%d“,p);for(p=a;s=a;p-a10;p+)if(“p*s)s=_;printf(“index=%d/n“,s-a);(分数:4.00)填空项 1:_ (正确答案:s+1)解析:解析 本题要找出数组中的最大元素,输出其值及该元素的下标值。数组的下标是从 0开始的。本题中如果*p*s,就查找下一个位置,直到找出符合题意的值。


    注意事项

    本文(【计算机类职业资格】二级C语言笔试-167及答案解析.doc)为本站会员(sumcourage256)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开