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

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

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

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

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

    1、二级 C 语言-221 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.算法的时间复杂度是指_。(分数:2.50)A.算法的长度B.执行算法所需要的时间C.算法中的指令条数D.算法执行过程中所需要的基本运算次数2.以下数据结构中,属于非线性数据结构的是_。(分数:2.50)A栈B.线性表C.队列D.二叉树3.数据结构中,与所使用的计算机无关的是数据的_。(分数:2.50)A.存储结构B.物理结构C.逻辑结构D.线性结构4.内聚性是对模块功能强度的衡量,下列选项中,内聚性较弱的是_。(分数:2.50)A.顺序内聚B.偶然内聚C.时间内聚D.

    2、逻辑内聚5.在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的_。(分数:2.50)A.连接码B.关系码C.外码D.候选码6.检查软件产品是否符合需求定义的过程称为_。(分数:2.50)A.确认测试B.需求测试C.验证测试D.路径测试7.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是_。(分数:2.50)A.控制流B.加工C.存储文件D.源和潭8.待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码

    3、15 被放到第_个位置。(分数:2.50)A.2B.3C.4D.59.对关系 S 和关系 R 进行集合运算,结果中既包含关系 S 中的所有元组也包含关系 R 中的所有元组,这样的集合运算称为_。(分数:2.50)A.并运算B.交运算C.差运算D.除运算10.下列选项中,不属于数据管理员(DBA)职责的是_。(分数:2.50)A.数据库维护B.数据库设计C.改善系统性能,提高系统效率D.数据类型转换11.C 语言规定,在一个 C 程序中,main()函数的位置_。(分数:2.50)A.必须在系统调用的库函数之后B.必须在程序的开始C.必须在程序的最后D.可以在任意位置12.以下叙述中正确的是_。

    4、(分数:2.50)A.C 语言比其他语言高级B.C 语言可以不用编译就能被计算机识别执行C.C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C 语言出现的最晚,具有其他语言的一切优点13.已知 int a=6;则执行 a+=a-=a*a;语句后,a 的值为_。(分数:2.50)A.36B.0C.-24D.-6014.下列叙述中错误的是_。(分数:2.50)A.C 语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句15.若有定义:int a=7;float x=2.5,y=4.7;则表达式 x+a%

    5、3*(int)(x+y)%2/4 的值是_。(分数:2.50)A.2.500000B.2.750000C.3.500000D.0.00000016.若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是_。(分数:2.50)A.+i;B.n1=(n2/(n3=2);C.k=i=j;D.a=b+c=2;17.下列关于逻辑运算符两侧运算对象的叙述中正确的是_。(分数:2.50)A.只能是整数 0 或 1B.只能是整数 0 或非 0 整数C.可以是结构体类型的数据D.可以是任意合法的表达式18.若有说明 int a34;则 a 数组元素的非法引用是_。(分数:2.50)A.a02*1B.a13

    6、C.a4-20D.a0419.下列说法不正确的是_。(分数:2.50)A.int*ptr;/指针指向整形数据B.char*ptr;/指针的类型是字符型指针C.int*ptr;/指针的类型是双重指针D.int(*ptr)3;/是一个指针数组,数组共有三个元素,而三个元素是 int 型指针20.有以下程序 #include stdio.h void main() char s=“01aXy“;int i,n=0; for(i=0;si!=0;i+) if(s i=“a“ printf(“%d/n“,n); 程序运行后的输出结果是_。(分数:2.50)A.0B.2C.3D.521.有以下程序: #i

    7、nclude stdio.h main() int a=1,2,3,4,y,*p= -p;y=*p;printf(“y=%d/n“,y); 程序的运行结果是_。(分数:2.50)A.y=0B.y=1C.y=2D.y=322.下面的 for 语句的循环次数为_。 for(x=1,y=0;(y!=19)x+);(分数:2.50)A.是无限循环B.循环次数不定C.最多执行 6 次D.最多执行 5 次23.下列程序的输出结果是_。 #includestdio.h void main() int a=0,b=1,c=2; if(+a0|+b0) +c; printf(“%d,%d,%d“,a,b,c);

    8、 (分数:2.50)A.0,1,2B.1,2,3C.1,1,3D.1,2,224.有以下程序: #include stdio.h main() int c; while(c=getchar()!=“/n“) switch(c-“3“) case 0: case 1:putchar(c+4); case 2:putchar(c+4); break; case 3:putchar(c+3); case 4:putchar(c+3); break; printf(“/n“); 从第一列开始输入数据(CR代表一个回车符):3845CR,则程序输出结果为_。(分数:2.50)A.77889B.77868

    9、C.776810D.7788661025.C 语言规定,函数返回值的类型是_。(分数:2.50)A.由调用该函数时的主调函数类型所决定B.由 return 语句中的表达式类型所决定C.由调用该函数时系统临时决定D.由定义该函数时所指定的数值类型决定26.执行下列程序时输入 456空格789空格123回车,输出结果是_。 #includestdio.h main() char m80; int c,i; scanf(“%c“, scanf(“%d“, scanf(“%s“, printf(“%c,%d,%s/n“,c,i,m); (分数:2.50)A.456,789,123B.4,789,123

    10、C.4,56,789,123D.4,56,78927.已知下列函数定义: fun(int *b,int c,int d) int k; for(k=0;kc*d;k+) *b=c+d; b+; 则调用此函数的正确写法是(假设变量 a 的说明为 int a10)_。(分数:2.50)A.fun(*a,6,14);B.fun(C.fun(a,8,4);D.fun(int)a,8,6);28.设 Y 为整型变量,A=1,A 的地址为 EF01;B=2,B 的地址为 EF02;执行语句 B= main() int a4=1,2,3,4,s; s=f(a,2);printf(%d/n“,s); int

    11、f(int t,int n) if(n0) else return 0; 程序运行后的输出结果是_。(分数:2.50)A.4B.7C.10D.630.以下语句定义正确的是_。(分数:2.50)A.int a14=1,2,3,4,5;B.float a3=1,2,2,3,3,1;C.long a23=1,1,2,1,2,3,0,0;D.double a3=8;31.下列一维数组说明中,不正确的是_。(分数:2.50)A.int N;scanf(“%d“,int bN;B.float a=1,6,6,0,2;C.#define S 10int aS;D.#define S 10int aS+5;3

    12、2.下面函数的功能是_。 sss(s,t) char *s,*t; while(*s) return(*s-*t); (分数:2.50)A.将字符串 s 复制到字符串 t 中B.比较两个字符串的大小C.求字符串的长度D.将字符串 s 接续到字符串 t 中33.有以下程序: #include stdio.h #include “string.h“ void fun(char *s,int n) char *t;int i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(strlen(si)strlen(sj) t=si;si=sj;sj=t; main() cha

    13、r *ss=“bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“; fun(ss,5);printf(“%s,%s/n“,ss0,ss4); 程序的运行结果是_。(分数:2.50)A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc34.若已定义: int a=0,1,2,3,4,5,6,7,8,9,*p=a,i; 其中 0i9,则对 a 数组元素不正确的引用是_。(分数:2.50)A.ap-aB.*( P(F(5)*x); (分数:2.50)A.12B.13C.14D.1638.设有下面的定义: struct st int a; float

    14、 b; d; int *p; 要使 p 指向结构变量 d 中的 a 成员,正确的赋值语句是_。(分数:2.50)A.*p=d.a;B.p=C.p=d.a;D.p=39.交换两个变量的值,不允许用临时变量,应该使用下列_位运算符。(分数:2.50)A.B.fp=fopen(“FILE“,“a+“);C.fp=fopen(“FILE“,“w+“);D.fp=fopen(“FILE“,“r+“);E.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件二级 C 语言-221 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.算法的时间复

    15、杂度是指_。(分数:2.50)A.算法的长度B.执行算法所需要的时间C.算法中的指令条数D.算法执行过程中所需要的基本运算次数 解析:解析 算法的时间复杂度,是指执行算法所需要的工作量,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。2.以下数据结构中,属于非线性数据结构的是_。(分数:2.50)A栈B.线性表C.队列D.二叉树 解析:解析 二叉树属于非线性结构。栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作;队列可看作是插入在一端进行,删除在另一端进行的线性表。3.数据结构中,与所使用的计算机无关的是数据的_。(分数:2.50)A.存储结构B.物理结构C.

    16、逻辑结构 D.线性结构解析:解析 数据的逻辑结构反映的是数据元素之间的逻辑关系,与使用的计算机无关。4.内聚性是对模块功能强度的衡量,下列选项中,内聚性较弱的是_。(分数:2.50)A.顺序内聚B.偶然内聚 C.时间内聚D.逻辑内聚解析:解析 内聚是从功能角度来衡量模块的联系,它描述的是模块内的功能联系。内聚有如下种类,它们之间的内聚度由弱到强排列: 偶然内聚模块中的代码无法定义其不同功能的调用。但它使该模块能执行不同的功能,这种模块为巧合强度模块。 逻辑内聚这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的参数来确定该模块应完成哪一种功能。 时间内聚这种模块顺序完成一类相关功能

    17、,比如初始化模块,它顺序地为变量置初值。 过程内聚如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。 通信内聚这种模块除了具有过程内聚的特点外,还有另外一种关系,即它的所有功能都通过使用公用数据而发生关系。 顺序内聚如果一个模块内各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行,处理元素的输出数据作为下一个处理元素的输入数据,则称为顺序内聚。 功能内聚如果一个模块包括为完成某一具体任务所必需的所有成分,或者说模块中所有成分结合起来是为了完成一个具体的任务,此模块则为功能内聚模块。5.在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,

    18、它们称为该表的_。(分数:2.50)A.连接码B.关系码C.外码D.候选码 解析:解析 在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的候选码或候选键。从二维表的所有候选键中选取一个作为用户使用的键称为主键或主码。6.检查软件产品是否符合需求定义的过程称为_。(分数:2.50)A.确认测试 B.需求测试C.验证测试D.路径测试解析:解析 确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需求规格说明中确定的各种需求。7.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是_。(分

    19、数:2.50)A.控制流 B.加工C.存储文件D.源和潭解析:解析 数据流图用于抽象描述一个软件的逻辑模型,它由一些特定的图符构成,包括 4 个方面,即加工、数据流、存储文件、源和潭。8.待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码 15 被放到第_个位置。(分数:2.50)A.2B.3 C.4D.5解析:解析 选择排序的基本思想是扫描整个线性表,从中选出最小的元素,将它交换到表的最前面,然后对剩下的子表采用同样的方法,直到子表为空。所以第一趟排序后,将选出最小的元素 9 放在第一个位置,元素 15 则

    20、被交换放在第三个位置。9.对关系 S 和关系 R 进行集合运算,结果中既包含关系 S 中的所有元组也包含关系 R 中的所有元组,这样的集合运算称为_。(分数:2.50)A.并运算 B.交运算C.差运算D.除运算解析:解析 关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。10.下列选项中,不属于数据管理员(DBA)职责的是_。(分数:2.50)A.数据库维护B.数据库设计C.改善系统性能,提高系统效率D.数据类型转换 解析:解析 数据库管理员(DataBase Administrator,DBA)是指对数据库的规划、设计、维护、监视等的人员,其主要工作

    21、如下: 数据库设计。DBA 的主要任务之一是数据库设计,具体地说是进行数据模式的设计; 数据库维护。DBA 必须对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转储等进行实施与维护; 改善系统性能,提高系统效率。DBA 必须随时监视数据库的运行状态,不断调整内部结构,使系统保持最佳状态与效率。11.C 语言规定,在一个 C 程序中,main()函数的位置_。(分数:2.50)A.必须在系统调用的库函数之后B.必须在程序的开始C.必须在程序的最后D.可以在任意位置 解析:解析 每个 C 程序有且只有一个主函数(main),且程序必须从“main()”函数开始执行,而且“main()”

    22、函数可以放在程序中的任意位置。12.以下叙述中正确的是_。(分数:2.50)A.C 语言比其他语言高级B.C 语言可以不用编译就能被计算机识别执行C.C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D.C 语言出现的最晚,具有其他语言的一切优点解析:解析 此题考查的是 C 语言的基本特点。C 语言是一种高级编程语言,但并不是比其他语言高级;C 语言源程序必须经过编译生成目标文件才能被计算机识别执行;C 语言出现比较晚,它既有优点也有缺点,而并不是具有其他一切语言的优点。13.已知 int a=6;则执行 a+=a-=a*a;语句后,a 的值为_。(分数:2.50)A.36B.0C

    23、.-24D.-60 解析:解析 此题考查的是赋值表达式。执行语句“a+=a-=a*a;”时,首先执行“a=a-a*a=-30”,然后执行“a=a+a=60”。14.下列叙述中错误的是_。(分数:2.50)A.C 语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行 D.赋值表达式末尾加分号就构成赋值语句解析:解析 C 语言规定每条语句和数据定义的最后必须有一个分号,分号是 C 语句的必要组成部分。复合语句也称为“语句块”,其形式如下:语句 1;语句 2;语句 n;,即用一对大括号把若干语句括起来构成一个语句组。一个复合语句在语法上视为一条语句,在一对花

    24、括号内的语句数量不限。一个赋值表达式的最后加一个分号就成为一条语句,即赋值语句。空语句是只有一个分号的语句,它什么也不做,程序设计中有时需要加一个空语句来表示存在一条语句,但随意加分号会导致逻辑上的错误,而且这种错误十分隐蔽,编辑器也不会提示逻辑错误,需要慎用。15.若有定义:int a=7;float x=2.5,y=4.7;则表达式 x+a%3*(int)(x+y)%2/4 的值是_。(分数:2.50)A.2.500000 B.2.750000C.3.500000D.0.000000解析:解析 此题考查的是变量的类型转换。表达式中“(int)(x+y)把 x+y=(7.2)”的值强制转化成

    25、整型即得到 7,那么“a%3*(int)(x+y)%2”的值为整型常量 1,所以“a%3*(int)(x+y)%2/4”的值为 0:因为变量 x 是浮点型变量,所以表达式“x+a%3*(int)(x+y)%2/4”的结果也是浮点型,得到 2.500000。16.若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是_。(分数:2.50)A.+i;B.n1=(n2/(n3=2);C.k=i=j;D.a=b+c=2; 解析:解析 本题考查赋值表达式。赋值表达式的一般形式是:变量名=表达式。C 语言规定,不能给变量表达式赋值。17.下列关于逻辑运算符两侧运算对象的叙述中正确的是_。(分数:2.

    26、50)A.只能是整数 0 或 1B.只能是整数 0 或非 0 整数C.可以是结构体类型的数据D.可以是任意合法的表达式 解析:解析 逻辑运算符两侧的运算对象可以是任意合法的表达式。逻辑表达式的运算结果或者为1(“真”),或者为 0(“假”)。18.若有说明 int a34;则 a 数组元素的非法引用是_。(分数:2.50)A.a02*1B.a13C.a4-20D.a04 解析:解析 此题考查的是数组元素的引用。对于已定义的数组 aMN,数组元素的正确引用必须满足行下标小于 M,列下标小于 N 且为正整数。此题中,选项 D 中列下标值出现溢出。19.下列说法不正确的是_。(分数:2.50)A.i

    27、nt*ptr;/指针指向整形数据B.char*ptr;/指针的类型是字符型指针C.int*ptr;/指针的类型是双重指针D.int(*ptr)3;/是一个指针数组,数组共有三个元素,而三个元素是 int 型指针 解析:解析 int(*ptr)3是一个数组指针,指针指向一个有 3 个 int 型变量的数组。20.有以下程序 #include stdio.h void main() char s=“01aXy“;int i,n=0; for(i=0;si!=0;i+) if(s i=“a“ printf(“%d/n“,n); 程序运行后的输出结果是_。(分数:2.50)A.0 B.2C.3D.5解

    28、析:解析 这段程序的功能求出字符串 s 中字符的 ASCII 码小于小写字符 a 并且大于小写字符 z 的字符的个数。因为小写字符 z 的 ASCII 码大于小写字符 a 的 ASCII 码,所以满足 a 的 ASCII 码并且大于 z的 ASCII 码的字符是不存在的,所以输出 0。21.有以下程序: #include stdio.h main() int a=1,2,3,4,y,*p= -p;y=*p;printf(“y=%d/n“,y); 程序的运行结果是_。(分数:2.50)A.y=0B.y=1C.y=2D.y=3 解析:解析 程序首先定义了一个一维数组和指针,接着将数组第 4 个元素

    29、的地址赋给“*p”,进行-p使指针 p 指向了数组的第 3 个元素;通过“y=*p”,将数组第 3 个元素的值 3 赋给了 y,所以选项 D 正确。22.下面的 for 语句的循环次数为_。 for(x=1,y=0;(y!=19)x+);(分数:2.50)A.是无限循环B.循环次数不定C.最多执行 6 次D.最多执行 5 次 解析:解析 本题考查 for 循环。只考虑 x 的取值变化,x 从 1 取到 5,可以循环 5 次,但是并不知道 y是如何变化的,有可能出现 y=19 提前跳出循环的情况,所以是最多执行了 5 次。23.下列程序的输出结果是_。 #includestdio.h void

    30、main() int a=0,b=1,c=2; if(+a0|+b0) +c; printf(“%d,%d,%d“,a,b,c); (分数:2.50)A.0,1,2B.1,2,3C.1,1,3 D.1,2,2解析:解析 本题考查 if 语句。先判断 if 语句的条件是否成立,因为“+a=10”,所以条件成立,又因为是进行逻辑或运算,在已知其中一个运算对象为真的情况下,不必判断另外一个运算对象的真假,即不进行+b 操作,就可以直接得出整个表达式的值为逻辑 1,执行下面的+c。24.有以下程序: #include stdio.h main() int c; while(c=getchar()!=“

    31、/n“) switch(c-“3“) case 0: case 1:putchar(c+4); case 2:putchar(c+4); break; case 3:putchar(c+3); case 4:putchar(c+3); break; printf(“/n“); 从第一列开始输入数据(CR代表一个回车符):3845CR,则程序输出结果为_。(分数:2.50)A.77889 B.77868C.776810D.77886610解析:解析 题中 while 循环的条件是:当从键盘读入的字符不是“/n“”时,执行 while 循环。 输入第一个字符 3 时:执行 case 0,什么也不输

    32、出;case 1,输出 7;case2,输出 7;遇到 break 语句,跳出 switch 语句。输入第二个字符 8 时“c-“3“=5”,不执行任何语句。输入第三个字符 4 时“c-“3“=1”,执行 case 1 输出 8;case 2,输出 8:遇到 break 语句,跳出 switch 语句。输入第四个字符 5时“c-“3“=2”,执行 case 2,输出 9;遇到 break 语句,跳出 switch 语句。25.C 语言规定,函数返回值的类型是_。(分数:2.50)A.由调用该函数时的主调函数类型所决定B.由 return 语句中的表达式类型所决定C.由调用该函数时系统临时决定D

    33、.由定义该函数时所指定的数值类型决定 解析:解析 本题考查函数调用时的数值类型。函数调用时,函数返回值的类型既不由主调函数类型所决定,也不由 return 语句中的表达式类型所决定,更不是由系统临时决定,而是由定义该函数时所指定的数值类型所决定。26.执行下列程序时输入 456空格789空格123回车,输出结果是_。 #includestdio.h main() char m80; int c,i; scanf(“%c“, scanf(“%d“, scanf(“%s“, printf(“%c,%d,%s/n“,c,i,m); (分数:2.50)A.456,789,123B.4,789,123C

    34、.4,56,789,123D.4,56,789 解析:解析 scanf 函数中的“%c”表示通过键盘只读入一个字符型的数据,“ for(k=0;kc*d;k+) *b=c+d; b+; 则调用此函数的正确写法是(假设变量 a 的说明为 int a10)_。(分数:2.50)A.fun(*a,6,14);B.fun(C.fun(a,8,4); D.fun(int)a,8,6);解析:解析 本题考查函数调用时的参数传递。 fun 函数的调用形式为 fun(int*b,int c,int d)。调用数组时,用数组名表示一个指向数组的第一个元素的指针,因此调用时的形式为“fun(a,8,4)”。28.

    35、设 Y 为整型变量,A=1,A 的地址为 EF01;B=2,B 的地址为 EF02;执行语句 B= main() int a4=1,2,3,4,s; s=f(a,2);printf(%d/n“,s); int f(int t,int n) if(n0) else return 0; 程序运行后的输出结果是_。(分数:2.50)A.4B.7 C.10D.6解析:解析 本题主要考查的是函数的递归调用,子函数 f 是一个递归函数,所以主函数中执行“f(a,2)”时,其执行过程是“a3+f(a,1)=a3+a2+f(a,0)=7”。30.以下语句定义正确的是_。(分数:2.50)A.int a14=1

    36、,2,3,4,5;B.float a3=1,2,2,3,3,1;C.long a23=1,1,2,1,2,3,0,0;D.double a3=8; 解析:解析 本题考查如何对二维数组的元素赋值。 选项 A,数组第二维的大小是 4,但是却赋值了 5 个元素,数组溢出;选项 B,C 语言规定,对于二维数组,只可以省略第一个方括号中的常量表达式,而不能省略第二个方括号中的常量表达式;选项 C,数组第一维的大小是 2,但是赋值超过了 2;选项 D,在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取 0。31.下列一维数组说明中,不正确的是_。(分数:2.50)A.int N;sca

    37、nf(“%d“,int bN; B.float a=1,6,6,0,2;C.#define S 10int aS;D.#define S 10int aS+5;解析:解析 本题考查一维数组的赋值。一维数组的一般定义格式为:类型说明符数组名常量表达式。其中,“”中的内容可以是整型常量,也可以是整型表达式。选项 A 中的 N 是一个变量,所以错误。32.下面函数的功能是_。 sss(s,t) char *s,*t; while(*s) return(*s-*t); (分数:2.50)A.将字符串 s 复制到字符串 t 中B.比较两个字符串的大小 C.求字符串的长度D.将字符串 s 接续到字符串 t

    38、 中解析:解析 “s-*t”的输出实际是比较两个字符的 ASCII 码值,比较两个字符串的大小。33.有以下程序: #include stdio.h #include “string.h“ void fun(char *s,int n) char *t;int i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(strlen(si)strlen(sj) t=si;si=sj;sj=t; main() char *ss=“bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“; fun(ss,5);printf(“%s,%s/n“,ss0,ss4);

    39、程序的运行结果是_。(分数:2.50)A.xy,aaaacc B.aaaacc,xyC.bcc,aabccD.aabcc,bcc解析:解析 从 main 函数入手,定义了一个一维数组并赋初值,接着调用函数 fun(),函数的功能是:比较数组中各元素的长度,按元素长度从小到大的顺序排列元素,所以执行“fun(ss,5)”函数后,“*ss=“xy“,“bcc“,“bbcc“,“aabcc“,“aaaacc“”,所以调用 printf 函数输出 ss0,ss4的值分别为 xy,aaaacc。34.若已定义: int a=0,1,2,3,4,5,6,7,8,9,*p=a,i; 其中 0i9,则对 a

    40、数组元素不正确的引用是_。(分数:2.50)A.ap-aB.*( P(F(5)*x); (分数:2.50)A.12 B.13C.14D.16解析:解析 本题考查带参数的宏定义及相关运算。“P(F(5)*x)=P(2.84+5*2)=P(12.84)”,调用“w(12.84)”,输出“(int)(12.84)=12”。38.设有下面的定义: struct st int a; float b; d; int *p; 要使 p 指向结构变量 d 中的 a 成员,正确的赋值语句是_。(分数:2.50)A.*p=d.a;B.p=C.p=d.a;D.p= 解析:解析 本题主要考查按结构数组元素方式引用结构

    41、成员。结构体变量的成员引用方法有 3 种:结构体变量名.成员名;指针变量名-成员名;(*指针变量名).成员名。因为 p 是指针变量,所以应该将地址值赋给 p。39.交换两个变量的值,不允许用临时变量,应该使用下列_位运算符。(分数:2.50)A.B.fp=fopen(“FILE“,“a+“);C.fp=fopen(“FILE“,“w+“);D.fp=fopen(“FILE“,“r+“); E.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件解析:解析 本题考查打开文件函数 fopen(),打开文件函数 fopen()的调用形式为:fp=fopen(文件名,文件使用方式)。“文件使用方式”说明:方式“r”为以输入方式打开一个文本文件;方式“a+”为以读/写方式打开一个文本文件,保留文件中原有的数据;方式“w+”为以读/写方式建立一个新的文本文件;方式“r+”为以读/写方式打开一个文本文件。


    注意事项

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




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

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

    收起
    展开