首页 理论教育 计算机二级C语言真考模拟-全真3合1

计算机二级C语言真考模拟-全真3合1

时间:2023-10-30 理论教育 版权反馈
【摘要】:16.C)scanf()中会严格按照其中的格式赋值,所以若输入10□,则s 会是空格,所以只有选项C 正确。

计算机二级C语言真考模拟-全真3合1

一、选择题

1.A)【解析】线性表的链式存储结构会有一个额外的指针来指向下一个节点,所以其所需要的存储空间一般要多于顺序存储结构。

2.A)【解析】栈是一种后进先出的线性表,队列是一种先进先出的线性表。

3.D)【解析】软件测试的目的是发现程序中的错误,改正错误和评估软件功能均不是软件测试的目的。

4.D)【解析】需求分析所产生的主要文档是需求说明书,详细设计说明书、测试计划及用户手册都是在后续阶段产生的文档。

5.A)【解析】计算机软件的生命周期是指软件产品从提出、实现、使用维护到停止使用的全过程,其它选项均不全面。

6.B)【解析】面向对象方法中的继承属性是指不同类之间共享属性和操作的机制;是指不同类之间的一种关联性,继承有属性继承和操作继承。

7.D)【解析】计算机中的数据库管理机制是通过数据之间的联系方式不同而使用不同的数据库模型。

8.D)【解析】一个人员可以使用多台计算机,而一台计算机可被多个人使用,所以人与计算机之间关系是多对多的关系。

9.A)【解析】数据库模式的三种结构是内模式、外模式和概念模式。 概念模式是指数据库中数据逻辑结构的描述,外模式是用户的数据视图,给每个用户的局部数据描述,内模式是指数据库物理存储结构与存取方法。 因此,答案是A。

10.B)【解析】T 中数据是R 中有而S 中没有的数据,因此,是R 与S 的差运算结果。

11.B)【解析】计算机能执行的程序是汇编程序。

12.A)【解析】C 语言规定必须用main 作为主函数名,程序将从此开始执行,其它程序将作为子程序(函数)在main 函数中调用执行。

13.B)【解析】用科学计数法表示的实数,在e 后面的数必须是整数,前面必须有数字,所以选项ACD 均有错,B 中的.2 表示0.2 这在C 语言中是合法的。

14.D)【解析】C 语言中的变量名由字符、数字和下划线构成,数字不能做为首字符;选项D 中有非法字符,其它选项中虽然有关键字但整个变量不是关键字,所以是合法的,if 是关键字,但IF 不是。

15.B)【解析】此题是简单的计算题,7/3 的结果是2.333,通过(int)强制转换后为2,9%2 的值是1,所以结果是1。

16.C)【解析】scanf()中会严格按照其中的格式赋值,所以若输入10□,则s 会是空格,所以只有选项C 正确。 scanf()不接收回车作为输入,所以可以用回车分隔输入内容。

17.B)【解析】选项B 中的单引号只能有一个字符,所以不符合语法,选项D 是转义字符,选项C 是字符串,选项A 是科学计数均正确。

18.D)【解析】if 语句中的值可以是任意合法的数值或表达式,其它选项均不正确。

19.B)【解析】if(exp1)exp2 else exp3 可以写成问号表达式,(exp1)? exp2:exp3,所以选项B 正确。

20.B)【解析】--i 是先执行自减1 的操作再使用变量,i-=2 表达式是i=i-2 表达式的缩写,所以在进行while(--i)判断后,i=2,打印时,先计算表达式的值,i=2-2=0。

21.B)【解析】x 的初值为3,y 的初值为1,所以答案在A 和B 中,当内循环执行第2 次时,y=2,输出5,所以第1 行应该为4,5。 答案B 正确。

22.A)【解析】注意两点,一是case 分支语句后面若没有break 则会执行其后的所有语句,直到有break 跳出或switch()语句结束,do-while 循环第1 次执行时,i=5,在switch 中执行default 分支,但其后没有break,所以后面的分支也会被执行,执行完后s=2,i=3;第2 次执行do-while 循环时,会执行case 3 后面的语句,直到有break 跳出,执行完后s=3,i=2;第3 次执行后s=5,i=1,此时注意while 中的条件是s<5,所以循环结束,打印的结果是235。

23.B)【解析】函数可以有返回值,也可以不返回,返回的结果与程序执行有关,所以可以在程序中设置多个返回语句,如果定义为void 类型则不能有return 语句;如果没有return 语句,执行完函数的最后一个语句后将返回到函数调用处。

24.B)【解析】函数类型定义为int 所以返回值会强制转换为一个整数,*pt 是提取指针pt 中存放的数值的运算。 所以B 正确。

25.C)【解析】本题考察指针和地址的操作,& 是取一个变量的地址,*pt 是指向一个变量的地址,前提是此变量要提前进行定义,已经分配了内存地址,选项B 中pt 没有初始化,scanf 的参数是接收输入值的变量的地址,地址不能再取地址,所以A 不正确,指针定义后用*pt 来表示该指针指向的变量的值,不能对指针再取指针操作,所以答案D 不正确。

26.D)【解析】数组引用是从0 开始,最后一个元素下标是n-1,若用指针来提取数组元素,正确写法应该是*(pt+3),选项D 正确。 其它形式都不正确。

27.A)【解析】子函数的功能是将传入的值连续加5 次2,也就是加10;注意到形参是指针,所以它和实参指向同一个变量;另外,数组名是可以当做指针使用,指向的是第一个元素,所以程序实际是将数组的第一个元素的地址传入子函数进行叠加操作,结果为10,其它元素没有进行相关操作,保持原值,所以结果是10,1,2,3,4,。

28.D)【解析】此题中将一个二维数组做参数传入子函数进行计算,子函数的功能是求二维数组中第k 列中前n 项中的最大值,本题是求数组中第0 列前4 项元素的最大值,结果是13。

29.B)【解析】选项A 去掉大括号就正确了,选项C 和D 应该是定义时赋初值,若定义之后对数组赋值,应该逐个元素赋值。

30.A)【解析】strcmp 是比较两个字符串,返回的是第一个不相同的字符的大小比较值,大写字母的ASCII值小于小写字母,因此,返回的是负数,选项A 正确。

31.C)【解析】子函数是一个字符二维指针,将一个字符中二维数组传入子函数后,指针指向的是数组的首地址,p++将指向第二行字符串,即a[1],其值为Tuesday,所以答案为C。

32.D)【解析】子函数的功能是将字符串中空格前面的小写字母变成大写字母。

33.A)【解析】子函数是一个迭代函数,在主函数中将3 传入子函数中时,执行sum= x*x - Lt(x-2)语句,同时进入二次迭代,将1 作为参数传入子函数,返回值是5,sum=3*3-5=4。

34.B)【解析】静态变量的值一直在内存中保持,所以子函数中的sum 和i 在下次调用的时候,其值不会被初始化,第1 次调用结束sum=15,i=5;第2 次调用时由于i=5,所以不会执行求和操作,只返回sum 的值,此时sum=15,所以主函数中ss=15+15=30。(www.xing528.com)

35.D)【解析】题目主要考查结构体元素的引用,D 选项中是整型的一个变量,所以不符合scanf 输入的格式要求。

36.B)【解析】typedef 是为现有类型重命名,所以ST 是struct 的别名,因此,可以用ST 定义结构体变量,B正确。

37.B)【解析】子函数的功能是修改传入的形参变量(结构体)的属性值,并返回修改后的结构体,所以答案是B。

38.C)【解析】此题主要考查逻辑表达式,宏定义在引用的时候如果没有表达式传入则很容易理解,其目的是判断k 被n 整除后的余数是否为1;&& 操作符两边的表达式均为真时,整个表达式的值才会为真,因此,答案是C。

39.C)【解析】^ 操作符是按位或,& 操作符是按位与,所以1^2=3,3&3=3。

40.C)【解析】文件打开方式为w,即覆盖式写操作,但因为是连续的写了两次,所以,并没有出现后一次操作覆盖前一次操作内容的情况,所以答案是C;如果第二次写操作是重新打开文件后的操作,则会出现覆盖的现象。

二、程序填空题

【参考答案】

1.j+ +或j + =1 或+ + j 或j=j + l

2.s[i] =tl[i]

3.j

【考点分析】

本题考查:指针型变量;数组变量赋值;for 循环语句。

【解题思路】

填空1:根据函数fun 中的内容可知,数组tl 存储了s 中的非数字字符,数组t2 存储了s 中的数字字符,为了存储下一个数字字符,下标j 要进行加1 操作。

填空2:将s 串中的数字与非数字字符分开后,要先将非数字字符放入字符串s 中,因此填入s[i] = tl[i]。填空3:最后将数字字符加到s 串之后,并且i 要小于数字的个数j。

三、程序修改题

【参考答案】

1.for (j = i + 1 ; j <6; j + + )

2.* (pstr + i)= * (pstr + j);

【考点分析】

本题考查:冒泡排序算法;for 循环语句格式;指针数组。

【解题思路】

1.此处考查for 语句的格式,各表达式之间应用“;” 隔幵。

2.此处考查用指针表示数组元素的方法,* (pstr + i)表示pstr 所指向数组的第i 个元素,同理* ( pstr + j )表示pstr 所指向数组的第j 个元素。

【解题宝典】

冒泡排序算法,其基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。 在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。 所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。 如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。 显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高的位置。 依次类推,完成排序。

四、程序设计题

【参考答案】

【考点分析】

本题考查:for 循环语句遍历字符串,并通过if 条件语句,判断字符串当前字符是否为c。

【解题思路】

从字符串中查找指定字符,需要使用循环判断结构,循环语句用来遍历字符串,循环条件为字符串没有结束,即当前字符不是'\0',判断语句用来判断当前字符是否为指定字符。 最后返回指定字符的个数。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈