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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

全国计算机等级考试二级C语言真题库之选择题.docx

1、全国计算机等级考试二级C语言真题库之选择题全国计算机等级考试等级考试真题库之选择题(05)1.下列叙述中正确的是()。A) 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B) 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C) 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D) 线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性 参考答案:B【解析】线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以一般要多于顺序存储结构。2.下列叙述中正确的是()。A) 栈是一种先进先出的线性表B) 队列是一种后进先出的线性表C) 栈与

2、队列都是非线性结构D) 以上三种说法都不对 参考答案:D【解析】栈是一种先进后出的线性表,队列是一种先进先出的线性表,栈与队列都是线性结构。3.软件测试的目的是()。A) 评估软件可靠性 B) 发现并改正程序中的错误C) 改正程序中的错误D) 发现程序中的错误 参考答案:D【解析】软件测试是为了发现错误而执行程序的过程,测试要以查找错误为中心,而不是为了演示软件的正确功能。不是为了评估软件或改正错误。4.在软件开发中,需求分析阶段产生的主要文档是()。A) 软件集成测试计划B) 软件详细设计说明书C) 用户手册D) 软件需求规格说明书 参考答案:D【解析】需求分析阶段的工作可以概括为:需求获取

3、、需求分析、编写需求规格说明书、需求评审四个方面。所以选择D)。5.软件生命周期是指()。A) 软件产品从提出、实现、使用维护到停止使用退役的过程B) 软件从需求分析、设计、实现到测试完成的过程C) 软件的开发过程D) 软件的运行维护过程 参考答案:A【解析】通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期6.面向对象方法中,继承是指()。A) 一组对象所具有的相似性质B) 一个对象具有另一个对象的性质C) 各对象之间的共同性质D) 类之间共享属性和操作的机制 参考答案:D【解析

4、】继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。7.层次型、网状型和关系型数据库划分原则是()。A) 记录长度B) 文件的大小C) 联系的复杂程度D) 数据之间的联系方式 参考答案:D【解析】层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的联系方式。8.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是()。A) 一对

5、一B) 一对多C) 多对多D) 多对一 参考答案:C【解析】因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。9.数据库设计中反映用户对数据要求的模式是()。A) 内模式B) 概念模式C) 外模式D) 设计模式 参考答案:C【解析】数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述,所以选择C)。内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。10.有三个关系R、S和T如下:则由关系R和S得到关

6、系T的操作是()。A) 自然连接B) 差C) 交D) 并 参考答案:B【解析】关系T中的元组是R关系中有而S关系中没有的元组的集合,所以进行的是差的运算。11.计算机能直接执行的程序是A) 源程序B) 目标程序C) 汇编程序D) 可执行程序 参考答案:D【解析】计算机能直接执行的程序是二进制的可执行程序,扩展名为.exe所以选择D选项12.以下叙述中正确的是A) C语言规定必须用main作为主函数名,程序将从此开始执行B) 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C) C语言程序将从源程序中第一个函数开始执行D) main的各种大小写拼写形式都可以作为主函数名,如:MA

7、IN,Main等 参考答案:A【解析】C语言中的主函数唯一为main()函数不能任意指定,所以B选项错误C语言从主函数main()开始,到主函数main()结束,所以C选项错误主函数必须写成小写的main,不能混淆大小写,所以D选项错误13.以下选项中可用作C程序合法实数的是A) 3.0e0.2B) .1e0C) E9D) 9.12E 参考答案:B【解析】A选项中E后面的指数必须为整数C语言规定,E之前必须要有数字,所以C选项错误E后面必须要有数字,且必须为整数,所以D选项错误14.下列定义变量的语句中错误的是A) int _int;B) double int_;C) char For;D)

8、float US$; 参考答案:D【解析】C语言规定,变量命名必须符合标识符的命名规则D选项中包含了非法字符$,所以错误标识符由字母数字或下划线组成,且第一个字符必须是大小写英文字母或者下划线,而不能是数字大写字符与小写字符被认为是两个不同的字符,所以For不是关键字for15.表达式:(int)(double)9/2)- 9%2 的值是A) 0B) 3C) 4D) 5 参考答案:B【解析】先将整型数据9强制转换成double型,然后除以2得到的结果与double型保持一致,即为4.5,然后将4.5强制转换成整型数据4,然后计算9%2的值为1,最后计算4-1的值为3,所以选择B选项16.设变量

9、均已正确定义,若要通过 scanf(%d%c%d%c,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:代表空格字符)A) 10X20YB) 10X20YC) 10X20YD) 10X20Y 参考答案:C【解析】输入数据的格式必须与scanf()的格式控制串完全匹配,如果A、BC选项中在数字10后面均输入了空格,则会将空格赋给变量c1,而不是把X赋给c1,所以选择C选项17.以下选项中不能作为C语言合法常量的是A) 0.1e+6B) cdC) aD) 011 参考答案:B【解析】要想表示字符串常量应该用双引号

10、表示,即cd,单引号 用于表示字符常量,所以B选项中的表示方法错误18.if语句的基本形式是:if (表达式) 语句,以下关于表达式值的叙述中正确的是A) 必须是逻辑值B) 必须是整数值C) 必须是正数D) 可以是任意合法的数值 参考答案:D【解析】if语句中的表达式可以是任意合法的数值,如常量,变量表达式所以D选项正确19.有如下嵌套的if语句 if(ab) if(ac) k=a; else k=c; else if(bc) k=b; else k=c;以下选项中与上述if语句等价的语句是A) k=(ab)?(bc)?b:c);B) k=(ab)?(ac)?a:c):(bc)?b:c);C)

11、 k=(ab)?a:b;k=(bc)?b:c;D) k=(ab)?a:b;k=(ac)?a:c; 参考答案:B【解析】题目中嵌套语句的含义是当ab且ac成立,则将a的值赋给k,如果ab成立而ac不成立将c的值赋给k如果ab不成立而bc成立,将b的值赋给k,如果如果ab不成立且bc也不成立,将c的值赋给k判断条件表达式只有B选项可以表示这个含义20.有以下程序 #include main() int k=5; while(-k) printf(%d,k -= 3); printf(n); 执行后的输出结果是A) 1B) 2C) 4D) 死循环 参考答案:A【解析】-k先自减在使用,所以第一次判断

12、条件即为while(4),条件为真执行打印k的值k=4-3,结果为1,第二次判断条件即为while(0),条件为假,结束循环,打印回车换行符所以选择A选项21.有以下程序 #include main() int i,j; for(i=3; i=1; i-) for(j=1; j=2; j+) printf(%d ,i+j); printf(n); 程序的运行结果是A) 4 32 54 3B) 4 53 42 3C) 2 33 44 5D) 2 33 42 3 参考答案:B【解析】第一次执行外循环,i的值为3,第一次执行内循环j的值为1,j=2条件成立,打印i+j的值,即4;第二次执行内循环j的

13、值为2,j=2条件成立,打印i+j的值,即5;再判断条件不成立,打印回车换行符,跳出内循环第二次执行外循环,i的值为2,内循环的执行同第一次一样,所以打印3和4,打印回车换行,结束内循环第三次执行外循环i的值为1,同理内循环中打印2和3,打印回车换行符,结束内循环22.有以下程序 #include main() int k=5,n=0; do switch(k) case 1: case 3: n+=1; k-; break; default: n=0; k-; case 2: case 4: n+=2; k-; break; printf(%d,n); while(k0 & n0 & n0

14、& n5不成立了,所以结束循环整个程序的打印结果为23523.以下关于return语句的叙述中正确的是A) 一个自定义函数中必须有一条return语句B) 一个自定义函数中可以根据不同情况设置多条return语句C) 定义成void类型的函数中可以有带返回值的return语句D) 没有return语句的自定义函数在执行结束时不能返回到调用处 参考答案:B【解析】在函数中允许有多个return语句,但每次调用只能有一个return 语句被执行,因此只能返回一个函数值,A选项描述错误。定义成void类型的函数,不允许从该函数取得返回值,也不允许使用return语句,C选项描述错误。没有return

15、语句的函数在执行到函数的最后一条语句后会自动返回到调用处,D选项描述错误。因此B选项正确。24.已定义以下函数 int fun( int *p) return *p; fun函数返回值是A) 一个整数B) 不确定的值C) 形参p中存放的值D) 形参p的地址值 参考答案:A【解析】返回值为指针变量指向的数据,该数据已被定义为整型。因此A选项正确。25.以下程序段完全正确的是A) int *p; scanf(%d, &p);B) int *p; scanf(%d, p);C) int k, *p=&k; scanf(%d, p);D) int k, *p; *p=&k; scanf(%d, p);

16、 参考答案:C【解析】A选项中错在没有对指针进行初始化,无效指针,并且在scanf(%d,&p)中无需再进行取地址操作;B选项中没有对指针进行初始化,无效指针;D选项中语句*p=&k;的左端*p 是指针所指内存空间的值,&k 是地址,应为p=&k。因此C选项正确。26.设有定义 double a10 ,*s=a;以下能够代表数组元素a3的是A) (*s)3B) *(s+3)C) *s3D) *s+3 参考答案:B【解析】指针的赋值首先基类型必须一致,s二维数组名,是二维数组的首地址,其基类型是一个具有10个元素的字符数组。p是一个字符指针变量,其基类型是一个字符,k是一个行指针,其基类型是具有

17、3个元素的字符型数组。所以A、C、D中两项的基类型不一致。而B选项,s0是二维数组s的第一个元素,其代表第一行元素构成的数组的首地址,其相当于一维数组的数组名,其基类型是一个字符类型,和p基类型一致。因此B选项正确。27.有以下程序 #include void f( int *q ) int i=0; for ( ;i5; i+) (*q)+; main() int a5 =1,2,3,4,5, i; f(a); for (i=0;i5; i+) printf(%d, ai); 程序运行后的输出结果是A) 6, 2, 3, 4, 5,B) 2, 2, 3, 4, 5,C) 1, 2, 3, 4

18、, 5,D) 2, 3, 4, 5, 6, 参考答案:A【解析】本题考查的是函数的地址调用,将数组名作为数组首地址进行传递,然后取数据元素值进行加1运算。因此A选项正确。28.有以下程序 #include int fun(int (*s)4, int n, int k) int m, i; m=s0k; for(i=1; im) m= sik; return m; main() int a44=1,2,3,4, 11,12,13,14, 21,22,23,24, 31,32,33,34; printf(%dn,fun(a,4,0); 程序的运行结果是A) 4B) 34C) 31D) 32 参考

19、答案:C【解析】本题重点考察二维数组名作为实参进行参数传递,在主函数中调用了fun函数,实参为二维数组名a和两个整数4、0,这样对应定义fun函数首部也有三种形式,这里采用了第一种形式,也就是行指针,这样在fun函数对sij进行操作实际上就是对主函数中的aij进行操作,再分析fun函数的作用便可知,是求二维数组第0列中最大的那个元素。因此C选项正确。29.以下选项中正确的语句组是A) char *s; s=BOOK!;B) char *s; s=BOOK!;C) char s10; s=BOOK!;D) char s; s=BOOK!; 参考答案:B【解析】A选项去掉大括号就正确了;C选项和D

20、选项应在定义时赋初值。因此B选项正确。30.若有定义语句: char *s1=OK, *s2=ok;以下选项中,能够输出OK的语句是A) if (strcmp(s1,s2)!=0) puts(s2);B) if (strcmp(s1,s2)!=0) puts(s1);C) if (strcmp(s1,s2)=1) puts(s1);D) if ( strcmp(s1,s2)=0) puts(s1); 参考答案:B【解析】strcmp(s1,s2)是字符串比较函数,比较规则是两个字符串自左向右逐个字符相比(按照ASCII码值大小),以第一个不相同的字符的大小作为比较结果。因为OKok,所以str

21、cmp(s1,s2)为负值,只有B选项正确。31.有以下程序#include void fun(char *p) +p; printf(%sn,*p); main() char *a = Morning, Afternoon, Evening, Night; fun(a);程序的运行结果是A) AfternoonB) fternoonC) MorningD) orning 参考答案:A【解析】本题主函数中定义了一个指针数组a,可以将它看成一个以字符指针为元素的一维数组。和-般的一维数组名能赋给同类型指针变量一样,该字符指针数组也可以赋给指向字符指针的指针,所以数组名a可以用作函数fun()的实

22、参。在fun()函数中,+p操作使形参p往后移动一个字符指针的位置,即指针a1的位置。故最后通过printf()函数输出的字符串为Afternoon。因此A选项正确。32.有以下程序,程序中库函数islower (ch)用以判断ch中的字母是否为小写字母#include #include void fun(char *p ) int i=0; while(pi) if(pi= & islower(pi-1) pi-1=pi-1-a+A; i+; main() char s1100=ab cd EFG !; fun(s1); printf(%sn,s1); 程序运行后的输出结果是A) ab cd

23、 EFg !B) Ab Cd EFg !C) ab cd EFG !D) aB cD EFG ! 参考答案:D【解析】调用fun函数后,实参数组名s1传给形参指针p,p也指向数组s1。fun函数的功能是遍历字符数组中的所有字符,如果某一个字符是空格并且前一个字符是小写字母的话,就把前一个字符转换为大写。程序中语句pi-1=pi-1-a+A;即pi-1=pi-1-32,意思是将pi-1中的字符转换为大写。因此D选项正确。33.有以下程序#include int f(int x) int y; if (x = 0 | x= 1) return (3); y = x*x - f(x-2); retu

24、rn y;main() int z; z = f(3); printf(%dn, z);程序的运行结果是A) 0B) 9C) 6D) 8 参考答案:C【解析】主函数中调用f函数,同时将数值3传递给变量x,执行条件与if(x=0|x= 1);此时条件不成立,跳过return (3);,直接执行语句y=x*x-f(x-2); 这里f(x-2)为函数的递归调用,再次调用f函数,此时x=1,条件语句条件成立,返回3给f(1),y=3*3-3=6,最后将6返回主函数,并进行输出。因此C选项正确。34.有以下程序#include int fun(int x,int n) static int sum=0,

25、 i; for(i=0;isex);D) scanf(%d,ps-age); 参考答案:D【解析】本题考查结构体的相关知识,题目中需要输入一个变量,scanf要求参数为指针,而D选项中ps-age为一个变量,不是指针,所以错误。36.若有以下语句 typedef struct S int g; char h; T;以下叙述中正确的是A) 可用S定义结构体变量B) 可用T定义结构体变量C) S是struct 类型的变量D) T是struct S类型的变量 参考答案:B【解析】本题考查typedef重新声明一种结构体类型,那么T为结构体类型,而不是结构体变量,所以B选项正确。37.有以下程序#include #include struct A int a; char b10; double c;struct A f(struct A t);main() struct A a=1001,ZhangDa,1098.0; a=f(a); printf(%d,%s,%6.1fn,a.a,a.b,a.c);struct A f(struct A t) t.a=1002; strcpy(t.b,ChangRong); t.c=1202.0; return t; 程序运行后的输出结果是A) 1002,Zhan

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

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