ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:25.17KB ,
资源ID:15532914      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15532914.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(二级C语言分类模拟题529真题含答案与解析交互.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

二级C语言分类模拟题529真题含答案与解析交互.docx

1、二级C语言分类模拟题529真题含答案与解析交互二级C语言分类模拟题529(总分47.5, 做题时间90分钟)选择题1.在C语言中,char型数据在内存中的存储形式为_。A反码B补码CASCII码D原码分值: 2答案:C2.下列叙述中,正确的是_。A软件交付使用后还需要进行维护B软件一旦交付使用就不需要再进行维护C软件交付使用后其生命周期就结束D软件维护是指修复程序中被破坏的指令分值: 1答案:A3.有下列程序: #includestdio.h main() int a=6,b=7,m=1; switch(a%2) case 0:m+;break; case 1:m+; switch(b%2)

2、defaut:m+; case0:m+;break; printf(%dn,m); 程序运行后的输出结果是 _ 。A1B2C3D4分值: 1答案:B解析 本题考查switch语句。第一个switch语句,因为a=6,a%2=0,所以执行case0将m加1,遇到break语句跳出switch语句,结束循环。4.下列合法的声明语句是_。Aint _abc=50;Bdouble int=3+5e2.5;Clong do=1L;Dfloat 3_asd=3e-3;分值: 1答案:A解析 标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或下划线。B选项int不是表达变量类型的标识符,它不能

3、再用做变量名和函数名。C选项do是C语言的一个关键字。D选项标识符只能以字母或下划线开始。5.以下选项中叙述正确的是_。Achar c1,c2,*c3,c440j;是合法的变量定义语句B数组说明符的一对方括号中只能使用整型常量,而不能使用表达式C数组下标的下限可以是负值D若有数组定义float array4;则语句printf(%f,array3.12);是合法的分值: 1答案:A解析 A选项正确定义了字符变量c1、c2,字符型指针c3,字符型一维数组c440,A选项正确。“”是下标运算符,“下标”可以是任何非负整型数据,取值范围是0(数据元素的个数-1)。在引用数组元素时,下标运算符内可以是

4、常量也可以是变量或者表达式,B选项错误。数组下标的下限不可以是负值,C选项错误。数组下标必须是整型数据,3.12为浮点数,故D选项错误。6.有以下程序 main() int p8=(11,12,13,14,15,16,17,18),i=0,j=0; while(i+7)if(pi%2) j+=pi; printf(%dn,j); 程序运行后的输出结果是_。A42B45C56D60分值: 1答案:B解析 本题程序中while循环的条件是i+7,由于在循环体中没有改变i的值,所以循环过程是i从初始值0开始,每次自加1,当i为7再次进行循环条件判断时退出循环。而在循环体中,i从1到7变化。循环体是一

5、个if语句,当pi%2为真,即pi为奇数时执行j+=pi。所以该段程序的实际效果是将p1p7中的奇数累加到变量j中。所以j=13+15+17=45,选B。7.下列二维数组初始化语句中,不正确的是 _ 。Aint b2=1,2,3,4,5,6,7;Bint b35=0,0,0;Cintb4=1,2,3,4,5,6;Dint b32=(1,2) ,(3,4) ,(5,6) ;分值: 1答案:D解析 在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0;C语言规定,对于二维数组,只可以省略第1个方括号中的常量表达式,而不能省略第2个方括号中的常量表达式;赋的初值不能多于事先定义好

6、的数组元素个数。 在选项D)赋值表达式中对每一维的元素赋初值应用 ,而不是()。8.以下程序的输出结果是_。 试题程序#include stdio.h main() int i=2, p; p=f(i, i+1); printf(% dn, p); int f(int a, int b) int c; c=a; if(ab) c=1; else if(a=b) c=0; else c=-1; return(c); A-1B0C1D2分值: 1答案:A解析 以上程序中定义了名为f()的整型函数,它有两个int类型的形参。在main()函数中调用了f()函数,可以很直观地看到,实参的值分别是2和3

7、,2传给函数形参a,3传给函数形参b。函数返回的值赋给变量p,main()函数中输出的值就是函数中的返回值。在函数f()中,若a的值大于b,c被赋1;若a的值等于b,c被赋0;若a的值小于b,c被赋-1。按照实参传送过来的值,a的值小于b,因此c被赋-1,所以函数的返回值为-1。总结:本题中没有复杂的算法,但读者必须熟练地掌握if.else分支结构的执行流程,同时建立清晰的有关函数定义和函数调用的基本概念,就可得出正确的答案。9.假定x和y为double型,则表达式x=2,y=x+3/2的值是_。A3.500000B3C2.000000D3.000000分值: 1答案:D解析 在x=2,y=x

8、+3/2中,3/2=1,2+1=3,因此表达式的值为3,因为x、y为double型变量,故选择D选项。10.以下叙述中正确的是_。Aint * p1; int * * p2; int *p3;都是合法的定义指针变量的语句B指针变量只能通过求地址运算符(&)来获得地址值C语句p=NULL;与p=0;是等价的语句D语句p=NULL;执行后,指针p指向地址为0的存储单元分值: 2答案:A解析 B选项描述不正确,指针变量可以通过求地址运算符(&)来获得地址值,也可以通过指针变量获得地址值,还可以通过标准函数获得地址值;C选项中,p=NuLL;和p=0;或p=0;等价;D选项中,语句p=NULL;执行后

9、,指针p并不是指向地址为0的存储单元,而是具有一个确定的值-“空”。因此A选项正确。11.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是_。A-369B369C0.369D整数集合1,2,3,4,5分值: 2.5答案:B解析 只有B选项369可以用无符号整数来表示和存储。A选项-369有负号,选项C0.369是小数,它们都不能用无符号整数类存储。选项D是一个整数集合需要用数组来存储。12.若要通过位运算使整型变量a中的各位数字全部清零,以下选项正确的是_。Aa=a&0;Ba=a|0;Ca=a0;Da=!a;分值: 1答案:A解析 本题考查位运算符和位运算。“|”运算符,1|0=

10、1,0|0=0,所以选项B中a变量的各位数字保持不变,故B选项错误;“”运算符,10=1,00=1,所以选项C中a变量的各位数字中,1保持不变,0变成1,故C选项错误;“!”运算符,!1=0,!0=1,所以选项D中a变量的个位数字中,1变成0,0变成1,故D选项错误;“&”运算符,1&0=0,0&0=0,所以选项A中各位数字全部清零,故答案为A选项。13.一个C语言程序是由_。A一个主程序和若干子程序组成B函数组成C若干过程组成D若干子程序组成分值: 2答案:B14.下列程序段中完全正确的是_。Aint*p;scanf(%d,&p);Bint*p;scanf(%d,p);Cint k,*p=&

11、k;scanf(%d,p);Dint k,*p;*p=&k;scanf(%d,p);分值: 1.5答案:C解析 A选项中错在没有对指针进行初始化,无效指针,并且在scanf(%d,&p)中无须再进行取地址操作;B选项中没有对指针进行初始化,无效指针;D选项中语句*p=&k;的左端*p是指针所指内存空间的值,&k是地址,应为p=&k。C选项正确。15.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是_。A10B8C6D4分值: 2答案:C解析 根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中是5+1=6个。16.设有以下程序段: struct

12、 person float weight; char sex; char name10; rec, *ptr; ptr=&rec; 从键盘读入字符串给结构体变量rec的name成员,错误的输入语句是_。Ascanf(%s,rec-name);Bscanf(%s,rec.name);Cscanf(%s,(*ptr).name);Dscanf(%s,ptr-name);分值: 1答案:A解析 题中声明了个结构类型person的同时,定义了2个结构变量,一个为rec,另一个为指针变量ptr。A选项中,rec是一个结构体变量,结构体变量访问结构成员的方式应该为:rec.成员名,这里用法错误,答案为A选

13、项。17.有以下程序 #includestdio.h int fun() static int x=1; x*=2; return x; main() int i, s=1; for(i=1; i=3; i+)s*=fun(); printf(%dn, s); 程序运行后的输出结果是_。A30B10C0D64分值: 2答案:D解析 第一次循环fun函数返回值为2,第二次循环由于x是static类型,x仍保留上次的值2,所以返回值为4,第三次循环由于x是static类型,x仍保留上次的值4,所以返回值为8,对三次返回值乘积值为64,所以答案选择D。18.若有定义语句:char str1=stri

14、ng,str28,*str3,str410=string;,库函数strcpy的功能是复制字符串,以下选项中错误的函数调用是_。Astrcpy(str3,HELLO!)Bstrcpy(str2,HELLO!)Cstrcpy(str1,HELLO!)Dstrcpy(str4,HELLO!)分值: 1答案:A解析 题目中字符指针str3,没有为指针开辟内存,能作为函数参数,选择A选项。19.已定义以下函数: int fun(int*p) return*p; fun函数的返回值是_。A一个整数B不确定的值C形参p中存放的值D形参p的地址值分值: 1答案:A解析 返回值为指针变量指向的数据,该数据已被

15、定义为整型。因此A选项正确。20.在面向对象方法中,不属于“对象”基本特点的是_。A一致性B分类性C多态性D标识唯一性分值: 1答案:A解析 在面向对象方法中,对象的基本特点包括:标识唯一性、分类性、多态性、封装性、模块独立性好。一致性不属于对象的基本特点,因此本题答案为A。21.以下关于C语言数据类型使用的叙述中错误的是_。A若只处理“真”和“假”两种逻辑值,应使用逻辑类型B若要保存带有多位小数的数据,可使用双精度类型C若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D整数类型表示的自然数是准确无误差的分值: 1答案:A解析 C语言不存在逻辑类型,所以A错误。单精度floa

16、t类型可提供6位有效数字,双精度double类型可提供16位有效数字,所以要保存带有多位小数的数据,要使用双精度类型,所以B选项正确。结构体类型可以保存不同类型数据,所以C正确,整数的表示是不存在误差的,所以D选项正确。22.以下程序的结果是_。 int a,b; void fun() a=100;b=200; main() int a=5,b=7; fun(); printf(%d%dn,a,b) ; A100200B57C200100D75分值: 1答案:B解析 全程变量是可以在于函数中对其值作改变,且它也可作为函数间的值传递。但当函数或子函数中定义了与全程变量名称相同的局部变量,则全程变

17、量将被屏蔽。23.下面描述中,不属于软件危机表现的是_。A软件过程不规范B软件开发生产率低C软件质量难以控制D软件成本不断提高分值: 2.5答案:A解析 软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。因此本题答案为A。24.若有定义:int a; float b; double c;,程序运行时输入:a=1,b=2,c=3回车,能把值1输入给变量a、值2输入给变量b、值3输入给变量c的输入语句是_。Ascanf(a=%d,b=%f,c=%lf,&

18、a,&b,&c);Bscanf(%d%f%lf,&a,&b,&c);Cscanf(a=% d,b=% lf,c=%lf,&a,&b,&c);Dscanf(a=%d,b=% f,c=%f,&a,&b,&c);分值: 1答案:A解析 格式字符d,输入十进制整数;格式字符f,输入浮点数;格式字符lf,输入双精度浮点数。除了格式说明字符和附加格式字符外,如果还有其他字符,则在输入数据时要求按照这些字符在一一对应的位置原样输入。程序运行时输入:a=1,b=2,c=3,则scanf函数格式控制串应该是“a=%d,b=%f,c=%lf”。25.在关系数据库中,用来表示实体之间联系的是A树形结构B网状结构C线

19、性表D二维表分值: 1答案:D解析 数据库中的关系模型是采用二维表来表示实体与实体之间的联系。26.下列叙述中正确的是_。A程序执行的效率与数据的存储结构密切相关B程序执行的效率只取决于程序的控制结构C程序执行的效率只取决于所处理的数据量D以上三种说法都不对分值: 1答案:A解析 数据的存储结构、程序处理的数据量、程序的算法等都会影响程序执行效率。27.以下数组定义中错误的是_。Aint x23=1, 2, 3, 4, 5, 6);Bint x3=0;Cint x3=1, 2, 3, 4, 5, 6;Dint x23=1, 2, 3, 4, 5, 6;分值: 2答案:A解析 本题考核的知识点是

20、二维数组的定义及初始化。在定义一个二维数组同时初始化时,其第一维的长度可以省略。二维数组的初始化列表可以只使用一重花括号,其中的每个值依次代表从第1行的第1个元素起,直到第1行满,接着代表第2行、第3行的每一个元素,若第1维长度没有省略,则这些值总个数不得超过两个维度的乘积。故选项D是正确的。二维数组的初始化列表还可以使用二重花括号括起来,其中每一个内花括号代表一行的值,在内花括号中值的个数不得超过数组第二维的长度,若不足第2维长度,则该行多出部分值被初始化为0,若第一维省略,花括号的个数代表行数。A选项第一维为2,故只有两行,但有三个花括号超出了行的要求,所以本题答案选A。28.设变量已正确

21、定义并赋值,以下正确的表达式是_。Ax=y+z+5, + +yBint(15.8%5)Cx=y*5=x+zDx=25%5.0分值: 4答案:A解析 B与D选项中取模运算符%的左右两个操作数均应为整数,所以B、D错误。C选项中不能将x+y的值赋给表达式y*5,所以C错误。29.有以下程序 main() int a,b,d=25; a=d/10%9;b=a&(-1); printf(%d,%dn,a,b); 程序运行后的输出结果是_。A6,1B2,1C6,0D2,0分值: 1答案:B解析 C语言中,若/符号两边都为整数,则返回的是运算结果的整数部分。%是取余运算,运算对象只能是整数,结果是两数相除

22、后所得的余数,若运算量为负数,则结果的符号与被除数相同。因此,a=d/10%9=25/10%9=2%9=2。C语言中没有专门的逻辑值,而是用整型值代替:非零整数表示逻辑真,零表示逻辑假;逻辑真的值为1,逻辑假的值为0。所以,b=a&(-1)=“真”&“真”=“真”=1。所以,选项B正确。30.有以下程序: #include stdio.h main() int*p,x=100; p=&x;x=*p+10; printf(%dn,x); 程序运行后的输出结果是_。A110B120C100D90分值: 1答案:A解析 程序执行过程为:定义指针p,指向变量x,x=(* p)+10=110,输出110

23、,A选项正确。31.有以下程序: #includestdio.h main() int a=1,b=3,c=5; int * p1=a,*p2=b,*p=c; *p=*p1*(* p2); printf(%dn,c); 程序执行后的输出结果是_。A1B2C3D4分值: 1答案:C解析 该程序中int*p1=a,*p2=b,*p=c;指定义三个指针变量,并赋值,即使p1指向a、p2指向b、p指向c。*p=*p1*(*p2);该条语句是给p所指的存储单元c赋值,就是p1所指的存储单元的值,即a的值,与p2所指的存储单元b的值相乘,也就是c=a*b,等价于c=1*3=3。因此C选项正确。32.以下说

24、法正确的是_。A由3种基本结构组成的结构化程序只能解决一些简单的问题B由3种基本结构组成的结构化程序可以解决任何复杂的问题C由3种基本结构组成的结构化程序只能解决那些可以结构化的问题D由3种基本结构组成的结构化程序只能解决一些数学上有解析解的问题分值: 1答案:B解析 由3种基本结构组成的算法可以解决任何复杂的问题,由3种基本结构所构成的算法称为结构化算法,由3种基本结构所构成的程序称为结构化程序,故本题答案为B选项。33.设某二叉树的前序序列为ABC,中序序列为CBA,则该二叉树的后序序列为_。ABCABCBACABCDCAB分值: 1答案:B解析 二叉树遍历可以分为3种:前序遍历(访问根节

25、点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。前序序列为ABC,则A为根节点。中序序列为CBA,则C和B均为左子树节点或右子树节点,且C为B父节点,可知后序序列为CBA,故B选项正确。34.有以下程序 #includestdio.h main() FILE*fp; int a10=1,2,3,0,0,i; fp=fopen(d2.dat,wb); fwrite(a,sizeof(int),5,fp); fwrite(a,sizeof(int),5,fp); fclose(fp); tp=fopen(

26、d2.dat,rb); fread(a,sizeof(int),10,fp); fclose(fp); for(i=0;i10;i+) printf(%d,ai); 程序的运行结果是_。A1,2,3,0,0,1,2,3,0,0,B1,2,3,1,2,3,0,0,0,0,C123,0,0,0,0,123,0,0,0,0,D1,2,3,0,0,0,0,0,0,0,分值: 1答案:A解析 fwrite函数将数组a写入文件,写入两遍,读出后为选项A的值,所以选择A。35.设有如下函数定义: int fun(int k) if(k1) return 0; else if(k=1) return 1; else return fun(k-1)+1; 若执行调用语句:“n=fun(3);”,则函数fun总共被调用的次数是_。A2B3C4D5分值: 1答案:B解析 此题考查简单的循环,当执行n=fun(3)时,则函数fun执行3次。窗体顶端窗体底端

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2