c习题文档格式.docx
《c习题文档格式.docx》由会员分享,可在线阅读,更多相关《c习题文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
线性结构与非线性结构。
线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。
(3)下面关于完全二叉树的叙述中,错误的是_________。
A)除了最后一层外,每一层上的结点数均达到最大值
B)可能缺少若干个左右叶子结点
C)完全二叉树一般不是满二叉树
D)具有结点的完全二叉树的深度为[log2n]+1
B
满二叉树指除最后一层外每一层上所有结点都有两个子结点的二叉树。
完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干子结点(叶子结点)的二叉树。
(4)结构化程序设计主要强调的是_________。
A)程序的规模 B)程序的易读性
C)程序的执行效率 D)程序的可移植性
结构化程序设计主要强调的是结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以保证程序的正确性。
(5)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是________。
A)概要设计 B)详细设计
C)可行性分析 D)需求分析
D
需求分析是对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。
编写软件规格说明书及初步的用户手册,提交评审。
(6)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是_________。
A)控制流 B)加工
C)数据存储 D)源和潭
数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。
数据流图中的主要图形元素有:
加工(转换)、数据流、存储文件(数据源)、源和潭。
(7)软件需求分析一般应确定的是用户对软件的__________。
A)功能需求 B)非功能需求
C)性能需求 D)功能需求和非功能需求
软件需求分析中需要构造一个完全的系统逻辑模型,理解用户提出的每一功能与性能要求,是用户明确自己的任务。
因此,需求分析应确定用户对软件的功能需求和非功能需求。
(8)下述关于数据库系统的叙述中正确的是________。
A)数据库系统减少了数据冗余
B)数据库系统避免了一切冗余
C)数据库系统中数据的一致性是指数据类型的一致
D)数据库系统比文件系统能管理更多的数据
由数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。
所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值。
(9)关系表中的每一横行称为一个________。
A)元组 B)字段
C)属性 D)码
在关系数据库中,关系模型采用二维表来表示,简称"
表"
。
二维表是由表框架及表元组组成。
在表框架中,按行可以存放数据,每行数据称为元组。
(10)数据库设计包括两个方面的设计内容,它们是________。
A)概念设计和逻辑设计 B)模式设计和内模式设计
C)内模式设计和物理设计 D)结构特性设计和行为特性设计
数据库设计可分为概念设计与逻辑设计。
概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。
逻辑设计的主要工作是将ER图转换为指定的RDBMS中的关系模型。
(11)请读程序:
#include<
stdio.h>
main()
{
inta;
floatb,c;
scanf("
%2d%3P%4f’,&
a,&
b,&
c);
printf("
\na=%d,b=%ec。
%f\n"
,a,b,c);
}
若运行时从键盘上输入9876543210l,则上面程序的输出结果是________。
A)a=98,b=765,c=4321
B)a=10,b=432,c=8765
C)a=98,b=765.000000,c=4321.000000
D)a=98,b=765.0,c=4321.0
scanf()把用户从键盘录入的数字的第1、2位存入整型变量a;
把第3、4、5位存入单精度实型变量b,把第6、7、8、9位存入单精度实型变量c,用户录入的第10位被scanf()遗弃。
这时变量a、b、c的值分别为:
98、765.000000、4321.000000。
(12)一个良好的算法由下面的基本结构组成,但不包括__________。
A)顺序结构 B)选择结构
C)循环结构 D)跳转结构
1966年,Bohra和Jacopini提出了以下三种基本结构,用这三种基本结构作为表示一个良好算法的基本单元:
1、顺序结构;
2、选择结构;
3、循环结构。
(13)请选出以下程序的输出结果________。
sub(x,y,z)
intx,y,*z:
{*z=y-x;
}
main(){
inta,b,c;
sub(10,5,&
a);
sub(7,a,&
b);
sub(a,b,&
%d,%d,%d\n"
A)5,2,3 B)-5,-12,-7
C)-5,-12,-17 D)5,-2,-7
sub()函数的作用是将形参y和x的差赋给了z指向的那个内存地址,所以在sub(10,5,&
a/I,10和5属于值传递,a是属于地址传递,也就是a与z指向了同一个存储单元,在执行函数后,a的值随*z变化,所以此次函数被调用后,a的值为y-x=-5,同理可知,在sub(7,a,&
b)后,b的值发生变化,其值为-5-7=-12,在sub(a,b,&
c)后,c的值发生变化,其值为-12-(-5)=-7。
(14)下面程序在屏幕上的输出是________。
ab\b\bc"
);
A)ab\b\bc B)ac
C)abc
D)abc
c语言中允许使用一种特殊形式的字符常量,、就是以一个"
\"
开头的字符序列,这样的字符称为"
转义字符"
常用的转义字符有:
\n,换行;
\t,水平制表;
\b,退格;
\r,回车。
(15)若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是_______。
A)pb=&
x;
B)pb=x;
C)*pb=&
D)*pb=*x
选项A将变量x的地址赋给指针变量pb,使pb指向x’选项B是将x的值当作地址赋给指针pb,Db指向一个地址等于x值的内存单元;
选项c将x的地址赋给指针pb指向的地址等于x的内存单元。
(16)设整型数i=5,则printf("
%d"
,i+++++i);
的输出为________。
A)10 B)1l
C)12 D)语法错误
c语言中有基本的算术运算符(+、-、*、/)还包括自增自减运算符(++、--),在c语言解析表达式时,它总是进行贪婪咀嚼,这样,该表达式就被解析为i+++++i,显然该表达式不合c语言语法。
(17)若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元
int *p;
p=___________malloc(sizeof(im));
则应填入__________。
A)int B)int
C)(*int) D)(int*)
不论p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型+)。
(18)下面程序输出的结果是__________。
inti=5,J=9,x;
x=(I==j?
i:
(j=7));
\n%d,%d"
,I,J);
A)5,7 B)5,5
C)语法错误 D)7,5
条件表达式的一般形式为:
表达式I?
表达式2:
表达式3;
先求解表达式1,若为真则求解表达式2;
若表达式l的值为假,则求解表达式3。
本题中先判断i==j,不等,执行j=7;
然后执行x=7。
故本题为A。
(19)若执行下面程序时从键盘上输入5,
intx:
,&
x);
if(x++>
5)printf("
%d\n"
,x);
elseprintf("
x--);
则输出是________。
A)7 B)6
C)5 D)4
根据c语言的语法,x++是在使用x之后,再将x的值加1,在if语句中,x的值为5,条件不成立,执行else后面的语句,因为x的值已经加1,为6,所以打印结果为6。
(20)若有以下定义和语句:
inta[]={l,2,3,4,5,6,7,8,9,10},*p=a;
则值为3的表达式是_________。
A)p+=2,*(p++) B)p+=2,*++p