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

上传人:吴艺期 文档编号:1325456 上传时间:2019-10-17 格式:DOC 页数:20 大小:102.50KB
下载 相关 举报
【计算机类职业资格】二级C语言-80及答案解析.doc_第1页
第1页 / 共20页
【计算机类职业资格】二级C语言-80及答案解析.doc_第2页
第2页 / 共20页
【计算机类职业资格】二级C语言-80及答案解析.doc_第3页
第3页 / 共20页
【计算机类职业资格】二级C语言-80及答案解析.doc_第4页
第4页 / 共20页
【计算机类职业资格】二级C语言-80及答案解析.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、二级 C 语言-80 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是_。(分数:1.00)A.循环队列是队列的一种链式存储结构B.循环队列是队列的一种顺序存储结构C.循环队列是非线性结构D.循环队列是一种逻辑结构2.下列关于线性链表的叙述中,正确的是_。(分数:1.00)A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素D.各数据结点的存储顺序与逻辑顺序可以不一致,它们的存储空间也可以不一致

2、3.一棵二叉树共有 25 个结点,其中 5 个是叶子结点,则度为 1 的结点数为_。(分数:1.00)A.16B.10C.6D.44.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是_。(分数:1.00)A.外模式B.内模式C.概念模式D.逻辑模式5.在满足实体完整性约束的条件下_。(分数:1.00)A.一个关系中应该有一个或多个候选关键字B.一个关系中只能有一个候选关键字C.一个关系中必须有多个候选关键字D.一个关系中可以没有候选关键字6.有三个关系 R、S 和 T 如下: R A B C a 1 2 b 2 1 c 3 1 S A B c 3 T C 1 则由关系 R 和 S 得

3、到关系 T 的操作是_。(分数:1.00)A.自然连接B.交C.除D.并7.下面描述中,不属于软件危机表现的是_。(分数:1.00)A.软件过程不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高8.下面不属于需求分析阶段任务的是_。(分数:1.00)A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制定软件集成测试计划9.在黑盒测试方法中,设计测试用例的主要根据是_。(分数:1.00)A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图10.在软件设计中不使用的工具是_。(分数:1.00)A.系统结构图B.PAD 图C.数据流图(DFD 图

4、)D.程序流程图11.以下叙述中错误的是_。(分数:1.00)A.C 程序在运行过程中所有计算都以十进制方式进行B.C 程序在运行过程中所有计算都以二进制方式进行C.所有 C 程序都需要编译链接无误后才能运行D.C 程序中字符变量存放的是字符的 ASCII 值12.以下关于 C 语言的叙述中正确的是_。(分数:1.00)A.C 语言中的变量可以在使用之前的任何位置进行定义B.C 语言中的注释不可以夹在变量名或关键字的中间C.在 C 语言算术表达式的书写中,运算符两侧的运算数类型必须一致D.C 语言的数值常量中夹带空格不影响常量值的正确表示13.以下不合法的字符常量是_。(分数:1.00)A.“

5、/018“B.“/“C.“/“D.“/xcc“14.以下选项中正确的定义语句是_。(分数:1.00)A.double,a,b;B.double a=b=7;C.double a;b;D.double a=7,b=7;15.若有定义语句: int a=3,b=2,c=1; 以下选项中错误的赋值表达式是_。(分数:1.00)A.a=(b=4)+c;B.a=b=c+1;C.a=(b=4)=3;D.a=1+(b=c=4);16.若有定义: int a,b; 通过语句 scanf(“%d;%d“, 能把整数 3 赋给变量 a,5 赋给变量 b 的输入数据是_。(分数:1.00)A.3;5B.3,5C.3

6、 5D.3517.已知大写字母 A 的 ASCII 码是 65,小写字母 a 的 ASCII 码是 97。以下不能将变量 c 中的大写字母转换为对应小写字母的语句是_。(分数:1.00)A.c=c+32B.c=(“A“+c)%26-“a“C.c=c-“A“+“a“D.c=(c-“A“)%26+“a“18.在以下给出的表达式中,与 while(E)中的(E)不等价的表达式是_。(分数:1.00)A.(E=0)B.(E0E0)C.(!E=0)D.(E!=0)19.以下程序段中,与语句 k=ab?(bc?1:0):0; 功能相同的是_。(分数:1.00)A.if(a=b) k=0;else if(b

7、=c) k=1;B.if(ab)(bc) k=1;else k=0;C.if(ab) else k=0;D.if(ab) k=1;else if(bc) k=1;else k=0;20.有以下程序 #include stdio.h main() int a=1,b=2; for(;a8;a+) b+=a;a+=2;) printf(“%d,%d/n“,a,b); 程序运行后的输出结果是_。(分数:1.00)A.10,14B.8,11C.7,11D.9,1821.有以下程序 #include stdio.h main() int i,j,m=55; for(i=1;i=3;i+) for(j=3

8、;j=i;j+) m=m%j; printf(“%d/n“,m); 程序的运行结果是_。(分数:1.00)A.0B.1C.2D.322.有以下程序 #include stdio.h main() int x=8; for(;x0;x-) if(x%3) printf(“%d,“,x-); continue; printf(“%d,“,-x); 程序的运行结果是_。(分数:1.00)A.8,5,4,2,B.8,7,5,2,C.9,7,6,4,D.7,4,2,23.以下关于 return 语句的叙述正确的是_。(分数:1.00)A.没有 return 语句的自定义函数在执行结束时不能返回到调用处B

9、.一个自定义函数中必须有一条 return 语句C.定义成 void 类型的函数中可以有带返回值的 return 语句D.一个自定义函数中可以根据不同情况设置多条 return 语句24.已定义以下函数 int fun(int *P) return *P; fun 函数返回值是_。(分数:1.00)A.一个整数B.不确定的值C.形参 p 中存放的值D.形参 p 的地址值25.以下程序段完全正确的是_。(分数:1.00)A.int *p; scanf(“%d“,B.int *p; scanf(“%d“,p);C.int k,*p= scanf(“%d“,p);D.int k,*p; *p= sc

10、anf(“%d“,p);26.若有定义 double a10,*s=a; 以下能够代表数组元素 a3的是_。(分数:1.00)A.*(s+3)B.(*s)3C.*s3D.*s+327.有以下程序 #include stdio.h void f(int *q) int i=0; for(;i5;i+)(*q)+; main() int a5=1,2,3,4,5,i; f(a); for(i=0;i5;i+) printf(“%d,“,ai); 程序运行后的输出结果是_。(分数:1.00)A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,28.有以下程

11、序 #include stdio.h int fun(int (*s)4,int n,int k) int m,i; m=s0k; for(i=1;in:i+) if(sikm) m=sik; return m; main() int a44=1,2,3,4, 11,12,13,14, 21,22,23,24, 31,32,33,34; printf(“%d/n“,fun(a,4,0); 程序的运行结果是_。(分数:1.00)A.31B.34C.4D.3229.以下能正确定义字符串的语句是_。(分数:1.00)A.char str=“/0“;B.char str=“/x43“;C.char s

12、tr=“;D.char str=“/064“;30.以下关于字符串的叙述正确的是_。(分数:1.00)A.C 语言中有字符串类型的常量和变量B.两个字符串中的字符个数相同时才能进行字符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.空串比空格打头的字符串小31.有以下程序 #include stdio.h void fun(char *a,char *b) while(*a=“*“) a+; while(*b=*a)b+;a+; main() char *s=“*a*b*“,t80; fun(s,t); puts(t); 程序的运行结果是_。(分数:1.00)A.a*b*B.a*bC

13、.*a*bD.ab32.下列函数的功能是_。 void fun(char *a,char *b) while(*b=*a)!=“/0“) a+;b+; (分数:1.00)A.检查 a 和 b 所指字符串中是否有“/0“B.使指针 b 指向 a 所指字符串C.将 a 所指字符串和 b 所指字符串进行比较D.将 a 所指字符串赋给 b 所指空间33.有以下程序 #include stdio.h int fun(int x) int p; if(x=0x=1) return3; p=x-fun(x-2); return p; main() printf(“%d/n“,fun7); 执行后的输出结果是

14、_。(分数:1.00)A.2B.3C.7D.034.有以下程序 #include stdio.h int 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.4D.835.以下结构体类型说明和变量定义中正确的是_。(分数:1.00)A.typedef struct int n;char c; REC;REC t1,t2;B.struct REC; int n;char c;REC t1,t2;

15、C.typedef struct REC; int n=0;char c=“A“; t1,t2;D.struct int n;char c; REC;REC t1,t2;36.假定已建立以下链表结构,且指针 p 和 q 已指向如下图所示的结点: (分数:1.00)A.p-next=q-next; free(q);B.p=q-next; free(q);C.p=q; free(q);D.(*p).next=(*q).next; free(p);37.有以下程序 #include stdio.h #include string.h struct A int a; char b10; double

16、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.1002,ChangRong,1202.0B.1001,ZhangDa,1098.0C.1001,ChangRong,1098.0D.1002,ZhangDa,1202.038.有以下程序 #inclu

17、de stdio.h #define N 5 #define M N+1 #define f(x) (x*M) main() int i1,i2; i1=f(2); i2=f(1+1); printf(“%d%d/n“,i1,i2); 程序的运行结果是_。(分数:1.00)A.11 7B.12 12C.11 11D.12 739.有以下程序 #include stdio.h main() int a=5,b=1,t; t=(a2)|b; printf(“%d/n“,t); 程序运行后的输出结果是_。(分数:1.00)A.6B.11C.21D.140.设 fp 为指向某二进制文件的指针,且已读到

18、此文件末尾,则函数 feof(fp)的返回值为_。(分数:1.00)A.非 0 值B.“/0“C.0D.NULL二、程序填空题(总题数:1,分数:20.00)41.给定程序中,函数 fun 的功能是计算下式 直到 (分数:20.00)三、程序改错题(总题数:1,分数:20.00)42.给定程序 MODI1.C 中函数 fun 的功能是:求出以下分数序列的前 n 项之和,和值通过函数值返回到main 函数。 (分数:20.00)_四、程序设计题(总题数:1,分数:20.00)43.请编写一个函数 fun,它的功能是:求出一个 2M 整型二维数组中最大元素的值,并将此值返回到调用函数。 注意:部分

19、源程序保存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。 给定源程序: #include stdio.h #define M 4 int fun(int aM) main() int arr2M=5,8,3,45,76,-4,12,82); printf(“max=%d/n“,fun(arr); (分数:20.00)_二级 C 语言-80 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是_。(分数:1.00)A.循环队列是队列的一种链式存储结构

20、B.循环队列是队列的一种顺序存储结构 C.循环队列是非线性结构D.循环队列是一种逻辑结构解析:解析 在实际应用中,队列的顺序存储结构一般采用循环队列的形式,循环队列是线性结构,因此本题答案为 B。2.下列关于线性链表的叙述中,正确的是_。(分数:1.00)A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素 D.各数据结点的存储顺序与逻辑顺序可以不一致,它们的存储空间也可以不一致解析:解析 一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结

21、点在存储空间中的位置关系与逻辑关系也不一致。线性链表中数据的插入和删除都不需要移动表中的元素,只需改变结点的指针域即可。因此,本题答案为 C。3.一棵二叉树共有 25 个结点,其中 5 个是叶子结点,则度为 1 的结点数为_。(分数:1.00)A.16 B.10C.6D.4解析:解析 根据二叉树的性质 3:在任意一棵二叉树中,度为 0 的叶子结点总是比度为 2 的结点多一个,所以本题中度为 2 的结点是 5-1=4(个),所以度为 1 的结点的个数是 25-5-4=16(个),选择 A。4.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是_。(分数:1.00)A.外模式B.内模式 C

22、.概念模式D.逻辑模式解析:解析 数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户的公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述。内模式又称物理模式,它给出了数据库的物理存储结构与物理存取方法,因此本题答案为 B。5.在满足实体完整性约束的条件下_。(分数:1.00)A.一个关系中应该有一个或多个候选关键字 B.一个关系中只能有一个候选关键字C.一个关系中必须有多个候选关键字D.一个关系中可以没有候选关键字解析:解析 实体完整性约束要求关系的主键中属性值不能为空值,因此本题答案为 A。6.有三

23、个关系 R、S 和 T 如下: R A B C a 1 2 b 2 1 c 3 1 S A B c 3 T C 1 则由关系 R 和 S 得到关系 T 的操作是_。(分数:1.00)A.自然连接B.交C.除 D.并解析:解析 如果 T=R/S,则 T 称为 R 除以 S 的商。在除运算中 T 的域由 R 中那些不出现在 S 中的域所组成,对于 T 中的任一有序组,由它与关系 S 中每个有序组所构成的有序组均出现在关系 R 中。因此本题选择 C。7.下面描述中,不属于软件危机表现的是_。(分数:1.00)A.软件过程不规范 B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高解析:解析

24、软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。因此本题答案为 A。8.下面不属于需求分析阶段任务的是_。(分数:1.00)A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制定软件集成测试计划 解析:解析 需求分析阶段的工作包括:需求获取、需求分析、编写需求规格说明书、需求评审,因此本题答案为 D。9.在黑盒测试方法中,设计测试用例的主要根据是_。(分数:1.00)A.程序内部逻辑B.程序外部功能 C.程序数据结构D.

25、程序流程图解析:解析 黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能规格说明,因此本题答案为 B。10.在软件设计中不使用的工具是_。(分数:1.00)A.系统结构图B.PAD 图C.数据流图(DFD 图) D.程序流程图解析:解析 系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。PAD 图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图

26、(DFD 图)是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,因此它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以本题答案为 C。11.以下叙述中错误的是_。(分数:1.00)A.C 程序在运行过程中所有计算都以十进制方式进行 B.C 程序在运行过程中所有计算都以二进制方式进行C.所有 C 程序都需要编译链接无误后才能运行D.C 程序中字符变量存放的是字符的 ASCII 值解析:解析 C 程序在运行过程中所有计算都以二进制方式进行,所以本题答案为 A。12.以下关于 C 语言的叙述中正确的是_。(分数:1.00

27、)A.C 语言中的变量可以在使用之前的任何位置进行定义B.C 语言中的注释不可以夹在变量名或关键字的中间 C.在 C 语言算术表达式的书写中,运算符两侧的运算数类型必须一致D.C 语言的数值常量中夹带空格不影响常量值的正确表示解析:解析 注释夹在变量名或关键字的中间,就把它分割了,所以错误。13.以下不合法的字符常量是_。(分数:1.00)A.“/018“ B.“/“C.“/“D.“/xcc“解析:解析 本题考查的知识点是字符常量中的转义字符。转义字符是以一个“/”开头的字符序列,它只代表一个字符。在选项 A 中,“/”后跟着三个数字,是表示一个 ASCII 码值等于这三位数字所组成的八进制数

28、数值的字符,但是八进制数只能是由 07 这八个数字表示,而选项 A 中出现了数字 8,所以是不合法的。选项 B 是表示一个双引号的转义字符表示方法;选项 C 表示的是一个反斜杠;选项 D 表示一个ASCII 值为十六进制值 cc 的字符。故应该选择 A。14.以下选项中正确的定义语句是_。(分数:1.00)A.double,a,b;B.double a=b=7;C.double a;b;D.double a=7,b=7; 解析:解析 B 选项,定义变量不能连等,C 选项 b 前没有类型名,A 选项类型名与变量名之间不能有逗号,所以 D 正确,其余错误。15.若有定义语句: int a=3,b=

29、2,c=1; 以下选项中错误的赋值表达式是_。(分数:1.00)A.a=(b=4)+c;B.a=b=c+1;C.a=(b=4)=3; D.a=1+(b=c=4);解析:解析 b=4 不能作为左值,所以本题答案为 C。16.若有定义: int a,b; 通过语句 scanf(“%d;%d“, 能把整数 3 赋给变量 a,5 赋给变量 b 的输入数据是_。(分数:1.00)A.3;5 B.3,5C.3 5D.35解析:解析 scanf 中格式控制符里必须原样输入,所以分号也必须输入,A 正确。17.已知大写字母 A 的 ASCII 码是 65,小写字母 a 的 ASCII 码是 97。以下不能将变

30、量 c 中的大写字母转换为对应小写字母的语句是_。(分数:1.00)A.c=c+32B.c=(“A“+c)%26-“a“ C.c=c-“A“+“a“D.c=(c-“A“)%26+“a“解析:解析 大写字母转换为对应小写字母,即加上 32,B 选项不是累加 32,所以选择 B。18.在以下给出的表达式中,与 while(E)中的(E)不等价的表达式是_。(分数:1.00)A.(E=0) B.(E0E0)C.(!E=0)D.(E!=0)解析:解析 E 为 0,while 条件为假,而 E 为 0,(E=0)为真,所以选择 A。19.以下程序段中,与语句 k=ab?(bc?1:0):0; 功能相同的

31、是_。(分数:1.00)A.if(a=b) k=0;else if(b=c) k=1;B.if(ab)(bc) k=1;else k=0;C.if(ab) else k=0; D.if(ab) k=1;else if(bc) k=1;else k=0;解析:解析 k=ab?(bc?1:0):0; ab 并且 bc,k 为 1,其他情况 k 为 0,答案为 C。20.有以下程序 #include stdio.h main() int a=1,b=2; for(;a8;a+) b+=a;a+=2;) printf(“%d,%d/n“,a,b); 程序运行后的输出结果是_。(分数:1.00)A.10

32、,14 B.8,11C.7,11D.9,18解析:解析 第一次循环后,a 为 4,b 为 3,第二次循环后,a 为 7,b 为 7,第三次循环后,a 为10,b 为 14,故答案为 A。21.有以下程序 #include stdio.h main() int i,j,m=55; for(i=1;i=3;i+) for(j=3;j=i;j+) m=m%j; printf(“%d/n“,m); 程序的运行结果是_。(分数:1.00)A.0B.1 C.2D.3解析:解析 虽为嵌套的 for 循环,但“m=m%j”只执行 1 次,即当 i=3 时,内层循环条件成立,m=55%3=1,故选 B。22.有

33、以下程序 #include stdio.h main() int x=8; for(;x0;x-) if(x%3) printf(“%d,“,x-); continue; printf(“%d,“,-x); 程序的运行结果是_。(分数:1.00)A.8,5,4,2, B.8,7,5,2,C.9,7,6,4,D.7,4,2,解析:解析 第一次 x 为 8,输出 8,第二次 x 为 6,输出 5,第三次 x 为 4,输出 4,第四次 x 为 2,输出 2,循环结束,所以答案选择 A。23.以下关于 return 语句的叙述正确的是_。(分数:1.00)A.没有 return 语句的自定义函数在执行

34、结束时不能返回到调用处B.一个自定义函数中必须有一条 return 语句C.定义成 void 类型的函数中可以有带返回值的 return 语句D.一个自定义函数中可以根据不同情况设置多条 return 语句 解析:解析 一个函数可以有多个 return 语句,所以选择 D。24.已定义以下函数 int fun(int *P) return *P; fun 函数返回值是_。(分数:1.00)A.一个整数 B.不确定的值C.形参 p 中存放的值D.形参 p 的地址值解析:解析 本题考查的是指针的概念。在 C 语言中,指针是一种特殊的变量,它存放的值是一个内存地址。所以一个指针变量涉及三个值:指针变

35、量所指内容的值、指针变量中存放的值、指针变量的地址值。它们可以分别用表达式*p、p、 scanf(“%d“,B.int *p; scanf(“%d“,p);C.int k,*p= scanf(“%d“,p); D.int k,*p; *p= scanf(“%d“,p);解析:解析 scanf 函数参数列表,需要为指针,这个指针必须指向变量,所以答案选择 C。26.若有定义 double a10,*s=a; 以下能够代表数组元素 a3的是_。(分数:1.00)A.*(s+3) B.(*s)3C.*s3D.*s+3解析:解析 *(s+3)指针后移 3 个单位,为 a3的值。答案选择 A。27.有以

36、下程序 #include stdio.h void f(int *q) int i=0; for(;i5;i+)(*q)+; main() int a5=1,2,3,4,5,i; f(a); for(i=0;i5;i+) printf(“%d,“,ai); 程序运行后的输出结果是_。(分数:1.00)A.2,2,3,4,5,B.6,2,3,4,5, C.1,2,3,4,5,D.2,3,4,5,6,解析:解析 f 函数将 a0自增 5 次,所以答案选择 B。28.有以下程序 #include stdio.h int fun(int (*s)4,int n,int k) int m,i; m=s0

37、k; for(i=1;in:i+) if(sikm) m=sik; return m; main() int a44=1,2,3,4, 11,12,13,14, 21,22,23,24, 31,32,33,34; printf(“%d/n“,fun(a,4,0); 程序的运行结果是_。(分数:1.00)A.31 B.34C.4D.32解析:解析 本题考查的是二维数组的定义、赋初值和对二维数组元素的引用。在 fun()函数中,首先将 s0k的值赋给 m,然后通过 for 循环,遍历 s1ksn-1k之中的数,将遇到的比 m 大的数保存到 m 中。很显然,这是搜索最大值的算法,搜索的是 s0ksn

38、-1k之间的最大值。所以,主函数中 fun(a,4,0)的功能就是搜索 a00a30之间的最大值,这 4 个值分别是 1、11、21、31,所以最终输出结果是 31,应该选择 A。29.以下能正确定义字符串的语句是_。(分数:1.00)A.char str=“/0“; B.char str=“/x43“;C.char str=“;D.char str=“/064“;解析:解析 字符串末尾一定要有结束标记,双引号括起来的默认添加了结束标记,所以选择 A。30.以下关于字符串的叙述正确的是_。(分数:1.00)A.C 语言中有字符串类型的常量和变量B.两个字符串中的字符个数相同时才能进行字符串大小

39、的比较C.可以用关系运算符对字符串的大小进行比较D.空串比空格打头的字符串小 解析:解析 空格是一种字符,所以空串肯定比空格打头的字符串小。31.有以下程序 #include stdio.h void fun(char *a,char *b) while(*a=“*“) a+; while(*b=*a)b+;a+; main() char *s=“*a*b*“,t80; fun(s,t); puts(t); 程序的运行结果是_。(分数:1.00)A.a*b* B.a*bC.*a*bD.ab解析:解析 第一个 while 循环跳过字符串前面的*,第二个 while 循环将剩余的字符串赋值给字符串

40、b,所以 fun 函数功能是删除字符串 s 的前置*赋值给 t。32.下列函数的功能是_。 void fun(char *a,char *b) while(*b=*a)!=“/0“) a+;b+; (分数:1.00)A.检查 a 和 b 所指字符串中是否有“/0“B.使指针 b 指向 a 所指字符串C.将 a 所指字符串和 b 所指字符串进行比较D.将 a 所指字符串赋给 b 所指空间 解析:解析 将 a 数组里元素赋值给 b 数组,直到数组 a 的末尾,所以选择 D。33.有以下程序 #include stdio.h int fun(int x) int p; if(x=0x=1) retu

41、rn3; p=x-fun(x-2); return p; main() printf(“%d/n“,fun7); 执行后的输出结果是_。(分数:1.00)A.2 B.3C.7D.0解析:解析 本题考查的是递归算法的分析。一个直接或间接地调用自身的算法称为递归算法。在一个递归算法中,至少要包含一个初始值和一个递归关系。本题的 fun()函数在 x 等于 0 或 1 时返回 3,而在其余情况下返回 x-fun(x-2),所以本题的递归算法可以这样表示: fun(x)=3(x=0 或 x=1)(初始值) fun(x)=x-fun(x-2)(x0 且 x1)(递归关系) 在主函数中输出的结果是 fun

42、(7),而 fun(7)=7-fun(5)=7-(5-fun(3)=7-(5-(3-fun(1)。34.有以下程序 #include stdio.h int 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解析:解析 第一次循环返回 2,第二次循环返回 4,所以输出 4,答案选择 C。35.以下结构体类型说明和变量定义中正确的是_。(分数:1.00)A.typedef struc

43、t int n;char c; REC;REC t1,t2; B.struct REC; int n;char c;REC t1,t2;C.typedef struct REC; int n=0;char c=“A“; t1,t2;D.struct int n;char c; REC;REC t1,t2;解析:解析 B 选项和 C 选项中,REC 后不应加分号,D 选项,没有 typedef,REC 不能作为类型名。所以答案选择 A。36.假定已建立以下链表结构,且指针 p 和 q 已指向如下图所示的结点: (分数:1.00)A.p-next=q-next; free(q); B.p=q-ne

44、xt; free(q);C.p=q; free(q);D.(*p).next=(*q).next; free(p);解析:解析 本题考查的是在链表中删除结点的操作。在本题中指针 p 指向结点 a,q 指向结点 b。要把结点 b 删除,就应该首先让结点 a 的指针域指向结点 c,即 p-next=q-next,也可以写成(*p).next=(*q).next,然后释放结点 b,即 free(q)。所以,4 个选项中,只有 A 满足题意。37.有以下程序 #include stdio.h #include string.h struct A int a; char b10; double c; ;

45、 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.1002,ChangRong,1202.0B.1001,ZhangDa,1098.0 C.1001,ChangRong,1098.0D.1002,ZhangDa,1202.0解析:解析 f 函数是值传递,不会改变 main 函数中 t 的值,所以结果为 B。38.有以下程序 #include stdio.h #define N 5 #define M N+1 #define f(x) (x*M) main() int i1,i2; i1=f(2); i2=f(1+1); printf(“%d%d/n“,i1,i2); 程序的运行结果是_。(分数:1.00)A.11 7 B.12 12C.11 11D.12 7解析:解析 f(2)展开后为,2*5+1,值为 11,f(1+1)展开后为,1+1*5+1 值为 7,所以答案选择 A。39.有以下程序 #include st

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试资料 > 职业资格

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