【计算机类职业资格】二级C语言笔试-412及答案解析.doc
《【计算机类职业资格】二级C语言笔试-412及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-412及答案解析.doc(33页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-412 及答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:40,分数:62.00)1.以下 4 组用户定义标识符中,全部合法的一组是 _。A)_mainencludesinB) If-maxturboC) txtREAL3COMD) intk_2_001(分数:2.00)A.B.C.D.2.按照“先进后出”原则组织数据的数据结构是( )。A) 队列 B) 栈 C) 双向链表 D) 二叉树(分数:2.00)A.B.C.D.3.检查软件产品是否符合需求定义的过程称为( )。A) 确认测试 B) 集成测试 C) 验证测试 D) 验收测试(分数:1.00)A.
2、B.C.D.4.结构化程序设计主要强调的是( )。A) 程序的规模 B) 程序的效率C) 程序设计语言的先进性 D) 程序的易读性(分数:2.00)A.B.C.D.5.以下数据结构中不属于线性数据结构的是( )。A) 队列 B) 线性表 C) 二叉树 D) 栈(分数:1.00)A.B.C.D.6.下列数据结构中,能用二分法进行查找的是( )。A) 顺序存储的有序线性表 B) 结性链表C) 二叉链表 D) 有序线性链表(分数:2.00)A.B.C.D.7.关系数据库管理系统能实现的专门关系运算包括( )。A) 排序、索引、统计 B) 选择、投影、连接C) 关联、更新、排序 D) 显示、打印、制表
3、(分数:2.00)A.B.C.D.8.下列叙述中正确的是_。A) 数据库系统是一个独立的系统,不需要操作系统的支持B) 数据库系统的根本目标是要解决数据的共享问题C) 数据库管理系统就是数据库系统D) 以上三种说法都不对(分数:2.00)A.B.C.D.9.设有定义:int k=1,m=2; float f=7;则以下选项中错误的表达式是 _。A) k=k=k B) -k+ C) k% int(f) D) k=f=m(分数:2.00)A.B.C.D.10.下列数据中,不合法的 C 语言实型数据的是( )。A) 0.123 B) 123e3 C) 2.1e3.5 D) 789.0(分数:1.00
4、)A.B.C.D.11.下列叙述中错误的是_。(A) 计算机不能直接执行用 C 语言编写的源程序(B) C 程序经 C 编译后,生成后缀为.obj 的文件是一个二进制文件(C) 后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件(D) 后缀为.obj 和.exe 的二进制文件都可以直接运行(分数:1.00)A.B.C.D.12.下列叙述中正确的是( )。A)在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式B)实型变量中允许存放整型数C)若 a 和 b 类型相同,在执行了赋值 a=b 后,b 中的值将放入 a 中,但 b 中的值不变D)在 C 程序中,求余运
5、算符“%”两边的类型相同时才能进行运算(分数:2.00)A.B.C.D.13.有以下程序:#include stdio, hint a =2;int f(int n)static int a: 3;int t=0;if(n%2) static int a=4;t+ =a+;else static int a=5;t+ :a+;return t + a + +;main ( )int s=a,i;for(i=0;i3;i+)s + =f(i);prinff(“% d /n“ ,s); 程序运行后的输出结果是( )。A) 26 B) 28 C) 29 D) 24(分数:1.00)A.B.C.D.1
6、4.下列 4 个程序中,完全正确的是( )。 A) #includestdio.h main(); (/*programming*/ printf(“programming!/n“); B) # includestdio.h main() /*/programming/*/ printf(“programming!/n“); C) #includestdio.h main() /*/programming*/*/ printf(“programming!/n“);) D) includestdio.h main() /*programming*/ printf(“programming!/n“
7、);(分数:1.00)A.B.C.D.15.若有以下定义和语句:int a=1,2,3,4,5,6,7,8,9,10,*p=a;则值为 3 的表达式是_。A) p+=2,*(p+) B) p+=2,*+pC) p+=3,*p+ D) p+=2,+*p(分数:1.00)A.B.C.D.16.假定 x 和 y 为 double 型,则表达式 x=2,y=x+3/2 的值是( )。A3.500000 B3C2.000000 D3.000000(分数:1.00)A.B.C.D.17.两次运行下面的程序,如果从键盘上分别输入 3 和 2,则输出结果是( )。 #includestdio.h main()
8、 int x; scanf(“%d“,do(printf(“%d“,x-=4) ;while(!(-X);程序的输出结果是( )。A) 1 B) 2 0 C) 1 -4 D) 死循环(分数:2.00)A.B.C.D.20.有如下程序:#include stdiohmain()int x=23;doPrintf(“%d“,x-);while(! x);该程序的执行结果是( )。A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环(分数:1.00)A.B.C.D.21.若有定义语句:double x5=1.0,2.0,3.0,4.0,5.0,*P=x;,则错误引用 x 数组元素的是A)
9、 *p B) x5 C) *(p+1) D) *x(分数:2.00)A.B.C.D.22.下列程序的输出结果是( )。#includestdio.hint fun(int x)int a;if(x=0x=1)return 3;elsea=x-fun(x-2);return a;void main()printf(“%d“,fun(7);A) 2 B) 8 C) 9 D) 5(分数:2.00)A.B.C.D.23.以下程序的输出结果是( )。union myunstruciint x,y,z;u;int k;a;main()a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf
10、(“%d/n“,a.u.x);A4 B5 C6 D0(分数:1.00)A.B.C.D.24.设函数 fun 的定义形式为:void fun(char ch,float x)则以下对函数 fun 的调用语句中,正确的是_。A) fun(“abc“,3.0); B) t=fun(D,16.5);C) fun(65,2.8); D) fun(32,32);(分数:2.00)A.B.C.D.25.定义如下变量和数组:int i;int x33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是( )。for(i=0; i3; i+)printf(“%d“,xi2-i);A) 1 5 9 B)
11、1 4 7 C) 3 5 7 D) 3 6 9(分数:2.00)A.B.C.D.26.有以下程序:main()int e=2,4,6,8,10,y=0,x,*p;p=a1;for(x=1;x3;x+)y+=px;printf(“%d/n“,y);程序运行后的输出结果是_。A) 10 B) 11C) 14 D) 15(分数:2.00)A.B.C.D.27.下列程序的输出结果是( )。#includestdio.hvoid main()int b6-2,4,6,8,10,12;int*p=b,*q=printf(“%d“,*(p+);printf(“%d,“,*q);A) 4,4 B) 2,2 C
12、) 4,5 D) 2,4(分数:2.00)A.B.C.D.28.下面程序的运行结果是#includestdio.hvoid delch(char *s)int i,j;char *a;a=S;for(i=0,j=0;ai!=/0;i+)if(ai=0 ,则以下语句中正确的是_。(A) pk=k;(B) pk0=k12;(C) pk=k0;(D) pk1=k;(分数:2.00)A.B.C.D.30.若有以下定义和语句:char s10=“abcd!“,*s2=“/n123/“;printf(“%d%d/n“,strlen(s1),strlen(s2);则输出结果是( )。A5 5 B10 5 C
13、10 7 D5 8(分数:1.00)A.B.C.D.31.下列程序的输出结果是( )。#inCludestdio.hmain()charch25=“1234“,“5678“,*p2;int i,j,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i2;i+)for(j=0;pij/0;j+=2) s=pij-0;printf(“%d“,s);A) 6357 B) 6135 C) 1357 D) 691357(分数:1.00)A.B.C.D.32.在 C 语言中,引用数组元素时,其数组下标的数据类型允许是( )。A) 整型表达式 B) 整型常量C) 整型常量或整型表达式 D)
14、任何类型的表达式(分数:2.00)A.B.C.D.33.有如下程序:main()int k=4, n=0;for(; nk; )n+;if(n% 3!=0)continue;k-; printf(“ % d, % d/n“, k, n);程序运行后的输出结果是_。A) 1, 1 B) 2, 2 C) 3, 3 D) 4, 4(分数:2.00)A.B.C.D.34.以下语句或语句组中,能正确进行字符串赋值的是_。A) char*sp;*sp=“right!“; B) char s10;s=“right!“;C) char s10;*s=“right!“; D) char*sp=“right!“;
15、(分数:2.00)A.B.C.D.35.下面程序的输出结果是( )。#includestdio.h#includestring.hmain()char p1=“WHO“,p2=“who“,str50=“xyz“;strcpy(str+1,strcat(p1,p2);printf(“%s“,str);A) xyzWHOwho B) zWHOwho C) zWHOwho D) xWHOwho(分数:2.00)A.B.C.D.36.有以下程序:#include stdio. h main ( )char s = “ABCD“, * p;for(p=s+1;ps+4;p+) pfintf(“ % s
16、/n“ ,p);A) ABCDBCDCDDB) ABCC) BCDD) BCDCDD(分数:1.00)A.B.C.D.37.若有下列说明和语句,已知 int 型数据占 2 个字节,则下列语句的输出结果是( )。struct stchar a15;int b;double c;printf(“%d“,sizeof (struct st);A) 15 B) 8 C) 25 D) 2(分数:1.00)A.B.C.D.38.对于下列定义,不正确的叙述是( )。union dataint a;char b;double c;x=y;A) 变量 x 所占内存的长度等于成员 c 的长度B) 变量 x 的地址
17、和它的各成员地址都是相同的C) 可以在定义时对 x 初始化D) 不能对变量 x 赋值,故 x=y 非法(分数:1.00)A.B.C.D.39.若有以下程序段:int r=8:print(“%d/n“,r1);输出结果是( )。A16 B8 C4 D2(分数:1.00)A.B.C.D.40.有以下程序#includestdio.hmain()FILE*fp;int k,n,i,a6=1,2,3,4,5,6;fp=fopen(“d2.dat“,“w“);for(i=0;i6;i+)fprintfffp,“%d/n“,ai);fclose(fp);fp=fopen(“d2.dat“,“r“);for
18、(i=0;i3;i+)fscanf(fp,“%d%d“,fclose(fp);printf(“%d,%d/n“,k,n);程序运行后的输出结果是( )。A)1,2 B)3,4 C)5,6 D)123,456(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:34.00)41.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、U /U遍历和后序遍历。(分数:2.00)填空项 1:_42.在最坏情况下,堆排序需要比较的次数为 1。(分数:2.00)填空项 1:_43.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和U /U
19、的设计来实现。(分数:2.00)填空项 1:_44.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为 1。(分数:2.00)填空项 1:_45.两种基本测试方法中, 1 测试的原因之一是保证所测试模块中每一个独立路径至少要执行一次。(分数:2.00)填空项 1:_46.下列表达式用于判断 y 是否为闰年。闰年的判断条件是:年号能被 4 整除但不能被 100 整除或年号能被 400 整除,请填空 1。(分数:2.00)填空项 1:_47.若变量 x、y 已定义为 int 类型且 X 的值为 33,y 的值为 3,请将输出语句 printf(_,x/y);补
20、充完整,使其输出的计算结果形式为:x/y=11。(分数:2.00)填空项 1:_48.函数 pi 的功能是根据以下近似公式求 值:*请在下面的函数中填空,完成求 的功能。#include math.hdouble pi(long n)double s = 0.0;long i;for(i = 1;i = n; i+) s = s +U /U;return (sqrt(6*s);(分数:2.00)填空项 1:_49.下列程序的输出结果是_。#includestdio.hmain()int x=1,y=1,a=1,b=1;switch(x)case 1:switch(y)case 0:a+;bre
21、ak;case 1:b+;break;case 2:a+;b+;break;printf(“a=%d,b=%d/n“,a,b);(分数:2.00)填空项 1:_50.当执行以下程序时,输入 1234567890回车,则其中 while 循环体将执行_次。#includestdiohmain()char ch;while(ch=getchar()=0)printf(“#“);(分数:2.00)填空项 1:_51.以下程序运行后的输出结果是_。#include stdio.hmain()int a=1,b=7;dob=b/2;a+=b;while (b1);printf(“%d/n“,a);)(分
22、数:2.00)填空项 1:_52.下面程序将二维数组 a 的行和列元素互换后存放到另一个二维数组 b 中,请填空。 main() int a23=1,2,3,4,5,b32,i,j; for(i=0;i2;i+) for(j=0;j3;j+) _; (分数:2.00)填空项 1:_53.以下程序的功能是:求出数组 x 中各相邻两个元素的和依次存放到 a 数组中,然后输出。请填空。main( )int x10,a9,i;for(i=0;i10;i+) scanf(“%d“,xi);for( 11 ;i10;i+)ai-1=xi+ 12 ;for(i=0;i9;i+) printf(“%d“,ai
23、);printf(“);(分数:4.00)填空项 1:_54.已有定义:double *p;,请写出完整的语句,利用 malloc 函数使 p 指向一个双精度型的动态存储单元 1。(分数:2.00)填空项 1:_55.以下程序的功能是:删去一维数组中所有相同的数,使相同的数只剩一个。数组中的数已按由小到大的顺序排列,函数 fun 返回删除后数组中数据的个数。例如,若一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。请填空。#include stdio.h#define N 80i
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 412 答案 解析 DOC
