二级C语言笔试-349
(总分:103.00,做题时间:90分钟)
一、选择题(总题数:50,分数:70.00)
1.下列选项中不属于软件生命周期开发阶段任务的是( )。
A) 软件测试 B) 概要设计 C) 软件维护 D) 详细设计
(分数:2.00)
A.
B.
C. √
D.
解析:[解析] 软件的生命周期可分为软件定义、软件开发及软件运行维护3个阶段。其中软件定义阶段的主要工作有可行性研究与计划制定和需求分析等:软件开发阶段的主要工作有概要设计、详细设计和测试等;软件运行维护阶段的主要工作是软件的运行及后期的维护等。
2.在Windows 98的开始菜单中,包括了Windows 98系统提供的 ( )
A) 全部功能
B) 初始功能
C) 主要功能
D) 部分功能
(分数:1.00)
A. √
B.
C.
D.
解析:
3.已知二叉树BT的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是______。
A) cedba B) acbed C) decab D) deabc
(分数:1.00)
A. √
B.
C.
D.
解析:[解析] 二叉树BT时后序遍历序列为dabec,故BT的根结点为c;而BT的中序遍历序是debac,即遍历序列中最后一个结点为跟结点,说明BT的右子树为空。由BT的后序遍历序列和中序遍历序列可知BT的左子树(LST)的后序遍历序列和中序遍历序列分别为dabe和deba(树是递归定义的);故LST的根结点是e,在由LST的中序遍历序列可知其左子树为d。因此BT的前序遍历序列为cedba。
4.设有如下定义:
char*a[3]="aa","bb","cc";
则以下说法正确的是______。
A) 数组a的第二个元素的值是"bb"
B) 输出"cc"使用语句printf("%s",a[2]);
C) 数组a的3个元素分别存放的是含有两个字符的一维字符数组字符常量合法
D) 数组a的3个元素中各自存放了字符'a'、'b'和'c'
(分数:1.00)
A.
B. √
C.
D.
解析:
5.有以下程序的输出结果是
int f(int b[ ][4])
int i,j,s=0;
for(j=0;j<4;j++)
i=j;
if(i>2) i=3-j;
s+=b[i][j];
return s;
main( )
int a[4][4]=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0;
printf(“%d/n”,f(a));
A)12
B)11
C)18
D)16
(分数:1.00)
A.
B.
C.
D. √
解析:[解析] 程序执行过程为:
j i i=3-j s
①0 0 不执行 1
② 1 1 不执行 3
③2 2 不执行 12
④3 3 0 16
⑤4结束循环。
6.以下叙述中错误的是______。
A) 改变函数形参的值,不会改变对应实参的值
B) 函数可以返回地址值
C) 可以给指针变量赋一个整数作为地址值
D) 当在函数的开头包括头文件stdio.h时,可以给指针变量赋NULL
(分数:2.00)
A.
B.
C. √
D.
解析:[解析] 函数的形参接收传递给函数的变元的值,它类似于局部变量,也是动态的,当函数退出时自动销毁,因此,改变函数形参的值,并不会改变对应实参的值,所以选项A是正确的。选项B是正确的,函数可以返回地址值即返回一个指针,只是必须明确声明返回的指针类型。选项C是错误的,因指向变量的指针既不是整数,也不是无符号整数,它只是某类型数据的内存地址,因此不能赋一个整数给指针变量作为地址值。选项D是正确的,头文件stdio.h中定义了宏NULL,它是一个空指针常数,若给指针变量赋NULL,即将指针初始化为空。
7.在软件开发中,需求分析阶段产生的主要文档是( )。
A) 可行性分析报告 B) 软件需求规格说明书
C) 概要设计说明书 D) 集成设计计划
(分数:2.00)
A.
B. √
C.
D.
解析:[解析] 需求分析的最终结果是生成软件需要规格说明书,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标确认,又可以作为控制软件开发进程的依据。
8.数据管理技术发展的三个阶段中,( )没有专门的软件对数据进行管理。
Ⅰ.人工管理阶段 Ⅱ.文件系统阶段 Ⅲ.数据库阶段
A) 仅Ⅰ B) 仅Ⅲ C) Ⅰ和Ⅱ D) Ⅱ和Ⅲ
(分数:2.00)
A. √
B.
C.
D.
解析:[解析] 数据管理技术发展的三个阶段中,只有人工管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。
9.在数据库设计中,将E-R图转换成关系数据模型的过程属于( )。
A) 需求分析阶段 B) 概念没计阶段
C) 逻辑设计阶段 D) 物理设计阶段
(分数:1.00)
A.
B.
C. √
D.
解析:[解析] 数据库的设计阶段包括需求分析、概念设计、逻辑设计和物理设计,其中将E-R图转换成关系数据模型的过程属于逻辑设计阶段。
10.若变量均已正确定义并赋值,以下合法的C语言赋值语句是______。
A) x=y==5; B) x=n%2.5; C) x+n=i D) x=5=4+1;
(分数:1.00)
A. √
B.
C.
D.
解析:[解析] 对于取模运算符“%”,不能用于浮点数,在表达式B中,2.5为浮点数,因此B是错误的;在赋值表达式,其左值不能为表达式,因此C是错误的;在赋值表达式,其左值不能为常数,因此D是错误的,因为在“5=4+1”中,5是常数,但出现在赋值表达式的左边。
11.下面的程序执行后,文件test.t中内容是______。
#include<stdio.h>
void fun(char *fname,char*st)
FILE*myf,int i;
myf=fopen(fname,"w");
for(i=0;i<strlen(st);i++)fputc(st[i],myf);
fclose(myf);
main()
fun("test.t","new world");fun("test.t","hello,");
A) hello, B) new worldhello C) new world D) hello, rld
(分数:1.00)
A. √
B.
C.
D.
解析:[解析] C语言中文件有文本文件与二进制文件,对文件的使用前必须先打开,打开方式有只读、写入、读写等方式。
12.有以下程序:
point( char木p)
p+=3;
main()
char a[4]='1','2','3','4',*p=a;
point(p);
printf("%c/n",*p);
程序运行后的输出结果是
A) 1 B) 2 C) 3 D) 4
(分数:1.00)
A. √
B.
C.
D.
解析:[解析] 在函数point调用时,系统自动为函数的形参p分配内存空间,并赋值为实参p的值。当执行语句“p+=3”;时,系统操作的是形参p的内存空间,更改形参p的内容,而实参指针变量p的值未受影响,即指针变量作为函数参数时,不能更改实参指针变量的指向。故在“printf("%c/n",*p)”;语句中,p仍然指向字符数组的首元素。
13.已知大写字母F的ASCII码为70,以下程序的运行结果为 ( )
#include<stdio.h>
main( )
char c1='F',c2='p';
printf("%d,%d/n",c1,c2);
A) 70,80 B) 70,81 C) 70,82 D) 70,83
(分数:1.00)
A. √
B.
C.
D.
解析:
14.若有以下说明和语句:
char *language[]="FORTRAN","BASIC","PASCAL","JAVA","C";
char**q;q=language+2;
则语句printf("%o/n",*q);( )。
A) 输出的是language[2]元素的地址
B) 输出的是字符串PASCAL
C) 输出的是language[2]元素的值,它是字符串PASCAL的首地址
D) 格式说明不正确,无法得到确定的输出
(分数:1.00)
A.
B.
C. √
D.
解析:[解析] 考查用指针数组来引用数组元素的方法。
[解题要点] 题中指针数组language中的每个元素都是一个指向一个字符串的字符指针。通过这个指针可以引用到字符串中的每一个字符。题中的q是双重字符指针,q=language+2则使指针q指向了数组language的第三个元素,是字符串“PASCAL”的首地址。
15.下列程序段中,不能正确赋值的是( )。
A) char*p,ch;
p=&ch;
scanf ("%c",&p);
B) char*p;
p=(char*)malloc(1);
scabf("%c",p);
C) char*p;
*p=getchar();
D) char*p,ch;
p=&ch;
*p=getchar();
(分数:1.00)
A.
B.
C. √
D.
解析:[解析] 地址变量p指向的存储空间一定要明确,否则可能影响程序的正确性。
16.C语言中用于结构化程序设计的三种基本结构是
A) 顺序结构、选择结构、循环结构 B) if、switch、break
C) for、while、do-while D) if、for、continue
(分数:1.00)
A. √
B.
C.
D.
解析:[解析] 结构化程序设计是由 3种基本结构组成的,它们是顺序结构、选择结构和循环结构。所以,A选项为所选。
17.有两个关系R、S如下:
由关系R通过运算得到关系S,则所使用的运算为
A) 选择 B) 投影 C) 插入 D) 连接
(分数:2.00)
A.
B. √
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论