2022年计算机等级考试二级语言程序设计历年真题与模拟试题详解.doc
《2022年计算机等级考试二级语言程序设计历年真题与模拟试题详解.doc》由会员分享,可在线阅读,更多相关《2022年计算机等级考试二级语言程序设计历年真题与模拟试题详解.doc(786页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、全国计算机等级考试二级C语言程序设计历年真题与模拟试题详解最新资料,WORD格式,可编辑修改!目录第一部分历年真题及详解52016年3月全国计算机等级考试二级C语言程序设计真题及详解52015年9月全国计算机等级考试二级C语言程序设计真题及详解182015年3月全国计算机等级考试二级C语言程序设计真题及详解332014年9月全国计算机等级考试二级C语言程序设计真题及详解482014年3月全国计算机等级考试二级C语言程序设计真题及详解622013年9月全国计算机等级考试二级C语言程序设计真题及详解762013年3月全国计算机等级考试二级C语言程序设计真题及详解912012年9月全国计算机等级考试
2、二级C语言程序设计真题及详解1062012年3月全国计算机等级考试二级C语言程序设计真题及详解1212011年9月全国计算机等级考试二级C语言程序设计真题及详解1352011年3月全国计算机等级考试二级C语言程序设计真题及详解1492010年9月全国计算机等级考试二级C语言程序设计真题及详解1652010年3月全国计算机等级考试二级C语言程序设计真题及详解1802009年9月全国计算机等级考试二级C语言程序设计真题及详解1952009年3月全国计算机等级考试二级C语言程序设计真题及详解2092008年9月全国计算机等级考试二级C语言程序设计真题及详解224第二部分模拟试题及详解239全国计算机
3、等级考试二级C语言程序设计模拟试题及详解(一)239全国计算机等级考试二级C语言程序设计模拟试题及详解(二)255第一部分历年真题及详解2016年3月全国计算机等级考试二级C语言程序设计真题及详解(考试时间120分钟 满分100分)一、选择题(每题1分,共40分)1有以下定义:struct dataint i;char c;double d;x;以下叙述中错误的是( )。Ax的内存地址与x.i的内存地址相同Bstruct data是一个类型名C初始化时,可以对x的所有成员同时赋初值D成员i、c和d占用的是同一个存储空间【答案】D【解析】变量i、c、d是结构体变量x中三个不同的成员,占用不同的存
4、储空间。2以下函数的功能是:计算a的n次方作为函数值返回。double fun(double a,int n)int i;double s=1.0;for(i=1;i=n;i+)s= ;return s;为实现上述功能,函数中下划线处应填入的是( )。As*iBs*aCs+i*iDs+a*a【答案】B【解析】s为a的(i-1)次方的结果,所以令s=s*a即可得到a的i次方。3有以下程序:#include#includemain()char str =Hello,Beijing;printf(%d,%dn,strlen(str),sizeof(str);程序的运行结果是( )。A13,13B13
5、,14C13,15D14,15【答案】B【解析】strlen返回字符串的长度,不包含字符串末尾的结束字符0,结果为13;sizeof返回字符串所占存储空间的大小,由于字符串最后要加上一个0,所以结果为13+1=14。4若有说明:typedef structint a;char c;w;,则以下叙述正确的是( )。A编译后系统为w分配5个字节B编译后系统为w分配6个字节C编译后系统为w分配8个字节D编译后系统不为w分配存储空间【答案】D【解析】w是一个自定义类型,不是变量,故编译后系统不为w分配存储空间。当w定义为结构体变量时才会为其分配存储空间。5以下叙述中错误的是( )。A同一个数组中所有元
6、素的类型相同B不可以跳过前面的数组元素,给后面的元素赋初值0C定义语句:int a10=0;,给a数组中所有元素赋初值0D若有定义语句:int a4=1,2,3,4,5;,编译时将忽略多余的初值【答案】D【解析】数组初始化时,若赋初值的个数多于所定义数组的元素个数时,编译器会报错。6若有以下定义:struct ttchar name10;char sex;aa=aaaa,F,*p=&aa;则错误的语句是( )。Ascanf(%c,aa.sex);Baa.sex=getchar( );Cprintf(%cn,(*p).sex);Dprintf(%cn,p-sex);【答案】A【解析】sex是一个
7、char类型变量,不是地址,A项应为scanf(%c,&aa.sex);。7C语言编译程序的功能是( )。A执行一个C语言编写的源程序B把C源程序翻译成ASCII码C把C源程序翻译成机器代码D把C源程序与系统提供的库函数组合成一个二进制执行文件【答案】C【解析】编译程序的功能是将“高级语言”翻译为“机器语言”,将C语言语句转换成二进制的机器指令。8有以下程序:#includeint fun(int n)if(n)return fun(n-1)+n;else return 0;main( )printf(%dn,fun(3);程序的运行结果是( )。A4B5C6D7【答案】C【解析】fun函数是
8、一个递归函数,调用f(3),参数n=3,返回f(3-1)+3=f(2)+3=f(1)+2+3=f(0)+1+2+3=0+6=6。9有以下程序:#includemain( )int sum=0,x=5;dosum+=x;while(!-x);printf(%dn,sum);程序的运行结果是( )。A0B5C14D15【答案】B【解析】do-while循环,先执行循环体sum+=x,则sum=sum+x=0+5=5,再执行while中的表达式,结果为0,退出循环,所以运行结果是5。10下面不属于软件设计阶段任务的是( )。A软件的功能确定B软件的总体结构设计C软件的数据设计D软件的过程设计【答案】
9、A【解析】软件设计阶段的任务包括:结构设计;数据设计;接口设计;过程设计。软件的功能确定是在需求分析阶段完成的。11有以下程序:#include#includetypedef structchar name9;char sex;float score2;STU;void f(STU*a)strcpy(a-name,Zhao);a-sex=m;a-score1=90.0;main( )STU c=Qian,f,95.0,92.0,*d=&c; f(d);printf(%s,%c,%2.0f,%2.0fn,d-name,c.sex,c.score0,c.score1);程序的运行结果是( )。AQ
10、ian,f,95,92BZhao,f,95,90CZhao,m,95,90DZhao,f,95,92【答案】C【解析】f函数调用时,结构体数组名作为实参传给形参指针,结构体指针a指向数组c的首地址。因此,f可以对数组c中的元素赋值,故返回主函数之后,数组c中的成员值已被更新。main函数中有赋值语句*d=&c;,指针d指向结构体数组c的首地址,故d-name=c.name,输出结果为Zhao,m,95,90。12在C语言程序中,下列说法正确的是( )。A函数的定义可以嵌套,但函数的调用不可以嵌套B函数的定义不可以嵌套,但函数的调用可以嵌套C函数的定义和调用均不可以嵌套D函数的定义和调用均可以嵌
11、套【答案】B【解析】函数定义都是在函数外部进行的,函数调用是在函数内部进行的,所以函数的定义不可以嵌套,但函数的调用可以嵌套。13执行以下程序段后,s的值为( )。int a =1,2,3,4,5,6,7,8,9,s=0,k;for(k=0;k8;k+=2)s+=*(a+k);A13B16C17D45【答案】B【解析】数组a中的元素为:a0=1,a1=2,a8=9。k=0时,s=s+*(a+0)=0+1=1;k=2时,s=1+*(a+2)=1+3=4;k=4时,s=4+5=9;k=6时,s=9+7=16。14有以下程序:#include#define M 5#define f(x,y) x*y
12、+Mmain( )int k;k=f(2,3)*f(2,3);printf(%dn,k);程序的运行结果是( )。A22B41C100D121【答案】B【解析】宏定义中的函数在调用时只做简单的替换,不能进行任何修改。所以k=2*3+5*2*3+5=41。15有以下程序:#includemain( )char ch=Z;ch=(ch-A+1)%26+A;putchar(ch);程序的运行结果是( )。AZBYCBDA【答案】D【解析】Z的ASCII码是90,A的ASCII码是65,所以ch=(ch-A+1)%26+A=26%26+65=65,输出65对应的字符A 。16下面属于黑盒测试方法的是(
13、 )。A基本路径测试B等价类划分C判定覆盖测试D语句覆盖测试【答案】B【解析】等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类进行测试。基本路径测试、判定覆盖测试和语句覆盖测试都属于白盒测试。17有以下程序:#includemain( )int i,j,k,a=5,b=6;i=(a=b)?+a:-b;j=a+;k=b;printf(%d,%d,%dn,i,j,k);程序的运行结果是( )。A7,6,5B5,5,5C7,5,5D5,6,5【答案】B【解析】条件表达式i=(a=b)?+a:-b;中先执行a=b,值为假,根据三元运算符语法规
14、则,执行-b,此时b为5,赋给i,i=5;j=a+,将a=5先赋给j,再进行a+,j=5,a=6,k=b=5,故最后输出的是5,5,5。18C语言程序中,若函数无返回值,则应该对函数说明的类型是( )。AintBdoubleCcharDvoid【答案】D【解析】int表示返回值是整型,double表示返回值是双精度型,char表示返回值是字符型,void表示无返回值。19有以下程序:#includemain( )int k,n=0;char c,str=teach;for(k=0;strk;k+)c=strk;switch(k)case 1:case 3:case 5:putchar(c);p
15、rintf(%d,+n);break;default:putchar(N);序的运行结果是( )。ANe1NNBe1a2e3CNe1Nc2NDNa1NNNN【答案】C【解析】程序执行过程:k=0时,c=str0=t,执行default分支,输出N;k=1时,c=e,执行case 1分支,没有break语句,继续执行case 3分支,没有break语句,继续执行case 5分支,输出e1;k=2时,c=a,输出N;k=3,c=c,输出c2;k=4,c=h,输出N。故程序的输出结果为Ne1Nc2N。20有以下程序:#includevoid fun(char(*p)6)int i;for(i=0;i
16、4;i+)printf(%c,pii);printf(n);main( )char s66=ABCDE,abcde,12345,FGHIJ,fghij,54321;fun(s); 程序的运行结果是( )。AAa1FBAb3ICABCDDfghij【答案】B【解析】函数fun的功能是输出sii,二维数组的对角线元素,所以程序会输出s00、s11、s22、s33,即Ab3I。21设变量x为long int型并已正确赋值,以下表达式中能将x的百位上的数字提取出的是( )。Ax/10%100Bx%10/100Cx%100/10Dx/100%10【答案】D【解析】x/100的个位数是x的百位数上的数字,
17、所以再进行除10取余运算即可得到该数字。22在E-R图中,表示实体的图形是( )。A矩形B椭圆C菱形D圆【答案】A【解析】在E-R图中,矩形表示实体集,矩形内写该实体集的名字。23下面对软件特点描述不正确的是( )。A软件是一种逻辑实体,具有抽象性B软件开发、运行对计算机系统具有依赖性C软件开发涉及软件知识产权、法律及心理等社会因素D软件运行存在磨损和老化问题【答案】D【解析】与硬件不同,软件在运行、使用期间不存在磨损、老化问题。24设x,y,z均为实型变量,代数式在C语言中的正确写法是( )。Ax/y*zBx%y%zCx/y/zDx*z/y【答案】C【解析】运算符、/的结合顺序是从左到右,所
18、以x先除以y,再除以z。25有以下程序:#include#define N 4void fun(int a N,int b )int i;for(i=0;iN;i+)bi=aiN-1-i;main()int xNN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,yN,i;fun(x,y);for(i=0;iN;i+)printf(%d,yi);printf(n);程序的运行结果是( )。A1,2,3,4,B3,6,9,12,C4,7,10,13,D1,5,9,13,【答案】C【解析】调用fun函数,yi=xiN-1-i,N=4,x是4行4列的二维数组。i=0时,
19、y0= x04-1=x03=4;i=1时,y1=x14-1-1=x12=7;i=2时,y2=x24-1-2=x21=10;i=3时,y3=x30=13。26在下列链表中,能够从任意一个结点出发直接访问到所有结点的是( )。A单链表B循环链表C双向链表D二叉链表【答案】B【解析】线性单链表,必须从头指针开始,才能访问到所有的结点;循环链表的最后一个结点的指针域指向表头结点,所有结点的指针构成了一个环状链,只要指出表中任何一个结点的位置就可以从它出发访问到表中其他所有的结点;双向链表头结点和尾结点之间没有链接,所以如果从中间结点开始访问无法直接访问到所有结点;二叉链表从除根结点之外的任意一个结点出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 计算机等级考试 二级 语言程序设计 历年 模拟 试题 详解
限制150内