Jump to content
  • Hello visitors, welcome to the Hacker World Forum!

    Red Team 1949  (formerly CHT Attack and Defense Team) In this rapidly changing Internet era, we maintain our original intention and create the best community to jointly exchange network technologies. You can obtain hacker attack and defense skills and knowledge in the forum, or you can join our Telegram communication group to discuss and communicate in real time. All kinds of advertisements are prohibited in the forum. Please register as a registered user to check our usage and privacy policy. Thank you for your cooperation.

    TheHackerWorld Official


NedK7

Recommended Posts

 

必须清楚

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)一般形式:

Link to post
Link to comment
Share on other sites

 Share

discussion group

discussion group

    You don't have permission to chat.
    • Recently Browsing   0 members

      • No registered users viewing this page.
    ×
    ×
    • Create New...