【计算机类职业资格】二级C语言笔试46及答案解析.doc
《【计算机类职业资格】二级C语言笔试46及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试46及答案解析.doc(14页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试 46 及答案解析(总分:98.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下面程序的输出结果是_。 main() char str10,c=a; int i=0; for(;i5;i+) Stri=c+; printf(“%s“,str); (分数:2.00)A.abcdeB.aC.不确定D.bcdef2.有如下说明: int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9 的表达式是_。(分数:2.00)A.*p+9B.*(p+8)C.*p+=9D.p+83.有以下函数定义: void fun(int n,
2、double x) 若以下选项中的变量都已正确定义并赋值,则对函数 fun 正确调用语句是_。(分数:2.00)A.fun(int y, double ;B.k=fun(10,12.5);C.fun(x,;D.void fun(n,;4.有如下程序 main() int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(“a=%d,b=%d/n“,a,b) ; 该程序的输出结果是_。(分数:2.00)A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=25.下面程序运行后的输出结果是_。
3、struct abc int a,b,c; main() struct abc s2=1,2,3,4,5,6; int t=s0.a+s1.b; printf(“%d/n“,t); (分数:2.00)A.5B.6C.7D.86.有如下程序: main() int a33=1,2,3,4,5,6,i,j,s=0; for(i=1;i3;i+) for(j=0;j=i;j+) s+=aij; printf(“%d/n“,s); 该程序的输出结果是_。(分数:2.00)A.18B.19C.20D.217.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送_。(分数:2.00)A.调用语句
4、B.命令C.口令D.消息8.有如下程序 main() int y=3,x=3,z=1; printf(“%d%d/n“,(+x,y+),z+2); 运行该程序的输出结果是_。(分数:2.00)A.3 4B.4 2C.4 3D.3 39.若已建立如下图所示的单向链表结构: (分数:2.00)A.p=p-next;s-next=p;p-next=s;B.p=p-next;s-next=p-next;p-next=s;C.s-next=NULL;p=p-next;p-next=S;D.p=(*.next;(*next=(*.next;(*.next=s;10.执行语句 for(i=1;i+4;);后
5、变量 i 的值是_。(分数:2.00)A.3B.4C.5D.不定11.有如下程序: long fib(int n) if(n2) return(fib(n-1)+fib(n-2); else return(2); main() printf(“%ld/n“,fib(3); 该程序的输出结果是_。(分数:2.00)A.2B.4C.6D.812.运行以下程序后,如果从键盘上输入 65 14回车,则输出结果为_。 main() int m,n; printf(“Enter m,n:“); scanf(“%d%d“, while(m!=n) while(mn)m-=n; while(nm)n-=m;
6、printf(“m=%d/n“,m); (分数:2.00)A.m=3B.m=2C.m=1D.m=013.以下叙述不正确的是_。(分数:2.00)A.分号是 C 语言的必要组成部分B.C 程序的注释可以写在句的后面C.函数是 C 程序的基本单位D.主函数的名字不一定用 main 表示14.有如下程序 main() int x=3; do printf(“%d“,x-); while(!x); 该程序的执行结果是_。(分数:2.00)A.321B.3C.不输出任何内容D.陷入死循环15.设有下列二叉树: (分数:2.00)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA16.有以下
7、程序: int*f(int*x,int*y) if(*y)return x; else return y; main() int a=7,b=8,*p,*q,*r; p=q= r=f(p,q); printf(“%d,%d,%d/n“,*p,*q,*r); 程序运行后输出结果是_。(分数:2.00)A.7,8,8B.7,8,7C.8,7,7D.8,7,817.下述关于 C 语言文件的操作的结论中,正确的是_。(分数:2.00)A.对文件操作必须先关闭文件B.对文件操作必须先打开文件C.对文件操作顺序无要求D.对文件操作前必须先测文件是否存在,然后再打开文件18.已经定义 ch 为字符型变量,以
8、下赋值表达式中错误的是_。(分数:2.00)A.ch=/B.ch=62+3C.ch=NULLD.ch=/xaa19.将 E-R 图转换到关系模式时,实体与联系都可以表示成_。(分数:2.00)A.属性B.关系C.键D.域20.下面一组中都是 C 语言关键字的是_。(分数:2.00)A.double Int forB.main while gotoC.volatile break staticD.malloc sizeof new21.若有以下定义:int t32;,能正确表示 t 数组元素地址的表达式是_。(分数:2.00)A. z=xy ? x:y;B.int max(int x, int
9、z; return z; C.max(int x,int int z; z=xy? x:y; return(;D.int max(int x, int return xy ? x:y;23.若变量 a、i 已正确定义,且 i 已正确赋值,合法的语句是_。(分数:2.00)A.a=1B.+i;C.a=a+=5;D.a=int(;24.算法一般都可以用_控制结构组合而成。(分数:2.00)A.循环、分支、递归B.顺序、循环、嵌套C.循环、递归、选择D.顺序、选择、循环25.有如下程序 main() char s5=“abc“,“de“,“fgh“; printf(“%c“,s26); 其输出为_。
10、(分数:2.00)A.不确定B.编译错误C.gD.输出 null 字符26.索引属于_。(分数:2.00)A.模式B.内模式C.外模式D.概念模式27.有如下程序段: #include stdio.h #define Max(a,b) ab?a:b main() int a=5,b=6,c=4,d; d=c+Max(a,b) ; printf(“%d“,d) ; 其输出结果为_。(分数:2.00)A.10B.5C.6D.编译错误28.C 语言运算对象必须是整型的运算符是_。(分数:2.00)A.%=B./C.=D.=29.下列工具中为需求分析常用工具的是_。(分数:2.00)A.PADB.PF
11、DC.N-SD.DFD30.在关系数据库中,用来表示实体之间联系的是_。(分数:2.00)A.树结构B.网结构C.线性表D.二维表31.检查软件产品是否符合需求定义的过程称为_。(分数:2.00)A.确认测试B.集成测试C.验证测试D.验收测试32.有如下程序: #define n 2 #define m N+1 #define NUM 2*m+1 main() int i; for(i=1;i=NUM;i+)printf(“%d/n“,i); 该程序中的 for 循环执行的次数是_。(分数:2.00)A.5B.6C.7D.833.下面不属于软件设计原则的是_。(分数:2.00)A.抽象B.模
12、块化C.自底向上D.信息隐蔽34.有以下程序段: main() int a=5,*b,*c; c=b=b=语句后,表达式*c 的值是_。(分数:2.00)A.变量 a 的地址B.变量 b 中的地址C.变量 a 中的值D.变量 b 的地址35.数据的存储结构是指_。(分数:2.00)A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据二、B填空题/B(总题数:14,分数:28.00)36.在运算过程中,能够使空表与非空表的运算统一的结构是U 【1】 /U。(分数:2.00)填空项 1:_37.软件工程研究的内容主要包括:U 【2】 /U
13、技术和软件工程管理。(分数:2.00)填空项 1:_38.与结构化需求分析方法相对应的是U 【3】 /U方法。(分数:2.00)填空项 1:_39.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、U 【4】 /U和自定义完整性。(分数:2.00)填空项 1:_40.数据模型按不同的应用层次分为三种类型,它们是U 【5】 /U数据模型、逻辑数据模型和物理数据模型。(分数:2.00)填空项 1:_41.若有定义 int a=10,b=9,c=8;,接着顺序执行下列语句,变量 b 中的值是U 【6】 /U。 c=(a-=(b-5); c=(a%11)+(b=3);(分数:2.00)填空项
14、 1:_42.函数 pi 的功能是根据以下近似公式求 值: (*)/6=1+1/(2*2)+1/(3*3)+.+1(n*n) 现在请你在下面的函数中填空,完成求 的功能。 #include “math.h“ double s=0.0; long i; for(i=1;i=n;i+)s=s+U 【7】 /U; return(sqrt(6*S); (分数:2.00)填空项 1:_43.若输入字符串:abcde (分数:2.00)填空项 1:_44.若有以下定义,则不移动指针 p,且通过指针 p 引用值为 98 的数组元素的表达式是U 【9】 /U。int w10=23,54,10,33,47,98
15、,72,80,61, *p=w;(分数:2.00)填空项 1:_45.设在主函数中有以下定义和函数调用语句,且 fun 函数为 void 类型;请写出 fun 函数的首部U 【10】 /U。要求形参名为 b。 main() double 1022; int n; fun(s); (分数:2.00)填空项 1:_46.有以下程序: int f(int n) if(n=1)return 1; else return f(n-1)+1; main() int i,j=0; for(i=1;i3;i+)j+=f(i); printf(“%d/n“,j); 程序运行后的输出结果是U 【11】 /U。(分
16、数:2.00)填空项 1:_47.以下程序的输出结果是U 【12】 /U。 void fun() static int a=0; a+=2; printf(“%d“,A) ; main() int cc; for(cc=1;CC4;CC+)fun(); printf(“/n“); (分数:2.00)填空项 1:_48.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于 copy 命令),假定文件在当前目录下。请补全程序。 #includestdio.h void main(int argc,char*argv) FILE*f1,*f2; if(arg
17、cU 【13】 /U) printf(“parameter error!/n“);exit(0); n=fopen(argv1,“r“); f2=fopen(argv2,“w“); while(U 【14】 /U)fputc(fgetc(f1),f2); fclose(f1); fclose(f2); (分数:2.00)填空项 1:_49.以下程序的输出结果是U 【15】 /U。 #define MAX(x,y) (x)(y)?(x)L:(y) main() int a=5,b=2,C=3,d=3,t; t=MAX(a+b,c+D) *10; printf(“%d/n“,t); (分数:2.0
18、0)填空项 1:_二级 C 语言笔试 46 答案解析(总分:98.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下面程序的输出结果是_。 main() char str10,c=a; int i=0; for(;i5;i+) Stri=c+; printf(“%s“,str); (分数:2.00)A.abcdeB.aC.不确定 D.bcdef解析:评析 字符串少一个结束标志,所以输出的结果不确定。2.有如下说明: int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9 的表达式是_。(分数:2.00)A.*p+9B.*(p+8)
19、C.*p+=9D.p+8解析:评析 p 是指针,p+8 是地址值,D 是错的:*p 是 p 的目标变量,即 a0,值为 1,所以*p+9 的值是 10,而*p+=9 值是重新给 a0赋了值(1+9);所以 A 和 C 也是错的。p+8 是地址值,指向 a8,那么*(9+8)的值就是 a8的值,即 9。3.有以下函数定义: void fun(int n,double x) 若以下选项中的变量都已正确定义并赋值,则对函数 fun 正确调用语句是_。(分数:2.00)A.fun(int y, double ;B.k=fun(10,12.5);C.fun(x,; D.void fun(n,;解析:评析
20、 函数调用的一般形式为:函数名(实参表列);,实参与形参的个数应相等,类型应一致,在调用函数时,不要指定其返回类型,对于返回类型为 void 的函数,不能作为赋值表达式的组成部分,所以选 C。4.有如下程序 main() int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(“a=%d,b=%d/n“,a,b) ; 该程序的输出结果是_。(分数:2.00)A.a=2,b=1 B.a=1,b=1C.a=1,b=0D.a=2,b=2解析:评析 在这个 switch 语句中,因为 x 的值为 1,所以执行 c
21、ase 1:后面的 a+,这样 a=1。但又由于其下没有 break 语句,所以其后面的语句“a+;b+”也将被执行,这样一来,a=2,b=1。5.下面程序运行后的输出结果是_。 struct abc int a,b,c; main() struct abc s2=1,2,3,4,5,6; int t=s0.a+s1.b; printf(“%d/n“,t); (分数:2.00)A.5B.6 C.7D.8解析:评析 在 main 函数中定义了一个 struct abc 类型的数组,同时分别利用12,3及4,5,6对数组中两个元素进行初始化。在该结构体,依次对其中的 a,b,c 三个变量进行初始化
22、。故 s0.a=1,s1.b=5,所以本题输出为 6。6.有如下程序: main() int a33=1,2,3,4,5,6,i,j,s=0; for(i=1;i3;i+) for(j=0;j=i;j+) s+=aij; printf(“%d/n“,s); 该程序的输出结果是_。(分数:2.00)A.18 B.19C.20D.21解析:评析 题中的外循环只执行了 2 次: 第 1 次:a10=3,a11=4,所以 s=7; 第 2 次:a20=5,a21=6,a22=0,所以 s=7+5+6+0=18。7.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送_。(分数:2.00)A.
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 46 答案 解析 DOC
