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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

二级C语言模拟652.docx

1、二级C语言模拟652二级C语言模拟652(总分:136.00,做题时间:90分钟)一、选择题(总题数:40,分数:58.00)1.设变量x为long int型并已正确赋值,以下表达式中能将x的百位上的数字提取出的是_。(分数:1.00)A.x/10%100B.x%10/100C.x%100/10D.x/100%10解析:解析 x/100的个位数是x的百位数上的数字,所以再进行除10取余运算即可得到该数字。2.有以下程序: #includestdio.h main() unsigned char a=2, b=4, c=5, d; d=a | b;d&=c; printf(%d/n,d); 程序

2、运行后的输出结果是_。(分数:1.00)A.3B.4C.5D.6解析:解析 &按位与,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0。1按位或,两个相应的二进制位中只要有一个为1,该位的结果值为1。2的二进制为00000010,4的二进制为00000100,所以两个数做或运算结果为00000110,该数与5的二进制00000101做与操作结果为00000100,即4。所以选择B选项。3.有以下程序: #includestdio.h main() struct STU char name9; char sex; double score2; ; struct STU a=Zhao,m

3、,85.0,90.0,b=Qian,f,95.0,92.0; b=a; printf(%s,%c,%2.0f,%2.0f/n,b.name,b.sex,b.score0,b.score1); 程序的运行结果是_。(分数:2.00)A.Qian,m,85,90B.Zhao,m,85,90C.Zhao,f,95,92D.Qian,f,95,92解析:解析 本题考查结构体初始化操作。本题中可以直接将结构体a赋值给b,所以输出的结果和a一样,B选项正确。4.有以下程序: #includestdio.h main() int i=0,a=0; while(i20) for(;) if(i%10)=0)b

4、reak; else i-; i+=11;a+=i; pfintf(%d/n,a); 程序的输出结果是_。(分数:2.50)A.62B.63C.33D.32解析:5.有以下程序: # include stdio.h main() int b33=0,1,2,0,1,2,0,1,2,i,j,t=1; for(i=0;i3;i+) for(j=1;j=i;j+)t+=bibji; printf(%d/n,t); 程序运行后的输出结果是_。(分数:1.00)A.1B.3C.4D.0解析:解析 本题考查了两层for循环。外层循环增量i的值作为内层循环执行次数的值使用。6.以下关于C语言的叙述中正确的是

5、_。(分数:1.00)A.C语言的数值常量中夹带空格不影响常量值的正确表示B.C语言中的变量可以在使用之前的任何位置进行定义C.在C语言算术表达式的书写中、运算符两侧的运算数类型必须一致D.C语言中的注释不可以夹在变量名或关键字的中间解析:解析 C语言的数值常量中不能夹带空格,所以A选项错误。C语言中的变量都必须先定义再使用,对变量的定义通常放在函数体内的前部,但也可以放在函数外部或复合语句的开头,不能随便放置,所以B选项错误。在C语言中运算符两侧的运算数据类型可以不一致,且结果与精度较高的保持一致,所以C选项错误。7.在软件设计中不使用的工具是_。(分数:1.00)A.系统结构图B.PAD图

6、C.数据流图(DFD图)D.程序流程图解析:解析 系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图(DFD图)是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,因此它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以本题答案为C。8.有以下程序: #includestdio.h main() int k=5; while(-k

7、)printf(%d,k-=3); printf(/n); 程序执行后的输出结果是_。(分数:1.00)A.1B.2C.4D.死循环解析:解析 -k先自减再使用,所以第一次判断条件即为while(4),条件为真,执行打印k的值k=4-3,结果为1;第二次判断条件即为while(0),条件为假,结束循环,打印回车换行符。所以选择A选项。9.下列叙述中正确的是_。(分数:1.00)A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节

8、省存储空间解析:解析 链式存储结构既可以针对线性结构也可以针对非线性结构,所以B选项与C选项错误。链式存储结构中每个节点都是由数据域与指针域两部分组成,增加了存储空间,所以D选项错误。10.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 _(分数:1.00)A.a0B.!aC.a=0D.a解析:11.以下叙述中,正确的是_。(分数:1.00)A.局部变量说明为static的存储类,其生存期将得到延长B.全局变量说明为static的存储类,其作用域将被扩大C.任何存储类的变量在未赋初值时,其值都是不确定的D.形参可以使用的存储类说明符与局部变量完全相同解析:解析

9、选项A,局部静态变量的存储空间在程序整个运行期间都不释放,所以比局部动态变量的生存期长。选项B,全局变量说明为静态存储时,作用域不会扩大。选项C,局部静态变量未赋初值时,系统编译时会自动赋初值0或空字符。选项D,在未调用函数时,函数的形参不占内存的存储单元,只有调用时才动态分配存储空间,所以形参不能说明为静态存储,而局部变量可以说明为静态存储。12.以下结构体说明和变量定义中,正确的是_。(分数:1.00)A.typedef struct abcint n;double m;ABC;ABC x,y;B.struct abcint n;double m;struct abc x,y;C.stru

10、ct ABCint n;double m;struct ABC x,y;D.struct abcint n;double m;abc x,y;解析:解析 本题考查typedef的使用方法,typedef对已存在的类型使用一个新的名字,选项A中ABC为新的类型别名,定义正确。13.在软件开发过程中,软件结构设计是描述_。A.数据存储结构B.软件体系结构C.软件结构测试D.软件控制过程解析:解析 从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。14.设有定义: char *c; 以下选项中能

11、够使c正确指向一个字符串的是_。(分数:1.00)A.char str=string;c=str;B.scanf(%s,c);C.c=getchar();D.*c=string;解析:解析 选项A定义字符数组str,然后将str赋值给c,c便指向字符串str,符合题意,所以选择A。15.以下四个程序中不能对两个整型值进行交换的是_。(分数:2.50)A.#includestdio.hvoid swap(int *p, int *q) int*t, a;t=&a; *t=*p; *p=*q; *q=*t;main() int a=10, b=20;swap(&a, &b); printf(%d%

12、d/n, a, b);B.#includestdio.hvoid swap(int *p, int *q) int t;t=*p; *p=*q; *q=t;main() int a=10, b=20;swap(&a, &b); printf(%d%d/n, a, b);C.#includestdio.hvoid swap(int*p, int*q) int t;t=*p; *p=*q; *q=t;main() int*a, *b;*a=10, *b=20;swap(a, b); printf(%d%d/n, *a, *b);D.#includestdio.hvoid swap(int*p, i

13、nt*q) int t;t=*p; *p=*q; *q=t;main()int a=10, b=20, *x=&a, *y=&h;swap(x,y); printf(%d%d/n, a, b);解析:解析 main() int*a=0, *b=0; *a=10, *b=20; /有错误,a与b没有指向任何对象,但却给对象赋值。 swap(a, b); printf(%d%d/n, *a, *b); swap(int*p, int*q) int t; t=*p; *p=*q; *q=t; 16.若有以下程序: #include stdio.h main( ) int a=0,b=0,c=0 c=

14、 (a+ = + +b, b+ =4); printf(%d,%d,% d/n,a,b,c); 则程序的输出结果是_。(分数:2.00)A.1,5,1B.1,5,5C.-1,4,4D.-1,4,-1解析:解析 逗号运算符的结合性从左到右,因此逗号表达式将从左到右进行计算。且逗号运算符的优先级最低。先计算a+=+b,结果a为1,b为1,然后计算b+=4,b的值为5。逗号表达式的值为其中最后一个表达式的值,所以将5赋给变量c,即a为1,b为5,c为5。所以选择B。17.以下有4组用户标识符,其中合法的一组是 _。(分数:2.00)A.For-subCaseB.4dDOSizeC.f2_G3IFab

15、cD.WORDvoiddefine解析:解析 选项A中有非法标识符-sub,选项B中有非法标识符4d,选项D中有C语言保留字void。18.以下选项中,不能对主函数中变量i和j的值进行交换的程序是_。(分数:1.00)A.#include stdio.hvoid swap(int*p,int*q) int *t;*t=*p; *p=*q; *q=*t;main()int i=10,j=20,*a=&i, *b=&j;swap(a,b); printf(i=%d j=%d/n,i,j);B.#include stdio.hvoid swap(int *p,int *q)int t;t=*p; *

16、p=*q; *q=t;main()int i=10,j=20,*a=&i,*b=&j;swap(a,b); printf(i=%d j=%d/n,i,j);C.#include stdio.h#include stdlib.hvoid swap(int*p,int*q)int *t;t=(int*)malloc(sizeof(int);*t=*p; *p=*q;*q=*t;free(t);main()int i=10,j=20;swap(&i,&j);printf(i=%d j=%d/n,i,j);D.#include stdio.hvoid swap( int*p,int*q) int t;

17、t=*p;*p=*q;*q=t;main()int i=10,j=20,*x=&i,*y=&j;swap(x,y); printf(i=%d j=%d/n,i,j);解析:解析 选项A,定义了一个临时指针,实现两个指针地址的交换,而传入了参数是二个指针的副本,即a、b地址的副本,故交换了副本地址,对a、b无影响,故选择A选项。B选项调用函数传入的是i与j地址,函数体内交换是地址内元素,临时变量为整型变量,能实现i与j值交换。C选项调用函数传入的是i与j地址,函数体内交换是地址内元素,临时变量为整型指针,且已正确开辟内存,能实现i与j值交换。D选项与B选项相同,能实现i与i值交换。19.有以下程

18、序: #includestdio.h struct Sint a;int b; main() struct S a,*p=a; a.a=99; printf(%d/n,_); 程序要求输出结构体中成员a的数据,以下不能填入横线处的内容是_。(分数:1.00)A.aB.*p.aC.p-aD.(*p).a解析:解析 本题考查结构体变量的引用,题目中要求输出结构体中成员a的数据,p为指针,*p为结构体变量,那么*p.a可以表示为结构体中成员a的数据。20.以下叙述中正确的是_。(分数:2.50)A.a是实型变量,C允许进行赋值a=10,但不可以这样说:实型变量中允许存放整型值B.在赋值表达式中,赋值

19、号左边既可以是变量也可以是任意表达式C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0D.已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3解析:解析 C语言中语法上规定实型变量是不能存放整型类型的数据的,整型数据也不能存放实型数据。是为了避免类型转换之间可能会发生的错误。21.有以下程序: #includestdio.h main() char s1=programe,s2=Language; char*p1=s1,*p2=s2; int k; for(k=0;k8;k+) if(*(p1+k)=

20、*(p2+k) printf(%s/n,*(p1+k); 程序的运行结果是_。(分数:1.00)A.grame ame eB.g a eC.programeD.无输出字符解析:解析 定义两个指针变量p1、p2,分别指向数组s1、s2首地址,在for循环中,比较两个指针所指地址的元素是否相等,如果相等,则输出当前指针指向地址的字符串。22.循环队列的存储空间为Q(1:50),初始状态为front=rear=50。经过一系列正常的入队与退队操作后,front=rear=25,此后又正常地插入了一个元素,则循环队列中的元素个数为_。(分数:1.00)A.51B.50C.49D.1解析:解析 循环队列

21、是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。入队运算时,队尾指针进1(即rear+1),然后在rear指针指向的位置插入新元素。当front=rear=25时可知队列空或者队列满,此后又正常地插入了一个元素说明之前队列为空,所以插入操作之后队列里只有一个元素。故D选项正确。23.有以下程序 #include stdio.h main() int a=1,b=2,c=3,x; x=(ab)&c; printf(%d/n,x); 程序的运行结果是_。(分数:1.00)A.2B.1C.3D.0解析:解析 ab后值为3,3&c值为3,

22、所以选择C。24.在软件开发中,需求分析阶段产生的主要文档是_。(分数:1.50)A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书解析:解析 需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面,因此本题答案为D。25.设a、b和c都是int型变量,且a=3,b=4,c=5,则以下的表达式中值为0的表达式是(分数:2.00)A.a&bB.a=bC.ab+c&b-cD.!(ab)&!c1)解析:26.以下叙述错误的是_。(分数:2.00)A.C语言区分大小写B.C程序中的一个变量,代表内存中一个相应的存储单元,变量的值可以根据需要随时

23、修改C.整数和实数都能用C语言准确无误地表示出来D.在C程序中,正整数可以用十进制、八进制和十六进制的形式来表示解析:27.有下列程序: main() int y=10 doy-; while(-y); printf(%d/n, -y); 当执行程序时,输m的结果是_。(分数:2.50)A.-1B.1C.4D.0解析:解析 本题考查do-while循环。当-y是0(即y是0)时结束循环,输出-y,先将y的值减1再输出y的值。28.若有以下定义和语句: char s 10=abcd!, *s2=/n123/; printf(%d %d/n, strlen(s1), strlen(s2); 则输出

24、结果是_。(分数:1.00)A.5 5B.10 5C.10 7D.5 8解析:解析 /n和/分别为转义字符,各占据一个字符的位置。29.在软件开发中,需求分析阶段产生的主要文档是_。(分数:1.00)A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书解析:解析 需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。所以选择D。30.有如下嵌套的if语句 if(ab) if(ac)k=a; else k=c; else if(bc)k=b; else k=c; 以下选项中与上述if语句等价的语句是_。(分数:2.50)A.k=(ab)?

25、(ac)?a:c):(bc)?h:c);B.k=(ab)?(bc)?a:b):(hc)?b:c);C.k=(ab)?a:b;k=(bc)?b:c;D.k=(ab)?a:h:k=(ac)?a:c;解析:解析 if else语句和?:可以互换,?前语句相当于if后括号内容,?号后语句相当于if后的执行语句,冒号后语句相当于else后语句,综合以上可以看出A符合题意。31.有以下程序 #includestdio.h main() int i; for(i=1; i=40; i+) if(i+%5=0) if(+i%8=0)printf(%d, i); printf(/n); 执行后的输出结果是_。(

26、分数:2.00)A.32B.24C.5D.40解析:解析 本题考查了白增运算符。自增运算符“+”分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加1之后的值,而后缀形式表达式的值为运算分量加1之前的值。题目中使用了一个for循环,循环变量i从1递增到40。在循环体中有两条嵌套的if吾句,首先判断i+%5=0,即判断i+的值(i加1之前的值)是否能被5整除(判断后i被加1),然后再判断+i的值(i加1之后的值)是否能被8整除(判断后i被加1),若两个条件都满足了,就输出i的值,只有i=30时,满足i+%5=0,此

27、时i=31,+i%8=0成立,此时i=32。32.下列程序的运行结果是_。 main() int x=1, y=3, a=0; while(x+!=(y-=1) a+=1; if(yx) break; printf(%d, %d, %d/n, x, y, a); (分数:2.50)A.2,3,2B.2,3,1C.1,3,3D.3,1,2解析:解析 本题考查while循环。第一次循环,y=y-1,y=2。循环条件成立,x=1,x+后值为1,x自加变成2,进入循环,a=a+1=1,判断if语句条件是否成立,yx不成立,接着执行下一次循环。第二次循环,x=2,y-1=1,循环条件成立,进入循环,a=

28、a+1=2,判断if语句的控制条件是否成立,yx成立,执行break语句,退出循环。结果为D。33.数据库系统的三级模式不包括_。(分数:1.00)A.概念模式B.内模式C.外模式D.数据模式解析:解析 数据库系统的三级模式是概念模式、外模式和内模式,不包括数据模式,因此选择D。34.下面不能作为结构化方法软件需求分析工具的是_。(分数:1.00)A.系统结构图B.数据字典(DD)C.数据流程图(DFD图)D.判定表解析:解析 结构化方法软件需求分析工具主要有数据流图、数据字典、判定树和判定表。35.有以下程序段: int k=0; while(k=)k+; while循环执行的次数是_。(分数:2.50)A.无限次B.有语法错,不能执行C.一次也不执行D.执行一次解析:36.有以下程序 #includestdio.h main() int

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1