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

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

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

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

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

    1、二级 C 语言笔试-264 及答案解析(总分:110.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.有下列函数定义:int fun(double a,double b)return a*b;若下列选项中所用变量都已正确定义并赋值,错误的函数调用是( )。(分数:2.00)A.if(fun(x,y)B.z=fun(fun(x,y),fun(x,y);C.z=fun(fun(x,y)x,y);D.fun(x,y);2.下列说法不正确的是( )。(分数:2.00)A.C 程序是以函数为基本单位的,整个程序由函数组成B.C 语言程序的一条语句可以写在不同的行上C.C 程序

    2、的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写D.C 程序的每个语句都以分号结束3.对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。(分数:2.00)A.125B.n/2C.nD.n+14.若有说明 int a3=0,0;,则不正确的叙述是( )。(分数:2.00)A.数组 a 的每个元素的初值都是 0B.数组 a 的第一维大小为 1C.数组 a 的行数为 1D.只有元素 a00和 a01可得到初值 0,其余元素均得不到初值 05.下列二维数组初始化语句中,不正确的是( )。(分数:2.00)A.int b2=1,2,3,4,5,6,7;B.int b35

    3、=0,0,0;C.int b4=1,2,3,4,5,6;D.int b32=(1,2),(3,4),(5,6);6.下列描述中正确的是( )。(分数:2.00)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发过程中的技术问题7.源程序的文档化不包括( )。(分数:2.00)A.符号名的命名要有实际意义B.正确的文档形式C.良好的视觉组织D.正确的程序注释8.下列 4 个关于 C 语言的结论中错误的是( )。(分数:2.00)A.可以用 dowhile 语句实现的循环一定可以用

    4、 while 语句实现B.可以用 for 语句实现的循环一定可以用 while 语句实现C.可以用 while 语句实现的循环一定可以用 for 语句实现D.dowhile 语句与 while 语句的区别仅是关键字“while”出现的位置不同9.在 C 语言中,函数返回值的类型最终取决于( )。(分数:2.00)A.函数定义时在函数首部所说明的函数类型B.return 语句中表达式值的类型C.调用函数时主调函数所传递的实参类型D.函数定义时形参的类型10.下列叙述中正确的是( )。(分数:2.00)A.算法的执行效率与数据的存储结构无关B.算法的空间复杂度是指算法程序中指令(或语句)的条数C.

    5、算法的有穷性是指算法必须能在执行有限个步骤之后终止D.以上 3 种描述都不对11.下列程序的输出结果是( )。#includestdio.hmain()struct stint y,x,z;unionlong i;int j;char k;un;printf(“%d,%d/n“,sizeof(struct st),sizeof(un);(分数:2.00)A.6,2B.6,4C.8,4D.8,612.下列程序段的输出结果为( )。#includestdio.hmain()static char a=“language“;char*p;p=a;for(p=a;pa+8;p+=2)putchar(*

    6、p);(分数:2.00)A.languageB.lnugC.有语法错误D.lang13.下列程序的运行结果是( )。#includestdio.hvoid fun(int*s,int*p)static int t=3;*p=st;t-;void main()int a=2,3,4,5,k;int x;for(k=0;k4;k+)fun(a,printf(“%d,%d“,a,c);c+=-a+(+b);printf(“%d,%d“,a,c);(分数:2.00)A.3,14,1B.3,14,2C.2,04,1D.2,14,133.已知大写字母 A 的 ASCII 码是 65,小写字母 a 的 AS

    7、CII 码是 97。下列不能将变量 c 中的大写字母转换为对应小写字母的语句是( )。(分数:2.00)A.c=(c-A)%26+aB.c=c+32C.c=c-A+aD.c=(A34.数据库系统的核心是( )。(分数:2.00)A.数据模型B.数据库管理系统C.数据库D.数据库管理员35.下列程序的运行结果是( )。main()int a=-5,b=1,c=1;int x=0,y=2,z=0;if(c0)x=x+y;if(a=0)if(bO)if(c=0)y=x-y;else if(c0)y=x-y;else z=y;printf(“%d,%d,%d/n“,x,y,z);(分数:2.00)A.

    8、2,2,0B.2,2,2C.0,2,0D.2,0,236.两次运行下列的程序,如果从键盘上分别输入 3 和 1,则输出结果是( )。main()int x;scanf(“%d“,break;casea:printf(“good“);break;caseC:printf(“morning“);cased:printf(“class“);(分数:2.00)填空项 1:_49.写出下列程序的输出结果_。main()int n=0;while(n+=1);printf(“%d,“,n);printf(“%d“,n+);(分数:2.00)填空项 1:_50.下列程序的功能:对输入的一行字符中的数字字符的

    9、字面值累加,输出此累加和,请填空。#includestdio.h#includectype.hmain()char c;int a,s=0;while(_)if(isdigit(c)a=c-0;s+=a;printf(“s=%d“,s);(分数:2.00)填空项 1:_51.下列程序输出的结果是_。int m=17;int fun(int x,int y)int m=3;return(x*y-m);main()int a=5,b=7;printf(“%d/n“,fun(a,b)/m);(分数:2.00)填空项 1:_52.设有下列的程序段:char str=“Hello“;char*ptr;p

    10、tr=-str;执行上面的程序段后,*(ptr+5)的值为_。(分数:2.00)填空项 1:_53.若有定义 int a44=1,2,3,4,0,4,6,8,10,1,3,5,7,则初始化后,a11得到的初值是 1。(分数:2.00)填空项 1:_54.设有下列程序:#includestdio.h#includestring.hmain()int i;chars10,t10;gets(t);for(i=0;i2;i+)gets(s);if(strcmp(t,s)0)strcpy(t,s);printf(“%s/n“,t);程序运行后,从键盘上输入(CR代表回车符):CDEFCRBADEFCRQ

    11、THRGCR,则程序的输出结果是_。(分数:2.00)填空项 1:_55.下列程序的输出结果是_。#define P(a) printf(“%d,“,(int)(a)#define PRINT(a)P(a);printf(“the end“)main()int i,a=0;for(i=1;i5;i+)PRINT(a+i);printf(“/n“);(分数:2.00)填空项 1:_二级 C 语言笔试-264 答案解析(总分:110.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.有下列函数定义:int fun(double a,double b)return a*b;

    12、若下列选项中所用变量都已正确定义并赋值,错误的函数调用是( )。(分数:2.00)A.if(fun(x,y)B.z=fun(fun(x,y),fun(x,y);C.z=fun(fun(x,y)x,y); D.fun(x,y);解析:解析 本题考查函数调用时的参数传递。选项 C)中第一个参数的表达式不正确,因此不能得到正确的结果。2.下列说法不正确的是( )。(分数:2.00)A.C 程序是以函数为基本单位的,整个程序由函数组成B.C 语言程序的一条语句可以写在不同的行上C.C 程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写 D.C 程序的每个语句都以分号结束解析:解析 本题涉

    13、及 C 语言基本的 3 个知识点:C 语言的源程序是由函数构成的,函数是其基本单位,每一个函数完成相对独立的功能,其中只能包括一个主函数;C 语言规定每个语句以分号结束,其书写格式是自由的,一条语句可以写在不同的行上,或者一行也可以写多条语句;注释行虽然对程序的运行不起作用,但是它可以方便程序员阅读,提高程序的可读性和可移植性,所以书写注释行还是很有必要的。3.对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。(分数:2.00)A.125B.n/2C.n D.n+1解析:解析 对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两

    14、者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为 n。4.若有说明 int a3=0,0;,则不正确的叙述是( )。(分数:2.00)A.数组 a 的每个元素的初值都是 0B.数组 a 的第一维大小为 1C.数组 a 的行数为 1D.只有元素 a00和 a01可得到初值 0,其余元素均得不到初值 0 解析:解析 本题考查给二维数组元素赋值。给二维数组元素赋值时应注意两点:在对二维数组元奉赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取 0。二维数组第一维的大小由如下规则确定:当初值的

    15、个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小;当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小二所得商数+1。5.下列二维数组初始化语句中,不正确的是( )。(分数:2.00)A.int b2=1,2,3,4,5,6,7;B.int b35=0,0,0;C.int b4=1,2,3,4,5,6;D.int b32=(1,2),(3,4),(5,6); 解析:解析 在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取 0;C 语言规定,对于二维数组,只可以省略第 1 个方括号中的常量表达式,而不能省略第 2 个方括号中的常量表达式;赋的初值不能多于

    16、事先定义好的数组元素个数。选项 D 赋值表达式中对每一维的元素赋初值应用,而不是 0。6.下列描述中正确的是( )。(分数:2.00)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 D.软件工程只是解决软件开发过程中的技术问题解析:解析 软件工程是指将工程化的思想应用于软件的开发、应用和维护的过程,包括软件开发技术和软件工程管理。7.源程序的文档化不包括( )。(分数:2.00)A.符号名的命名要有实际意义B.正确的文档形式 C.良好的视觉组织D.正确的程序注释解析:解析 源程序的文档化主要包括 3

    17、点:符号名应具有一定实际的含义,便于理解程序功能;正确的程序注释;良好的视觉组织(利用空格、空行、缩进等技巧使程序层次清晰)。8.下列 4 个关于 C 语言的结论中错误的是( )。(分数:2.00)A.可以用 dowhile 语句实现的循环一定可以用 while 语句实现B.可以用 for 语句实现的循环一定可以用 while 语句实现C.可以用 while 语句实现的循环一定可以用 for 语句实现D.dowhile 语句与 while 语句的区别仅是关键字“while”出现的位置不同 解析:解析 本题考查几个循环语句的关系。dowhile 语句、while 语句、for 语句所实现的循环可

    18、以相互替代;dowhile 语句和 while 语句的区别是 dowhile 语句至少执行一次。9.在 C 语言中,函数返回值的类型最终取决于( )。(分数:2.00)A.函数定义时在函数首部所说明的函数类型 B.return 语句中表达式值的类型C.调用函数时主调函数所传递的实参类型D.函数定义时形参的类型解析:解析 在 C 语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和 return 语句中的表达式类型一致。如果函数值的类型和 return 语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类

    19、型决定返回值的类型。10.下列叙述中正确的是( )。(分数:2.00)A.算法的执行效率与数据的存储结构无关B.算法的空间复杂度是指算法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在执行有限个步骤之后终止 D.以上 3 种描述都不对解析:解析 算法的执行效率与数据的存储结构密切相关。算法的空间复杂度是指算法执行过程中所需的存储空间。11.下列程序的输出结果是( )。#includestdio.hmain()struct stint y,x,z;unionlong i;int j;char k;un;printf(“%d,%d/n“,sizeof(struct st),sizeof(

    20、un);(分数:2.00)A.6,2B.6,4 C.8,4D.8,6解析:解析 本题主要考查结构体和联合内存使用的区别:结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立;联合所占用的内存空间为最长的成员所占用的空间。12.下列程序段的输出结果为( )。#includestdio.hmain()static char a=“language“;char*p;p=a;for(p=a;pa+8;p+=2)putchar(*p);(分数:2.00)A.languageB.lnug C.有语法错误D.lang解析:解析 本程

    21、序首先定义了静态字符数组 a,然后将指针 p 指向数组 a 的首地址。第 1 次 for 循环,p=a,p 指向数组的第 1 个元素,*p 是取指针 p 所指地址的内容,输出 1;第 2 次 for循环,p=p+2,则 p 指向数组的第 3 个元素,*p 是取指针 p 所指地址的内容,输出 n;第 3 次 for 循环,p= p+2,则 p 指向数组的第 5 个元素,*p 是取指针 p 所指地址的内容,输出 u;第 4 次 for 循环,p=p+2,则 p 指向数组的第 7 个元素,*p 是取指针 p 所指地址的内容,输出 g,结束循环。13.下列程序的运行结果是( )。#includestd

    22、io.hvoid fun(int*s,int*p)static int t=3;*p=st;t-;void main()int a=2,3,4,5,k;int x;for(k=0;k4;k+)fun(a,printf(“%d,%d“,a,c);c+=-a+(+b);printf(“%d,%d“,a,c);(分数:2.00)A.3,14,1 B.3,14,2C.2,04,1D.2,14,1解析:解析 本题主要考查自加运算符(+、-)的使用。前缀变量“+i、-i”,在使用 i 之前,先使 i 的值加 1 或者减 1,再使用此时的表达式的值参与运算;后缀变量“i+、i-”,先使用此时的表达式的值参与

    23、运算,在使用 i 之后,再使 i 的值加 1 或者减 1。本题中计算表达式 c=(a+)-1 时先使用 a 的值进行计算,结果为 c=2-1=1,然后将 a 的值加 1,即执行完此语句后 a 的值是 3;表达式 c+=-a+(+b)等价于 c=c(-a+)+(+b),c=1+(-3)+3=1,此时 a=4,b=3。33.已知大写字母 A 的 ASCII 码是 65,小写字母 a 的 ASCII 码是 97。下列不能将变量 c 中的大写字母转换为对应小写字母的语句是( )。(分数:2.00)A.c=(c-A)%26+aB.c=c+32C.c=c-A+aD.c=(A 解析:解析 由题意可知,小写字

    24、符 a 和大写字符 A 的 ASCII 代码相差为 32,所以选项 C)能将大写字符 c 的 ASCII 代码转换为小写字符 c 的 ASC代码;选项 A)和 C)左侧的表达式都是大写字符 c 与大写字符 A 的差与a的 ASCII 代码的和就是小写字符 c 的 ASCII 代码。而选项 D)中应该是加上a,而不是减去a。34.数据库系统的核心是( )。(分数:2.00)A.数据模型B.数据库管理系统 C.数据库D.数据库管理员解析:解析 数据库系统由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台 (硬件)、软件平台 5 个部分构成。其中数据库管理系统是数据库系统的核心

    25、,它负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等工作。35.下列程序的运行结果是( )。main()int a=-5,b=1,c=1;int x=0,y=2,z=0;if(c0)x=x+y;if(a=0)if(bO)if(c=0)y=x-y;else if(c0)y=x-y;else z=y;printf(“%d,%d,%d/n“,x,y,z);(分数:2.00)A.2,2,0 B.2,2,2C.0,2,0D.2,0,2解析:解析 本题考查 if else 语句的使用。先判断第 1 个 if 语句,因为 c=10,所以 x=x+y=0+2=2。第 1 个 if 语句,因为

    26、 a=-50,所以进入下列的复合语句。经判断发现,复合语句中第 2 个 if 语句的条件均不满足,不执行任何语句退出,在这个过程中 y 和 z 的值没有发生变化。36.两次运行下列的程序,如果从键盘上分别输入 3 和 1,则输出结果是( )。main()int x;scanf(“%d“,break;casea:printf(“good“);break;caseC:printf(“morning“);cased:printf(“class“);(分数:2.00)填空项 1:_ (正确答案:morningclass)解析:解析 本题考查了两个知识点:“+、-”运算后缀形式是先使用变量原来的值,使用

    27、完后再使其增 1 或减 1;在 switch 语句中,当 n=c时,执行“casec:”,输出 morning;因为此句中没有break 语句,因此接着执行“cased:”,输出 class,最终输出结果为 morningclass。49.写出下列程序的输出结果_。main()int n=0;while(n+=1);printf(“%d,“,n);printf(“%d“,n+);(分数:2.00)填空项 1:_ (正确答案:3,3)解析:解析 本题在 while(n+=1)语句后,直接加了分号,说明如果 while()的条件为真时,该循环什么都不做;n+是先取 n 的当前值和 1 做比较,然后

    28、再将 n 加 1。第一次循环,n=0 时,循环条件n+=0=1 成立,执行循环,然后得到 n=1。第二次循环,n=1 时,循环条件 n+=1=1 成立,执行循环,然后得到 n=2。第三次循环,n=2 时,循环条件 n+=2=1 不成立,不执行循环,但在判断循环条件时仍将 n 加 1,得到 n=3。退出循环后执行 printf 语句,第二个 printf 语句输出 n+,是先输出 n 的当前值3,然后再将 n 加 1,即程序结束后得到 n=4,但输出的是 3。50.下列程序的功能:对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。#includestdio.h#includecty

    29、pe.hmain()char c;int a,s=0;while(_)if(isdigit(c)a=c-0;s+=a;printf(“s=%d“,s);(分数:2.00)填空项 1:_ (正确答案:(c=getchar()!=/n)解析:解析 分析题目可知,程序中运用函数 c=getchar()从标准输入设备读取下一个字符,而且是一行的字符(即没有换行),所以条件为(c=getchar()!=/n。51.下列程序输出的结果是_。int m=17;int fun(int x,int y)int m=3;return(x*y-m);main()int a=5,b=7;printf(“%d/n“,f

    30、un(a,b)/m);(分数:2.00)填空项 1:_ (正确答案:1)解析:解析 本题考查局部变量和全局变量的区别:局部变量是指作用域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。本程序首先定义了一个全局变量 m=17,m=17 的作用域在整个程序内。在 fun 函数内部定义了一个局部变量 m=3,m=3 的作用域仅在 fun 函数内部,通过 fun 函数返回两个形参的积再减 m。在主函数中,输出 fun(a,b)/m=(5*7-3)/17=1。52.设有下列的程序段:char str=“Hello“;char*ptr;ptr=-str;执行上面的程序段后,*(ptr+5)

    31、的值为_。(分数:2.00)填空项 1:_ (正确答案:/0)解析:解析 本题涉及字符数组和指针的两个知识点:在 C 语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符/0,所以题中数组 str 有 6 个元素。ptr 指向数组 str 的首地址,ptr+5 是指向 str5, *(ptr+5)是引用 str5的值,即/0。53.若有定义 int a44=1,2,3,4,0,4,6,8,10,1,3,5,7,则初始化后,a11得到的初值是 1。(分数:2.00)填空项 1:_ (正确答案:0)解析:解析 二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的,

    32、a44可以分解为 4 个一维数组,其数组名分别为 aO、a1、a2、a3,这 4 个一维数组都有 4 个元素,a0的元素为 a00、a01、a02、a03。54.设有下列程序:#includestdio.h#includestring.hmain()int i;chars10,t10;gets(t);for(i=0;i2;i+)gets(s);if(strcmp(t,s)0)strcpy(t,s);printf(“%s/n“,t);程序运行后,从键盘上输入(CR代表回车符):CDEFCRBADEFCRQTHRGCR,则程序的输出结果是_。(分数:2.00)填空项 1:_ (正确答案:QTHRG

    33、)解析:解析 strcmp(t,s)函数用来比较 t 和 s 所指字符串的大小,若 ts,则函数值大于 0;若 t=s,则函数值等于 0;若 ts,则函数值小于 0。strcpy(t,s)函数的功能是把字符数组 s 所指字符串的内容复制到字符数组 t 所指的存储空间中。本题中,t10=“CDEF“。第一次循环,s10=“BADEF“,if 语句的控制条件 strcmp(t,s)0 不成立,接着执行第二次循环,s=“QTHRG“,if 语句的控制条件 strcmp(t,s)0 成立,执行下列的语句,将字符数组 s 所指字符串的内容复制到字符数组 t 所指的存储空间中,然后输出字符数组 t。55.

    34、下列程序的输出结果是_。#define P(a) printf(“%d,“,(int)(a)#define PRINT(a)P(a);printf(“the end“)main()int i,a=0;for(i=1;i5;i+)PRINT(a+i);printf(“/n“);(分数:2.00)填空项 1:_ (正确答案:1,2,3,4,the end)解析:解析 本题考查带参数的宏的定义。第 1 次循环,i=1 时,调用 PRINT(1),P(1)输出 1;第 2 次循环, i=2 时,调用 PRINT(2),P(2)输出 2;第 3 次循环,i=3 时,调用 PRINT(3),P(3)输出 3;第 4 次循环,i=4 时,调用 PRINT(4),P(4)输出 4,the end。


    注意事项

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




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

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

    收起
    展开