1、国家二级( C语言)笔试模拟试卷 1及答案与解析 1 算法的空间复杂度是指 ( )。 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)执行算法所需要的存储空间 2 用链表表示线性表的优点是 ( )。 ( A)便于随机存取 ( B)花费的存储空间较顺序存储少 ( C)便于插入和删除操作 ( D)数据元素的物理顺序与逻辑顺序相同 3 数据结构中,与所使用的计算机无关的是数据的 ( )。 ( A)存储结构 ( B)物理结构 ( C)逻辑结构 ( D)物理和存储结构 4 结构化程序设计主要强调的是 ( )。 ( A)程序的规模 ( B)程序的效率 ( C)
2、程序设计语言的先进性 ( D)程序的易读性 5 软件设计包括软件的结构、数据、接口和过程设计,其中软件的过程设计是指( )。 ( A)模块间的关系 ( B)系统结构部件转换成软件的过程描述 ( C)软件层次结构 ( D)软件开发过程 6 检查软件产品是否符合需求定义的过程称为 ( )。 ( A)确认测试 ( B)集成测试 ( C)验证测试 ( D)验收测试 7 数据流图用 于抽象地描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是 ( )。 ( A)控制流 ( B)加工 ( C)数据存储 ( D)源和潭 8 应用数据库的主要目的是 ( )。 (
3、 A)解决数据保密问题 ( B)解决数据完整性问题 ( C)解决数据共享问题 ( D)解决数据量大的问题 9 在数据库设计中,将 E-R图转换成关系数据模型的过程属于 ( )。 ( A)需求分析阶段 ( B)逻辑设计阶段 ( C)概念设计阶段 ( D)物理设计阶段 10 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段,其中数据独立性最高的阶段是 ( )。 ( A)数据库系统 ( B)文件系统 ( C)人工管理 ( D)数据项管理 11 下列选项中正确的语句组是 ( )。 ( A) char s8; s=“Beijing“; ( B) char *s; s=“Bei
4、jing“; ( C) char s8; s=“Beijing“; ( D) char *s; s=“Beijing“; 12 有以下程序: #include stdio.h struct s int x,y; data2=10,100,20,200; main() struct s *p=data; printf(“%dn“,+(p- x); 程序运行后的输出结果是 ( )。 ( A) 10 ( B) 11 ( C) 20 ( D) 21 13 以下选项小可作为 C语言合法整数的是 ( )。 ( A) 10110B ( B) 386 ( C) 0Xffa ( D) x2a2 14 下列关于
5、C语言数据文件的叙述中正确的是 ( )。 ( A)文件由 ASCII码字符序列组成, C语言只能读写文本文件 ( B)文件由二进制数据序列组成, C语言只能读写二进制文件 ( C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 ( D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 15 以下选项中非法的表达式是 ( )。 ( A) 0 =x 100 ( B) i=j= =0 ( C) (char)(65+3) ( D) x+1=x+1 16 有以下程序段: main() int a=5,*b,*c; c=b= 程序在执行了 c=b=语句后,表达式 *c的值是
6、 ( )。 ( A)变量 a的地址 ( B)变量 b中的值 ( C)变量 a中的值 ( D)变量 b的地址 17 已定义以下函数: fun(int *p) return *p; 该函数的返回值是 ( )。 ( A)不确定的值 ( B)形参 p中存放的值 ( C)形参 p所指存储单元中的值 ( D) 形参 p的地址值 18 设有如下程序段: int x=2002,y=2003; printf(“%dn“,(x,y);则以下叙述中正确的是 ( )。 ( A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出 ( B)运行时产生出错信息 ( C)输出值为 2002 ( D)输出值为 2003
7、19 有以下程序: #include stdio.h #include string.h main() char str20=“Hello“,“Beijing“,*P=str0; printf(“%dn“,strlen(p+20); 程序运行后的输出结果是 ( )。 ( A) 0 ( B) 5 ( C) 7 ( D) 20 20 若有定义: int *p3;则以下叙述中正确的是 ( )。 ( A)定义了一个基类型为 int的指针变量 p,该变量具有三个指针 ( B)定义了一个指针数组 p,该数组含有三个元素,每个元素都是基类型为 int的指针 ( C)定义了一个名为 *p的整型数组,该数组含有
8、三个 int类型元 素 ( D)定义了一个可指向一维数组的指针变量 p,所指一维数组应具有三个 int类型元素 21 设有定义: int n=0, *p=s=“ABCDE“; ( D) char *s; scanf(“%s“, 其中 0i9,则对 a数组元素不正确的引用是 ( )。 ( A) ap-a ( B) *( char ch2; a; main() a.ch0=13; a.ch1=0; printf(“%dn“, a i); 程序的输出结果是( )。 ( A) 13 ( B) 14 ( C) 208 ( D) 209 40 在 16位 IBM-PC机上使用 C语言,若有如下定义: st
9、mct data int i; char ch; double f; b;则结构变量 b占用内存的字节数是 ( )。 ( A) 1 ( B) 2 ( C) 7 ( D) 11 41 下面程序的运行结果是 ( )。 #include stdio h main() int a=1,b=10; do b-=a; a+; while(b- 0); printf(“a=%d, b=%dn“, a,b); ( A) a=3, b=11 ( B) a=2, b=8 ( C) a=1, b=-1 ( D) a=4, b=9 42 以下程序的输出结果是 ( )。 #include stdio h void re
10、verse(int a ,int n) int i, t; for(i=0; i n/2; i+) t=ai; ai=an-1 -i; an-1-i =t; main() int b10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10; int i, s=0; reverse(b, 8); for(i=6; i 10; i+)s+=bi; printf(“%dn“, s); ( A) 22 ( B) 10 ( C) 34 ( D) 30 43 有如下程序: #include stdio h long fib(int n) if(n 2)return(fib(n-1)+fib(n-2
11、); else return(2); main() printf(“%dn“, fib(3); 该程序的输出结果是 ( )。 ( A) 2 ( B) 4 ( C) 6 ( D) 8 44 假定以下程序经编译和连接后生成可执行文件 PROG.EXE,如果在此可执行文件所在目录的 DOS提示符下键入: PROG ABCDEFGH IJKL回车则输出结果是 ( )。 #include stdio h main(int argc, char * argv) while(-argc0)printf(“%s“, argvargc); printf(“n“); ( A) ABCDEFG ( B) IJHL
12、( C) ABCDEFGHIJKL ( D) IJKLABCDEFGH 45 以下程序有错,错误原因是 ( )。 main() int *p, i; char *q, ch; p= q= printf“%dn“, (p/3 0?p/10:p%3) ; 57 若有程序 main ( ) int i, j; scanf ( “i=%d, j=%d“ , printf(“i=%d,j-%dn “,i,j); 要求给 i赋 10,给 j赋 20,则应该从键盘输入 _。 58 以下程序运行后的输出结果是 _。 main () int x=10,y=20, t=0 if(x=y) t=x;x=y;y=t;
13、 printf(“%d,%d /n“,x,y); 59 有以下程序 main() int n=0,m=l,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%dn“,x); 执行后输出的结果是 _。 60 有以下程序: #include stdio.h main() char c; while(c=getchar()!=?) putchar(-c); 程序运行时,如查从键盘输入: Y?N?回车,则输出的结果为 _。 61 有以下程序 void f( int y, int *x) y=y+*x; *X=*X+y; main() int x=2,y
14、=4; f(y, printf(“%d %dn“,x,y); 执行后输出结果是 _。 62 函数 fun的功能是计算 xn double fun(double x,int n) int i; double y=1; for(i=1;i =n;i+) y=y*x; return y; 主函数中已正确定义 m、 a、 b变量并赋值,并调用 fun函数计算: m=a4+b4-(a+b)3。实现这一计算的函数 调节器用语句为 _。 63 以下程序运行后输出结果是 _。 void swap(int x, int y) int t; t=x; x=y; y=t; printf(“%d %d “,x,y“)
15、; main() int a=3,b=4; swap(a,b); printf(“%d %dn“,a,b); 64 以下程序运行后的输出结果是 _。 #include string.h void fun(char *s,int p,int k) int i; for(i=p;i k-1;i+) si=si+2; main() char s=“abcdefg“; fun(s,3,strlen(s); puts(s); 65 函数 ssbc叩 ()的功能是对两个字符申进行比较。当 s所指字符串和 t所指字符申相等时,返回值为 0;当 s所指字符 串大于 t所指字符串时,返回值大于 0;当 s所指字
16、符串小于 t所指字符串时,返回值小于 0(功能等同于库函数 strcmp()。请填空。 #include stdio.h int sstrcmp(char *s, char *t) while(*s t+; return 66 设函数 findbig已定义为求 3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空 。 main() int findbig(int,int,int); int (*f) () ,x,y, z,big; f=_; scanf(“%d%d%d“, printf(“big=%dn“,big); 67 以下程序运行后的输出结果是 _。 fun(int x
17、) if(x/2 0) fun(x/2); printf(“%d “ ,x); main() fun(6); 68 以下程序的运行结果是 _。 # include string.h typedef struct student char name10; long sno; float score; STU; main() STU a=“zhangsan“,2001,95,b=“Shangxian“,2002,90, c=“Anhua“,2003,95,d,*p- d=a; ifstrcmp(a.nalne,b.name) 0) d=b; if(strcmp(c.name,d.name) 0)
18、d=c; printf(“%ld%sn“,d.sno,p name; 69 以下程序的功能是将字符串 s中的数字字符放入 d数组中,最后输出 d中的字符串。例如,输入字符串 :abc123edf456gh,执行程序后输出 :123456请填空 . #include stdio.h #include ctype.h main() char s80, d80; int i,j; gets(s); for (i=j=0;si!=0;i+) if( ) dj=si; j+; dj=0; puts (d); 国家二级( C语言)笔试模拟试卷 1答案与解析 1 【正确答案】 D 【试题解析】 算法的复杂度
19、主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。 2 【正确答案】 C 【试题解析】 链式存储结构的结点空间可以动态申请和释放,其数据元素的逻辑次序靠结点的指针来指示,在进行插入和删除操作时不需要移动数据元素,故链式存储结构下的线性表便于插入和删除操作。 3 【正确答案】 C 【试题解析】 数据结构一般包括三个方面的内容:数据的逻辑结构、存储结构及数据上的运算集合。数据的逻辑结构只抽象的反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。 4 【正确答案】 D 【试题解析】 结构化程
20、序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用 goto语句,总的来说可使程序结构良好、易读、易理解、易维护。 5 【正确答案】 B 【试题解析】 软件设计包括软件结构设计、数据设计、接口设计和过程设计,其中结构设计是定义软 件系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信;过程设计则是把系统结构部件转换成软件的过程性描述。 6 【正确答案】 A 【试题解析】 确认测试的任务是验证软件的功能、性能以及其他特性是否满足需求规格说明定义的各种需求;集成测试的主要目的是发现与接口有关的错
21、误。 7 【正确答案】 A 【试题解析】 数据流图包括四个方面,即加工 (输入数据经加工变换产生输出 )、数据流 (沿箭头方向传送数据的通道,一 般在旁边标注数据流名 )、存储文件 (数据源 )(表示处理过程中存放各种数据的文件 )、源和潭 (表示系统和环境的接口,属系统之外的实体 ),不包括选项中的控制流。 8 【正确答案】 C 【试题解析】 数据库中的数据具有 “集成 ”与 “共享 ”的特点,亦即数据库集中了各种应用的数据,进行统一构造与存储,从而使它们可以被不同应用程序所使用,故选项 C) 正确。 9 【正确答案】 B 【试题解析】 E-R模型即实体 -联系模型,是将现实世界的要求转化成
22、实体、联系、属性等几个基本概念以及它们之间的两种连接关系。数据 库逻辑设计阶段包括的过程有:从 E-R图向关系模式转换,逻辑模式规范化及调整,实现规范化和RDBMS,以及关系视图设计。 10 【正确答案】 A 【试题解析】 人工管理阶段是在 20世纪 50年代中期以前出现的,数据不独立,完全依赖于程序;文件系统阶段是数据库系统发展的初级阶段,数据独立性差;数据库系统阶段数据具有高度的物理独立性和一定的逻辑独立性。 11 【正确答案】 D 【试题解析】 本题考查字符串的定义和赋初值。选项 A)、 C)错误,字符数组的赋值可以逐个字符赋给数组中各元素,也可以定义字 符数组时整个字符串赋初值。选项
23、B)、 D)是给字符指针赋值,正确的格式是 char *s;s=“Beijing“;选项 B)不对。 12 【正确答案】 B 【试题解析】 本题考查对外部存储类型的结构体变量进行初始化。初始化后,data0x的值为 10, data0y的值为 100。输出 +(p- x)时, +(p- x)就相当于+data0.x,这时 data0.x先自增,再使用,所以输出 11。 13 【正确答案】 C 【试题解析】 整数可以用十进制、八进制或十六进制表示,并分为 有符号数、无符号数和长整型数,由此可知选项 A)错;选项 B),用 0386表示八进制错误,因为八进制数字为 0 7八个数字,含有 8是不对的
24、;数字前加 “0x”表示十六进制数,所以 D)不对。 14 【正确答案】 D 【试题解析】 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件,选项 A)、 B)、 C)错误。 ASCII文件又称文本文件,它的每一个字节代表一个字符。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。 15 【正确答案】 D 【试题解析】 选项 A)在 C语言中是一个合法的关系表达式,但它并不代表数学式 o =x 100。计算 0 =x 100时,从左到右结合,先计算 0 =x,其结果只能是 0或 1,然后再比较 0 100或 1 100。根据运算符的优先级,选项 B)先判断 j=0是否成立,其结果只能是 0或 1,然后再将 0或 1赋给 i。选项 C)中,(char)(65+3)为类型强制转换,将整数型数据转换为字符型。选项 D)是将一个数据赋给一个表达式,等号左边不合要求,所以错误。 16 【正确答案】 C 【试题解析】 本题考查指向指针的指针。 *c表示 c间接指向的对象 的地址,而*c是 c间接指向的对象的值。在 c*