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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

计算机二级C语言模拟题1Word格式.docx

1、A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划A )错误,可行性分析阶段产生可行性分析报告。C )错误,总体设计阶段产生概要设计说明书。D)错误,集成测试计划是在概要设计阶段编写的文档。B)正确,需求规格说明书是需求分析阶段产生的主要文档,是后续工作如设计、编码等需要的重要参考文档。6.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是(A.快速排序B.冒泡排序C.直接插入排序D.堆排序快速排序、冒泡排序和直接插入排序在最坏情况下,比较次数都是n(n-1)/2,堆排序在最坏情况下的比较次数最少,是O(log2n),因此本题答案为D)。7.

2、下列关于栈的叙述正确的是(A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插人数据D.不能删除数据栈是只允许在同一端进行插入和删除运算的线性表,按“先进后出”组织数据,因此本题答案为B)。8.在数据库设计中,将E-R图转换成关系数据模型的过程属于(A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段将E-R图转换成关系数据模型是把图形分析出来的联系反映到数据库中,即设计出表,因此属于逻辑设计阶段,答案为C)。9.有三个关系R、S和T如下:由关系R和S通过运算得到关系T,所使用的运算为(A.并B.自然连接C.笛卡儿积D.交自然连接是一种特殊的等值连接,它要求两个

3、关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,因此B)错误。笛卡儿积是用R集合中的元素为第一元素,S集合中的元素为第二元素构成的有序对,因此C)错误。根据关系T可以很明显地看出是从关系R与关系S中取得相同的关系组,所以使用的是交运算,选择D)。10.下列叙述中错误的是(A.个C语言程序只能实现一种算法B.C程序可以由多个程序文件组成C.C程序可以由一个或多个函数组成D.个C函数可以单独作为一个C程序文件存在一个C程序可以有一个或多个程序文件,也可以有一个或多个函数,所以一个C语言程序可以实现多种算法。11.设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份

4、证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为(A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩学号是学生表S的主键,课号是课程表C的主键,因此选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,故本题答案为C)。12.以下选项中,能用作数据常量的是(A.115LB.0118C.1.5el.5D.o115选项中115L表示115是长整型数据,合法。B)选项是八进制常量的表示方法,但是在八进制中不能含有数字8,因此B)选项错误。C)选项中e后面应该是整数,不能是小数(1.5),因此C)选项错误。D)选项中八进制常量应该

5、是以数字“0”开始,而不是以字母“o”开始。故本题答案为A)。13.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(A.下画线B.大写字母C.数字字符D.连接符C语言中标识符由字母、下画线或数字组成,且开头必须是字母或下画线。因此D)选项中的连接符不合法。14.设变量已正确定义并赋值,以下正确的表达式是(A.x=y+z+5, +yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0B)与D)选项中取模运算符的左右两个操作数均应为整数,因此B)、D)选项错误。C)选项中不能将x+z的值赋给表达式y*5,因此C)选项错误。15.设有定义“intx=2;”,以下表达式中,

6、值不为6的是(A.x+,2*xB.2*x, x+=2C.x*=(l+x)D.x*=x+1选项B)中,2*x对x的值没有影响,x仍为2,“x+=2”执行后,表达式值为4。故本题答案为B)。16.有以下程序#includemain()int x, y, z; x=y=l; z=x+,y+,+y; printf(%d,%d,%dn,x,y,z);程序运行后的输出结果是( )。A.2,3,1B.2,3,2C.2,3,3D.2,2,1对于表达式“Z=x+,y+,+y;”,因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式改成“(z=x+),(y+),(+y)”。然后从左向右先计算表达式z=x+

7、,因为x+先使用后自增,所以z的值为1,x的值为2。再计算逗号表达式第二个表达式y+,此时y的值为1,y+的值为2。最后计算第三个表达式+y,y的值为3,故本题答案为A)。17.有以下程序 #includechar cl,c2;c1=A+8-4;c2=A+8-5;printf( %c,%dn,cl,c2);已知字母A的ASCII码为65,程序运行后的输出结果是(A.E,DB.D,69C.E,68D.输出无定值本题中字符变量cl是字符A的ASCII码加上4,即69所对应的字符E。字符变量c2是字符A的ASCII码加上3,即68所对应的字符D。但是打印输出时,C1以c的格式输出,因此是E,c2以%

8、d的格式输出,因此是68。故本题答案为C)。18.有以下程序 int x=l,y=0;if(!x) y+;else if (x=0) if(x) y+=2; else y+=3;printf(“%dn”,y);A.3B.2C.1D.0在ifelse语句中else总是与离它最近的if配对。本题目中x为1,因此“!x”为0,所以执行elseif语句中的内容,判断“x=0”是否成立,因为x为1,所以条件不成立,因此elseif内部的“if.else”语句不再执行,所以y的值还是初始值0。19.若有定义“int x,y;”并已正确给变量赋值,则以下选项中与表达式“(x-y)?(x+) : (y+)”中

9、的条件表达式 (x-y)等价的是(A.(x-y0)B.(x-yD.(x-y=0)条件表达式“x=表达式1?表达式2:表达式3”的含义是:先求解表达式1,若其值为非0(真),则求解表达式2,将表达式2的值赋给x;若表达式1的值为0(假),则求解表达式3,将表达式3的值赋给x。在本题中与表达式(x-y)等价的是“(x-y0)”,A)选项正确。20.有以下程序#include int y=9;for(;yO;y-) if(y3=O)printf(d,-y);程序运行后的输出结果是( A.852B.963C.741D.875421第一次执行for循环,y的值为9,y%3的值为0,满足条件打印,所以执行

10、“-y”语句,即先减1后打印,因此打印8;第二次执行for循环,y的值为7,y%3的值为1,不执行打印语句;第三次执行for循环,y的值为6,y%3的值为0,满足条件打印,所以执行“-y”语句,即先减1后打印,因此打印5;第四次执行for循环,y的值为4,不满足if条件,不执行打印语句;第五次执行for循环,y的值为3,满足if条件,打印输出2;第六次执行for循环,y的值为1,不满足条件,不执行打印语句。21.若有定义 “float x=1.5; int a=l,b=3,c=2;”,则正确的switch语句是(A. B. C. D. B)选项的“switch(int)x);”语句中不应该有最

11、后的分号。“switch(exprl)”中的exprl不能用浮点类型或long类型,也不能是一个字符串,因此C)错误。case后面只能是常量表达式,因此D)错误。22.有以下程序A.m=4B.m=2C.m=6D.m=5第一次外循环i的值为1,第一次内循环j的值为3,不满足条件,则执行m*=i*j,即m的值为3;第二次j的值为2,不满足条件,则执行m*=i*j,即m的值为6;第三次j的值为1,不满足条件,则执行m*=i*j,即m的值仍为6。第二次外循环i的值为2,j的值为3,满足条件,执行break语句,跳出循环。23.有以下程序A.6B.3C.8D.12本题中第一次调用为“fun(8,fun(

12、5,6)”,因为“fun(5,6)”返回值为5,所以第二次调用为“fun(8,5)=6”,因此选择A)。24.有以下程序则以下函数调用语句错误的是(A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k= *f(a,b);D)选项中“*f(a,b)”表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,因此不能将其赋值给整型变量k。25.有以下程序该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是( A.int n,*p=NULL;B.*p=&n;C.scanf(”%d”,&p)D.printf(”%dn”,p);选项B)

13、的正确写法应为“P=&”,选项C)的正确写法应为“scanf(%d,p);”,选项D)的正确写法应为“printf(%dn,*p);”。26.下列定义数组的语句中,正确的是(C.int x0.10;D.int x;数组说明的一般形式为:类型说明符数组名常量表达式。A)中N是变量,不能用变量定义数组长度。C)选项中数组长度是非法的一串数字,定义数组时必须为其指明长度。D)选项中数组长度为空,因此非法。27.以下语句中存在语法错误的是(A.char ss620; ss1= right?;B.char ss20= ;C.char *ss6;D.char *ss = 数组定义后,不能对数组整体赋值,s

14、s是二维数组,因为ssl是一维字符数组,即字符串,字符串赋值可以使用“StrcPy(SSl,right);”的形式,而选项A)中对二维数组中的第“1”维(相当于一个一维数组)赋值,是不可以的。选项B)和D)是在定义时对数组同时进行初始化,这是可以的。选项C)中,将字符串在内存中的首地址赋给指针数组的一个元素,这是可以的。28.有以下程序A.3 0 4 0B.2 0 5 0C.3 3 4 4D.0 3 0 4第一次循环i为0,i%2为0,执行“switch(a0%2)”中的case0语句后内容即a0+,a0的值变成3;第二次循环i的值为1,i%2为1,执行“casel:ai=0;”后al的值变成

15、0;第三次循环i的值为2,i%2为0,执行“switch(a2%2)”中的“case1:a2-;”a2的值变成4;第四次循环i的值为3,i%2为1,执行“casel:”,因此a3的值变成0。29.有以下程序B.4D.9每次内循环只循环一次就结束,第一次外循环时“t=t+b0b00=l+b00=1+0=1;”,第二次外循环时“t=t+b1bll=l+bll=l+l=2;”,第三次外循环时“t=t+b2b22=2+b22=2+2=4”。30.以下不能将s所指字符串正确复制到t所指存储空间的是(A.while(*t=*s)t+;s+;B.for(i=0;ti】=si;i+);C.do*t+=*s+;

16、 while(*s);D.for(i=0,j=0;ti+=sj+;);“do*t+=*s+;while(*s);”语句中,因为当“*s=0”时,“while(*s)”跳出循环,这样字符串结束标志o没有复制给*t,造成了*t不完整。注意,*t+=*s+是先执行t=*s,然后才进行t=t+l,s=s+l。而选项B)、A)、D)都能将,复制过去。31.有以下程序A.1bc,a23B.abc,123C.123,abcD.321,cba字符串是一个特殊的数组,按照数组的规则,s1应该指向的是数组的首地址,即“abc”的第一个字符的地址。S2指向的是“123”的第一个字符的地址。调用swap函数之后交换的

17、是两个字符串的第一个字符a和1的内容,因此打印输出为A)。32.有以下函数函数的功能是(A.统计x和y所指字符串中最前面连续相同的字符个数B.查找x和y所指字符串中是否有C.将y所指字符串赋给x所指存储空间D.统计x和y所指字符串中相同的字符个数本题中由循环条件可知,当遇到0或“x与y所指的字符的值不相等”中的一个条件时就结束循环,因此本题函数的功能是统计x和y所指字符串中最前面连续相同的字符个数。33.有以下程序A.30B.10C.0D.64本题目中静态局部变量X,在静态存储区内分配存储单元,在程序整个运行期间都不释放。因此第一次循环s的值为2;第二次循环中,返回的x的值为4,因此S的值为8

18、;第三次循环,返回的x的值为8,因此S的值为64。34.在一个C源程序文件中所定义的全局变量,其作用域为(A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和extern说明来决定范围全局变量的作用域是从声明处到文件的结束,因此选择D)。35.有以下程序A.21B.11C.20D.10声明data是结构S的数组。初始化时“data0.a=10;data0.b=100;datal.a=20;datal.b=200”。主函数中p=datal,即“p.a=datal.a;p.b=datal.b;”,执行语句“printf(%dn”,+(p.A);”打印输出时P.a先

19、增1再打印。即p.a=datal.a=20,先增1等于21,因此程序运行结果是21。36.以下叙述中错误的是(A.用typedef定义新的类型名后,原有类型名仍有效B.可以用typedef将已存在的类型用一个新的名字来代表C.可以通过typedef增加新的类型D.用typedef可以为各种类型起别名,但不能为变量起别名关键字typedef的作用只是将C语言中已有的数据类型作置换,并不是增加新的类型,因此C)错误。37.有以下程序A.31.5B.程序有错无输出结果C.7.5D.14.0宏定义不是C语句,末尾不需要有分号。因此语句“printf(%4.1fn,S(a+b);”展开后为“printf

20、(%4.1fn,3.5;*a+b*a+b;”,所以程序会出现语法错误。38.有以下程序A.4C.5D.6“&”按位与,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0。“丨”按位或,即两个相应的二进制位中只要有一个为1,该位的结果值为1。2的二进制为00000010,4的二进制为00000100,因此做或运算结果为00000110,该数与5即00000101做与运算,结果为00000100,即4,选项A)正确。39.有以下程序A.1,1,3B.2,2,3C.1,2,3D.3,3,3malloc函数动态分配一个整型的内存空间,然后把函数返回的地址用(int*)强制类型转换为整型指针,再

21、把它赋给a,b,c,即让指针变量a,b,c都指向刚申请的内存空间。因此只有最后一个赋值语句*c=3的值保留在了该空间内,因为a,b,c三个指针变量均指向该空间,所以打印该空间内的数值均为3,选项D)正确。40.以下叙述中正确的是(A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据D.C语言中的文件是流式文件,因此只能顺序存取数据B)选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源

22、文件进行追加操作等。C)选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可。D)选项中,C语言中的文件可以进行随机读写。二、程序填空题1,分数:20.00)函数fun的功能是进行字母转换。若形参ch中是小写英文字母,则转换成对应的大写英文字母;若ch 中是大写英文字母,则转换成对应的小写英文字母;若是其他字符则保持不变;并将转换后的结果作为函数值返回。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!填空项1:_(正确答案:(1)&(2)(3)ch)填空1:if条件表达式的考查,判断ch是否为小写字母,因而本空应该填写&填空2:大小写转换的考查,大写转小写ASCII+32,因此本空应填填空3:按题意若是其他字符则保持不变,并返回。此空要表达的就是既不是大写字母也不是小写字母,因而此空应该填写ch。三、程序改错题给定程序MODI1.C中函数fun的功能是:给一维数组a输人任意4个整数,并按下例的规律输出。例如 输入1、2、3、4,程序运行后将输出以下

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

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