【计算机类职业资格】二级C语言真题6及答案解析.doc
《【计算机类职业资格】二级C语言真题6及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言真题6及答案解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言真题 6 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中错误的是_。(分数:1.00)A.算法的时间复杂度与问题规模无关B.算法的时间复杂度与计算机系统无关C.算法的时间复杂度与空间复杂度没有必然的联系D.算法的空间复杂度与算法运行输出结果的数据量无关2.设表的长度为 20。则在最坏情况下,冒泡排序的比较次数为_。(分数:1.00)A.190B.20C.19D.903.下列叙述中正确的是_。(分数:1.00)A.带链栈的栈底指针是随栈的操作而动态变化的B.若带链队列的队头指针与队尾指针相同,则队列为空C.若带链队列
2、的队头指针与队尾指针相同,则队列中至少有一个元素D.带链栈的栈底指针是固定的4.设一棵树的度为 3,共有 27 个结点,其中度为 3,2,0 的结点数分别为 4,1,10。该树中度为 1 的结点数为_。(分数:1.00)A.12B.13C.11D.不可能有这样的树5.下面描述中正确的是_。(分数:1.00)A.好的软件设计应是高内聚低耦合B.内聚性和耦合性无关C.内聚性是指多个模块间相互连接的紧密程度D.耦合性是指一个模块内部各部分彼此结合的紧密程度6.某系统总体结构如下图所示 (分数:1.00)A.5B.7C.4D.87.下面属于应用软件的是_。(分数:1.00)A.人事管理系统B.Orac
3、le 数据库管理系统C.C+编译系统D.ios 操作系统8.下面选项中不是关系数据库基本特征的是_。(分数:1.00)A.不同的列应有不同的数据类型B.不同的列应有不同的列名C.与行的次序无关D.与列的次序无关9.工厂生产中所需的零件可以存放在多个仓库中,而每一仓库中可存放多种零件。则实体仓库和零件间的联系是_。(分数:1.00)A.多对多B.一对多C.多对一D.一对一10.学生和课程的关系模式定义为 S(S#,Sn,Sd,DC,Sa)(其属性分别为学号、姓名、所在系、所在系的系主任、年龄); C(C#,Cn,P#)(其属性分别为课程号、课程名、先选课); SC(S#,C#,G)(其属性分别学
4、号、课程号和成绩)。 关系中包含对主属性传递依赖的是_。(分数:1.00)A.S#Sd,SdDcB.S#SdC.S#Sd,(S#,C#)GD.C#P#,(S#,C#)G11.以下叙述中正确的是_。(分数:1.00)A.计算机能直接运行未经编译的 C 语言程序B.循环结构、选择结构、顺序结构是结构化程序的三种基本结构C.复杂算法不能使用 N-S 流程图来描述D.计算机能够直接处理不超过 20 行源码的简单 C 语言程序12.以下说法正确的是_。(分数:1.00)A.C 语言程序运行时可以从键盘上读入用户输入的 C 源程序并附加到本程序的尾部一并执行B.C 语言程序运行时可以从键盘上读入用户以二进
5、制输入的指令,并执行这些指令C.C 语言程序运行时可以从键盘上读入用户输入的 C 源程序并逐行执行D.C 语言程序运行时可以从键盘上读入用户输入的字符或数据,并依此改变程序的运行步骤13.若有程序段 char c; double d; scanf(“%lf%c“, 如果想把 2.3 输入给变量 d,字符“f“输入给变量 c,程序运行时正确的输入是_。(分数:1.00)A.2.3 fB.2.3fC.2.3“f“D.2.3“f“14.设 a、b、c 是已定义的整型变量且已正确赋初值,以下赋值语句中,错误的是_。(分数:1.00)A.a=(b=3)=1;B.a=(b=0)+c+0;C.a=b=c+0
6、;D.a=0+(b=c=0);15.若有定义:int a=3;double b=0.1263;char ch=“a“;,则以下选项中,叙述有错的是_。(分数:1.00)A.逗号表达式的计算结果是最后一个逗号之后的表达式的运算结果B.运算符%只能对整数类型的变量进行运算C.语句 ch=(unsigned int)a+b;是对 a 与 b 之和进行强制类型转换,结果赋值给变量 chD.复合运算:a*=b+ch 是将变量 b、ch 之和与 a 相乘,结果再给 a 赋值16.以下可以正确且安全的用作用户标识符的一组选项是_。(分数:1.00)A._32int,long64B.Switch,unsign
7、edC.Abc,getchD.3break,enter17.若有定义:char ch;int a;double d;,当输入为 12345 678910.36 时,以下选项中能给各个变量正确输入数据的是_。(分数:1.00)A.scanf(“%d%c%lf“,B.scanf(“%5d%2c%7.2lf“,C.scanf(“%d%c%lf“,a,ch,d);D.scanf(“5d%2c%7.2lf%“,18.以下选项中,合法的 C 语言实数是_。(分数:1.00)A.3.1e3.1B2e1C.E09D.1.23E19.以下叙述正确的是_。(分数:1.00)A.#includestdio.h是 C
8、 程序的一条语句B.使用符号/可以将一条#include 命令写在多行里C.一个#include 行可以包含多个文件,文件名用逗号分开D.一个#include 行可以包含多个文件,且最后一个文件起作用20.与数学式 (x 2 -y 2 )cos(45) 对应的 C 语言表达式是_。(分数:1.00)A.(pow(x,2)-pow(y,2)*cos(3.1415926*45/180)B.(pow(2,x)-pow(2,y)*cos(3.1415926*45/180)C.(x*x-y*y)*cos(45)D.(x2-y2)*cos(45)21.以下程序拟实现计算 s=1+2*2+3*3+n*n+,
9、直到 s1000 为止。 #includestdio.h main() int s,n; s=1; n=1; do n=n+1;s=s+n*n; while(s1000); printf(“s=%d/n“,s); 程序运行后,不能得到正确结果,以下修改方案正确的是_。(分数:1.00)A.把 n=n+1;改为 n=n*n;B.把 s=1;改为 s=0;C.把 n=1;改为 n=0;D.把 while(s1000);改为 while(s=1000);22.有如下程序 #includestdio.h main() char a,b; int i; a=“3“; b=“A“; for(i=0;i6;
10、i+) if(i%2)putchar(a+i); else putchar(b+i); 程序运行后的输出结果是_。(分数:1.00)A.AB56EFB.A4C6E8C.B4D6F8D.A5C7E923.设有定义:int sum=100,i; 以下选项中,能够实现 sum-=1+2+3+10 的程序段是_。(分数:1.00)A.for(i=0;i=10;)sum=sum-i+;B.i=0;dosum=sum-+i;while(i=10);C.i=0;while(isum=sum-+i;D.i=1;for(;i10;i+)sum=sum-i+;24.有下列程序 #includestdio.h ma
11、in() int a=123456,b; while(a) b=a%10; a/=10; switch(b) default:printf(“%d“,b+); case 1: case 2:printf(“%d“,b+);break; case 3:printf(“%d“,b+);break; case 4:printf(“%d“,b+); 程序执行后的输出结果是_。(分数:1.00)A.76654321B.12345667C.67564321D.65432125.有以下程序 #includestdio.h main() char i,j,n; for(i=“1“;i=“9“;i+) if(i
12、“3“)continue; for(j=“0“;j=“9“;j+) if(j“2“|j=“4“)continue; n=(i-“0“)*10+j-“0“; printf(“%d“,n); if(i=“4“)break; printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.32 33 42 43B.30 31 40 41C.34 35 44 45D.35 36 45 4626.以下叙述中正确的是_。(分数:1.00)A.无论指针变量 p 具有何种基类型,表达式 p=p+1 都代表指针 p 移动一个字节B.指针变量具有基类型,基类型不同的指针变量不能直接相互赋值C.指针变量
13、的赋值操作:p=0;是非法的D.通过指针变量存取某个变量值的方式称为“直接存取”方式27.有以下程序 #includestdio.h void swap(int*a,int*b) int t,*tp; t=*a;*a=*b;*b=t; tp=a;a=b;b=tp; printf(“%d,%d,“,*a,*b); main() int i=3,j=7,*p= swap(p,q); printf(“%d,%d,%d,%d“,i,j,*p,*q); 程序执行后的输出结果是_。(分数:1.00)A.3,7,3,7,3,7B.7,3,7,3,7,3C.3,7,3,7,7,3D.3,7,7,3,7,328
14、.对于函数声明 void fun(float array,int*ptr);以下叙述正确的是_。(分数:1.00)A.函数 fun 的参数 array,ptr 都是指针变量B.函数 fun 的参数 array 是数组名,ptr 是指针变量,它们有本质区别C.调用函数 fun 时,实参数组元素个数可以比形参 array 数组元素个数多D.调用函数 fun 时,传送给形参 array 的应是数组的所有元素29.以下叙述中正确的是_。(分数:1.00)A.“/x41“和“/101“都是转义字符常量B.“/“与“/“都是字符串常量C.“是空的字符串,“是空字符 NULLD.“/n“和“/n“都是回车字
15、符30.以下选项中,能够正确利用随机函数 rand(),产生一个英文字母的表达式是_。(分数:1.00)A.rand()%2=0?rand()%“A“:rand()%“a“B.rand()%26+“A“|rand()%26+“a“C.rand()%26+“A“,则以下叙述中错误的是_。 Aq 是指针变量,*q 就是变量 a Bp 是指针变量,p 指向变量 a c)q 指向变量 p,所以*q 指向变量 a D*p 与*q 都代表变量 a (分数:1.00)A.B.C.D.32.有下列程序 #includestdio.h void f(int x,int n) f(n1) printf(“%d“,
16、xn-1); f(x,n-1); printf(“%d“,xn-1); else printf(“%d“,xn-1); main() int a 4=1,2,3,4; f(a,4); 程序执行后的输出结果是_。(分数:1.00)A.1234321B.43211234C.4321234D.1234432133.有以下不完整函数 int fun(char*p) char*t=p; while(*t+); return(_); 该函数的功能是:计算 p 所指字符串占用内存单元的个数,作为函数值返回。return 语句下划线处应填入的是_。(分数:1.00)A.t-pB.*tC.*t-*pDt34.有
17、下列程序 #includestdio.h #includestring.h main() char v 410=“efg“,“abcd“,“mnopq“,“hijkl“,*p4,*t; int i,j; for(i=0;i4;i+) pi=vi; for(i=0;i3;i+) for(j=i+1;j4;j+) if(strcmp(pi,pi)0) t=pi;pi=pi;pi=t; for(i=0;i4;i+) printf(“%s“,pi); 程序执行后的输出结果是_。(分数:1.00)A.efg abcd hijkl mnopqB.abcd efg hijkl mnopqC.mnopq hi
18、jkl efg abcdD.efg abcd mnopq hijkl35.有以下程序 #includestdio.h #define S1(z)4*z+4*(z) #define s2(x,y)4*(x)*(y)+y*x main() int a=1,b=2; printf(“%d,“,S1(a+b); printf(“%d,“,S2(a,b)+S1(3); printf(“%d“,S2(3+a,b+3); 程序执行后的输出结果是_。(分数:1.00)A.18,34,100B.24,34,92C.24,34,100D.18,34,9236.如图所示:带有头结点的单向链表 head,其三个数据结
19、点 A、B、C 的连接关系见图。 (分数:1.00)A.*(*p).next-next-dtB.p-next-next-dtC.(*(*(*p).next).next).dtD.(*(p-next-next).dt37.设有定义 #includestdio.h #includestdlib.h typedef structint x,y;T; typedef structint x,y;*USER; USER fun() USER p; p=(USER)malloc(sizeof(T); p-x=1; p-y=2; return p; 函数 fun 返回值的类型是_。(分数:1.00)A.T
20、类型的结构体B.指向结构体类型的指针C.int 类型的元素D.int 类型的指针38.有以下宏定义及调用 #define HA 2 #define HB(a)(HA+1)*a x=HA*(HA+HB(2); 则以下判断正确的是_。(分数:1.00)A.宏定义不允许嵌套B.x 的值是 6C.x 的值是 16D.宏调用不允许嵌套39.若以“a+”方式打开一个已存在的文件,以下叙述正确的是_。(分数:1.00)A.文件打开时,原有文件内容不被删除,可以进行添加和读操作B.文件打开时,原有文件内容不被删除,位置指针移到文件开头,可以进行重写和读操作C.文件打开时,原有文件内容不被删除,位置指针移到文件
21、中间,可以进行重写和读操作D.文件打开时,原有文件内容被删除,只可进行写操作40.有下列程序 #includestdio.h main() FILE*fp; int i,a6=1,2,3,4,5,6; fp=fopen(“d.dat“,“w+b“); for(i=0;i6;i+) fwrite( rewind(fp); fread( fclose(fp); for(i=0;i6;i+) printf(“%d,“,ai); 程序执行后的输出结果是_。(分数:1.00)A.4,5,6,4,5,6,B.1,2,3,4,5,6,C.4,5,6,1,2,3,D.1,2,3,1,2,3,二、(共 18 分
22、)(总题数:1,分数:18.00)41.函数 fun 的功能是:将一副扑克牌编号为 1,2,3,53,54,以某种特定的方式洗牌,这种方式是将这副牌分成两半,然后将它们交叉,并始终保持编号为 1 的牌在最上方,如第一次这样洗牌后的结果为:1,28,2,29,53,27,54。两次洗牌后的结果为:1,41,28,15,2,42,53,40,27,14,54。 程序的功能是:输出经过 n 次这样洗牌后的结果。 请在程序的下画线处填入正确的内容,并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h void fun(int
23、a55,int n) int i,k; /*found*/ int 155; for(i=0;in;i+) for(k=1;k=27;k+) b2*k-1=ak; /*found*/ b 2*k=ak+27; for(k=1;k=54;k+) /*found*/ ak= 3; main() int m,a55,i; for(i=1;i55;i+)ai=i; printf(“请输入洗牌次数:“);scanf(“%d“, fun(a,m); for(i=1;i55;i+)printf(“%d,“,ai); printf(“/n“); (分数:18.00)三、(共 18 分)(总题数:1,分数:18
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 答案 解析 DOC
