【计算机类职业资格】二级C语言分类模拟题540及答案解析.doc
《【计算机类职业资格】二级C语言分类模拟题540及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言分类模拟题540及答案解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言分类模拟题 540 及答案解析(总分:54.50,做题时间:90 分钟)一、选择题(总题数:40,分数:54.50)1.若有定义:int a,b,c;以下程序段的输出结果是_。 a=11;b=3;c=0; printf(“%d/n“,c=(a/b,a%b);(分数:1.00)A.2B.0C.3D.12.C 语言中,下列不合法的字符常量是_。(分数:1.00)A.“/xff“B.“/65“C.“ if(a+ else printf(“F“); printf(“a=%d,b=%d/n“,a,b); 程序运行后的输出结果是_。(分数:1.00)A.Ta=1,b=2B.Fa=0,b=2C
2、.Fa=1,b=1D.Ta=0,b=15.在 C 语言中引用数组元素时,其数组下标的数据类型只能是 _ 。(分数:1.00)A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式6.以下选项中关于程序模块化的叙述错误的是_。(分数:1.00)A.把程序分成若干相对独立的模块,可便于编码和调试B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C.可采用自低向上、逐步细化的设计方法把若干独立模块组装成所要求的程序D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序7.有以下程序: #include stdio.h int fun() static
3、int x=1; x*=2; return x; main( ) int i,s=1; for(i=1; i=3; i+ +) s*=fun(); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:2.50)A.10B.30C.0D.648.以下说法不正确的是_。(分数:2.00)A.C 程序是以函数为基本单位的,整个程序由函数组成B.C 语言程序的一条语句可以写在不同的行上C.C 程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写D.C 程序的每个语句都以分号结束9.有以下程序: #includestdio.h #includestdlib.h void f
4、un(int*p1,int*p2,int*s) s=(int*)calloc(1,sizeof(int); *s=*p1+*p2; free(s); main() int a2=1,2,b2=140,501,*q=a; fun(a,b,q); printf(“%d/n“,*q); 程序运行后的输出结果是_。(分数:1.00)A.42B.41C.1D.010.有下列程序: #includestdio.h main() int a=6,i; for(i=1;i=3;i+) if(a5)break; if(a%2)a+=2;continue; a=a+4; printf(“%d,%d“,i,a);
5、程序执行后的输出结果是_。(分数:1.00)A.4,9B.3,18C.4,18D.4,211.下列说法正确的是_。(分数:1.00)A.条件运算符是单目运算符B.条件运算符是双目运算符,因为它有 2 个运算符号C.条件运算符是三目运算符,因为它有 3 个运算对象D.条件运算符的优先级高于赋值运算符和逻辑运算符12.若有定义: float x=1.5; int a=1,b=3,c=2; 则正确的 switch 语句是_。(分数:2.50)A.switch(a+b)case 1:printf(“*/n“);case 2+1:printf(“*/n“);B.switch(int)x);case 1:
6、 printf(“*/n“);case 2: printf(“*/n“);C.switch(x)case 1.0:printf(“*/n“);case 2.0:printf(“*/n);D.switch(a+b)case 1: printf(“*/n“);case c: printf(“*/n“);13.有以下程序: #includestdio.h main() int k=5; while(-k) printf(“%d“,k-=3); printf(“/n“); 执行后的输出结果是_。(分数:2.50)A.1B.2C.4D.死循环14.有以下程序: #includestdio.h ain()
7、 int a=3; a+=a-=a*a; printf(“%d/n“,a); 程序运行后的输出结果是_。(分数:1.00)A.0B.9C.3D.-1215.在软件开发中,需求分析阶段产生的主要文档是_。(分数:1.00)A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划16.以下叙述正确的是 _ 。(分数:1.00)A.在 C 语言程序中,main 函数必须位于程序的最前面B.C 语言程序的每行中只能写一条语句C.C 语言本身没有输入输出语句D.在对一个 C 语言程序进行编译的过程,可发现注释中的拼写错误17.有三个关系 R、S 和 T 如下: R A B C a 1
8、2 b 2 1 c 3 1 S A D c 4 T A B C D c 3 1 4 则由关系 R 和 S 得到关系 T 的操作是_。(分数:1.00)A.自然连接B交C.投影D并18.表达式 3.6-5/2+1.2+5%2 的值是_。(分数:1.00)A.3.8B.4.8C.3.3D.4.319.以下选项中表示一个合法的常量是(说明:符号口表示空格)_。(分数:1.00)A.999B.0XabC.123E0.2D.2.7e20.概要设计中要完成的任务是_。(分数:2.50)A.系统结构和数据结构的设计B.系统结构和过程的设计C.过程和接口的设计D.数据结构和过程的设计21.设有定义: stru
9、ct complex int real.unreal; data1=1,8,data2; 则以下赋值语句中错误的是_。(分数:2.00)A.data2=data1;B.data2=(2,6);C.data2.real=data1.real;D.data2.real=data1.unreal;22.已知字符A的 ASCII 代码值是 65,字符变量 c1 的值是A,c2 的值是D。则执行语句printf(“%d,%d“,c1,c2-2);的输出结果是_。(分数:1.00)A.65,68B.A,68C.A,BD.65,6623.以下选项中叙述错误的是_。(分数:2.00)A.在 C 程序的同一函数
10、中,各复合语句内可以定义变量,其作用域仅限本复合语句内B.C 程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值C.C 程序函数中定义的自动变量,系统不自动赋确定的初值D.C 程序函数的形参不可以说明为 static 型变量24.以下程序的执行结果是_。 #include stdio.h union un int i; char c2; main() union un x; x.c0=10; x.c1=1; printf(“/n% d“, x.i); (分数:2.50)A.266B.11C.265D.13825.逻辑模型是面向数据库系统的模型,下面属于逻辑模型的是_。(分数:1.0
11、0)A.关系模型B.谓词模型C.物理模型D.实体联系模型26.对两个数组 a 和 b 进行下列初始化: char m=“1234567“; char n=“1“, “2“, “3“, “4, “5“, “6“, “7“; 则下列叙述正确的是_。(分数:2.50)A.数组 m 与数组 n 完全相同B.数组 m 与数组 n 长度相同C.数组 m 比数组 n 长 1D.数组 m 与数组 n 中都存放字符串27.有以下程序: #include stdio.h int fun(int a,int b) static int m=0, i=2; i+=m+1; m=i+a+b; return m; mai
12、n() int k=4, m=1, p; p = fun(k,m); printf(“%d,“ .p); p = fun(k,in); printf(“%d/n“ ,p); 程序运行后的输出结果是_。(分数:1.00)A.8,17B.8,16C.8,8D.8,2028.有以下程序: # include stdio.h # define N 3 void fun(int aN,int b) int i,j; for(i=0;iN;i+) bi=ai0; for(j=i;jN;j+) if(biaij) bi=aij; main() int XNN=1,2,3,4,5,6,7,8,9, yN,i;
13、 fun(x,y); for(i=0;iN;i+) printf(“%d,“,yi); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.2,4,8,B.3,6,9,C.3,5,7,D.1,3,5,29.有以下程序 #include stdio.h void fun2(char a,char b) printf(“%c%c“,a,b); char a=“A“,b=“B“; void fun1() a=“C“; b=“D“; main() fun1(); printf(“%c%c“,a,b); fun2(“E“,“F“); 程序的运行结果是_。(分数:1.00)A.C
14、D E FB.A B E FC.A B C DD.C D A B30.以下能够实现计算 5!的程序段是_。(分数:1.00)A.int fac=1,k=0;dok+;fac*=k;while(k5);B.int fac=0,k=1;dofac*=k;k+;while(k5);C.int fac=1,k=1;dok+;fac*=k;while(k=5);D.int fac=1,k=0;dofac*=k;k+;while(k5);31.以下对 C 语言函数的叙述中正确的是_。(分数:1.00)A.调用函数时,只能把实参的值传给形参,形参的值不能传给实参B.函数既能嵌套定义,又能递归定义C.函数必须
15、有返回值,否则不能使用D.程序中有调用关系的所有函数必须放在同一个源程序中32.以下程序段中的变量已定义为 int 类型,则 sum = pad = 5; pAd = sum+, pAd+, +pAd; printf(“%d/n“, pad); 程序段的输出结果是_。(分数:1.00)A.6B.4C.5D.733.下列叙述中正确的是_。(分数:1.00)A.为了建立一个关系,首先要构造数据的逻辑关系B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项C.一个关系的属性名表称为关系模式D.一个关系可以包括多个二维表34.不合法的十六进制数是(分数:2.00)A.oxffB.0XabcC.
16、0x11D.0x1935.以下叙述中正确的是_。(分数:1.00)A.在一个程序中,允许使用任意数量的#include 命令行B.在包含文件中,不得再包含其他文件C.#include 命令行不能出现在程序文件的中间D.虽然包含文件被修改了,包含该文件的源程序也可以不重新进行编译和连接36.若有定义:“double a=22;int i=0,k=18;”,则不符合 C 语言规定的赋值语句是 _ 。(分数:1.00)A.a=a+,i+;B.i=(a+k)=(i+k);C.i=a%11;D.i=!a;37.有以下程序 #includestdio.h main() int a=1,b=3,c=5; i
17、nt*p1= *p=*p1*(*p2); printf(“%d/n“,c); 执行后的输出结果是_。(分数:1.00)A.4B.2C.1D.338.执行语句“for(i=1; i+4; );”后,变量 i 的值是_。(分数:2.50)A.3B.4C.5D.不定39.有以下程序: #includestdio.h main() char c6; int i=0; for(;i6;ci=getchar(),i+); for(i=O;i6;i+)putchar(ci); printf(“/n“); 如果从键盘上输入: ab回车 c回车 def回车 则输出结果为_。(分数:1.00)AaBaC.abD.
18、abcdefb b cc c dd def40.有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x 的值不为 3 的是(分数:1.00)A.if (ca) x=1;else if (ba) x=2;else x=3;B.if (a3) x=3;else if (ba) x=2;else x=1;C.if (aD.if (ab) x=b;if (bc) x=c;if (ca) x=a;二级 C 语言分类模拟题 540 答案解析(总分:54.50,做题时间:90 分钟)一、选择题(总题数:40,分数:54.50)1.若有定义:int a,b,c;以下程序段的输出结果是
19、_。 a=11;b=3;c=0; printf(“%d/n“,c=(a/b,a%b);(分数:1.00)A.2 B.0C.3D.1解析:解析 C 语言中,逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式。逗号运算符的优先级是所有运算符中级别最低的,逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算,并以最右边表达式的值作为整个逗号表达式的值。因此变量 c 的值为 a%b 即 11%3=2。故答案为A 选项。2.C 语言中,下列不合法的字符常量是_。(分数:1.00)A.“/xff
20、“B.“/65“C.“ if(a+ else printf(“F“); printf(“a=%d,b=%d/n“,a,b); 程序运行后的输出结果是_。(分数:1.00)A.Ta=1,b=2B.Fa=0,b=2C.Fa=1,b=1 D.Ta=0,b=1解析:解析 程序中判断 if 条件是否成立,a+先取值为 0,则(a+ x*=2; return x; main( ) int i,s=1; for(i=1; i=3; i+ +) s*=fun(); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:2.50)A.10B.30C.0D.64 解析:解析 在本题中,静态局部变量
21、 x 在静态存储区内分配存储单元,在程序整个运行期间都不释放。所以第一次循环 s 的值为 2,在第二次循环中,返回的 x 的值为 4,所以 s 的值为 8,第三次循环,返回的 x 的值为 8,所以 s 的值为 64。8.以下说法不正确的是_。(分数:2.00)A.C 程序是以函数为基本单位的,整个程序由函数组成B.C 语言程序的一条语句可以写在不同的行上C.C 程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写 D.C 程序的每个语句都以分号结束解析:9.有以下程序: #includestdio.h #includestdlib.h void fun(int*p1,int*p2,
22、int*s) s=(int*)calloc(1,sizeof(int); *s=*p1+*p2; free(s); main() int a2=1,2,b2=140,501,*q=a; fun(a,b,q); printf(“%d/n“,*q); 程序运行后的输出结果是_。(分数:1.00)A.42B.41C.1 D.0解析:解析 本题考查把数组名作为函数参数。执行 fun 函数后,s 的值并没有发生变化,仍然是指向a,所以输出结果为 1,选项 C 正确。10.有下列程序: #includestdio.h main() int a=6,i; for(i=1;i=3;i+) if(a5)brea
23、k; if(a%2)a+=2;continue; a=a+4; printf(“%d,%d“,i,a); 程序执行后的输出结果是_。(分数:1.00)A.4,9B.3,18C.4,18 D.4,2解析:解析 main()函数中,a 的初值为 6,for 循环首先判断 i 的值是否小于 5,若小于 5。执行 break语句终止循环;若不小于 5,接着判断 a 的奇偶性,若 a 是奇数,将 a 自增 2 后执行 continue 语句,执行下一轮循环;若 a 是偶数,将 a 自增 4;可见无论程序如何执行,a 的值只会增不会减。所以 for 循环过程中,两个 if 语句都不会执行,每次都是将 a
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 分类 模拟 540 答案 解析 DOC
