【计算机类职业资格】二级C语言分类模拟题562及答案解析.doc

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

1、二级 C语言分类模拟题 562及答案解析(总分:43.50,做题时间:90 分钟)一、选择题(总题数:30,分数:43.50)1.有以下程序: #includestdio,h main( ) int i,j,x=0; for(i=0;i2;i+) x+; for(j=0;j=3;j+) if(j%2=0)continue;x+; x+; printf(“x=%d/n“,x); 程序的运行结果是_。(分数:1.00)A.x=4B.x=6C.x=8D.x=122.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。(分数:1.00)A.学生成绩管理系统B.C语言编

2、译程序C.UNIX操作系统D.数据库管理系统3.下面程序的输出结果是_。 #includestdio.h main() char a=“a“,“b“,“c“,“d“,“f“,“g“,*p; p=a; printf(“%c/n“,*p+4); (分数:2.00)AaBbCeDf4.下列关于栈的叙述正确的是_。(分数:1.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据5.以下选项中可用做 C程序合法实数的是_。(分数:2.00)A.3.0e0.2B1e0CE9D.9.12E6.设有定义: char s81;int i=0; 以下不能将一行(不超

3、过 80个字符)带有空格的字符串正确读入的语句或语句组是_。(分数:2.00)A.scanf(“%s“,s);B.while(si+=getchar()!=“/n“);si=“/0“;C.gets(s);D.doscanf(“%c“,si);while(si+!=“/n“);si=“/0“;7.设有定义:char str=“ABCD“,*p=str;则语句 printf(“%d/n“, *(p+4);的输出结果是(分数:1.00)A.68B.0C.字符 D的地址D.不确定的值8.在软件开发中,需求分析阶段产生的主要文档是_。(分数:1.00)A.软件集成测试计划B.软件详细设计说明书C.用户手

4、册D.软件需求规格说明书9.以下叙述正确的是 _ 。(分数:1.00)A.continue语句的作用是结束整个循环的执行B.只能在循环体内和 switch语句体内使用 break语句C.在循环体内使用 break语句或 continue语句的作用相同D.从多层循环嵌套中退出时,只能使用 goto语句10.以下叙述中正确的是_。(分数:2.00)A.在对指针进行加、减算术运算时,数字 1表示 1个存储单元的长度B.如果 p是指针变量,则*p 表示变量 p的地址值C.如果 p是指针变量,则p 是不合法的表达式D.如果 P是指针变量,则*p+1 和*(p+1)的效果是一样的11.有以下程序 #inc

5、ludestdio.h void fun(int p) int d=2; p=d+; printf(“%d“, p); main() int a=1; fun(a); printf(“%d/n“, a); 程序运行后的输出结果是_。(分数:1.00)A.32B.12C.21D.2212.以下程序的输出结果是_。 main() char st20=“hello/0/t/“; printf(“%d%d/n“, strlen(st), sizeof(st); (分数:1.00)A.9 9B.5 20C.13 20D.20 2013.有以下程序: # include stdio.h main() in

6、t a=7; while(a-); printf(“%d/n“,a); 程序运行后的输出结果是_。(分数:1.00)A.-1B.0C.1D.714.在以下一组运算中,优先级最高的运符算是 ( )(分数:1.00)A.B.C.%D. 功能相同的是_。(分数:2.50)A.if(ab)(hc)k=1;else k=0;B.if(ab)|(bc)k=1;else k=0;C.if(a=b)k=0;else if(b=c)k=1;D.if(ab)k=1;else if(bc)k=1;else k=0;17.有以下程序 #includestdio.h void fun(int n,int*s) int

7、f; if(n=1)*s=n+1; else fun(n-1,f); *s=f; main() int x=0; fun(4,x); printf(“%d/n“,x); 程序运行后的输出结果是_。(分数:2.00)A.2B.1C.3D.418.有以下程序: #include stdio.h main() char c; while(c=getchar()!=“/n“) switch(c-“2“) case 0 : case 1 : putchar(c+4); case 2 : putchar(c+4); break; case 3 : putchar(c+3); default : putch

8、ar(c+2); break; printf(“/n“); 程序运行后从第一列开始输入以下数据: 2473回车 程序的输出结果是_。(分数:1.00)A.668977B.4444C.6677877D.6876619.函数 ftell(fp)的作用是_。(分数:1.00)A.得到流式文件中的当前位置B.移动流式文件的位置指针C.初始化流式文件的位置指针D.以上答案均正确20.设有输入语句 scanf(“a=%d,b=%d,c=%d“, printf(“%s/n“,ss); (分数:1.00)A.ABC6789B.ABC67C.12345ABC6D.ABC45678922.设 p是指针变量,语句

9、p=NULL;等价于_。(分数:2.00)A.p=“0“;B.p=“;C.p=“;D.p=0;23.以下程序的输出结果是_。 void fun(int*a, int i, int j) int t; if(ij) t=ai; ai=aj; aj=t; i+; j-; fun(a, i, j); main() int x=2, 6, 1, 8, i; fun(x, 0, 3); for(i=0; i4; i+) printf(“%2d“, xi); printf(“/n“); (分数:2.50)A.1,2,6,8B.8,6,2,1C.8,1,6,2D.8,6,1,224.“商品”与“顾客”两个实

10、体集之间的联系一般是(分数:2.00)A.一对一B.一对多C.多对一D.多对多25.若有定义:double a=22; int i=0, k=18;,则不符合 C语言规定的赋值语句是_。(分数:2.00)A.i=(a+k)=(i+k);B.i=a%11;C.a=a+, i+;D.i=!a;26.有以下程序: #includestdio.h main() int m=1,n=2,*p=m,*q=n,*r; r=p;p=q;q=r; printf(“%d,%d,%d,%d/n“,m,n,*p,*q); 程序运行后的输出结果是_。(分数:1.00)A.2,1,1,2B.1,2,1,2C.2,1,2,

11、1D.1,2,2,127.有以下程序: #includestdio.h #define N 3 void fun(int xN,int *r1,int *r2) int i,j; *r1=*r2=0; for(i=0;iN;i+) j=N-(i+1); if(x*r1*r2xij)*r1=i;*r2=j; main() int aNN=1,5,7,9,2,6,4,3,8,i,j; fun(a, printf(“%d/n“,aij); 程序运行后的输出结果是_。(分数:1.00)A.8B.6C.7D.928.一个算法应该具有“确定性”等 5个特性,下面对另外 4个特性的描述中错误的是( )(分数

12、:1.00)A.有零个或多个输入B.有零个或多个输出C.有穷性D.可行性29.如果进栈序列为 e1、e2、e3、e4,则可能的出栈序列是_。(分数:2.50)A.e3、e1、e4、e2B.e2、e4、e3、e1C.e3、e4、e2D.任意顺序30.有以下程序: #includestdio.h struct tt int x; struct tt *y; s2=1,0,2,0; main() struct tt *p=s; p-y=s; printf(“%d“,+p-x); 程序运行后的输出结果是_。(分数:1.00)A.2B.0C.1D.3二级 C语言分类模拟题 562答案解析(总分:43.5

13、0,做题时间:90 分钟)一、选择题(总题数:30,分数:43.50)1.有以下程序: #includestdio,h main( ) int i,j,x=0; for(i=0;i2;i+) x+; for(j=0;j=3;j+) if(j%2=0)continue;x+; x+; printf(“x=%d/n“,x); 程序的运行结果是_。(分数:1.00)A.x=4B.x=6C.x=8 D.x=12解析:解析 第一次循环:i=0,执行 x+后 x=1,执行内层循环 j=0,由于 j%2!=0时才执行 x+,即只有 j取 1和 3时,执行 x+,此时 x=1+1+1=3,跳出内层循环,执行下

14、一条 x+,x=4,第二次循环:x=1时,重复上述循环,共执行两次循环,故 x最终结果是 4*2=8。2.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。(分数:1.00)A.学生成绩管理系统 B.C语言编译程序C.UNIX操作系统D.数据库管理系统解析:解析 软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。所以 B、C、D 选项都是系统软件,只有 A选项是应用软件。3.下面程序的输出结果是_。 #includestdio.h main() char a=“a“,“b“,“c“,“d“

15、,“f“,“g“,*p; p=a; printf(“%c/n“,*p+4); (分数:2.00)AaBbCe Df解析:4.下列关于栈的叙述正确的是_。(分数:1.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据 C.只能在栈底插入数据D.不能删除数据解析:解析 栈是只允许在同一端进行插入和删除运算的线性表,按“先进后出”组织数据,因此本题答案为 B。5.以下选项中可用做 C程序合法实数的是_。(分数:2.00)A.3.0e0.2B1e0 CE9D.9.12E解析:解析 A 选项中 E后面的指数必须为整数。C 语言规定,E 之前必须要有数字,所以 C选项错误。E后面必须要有数字,

16、且必须为整数,所以 D选项错误。6.设有定义: char s81;int i=0; 以下不能将一行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是_。(分数:2.00)A.scanf(“%s“,s); B.while(si+=getchar()!=“/n“);si=“/0“;C.gets(s);D.doscanf(“%c“,si);while(si+!=“/n“);si=“/0“;解析:解析 字符串的输入不能使用“scanf(“%s“,s);”,而应该使用“gets(s)”,因此选择 A。7.设有定义:char str=“ABCD“,*p=str;则语句 printf(“%d/n

17、“, *(p+4);的输出结果是(分数:1.00)A.68B.0 C.字符 D的地址D.不确定的值解析:8.在软件开发中,需求分析阶段产生的主要文档是_。(分数:1.00)A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书 解析:解析 需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。所以选择 D。9.以下叙述正确的是 _ 。(分数:1.00)A.continue语句的作用是结束整个循环的执行B.只能在循环体内和 switch语句体内使用 break语句 C.在循环体内使用 break语句或 continue语句的作用相同D.从多

18、层循环嵌套中退出时,只能使用 goto语句解析:解析 考查 continue和 break语句的使用。 解题要点 continue 是结束本次循环,直接进入到下次循环中,break 用于循环语句中的作用是直接跳出本层循环,能从多层循环中退出的语句除了 goto语句, exit,return 等语句也能直接跳出多层循环。考点链接 continue 和 break语句在 while语句中的作用。10.以下叙述中正确的是_。(分数:2.00)A.在对指针进行加、减算术运算时,数字 1表示 1个存储单元的长度 B.如果 p是指针变量,则*p 表示变量 p的地址值C.如果 p是指针变量,则p 是不合法的

19、表达式D.如果 P是指针变量,则*p+1 和*(p+1)的效果是一样的解析:解析 B 选项中,如果 p是指针变量,则*p 表示指针变量所指向元素的值,C 选项,如果 p是指针变量,则p 表示指针变量的地址,是地址的地址,D 选项,如果 p是指针变量,则*p+1 表示指针变量所指向元素的值加 1,*(p+1)表示指针变量指向元素下一个元素的值。所以含义不同,答案选择 A。11.有以下程序 #includestdio.h void fun(int p) int d=2; p=d+; printf(“%d“, p); main() int a=1; fun(a); printf(“%d/n“, a)

20、; 程序运行后的输出结果是_。(分数:1.00)A.32B.12C.21 D.22解析:解析 本题考查函数调用。主函数中调用 fun()函数,p=d+,d=2,选取 d的值,再加 1,所以输出 p的值为 2,再回到主函数中,直接输出 a的值为 1。12.以下程序的输出结果是_。 main() char st20=“hello/0/t/“; printf(“%d%d/n“, strlen(st), sizeof(st); (分数:1.00)A.9 9B.5 20 C.13 20D.20 20解析:解析 从题目中可知,“/0“、“/t“、“/“分别为一个字符,而 sizeof是求字节个数的函数,其

21、中包括“/0“占的字节;strlen 函数是求数组长度的函数,其以“/0“结束,因此 strlen的值为 5,sizeof 的值为 20。13.有以下程序: # include stdio.h main() int a=7; while(a-); printf(“%d/n“,a); 程序运行后的输出结果是_。(分数:1.00)A.-1 B.0C.1D.7解析:解析 此题考查 a-和-a 之间的区别,当 while(a-)为真循环执行,a-是执行再减 1,所以答案选择 A。14.在以下一组运算中,优先级最高的运符算是 ( )(分数:1.00)A.B.C.% D. 功能相同的是_。(分数:2.50

22、)A.if(ab)(hc)k=1;else k=0; B.if(ab)|(bc)k=1;else k=0;C.if(a=b)k=0;else if(b=c)k=1;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,答案 A。17.有以下程序 #includestdio.h void fun(int n,int*s) int f; if(n=1)*s=n+1; else fun(n-1,f); *s=f; main() int x=0; fun(4,x); print

23、f(“%d/n“,x); 程序运行后的输出结果是_。(分数:2.00)A.2 B.1C.3D.4解析:解析 fun 函数是递归函数,调用到 n为 0时*s=1+1 为 2,返回主函数,x 为 2。18.有以下程序: #include stdio.h main() char c; while(c=getchar()!=“/n“) switch(c-“2“) case 0 : case 1 : putchar(c+4); case 2 : putchar(c+4); break; case 3 : putchar(c+3); default : putchar(c+2); break; print

24、f(“/n“); 程序运行后从第一列开始输入以下数据: 2473回车 程序的输出结果是_。(分数:1.00)A.668977 B.4444C.6677877D.68766解析:解析 本题执行过程为:输入 c=“2“,c-“2“=0,首先匹配 case0,依次输出 6,6,后执行 break语句,跳出分支结构;输入 c=“4“,c-“2“=2,匹配 case2,输出 8,执行 break语句,跳出分支结构;输入 c=“7“,c-“2“=5,匹配 default,输出 9,执行 break语句,跳出分支结构;输入 c=“3“,c-“2“=1,匹配 casel,依次输出 7,7,执行 break语句

25、,跳出分支结构。输入回车,结束循环。故 A选项正确。19.函数 ftell(fp)的作用是_。(分数:1.00)A.得到流式文件中的当前位置 B.移动流式文件的位置指针C.初始化流式文件的位置指针D.以上答案均正确解析:20.设有输入语句 scanf(“a=%d,b=%d,c=%d“, printf(“%s/n“,ss); (分数:1.00)A.ABC6789 B.ABC67C.12345ABC6D.ABC456789解析:解析 sdtrcat(str1,str2)合并字符串函数的作用是把 str2所指字符串的内容连接到 str1字符串的后面,自动删去 str1原来串中的“/0“。为了进行这项

26、操作,要求 str1所指的字符串后面有足够的空间来容纳 str2所指字符串中的内容。函数值为 str1所指第一个字符的地址。22.设 p是指针变量,语句 p=NULL;等价于_。(分数:2.00)A.p=“0“;B.p=“;C.p=“;D.p=0; 解析:23.以下程序的输出结果是_。 void fun(int*a, int i, int j) int t; if(ij) t=ai; ai=aj; aj=t; i+; j-; fun(a, i, j); main() int x=2, 6, 1, 8, i; fun(x, 0, 3); for(i=0; i4; i+) printf(“%2d“

27、, xi); printf(“/n“); (分数:2.50)A.1,2,6,8B.8,6,2,1C.8,1,6,2 D.8,6,1,2解析:解析 本题用了函数调用,fun 中 if语句成立则进行 i,j 的交换,用到主函数中则为把下标0、3,1、2 互换,因此,当执行完后 x的数组为 8,1,6,2,故选择 C选项。24.“商品”与“顾客”两个实体集之间的联系一般是(分数:2.00)A.一对一B.一对多C.多对一D.多对多 解析:解析 本题考核实体集之间的联系。实体集之间的联系有 3种:一对一、一对多和多对多。因为一类商品可以由多个顾客购买,而一个顾客可以购买多类商品,所以,“商品”与“顾客”

28、两个实体集之间的联系一般是“多对多”。25.若有定义:double a=22; int i=0, k=18;,则不符合 C语言规定的赋值语句是_。(分数:2.00)A.i=(a+k)=(i+k);B.i=a%11; C.a=a+, i+;D.i=!a;解析:解析 取模运算符“%”为二元运算符,具有左结合性,参与运算的量均为整型。选项 B中的 a变量是 double实型,所以 B不符合规定。26.有以下程序: #includestdio.h main() int m=1,n=2,*p=m,*q=n,*r; r=p;p=q;q=r; printf(“%d,%d,%d,%d/n“,m,n,*p,*q

29、); 程序运行后的输出结果是_。(分数:1.00)A.2,1,1,2B.1,2,1,2C.2,1,2,1D.1,2,2,1 解析:解析 int m=1,n=2,*p=m,*q=n,*r;即指针变量 p指向 m,指针变量 q指向 n,r=p;p=q;q=r;即通过指针变量 r,将指针 p和指针 q的指向交换,因此最后输出“1,2,2,1”。27.有以下程序: #includestdio.h #define N 3 void fun(int xN,int *r1,int *r2) int i,j; *r1=*r2=0; for(i=0;iN;i+) j=N-(i+1); if(x*r1*r2xij

30、)*r1=i;*r2=j; main() int aNN=1,5,7,9,2,6,4,3,8,i,j; fun(a, printf(“%d/n“,aij); 程序运行后的输出结果是_。(分数:1.00)A.8B.6C.7 D.9解析:解析 fun()函数获取矩阵正反对角线的元素的最大值,fun()中 for(i=0;iN;i+)j=N-(i+1);/反对角线列位置 if(x*r1*r2xij)*r1=i;*r2=j;/比较正反对角线的元素,使得*r1,*r2 始终只在 /最大元素的位置 由数组元素可得,正反对角线的最大元素为 7。答案为 C选项。28.一个算法应该具有“确定性”等 5个特性,下

31、面对另外 4个特性的描述中错误的是( )(分数:1.00)A.有零个或多个输入B.有零个或多个输出 C.有穷性D.可行性解析:解析 算法应具有的 5个特性:有穷性,确定性,可行性,有零个或多个输入,有一个或多个输出。29.如果进栈序列为 e1、e2、e3、e4,则可能的出栈序列是_。(分数:2.50)A.e3、e1、e4、e2B.e2、e4、e3、e1 C.e3、e4、e2D.任意顺序解析:解析 栈的特点是先进后出,可知 e1肯定是最后出栈的,因此正确答案为选项 B。30.有以下程序: #includestdio.h struct tt int x; struct tt *y; s2=1,0,2,0; main() struct tt *p=s; p-y=s; printf(“%d“,+p-x); 程序运行后的输出结果是_。(分数:1.00)A.2 B.0C.1D.3解析:解析 *p=s,可得 p指向 s0,p-y 指向 s1,现 p-y=s,因此 p-y 指向 s0。因此 p-x=1,+p-x 等价于+(p-x),因此打印结果为 2。答案为 A选项。

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

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

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