【计算机类职业资格】二级C语言分类模拟题546及答案解析.doc
《【计算机类职业资格】二级C语言分类模拟题546及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言分类模拟题546及答案解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言分类模拟题 546及答案解析(总分:65.00,做题时间:90 分钟)一、选择题(总题数:40,分数:65.00)1.有以下程序 #includestdio.h struct S int a,b;data2=10,100,20,200; main() struct S p=data1; printf(“%d/n“,+(p.a); 程序运行后的输出结果是_。(分数:2.00)A.21B.11C.20D.102.有以下程序(说明:字母 A的 ASCII码值是 65): #includestdio.h void fun(char*s) while(*s) if(*s%2)printf(“
2、%c“,*s); s+; main() char a()=“BYTE“; fun(a); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.BTB.YEC.YTD.BY3.可在 C程序中用作用户标识符的一组标识符是_。(分数:2.00)A.void define WORDB.as_b3 _123 IfC.For abc caseD.2c DO SIG4.下面 for语句的循环次数为_。 for(x=1, y=0; (y!=19) x+);(分数:2.50)A.是无限循环B.循环次数不定C.最多执行 6次D.最多执行 5次5.下面描述中,不属于软件危机表现的是_。(分数
3、:1.50)A.软件过程不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高6.下列叙述中正确的是_。(分数:1.00)A.对长度为 n的有序链表进行查找,最坏情况下需要的比较次数为 nB.对长度为 n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C.对长度为 n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D.对长度为 n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)7.以下选项中不能用作 C程序合法常量的是_。(分数:2.00)A.1,234B./123C.123D.“/x7G“8.若函数调用时的实参为变量时,以下关于函数形
4、参和实参的叙述中正确的是_。(分数:2.50)A.函数的实参和其对应的形参共占同一存储单元B.形参只是形式上的存在,不占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的形参和实参分别占用不同的存储单元9.对关系 S和关系 R进行集合运算,结果中既包含关系 S中的所有元组也包含关系 R中的所有元组,这样的集合运算称为_。(分数:2.50)A.并运算B.交运算C.差运算D.除运算10.有以下程序 #includestdio.h main() int i,j,x=0; for(i=0;i2;i+) x+; for(j=0;j=3;j+) if(j%2)continue; x+; x+; p
5、rintf(“x=%d/n“,x); 程序执行后的输出结果是_。(分数:2.00)A.x=8B.x=4C.x=6D.x=1211.设有条件表达式:(EXP)?i+;j-,则以下表达式中(EXP)完全等价的是_。(分数:2.00)A.(EXP=0)B.(EXP!=0)C.(EXP=1)D.(EXP!=1)12.以下定义语句中正确的是_。(分数:1.00)A.char a=“A“b=“B“;B.flo at a=b=10.0;C.int a=10,*b=D.float *a,b=13.以下程序的输出结果是_。 main() int a=3; printf(“%d/n“, (a+a-=a*a); (
6、分数:2.50)A.-6B.12C.0D.-1214.有三个关系 R、S 和 T如下: R A B C a 1 2 b 2 1 c 3 1 S A D c 4 T A B C D c 3 1 4 则由关系 R和 S得到关系 T的操作是_。(分数:2.00)A.自然连接B交C.投影D并15.请读程序段: char str=“ABCD“,*p=str, printf(“%d/n“,*(p+4); 程序段的输出结果是_。(分数:1.00)A.68B.0C.字符“D“的地址D.不确定的值16.以下程序段中有语法错误的是_。(分数:2.00)A.fun(char aa1()while(*aa)print
7、f(“%c“,*aa+);B.fun(chatr*aa)while(aa0)printf(“%c“,*aa+);C.main()char*aa=“Hello!“;while(*aa)printf(“%c“,*aa+);D.main()char aa10=“Hello!“;while(*aa)printf(“%c“,*aa+); 17.有以下程序: main() int e=2,4,6,8,10,y=0,x,*p; p=a1; for(x=1;x3;x+)y+=px; printf(“%d/n“,y); 程序运行后的输出结果是_。(分数:2.00)A.10B.11C.14D.1518.有以下程序
8、: #include stdio.h int a =4; int f(int n) int t = 0; static int a=5; if (n%2) int a=6; t + = a+ +; else int a=7; t + = a+ +; return t + a+ +; main( ) int s=a, i=0; for (; i2;i+ +) s + = f(i); printf(“%d/n“, s) ; 程序运行后的输出结果是_。(分数:2.50)A.36B.24C.32D.2819.有以下程序段: FILE*fp; if(fp=fopen(“test.txt“,“w“)=NU
9、LL) printf(“不能打开文件!“); exit(0); else printf(“成功打开文件!“); 若指定文件 test.txt不存在,且无其他异常,则以下叙述错误的是_。(分数:1.00)A.输出“不能打开文件!”B.输出“成功打开文件!”C.系统将按指定文件名新建文件D.系统将为写操作建立文本文件20.有以下程序: #include stdio.h main( ) int a =2,4,6,8, *p=a,i; for(i=0;i4;i+) ai=*p+; printf(“%d/n“,a2); 程序的输出结果是_。(分数:1.00)A.2B.8C.4D.621.以下程序段中的变
10、量已正确定义 for(i=0;i4;i+,i+) for(k=1;k3;k+);printf(“*“); 程序段的输出结果是_。(分数:1.00)A.* *B.*C.*D.*22.有以下程序: #include stdio.h void f(int x,int n) if(n1) f( printf(“%d,“,x0); else printf(“%d,“,x 0); main() int z6=1,2,3,4,5,6; f(z,6); printf(“/n“); 程序的运行结果是_。(分数:1.00)A.6,5,4,3,2,1,B.1,1C.1,1,1,1,1,1,D.1,2,3,4,5,6
11、,23.以下叙述中错误的是_。(分数:2.00)A.C语言的可执行程序是由一系列机器指令构成的B.用 C语言编写的源程序不能直接在计算机上运行C.通过编译得到的二进制目标程序需要连接才可以运行D.在没有安装 C语言集成开发环境的机器上不能运行 C源程序生成的.exe 文件24.下列对于线性链表的描述中正确的是 _。(分数:2.00)A.存储空间不一定是连续,且各元素的存储顺序是任意的B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且各前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的25.以下定义数组的语句中错误的是_。(分数:2
12、.00)A.int num24=1,2,3,4,5,6B.int num3=1,2,3,4,5,6);C.int num=1,2,3,4,5,6;D.int num4=1,2,3,4,5,6;26.下列选项中不能作为 C语言合法常量的是 _ 。(分数:1.00)A.“cd“B.0.1e+6C.“/a“D.“/011“27.设有 int x=11;则表达式(x+*1/3)的值是_。(分数:1.00)A.3B.4C.11D.1228.若有以下类型说明语句: char w;int x;flooat y,z; 则表达式 w*x+z-y的结果为_类型。(分数:1.00)A.floatB.charC.in
13、tD.double29.现在有以下定义,int a;double b;float c;char k;则下面的表达式 a/b+c-k值的类型为:(分数:1.00)A.intB.doubleC.floatD.char30.若有以下程序: #include stdio.h int f(int m) static int n=0; int a=2; n+ +; a+ +; return n+m+a; main( ) int k; for.(k=0; k4; k+ +) printf(“%d,“, f(k); 则程序的输出结果是_。(分数:2.00)A.3,5,7,9,B.4,7,10,13,C.4,5
14、,6,7,D.4,6,8,10,31.有以下定义:“int a; long b; double x, y;”,则以下选项中正确的表达式是_。(分数:1.00)A.a%(int x-y)B.a=x!=y;C.(a*y)%bD.y=x+y=x32.已知下列函数定义: fun(int *b,int c,int n,int data) int k; for(k=0;km*n;k+) *b=data; b+; 则调用此函数的正确写法是(假设变量 a的说明为 int a50)_。(分数:2.50)A.fun(*a,4,5,1);B.fun(C.fun(int*)a,4,5,1);D.fun(a,4,5,1
15、);33.设 q1和 q2是指向一个 int型一维数组的指针变最,k 为 float型变量,下列小能正确执行的语句是 _ 。(分数:2.00)A.k=*q1*(*q2);B.q1=k;C.q1=q2;D.k=*q1+*q2;34.设有如下关系表: (分数:2.50)A.T=R/SB.T=RSC.T=RSD.T=RS35.下列判断正确的是 _ 。(分数:1.00)A.chara=“ABCD“;等价于 char*a;*a=“ABCD“;B.char str10=“ABCD“;等价于 char str10;str=“ABCD“;C.char*s=“ABCD“;等价于 char s;*s=“ABCD“
16、;D.charc5=“ABCD“,d5=“ABCD“;等价于 char c5=d5=“ABCD“;36.在软件设计中不使用的工具是_。(分数:1.00)A.系统结构图B.程序流程图C.PAD图D.数据流图(DFD 图)37.某二叉树中有 n个度为 2的结点,则该二叉树中的叶子结点数为_。(分数:1.00)A.n+1B.n-1C.2nD.n/238.有以下程序 #include stdio.h main() int n,*p=NULL; *p= printf(“Input n:“); scanf(“%d“, printf(“output n:“); printf(“%d/n“,p); 该程序试图
17、通过指针 p为变量 n读入数据并输出,但程序有多处错误,以下语句正确的是_。(分数:1.00)A.int n,*p=NULL;B.*p=C.scanf(“%d“,39.以下关于 C语言数据类型使用的叙述中错误的是_。(分数:1.00)A.若只处理“真”和“假”两种逻辑值,应使用逻辑类型B.若要保存带有多位小数的数据,可使用双精度类型C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D.整数类型表示的自然数是准确无误差的40.在数据结构中,从逻辑结构上看可以分成_。(分数:2.00)A.动态结构和静态结构B.线性结构和非线性结构C.内部结构和外部结构D.紧凑结构和非紧凑结构二
18、级 C语言分类模拟题 546答案解析(总分:65.00,做题时间:90 分钟)一、选择题(总题数:40,分数:65.00)1.有以下程序 #includestdio.h struct S int a,b;data2=10,100,20,200; main() struct S p=data1; printf(“%d/n“,+(p.a); 程序运行后的输出结果是_。(分数:2.00)A.21 B.11C.20D.10解析:解析 声明 data 是结构体型 S的数组。初始化时 data0.a=10; data0.b=100;data1.a=20;data1.b=200。主函数中 p=data1 ;
19、 即 p.a=data1.a;p.b=data1.b;执行语句printf(“%dn“,+(p.a); 打印输出时 p.a 先增 1再打印。即 p.a = data1.a=20,先增 1等于 21,因此程序运行结果是 21。2.有以下程序(说明:字母 A的 ASCII码值是 65): #includestdio.h void fun(char*s) while(*s) if(*s%2)printf(“%c“,*s); s+; main() char a()=“BYTE“; fun(a); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.BTB.YE C.YTD.BY
20、解析:解析 本题中执行 fun(a)时,会取字符串 a的第一个字母 B,因为字母 B的 ASCII码值为 66,所以不会输出字母 B,函数只会输出 ASCII码值为奇数的字母,字母 Y的 ASClI码值为 89,字母 T的 ASCII码值为 84,字母 E的 ASCII码值为 69,因此 B选项正确。3.可在 C程序中用作用户标识符的一组标识符是_。(分数:2.00)A.void define WORDB.as_b3 _123 If C.For abc caseD.2c DO SIG解析:4.下面 for语句的循环次数为_。 for(x=1, y=0; (y!=19) x+);(分数:2.50
21、)A.是无限循环B.循环次数不定C.最多执行 6次D.最多执行 5次 解析:解析 本题考查 for循环的使用。根据条件考虑 x的取值变化,x 从 1取到 5,可以循环 5次,但并不知道 y如何变化,有可能出现 y=19提前跳出循环的情况,所以最多执行 5次。5.下面描述中,不属于软件危机表现的是_。(分数:1.50)A.软件过程不规范 B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高解析:解析 软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的
22、增长。因此本题答案为 A。6.下列叙述中正确的是_。(分数:1.00)A.对长度为 n的有序链表进行查找,最坏情况下需要的比较次数为 nB.对长度为 n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C.对长度为 n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n) D.对长度为 n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)解析:解析 二分法查找只适用于顺序存储的有序表,对于长度为 n的有序线性表,最坏情况只需比较log 2 n次。7.以下选项中不能用作 C程序合法常量的是_。(分数:2.00)A.1,234 B./123C.123D.“/x7
23、G“解析:解析 选项 A中的 1,234在两侧加双引号才是 C程序的合法常量。8.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是_。(分数:2.50)A.函数的实参和其对应的形参共占同一存储单元B.形参只是形式上的存在,不占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的形参和实参分别占用不同的存储单元 解析:解析 在 C语言中,函数的实参单元与形参单元在内存中分配不同的存储单元。9.对关系 S和关系 R进行集合运算,结果中既包含关系 S中的所有元组也包含关系 R中的所有元组,这样的集合运算称为_。(分数:2.50)A.并运算 B.交运算C.差运算D.除运算解析:
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 分类 模拟 546 答案 解析 DOC
