《2017年全国计算机等级考试二级C语言真题及答案.pdf》由会员分享,可在线阅读,更多相关《2017年全国计算机等级考试二级C语言真题及答案.pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2017 年全国计算机等级考试二级 C 语言真题及答案全国计算机等级考试二级笔试试卷全国计算机等级考试二级笔试试卷C C 语言程序设计(附答案)语言程序设计(附答案)(考试时间 90 分钟,满分 100 分)一、选择题(1)(10)、(21)(40)每题2 分,(11)(20)每题1 分,共70 分)下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项填涂在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C)线性表的链式存储结构所需
2、要的存储空间一般要少于顺序存储结构D)上述三种说法都不对(2)下列叙述中正确的是A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 D)上述三种说法都不对(3)软件测试的目的是A)评估软件可靠性B)发现并改正程序中的错误C)改正程序中的错误D)发现程序中的错误(4)下面描述中,不属于软件危机表现的是A)软件过程不规范 B)软件开发生产率低 C)软件质量难以控制 C)软件成本不断提高(5)软件生命周期是指A)软件产品从提出、实现、使用维护到停止使用退役过程B)软件从需
3、求分析、设计、实现到测试完成的过程C)软件的开发过程D)软件的运行维护过程(6)面向对象方法中,继承是指A)一组对象所具有的相似性质B)一个对象具有另一个对象的性质C)各对象之间的共同性质D)类之间共享属性和操作的机制(7)层次型、网状型和关系型数据库划分原则是A)记录长度 B)文件的大小 B)联系的复杂程度 D)数据之间的联系方式(8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员 与实体计算机之间联系是A)一对一 B)一对多 C)多对多 D)多对一(9)数据库设计中反映用户对数据要求的模式是A)内模式 B)概念模式 C)外模式 D)设计模式(10)有三个关系 R
4、、S 和 T 如下:2017 年全国计算机等级考试二级 C 语言真题及答案RSTAabcB123C211AcD4AcB3C1D则由关系 R 和 S 得到关系 T 的操作是A)自然连接 B)交 C)投影 D)并(11)以下关于结构化程序设计的叙述中正确的是A)一个结构化程序必须同时由顺序、分支、循环三种结构组成B)结构化程序使用 goto 语句会很便捷C)在 C 语言中,程序的模块化是利用函数实现的D)由三种基本结构构成的程序只能解决小规模的问题(12)以下关于简单程序设计的步骤和顺序的说法中正确的是A)确定算法后,整理并写出文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码
5、,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构(13)以下叙述中错误的是A)C 程序在运行过程中所有计算都以二进制方式进行B)C 程序在运行过程中所有计算都以十进制方式进行C)所有 C 程序都需要编译链接无误后才能进行D)C 程序中整型变量只能存放整数,实型变量只能存放浮点数(14)有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是A)a%(int)(x-y)B)a=x!=y;C)(a*y)%b D)y=x+y=x(15)以下选项中能表示合法常量
6、的是A)整数:1,200 B)实数:1.5E2.0 C)字符斜杠:D)字符串:”007”(16)表达式 a+=a-=a=9 的值是A)9 B)-9 C)18 D)0(17)若变量已正确定义,在if(W)printf(“%dn”,k);中,以下不可替代 W 的是A)ab+c B)ch=getchar()C)a=b+c D)a+(18)有以下程序#includemain()int a=1,b=0;if(!a)b+;else if(a=0)if(a)b+=2;else b+=3;2017 年全国计算机等级考试二级 C 语言真题及答案printf(“%dn”,b);程序运行后的输出结果是A)0 B)1
7、 C)2 D)3(19)若有定义语句int a,b;double x;则下列选项中没有错误的是A)switch(x%2)case 0:a+;break;case 1:b+;break;default:a+;b+;B)switch(int)x/2.0)case 0:a+;break;case 1:b+;break;default:a+;b+;C)switch(int)x%2)case 0:a+;break;case 1:b+;break;default:a+;b+;D)switch(int)(x)%2)case 0.0:a+;break;case 1.0:b+;break;default:a+;
8、b+;(20)有以下程序#includemain()int a=1,b=2;while(a6)b+=a;a+=2;b%=10;printf(“%d,%dn”,a,b);程序运行后的输出结果是A)5,11 B)7,1 C)7,11 D)6,1(21)有以下程序#includemain()int y=10;while(y-);printf(“y=%dn”,y);程序执行后的输出结果是A)y=0 B)y=-1 C)y=1 D)while 构成无限循环(22)有以下程序#include2017 年全国计算机等级考试二级 C 语言真题及答案main()char s=”rstuv”;printf(“%cn
9、”,*s+2);程序运行后的输出结果是A)tuv B)字符 t 的 ASCII 值 C)t D)出错(23)有以下程序#include#include main()char x=”STRING”;x0=0;x1=0;x2=0;printf(“%d%dn”,sizeof(x),strlen(x);程序运行后的输出结果是A)6 1 B)7 0 C)6 3 D)7 1(24)有以下程序#includeint f(int x);main()int n=1,m;m=f(f(f(n);printf(“%dn”,m);int f(int x)return x*2;程序运行后的输出结果是A)1 B)2 C)4
10、 D)8(25)以下程序段完全正确的是A)int*p;scanf(“%d”,&p);B)int*p;scanf(“%d”,p);C)int k,*p=&k;scanf(“%d”,p);D)int k,*p;*p=&k;scanf(“%d”,p);(26)有定义语句:int*p4;以下选项中与此语句等价的是A)int p4;B)int*p;C)int*(p4);D)int(*p)4;(27)下列定义数组的语句中,正确的是A)int N=10;B)#define N 10 int xN;int xN;C)int x0.10;D)int x;(28)若要定义一个具有 5 个元素的整型数组,以下错误的
11、定义语句是A)int a5=0;B)int b=0,0,0,0,0;C)int c2+3;D)int i=5,di;(29)有以下程序#includevoid f(int*p);main()2017 年全国计算机等级考试二级 C 语言真题及答案 int a5=1,2,3,4,5,*r=a;f(r);printf(“%dn”,*r);void f(int*p)p=p+3;printf(“%d,”,*p);程序运行后的输出结果是A)1,4 B)4,4 C)3,1 D)4,1(30)有以下程序(函数fun 只对下标为偶数的元素进行操作)#includevoid fun(int*a,int n)int
12、 i,j,k,t;for(i=0;in-1;i+=2)k=i;for(j=i;jak)k=j;t=ai;ai=ak;ak=t;main()int aa10=1,2,3,4,5,6,7,i;fun(aa,7);for(i=0;i7;i+)printf(“%d,”,aai);printf(“n”);程序运行后输出结果是A)7,2,5,4,3,6,1,B)1,6,3,4,5,2,7,C)7,6,5,4,3,2,1,D)1,7,3,5,6,2,1,(31)下列选项中,能够满足“若字符串 s1 等于字符串 s2,则执行 ST”要求的是A)if(strcmp(s2,s1)=0)ST;B)if(s1=s2)
13、ST;C)if(strcpy(s1,s2)=1)ST;D)if(s1-s2=0)ST;(32)以下不能将 s 所指字符串正确复制到t 所指存储空间的是A)while(*t=*s)t+,s+;B)for(i=0;ti=si;i+);C)do*t+=*s+;while(*s);D)for(i=0,j=0;ti+=sj+;);(33)有以下程序(strcat 函数用以连接两个字符串)#include#include main()char a20=”ABCD0EFG0”,b=”IJK”;strcat(a,b);printf(“%sn”,a);2017 年全国计算机等级考试二级 C 语言真题及答案程序运
14、行后的输出结果是A)ABCDEOFGOIJK B)ABCDIJK C)IJK D)EFGIJK(34)有以下程序,程序中库函数islower(ch)用以判断 ch 中的字母是否为小写字母#include#include void fun(char*p)int i=0;while(pi)if(pi=&islower(pi-1)pi-1=pi-1-a+A;i+;main()char s1100=”ab cd EFG!”;fun(s1);printf(“%sn”,s1);程序运行后的结果是A)ab cd EFG!B)Ab Cd EFg!C)aB cD EFG!D)ab cd EFg!(35)有以下程
15、序#includevoid fun(int x)if(x/21)fun(x/2);printf(“%d”,x);main()fun(7);printf(“n”);程序运行后的输出结果是A)1 3 7 B)7 3 1 C)7 3 D)3 7(36)有以下程序#includeint fun()static int x=1;x+=1;return x;main()int i,s=1;for(i=1;i=5;i+)s+=fun();2017 年全国计算机等级考试二级 C 语言真题及答案printf(“%dn”,s);程序运行后的输出结果是A)11 B)21 C)6 D)120(37)有以下程序#inc
16、lude#include main()int*a,*b,*c;a=b=c=(int*)malloc(sizeof(int);*a=1;*b=2;*c=3;a=b;printf(“%d,%d,%dn”,*a,*b,*c);程序运行后的输出结果是A)3,3,3 B)2,2,3 C)1,2,3 D)1,1,3(38)有以下程序#includemain()int s,t,A=10;double B=6;s=sizeof(A);t=sizeof(B);printf(“%d,%dn”,s,t);在 VC6 平台上编绎运行,程序运行后输出结果是A)2,4 B)1,4 C)4,8 D)10,6(39)若有以下
17、语句typedef struct Sint g;char h;T;以下叙述中正确的是A)可用 S 定义结构体变量 B)可用 T 定义结构体变量 C)S 是 struct 类型的变量 D)T 是struct S 类型的变量(40)有以下程序#includemain()short c=124;c=c;printf(“%dn”,c);若要使程序的运行结果为248,应在下划线处填入的是A)2 B)|248 C)&0248 D)1二、填空题(每空2 分,共30 分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。2017 年全国计算机等级考试二级 C 语言真题及答案(1)一个
18、栈的初始状态为空。首先将元素5,4,3,2,1 依次入栈,然后退栈一次,再将元素A,B,C,D 依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为【1】。(2)在长度为 n 的线性表中,寻找最大项至少需要比较【2】次。(3)一棵二叉树有 10 个度为 1 的结点,7 个度为 2 的结点,则该二叉树共有【3】个结点。(4)仅由顺序、选择(分支)和重复(循环)结构构成的程序是【4】程序。(5)数据库设计的四个阶段是:需求分析,概念设计,逻辑设计和【5】。(6)以下程序运行后输出结果是【6】。#include main()int a=200,b=010;printf(“%
19、d%dn”,a,b);(7)有以下程序#includemain()int x,y;scanf(“%2d%ld”,&x,&y);printf(“%dn”,x+y);程序运行时输入:1234567,程序的运行结果是【7】。(8)在 C 语言中,当表达式值为 0 时表示逻辑值“假”,当表达式为【8】时表示逻辑值“真”。(9)有以下程序#includemain()int i,n=0,0,0,0,0;for(i=1;i=4;i+)ni=ni-1*3+1;printf(“%d”,ni);程序运行后输出结果是【9】。(10)以下 fun 函数的功能是:找出具有N 个元素的一维数组中的最小值,并作为 函数值返
20、回,请填空。(设 N 已定义)int fun(int xN)int i,k=0;for(i=0;iN;i+)if(xixk)k=【10】;return xk;(11)有以下程序#include int*f(int*p,int*q);main()2017 年全国计算机等级考试二级 C 语言真题及答案 int m=1,n=2,*r=&m;r=f(r,&n);printf(“%dn”,*r);int*f(int*p,int*q)return(*p*q)?p:q;程序运行后的输出结果是【11】。(12)以下 fun 函数的功能是在 N 行 M 列的整型二维数组中,选出一个最大值作 为函数值返回,请填空
21、。(设 M,N 已定义)int fun(int aNM)int i,j,row=0,col=0;for(i=0;iarowcol)row=i;col=j;return(【12】);(13)有以下程序#includemain()int n2,i,j;for(i=0;i2;i+)ni=0;for(i=0;i2;i+)for(j=0;j2;j+)nj=ni+1;printf(“%dn”,n1);程序运行后的输出结果是【13】。(14)以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。请在输出语句中填写代表最大值的输出项。#includemain()int a10,*p,*s
22、;for(p=a;p-a10;p+)scanf(“%d”,p);for(p=a,s=a;p-a*s)s=p;printf(“max=%dn”,【14】);(15)以下程序打开新文件 f.txt,并调用字符输出函数将 a 数组中的字符写入其中,请填空。#includemain()【15】*fp;char a5=1,2,3,4,5,i;fp=fopen“f,txt”,”w”;for(i=0;i5;i+)fputcai,fp;f2017 年全国计算机等级考试二级 C 语言真题及答案close(fp);2017 年二级 C 语言笔试真题参考答案一、选择题 1-5 B C D A A 6-10 D D C C A 11-15 C B B A D 16-20 D A A C B 21-25 B C B D C26-30 C B D D A 31-35 A C B C D 36-40 B A C B D二、填空题 1.1DCBA2345 2.1 3.25 4.结构化 5.物理设计 6.2008 7.15 8.非 0 9.1 4 13 40 10.i 11.2 12.arowcol 13.3 14.*s 15.FILE