【计算机类职业资格】二级C语言笔试-473及答案解析.doc
《【计算机类职业资格】二级C语言笔试-473及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-473及答案解析.doc(32页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-473 及答案解析(总分:93.00,做题时间:90 分钟)一、选择题(总题数:40,分数:63.00)1.软件是指A) 程序 B) 程序和文档C) 算法加数据结构 D) 程序、数据与相关文档的完整集合(分数:2.00)A.B.C.D.2.树是结点的集合,它的根结点的数目是( )。A) 有且只有 1个 B) 1 或多于 1C) 0或 1 D) 至少有 2个(分数:1.00)A.B.C.D.3.在数据处理中,其处理的最小单位是( )。 A) 数据 B) 数据项 C) 数据结构 D) 数据元素(分数:2.00)A.B.C.D.4.源程序的文档化不包括( )。A) 符号名的命名要有
2、实际意义 B) 正确的文档形式C) 良好的视觉组织 D) 正确的程序注释(分数:2.00)A.B.C.D.5.有 3个关系 R、S 和 T如下:(分数:1.00)A.B.C.D.6.下列描述错误的是( )。A) 继承分为多重继承和单继承B) 对象之间的通信靠传递消息来实现C) 在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D) 类是具有共同属性、共同方法的对象的集合(分数:2.00)A.B.C.D.7.下列说法不正确的是( )。A) C程序是以函数为基本单位的,整个程序由函数组成B) C语言程序的一条语句可以写在不同的行上C) C程序的注释行对程序的运行功能不起任何作用,所以注
3、释应该尽可能少写D) C程序的每个语句都以分号结束(分数:2.00)A.B.C.D.8.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是_。A) C语言程序仅可以编译执行 B) C 语言程序仅可以解释执行C) C语言程序既可以编译执行,又可以解释执行 D) 以上说法都不对(分数:1.00)A.B.C.D.9.下列不正确的转义字符是( )。A) / B) t C) /n D) 088(分数:2.00)A.B.C.D.10.设有如下说明:typedef struet STlong a;int b;char c2; NEW;则下面叙述中正确的是( )。A) 以上的说明形式非法
4、 B) ST 是一个结构体类型C) NEW是一个结构体类型 D) NEW 是一个结构体变量(分数:1.00)A.B.C.D.11.若变量已正确定义并赋值,以下符合 C语言语法的表达式是A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b(分数:1.00)A.B.C.D.12.有以下程序:#includestdio.hmain()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;print
5、f(“a=%d,b=%d/n“,a,b);程序的运行结果是_。A) a=1,b=0 B) a=2,b=2C) a=1,b=1 D) a=2,b=1(分数:1.00)A.B.C.D.13.下列叙述中正确的是( )。 A) 调用 printf()函数时,必须要有输出项 B) 使用 putchar()函数时,必须在之前包含头文件 stdio.h C) 在 C语言中,整数可以以二进制、八进制或十六进制的形式输出 D) 调节 getchar()函数读入字符时,可以从键盘上输入字符所对应的 ASCII码(分数:1.00)A.B.C.D.14.设有如下程序段:int x=2002, y=2003;print
6、f(“ % d/n“, (x, y);则以下叙述中正确的是_。A) 输出语句中格式说明符的个数少于输出项的个数,不能正确输出B) 运行时产生出错信息C) 输出值为 2002D) 输出值为 2003(分数:1.00)A.B.C.D.15.两次运行下列的程序,如果从键盘上分别输入 3和 1,则输出结果是( )。main()int x;scanf(“%d“,if(x+2)printf(“%d“,x);else printf(“%d/n“,x-);A) 4和 2 B) 4和 1 C) 4和 0 D) 3和 1(分数:1.00)A.B.C.D.16.若有以下说明和定义:union dtint a; ch
7、ar b; double c; data;以下叙述中错误的是( )。A) data的每个成员起始地址都相同B) 变量 data所占的内存字节数与成员 c所占字节数相等C) 程序段:data.a=5; printf(“%f/n“,data.c);输出结果为 5.000000D) data可以作为函数的实参(分数:1.00)A.B.C.D.17.假定所有变量均已正确说明,下列程序段运行后 x的值是( )。ab+c0;x12;if(!A) x-;elsex5;if(C) x3;elsex4;A) 11 B) 4 C) 12 D) 3(分数:1.00)A.B.C.D.18.若有条件表达式(exp)?a
8、+:b-,则以下表达式中能完全等价于表达式(exp)的是A) (exp=0) B) (exp!=0) C) (exp=1) D) (exp!=1)(分数:1.00)A.B.C.D.19.若执行下列程序时从键盘上输入 2,则输出结果是( )。#inclUdestdio.hmain()int a;scanf(“%d“,if(a+3)printf(“%d/n“,A);else printf(“%d/n“,a-);A) 1 B) 3 C) 2 D) 4(分数:1.00)A.B.C.D.20.若有定义 int x,y;并已正确给变量赋值,则下列选项中与表达式(x-y)?(x+):(y+)中的条件表达式(
9、x-y)等价的是( )。 A) (x-y0) B) (x-y0) C) (x-y0|x-y0) D) (x-y=0)(分数:1.00)A.B.C.D.21.设有程序段:int k=12;while(k=1)k=k-1;则下列描述中正确的是( )。A) while循环执行 10次 B) 循环是无限循环C) 循环体语句一次也不执行 D) 循环体语句执行一次(分数:2.00)A.B.C.D.22.设有语句:if(a=1)b=2;c=3;,以下语句中与之等价的是( )。A) if(a=1)b=2;c=3; B) if(a!=1);elseb=2;c=3; C) if(a=1)c=3;b=2; D) (
10、a=1)?b=2:a:=a;c=3;(分数:2.00)A.B.C.D.23.若有代数式 (分数:2.00)A.B.C.D.24.有以下程序:#include sldio.hmain()int x=0,y=5,z=3;while(z-0printf(“%d,%d,%d/n“,x,y,z);程序执行后的输出结果是( )。A) 3,2,0 B) 3,2,-1 C) 4,3,-1 D) 5,-2,-5(分数:1.00)A.B.C.D.25.有下列程序:main()int i,j;for(i1;i4;i+)for(ji;j4;j+) printf(“%d*%d%d“,i,j,i*j);printf(“/
11、n“);程序运行后的输出结果是( )。A) 1*11 1*22 1*332*12 2*243*13B) 1*11 1*22 1*332*24 2*363*39C) 1*111*22 2*241*33 2*36 3*39D) 1*112*12 2*243*13 3*26 3*39(分数:2.00)A.B.C.D.26.设变量已正确定义,则以下能正确计算 f=n!的程序段是( )。A) f=0; for(i=1; in;i+)f*=i; B) f=1; for(i=1; in; i+)f*=i;C) f=1; for(i=n; i1; i+)f*=i; D) f=1; for(i=n; i=2;
12、i-)f*=i;(分数:1.00)A.B.C.D.27.消除 SQL SELECT查询结果中的重复记录,可采取的方法是_。A) 通过指定主关键字 B) 通过指定唯一索引C) 使用 DISTINCT短语 D) 使用 UNIQUE短语(分数:2.00)A.B.C.D.28.有以下程序#include stdio.hmare()int x=1,y=2,z=3;if(xy)if(yz) printf(“%d“,+z);else printf(“%d“,+y);printf(“%d/n“,x+);程序的运行结果是_。A) 331 B) 41 C) 2 D) 1(分数:2.00)A.B.C.D.29.有以
13、下函数int fun(char *x,char *y)int n=0;while(*x=*y) y+; n+;return n;函数的功能是( )。A)查找 x和 y所指字符串中是否有/0B)统计 x和 y所指字符串中最前面连续相同的字符个数C)将 y所指字符串赋给 x所指存储空间D)统计 x和 y所指字符串中相同的字符个数(分数:2.00)A.B.C.D.30.设有定义:char s8;int i=O;,以下不能将行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是_。A) gets(s); B) white(si+=getchar()!=/n);si=/0;C) scanf(“
14、%s“,s); D) d0scanf(“%c“,while(si+!=/n;si=/0;(分数:2.00)A.B.C.D.31.下列二维数组初始化语句中,不正确的是( )。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);(分数:2.00)A.B.C.D.32.设有定义语句:int x6 = 2,4,6,8,5,7 , * p=x,i;要求依次输出 x数组 6个元素中的值,不能完成此操作的语句是( )。A) for(i=0; i 6;i+) printf(“%2
15、d“,* (p+);B) for(i =0;i 6;i + ) printf( “%2d“ , * (p +i);C) for(i =0;i 6;i + ) printf(“ %2d“ , * p + );D) for(i =0;i 6;i + ) printf(“%2d“ ,( * p) + );(分数:1.00)A.B.C.D.33.有下列程序:fun(int x)int p;if(x=0x=1)return(3);p=x-fun(x-2);return p;main()printf(“%d/n“,fun(7);执行后的输出结果是( )。A) 7 B) 3 C) 2 D) 0(分数:2.0
16、0)A.B.C.D.34.若有定义:char*x=“abcdefghi“;,以下选项中正确运用了 strcpy函数的是_。A) char y10;strcpy(y,x4);B) char y10;strcpy(+y,x1);C) char y10,*s;strcpy(s=y+5,x);D) char y10,*s;strcpy(s=y+1,x+1);(分数:2.00)A.B.C.D.35.若有 char s33=“AAA“,“BBB“,“CCC“;说明语句,则与它等价的语句是( )。 A) char*s=“AAA“,“BBB“,“CCC“; B) char*s3=“AAA“,“BBB“,“CC
17、C“; C) char s5=“AAA“,“BBB“,“CCC“;D) char s3=“AAA“,“BBB“,“CCC“;(分数:2.00)A.B.C.D.36.有以下程序#includestdio.hmain()struct nodeint n;struct node *next; *p;struct node x3=2,x+1,4,x+2,6,NULL;p=x;printf(“%d,“,p-n);printf(“%d/n“,p-next-n);程序运行后的输出结果是( )。A)2,3 B)2,4 C)3,4 D)4,6(分数:2.00)A.B.C.D.37.有以下程序:main()uns
18、igned char a=2,b=4,c=5,d;d=a|b;d=c;printf(“%d/n“,d);程序运行后的输出结果是_。A) 3 B) 4 C) 5 D) 6(分数:2.00)A.B.C.D.38.有以下程序:#includestdio.hmain()FILE *fp;int i,a6=1,2,3,4,5,6;fp=fopen(“d2.dat“,“w“);fprintf(fp,“%d%d%d/n“,a0,a1,a2);fprintf(fp,“%d%d%d/n“,a3,a4,a5);fclose(fp);fp=fopen(“d2.dat“,“r“);fscanf(fp,“%d%d/n“
19、,for(i=0;in/2;i+)t=ai; ai=an-1 -i;an-1-i =t;main()int b10=1,2,3,4,5,6,7,8,9,10;int i,s=0;reverse(b,8);for(i=6;i10;i+)s+=bi;printf(“%d/n“,s);A) 22 B) 10 C) 34 D) 30(分数:2.00)A.B.C.D.40.有以下程序:#include stdio.hvoid sum(int *a)a0=a1; main()int aa10=1,2,3,4,5,6,7,8,9,10,i;for(i=2;i=0;i-) sum(printf(“%d/n“,
20、aa0);执行后的输出结果是( )。A) 4 B) 3 C) 2 D) 1(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:30.00)41.在 E-R图中,矩形表示 1。(分数:2.00)填空项 1:_42.某二叉树有 5个度为 2的结点及 3个度为 1的结点,则该二叉树中共有 1 个点。(分数:2.00)填空项 1:_43.设某循环队列的容量为 50,如果头指针 front=45(指向队头元素的前一位置),尾指针 rear=10(指向队尾元素),则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_44.软件是 1 数据和文档的集合。(分数:2.00)填空项 1:
21、_45.一棵二叉树第 6层(根结点为第一层)的结点最多为_个。(分数:2.00)填空项 1:_46.以下程序运行时若从键盘输入:10 20 30回车。输出结果是_。#includestdio.hmain()int i=0,j=0,k=0;scanf(“%d%*d%d“,i,j,k);printf(“%d%d%d/n“,i,j,k);(分数:2.00)填空项 1:_47.设有定义:float x=123.4567;,则执行以下语句后的输出结果是 1。printf(“%f/n“,(int)(x*100+0.5)/100.0);(分数:2.00)填空项 1:_48.设 x、y、z 均为 int型变量
22、,请写出描述“x 或 y中至少有一个小于 z“的表达式 1。(分数:2.00)填空项 1:_49.下列程序的输出结果是_。#include stdio.hmain ()int x=3,y=2,z=1;if (xy)if(y0) z=0;else z+=1;printf(“%d/n“,z);(分数:2.00)填空项 1:_50.当执行以下程序时,输入 1234567890回车,则其中 while循环体将执行_次。#includestdio.hmain()char ch;while(ch=getchar()=0)printf(“#“);(分数:2.00)填空项 1:_51.51. 以下程序的输出结
23、果是U /U。#include stdio.hmain()int j,a=1,3,5,7,9,11,13,15,*P=a+5;for(j=3; j;j-)switch(i)case 1:case 2: printf(“%d“,*p+); break;case 3: printf(“%d“,* (-p);(分数:2.00)填空项 1:_52.下面程序的功能是输出数组 s中最大元素的下标,请填空。main( )int k,p,s =1,-9,7,2,-10,3;for(p=0,k=p;p6;p+)if(spsk)_printf(“%d/n“,k);(分数:2.00)填空项 1:_53.53. 有两
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 473 答案 解析 DOC
