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

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

1、二级 C 语言分类模拟题 580 及答案解析(总分:47.50,做题时间:90 分钟)一、选择题(总题数:30,分数:47.50)1.以下程序的主函数中调用了在其面前定义的 fun 函数 # include stdio.h main() double a15,k; k=fun(a); (分数:1.00)A.double fun(double a15)B.double fun(double *a)C.double fun(double a)D.double fun(double a)2.对于一个正常运行的 C 程序,以下叙述中正确的是_。(分数:1.00)A.程序的执行总是从 main 函数开始

2、,在程序的最后一个函数中结束B.程序的执行总是从程序的第一个函数开始,在 main 函数结束C.程序的执行总是从 main 函数开始D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束3.若有定义语句:char s10=“1234567/0/0“;,则 strlen(s)的值是_。(分数:2.00)A.7B.8C.9D.104.有以下程序: #includestdio.h int fun(int n) if(n)return fun(n-1)+n; else return 0; main( ) printf(“%d/n“,fun(3); 程序的运行结果是_。(分数:1.00)A

3、.4B.5C.6D.75.以下关于逻辑运算符两侧运算对象的叙述中正确的是_。(分数:1.00)A.可以是任意合法的表达式B.只能是整数 0 或非 0 整数C.可以是结构体类型的数据D.只能是整数 0 或 16.以下选项中,合法的 C 语言常量是_。(分数:1.00)A.21.84B.“CPP“C.“/1.0D.2MB7.若有定义 int a, b;,则用语句 scanf(“%d%d“, 输入 a, b 的值时,不能作为输入数据分隔符的是_。(分数:1.00)A.,B.空格C.回车D.Tab 键8.与数学表达式 xyz 对应的 C 语言表达式是_。(分数:2.50)A.(x =y)|(y=x)B

4、.(x=y=z)C.(x=y)!(y=z)D.(x=y) d=SUB(a+b)*c; printf(“%d/n“,d); 程序运行后的输出结果是_。(分数:2.00)A.0B.-12C.-20D.1011.若有以下程序 #includestdio.h void fun(int a,int n) intt,i,j; for(i=1;in;i+=2) for(j=i+2;jn;j+=2) if(aiaj)t=ai;ai=aj;aj=t; main() int c10=10,9,8,7,6,5,4,3,2,1,i; fun(c,10); for(i=0;i10;i+)printf(“%d,“,ci)

5、; printf(“n“); 则程序的输出结果是_。(分数:1.00)A.10,1,8,3,6,5,4,7,2,9,B.10,9,8,7,6,5,4,3,2,1,C.2,9,4,7,6,5,8,3,10,1,D.1,10,3,8,5,6,7,4,9,2,12.有三个关系 R、S 和 T 如下: (分数:1.00)A.笛卡儿积B交C并D.自然连接13.有如下程序: #include stdio.h main() char*p1=0; int*p2=0; double*p3=0; printf(“%d,%d,%d/n“,sizeof(p1),sizeof(p2),sizeof(p3); 程序运行后

6、的输出结果是_。(分数:1.00)A.4,4,4B.1,4,8C.0,0,0D.1,2,414.一个 C 程序中_。(分数:2.00)A.main 函数必须出现在所有函数之前B.main 函数可以在任何地方出现C.main 函数必须出现在所有函数之后D.main 函数必须出现在固定位置15.以下叙述中错误的是_。(分数:1.00)A.用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值B.用户定义的函数中可以没有 return 语句C.用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D.函数的 return 语句中可以没有表达式16.在 C

7、 语言中,函数的隐含存储类别是 ( )(分数:1.00)A.autoB.staticC.externD.无存储类别17.有以下程序: #include stdio.h #include stdlib.h int fun(int n) int * p; p=(int *)malloc(sizeof(int); *p=n; return * p; main() int a; a=fun(10); printf(“% d/n“, a+fun(a); 程序的运行结果是_。(分数:2.50)A.0B.10C.20D.出错18.有以下程序: #include stdio.h main() int a=-2

8、, b=0; while(a+ printf(“%d, %d/n“, a, b); 程序运行后的输出结果是_。(分数:1.00)A.1,3B.0,2C.0,3D.1,219.有以下程序: #includestdio.h #includestdlib.h void fun(double*p1,double*p2,double*s) s=(double*)calloc(1,sizeof( double); *s=*p1+*(p2+1); main() double a2=1.1,2.2,b2=10.0,20.0,*s=a; fun(a,b,s); printf(“%5.2f/n“,*s); 程序运

9、行后的输出结果是_。(分数:1.00)A.21.10B.11.10C.12.10D.1.1020.有如下程序: #include stdio.h main() int a = 0, b = 1; if(+a = b+) printf(“T“); else printf(“F“); printf(“a=%d,b=%d/n“,a,b); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.Ta=0,b=1B.Fa=1,b=2C.Ta=1,b=2D.Fa=0,b=221.以下程序的输出结果是_。 #include stdio.h void prt (int *x,int *y

10、,int *z) printf(“%d,%d,%d/n“,+*x,+*y,*(z+); main() int a=10,b=40,c=20; prt ( prt ((分数:2.50)A.11,42,3112,22,41B.11;41,2012,42,20C.11,21,4011,21,21D.11,41,2112,42,2222.若已定义: int a=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *p=a, i; 其中 0i9,则对 a 数组元素的引用不正确的是_。(分数:2.50)A.ap-aB.*( i=M1+M2; printf(“% d/n“, i); 程序编译后运行的

11、输出结果是_。(分数:2.50)A.10B.20C.25D.3024.下列关于数据库设计的叙述中,正确的是_。(分数:1.00)A.在需求分析阶段建立数据字典B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典25.若有定义语句: char*s1=“OK“,*s2=“ok“; 以下选项中,能够输出“OK“的语句是_。(分数:4.00)A.if(strcmp(s1,s2)=0)puts(s1);B.if(strcmp(s1,s2)!=0)puts(s2);C.if(strcmp(s1,s2)=1)puts(s1);D.if(strcmp(s1,s2)=0)p

12、uts(s1);26.若变量已正确定义,在 if(W)printf(“%d/n“,k);中,以下不可替代 W 的是_。(分数:2.00)A.ab+cB.ch=getchar()C.a=b+cD.a+27.有以下程序: #includestdio.h main() int a=2, b=-1, c=2; if(ab) if(b0) c=0; else c+=1; printf(“%d/n“, c); 程序的输出结果是(分数:2.00)A.0B.1C.2D.328.在下列模式中,能够给出数据库物理存储与物理存取方法的是_。(分数:1.00)A.外模式B.内模式C.概念模式D.逻辑模式29.有以下程

13、序 #includestdio.h #define S(x)4*(x)*x+1 main() int k=5,j=2; printf(“%d/n“,S(k+j); 程序运行后的输出结果是_。(分数:2.00)A.143B.197C.33D.2830.对于循环队列,下列叙述中正确的是(分数:2.00)A.队头指针是固定不变的B.队头指针一定大干队尾指针C.队头指针一定小于队尾指针D.队头指针可以大干队尾指针,也可以小于队尾指针二级 C 语言分类模拟题 580 答案解析(总分:47.50,做题时间:90 分钟)一、选择题(总题数:30,分数:47.50)1.以下程序的主函数中调用了在其面前定义的

14、fun 函数 # include stdio.h main() double a15,k; k=fun(a); (分数:1.00)A.double fun(double a15) B.double fun(double *a)C.double fun(double a)D.double fun(double a)解析:解析 由题可知 fun 的参数为变量,而 a15为常量,所以答案为 A。2.对于一个正常运行的 C 程序,以下叙述中正确的是_。(分数:1.00)A.程序的执行总是从 main 函数开始,在程序的最后一个函数中结束B.程序的执行总是从程序的第一个函数开始,在 main 函数结束C

15、.程序的执行总是从 main 函数开始 D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束解析:解析 任何一个 C 程序都是从主函数 main 开始,至主函数 main 结束,所以选择 C 选项。3.若有定义语句:char s10=“1234567/0/0“;,则 strlen(s)的值是_。(分数:2.00)A.7 B.8C.9D.10解析:解析 strlen(s)即求字符串 s 的长度,遇到“/0“时结束统计。因此选项 A 为正确答案。4.有以下程序: #includestdio.h int fun(int n) if(n)return fun(n-1)+n; else

16、return 0; main( ) printf(“%d/n“,fun(3); 程序的运行结果是_。(分数:1.00)A.4B.5C.6 D.7解析:解析 fun 函数是一个递归函数,调用 f(3),参数 n=3,返回 f(3-1)+3=f(2)+3=f(1)+2+3=f(0)+1+2+3=0+6=6。5.以下关于逻辑运算符两侧运算对象的叙述中正确的是_。(分数:1.00)A.可以是任意合法的表达式 B.只能是整数 0 或非 0 整数C.可以是结构体类型的数据D.只能是整数 0 或 1解析:解析 C 语言的逻辑运算符比较特别,它的操作数没有明确的数据类型,可以是任意合法的表达式,所以选择 A

17、选项。6.以下选项中,合法的 C 语言常量是_。(分数:1.00)A.21.84 B.“CPP“C.“/1.0D.2MB解析:解析 21.84 是典型的浮点型数据,故 A 选项正确;字符常量是单引号括起来的一个字符,字符串常量是双引号括起来的字符序列,B、C 选项错误;C 语言常量不能直接用未加引号的字母、数字组合,故 D 选项错误。7.若有定义 int a, b;,则用语句 scanf(“%d%d“, 输入 a, b 的值时,不能作为输入数据分隔符的是_。(分数:1.00)A., B.空格C.回车D.Tab 键解析:8.与数学表达式 xyz 对应的 C 语言表达式是_。(分数:2.50)A.

18、(x =y)|(y=x)B.(x=y=z)C.(x=y)!(y=z)D.(x=y) d=SUB(a+b)*c; printf(“%d/n“,d); 程序运行后的输出结果是_。(分数:2.00)A.0B.-12C.-20 D.10解析:解析 本题考查宏定义。宏定义只是做简单的替换,所以本题中执行语句 suB(a+b)*c=(a+b)-(a+b)c=-20,故答案为 C 选项。11.若有以下程序 #includestdio.h void fun(int a,int n) intt,i,j; for(i=1;in;i+=2) for(j=i+2;jn;j+=2) if(aiaj)t=ai;ai=aj

19、;aj=t; main() int c10=10,9,8,7,6,5,4,3,2,1,i; fun(c,10); for(i=0;i10;i+)printf(“%d,“,ci); printf(“n“); 则程序的输出结果是_。(分数:1.00)A.10,1,8,3,6,5,4,7,2,9, B.10,9,8,7,6,5,4,3,2,1,C.2,9,4,7,6,5,8,3,10,1,D.1,10,3,8,5,6,7,4,9,2,解析:解析 fun 函数功能为,把下标为奇数的元素按值的从小到大排列,所以答案选择 A。12.有三个关系 R、S 和 T 如下: (分数:1.00)A.笛卡儿积B交C并

20、D.自然连接 解析:解析 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,因此根据关系 T 中的有序组可知关系 R 与 S 进行的是自然连接操作,故本题答案为 D。13.有如下程序: #include stdio.h main() char*p1=0; int*p2=0; double*p3=0; printf(“%d,%d,%d/n“,sizeof(p1),sizeof(p2),sizeof(p3); 程序运行后的输出结果是_。(分数:1.00)A.4,4,4 B.1,4,8C.0,0,0D.1,2,4解析:解析 sizeof

21、函数用来获取类型或数据对象的长度,也即是一个这种数据类型的变量在内存中所占字节数。由于一个变量的地址也是一个值,因此就可以把这个地址值存放到另一个变量里保存。这种专门用来存放变量地址的变量,称为“指针变量”。所有类型的指针变量都是地址,所占字节数均为 4,故A 选项正确。14.一个 C 程序中_。(分数:2.00)A.main 函数必须出现在所有函数之前B.main 函数可以在任何地方出现 C.main 函数必须出现在所有函数之后D.main 函数必须出现在固定位置解析:解析 本题主要考查 main 函数的基本知识。main 函数可以出现在 C 程序的任何地方。15.以下叙述中错误的是_。(分

22、数:1.00)A.用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值 B.用户定义的函数中可以没有 return 语句C.用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D.函数的 return 语句中可以没有表达式解析:解析 return 语句结束函数,即使函数中有多个 return 语句,也只会执行一个,所以选项 A 错误。16.在 C 语言中,函数的隐含存储类别是 ( )(分数:1.00)A.auto B.staticC.externD.无存储类别解析:17.有以下程序: #include stdio.h #include stdl

23、ib.h int fun(int n) int * p; p=(int *)malloc(sizeof(int); *p=n; return * p; main() int a; a=fun(10); printf(“% d/n“, a+fun(a); 程序的运行结果是_。(分数:2.50)A.0B.10C.20 D.出错解析:解析 分配内存空间函数 malloc()的调用形式:(类型说明符*)malloc(size)。其功能是在内存的动态存储区中分配一块长度为“size”字节的连续区域,函数的返回值为该区域的首地址。“类型说明符”表示把该区域用于何种数据类型。18.有以下程序: #inclu

24、de stdio.h main() int a=-2, b=0; while(a+ printf(“%d, %d/n“, a, b); 程序运行后的输出结果是_。(分数:1.00)A.1,3B.0,2C.0,3D.1,2 解析:解析 输出的结果是:-1,1 0,2 1,219.有以下程序: #includestdio.h #includestdlib.h void fun(double*p1,double*p2,double*s) s=(double*)calloc(1,sizeof( double); *s=*p1+*(p2+1); main() double a2=1.1,2.2,b2=1

25、0.0,20.0,*s=a; fun(a,b,s); printf(“%5.2f/n“,*s); 程序运行后的输出结果是_。(分数:1.00)A.21.10B.11.10C.12.10D.1.10 解析:解析 本题考查把数组名作为函数参数,执行 fun 函数后,s 的值并没有发生变化,仍然是指向a,所以输出结果为 1.10,选项 D 正确。20.有如下程序: #include stdio.h main() int a = 0, b = 1; if(+a = b+) printf(“T“); else printf(“F“); printf(“a=%d,b=%d/n“,a,b); printf(

26、“/n“); 程序运行后的输出结果是_。(分数:1.00)A.Ta=0,b=1B.Fa=1,b=2C.Ta=1,b=2 D.Fa=0,b=2解析:解析 程序执行过程为:判断+a=b+是否成立,+a 前置运算先加 1,则 a=1,b+后置运算先取值,则 b=1,也即是判断 1=1,成立,输出 T,之后 b=2,输出 a=1,b=2。故 C 选项正确。21.以下程序的输出结果是_。 #include stdio.h void prt (int *x,int *y,int *z) printf(“%d,%d,%d/n“,+*x,+*y,*(z+); main() int a=10,b=40,c=20

27、; prt ( prt ((分数:2.50)A.11,42,3112,22,41B.11;41,2012,42,20 C.11,21,4011,21,21D.11,41,2112,42,22解析:解析 本题考查的是函数参数的传递及自加运算符。主函数中第一次调用函数“prt(”,此函数中的输出语句“printf(“%d,%d,%d/n“,+*x,+*y,*(z+);”使得 a 和 b 的值均加 1,而“*(z+)”由于先执行“z+”所以 c 的值不变;第二次调用函数“prt(”使得 a 和 b 在上一次的基础上再各自加 1(因为形参和实参进行的是地址传递),而 c 的值仍不变。22.若已定义:

28、int a=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *p=a, i; 其中 0i9,则对 a 数组元素的引用不正确的是_。(分数:2.50)A.ap-aB.*( i=M1+M2; printf(“% d/n“, i); 程序编译后运行的输出结果是_。(分数:2.50)A.10B.20C.25 D.30解析:24.下列关于数据库设计的叙述中,正确的是_。(分数:1.00)A.在需求分析阶段建立数据字典 B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典解析:解析 数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。2

29、5.若有定义语句: char*s1=“OK“,*s2=“ok“; 以下选项中,能够输出“OK“的语句是_。(分数:4.00)A.if(strcmp(s1,s2)=0)puts(s1); B.if(strcmp(s1,s2)!=0)puts(s2);C.if(strcmp(s1,s2)=1)puts(s1);D.if(strcmp(s1,s2)=0)puts(s1);解析:解析 strcmp 函数比较字符串大小,区分大小写,所以当 s1,s2 不相等输出 s1 就会输出“OK”,答案选择 A。26.若变量已正确定义,在 if(W)printf(“%d/n“,k);中,以下不可替代 W 的是_。(

30、分数:2.00)A.ab+c B.ch=getchar()C.a=b+cD.a+解析:解析 在 C 语言中,表示不等于不能用“”,而只能使用“!=”。其他选项均满足题目的要求。27.有以下程序: #includestdio.h main() int a=2, b=-1, c=2; if(ab) if(b0) c=0; else c+=1; printf(“%d/n“, c); 程序的输出结果是(分数:2.00)A.0B.1C.2 D.3解析:28.在下列模式中,能够给出数据库物理存储与物理存取方法的是_。(分数:1.00)A.外模式B.内模式 C.概念模式D.逻辑模式解析:解析 数据库领域公认

31、的标准结构是三级模式结构,它包括外模式、模式和内模式,有效地组织、管理数据,提高了数据库的逻辑独立性和物理独立性。用户级对应外模式,概念级对应模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。29.有以下程序 #includestdio.h #define S(x)4*(x)*x+1 main() int k=5,j=2; printf(“%d/n“,S(k+j); 程序运行后的输出结果是_。(分数:2.00)A.143 B.197C.33D.28解析:30.对于循环队列,下列叙述中正确的是(分数:2.00)A.队头指针是固定不变的B.队头指针一定大干队尾指针C.队头指针一定小于队尾指针D.队头指针可以大干队尾指针,也可以小于队尾指针 解析:解析 循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队尾指针是在不断变化的,有时可能会出现队头指针大于队尾指针的情况,也可能是队尾指针大于队头指针,故答案为 D)。

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

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

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