1

=====

反向telnet技术

机房的各个分个路由器都接在某一个路由器然后出去(使用同样的IP然后后加端口   格式如 telnet 172.168.2.23 2017

 https://baike.baidu.com/item/游戏加速器

hosts中的     122.114.15.232 www.gmail.com


存储器接受表达式和结果 运算器 数字 控制器 符号
鼠标延迟时间在哪里调整?
先总后分
GCC compiler linux自带gcc吗,还是要额外安装? GDB调试器,分布执行代码的作用?

arp -d 是只有在不联网的情况下才可使用吗?
计算机中数据的存储形式是堆栈还是队列?

定点数: 整数部分 小数部分 小数点的位置固定
浮点数: 指数部分(阶码) 小数部分(尾数) 小数点的位置不固定


sizeof(变量|表达式)
分配内存的方式:按照变量定义的顺序按照变量定义的相反顺序

feibonicc 算盘全集


韩信点兵防止程序无上界一直查找避免死循环.
11111
goto END;
END:

22222
break;

33333
#include<stdlib.h>
exit(0);


44444
使用标志变量使程序可读性更好
int find = 0; /*置找到标志变量为假*/
for(x=1; !find; x++)
if
{
find = 1;/*置找到标志变量为真*/
}

55555

do{
x++;
}
while(!(x%5==1 && x%6==5 && x%7==4));

程序混乱:混乱不在于使用过多的goto语句,而在于使用过多的goto语句标号.


程序中常见的出错原因:
编译错误:语法错误syntx Erro
链接错误:缺少包含文件或者包含文件的路径错误等(文件的路径是在哪里能找到???
运行时错误:运行结果与预期不一致程序无法正常运行

函数封装:
外界对函数的影响:仅限于入口参数
函数对外界的影响:仅限于一个返回值和数组指针形参;

健壮性:对非合法参数的处理能力

assert();仅在debug模式下,证实不可能发生的状况确实不会发生


防御式编程
:
编译时打开所有警告开关,不要忽略他们;使用安全的数据结构和函数调用(有些c语言函数是不安全的; 做内存的"好管家"


函数的嵌套调用和递归调用
函数不能嵌套定义,只能嵌套调用: 有利于编译器的实现更加简单化
嵌套调用:函数直接或间接调用别人(复用 拿来拿去
递归调用:函数直接或间接调用自己(基本条件一般条件
long Fact(int n)
{
if(n<0)
return -1;
else
return n*Fact(n-1);
}

---------------
unsigned long Fact(unsigned int n)
{
if(n==0 || n==1)
return 1;
else
return n *Fact(n-1);
}
--------------
if(基本条件)
return 递归公式的初值;
else
return 递归函数调用的返回值

基本条件控制递归调用结束
一般条件控制递归调用向基本条件转化


尾递归消耗的内存空间是普通递归的一半?

递归实例: 字典


数学定义是递归的/
计算阶乘,最大公约数,和Fibonacci数列
数据结构是递归的/
队列,链表,数和图
问题的解法是递归的/
Hanoi塔,骑士游历,八皇后问题(回溯法)


数学归纳法
void Hanoi(int n,char a, char b, char c)
{
if(n == 1)
move(n,a,b);
else
{
Hanoi(n-1,a,c,b);
move(n,a,n);
Hanoi(n,c,b,a);
}
}


void move(int n,char a,char b)
{
printf("Mov %d: from %c to %c ",n,a,b);
}

#include <stdio.h>
void Hanoi(int n,char a ,char b,char c);
void move(int n, char a, char b);
int main()
{
int n;
printf("Input the numebr of the disks:")
scanf("%d",&n);
printf("steps of moving %d disks from A to B by means of C: ",n);
Hanoi(n,'A','B','C');
return 0;
}

递归:把规模较大的,较难解决的问题转化为规模较小的知道可以得出它的解从而得到原始问题的解易于解决的同类子问题.


CPU的体系布局和编译实现,影响堆栈的内存高低? 堆由低地址向高地址扩展,栈由高地址向低地址扩展的.


c程序的内存映像: 内存低地址端 --> 内存高地址端
只读存储区: 程序机器代码和常量存储区等只读数据

静态存储区:存放程序中的全局变量和静态变量静态(发生在程序编译或链接时)

动态存储区:堆栈.其中,栈用于保存函数调用时的返回地址函数的形参局部变量等信息动态(发生在程序载入和运行时)


堆 栈的区别?


Fibonacci数列有什么性质???

递归和尾递归分别观察阶乘的stackcall变化个数

为什么要尽量避免使用全局变量?


编译器如何区分不同作用域的同名变量?
1
编译器通过讲同名变量映射到不同的内存地址来实现作用域的划分;
2
局部变量和全局变量被分配的内存区域不同,因而内存地址也不同(局部变量是在动态存储区中划分的,全局变量是在静态存储区中划分的)
3
形参和实参的作用域内存地址不同,所以形参值的改变不会影响实参.

同时打开同一文件两遍,第二个被打开的文件显示该文件被锁定,只读,是什么机制???

C存储类型关键字
auto自动变量
static静态变量
extern外部变量
register寄存器变量


宏定义数组的大小
#define N 11
int a[N];

数组的数据类型:每一个元素占内存空间的字节数
数组的存储类型:内存的动态静态存储区CPU的寄存器
char name[8]
static float*


静态数组和外部数组自动初始化为0值,否则,是随机数


更高效的数组初始化方法:
#include <string.h>
memset(a,0,sizeof(a));
用sizeof(a) 来获取数组a所占的内存字节数

更高效的数组赋值方法
数组a复制给数组b(数组a,b的长度要一致
#incldue<string.h>
memcpy(b,a,sizeof(a));
(如果使用这条语句时,数组a,b的长度不一样,那么会导致什么结果,是否存在安全隐患???
存放顺序:按行存放,线性存储
必须提供列才能知道逻辑存储结构


数组越界访问(越下界访问,越界数值是随机值取决于操作系统和编译器


使用数组的基本原则:
永远清楚每个数组有多大,永远不要让下标越界
字符数组永远留意最后要有''(???否则??


变量的寻址方式有哪几种?
何为指针?如何定义指针类型的变量?
如何访问指针变量指向的存储单元中的数据?


int *pa =&a 指针类型说明符,用于定义指针变量的;
*p = %d, 间接寻址运算符,用于指针变量所指值的

只要pa指向a, *pa就是a的别名


关于指针可以在被调函数中改变实参的c语言源代码长什么样子?codeblack是开源的可以怎么查看?

变量指针 数组指针 字符串指针 函数指针

想让指针变量指向哪个存储单元,就让其保存哪个单元的地址
保存一个变量的地址
保存一个数组的首地址
保存一个字符串的首地址
保存一个函数的入口地址


int Fun(int a, int b)
int (*f) (int a, int b)
f = Fun;
编译器将不带()的函数名解释为该函数的入口地址
函数指针变量存储的是函数在内存中的入口地址

函数指针的作用18
将函数指针作为一个函数的形参,将不同的函数名作为实参传给形参,在函数内就可以调用不同的函数了.
主要应用:编写通用性更强的函数
案例:!!!这两个案例都编写非常熟练每天看啊
通用的计算任意函数定积分的函数
通用的排序函数(既能升序又能降序

而各种排序方法又忘了,反复重复,直到可以背下来不用提纲可以教给别人!!!
---------------------
数组的其他应用之筛法求素数

数组在处理一维二维数据表矩阵运算方面的典型应用有?
素数除了一和他本身不能被其他数整除,实际有什么应用关于素数?
----------------------
文曲星猜数游戏和大数应用
???

------------
字符串都是以空字符结束的,字符数组都是以多一位
#define STR_LEN 80
char str[STR_LEN+1];

逐个字符输入输出字符串,而不是字符长度判断如i<STR_LEN(因为字符数组定义了,但不见得字符串就要塞满数组;
for(i=0;str[i]!='';i++)
{
putchar(str[i]);
}
putchar(' ');
--整体输入输出,直到遇到空字符串结束
scanf("%s",str); //不能输入带空格的字符串
printf("%s ",str);
----
gets(str); //能输入带空格的字符串
puts(str);
会自动加一个换行

此外,两个字符串输入函数对回车换行符的处理也不同

strcpy的返回值是指向目的字符数组的指针
#include<string.h>
str2=str1wrong不能整体复制,两个都是常量啊!!
strcpy(str2, str1);
strncpy(str2,str1,n);最多将str1的n个复制给str2

可以达到多重赋值的效果:
strcpy(str2, strcpy(str1, "Hello"));
---------
strcat(str2,str1);
strncat(str2,str1);
strcat(str2, strcat(str1, "Hello"));

if(str2 == str1)比较的是两个字符串的地址大小,而不是数值大小;
if(strcmp(str2,str1)==0)
if(strncmp(str2,str1,n)==0)

----------
C语言标准函数库从哪里可以查看???

const 保护是参数组不被被调函数修改,一旦修改会报错提示//show me the concret instance ??????

字符串结束的标示'' 对应的ASCII码值为0
10.3 1的08:36这里之后因为概念记不清所以停下来的!!!


C语言没有提供专门的字符串数据类型
*pStr !='';
*pStr !='' const
放到pdf中的视频好看一个正字!!!!
慢慢消化,别急!!!


两个指针指向 同一个数组 时,指针相减才有意义(比较的结果依赖于数组中的两个元素的相对位置

typedef struct student
{
DATE birthday;
int score[4];
}STUDENT;

指令集比函数集运行的更快


静态全局变量只限在本文件使用,本文件是指在整个项目中?还是源文件????
外部变量(非静态外部变量允许其他文件引用)extern,具体例子,所有地方都可以使用???

strcpy()的函数原型
char *strcpy(char *dsStr, const char *srcStr);
char *strcpy(char *dsStr, const char *srcStr);
char *strcpy(char *dsStr, const char *srcStr);


char *strcat(char *dsStr, const char *srcStr);


void MyStrcpy(char *dsStr. const char *srcStr);
在code::block中如何查看c自带的库函数

能代表首地址的变量有?


scanf printf
gets puts
getchar putchar
这些函数的源代码哪里可以看到?


回车在开始的情况:
scanf不读取直接结束后续的读取,gets读取但是用空字符代替显示出来;

回车在最后的情况:
gets将缓冲区的回车读走,并且显示出来了

getchar如果缓冲区中有数据不需要用户输入,直接将缓冲区的数据显示出来;

清空缓冲区中的空白字符的方法:
1)
getchar();
2)
scanf(" ");
scanf("%c",&ch);
scanf(" %c",&ch);

这里只是一个字符,如果缓冲区中有很多用什么?

这些函数都是从缓冲区中读取一个还是多个,全部还是一行,字符串还是其他的数据类型的数据?

将输入的字符串保存在字符数组中的
字符指针输入字符串?


指针必须初始化,不知道指针指到了那里去,才能使用?
gets(ptr)输入字符串保存到它指向的位置??保存到这个参数中??这个参数指向哪里不知道啊????放大街上
gets函数的参数的意义???

demo.exe已停止工作!!!指针变量必须先初始化然后才能使用哦哦
======wrong========
#include <stdio.h>
#define STR_LEN 80

int main()
{
char M[STR_LEN + 1];
char *psr = M[STR_LEN + 1];
printf("Input a string! ");
gets(psr);
printf("%c",psr);
return 0;
}


======correct====

#include <stdio.h>
#define STR_LEN 80

int main()
{
char M[STR_LEN + 1];
char *psr = M;
printf("Input a string: ");
gets(psr);
printf("%s",psr);
return 0;
}
====test_code=Mission Impossible===
main()
{
char *a ="
main()
{
char *a = %c%s%c;
printf(a,34,a,34);
}"
;
printf(a,34,a,34);
}

==运行结果和源代码完全一样,我显然太弱了,不能解释啊!!!===
char *a = %c%s%c;
printf(a,34,a,34)


=====static variable in module ==
main.c------------

# include<stdio.h>
# include<function.h>

int main()
{
int a = 1,b =2;
int c = add(a,b); //这里是对function.c中的add函数的调用
printf("c=%d",c);

return 0;
}


-static_test.c-----


#include<function.h>

int add(int a,int b)
{
return a+b;
}

==the result by me is zero , I donno why===


process run main.c first, other.c is together ??? not independence.

gets函数,缓存越界,如何获得的越界写操作权限的.???先定义分配内存空间再赋值???


宏定义的使用的时候没有函数调用,宏定义具体的底层操作是什么原理?

函数调用的具体底层操作是什么原理?


-1 (无符号解释成)--->255 ??怎么换算的??

静态变量在编译时初始化一次;有记忆功能,再次访问的时候保持最后一次的数据;
auto动态在每次运行时都被初始化,没有记忆功能(使用完被覆盖掉或者不允许外部函数访问)


作用域:能被访问的范围

存储类型:变量的生存期

全局变量和静态变量的相同点都整个函数运行都站着内存,不释放(extern 是工程中的所有.c.h文件等都可以访问;从有main函数的文件开始运行调用其他文件,将整个工程中的文件串联起来;


外部变量extern int a;
定义了整个工程的所有文件的所有函数代码内外都可以访问;


=========
字符指针字符数组作为形参;实参传给形参的是字符首地址
void MyStrcpy(char *dsStr, const char *srcSrt);
void MyStrcpy(char dstStr[], const char srcStr[]);

strcpy()函数原型
char *strcpy(char *dsStr, const char *srcStr);
char *strcpy(char *dsStr, const char *srcStr);
char *strcpy(char *dsStr, const char *srcStr);
char *strcpy(char *dsStr, const char *srcStr);
char *strcat(char *dsStr, const char *srcStr);
char *strcat(char *dsStr, const char *srcStr);
char *strcat(char *dsStr, const char *srcStr);


字符串指针放到表达式的好处: 以节点方式实现多个字符串的连续赋值

字符串指针放到表达式的好处: 以节点方式实现多个字符串的连续赋值

字符串指针放到表达式的好处: 以结点方式实现多个字符串的连续赋值


gets函数:从流中读取一个文件

#include<stdio.h>
#include<string.h>

int main()
{
char buf[80];
while{
}
printf("input string : ");
gets(buf);
if(!strcmp(buf,"exit"))
break;
else
printf(buf);


#include<stdio.h>
#include<string.h>

#define N 80

char *MyStrcat(char *dsStr, char *srcStr)

int main(){
char first[2*N+1];
char second[N+1];

char *result =NUll;

printf("input the first String!");
gets(first);
cresult = MyStr(first,)


char *result = NUll;
char
gets(second);
result= char

return 0;
}

char *pStr = dsStr;

while(*dsStr != '')
{
dsStr++;
}

while(*srcStr != '')
{
*dsStr = *srcStr;
srcstr++;
dsStr++;
}

*dsStr = '';

return pStr;


明确字符串被保存到了哪里, 明确字符指针指向了哪里

指向字符串常量的字符指针

指向字符数组的字符指针

向函数传递字符串的方法
想函数传递字符数组想函数传递字符指针
从函数返回字符串的方法: 数组和指针做函数形参从函数返回指向字符串的指针 ??数组不能作为函数的返回值?????

#include <string.h>
int main()
{
char password[8]="secret",input}

fgets(input, sizeof(input),stdin);
fgets(input,sizeof(input),stdin);
fgets(input, sizeof(input),stdin);
fgets(input, sizeof(input), stdin);

fgets(input,sizeof(input),stdin);


int *p =a
int *p =&a[0];
int *p = a;
int *p = &a[0];
int *p = a;
int *p = &a[0];

int *p = a;
int *p =&a[0];
int *p = 5;
int *p = a;
int *p =&a[0];
int *p =5;

int *p,*q;
p = &a[i];
q = p-j;


指针加减一个整数,是左右移动指针的位置


指针相减获得两个指针所指位置的距离!!!不是所指数相减!!


指针变量中保存的内容只能是地址(变量或函数的地址)
必须初始化后才能使用,否则指向不确定的存储单元
只能指向同一基类型的变量
可参与的运算:加减整数(后移几个元素),自增自减关系赋值

&a[i] -> a+ i

a+1 ->a+ sizeof(基类型)
a+i ->a+ i*sizeof(基类型)

a[i]
*(a+i)

============
文件是存储在外部介质上具有名字的一组相关数据的集合
文件是存储在外部介质上具有名字的一组相关数据的集合
文件是存储在外部介质上具有名字的一组闲观数据的集合

文件是存储在外部介质上具有名字的一组相关数据的集合
文件是存储在外部介质上具有名字的一组相关数据的集合


文件是存储在外部介质上具有名字的一组相关数据的集合
文件是存储在外部介质上具有名字的一组相关数据的集合

数据一般以文件的形式为用户及应用程序使用
程序与数据分离
数据共享
长期保存数据


--文件的分类--
按文件的逻辑结构:
记录文件:由具有一定结构的记录组成(定长和不定长
流式文件:由一个个字符(字节)数据顺序组成 数据流 字节流
---
按数据的组织形式--
文本文件:C程序的源代码
(用字节表示字符的字符序列,存储每个字符的ASCII码
二进制文件:可执行的C程序
(内存中存储数据的形式???
????

==图片70 如何理解???==

标准的输入输出流都是计算机相应的设备????

对于重定向的理解????


每个程序对应一个缓冲区吗???缓冲区对应的对象是???


从缓冲区读数据或向缓冲区写数据,几乎不花时间, cause在内存上???内存??


一次性的大块移动比频繁的字符移动快得多?? 不是连续的??


仅花时间将缓冲区内容传递给磁盘文件或反之,,,磁盘就是写到内存了??内存由什么物理硬件构成??


跨平台还是没理解?? 以及docker??? 问fdq???以及向上兼容的原理

fopen族标准统一的open族(不同操作系统会有出入 函数分别有哪些???


每个节点的指针域存储后继节点的地址
p1.next =


原生建立链表只能使用malloc函数??? malloc函数的源代码看下,将内存申请到堆上是用的什么命令??
能将内存申请到堆上的函数有哪些??

除了申请到桟上的函数或者变量,其他的都能

p1 图一的是结构体变量图二的是结构体指针变量


=====
函数指针的典型应用: 用函数指针编写计算任意函数定积分的通用函数,不用指针的话只能是指定的一个函数

scanf中间遇到空格制表符等会停止;gets按行读取,只有遇到回车才会停止且将回车丢弃成空格符

 

============================

位异或运算代替加减乘除

 

http://blog.csdn.net/zhangyuan19880606/article/details/51162096

一个函数可以有两个返回值么

照语言的规定是不可以.
若遇到这种需求, 有三种处理法.
举例来说: 假设函数 quo_rem接收整数a, b, 想传回商数a/b 及馀数a%b.
处理法1:
int* quo_rem(int a, int b) {
int* ans=new int[2]; ans[0]=a/b; ans[1]=a%b; return ans;
}
void main() {
int *qr=quo_rem(8,3);
cout << "quotions: " << qr[0] << ", remainder: " << qr[1];
delete[] qr;
}

处理法2:
class Pair { public: int x, int y; }
Pair quo_rem(int a, int b) {
Pair ans; ans.x=a/b; ans.y=a%b; return ans;
}
void main() {
Pair qr=quo_rem(8,3);
cout << "quotions: " << qr.x << ", remainder: " << qr.y;
}

处理法3:
void quo_rem(int a, int b, int&quo, int& rem) {
quo=a/b; rem=a%b;
}
void main() {
int q, r;
quo_rem(8, 3, q, r);
cout << "quotions: " << q << ", remainder: " << r;
}

http://blog.csdn.net/zhangyuan19880606/article/details/51162096

数据缓冲区_百度百科
https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E7%BC%93%E5%86%B2%E5%8C%BA/1380388?fr=aladdin

printf和scanf函数为什么一个要取地址符一个不用呢?

匿名 | 浏览 814 次  问题未开放回答 |举报
推荐于2016-06-18 00:21:48 最佳答案
 
因为scanf的取得一个字符,然后把这个字符存放到某一内存区域,所以要为它(字符)分配存储空间。
printf的输出一个字符。
输出的时候系统根据变量名(外部标识符)在内存中找到与之相匹配的字符进行输出操作。所以不用取地址符。

刘汝佳github以及陈越题 数的翻转
计算机组成原理 视频
question博客园上
考研高数
单片机原理
======================
3遍观看c语言精髓的视频看透,记录下来疑问;具体看10遍pdf,还有图书馆C语言函数书籍上面的常用函数10遍
词根书籍lesson30 看5遍

211 case34

linux进程控制及进程内存映像_知足常乐_新浪博客
http://blog.sina.com.cn/s/blog_5420e00001019obo.html

sb.玩游戏时的加速是???

七层协议和四层协议 - 简单爱_wxg - 博客园
http://www.cnblogs.com/wxgblogs/p/5641643.html

wget相当于浏览器软件中的无上传仅下载模块???下载模块的原理???(nowcode上有人问过去看下

镜像(Mirroring)是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。(复制磁盘

内存的半导体材料(二氧化硅吸电介质,断电没了什么意思???;外存·磁盘·硬盘 的磁介质。

文件是操作系统的数据结构,我们学的是什么的数据结构???(通用的?

===========FAQ-linux================

Comma Gets a Cure and derivative works may be used freely for any purpose without special permission,

The woman gave Sarah an official letter from the vet.

使用数据库记录日志

能记录日志的软件还有?

shell 三种启动方式

shell变量数据类型的处理

$xx =32

$yy =22

then $32 -$$22(wrong answer

./bug.sh  ;id  #除了;还有什么,shell漏洞

C 、linuxshell的全局局部变量

malloc申请的是在栈,不用是在堆上

C/C++ 全局变量和局部变量在内存里的区别?堆和栈 - CSDN博客
http://blog.csdn.net/qq_33266987/article/details/51965221

堆区和数据结构上的堆不是一个概念;

局部变量、全局变量、堆、堆栈、静态和全局【】 - CSDN博客
http://blog.csdn.net/jamestaosh/article/details/4513188

使用malloc申请是在堆上?_360搜索
https://www.so.com/s?ie=utf-8&src=dlm&shb=1&hsid=cfc4abce2367e34e&ls=n480e587d91&q=%E4%BD%BF%E7%94%A8malloc%E7%94%B3%E8%AF%B7%E6%98%AF%E5%9C%A8%E5%A0%86%E4%B8%8A%EF%BC%9F

Shell—变量、字符串和数组 - 飞龙在天 - CSDN博客
http://blog.csdn.net/ltaihyy/article/details/53679388

shell的5个小程序 - CSDN博客
http://blog.csdn.net/llzk_/article/details/66972423

=

C语言变量生存周期 - CSDN博客
http://blog.csdn.net/essity/article/details/50331391

沙耶加是最棒的也是最强的,今天换我来拯救世界!
原文地址:https://www.cnblogs.com/wanghui626/p/7727201.html