国家二级(C语言)笔试模拟试卷115_第1页
国家二级(C语言)笔试模拟试卷115_第2页
国家二级(C语言)笔试模拟试卷115_第3页
国家二级(C语言)笔试模拟试卷115_第4页
国家二级(C语言)笔试模拟试卷115_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国家二级(C语言)笔试模拟试卷115

一、公共基础选择题(本题共70题,每题7.0分,共

10分。)

1、下列叙述中正确的是()。

A、一个算法的空间复杂度大,则其时间复杂度必定大

B、一个算法的空间复杂度大,则其时间复杂度必定小

C、一个算法的时间复杂度大,则其空间复杂度必定小

D、上述三种说法都不对

标准答案:8

知识点解析:算法的时间复杂度和算法的空间复杂度是从不同的角度来衡量算法的

执行情况,它们之间没有内在联系。

2、下列叙述中正确的是()。

A、一个逻辑数据结构只能有一种存储结构

B、逻辑结构属于线性结构,存储结构属于非线性结构

C、一个逻辑数据结构可以有多种存储结构,.且各种存储结构不影响数据处理的效

D、一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率

标准答案:8

知识点解析:数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形

式,一种数据结构可以艰据需要采用不同的存储结构,常用的存储结构有顺序和链

式结构。采用不同的存储结构,其处理的效率是不同的。

3、对长度为n的线性表进行顺序查找,在最坏的情况下需要比较的次数为()。

A、125

B、n/2

C、n

D^n+1

标准答案:4

知识点解析:对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与

表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最

坏的情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将

这个元素与表中的所有元素进行比较,因此比较次数为no

4、简单的交换排序方法是()。

A、快速排序

B、选择排序

C、堆排序

D、冒泡排序

标准答案:8

知识点解析:所谓的交费类排序方法是指借助数据元素之间的互相交换进行排序的

一种方法,包括冒泡排序和快速排序,冒泡排序是一种最简单的交换排序方法,它

通过相邻元素的交换,逐步将线性表变成有序。

5、设计程序时,应采纳的原则之一是()。

A、程序的结构应有助于读者的理解

B、限制GOTO语句的使用

C、减少或取消注释行

D、程序越短越好

标准答案:1

知识点解析♦:程序设计的风格主要强调程序的简单、清晰和可理解性,以便读者理

解。程序滥用GOTO语句将使程序流程无规律,可读性差:添加注释行有利于对

程序的理解,不应减少或取消,程序的长短要依据实际的需要而定,并不是越短越

好。

6、关于结构化程序设计原则和方法的描述错误的是()。

A、选用的结构只准许有一个入口和一个出口

B、复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现

C、不允许使用GOTO语句

D、语言中所没有的控制结构,应该采用前后一致的方法来模拟

标准答案:4

知识点解析:限制使用GOTO语句是结构化程序设计的原则和方法之一,但不是

绝对不允许使用GOTO语句。其他三项为结构化程序设计的原则。

7、下列特征中不是面向对象方法的主要特征的是()。

A、多态性

B、继承

C、封装性

D、模块化

标准答案:8

知识点解析:面向对象设计方法与面向过程设计方法有本质的不同,其基本原理

是:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:分类

性、多态性、封装性、模块独立性、继承和多态性等。模块化是结构化程序设计的

特点。

8、在面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发送()。

A、调用语句

B、命令

C、口令

D、消息

标准答案:8

知识点解析:在面向对象方法中,对象之间通过消息进行通信。消息中只包含传递

者的要求,它告诉接受者需要做哪些处理,但并不指示接受者应该怎么完成这些处

理,接受者独立决定采用什么方式完成所需的处理。

9、下列描述错误的是

A、继承分为多重继承和单继承

13、对象之间的通信靠传递消息来实现

C、在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征

D、类是具有共同属性、共同方法的对象的集合

标准答案:4

知识点解析:对象的封装性是指从外面看只能看到对象的外部特性;而对象的内

部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。

10、下列叙述中正确的是()。

A、软件交付使用后还需要进行维护

B、钦件一旦交付使用就不需要再进行维护

C、软件交付使用后其生命周期就结束

D、软件维护是指修复程序中被破坏的指令

标准答案:1

知识点解析:软件生命周期一般可以分为软件定义,软件开发及软件运行维护3个

阶段。软件交付并投入运行后,需要不断地进行维护,并根据新提出的需求进行必

要而且可能的扩展和删改。

二、选择题(1分)(本题共10题,每题1.0分,共10

分。)

11、c语言的基本单位是()。

A、函数

B、过程

C、子程序

D、子函数

标准答案:1

知识点解析:C语言是函数式的语言,它的基本组成单位是函数,在C语言中任何

程序都是由一个或者多个函数组成的。

12、下列不正确的转义字符是()。

A、,\\'

B、

C、scanf("%lf,&a)

D^scanf("%le'\&a);

标准答案:8

知识点解析:scanf函数的调用形式是:scanf(格式字符串,输入项地址表)。其

中,”格式字符串”是要输入的变量的格式符;“输入项地址表”是要输入的变量的地

址。题中定义变量a为双精度型变量,双精度变量的格式符为“le”;变量的地址用

取地址符加变量名表示,例如变量a的地址为“&a”。

17、下列选项中合法的赋值语句是()。

A、a=b=34

B、a=34,b=34

C、i-1;

D^m=(int)(x+y);

标准答案:8

知识点解析:选项A)是一个合法的赋值表达式,但结尾没加分号,所以它不是一

个赋值语句;选项B)是一个逗号表达式,也因为结尾没有加分号而不足合法的赋

值语句:选项C)是一个算术表达式,虽然有分号,但这个表达式没有赋值操作,

因此,也不是一条赋值语句。

18、若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a〈b?a:c

<d?c:d的值是()。

A、1

B、2

C、3

D、4

标准答案:1

知识点解析:条件表达式的形式如下:表达式1?表达式2:表达式3,所以本题条

件表达式a<h?a:c<d?c:d应该理解为a<b?a:(c<d?c:d),首先求出条件表达式

c〈d?c:d的值等于2,再求条件表达式aVb?a:2的值,由于a-lVb-4成立,所以

上述条件表达式的值等于lo

19、假定所有变量均已正确说明,下列程序段运行后x的值是()。a=b=c=O;

x=12;if(!a)x—;elsex=5;if(c)x=3;elsex=4;

A、11

B、4

C、12

D、3

标准答案:2

知识点解析:本题考查ifelse语句。第一个if语句,先判断条件,发现a=0,则!a

成立,执行下列的语句,x-,Wx=ll:第二个if语句,判断条件,发现c=o,则条

件不成立,执行下列的else语句,得x=4。

20、设变量a、b、c、d和y都已正确定义并赋值。若有下列if语句ifa<b)

if(c==d)y=0;elsey=l:隹语句所表示的含义是()。

o

。<力且

y=\i

A、

0

且c*d

B、

且cwd

c、I

o且

!c*d

D、•

标准答案:4

知识点解析:语句if(c==d)y=0:elsey=l;是if(aVb)语句的一个子句。所以整个C

语句表达式的意思是:在aVb的情况下,如果c=d则y=0,否则y=l。所以,选项

C)为正确答案。

三、选择题(2分)(本题共20题,每题7.0分,共20

分。)

21、下列程序的运行结果是()。#include<stdio.h>main(){intx=5,a=l,b=2,c=5,

d=O;if(a<b)if(b!=3)if(!c)x=l:elseif(d)x=l;elsex=-l;printf(n%d",x);|

A、-1

B、0

C、1

D、不确定的值

标准答案:1

知识点解析:本题考查ifelse语句。第1个if语句,先判断条件,发现aVb条件

成立,执行下列的语句;第2个if语句,先判断条件,发现b!=3条件成立,执行

下列的语句:第3个if语句,先判断条件,c=5,则!c条件不成立,执行与其配对

的else语句;第4个if语句,先判断条件,d=0,条件不成立,则x=-l,结束循

环。

22、要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确

定义,下列正确的程序段是()。

A、while((ch=getchar())!=,N,)printf("%c'\ch);

B、while(ch=getchar()!=,N,)printf(n%cM,ch);

C^while(ch=getchar()==,N,)printf(H%c",ch);

D^while((ch=getchar())==,N,)printf(H%c",ch);

标准答案:1

知识点解析:while循环的执行过程如下:⑴计算while后面圆括号中表达式的

值。当值为非。时,执行步骤(2);当值为。时,执行步骤(4)。(2)执行循环体一

次。(3)转去执行步骤(1)。(4)退出循环。在选项A)中,表达式(ch=getcharO)!=’N'表

示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入

的字符。如果这个条件表达式不成立,即输入的字符等于N,则退出循环。所以选

项A)为正确答案。

23、不能与do…while(exp)语句中的(exp)等价的表达式是()。

A、(!exp==O)

B、(exp>0||exp<0)

C、(exp==0)

D^(exp!=O)

标准答案:4

知识点解析:本题考查do…while循环。在do...while循环中,当表达式的值为非

零(真)时,执行循环,不能与其等价的是为零的表达式,即(cxp=O)。

24、有下列程序:main(){inti;for(i=l;i<=40;i++){if(i++%5==0)

if(++i%8==0)printf("%d",i);}printf("\n");)执行后的输出结果是O。

A、5

B、24

C、32

D、40

标准答案:4

知识点解析:在for循琰体中,首先判断自变量i能否被5整除,然后再自加两

次,最后判断i能否被8整除。当for循环执行到第30次时,i的值为30能被5整

除,然后i经过两次自加1运算,值变为32,能被8整除,故执行"pnntf("%d”,

i);”语句,即输出32。本题的答案为选项C)。

25、下列选项中不是字符常量的是()。

A、W

B、,\x2a,

C、匕’

D、\0

标准答案:8

知识点解析:c语言规定,一个字符常量代表ASCII码字符集里的一个字符,在程

序中用单引号括起来,以便区分。“\力”表示的是竖向跳格:表示的是两位

十六进制数;“一小表示的是字符a对应的ASCH码值。

26、有下列程序:main(){inti,j;for(i=l;i<4;i++){for(j=i;j<4;j++)printf

(”%d*%d=%d”,i,j,i*j);printf"\n");}}程序运行后的输出结果是()。

A、1*1=11*2=21*3=32*1=22*2=43*1=3

B、1*1=11*2=21*3=32*2=42*3=63*3=9

C、1*1=11*2=22*2=41*3=32*3=63*3=9

D、1*1=12*1=22*2=43*1=33*2=63*3=9

标准答案:2

知识点》析:外层for循环的自变量i从1开始,每次循环后增1,直到i等于3结

束。对于外层循环自变量i的每一个值,内层循环的自变量j每次从i开始,每次

循环后增1,直到j等于3结束。所以在每次外循环开始后,内层循环在一行先打

印i*户两个乘数的积,然后回车换行,下次循环从下一行开始打印输出结果。

27、下列说法不正确的是()。

A、调用函数时,实参可以是表达式

B、调用函数时,实参与形参可以共用内存单元

C、调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等

D、调用函数时,实参与形参的类型必须一致

标准答案:2

知识点解析:本题考查函数调用的基本概念。调用函数时,实参的形式可以是具体

的数值,也可以是表达式。实参将数值或表达式的值传递给形参,因而两者的类型

必须保持一致:形参在运算过程中会发生改变,但不一定会影响到实参值,所以可

知两者不共用内存单元。

28、下列叙述错误的是()。

A、函数名是属于用户标识符,需符合C语言对标设符的规定

B、形参只能是变最

C、为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名

D、函数中定义的变量可以与其他函数中的变量同名

标准答案:4

知识点解析:本题考查函数调用时参数的作用域。在函数调用时,函数体内定义的

变量的作用域连函数体内,因而在不同函数体内定义的变量可以相同,不影响各个

变量的使用。

29、下列程序段中,不能正确赋值的是()。

A^char*p,ch;p=&ch:scanf("%c",&p):

B、char*p;p=(char*)rrialloc(1);scabf(H%c",p);

C、char*p;*p=getchar{);

D、char*p,ch:p=&ch:*p=getchar():

标准答案:4

知识点解析:地址变量p指向的存储空间一定要明确,否则可能影响程序的正确

性。

30、若有定义flo又a[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组

元素的地址为()。

A、334H

B、30DH

C、352H

D、31AH

标准答案:4

知识点解析:解答本题,首先要明白在对指针进行加,减运算的时候,数字不

是十进制的数“1”,而是指“「个存储单元长度,而1个存储单元长度占多少存储空

间,应该视具体情况而定。如果基本类型是ini型,移动1个存储单元的长度就是

位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个

字节。所以p+13所指向的数组元素的地址为:300H+(13*4)H=352H。

31、若有说明:inta[][3]={0,0};则不正确的叙述是()。

A、数组a的每个元素的初值都是0

B、数组a的第一维大小为1

C、数组a的行数为1

D、只有元素a[0]⑼和a⑼[1]可得到初值0,其余元素均得不到初值0

标准答案:8

知识点解析:本题考查给二维数组元素赋值。给二维数组元素赋值时应注意下列两

点:①在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素

自动取0。②二维数组第一维的大小由下列规则确定:当初值的个数能被第二维的

常量表达式的值除尽时,所得商数就是第一维的大小:当初值的个数不能被第二维

的常量表达式的值除尽时,第一维的大小等于所得商数加lo

32、在C语言中,引用数组元素时,其数蛆下标的数据类型允许是()。

A、整型表达式

R、整型常量

C、整型常量或整型表达式

D、任何类型的表达式

标准答案:4

知识点解析:在c语言中,引用数组元素时,其数组下标的数据类型可以是整型常

量,也可以是整型表达式。

33、对于下列字符串,说明表达式stHen(s)值的是()。char

A、10

B、1

C、6

D、7

标准答案:4

知识点解析:strlen(s)返回s字符串中字符的个数,若s是个数组,则返回数组元素

的个数。

34、若已包括头文件Vstring.h>且已有定义charsl[18],s2={"ABCDE")^linti,

现要将字符串“ABCDE”赋给si,下列语句错误的是()。

A、strcpy(sl,s2)

B、strcpy(sl,"ABCDE");

C、si二"ABCDE”;

D、for(i=0;i<6;i++)sl[i]=s2[i];

标准答案:4

知识点解析:数组名S1是代表S1数组首地址的地址常量,而不是变量,因为

左边不能出现常量,因此S1FABCDE”的方法是错误的。

35、下列叙述中不正确的是()。

A、在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实

B、在C的函数中,最好使用全局变量

C、外部变量可以在函数之间传递数据

D、自动变量实质上是一个函数内部的局部变量

标准答案:2

知识点解析:编译时,编译系统不为局部变量分配内存单元,而是在程序运行中,

当局部变量所在的函数被调用时,编译系统根据需要要临时分配内存,调用结束空

间释放:全局变量一经定义,编译系统为其分配固定的内存单元,在程序运行的自

始至终都占用固定的单元。在内存不确定的情况下,最好使用全局变量。

36、在“文件包含”预处理语句的使用形式中,当#include后面的文件名用V>(尖括

号)括起时,寻找被包含文件的方式是()。

A、仅仅搜索当前目录

B、仅仅搜索源程序所在目录

C、在标准目录下查找指定的文件

D、先在源程序所在目录搜索,如查找不到,再按系统指定的标准目录查找

标准答案:4

知识点解析:本题考查文件包含的知识点:格式1:include(文件名),预处理程

序在标准目录下查找指定的文件;格式2:include“文件名”,预处理程序首先在

引用被包含文件的源文件所在的目录中寻找指定的文件,如查找不到,再按系统指

定的标准目录查找。

37、根据下列的定义,能打印出字母P的语句是(),structstu{charname[10];iht

age:);structstus[10]={"John",l1,“Paul",12,"Mary”,11,,,adamn,12};

A、printf("%c",s[3].name);

B、printf(n%c",s[3].name[l]);

C、printf(n%c",s[2].name[l]);

D、printf(u%cn,s[1].name[O]);

标准答案:8

知识点解析:本题主要考查按结构数组元素方式引用结构成员。字母P为"Pau『的

第一个字母,是结构体s[l]的name成员的第一个元索的值,即s[1].name[O|的值。

38、下列程序的运行结果为()。#include<stdio.h>main(){stmctdate{int

year,month,day;(today;printf("%d\n",sizeof(structdate)):}

A、8

B、6

C、10

D、12

标准答案:2

知识点解析:解答本题需要注意两个知识点:①结构体变量的长度是其内部成员

长度的总和,本题中,stmctdate中包含year、month、day这3个整型变量,一个

整型变量占2个字节:②sizeof是求所占字节数的运算符。

39、在位运算中,操作数每左移两位,其结果相当于()。

A、操作数乘以2

B、操作数除以2

C、操作数除以4

D、操作数乘以4

标准答案:8

知识点解析:本题主要考查左移、右移对数据值的影响,左移n位相当于乘以2的

n次累,右移n位相当于除以2的n次幕。

40、若以“a+”方式打开一个已存在的文件,则下列叙述正确的是()。

A、文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可以进行添加

或读操作

B、文件打开时,原有文件内容不被删除,只能进行读操作

C、文件打开时,原有文件内容被删除,只能进行写操作

D、以上三种说法都不E确

标准答案:1

知识点解析:本题考查文件使用方式标识符,以“a+”方式打开一个己存在的文件,

则表示保留文件中原有的数据,文件的位置指针在文件末尾,此时,可以进行追加

或读操作。

四、公共基础填空题(本题共5题,每题分,共5

分。)

41、对于长度为n的顺序存储的线性表,当随机插入和删除一个元素时,需平均移

动元素的个数为【】。

标准答案:n/2

知识点解析:删除一个元素,平均移动的元素个数为(n-l+n-2+…+o)/n=(n-l)/2;插

入一个元素,平均移动元素个数为(n+n-l+n-2+...+l)/n=(n+l)/2;所以总体平均移

动元素个数为n/2。

42、注释说明了程序的功能,它分为【】注释和功能性注释。

标准答案:序言性

知识点解析:注释一般分为序言性注释和功能性注释。

43、软件测试中路径覆盖测试是整个测试的基础,它是对软件【】进行测试。

标准答案:结构

知识点解析:路径测试是白盒测试方法中的一种,它要求对程序中的每条路径最少

检查一次,目的是对软件的结构进行测试。

44、数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独

立性和数据统一管理与控制。

标准答案:共享性

知识点解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共

享性与低冗余性,数据的独立性,数据统一管理与控制。

45、数据元素之间【】的整体称为逻辑结构。

标准答案:逻辑关系

知识点解析:数据元素之间逻辑关系的整体称为逻辑结构。数据的逻辑结构就是数

据的组织形式。

五、填空题(本题共8题,每题7.0分,共8分。)

46、设Y是血型变量,请写出判断Y为奇数的关系表达式【】。

标准答案:Y%2=1或Y%2!=0

知识点解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或不为

Oo本题具体做法如下:Y%2==1或Y%2!=0。

47以下程序的输出是1]omain(){charstrl[]="Howdoyoudo",*pl=strl;

strcpy(str1+strlcn(str1)/2"csshe");printf('%s\n",pl);)

标海答案:Howdoesshe

知识点解析:strcpy(strl,si):字符串拷贝函数,作用是si字符串si拷贝到字符

数组sirl中去。strlen(str):测试字串str的长度,函数的值为字符串中实际长度,

不包括''0'在内。本题中stiien(stii)的值为13,则strcpy(str]+strlen(strl)/2,"es

she");相当于strcpy(strl+6,"esshe");,因此可得答案为Howdocsshe。

48以下程序输出的最后一个值是【】。intff(intn){staticintf=l;f=f*n;return

f;}main(){inti;for(i=l;i<5;i++)printf("%d\n",ff(i));}

标准答案:[20

知识点解析:静态变量的类型说明符是static,静态局部变量属于静态存储方式,

它具有以下特点:①静态局部变量属于静态存储类别,在静态存储区内分配存储

单元。在程序整个运行期间都不释放。②对静态局部变量是在编译时赋被值的,

即只赋被值一次,在程序运行时它已有被值。以后每次调用函数时不再重新赋初值

而只是保留上次函数调用结束时的值。③如在定义局部变量时不赋初值的话,则

对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变

量)。(注意:C语言中的非静态变量在定义时,系统并不会自动给它赋被值)④虽

然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的。本题

中函数的功能是:与for语句一起求一个整数的阶乘。

49、下列程序的输出结果是[]omain(){inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

fbr(y=0;y<3;y++)z=(*(ptr+y)<x)?*(ptr+y):x;printf("%d\n",z);}

标准答案:6

知识点解析:条件运算符的优先级高于赋值运算符,因此本题先计算关系表达式

(*(ptr+y)Vx)?*(ptr+y:x的值,再赋给变量z。当y=0时,*(prt+y)=2,Tfffx=8»

(*(p【r+y)Vx)条件为真,则整个条件表达式的值%*(ptr+y)=2,所以z=2;当y=l

时,*(ptr+y)=4,(*(pti*+y)Vx)条件为真,则整个条。表达的值为*(ptr+y)=4,所以

z=4:当y=2时,*(ptr+y)=6,(*(ptr十y)Vx)为真,则整个条件表达氐的值为

*(ptr+y)=6,所以z=6;循环结束。因此输出z的结果为6。

50、若有定义语句chars[100],d[100];intj=0,i=0;且s中己赋字符串,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论