【计算机类职业资格】二级C语言笔试352及答案解析.doc
《【计算机类职业资格】二级C语言笔试352及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试352及答案解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试 352及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.#define 能作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5的值的函数 f,正确的宏定义语句为( )。(分数:2.00)A.#define f(5*x*x+5*x+5B.#define f5*x*x+5*x+5C.#define f(5*a*a+5*a+5)D.#define(5*x*x+5*x+5)f2.若 w、x、y、z、m 均为 int型变量,则执行下列的语句后 m的值是( )。 w=2, x=3, y=4, z=5; m=(wx)?w:x;
2、 m=(mz)?m:z; m=(my)?m:y;(分数:2.00)A.2B.3C.5D.43.下列程序的输出结果是( )。 #includestdio.h int fun(int x) int a; if(x=0x=1) return 3; else a=x-fun(x-2); return a; void main() printf(“%d“,fun(7); (分数:2.00)A.2B.8C.9D.54.源程序的文档化不包括( )。(分数:2.00)A.符号名的命名要有实际意义B.正确的文档形式C.良好的视觉组织D.正确的程序注释5.数据的存储结构是指( )。(分数:2.00)A.数据所占的
3、存储空间B.数据的逻辑结构在计算机中的存放形式C.数据在计算机中的顺序存储方式D.存储在计算机外存中的数据6.下列程序的运行结果是( )。 main() int a=-5,b=1,c=1; int x=0,y=2,z=0; if(c0) x=x+y; if(a=0) if(b0) 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,0B.2,2,2C.0,2,0D.2,0,27.下列选项中不合法的十六进制数是( )。(分数:2.00)A.OxffB.OX11C
4、.OxlgD.OXabc8.已知 i、j、k 为 int型变量,若要从键盘输入 2、3、4CR,使 I、j、k 的值分别为 2、3、4,(分数:2.00)A.scanf(“%3d,%3d,%3d“,B.scanf(“%d,%d,%d“,C.scanf(“%d%d%d“,D.seanf(“i=%dj=%d,k=%d“,9.下列二维数组初始化语句中,不正确的是( )。(分数: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);10.为了提高软件模块的独立性,模块
5、之间最好是( )。(分数:2.00)A.控制耦合B.公共耦合C.内容耦合D.数据耦合11.下列程序段的输出结果为( )。 #includestdio.h main() static char a=“language“; char *p; p=a; for(p=a;pa+8;p+=2) putchar(*p); (分数:1.00)A.languageB.lnugC.有语法错误D.lang12.两次运行下列的程序,如果从键盘上分别输入 3和 1,则输出结果是( )。 main() int x; scanf(“%d“, if(x+2) printf(“%d“,x); else printf(“%d/
6、n“,x-); (分数:1.00)A.4和 2B.4和 1C.4和 0D.3和 113.下列描述中正确的是( )。(分数:1.00)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发过程中的技术问题14.下列程序的运行结果是( )。 #includestdio.h #includestring.h main() char*s1=“abDuj“; char*s2=“ABdUG“; int t; t=strcmp(s1,s2); printf(“%d“,t); (分数:1.00)A
7、.正数B.负数C.零D.不确定的值15.下列叙述中正确的是( )。(分数:1.00)A.break语句只能用于 swish语句体中B.continue语句的作用是使程序的执行流程跳出包含它的所有循环C.break语句只能用在循环体内和 switch语句体内D.在循环体内使用 break语句和 continue语句的作用相同16.下列程序的执行结果是( )。 #includestdio.h main() int a,b,c; a=b=2; c=(a+)-1 ;printf(“%d,%d“,a,c); c+=-a+(+b);printf(“%d,%d“,a,c); (分数:1.00)A.3, 14
8、, 1B.3, 14, 2C.2, 04, 1D.2, 14, 117.在 C语言中,函数返回值的类型最终取决于( )。(分数:1.00)A.函数定义时在函数首部所说明的函数类型B.return语句中表达式值的类型C.调用函数时主调函数所传递的实参类型D.函数定义时形参的类型18.栈和队列的共同点是( )。(分数:1.00)A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同特点19.有下列二叉树,对此二叉树中序遍历的结果为( )。 (分数:1.00)A.ABCDEFB.BDAECFC.ABDCEFD.ABCDFE20.下列说法不正确的是( )。(分数:1.00)A.C
9、程序是以函数为基本单位的,整个程序由函数组成B.C语言程序的一条语句可以写在不同的行上C.C程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写D.C程序的每个语句都以分号结束21.下列合法的字符型常量是( ),(分数:2.00)A./x13B./081C.65D.“/n“22.判断字符串 s1是否大于字符串 s2,应该使用( )。(分数:2.00)A.if(strcmp(s1,s2)0)B.if(s1s2)C.if(strcmp(s2,s1)0)D.if(strcmp(s1,s2)23.下列叙述中正确的是( )。(分数:2.00)A.算法的执行效率与数据的存储结构无关B.算法的空
10、间复杂度是指算法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在执行有限个步骤之后终止D.以上 3种描述都不对24.下列程序中 c的二过值是( )。 char a=2,b=4,c; c=ab2;(分数:2.00)A.00000011B.00010100C.00011100D.0001100026.下列程序段的运行结果是( )。 #includestdio.h void main() char str=“ABC“,*p=str; printf(“%d/n“,* (p+3); (分数:2.00)A.67B.0C.字符C的地址D.字符C27.数据库系统的核心是( )。(分数:2.00)A.
11、数据模型B.数据库管理系统C.数据库D.数据库管理员28.下列标识符不是关键字的是( )。(分数:2.00)A.breakB.charC.SwitchD.return29.若变量已正确定义,下列正确的程序段是( )。(分数:2.00)A.while(ch=getchar()=/N)putchar(c;B.while(ch=getchar()=/n)putchar(c;C.while(ch=getehar()!=/N)putchar(c;D.while(ch=getchar()!=/n,)putchar(c;30.对长度为 n的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。(分数:2.
12、00)A.125B.n/2C.nD.n+131.下列程序的输出结果是( )。 #include stdio.h main() struct st int y,x,z; ; union long 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, 632.若有说明 int a3=0,0;,则不正确的叙述是( )。(分数:2.00)A.数组 a的每个元素的初值都是 0B.数组 a的第一维大小为 1C.数组 a的行数为 1D.只有元素 a00和 a01
13、可得到初值 0,其余元素均得不到初值 033.有下列函数: int fun(char*s) char*t=s; while(*t+); reurn(t-s); 该函数的功能是( )。(分数:2.00)A.比较两个字符串的大小B.计算 s所指字符串占用内存字节的个数C.计算 s所指字符串的长度D.将 s所指字符串复制到字符串 t中34.语句“printf(“a/bhow/are/y/bou/n“);“的输出结果是( )。(分数:2.00)A.a/bhow/are/y/bouB.a/bhow/are/y/bouC.howareyouD.ahowarey/bou35.有下列函数定义: int fun
14、(double a,double b) return a*b; 若下列选项中所用变量都已正确定义并赋值,错误的函数调用是( )。(分数:2.00)A.if(fun(x,)B.z=fun(fun(x,fun(x,);C.z=fun(fun(x,x,;D.fun(x,;36.下列 4个关于 C语言的结论中错误的是( )。(分数:2.00)A.可以用 dowhile语句实现的循环一定可以用 while语句实现B.可以用 for语句实现的循环一定可以用 while语句实现C.可以用 while语句实现的循环一定可以用 for语句实现D.dowhile语句与 while语句的区别仅是关键字“while”
15、出现的位置不同37.待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码 33被放到第( )个位置。(分数:2.00)A.3B.5C.7D.938.设有下列定义: struct sk int m; float x; data,*q;若要使 q指向 data中的 m域,正确的赋值语句是( )。(分数:2.00)A.q=B.*q=datm;C.q=(struct sk*)D.q=(struct sk*)datm;39.标准库函数 fgets(s,n,file)的功能是( )。(分数
16、:2.00)A.从文件 file中读取长度为 n的字符串存入字符数组 s中B.从文件 file中读取长度不超过 n-1个字符的字符串放到字符数组 s中C.从文件 file中读取 n个字符串存入字符数组 s中D.从文件 file中读取长度为 n-1个字符的字符串存入字符数组 s中40.下列程序的运行结果是( )。 #includestdio.h void 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,“,
17、 x); (分数:2.00)A.5,4,3,2B.2,3,4,5,C.2,2,2,2,D.5,5,5,5,二、B填空题/B(总题数:15,分数:30.00)41.在数据的存储结构中,不仅需要存储各数据元素的信息,还要存放各元素之间 1 的信息。(分数:2.00)填空项 1:_42.按照“先进先出”的原则组织数据的结构是 1。(分数:2.00)填空项 1:_43.深度为 5的满二叉树中,叶子结点的个数为 1。(分数:2.00)填空项 1:_44.在面向对象的方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_45.Jackson方法是一种面向 1 的结构化方法。(
18、分数:2.00)填空项 1:_46.若 a是 int型变量,则表达式(a=2*3,a*2),a+6 的值为_。(分数:2.00)填空项 1:_47.表达式 1/2*(int)3.7/(int)(2.4*(1.5+2.5)值的数据类型为 1。(分数:2.00)填空项 1:_48.下列程序段的输出结果是_。 int n=c; switch(n+) default:printf(“error“);break; case a: printf(“good“);break; case c: printf(“morning“); case d: printf(“class“); (分数:2.00)填空项 1
19、:_49.写出下列程序的输出结果_。 main() int n=0; while(n+= 1); printf(“%d,“,n); printf(“%d“,n+); (分数:2.00)填空项 1:_50.下列程序的功能是对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。 #includestdio.h #includectype.h main() 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
20、 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; ptr=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 #i
21、ncludestring.h main() int i; char si 10,ti 10;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:_55.下列程序的输出结果是_。 #define P(a) printf(“%d,“,(int)(a) #define PRINT(a) P(a);printf(“the end“) main() int i,
22、a=0; for(i=1 ;i5;i+) PRINT(a+i); printf(“/n“); (分数:2.00)填空项 1:_二级 C语言笔试 352答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.#define 能作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5的值的函数 f,正确的宏定义语句为( )。(分数:2.00)A.#define f(5*x*x+5*x+5B.#define f5*x*x+5*x+5C.#define f(5*a*a+5*a+5) D.#define(5*x*x+5*x+5)f解析:解析 带参数宏的
23、格式为:#define 标识符(形参衰) 形参表达式。其功能是:预处理程序将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。2.若 w、x、y、z、m 均为 int型变量,则执行下列的语句后 m的值是( )。 w=2, x=3, y=4, z=5; m=(wx)?w:x; m=(mz)?m:z; m=(my)?m:y;(分数:2.00)A.2 B.3C.5D.4解析:解析 条件表达式“a?b:c”的含义是:当 a为真时,其值等于表达式 b的值,当 a为假时,其值等于表达式 c的值。 表达式运算过程:第 1个表达式:w=2x=3 为真,所以返回 w的值,即 m=w=2;第2个表达式:m=
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 352 答案 解析 DOC
