跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方


NedK7

推荐的帖子

 

必须清楚

1.程序结构是3种:顺序结构、循环结构(三种循环结构)、选择结构(if和switch)。
2.读程序都要从main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
3.计算机的数据在电脑中保存是以二进制的形式,数据存放的位置就是它的地址。
4.bit是位,是指为0或者为1,byte是指字节,一个字节=八个位。
5.常考概念:
(1)编译预处理不是c语言的一部分,不占运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
(2)每个C语言程序中main函数是有且只有一个。
(3)在函数中不可以再定义函数,但可以调用函数(嵌套调用、递归调用)。
(4)算法是一定要有输出的,他可以没有输入。
(5)break可用于循环结构和switch语句。
(6)逗号运算符的级别最低。

第一章

1.合法的用户标识符考查:
(1)合法的要求是由字母、数字、下划线组成,有其它元素就错了。
(2)并且第一个必须为字母或者是下划线,第一个为数字就错了。
(3)关键字不可以作为用户标识符号。main define scanf printf都不是关键字。
(4)迷惑你的地方:If是可以作为用户标识符,因为If中的第一个字母大写了,所以不是关键字。
2.字符数据的合法形式:
‘1’是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。

  ASCII数值
‘0’ 48
‘a’ 97
‘A’ 65

3.整型一般是两个字节,字符型是一个字节,双精度一般是四个字节。
4.转义字符的考查:
(1)在程序中int a=0x6d,是把一个十六进制的数给变量a,注意这里的0x必须存在。
(2)在程序中int a=06d,是一个八进制的形式。
(3)在转义字符中,“\x6d”才是合法的,0不能写,并且x是小写。“、141”是合法的,0是不能写的。“\108”是非法的,因为不可以出现8。
5.算数运算符的优先级别:
同级别的有的是从左到右,有的是从右到左。
6.强制类型转换
一定是(int)a不是int (a),注意类型上一定有括号的。注意(int)(a+b)和(int)a+b的区别。前者是把a+b转型,后者是把a转型再+b。
7.表达式的考查:
(1)赋值表达式:a=b=5;常量不可以赋值;自加自减表达式,如a=5,++a(是为6),a++(为5);
++在前先加后用,++在后先用后加。
(2)逗号表达式:优先级别最低,表达式的数值逗号最右边的那个表达式的数值。(2,3,4)的表达式的数值就是4。

第二章

1.printf函数的格式考查:

%d 整型
%c 字符
%f 单精度
%ld long int
%lf double

2.scanf函数格式的考查:
注意该函数的第二个部分是&a这样的地址,不是a;

scanf("%d%d%*d%d",&a,&b,&c); //跳过输入的第三个数据

3.putchar,getchar函数的考查:
4.实现两个变量x,y中数值互换
不可以把x=y,y=x;要用中间变量t=x,x=y,y=t。
5.如何实现保留三位小数,第四位四舍五入的程序。
注意x=(int)x这样是把小数部分去掉。

第三章

1.关系表达式
(1)表达式的数值只能为1(表示为真)或0(表示假)
(2)当关系的表达式为真的时候得到1。如9>8这个是真的,所以表达式的数值就是1。
2.逻辑表达式
只能为1(表示为真)或0(表示假)
(1)三种逻辑运算符号:&& || !
(2)优先的级别:!>&&> ||
(3)表示x是比0大,比10小的方法:(0<x)&&(x<10)
注:0<x<10是错的。
3.if语句
else是与最接近的if且没有else的相组合的。
4.条件表达式:
表达式1?表达式2 表达式3
注意是当非0时候是表达式2的数值,当为0时就是表达式3的数值。
5.switch语句:
(1)注意有break和没有break的区别,没有break时,只要有一个case匹配了,剩下的都要执行,有break则是直接跳出了switch语句。
(2)switch只可以和break一起用,不可以和continue用。

第四章

1.三种循环结构
(1)for():循环中必须是两个分号
(2)while()
(3)do while()循环的最后一个while();的分号一定不能丢
注意:循环一定要有结束的条件,否则成了死循环。
2.break和continue的区别
(1)break:(破了整个循环)退出一层循环;
(2)continue:(继续循环运算),但是要结束本次循环,就是循环体内剩下的语句不再执行,调到循环开始,然后判断循环条件,进行新一轮的循环。
3.嵌套循环

第五章 函数

函数:具有一定功能的一个程序块。
1.函数的参数、返回数值

main()
{  int a=5,b=6,c;
   c=add(a,b);
   printf("%d",c);}

调用函数a,b是实参,整个函数得到一个数值就是add函数返回数值。
2.一定要注意参数之间的传递
实参和形参之间传数值和传地址的差别:传数值的话,形参的变化不会改变实参的变化;传地址的话,形参的变化就会有可能改变地址的变化。
3.函数声明的考查:
一定要有:函数名、函数的返回类型、函数的参数类型;
不一定要有:形参的名称。
函数声明与函数定义不同:
函数定义必须有:函数名、函数的返回类型、函数的参数类型、形参的名称。

第六章 指针

1.指针变量的本质是用来放地址,而一般的变量是放数值的。
2.int p中p和p的区别:
*p可以当做变量来用;*的作用是取后面地址p里面的数值p是当做地址来用的。
3.*p++和(*p)++之间的区别:
前者是地址会变化,后者是数值会变化。
4.三名主义:
(1)数组名:表示第一个元素的地址。数组名不可以自加,它是地址常量名。
(2)函数名:表示该函数的入口地址。
(3)字符串常量名:表示第一个字符的地址。

第七章 数组

一维数组
1.a[10]
(1)a表示数组名,是第一个元素的地址,也就是a[10]的地址。
(2)a是地址常量,所以只要出现a++,或者a=a+2赋值的都是错误的。
(3)a是一维数组名,所以它是列指针,也就是说a+1是跳一列。
二维数组
2.a[3][3]
(1)a表示数组名,是第一个元素的地址,也就是a[10]的地址。
(2)a是地址常量,所以只要出现a++,或者a=a+2赋值的都是错误的。
(3)a是二维数组名,所以它是行指针,也就是说a+1是跳一行。
(4)a[0]、a[1]、a[2]也都是地址常量,不可以对他进行赋值操作,同时它们都是列指针,a[0]+1、a[1]+1、a[2]+1都是跳一列。
注意:a和a[0]、a[1]、a[2]是不同的,它们的基类型是不同的。前者是一行元素,后三者是一列元素。
如a3[3][3]={1,2,3,4,5,6,7,8,9}
(1)(a[0]+1):第一行的第一个元素往后面跳一列,即为a[0][1]元素,所以是2;
(2)
(a[1]+2):即为a[1][2]为6。
二维数组写成以上形式会比较简单。
3.数组的初始化
一维的可以不写,二维第二个一定要写。
例:int a[]={1,2}合法;int a[][4]={2,3,4}合法;int a[4][]={2,3,4}不合法。

第八章 结构体

1.什么是结构体?
结构体是一种工具,用这个工具用户可以定义自己的数据类型。同时,结构体属于一种构造数据类型。
2.结构体与数组的比较:
(1)都由多个元素组成;
(2)各个元素在内存中的存储空间是连续的;
(3)数组中各个元素的数据类型相同,而结构体中各个元素的数据类型可以不相同。
3.结构体的定义和使用
(1)一般形式:

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...