您当前的位置:首页 > 互联网教程

C语言,关于栈的问题 给下面的程序加上注释,并给出运行结果:

发布时间:2025-05-12 06:18:31    发布人:远客网络

C语言,关于栈的问题 给下面的程序加上注释,并给出运行结果:

一、C语言,关于栈的问题 给下面的程序加上注释,并给出运行结果:

1、void initstack(SEQSTACK*s)//初始化堆栈

2、int empty(SEQSTACK*s)//判断堆栈是否为空

3、int push(SEQSTACK*s,DATATYPE2 x)//将x压入堆栈s

4、 if(s->top==MAXSIZE-1)//如果堆栈满,则显示overflow

5、DATATYPE2 pop(SEQSTACK*s)//弹出堆栈s的顶层元素

6、{printf("underflow\n");//如果堆栈为空,则显示underflow

7、push(p,x);push(p,'a');push(p,y);//将'c','a','k'依次压入堆栈

8、x=pop(p);//弹出最顶层元素'k'给x,此时堆栈中有两个元素'a','c'

9、push(p,'t');push(p,x);//将't','k'依次压入堆栈

10、x=pop(p);//弹出最顶层元素'k'给x,此时堆栈中有三个元素't','a','c'

11、push(p,'s');//将's'压入堆栈,此时堆栈中有4个元素's','t','a','c'

12、while(!empty(p))//将堆栈中的所有元素依次弹出

13、printf("%c",x);//显示'k'

二、C语言程序设计:现代方法:第2版的目录

程序计算箱子的空间重量(改进版) 16

3.2.3易混淆的printf函数和scanf

程序计算通用产品代码的校验位 38

7.3.2有符号字符和无符号字符 95

7.3.6用scanf和printf读/写字符 98

程序检查数中重复出现的数字 116

8.1.4对数组使用sizeof运算符 117

10.2.1示例:用外部变量实现栈 156

11.2取地址运算符和间接寻址运算符 173

12.3.1数组型实际参数(改进版) 189

12.4.4用多维数组名作为指针 192

13.1.1字符串字面量中的转义序列 198

13.1.3如何存储字符串字面量 199

13.1.5字符串字面量与字符常量 200

14.4.4#elif指令和#else指令 239

15.2.2共享宏定义和类型定义 250

15.2.7头文件中的#error指令 254

16.2.3结构作为参数和返回值 272

16.4.3为联合添加“标记字段” 284

16.5.3用枚举声明“标记字段” 286

17.2.3动态分配字符串的数组 297

17.3.1使用malloc函数为数组分配

17.5.4在链表的开始处插入结点 304

程序维护零件数据库(改进版) 309

18.4.2使用类型定义来简化声明 336

19.4.1为栈抽象数据类型定义接口 352

19.4.2用定长数组实现栈抽象数据

19.4.3改变栈抽象数据类型中数据

19.4.4用动态数组实现栈抽象数据

19.4.5用链表实现栈抽象数据类型 357

19.5抽象数据类型的设计问题 359

19.5.4新语言中的抽象数据类型 360

20.1.2按位求反运算符、按位与运

20.3.2用联合提供数据的多个视角 370

21.5(stdbool.h):布尔类型和值 381

22.1.3文本文件与二进制文件 385

22.3.4…printf转换说明示例 396

22.3.10检测文件末尾和错误条件 401

第23章库对数值和字符数据的支持 419

23.1(float.h):浮点类型的特性 419

23.2(limits.h):整数类型的大小 421

23.3(math.h):数学计算(c89) 422

23.3.6就近取整函数、绝对值函数

23.4(math.h):数学计算(c99) 425

23.6(string.h):字符串处理 437

24.3.3预定义的信号处理函数 450

24.4(setjmp.h):非局部跳转 452

25.2.5多字节/宽字符转换函数 463

25.2.6多字节/宽字符串转换函数 465

25.3.3(iso646.h):拼写替换 467

25.5(wchar.h):扩展的多字节和宽字符

25.5.4通用的宽字符串实用工具 471

25.6(wctype.h):宽字符分类和映射实

25.6.2可扩展的宽字符分类函数 478

25.6.3宽字符大小写映射函数 478

25.6.4可扩展的宽字符大小写映射

26.2(stdlib.h):通用的实用工具 485

程序测试伪随机序列生成函数 488

第27章c99对数学计算的新增支持 503

27.1.2对指定宽度整数类型的限制 504

27.1.3对其他整数类型的限制 505

27.2(inttypes.h):整数类型的格式

27.4(complex.h):复数算术运算 511

27.6.1浮点状态标志和控制模式 518

三、单片机用什么语言编程

1、C语言。单片机C语言是一种编译语言,具有编译语言的特点。C语言具有功能丰富的库函数、计算速度快、编译效率高、可移植性好,可直接控制系统。此外,C语言程序具有完整的程序模块结构,为软件开发中模块化程序设计方法的使用提供了有力的保证。

2、汇编语言。它的主要优点是占用资源少,程序执行效率高。因为它有一个指令,所以每个指令都很清晰,堆叠和调整都很容易控制,调试也很方便。但是不同类型的单片机可能有不同的编码语言,所以不容易移植。

3、PL/M编程语言。P/M是一种具有L/M语言的高级语言,不仅具有L/M语言的高级汇编,而且直接利用CPU的硬件特性进行编程。因此,与其他高级语言相比,它具有更多的功能和更广泛的应用,尤其是在16台单片机的应用领域。

4、BASIC编程语言。BASIC是一种高级语言,其英文意思是初学者通用符号代码。在过去的几十年里,BASIC语言被认为是初学者编程的语言,已经从QBASIC发展到很多版本,有很多结构化的思维和编程方法,比如函数、模块、局部变量、全局变量、数据传输等。

1、单片机编程的特点对单片机编程来说,首先要考虑的是单片机的程序空间和数据空间都是有限的,所以要让程序尽量短小精悍,以节省程序占用的存储空间。

2、单片机编程的一个主要对象是对单片机的端口和内部寄存器的操作和配置,这个需要比较精确的时序控制。

3、单片机算法运算中,尽量使用加法、减法、移位运算,因为乘法和除法运算会非常费时间,尤其是除法,会耗费很多时间,这对于速度本身就有限制的单片机来说,是一个很大的负担。

4、高级语言编写单片机程序的缺陷高级语言可以实现更为优化的算法,更为方便的执行方案,但是,高级语言对程序存储空间的占用要比汇编和C语言多很多。这是最致命的一点,单片机有限的存储空间需要靠精打细算来设计程序,根本经不起高级语言臃肿的代码体积。