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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

计算机二级C语言笔试322.docx

1、计算机二级C语言笔试322 模拟 计算机二级C语言笔试322一、选择题 下列各题A、B、C、D 四个选项中,只有一个选项是正确的。第1题:算法是指A.计算机程序B.解决问题的计算方法C.排序算法D.解决问题的有限运算序列参考答案:D 算法是指对解决方案准确而完整的描述。第2题:下列叙述中正确的是A.循环链表是非线性结构B.双向链表是非线性结构C.只有一个根结点的数据结构不一定是线性结构D.有一个以上根结点的数据结构不一定是非线性结构参考答案:C 线性结构指的是数据元素之间存在着“一对一”线性关系的数据结构,这样的结构中只有一个根结点,如循环链表和双向链表;非线性结构指的是数据元素之间存在着“一

2、对多”非线性关系的数据结构,这样的结构中可能有一个根结点,如树形结构,也可能有多个根结点,如网状结构。第3题:下列对于线性链表的描述中正确的是A.存储空间不一定连续,且各元素的存储顺序是任意的B.存储空间不一定连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的参考答案:A 线性链表是链式存储结构。在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。第4题:面向对象方法中,不属于对象基本特点的是A.标识唯一性B.分类性C.封装性D.一致性参考答案:

3、D 对象的基本特点有:标识唯一性、分类性、多态性、封装性和模块独立性。第5题:在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是A.概要设计B.详细设计C.可行性分析D.需求分析参考答案:D 通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。软件生命周期的主要活动阶段如下。 可行性研究与计划制定:确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可能方案,制订完成开发任务的实施计划。 需求分析:对待开发软件提出的需求进行分析并给出详细定义。编写软件规格说明书及初步的用户手册,提交评审。 软件设计:系统设计人员和程

4、序设计人员应该在反复理解软件需求的基础上给出软件的结构、模块的划分、功能的分配以及处理流程。 软件实现:把软件设计转换成计算机可以接受的程序代码。即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。 软件测试:在设计测试用例的基础上,检验软件的各个组成部分,编写测试分析报告。 运行和维护:将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。第6题:数据流图中方框表示的是A.数据流B.存储文件C.控制流D.源,潭参考答案:D 数据流图是描述数据处理过程的工具,它从数据传递和加工的角度,来刻画数据流从输入到输出的变化过程。数据流

5、图中的主要图形元素有:圆形表示加工,箭头表示数据流,双杠表示存储文件,方框表示源、潭。第7题:下列对于软件测试的描述中正确的是A.软件测试的主要目的是发现程序中的错误B.软件测试的目的是证明程序是否正确C.软件测试的目的是使程序运行结果正确D.软件测试是为了证明软件中没有错误参考答案:A 软件测试的目标是发现软件中的错误。第8题:数据库、数据库系统和数据库管理系统之间的关系是A.数据库包括数据库系统和数据库管理系统B.数据库系统包括数据库和数据库管理系统C.数据库管理系统包括数据库和数据库系统D.三者没有明显的包含关系参考答案:B 数据库系统有数据库、数据库管理系统、数据库管理员、硬件平台、软

6、件平台5部分构成。第9题:设有图书(图书编号,书名,第一作者,出版社)、读者(借书证号,姓名,单位,职称)和借阅(借书证号,图书编号,借书日期,还书日期)三张表,则表借阅的关键字(键或码)为A.借书证号,图书编号B.图书编号,借书日期C.借书日期,还书日期D.借书证号,借书日期参考答案:A 在二维表中凡能唯一标识元组的最小属性集称为关键字,关键字具有标识元组、建立元组间联系等重要作用。此题中,借书证号,图书编号是表借阅的主键,借书证号、图书编号分别是外键,借书证号是读者表的主关键字,图书编号是图书表的主关键字。第10题:有三个关系R、S和T如下:由关系R和S通过运算得到关系T,则所使用的运算为

7、A.并B.自然连接C.笛卡儿积D.交参考答案:D 在关系运算中,交的定义如下:设R1和R2为参加运算的两个关系,它们具有相同的度n,且相对应的属性值取自同一个域,则为交运算,结果仍为度等于n的关系,其中,交运算的结果既属于R1,又属于R2。第11题:下列叙述中正确的是A.每个C语言程序文件中都必须要有一个main()函数B.在C语言程序中main()函数的位置是固定的C.C语言程序中所有函数之间都可以相互调用,与函数所在位置无关D.在C语言程序的函数中不能定义另一个函数参考答案:A main函数是C语言程序的主函数,可以出现在程序中的任何位置。函数是C语言程序的基本模块,函数内部可以再定义其他

8、函数。但函数间可相互调用,被调用的既可以是C语言提供的库函数,也可以是用户自定义的函数。第12题:以下合法的十六进制数是A.0xB.0x4deC.0x1hD.0x77参考答案:B 考查十六进制数的表示方法。十六进制数以0x开头,后面跟着若干位09和af的数,所以正确答案为B)。第13题:已知大写字母A的ASCII码的值是65,小写字母a的ASCII码的值是97,以下不能将变量c中的大写字母转换为对应小写字母的语句是A.c=(c-A)%26+aB.c=c+32C.c=c-A+aD.c=(A+c)%26-a参考答案:D 无论大小写,字母间的间隔都相等,所以C-A=c-a,因此c=C-A+a,选项A

9、)、C)正确。从题述可知,a-A=97-65=32,所以c=C+32,选项B)正确。第14题:若变量已正确定义并赋值,以下符合C语言语法的表达式是A.a:=b+1B.a=b=c+2C.int 18.5%3D.a=a+7=c+b参考答案:B 选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int) 18. 5%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。因此,正确答案是选项B),它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。第15题:设变量a是int型,f是

10、float型,i是double型,则表达式10+a+i*f值的数据类型为A.intB.floatC.doubleD.不确定参考答案:C 根据混合运算规则,如果有一个数据是float型或double型,则其他数据类型先转化为double型,运算的结果最终也是double型。第16题:有以下程序: #include stdio.h main() chal c1=1,c2=2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); 当运行时输入:a 回车 后,以下叙述正确的是A.变量c1被赋予字符a,c2被赋予回车符B.程序将等待用户输入第2个字

11、符C.变量c1被赋予字符a,c2中仍是原有字符2D.变量c1被赋予字符a,c2中将无确定值参考答案:A 本题考查的是输入输出函数。函数getchar()的作用是从终端(或系统隐含指定的输入设备)输入一个字符,且只能接受一个字符(回车符也算是一个字符)。故本题中变量c1被赋予字符a,c2被赋予回车符。第17题:下列程序的输出结果是 #include stdio.h main() int i, a=0, b=0; for(i=1; i 10; i+) if(i % 2=0) a+; continue; b+; printf(a=%d, b=%d, a, b); A.a=4, b=4B.a=4, b

12、=5C.a=5, b=4D.a=5, b=5参考答案:B continue语句的作用是跳过本次循环体中余下尚未执行的语句,接着再一次进行循环条件的判定。当能被2整除时,a就会增加1,之后执行continue语句,直接执行到for循环体的结尾,进行i+,判断循环条件。第18题:设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句: if(a b) if(c=d)y=0; else y=1; 该语句所表示的含义是A.B.C.D.参考答案:C 本题考查if语句的使用。整个语句都是以a b为假设的,在a b的情况下,如果c=d,则y=0;否则y=1。所以答案为选项C)。第19题:若a是数值类型

13、,则逻辑表达式(a=1)|(a!=1)的值是A.0B.1C.2D.不知道a的值,不能确定参考答案:B 当a=1时,(a=1)|(a!=1)为真;当a!=1时,(a=1)|(a!=1)也为真,故正确答案为B)。第20题:有以下程序: #include stdio.h main() int s; scaIlf(%d, s); while(s 0) switch(s) case 1:printf(%d, s+5); case 2:printf(%d, s+4).break; case 3:printf(%d, s+3); default:printf(%d, s+1)Ibreak; scanf(%d

14、,s); 运行时,若输入123450 回车 ,则输出结果是A.6566456B.66656C.66666D.6666656参考答案:A switch语句执行完一个case后面的语句后,流程控制转移到下一个case语句继续执行,遇到break会跳出本次循环。本题中输入1时会输出65,输入2时会输出6,输入3时会输出64,输入4时会输出5,输入5时会输出6,在输入0时不满足循环条件,程序执行结束。第21题:有如下程序: int a10=11, 12, 13, 14, 15, 16, 17, 18, 19, 20; int*p=a3, b; b=p5; 则b的值是A.15B.16C.18D.19参考

15、答案:D p=a3将指针指向数组a的第4个元素,p5指向数组a的第9个元素,而a8=19,所以b=19。第22题:以下程序的输出结果是 Fun(int x, int y) return(x+y); main() int a=1, b=2, c=3, sum; sum=Fun(a+, b+, a+b), c+); printf(%d, sum); A.9B.8C.7D.6参考答案:B 逗号表达式a+,b+,a+b先计算a+,a=2; 再计算b+,b=3; 表达式的值就是a+b的值,为5。表达式c+的值是c递增前的值,为3。所以fun(a+,b+,a+b),c+)等价于fun(5,3),返回值为5

16、+3=8。第23题:有以下程序: #include stdio.h main() int i=5; do if(i%3=1) if(i%5=2) printf(%d, i); break; i+; while(i!=0); printf(n); 程序的运行结果是A.*7B.*3*5C.*5D.*2*6参考答案:A 整个程序中只有对i增加的语句而没有对i减少的语句,所以2、3都不可能出现,选项B)和D)错误。而1=5时第一个if语句的表达式为假,所以选项C)也错误。第24题:以下函数按每行8个输出数组中的数据: void fun(int*w, int n) int i; for(i=0; i n

17、; i+) _ printf(%d, wi); printf(n); 下划线处应填入的语句是A.if(i/8=0)printf(n);B.if(i/8=0)continue;C.if(i%8=O)printf(n);D.if(i%8=0)continue;参考答案:C 在C语言循环语句中,continue用来跳出当次循环,因此B)项和D)项不正确。if(i/8=0)是指当i除以8的得数等于0,即i的值小于8时,打印换行,因此A)项也不正确。if(i%8=0)是指当i除以8的余数等于0,即当间隔8个数时,打印换行,因此选项C)正确。第25题:以下数组定义中错误的是A.int x3=0;B.int

18、 x23=1, 2, 3, 4, 5, 6;C.int x3=1, 2, 3, 4, 5, 6;D.int x23=1, 2, 3, 4, 5, 6;参考答案:B 二维数组的初始化有以下几种形式:分行进行初始化;不分行进行初始化;部分数组元素进行初始化;省略第一维的定义,不省略第二维的定义。选项B)等号右边分了3行,大于等号左边数组的行数2。第26题:有以下程序: #include string.h main() char p=a, b, c, q10=a, b, c; printf(%d%dn, strlen(p), strlen(q); 以下叙述中正确的是A.在给p和q数组置初值时,系统会

19、自动添加字符串结束符,故输出的长度都为3B.由于p数组中没有字符串结束符,长度不能确定;但q数组中字符长度为3C.由于q数组中没有字符串结束符,长度不能确定;但p数组中字符长度为3D.由于p和q数组中没有字符串结束符,故长度都不能确定参考答案:B 本题考查的是库函数的调用。strlen()是计算以0结束的字符串的长度函数,函数的值为字符串的实际长度,不包括0。题中q10=a,b,c虽然给出了数组大小,即数组实际分配的存储空间,但此字符串只占用前3个存储单元,其余存储单元系统自动加上0,故数组q的长度为3;由于p数组中没有字符串结束符,故字符串的长度不能确定。第27题:若有以下程序: #incl

20、ude stdio.h int a=1, 3, 5, 7; main() int i; int *p=a; for(i=0; i 4; i+)ai=*p; printf(%dn, a2); 上面程序的输出结果是A.5B.7C.lD.3参考答案:C 在C语言中,数组元素下标是从0开始的;指针变量p指向数组的首地址。for循环语句中,指针变量p始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为1。第28题:若有定义语句:int m=5, 4, 3, 2, 1, i=4;, 则下面对m数组元素的引用中错误的是A.m-iB.m2*2C.mm0D.mmi参考答案:C 数组m下标从04计算,

21、共5个元素,选项C)中m0=5,则mm0为m5中,超出了数组m的下标范围。因此正确答案为C)。第29题:设有以下说明语句: typedef struct int n; char ch8; PER; 则下面叙述中正确的是A.PER是结构体变量名B.PER是结构体类型名C.typedef struct是结构体类型D.struct是结构体类型名参考答案:B 本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。第30题:有以下程序: int fun(int n) if(n=1)return 1; else return(n+

22、fun(n-1); main() int x; scanf(%d, x); x=fun(x); printf(%dn, x) 执行程序时,给变量x输入10,程序的输出结果是A.54B.55C.65D.45参考答案:B 本题考查的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用,执行结果为1+2+3+4+5+6+7+8+9+10=55。第31题:以下程序的输出结果是 #include stdio.h sub(int*s, int y) static int t=3; y=st; t-; main() int a=1, 2, 3, 4, i, x=0;

23、for(i=0;i 4;i+) sub(a, x); printf(%d, x); printf(n); A.1234B.4321C.OOOOD.4444参考答案:C 本题的考查点是函数的形参和实参的关系。x作为函数sub()的实参时,函数对x值的改变没有返回主函数,并没能使得x的值变化,所以在打印时,x的值始终是0。第32题:有以下程序: #include stdio.h #define F(x, y) (x)*(y) main() int a=3, b=4; printf(%dn, F(a+, b+); 程序运行后的输出结果是A.12B.15C.16D.20参考答案:A 本题的考查点是带参

24、数的宏定义。本题的程序中就定义了一个带参数的宏,对F(a+,b+)进行展开后,宏的返回值为12,注意a+,b+都是先使用变量值,再自增。第33题:以下程序运行时,若从键盘输入10 20 30 回车 ,输出的结果是 main() int i=0, j=0, k=0; scanf( %d% * d%d, i, j, k); printf( % d% d% dn, i, j, k); A.10200B.102030C.10300D.10030参考答案:C 根据scanf()函数附加的格式说明字符,可知%后的“*”是附加说明符,用来表示跳过它相应的数据,所以本题中忽略第2个数据的输入,则i=10,j=

25、30,k的值不变,还是0,所以输出结果是10300。第34题:有以下程序: #include stdio.h main() char *a=abcd, ef, gh, ijk; int i; for(i=0; i 4; i+)printf(%c,*ai); 程序运行后的输出结果是A.aegiB.dfhkC.abcdD.abcdefghijk参考答案:A a为一个指针数组,其中的每个元素都是一个指针。该程序的功能是分别打印4个字符串的首字母,因此本题答案为A)。第35题:以下程序执行后的输出结果是 fun(int x, int y) static int m=0, i=2; i+=m+1; m=

26、i+x+y; return m; main() intj=1, m=1, k; k=fun(j, m); printf(%d, , k); k=fun(j, m); printf(%dn, k); A.5, 5B.5, 11C.11, 11D.11, 5参考答案:B maln函数中的局部变量m与fun函数中的静态局部变量m同名,因此main访问的是其局部变量m,所以main中的两次函数调用,实际上都是调用fun(1,1)。第一次调用时,i=i+(m+1)=2+(0+1)=3,m=i+x+y=3+1+1=5。第二次调用时,i=i+(m+1)=3+(5+1)=9,m=i+x+y=9+1+1=11。

27、所以程序输出5,11。第36题:阅读下面程序,则执行后的结果是 #include stdio, h main() char str=tomeetme, *p; for(p=str; p str+7; p+=2)putchar(*p); printf(n); A.tomeetmeB.tmemC.oeteD.tome参考答案:B 存放字符串的字符数组的名字就是这个字符串的首地址。本题的功能是对字符串“tomeetme”进行选择式输出,从第一个字母开始,每输出一个字符即跳过一个。第37题:有以下程序: main() char ch=uvwxyz, *pc; pc=ch; printf(% cn,*(pc+5); 程序运行后的输出结果是A.zB.0C.元素ch5的地址D.字符y的地址参考答案:A 本题考查的是指向数组的指针。本题中定义了一个字符串数组和指针,并将指针pc指向该数组的首地址,执行输出语句“printf(%cn,%(pc+5); ”。语句中的*(pc+5)指的就是pc5的值,所以最后输出的结果为z。第38题:设有定义: struct complex int real, unreal; data1=1, 8, data2; 则以下赋值语句中错误的是A.data2=da

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

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