C程序填空 关于栈和队列的基本操作 求详细解释!!!!

七芒 2018-11-12 10:20:19
#include<stdio.h>
#include<malloc.h>
typedef int SElemType;
typedef struct node
{int data;
struct node *next;
}linklist;
linklist *head;
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef struct {
SElemType *base;
SElemType *top;
int stacksize;

} SeqStack;
SeqStack *S;

linklist *creatlist()
{linklist *p,*q;
int n=0;
q=p=(struct node *)malloc(sizeof(linklist));
head=p;
p->next=NULL;
p=(struct node *)malloc(sizeof(linklist));
scanf("%d",&p->data);
while(p->data!=-1)
{
n=n+1;
;
;
p=(struct node *)malloc(sizeof(linklist));
scanf("%d",&p->data);
}
q->next=NULL;
return(head);
}

void print(linklist *head)
{linklist *p;
p=head->next;
if(p==NULL) printf("this is an empty list.\n");
else
{
do {printf("%6d",p->data);
; }while(p!=NULL);
printf("\n");
}
}


int InitStack (SeqStack *S ){
S->base = (SElemType*) malloc (STACK_INIT_SIZE * sizeof(SElemType));
if (! S->base) return 0;
; S->stacksize =STACK_INIT_SIZE;
return 1;
}




int push(SeqStack *S,SElemType e)
{
if(S->top -S->base >= S->stacksize)
{
S->base = (SElemType *)realloc(S->base,
(S->stacksize+STACKINCREMENT)*sizeof (SElemType));
if (! S->base ) return 0;
S->top =S->base+S->stacksize;
S->stacksize+= STACKINCREMENT;
}

;
return 1;
}



int Pop (SeqStack *S )
{

if(S->top ==S->base) return 0;
;
return *S->top ;
}


int stackempty(SeqStack *S)
{
if ( ) return 1;
else return 0;
}



linklist *backlinklist(linklist *head)
{
linklist *p;
p=head->next;
InitStack (S );

while(p)
{
if( push(S,p->data));
;}
p=head->next;
while(!stackempty(S))
{

p->data=Pop(S);

p=p->next;
}
return(head);
}

void main()
{
linklist *head;
head=creatlist();
print(head);
head= ;
print(head);

}
...全文
88 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
七芒 2018-11-16
  • 打赏
  • 举报
回复
我想问一下
linklist *creatlist()
{
linklist *p,*q;
int n=0;

q = p = (struct node *)malloc(sizeof(linklist));
head = p;
p->next = NULL;
p = (struct node *)malloc(sizeof(linklist));
scanf("%d", &p->data);
while(p->data!=-1)
{
n = n+1;
q->next = p;
q = p;
p = (struct node *)malloc(sizeof(linklist));
scanf("%d", &p->data);
}
q->next = NULL;

return(head);
}
里面的int n 有什么用嘛?每次循环还要n+1?
午后是傻狗 2018-11-14
  • 打赏
  • 举报
回复
gdb调试,
赵4老师 2018-11-12
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
自信男孩 2018-11-12
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

typedef int SElemType;

typedef struct node
{
int data;
struct node *next;
}linklist;

linklist *head;

#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10

typedef struct {
SElemType *base;
SElemType *top;
int stacksize;
} SeqStack;

SeqStack *S;

linklist *creatlist()
{
linklist *p,*q;
int n=0;

q = p = (struct node *)malloc(sizeof(linklist));
head = p;
p->next = NULL;
p = (struct node *)malloc(sizeof(linklist));
scanf("%d", &p->data);
while(p->data!=-1)
{
n = n+1;
q->next = p;
q = p;
p = (struct node *)malloc(sizeof(linklist));
scanf("%d", &p->data);
}
q->next = NULL;

return(head);
}

void print(linklist *head)
{
linklist *p;

p = head->next;
if(p==NULL) {
printf("this is an empty list.\n");
return;
}
do {
printf("%6d",p->data);
p = p->next;
}while(p);

printf("\n");
}


int InitStack(SeqStack **S )
{
*S = (SeqStack *)malloc(sizeof(SeqStack));
if (!(*S))
return 0;

(*S)->base = (SElemType*)malloc(STACK_INIT_SIZE * sizeof(SElemType));
if ((*S)->base == NULL)
return 0;
(*S)->top = (*S)->base;
(*S)->stacksize = STACK_INIT_SIZE;

return 1;
}

int push(SeqStack *S,SElemType e)
{
if(S->top - S->base >= S->stacksize)
{
S->base = (SElemType *)realloc(S->base,
(S->stacksize + STACKINCREMENT)*sizeof (SElemType));
if (!S->base )
return 0;
S->top = S->base + S->stacksize;
S->stacksize += STACKINCREMENT;
}

*(S->top++) = e;

return 1;
}



int Pop (SeqStack *S )
{

if(S->top == S->base)
return 0;

S->top--;
return *S->top ;
}


int stackempty(SeqStack *S)
{
if (S->top == S->base)
return 1;
else return 0;
}



linklist *backlinklist(linklist *head)
{
linklist *p;
p = head->next;
InitStack (&S);

while(p)
{
if( push(S, p->data));
p = p->next;
}
p = head->next;

while(!stackempty(S))
{

p->data = Pop(S);
p = p->next;
}
return(head);
}

int main()
{
linklist *head;
head=creatlist();
print(head);
head = backlinklist(head);
print(head);

return 0;
}


参考一下吧
计算机二级C的出题范围主要涵盖C语言的基础知识和编程实践。 在基础知识方面,考生需要掌握C语言的历史和特点、数据类型、变量和常量、运算符和表达式、控制语句、数组、字符串、指针、函数、结构体、共用体、位运算等基本概念。此外,还需理解C语言的特性,如动态内存分配、文件操作、预处理器、多文件编程、函数指针、回调函数、指针与数组、指针与字符串、结构体与指针、链表、栈、队列、递归等。 在编程实践方面,考生需要具备常见算法实现、排序算法、查找算法、链表操作、栈和队列的应用、递归算法、文件操作、图形界面编程等编程能力。同时,应掌握C语言程序设计的基本流程、程序设计思路、程序设计技巧,以及程序设计中的常见错误和调试技巧。 至于具体的出题形式,计算机二级C语言程序设计考试一般包括单项选择题、程序填空题、程序改错题和程序设计题。选择题部分主要考察公共基础知识,包括数据说明、函数的开始和结束标志、程序中的注释等内容。而程序填空题、程序改错题和程序设计题则更注重对考生编程实践能力的考察。 请注意,具体的出题范围和内容可能会随着考试政策的调整而有所变化,建议考生关注最新的考试大纲和官方通知,以获取最准确
1. 经过以下栈运算后,x的值是( )。 InitStack(s); Push(s,'a'); Push(s,'b'); Pop(s,x); Gettop(s,x); A. a B. b C. 1 D. 0 2.循环队列存储在数组A[0..m]中,则入队时的操作为( )。 A.rear=rear+1 B. rear=(rear+1) mod(m-1) C. rear=(rear+1)mod m D. rear=(rear+1) mod(m+1) 3. 栈和队列的共同点是( )。 A.都是先进先出 B.都是先进后出 C.只允许在端点处插入和删除元素 D.没有共同点 4. 若用一个大小为6的数组来实现循环队列,且当 rear 和 front 的值分别为 0 和 3。当从队列中删除一个元素,再插入两个元素后,rear 和 front 的值分别为:( )。 A.1 和 5 B.2 和 4 C.4 和 2 D.5 和 1 5. 程序填顺序循环队列的类型定义如下: typedef int ET; typedef struct{ ET *base; int Front; int Rear; int Size; }Queue; Queue Q; 队列 Q 是否“满”的条件判断为( C )。 A.(Q.Front+1)=Q.Rear B.Q.Front=(Q.Rear+1) C.Q.Front=(Q.Rear+1)% Q.size D.(Q.Front+1) % Q.Size=(Q.Rear+1)% Q.size 6. 若进栈序列为1,2,3,4,进栈过程中可以出栈,则( )不可能是一个出栈序列。 A.3,4,2,1 B.2,4,3,1 C.1,4,2,3 D.3,2,1,4 7. 向顺序存储的循环队列 Q 中插入新元素的过程分为三步: ( )。 A.进行队列是否空的判断,存入新元素,移动队尾指针 B.进行队列是否满的判断,移动队尾指针,存入新元素 C.进行队列是否空的判断,移动队尾指针,存入新元素 D.进行队列是否满的判断,存入新元素,移动队尾指针 8. 关于栈和队列,( )说法不妥。 A. 栈是后进先出表 B. 队列是先进先出表 C. 递归函数在执行时用到栈 D. 队列非常适用于表达式值的算符优先法 9. 若用数组S[0..m]作为两个栈S1和S2的共同存储结构,对任何一个栈,只有当S全满时才不能作入栈操作。为这两个栈分配空间的最佳方案是( )。 A.S1的栈底位置为0,S2的栈底位置为m B.S1的栈底位置为0,S2的栈底位置为m/2 C.S1的栈底位置为1,S2的栈底位置为m D.S1的栈底位置为1,S2的栈底位置为m/2 二、程序填空题(没特别标注分数的空的为3分,共 23 分)。 1.下面的算法是将一个整数e压入堆栈S,请在空格处填上适当的语句实现该操作。 typedef struct{ int *base; int *top; int stacksize; }SqStack; int Push(SqStack S,int e) { if ( S.top- S.base>= S.stacksize ) { S.base=(int *) realloc(S.base,(S.stacksize+1)*sizeof(int)); if( !S.base ) { printf(“Not Enough Memory!\n”); return(0); } S.top= S.base+ S.stacksize ; S.stacksize= S.stacksize+1 ; } * S.top++=e ; return 1; } 2. 在表达式:6+5+3*7/(4+9/3-2)值过程中,处理到2时刻,运算符栈的状态为: + / ( - (4分),操作数栈的内容为11,21,7,2(4分)。 3. 递调用时,处理参数及返回地址,要用一种称为 栈 的数据结构。 4. 设循环队列中数组的下标范围是1-n,其头尾指针分别为f和r,则其元素个数为_(r-f+n) mod n。
(内有最新习题和ppt教程) 最新二级公共基础知识填空40题+80选择题 (1) 算法的复杂度主要包括______复杂度和空间复杂度。 答:时间 (2) 数据的逻辑结构在计算机存储空间中的存放形式称为数据的______。 答:模式#逻辑模式#概念模式 (3) 若按功能划分,软件测试的方法通常分为白盒测试方法和______测试方法。 答:黑盒 (4) 如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体"工人"与实体"设备"之间存在______联系。 答:一对多#1:N#1:n (5) 关系数据库管理系统能实现的专门关系运算包括选择、连接和______。 答:投影 (6) 在先左后右的原则下,根据访问根结点的次序,二*树的遍历可以分为三种:前序遍历、______遍历和后序遍历。 答:中序 (7) 结构化程序设计方法的主要原则可以概括为自顶向下、逐步精、______和限制使用goto语句。 答:模块化 (8) 软件的调试方法主要有:强行排错法、______和原因排除法。 答:回溯法 (9) 数据库系统的三级模式分别为______模式、内部级模式与外部级模式。 答:概念#概念级 (10) 数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。 答:数据存储 (11) 设一棵完全二*树共有500个结点,则在该二*树中有______个叶子结点。 答:250 (12) 在最坏情况下,冒泡排序的时间复杂度为______。 答:n(n-1)/2#n*(n-1)/2#O(n(n-1)/2)#O(n*(n-1)/2) (13) 面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个______。 答:实体 (14) 软件的需分析阶段的工作,可以概括为四个方面:______、需分析、编写需规格说明书和需评审。 答:需获取 (15) ______是数据库应用的核心。 答:数据库设计 (16) 数据结构包括数据的______结构和数据的存储结构。 答:逻辑 (17) 软件工程研究的内容主要包括:______技术和软件工程管理。 答:软件开发 (18) 与结构化需分析方法相对应的是______方法。 答:结构化设计 (19) 关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。 答:参照完整性 (20) 数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。 答:概念 (21) 栈的基本运算有三种:入栈、退栈和______。 答:读栈顶元素#读栈顶的元素#读出栈顶元素 (22) 在面向对象方法中,信息隐蔽是通过对象的______性来实现的。 答:封装 (23) 数据流的类型有______和事务型。 答:变换型 (24) 数据库系统中实现各种数据管理功能的核心软件称为______。 答:数据库管理系统#DBMS (25) 关系模型的数据*纵即是建立在关系上的数据*纵,一般有______、增加、删除和修改四种*作。 答:查询 (26) 实现算法所需的存储单元多少和算法的工作量大小分别称为算法的 ______。 答:空间复杂度和时间复杂度 (27) 数据结构包括数据的逻辑结构、数据的 ______以及对数据的*作运算。 答:存储结构 (28) 一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的______。 答:可重用性 (29) 面向对象的模型中,最基本的概念是对象和 ______。 答:类 (30) 软件维护活动包括以下几类:改正性维护、适应性维护、______维护和预防性维护。 答:完善性 (31) 算法的基本特征是可行性、确定性、______和拥有足够的情报。 答:有穷性 (32) 顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。 答:相邻 (33) Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向______的设计方法。 答:数据结构 (34) 数据库设计分为以下6个设计阶段:需分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。 答:概念设计阶段#数据库概念设计阶段 (35) 数据库保护分为:安全性控制 、______、并发性控制和数据的恢复。 答:完整性控制 (36) 测试的目的是暴露错误,评价程序的可*性;而______的目的是发现错误的位置并改正错误。 答:调试 (37) 在最坏情况下,堆排序需要比较的次数为______。 答:O(nlog2n) (38) 若串s="Program",则其子串的数目是______。 答:29 (39) 一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于______的联系。 答:1对多#1:N (40) 数据库管理系统常见的数据模型有层次模型、网状模型和______三种。 答:关系模型 (1) 下面叙述正确的是______。(C) A. 算法的执行效率与数据的存储结构无关 B. 算法的空间复杂度是指算法程序中指令(或语句)的条数 C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止 D. 以上三种描述都不对 (2) 以下数据结构中不属于线性数据结构的是______。(C) A. 队列 B. 线性表 C. 二*树 D. 栈 (3) 在一棵二*树上第5层的结点数最多是______。(B) A. 8 B. 16 C. 32 D. 15 (4) 下面描述中,符合结构化程序设计风格的是______。(A) A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B. 模块只有一个入口,可以有多个出口 C. 注重提高程序的执行效率 D. 不使用goto语句 (5) 下面概念中,不属于面向对象方法的是______。(D) A. 对象 B. 继承 C. 类 D. 过程调用 (6) 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。(B) A. 可行性分析 B. 需分析 C. 详细设计 D. 程序编码 (7) 在软件开发中,下面任务不属于设计阶段的是______。(D) A. 数据结构设计 B. 给出系统模块结构 C. 定义模块算法 D. 定义需并建立系统模型 (8) 数据库系统的核心是______。(B) A. 数据模型 B. 数据库管理系统 C. 软件工具 D. 数据库 (9) 下列叙述中正确的是______。(C) A. 数据库是一个独立的系统,不需要*作系统的支持 B. 数据库设计是指设计数据库管理系统 C. 数据库技术的根本目标是要解决数据共享的问题 D. 数据库系统中,数据的物理结构必须与逻辑结构一致 (10) 下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。(A) A. 内模式 B. 外模式 C. 概念模式 D. 逻辑模式 (11) 算法的时间复杂度是指______。(C) A. 执行算法程序所需要的时间 B. 算法程序的长度 C. 算法执行过程中所需要的基本运算次数 D. 算法程序中的指令条数 (12) 下列叙述中正确的是______。(A) A. 线性表是线性结构 B. 栈与队列是非线性结构 C. 线性链表是非线性结构 D. 二*树是线性结构 (13) 设一棵完全二*树共有699个结点,则在该二*树中的叶子结点数为______。(B) A. 349 B. 350 C. 255 D. 351 (14) 结构化程序设计主要强调的是______。(B) A. 程序的规模 B. 程序的易读性 C. 程序的执行效率 D. 程序的可移植性 (15) 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。(D) A. 概要设计 B. 详细设计 C. 可行性分析 D. 需分析 (16) 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。(A) A. 控制流 B. 加工 C. 数据存储 D. 源和潭 (17) 软件需分析阶段的工作,可以分为四个方面:需获取、需分析、编写需规格说明书以及______。(B) A. 阶段性报告 B. 需评审 C. 总结 D. 都不正确 (18) 下述关于数据库系统的叙述中正确的是______。(A) A. 数据库系统减少了数据冗余 B. 数据库系统避免了一切冗余 C. 数据库系统中数据的一致性是指数据类型的一致 D. 数据库系统比文件系统能管理更多的数据 (19) 关系表中的每一横行称为一个______。(A) A. 元组 B. 字段 C. 属性 D. 码 (20) 数据库设计包括两个方面的设计内容,它们是______。(A) A. 概念设计和逻辑设计 B. 模式设计和内模式设计 C. 内模式设计和物理设计 D. 结构特性设计和行为特性设计 (21) 算法的空间复杂度是指______。(D) A. 算法程序的长度 B. 算法程序中的指令条数 C. 算法程序所占的存储空间 D. 算法执行过程中所需要的存储空间 (22) 下列关于栈的叙述中正确的是______。(D) A. 在栈中只能插入数据 B. 在栈中只能删除数据 C. 栈是先进先出的线性表 D. 栈是先进后出的线性表 (23) 在深度为5的满二*树中,叶子结点的个数为______。(C) A. 32 B. 31 C. 16 D. 15 (24) 对建立良好的程序设计风格,下面描述正确的是______。(A) A. 程序应简单、清晰、可读性好 B. 符号名的命名要符合语法 C. 充分考虑程序的执行效率 D. 程序的注释可有可无 (25) 下面对对象概念描述错误的是______。(A) A. 任何对象都必须有继承性 B. 对象是属性和方法的封装体 C. 对象间的通讯*消息传递 D. *作是对象的动态性属性 (26) 下面不属于软件工程的3个要素的是______。(D) A. 工具 B. 过程 C. 方法 D. 环境 (27) 程序流程图(PFD)中的箭头代表的是______。(B) A. 数据流 B. 控制流 C. 调用关系 D. 组成关系 (28) 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是______。(A) A. 数据库系统 B. 文件系统 C. 人工管理 D. 数据项管理 (29) 用树形结构来表示实体之间联系的模型称为______。(B) A. 关系模型 B. 层次模型 C. 网状模型 D. 数据模型 (30) 关系数据库管理系统能实现的专门关系运算包括______。(B) A. 排序、索引、统计 B. 选择、投影、连接 C. 关联、更新、排序 D. 显示、打印、制表 (31) 算法一般都可以用哪几种控制结构组合而成______。(D) A. 循环、分支、递归 B. 顺序、循环、嵌套 C. 循环、递归、选择 D. 顺序、选择、循环 (32) 数据的存储结构是指______。(B) A. 数据所占的存储空间量 B. 数据的逻辑结构在计算机中的表示 C. 数据在计算机中的顺序存储方式 D. 存储在外存中的数据 (33) 设有下列二*树: 对此二*树中序遍历的结果为______。(B) A. ABCDEF B. DBEAFC C. ABDECF D. DEBFCA (34) 在面向对象方法中,一个对象请另一对象为其服务的方式是通过发送______。(D) D. 消息 A. 调用语句 B. 命令 C. 口令 (35) 检查软件产品是否符合需定义的过程称为______。(A) A. 确认测试 B. 集成测试 C. 验证测试 D. 验收测试 (36) 下列工具中属于需分析常用工具的是______。(D) A. PAD B. PFD C. N-S D. DFD (37) 下面不属于软件设计原则的是______。(C) A. 抽象 B. 模块化 C. 自底向上 D. 信息隐蔽 (38) 索引属于______。(B) A. 模式 B. 内模式 C. 外模式 D. 概念模式 (39) 在关系数据库中,用来表示实体之间联系的是______。(D) A. 树结构 B. 网结构 C. 线性表 D. 二维表 (40) 将E-R图转换到关系模式时,实体与联系都可以表示成______。(B) A. 属性 B. 关系 C. 键 D. 域 (41) 在下列选项中,哪个不是一个算法一般应该具有的基本特征______。(C) A. 确定性 B. 可行性 C. 无穷性 D. 拥有足够的情报 (42) 希尔排序法属于哪一种类型的排序法______。(B) A. 交换类排序法 B. 插入类排序法 C. 选择类排序法 D. 建堆排序法 (43) 下列关于队列的叙述中正确的是______。(C) A. 在队列中只能插入数据 B. 在队列中只能删除数据 C. 队列是先进先出的线性表 D. 队列是先进后出的线性表 (44) 对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。(B) A. N+1 B. N C. (N+1)/2 D. N/2 (45) 信息隐蔽的概念与下述哪一种概念直接相关______。(B) A. 软件结构定义 B. 模块独立性 C. 模块类型划分 D. 模拟耦合度 (46) 面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是______。(C) A. 模拟现实世界中不同事物之间的联系 B. 强调模拟现实世界中的算法而不强调概念 C. 使用现实世界的概念抽象地思考问题从而自然地解决问题 D. 鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考 (47) 在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。(C) A. 详细设计 B. 需分析 C. 总体设计 D. 编程调试 (48) 软件调试的目的是______。(B) A. 发现错误 B. 改正错误 C. 改善软件的性能 D. 挖掘软件的潜能 (49) 按条件f对关系R进行选择,其关系代数表达式为______。(C) A. R|X|R B. R|X|R f C. бf(R) D. ∏f(R) (50) 数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是______。(D) A. 自顶向下 B. 由底向上 C. 由内向外 D. 由整体到局部 (51) 在计算机中,算法是指______。(C) A. 查询方法 B. 加工方法 C. 解题方案的准确而完整的描述 D. 排序方法 (52) 栈和队列的共同点是______。(C) A. 都是先进后出 B. 都是先进先出 C. 只允许在端点处插入和删除元素 D. 没有共同点 (53) 已知二*树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是______。(A) A. cedba B. acbed C. decab D. deabc (54) 在下列几种排序方法中,要内存量最大的是______。(D) A. 插入排序 B. 选择排序 C. 快速排序 D. 归并排序 (55) 在设计程序时,应采纳的原则之一是______。(A) A. 程序结构应有助于读者理解 B. 不限制goto语句的使用 C. 减少或取消注解行 D. 程序越短越好 (56) 下列不属于软件调试技术的是______。(B) A. 强行排错法 B. 集成测试法 C. 回溯法 D. 原因排除法 (57) 下列叙述中,不属于软件需规格说明书的作用的是______。(D) A. 便于用户、开发人员进行理解和交流 B. 反映出用户问题的结构,可以作为软件开发工作的基础和依据 C. 作为确认测试和验收的依据 D. 便于开发人员进行需分析 (58) 在数据流图(DFD)中,带有名字的箭头表示______。(C) A. 控制程序的执行顺序 B. 模块之间的调用关系 C. 数据的流向 D. 程序的组成成分 (59) SQL语言又称为______。(C) A. 结构化定义语言 B. 结构化控制语言 C. 结构化查询语言 D. 结构化*纵语言 (60) 视图设计一般有3种设计次序,下列不属于视图设计的是______。(B) A. 自顶向下 B. 由外向内 C. 由内向外 D. 自底向上 (61) 数据结构中,与所使用的计算机无关的是数据的______。(C) A. 存储结构 B. 物理结构 C. 逻辑结构 D. 物理和存储结构 (62) 栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是______。(D) A. ABCED B. DBCEA C. CDABE D. DCBEA (63) 线性表的顺序存储结构和线性表的链式存储结构分别是______。(B) A. 顺序存取的存储结构、顺序存取的存储结构 B. 随机存取的存储结构、顺序存取的存储结构 C. 随机存取的存储结构、随机存取的存储结构 D. 任意存取的存储结构、任意存取的存储结构 (64) 在单链表中,增加头结点的目的是______。(A) A. 方便运算的实现 B. 使单链表至少有一个结点 C. 标识表结点中首结点的位置 D. 说明单链表是线性表的链式存储实现 (65) 软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指______。(B) A. 模块间的关系 B. 系统结构部件转换成软件的过程描述 C. 软件层次结构 D. 软件开发过程 (66) 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为______。(B) A. PAD图 B. N-S图 C. 结构图 D. 数据流图 (67) 数据处理的最小单位是______。(C) A. 数据 B. 数据元素 C. 数据项 D. 数据结构 (68) 下列有关数据库的描述,正确的是______。(C) A. 数据库是一个DBF文件 B. 数据库是一个关系 C. 数据库是一个结构化的数据集合 D. 数据库是一组文件 (69) 单个用户使用的数据视图的描述称为______。(A) A. 外模式 B. 概念模式 C. 内模式 D. 存储模式 (70) 需分析阶段的任务是确定______。(D) A. 软件开发方法 B. 软件开发工具 C. 软件开发费用 D. 软件系统功能 (71) 算法分析的目的是______。(D) A. 找出数据结构的合理性 B. 找出算法中输入和输出之间的关系 C. 分析算法的易懂性和可*性 D. 分析算法的效率以改进 (72) n个顶点的强连通图的边数至少有______。(C) A. n-1 B. n(n-1) C. n D. n+1 (73) 已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是______。(B) A. 堆排序 B. 直接插入排序 C. 快速排序 D. 直接选择排序 (74) 用链表表示线性表的优点是______。(A) A. 便于插入和删除*作 B. 数据元素的物理顺序与逻辑顺序相同 C. 花费的存储空间较顺序存储少 D. 便于随机存取 (75) 下列不属于结构化分析的常用工具的是______。(D) A. 数据流图 B. 数据字典 C. 判定树 D. PAD图 (76) 软件开发的结构化生命周期方法将软件生命周期划分成______。(A) A. 定义、开发、运行维护 B. 设计阶段、编程阶段、测试阶段 C. 总体设计、详细设计、编程调试 D. 需分析、功能定义、系统设计 (77) 在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是______。(C) A. 循环的集合 B. 地址的集合 C. 路径的集合 D. 目标的集合 (78) 在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有______。(D) A. 数据无冗余 B. 数据可共享 C. 专门的数据管理软件 D. 特定的数据模型 (79) 分布式数据库系统不具有的特点是______。(B) A. 分布式 B. 数据冗余 C. 数据分布性和逻辑整体性 D. 位置透明性和复制透明性 (80) 下列说法中,不属于数据模型所描述的内容的是______。(C) A. 数据结构 B. 数据*作 C. 数据查询 D. 数据约束

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧