- 博客(38)
- 收藏
- 关注
原创 C++ Primer Plus 第2章_开始学习C++_代码和练习题
【代码】C++ Primer Plus 第2章_开始学习C++_代码和练习题。
2022-09-12 17:54:23
1350
1
原创 C Primer Plus 第11章_字符串和字符串函数_代码和练习题
字符串是以空字符(\0)结尾的char类型数据。strings1.c 演示在程序中表示字符串的几种方式(1)字符串字面量(字符串常量)用双引号括起来的内容称为字符串字面量。双引号中的字符和编译器自动加入末尾的\0字符,都作为字符串储存在内存中。字符串常量属于静态存储类别(static storage class),这说明在函数中使用字符串常量,该字符串只会被储存一次,在整个程序的生命期内存在,即使函数被调用多次。用双引号括起来的内容被释为指向该字符串储存位置的指针。(2)字符串数组和初始化让编
2022-06-26 16:31:57
1094
原创 《汇编语言-王爽》第3章笔记及实验
第3章 寄存器(内存访问)3.1 内存中字的存储CPU中,用16位寄存器来存储一个字。高8位存放高位字节,低8位存放低位字节。在内存中存储时,由于内存单元是字节单元(一个单元存放一个字节),则一个字要用两个地址连续的内存单元存放,这个字的低位字节放在低地址单元中,高位字节存放在高地址单元中。3.2 DS和[address]mov指令可以完成的传送:(1)将数据直接送入寄存器;mov bx, 1000H(2)将一个寄存器中的内容送入另一个寄存器;mov ds, bx(3)将一个内存单元中的
2022-06-24 20:15:04
413
原创 汇编语言-王爽 第13章 int指令-笔记
功能:求一word型数据的平方参数:(ax)= 要计算的数据返回值:dx、ax中存放结果的高16位和低16位应用举例:求2*3456^2我们要做的以下3部分的工作(1)编写实现求平方功能的程序;注意:在中断例程的最后,要使用iret指令。(2)安装程序,将其安装在0:200处;(3)设置中断向量表,将程序的入口地址保存在7ch表项中,使其成为中断7ch的中断例程。功能:将一个全是字母,以0结尾的字符串,转化为大写参数:ds:si指向字符串的首地址应用举例:将data段中的字符串转化为大写
2022-06-23 20:39:56
307
原创 汇编语言-王爽 第9章 转移指令的原理-笔记
从代码看,应该是这样去分析的,首先程序的入口在start指向的地方,也就是mov ax,0这里,而不是一开始的退出程序的两条语句。接着两条nop,各占1个字节。然后mov di,offset s 这句是往di寄存器传递s 的偏移地址;然后 mov si,offset s2,这句是王寄存器si传递s2的偏移地址然后mov ax,cs:[si],所以ax保存了执行s2的指针地址。mov cs:[di] ,ax 然后把s2的执行地址给了cs:[di]这个内存位置。这里重点提一下s2:jmp short s1,这里
2022-06-23 12:31:49
397
原创 汇编语言-王爽 第10章 CALL和RET指令-笔记
设计一个子程序,功能:将一个全是字母的字符串转化为大写。设计一个子程序,功能:将一个全是字母,以0结尾的字符串,转化为大写实验10 编写子程序
2022-06-10 21:14:54
255
原创 汇编语言-王爽 第6章 包含多个段的程序-笔记
6.1 在代码段中使用数据编程计算8个数据的和,结果存在ax寄存器中6.2 在代码段中使用栈利用栈,将程序中定义的数据逆序存放。将数据、代码、栈放入不同的段
2022-06-09 16:50:55
209
原创 汇编语言-王爽 第7章 更灵活的定位内存地址的方法-笔记
第一种方法:第二种方法:用[bx + idata]的方式进行数组的处理将两个字符串看作两个数组,一个从0地址开始存放,另一个从5开始存放。那么可以用[0+bx]和[5+bx]的方式在同一个循环种定位这两个字符串中的字符。0和5给定了两个字符串的起始偏移地址,bx中给出了从起始偏移地址开始的相对地址。这两个字符串在内存中的起始地址是不一样的,但是,它们中的每一个字符,从起始地址开始的相对地址的变化是相同的。用di和si实现将字符串’welcome to masm!'复制到它后面的数据区中用di和si实
2022-06-09 14:26:34
311
原创 C Primer Plus 第14章_结构和其它数据形式_代码和练习题
处理一本书, 书名-作者-价格, 输入输出book.c–一本书的图书目录14.2 结构数组处理多本书,输入输出。manybook.c–包含多本书的图书目录14.5 嵌套结构在一个结构中包含另一个结构(即嵌套结构)很方便。friend.c–嵌套结构示例14.6 指向结构的指针演示:如何定义指向结构的指针和如何用这样的指针访问结构的成员friends.c–使用指向结构的指针14.7 向函数传递结构的信息传递结构成员funds.c–把结构成员作为参数传递传递结构地址funds2
2022-06-08 16:10:01
647
原创 汇编语言-王爽 第12章 内中断-笔记
编写处理0号中断问题:重新编写一个0号中断处理程序do0,它的功能是在屏幕中间显示"overflow!"后,然后返回到操作系统。要做以下几件事情:(1)编写可以显示“overflow!”的中断处理程序do0(2)将do0送入内存0000:0200处(3)将do0的入口地址0000:0200存储到中断向量表0号表项中程序的框架:具体程序如下:......
2022-06-06 13:36:32
239
原创 《汇编语言-王爽》第2章笔记及实验
第2章 寄存器2.1 通用寄存器8086CPU的所有寄存器都是16位的,可以存放两个字节。2.3 几条汇编指令mov指令被称为传送类指令(1)在写一条汇编指令或一个寄存器的名称时不区分大小写。如mov ax, 18 和MOV AX,18的含义相同,bx和BX的含义相同(2)在进行数据传送或运算时,要注意指令的两个操作对象的位数应当是一致的。如mov ax, bx mov al, 18H2.7 “物理地址 = 段地址x16+偏移地址”的本质含义:CPU在内存访问时,用一个基础地址(段
2022-05-26 14:14:07
373
原创 linux 0.11 内核学习路线
声明:本文为转载,原文找不到了当初一开始拿到赵炯的书时是兴奋的,代码几乎每行都有注释,心想这不手到擒来的吗。但是代码看到十几行就看不下去了,没错就是十几行,操作系统的代码跟应用层的代码完全是两回事,注释再多也不明白什么意思。后来才知道需要 实模式和32位保护模式 的基础,这个是操作系统的核心知识。这里总结一下需要的基础知识。按学习顺序:《汇编语言_第2版》,王爽《x86汇编-从实模式到保护模式》,余洁。操作系统知识的核心《C语言XXX》,就不多介绍了,网上一堆《Orange’S 一个操作系统的实
2022-05-20 17:02:06
378
原创 C Primer Plus 第6章_代码和练习题
代码6.1 summing.c根据用户从键盘输入的整数进行求和,程序利用了scanf()的返回值来结束循环。#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>int main(void) { long sum = 0L; long num; int status; printf("Please enter an integer to be summed "); printf("(q to qu
2022-05-19 12:27:56
746
1
原创 C语言程序设计 现代设计方法_第9章代码、练习题及编程题答案
9.1 average.c程序 计算平均值假设我们经常需要计算两个double 类型数值的平均值。C语言库没有“求平均值”函数,但是可以自己定义一个。下面就是这个函数的形式:double average(double a, double b){ return (a + b) / 2;}在函数开始处放置的单词double 表示average 函数的返回类型(return type),也就是每次调用该函数时返回数据的类型。 标识符a 和标识符b (即函数的形式参数 (parameter))表示
2022-05-17 14:09:29
1533
原创 C语言程序设计 现代设计方法_第7章代码、练习题及编程题答案
代码7.1 sum2.c程序 数列求和(改进版)6.1节编写了一个程序对用户输入的整数数列求和。该程序的一个问题就是所求出的和(或其中某个输入数)可能会超出int 型变量允许的最大值。如果程序运行在整数长度为16位的机器上,可能会发生下面的情况:This program sums a series of integers.Enter integers (0 to terminate): 10000 20000 30000 0The sum is: -5536求和的结果应该为60 000,但这
2022-05-15 19:16:48
3083
原创 C语言程序设计 现代设计方法_第8章代码、练习题及编程题答案
程序8.1 reverse.c程序 数列反向第一个关于数组的程序要求用户录入一串数,然后按反向顺序输出这些数:Enter 10 numbers: 34 82 49 102 7 94 23 11 50 31In reverse order: 31 50 11 23 94 7 102 49 82 34方法是在读入数时将其存储在一个数组中,然后反向遍历数组,一个接一个地显示出数组元素。换句话说,不会真的对数组中的元素进行反向,只是使用户这样认为。/* reverse.c (Chapter 8, p
2022-05-06 16:51:32
4826
6
原创 C语言程序设计 现代设计方法_第5章代码、练习题及编程题答案
代码5.2 broker.c计算股票经纪人的佣金当股票通过经纪人进行买卖时,经纪人的佣金往往根据股票交易额采用某种变化的比例进行计算。下面的表格显示了实际支付给经纪人的费用数量。交易额范围佣金费用低于2 500美元 330美元 + 1.7%2 500~6 250美元 356美元 + 0.66%6 250~20 000美元 376美元 + 0.34%20 000~50 000美元 100美元 + 0.22%50 000~500 000美元 155美元 + 0.11%超过
2022-05-01 14:02:52
3671
原创 C语言程序设计 现代设计方法_第4章代码、练习题及编程题答案
4.1节的upc.c 程序计算通用产品代码(universal product code)的校验位题目要求:12位的通用产品代码 例如 0 13800 15173 5。通过以下规则计算最后一位校验位。下面是一种计算校验位的方法:首先把第1位、第3位、第5位、第7位、第9位和第11位数字相加;然后把第2位、第4位、第6位、第8位和第10位数字相加;接着把第一次加法的结果乘以3,再和第二次加法的结果相加;随后再把上述结果减去1;相减后的结果除以10取余数;最后用9减去上一步骤中得到的余数。#define
2022-05-01 11:16:53
1934
1
原创 C语言程序设计 现代设计方法_第6章代码、练习题及编程题答案
代码6.1 square.c程序 显示平方表现在编写一个程序来显示平方表。首先程序提示用户输入一个数 ,然后显示出 行的输出,每行包含一个1~n的数及其平方值。This program prints a table of squares.Enter number of entries in table: 51 12 43 94 165 25把期望的平方数个数存储在变量n 中。程序需要用一个循环来重复显示数i 和它的平方值,循环从i 等于1开始。如果i 小于
2022-04-20 15:32:56
2985
5
原创 C语言程序设计 现代设计方法_第3章代码、练习题及编程题答案
代码3.1 tprintf.c程序 用printf 函数格式化数下面的程序举例说明了用printf 函数以各种格式显示整数和浮点数的方法。/* Prints int and float values in various formats */#include <stdio.h>int main(void){ int i; float x; i = 40; x = 839.21f; printf("|%d|%5d|%-5d|%5.3d|\n", i, i, i, i);
2022-04-19 13:31:29
1484
1
原创 队列queue
队列queueQueue基本概念queue常用操作队列模型和链表模型关系分析队列的顺序存储设计与实现队列的链式存储设计与实现Queue基本概念队列是一种特殊的线性表队列仅在线性表的两端进行操作队头(Front):取出数据元素的一端队尾(Rear):插入数据元素的一端队列不允许在中间部位进行操作!queue常用操作销毁队列清空队列进队列出队列获取队头元素获取队列的长度队列模型和链表模型关系分析队列的顺序存储设计与实现队列也是一种特殊的线性表;可以用线性表顺序存储来模拟队列
2021-06-05 09:52:09
169
原创 栈的链式存储设计与实现
栈的链式存储设计与实现基本概念设计与实现基本概念设计与实现//链栈测试框架#include <stdio.h>#include <stdlib.h>#include <string.h>#include "linkstack.h"int main(void){ int i = 0; int a[10]; LinkStack* stack = NULL; stack = LinkStack_Create(); if (stack == NU
2021-06-03 10:38:35
224
原创 栈的顺序存储设计与实现
栈的顺序存储设计与实现基本概念设计与实现基本概念设计与实现//顺序栈测试框架#include "stdio.h"#include "stdlib.h"#include "string.h"#include "seqstack.h"void main(){ int a[20], i = 0; int* pTmp = NULL; SeqStack* stack = NULL; stack = SeqStack_Create(20); for (i = 0; i < 10
2021-06-03 10:32:03
154
原创 栈stack
栈stack Stack基本概念Stack的常用操作Stack基本概念栈是一种 特殊的线性表栈仅能在线性表的一端进行操作栈顶(Top):允许操作的一端栈底(Bottom):不允许操作的一端Stack的常用操作创建栈销毁栈清空栈进栈出栈获取栈顶元素获取栈的大小#ifndef _MY_STACK_H_#define _MY_STACK_H_typedef void Stack;Stack* Stack_Create();void Stack_Destroy(Stac
2021-06-03 10:17:27
133
原创 线性表基本概念---重要:分离思想
线性表基本概念---重要:分离思想线性表定义数学定义性质线性表的操作线性表定义线性表(List)是零个或多个数据元素的集合线性表中的数据元素之间是有顺序的线性表中的数据元素个数是有限的线性表中的数据元素的类型必须相同数学定义线性表是具有相同类型的 n( ≥ 0)个数据元素的有限序列(a1, a2, …, an)ai是表项,n 是表长度。性质a0为线性表的第一个元素,只有一个后继an为线性表的最后一个元素,只有一个前驱除a0和an外的其它元素ai,既有前驱,又有后继线性表能够逐项访问
2021-06-02 16:25:45
156
原创 单链表反转
单链表反转递归解法迭代解法声明:以下内容来自于程序员小熊公众号,仅学习使用,一并感谢。递归解法链表具有天然的递归性,一个链表例如:1->2->3->NULL,可以看成以值为1的节点作为头节点后面挂接一个更短的(以值为2的节点为头节点)的链表,即1->更短的链表(以值为2的节点作为头节点),同理以值为2的节点作为头节点后面也挂接一个更更短的链表(以值为3的节点作为头节点);依次类推,如下图示。有了这样的思考,链表反转就可以先翻转头节点后面挂接的更短的链表,然后再在翻转后的更短
2021-05-31 14:37:02
196
原创 linux系统编程-文件IO
linux系统编程代码linux系统编程基本程序框架文件IO之open、close、read、write函数综合练习(1)文件IO之Iseek、mkdir、opendir、closedir、readdir函数综合练习(2)linux系统编程基本程序框架#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ // argc:表示的是命令行中参数的个数 // argv:表示的是命令行中的
2021-05-30 21:46:42
320
原创 线性表-循环链表-C语言
//circlelist.h#ifndef _CIRCLELIST_H_#define _CIRCLELIST_H_typedef void CircleList;/*typedef struct _tag_CircleListNode CircleListNode;struct _tag_CircleListNode{ CircleListNode* next;};*/typedef struct _tag_CircleListNode{ struct _tag_CircleL
2021-05-18 09:24:56
228
原创 线性表-链式存储结构-C语言
链表-链式存储结构-C语言实现设计与实现优点和缺点设计与实现优点和缺点优点:无需一次性定制链表的容量插入和删除操作无需移动数据元素缺点:数据元素必须保存后继元素的位置信息获取指定数据的元素操作需要顺序访问之前的元素//linklist.h#ifndef _MYLINKLIST_H_#define _MYLINKLIST_H_typedef void LinkList;/*typedef struct _tag_LinkListNode LinkListNode;st
2021-05-17 14:29:36
921
原创 线性表-顺序存储结构-C语言
链表-顺序存储结构设计与实现优点与缺点设计与实现插入元素算法判断线性表是否合法判断插入位置是否合法把最后一个元素到插入位置的元素后移一个位置将新元素插入线性表长度加1获取元素操作判断线性表是否合法判断位置是否合法直接通过数组下标的方式获取元素删除元素算法判断线性表是否合法判断删除位置是否合法将元素取出将删除位置后的元素分别向前移动一个位置线性表长度减1优点与缺点优点:无需为线性表中的逻辑关系增加额外的空间可以快速的获取表中合法位置的元素缺点:插入和删除操作需
2021-05-17 11:21:30
221
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅