c语言课程设计成绩处理程序

复习C语言最重要的知识点!看看你需要学习的一切。保证你通过!

总的来说,必须明确一点:

1)程序结构有三种:顺序结构、循环结构(三个循环结构)和选择结构(if和switch)。

2)从main()入口读程序,然后从顶序往下读(遇到循环就做循环,遇到选择就做选择)。

3)计算机数据以二进制形式存储在计算机中。数据存储的位置就是他的地址。

4)位表示0或1。Byte指字节,一个字节=八位。

5)一定要记住二进制怎么分成小数。

概念经常被测试:

1.编译器预处理不是C语言的一部分,所以不再运行。用C语言编译的程序称为源程序,用ASCII值存储在文本文件中。

2.每个C语言程序中只有一个主函数。

3.函数中不能定义更多的函数。

4,算法必须有输出,他可以没有输入。

5.break可用于循环结构和switch语句。

6.逗号运算符的级别最低。

第一章

1)合法用户标识符检查:

法律要求由字母、数字和下划线组成。有其他元素是不对的。

第一个必须是字母或下划线。第一个数字是错误的。

关键字不能用作用户标识符号。Main define scanf printf不是关键字。让你困惑的是If可以作为用户标识符。因为If中第一个字母大写,所以不是关键字。

2)真实数据的法律形式:

2.333e-1合法,数据为2.333x10-1。

考试公式:e前必须有一个数字,e后必须有一个整数。

3)字符数据的合法形式:

‘1’表示字符占用一个字节,“1”表示字符串占用两个字节(包括结束符号)。

“0”的ASCII值是48,“a”的ASCII值是97,“a”的ASCII值是65。

4)整数一般为两个字节,字符为一个字节,双精度一般为四个字节:

一般来说,考试的时候你会把系统编译成16 bit,或者32 bit的系统。这种情况,就别管了,做同样的题。掌握整数一般是两个字节,字符是一个字节,双精度一般是四个字节。

5)转义字符的检查:

程序中Int a = 0x6d是给变量a一个十六进制数,注意这里的0x必须存在。

程序中Int a = 06d,是八进制形式。

在转义字符中,' \x6d '是合法的,不能写0,x是小写的。

' 141 '合法,不能写0。

“108”是非法的,因为8不能出现。

6)算术运算符号的优先级:

同一级别,有的是从左到右,有的是从右到左。

7)强制类型转换:

必须是(int)a,而不是int(a)。请注意,类型上必须有括号。

注意(int)(a+b)和(int) a+b的区别,前者是变换a+b,后者是变换A加b。

8)表情检查:

如果是表达式,肯定有数值。

赋值表达式:表达式值是最左边的值,a = b = 5;表达式为5,不能赋值常量。

自加自减表达式:假设a=5,++a(为6),a++(为5);

运算机制:++a就是把变量的值加1,然后把得到的值放入变量A,然后用这个。

a ++a表达式的值是6,a++是先把表达式的值作为5,再把A的值加上1,就成了6。

并放入变量A中,在++a和a++之后,如果在下面的程序中使用A,那么在变量A中就是6..

考试公式:使用前+使用前,使用后+添加前。

逗号表达式:最低优先级;表达式的值。逗号最右边的表达式的值。

(2,3,4)表达式的数值是4。

9)钻头操作检查:

会有一两道考题。

一般处理方法:几乎所有位运算的问题都要按照这个流程来处理(先把十进制改成二进制再改成十进制)。

例1: char a = 6,b;

b = a & lt& lt2;这类问题的计算是先把A的十进制6转换成二进制,然后做位运算。

例2:必须记住,

示例3:当没有数据被丢弃时,

10)018的值是非法的,八进制中没有8,每8就是1。

11)%符号两边都要求是整数。如果不是整数就是错的。

12)四舍五入和丢失小数的三种情况:

1、int a = 1.6;

2 、( int)a;

3、

第二章

1)printf函数的格式检查;

%d对应于一个整数;%c对应的字符;%f对应单精度等等。宽度、左对齐等。

%ld对应于long int;%lf对应于double。

2)对2)scanf函数格式的研究:

注意这个函数的第二部分是&;像A这样的地址不是;

Scanf("%d%d%*d%d ",& amp一,& ampb & amp;c);跳过输入的第三个数据。

3)检查3)putchar、getchar函数:

Char a = getchar()没有参数。从键盘输入一个字符到变量a。

Putchar('y' y ')将字符y输出到屏幕。

4)如何交换两个变量X和Y中的值(需要记忆)

不能放x=y,y = x;使用中间变量t = x;x = y;y=t .

5)如何实现保留小数点后三位,四舍五入到第四位的程序(需要记忆)

这具有推广的意义。注意x = (int)x是去掉小数部分。

第三章

需要特别注意的是:在C语言中,非零表示逻辑真,0表示逻辑假。

1)关系表达式:

表达式的数值只能是1(true)或false)。

当关系表达式为真时,得到1。例如9 >;8这是真的,所以表达式的值是1;

2)逻辑表达式:

只能是1(表示真)或0(表示假)。

A) ***是& & amp|| !三种逻辑运算符号。

b)!& gt& amp& amp& gt||优先级。

c)注意短路现象。我更喜欢在考试中得到它。

d)表示X大于0小于10的方法。0 & ltx & lt不允许10(请记住)。就是计算0

3)if语句

Else在没有else的情况下与最接近的if组合。

4)条件表达式:

表达式1?表情2:表情3

注意,不为0时,为表达式2的数值,为0时,为表达式2的数值。

考试公式:假期前后真。

5)开关语句:

a)一定要注意破和不破的区别。对于书中的两个例子(第34页),如果没有断行,只要有一个案例匹配,其余的就会被执行。如果有中断,会直接跳出swiche语句。

b)开关只能与break一起使用,不能与continue一起使用。

第四章

1)三个循环结构:

a)for();while();有三种do- while()。

b)在b)for循环中必须有两个分号。别忘了。

c)写程序的时候一定要注意循环必须结束的条件,否则会变成无限循环。

do-while()循环的最后一个while();分号不能丢失。(注意在电脑上修改错误)

2)中断和继续的区别

记忆方法:

Break:意思是中断,所以看到break就退出整个循环。

Continue:表示继续(继续循环操作),但要结束这个循环,则表示循环体中剩余的语句不会被执行,跳转到循环的开头,然后判断循环条件,开始新的循环。

3)嵌套循环

有一个循环,有一个循环在里面。这很复杂,需要耐心一步一步计算。一般记住两层处理二维数组。

4) while((c=getchar())!='\n ')和while(c=getchar()!='\n ')

先看a = 3!= 2和(a=3)!=2的区别:

(!=号比=号级别高,所以第一个先数3!= 2)a的第一个值是1;第二个a的值是3。

考试注意:这里括号的重要性。

第五章

功能:具有一定功能的程序块;

1)函数的参数,返回值(示意图):

主()

{

int a = 5,b=6,c;

c = add(a,b);

printf("%d ",c);

}

调用函数

a和b是真正的论点。

整个函数得到一个值

Add函数的返回值。

int add ( int x,int y)

{

int z;

z = x+y;

返回z;

}

被调用函数

x和y是形式参数。

该函数返回的值是一个整数。

z是这个add函数的计算结果,是函数返回给主程序的返回值。

程序从上到下依次执行。当遇到函数add时,A和B的值被传递给调用函数,程序暂时中断,等待返回值。当获得返回值时,它将被顺序执行。

2)一定要注意参数之间的传递。

实形参和形参的区别,以及地址。(考试要点)

如果值被传递,形式参数的变化不会改变真实参数的变化。

如果传递地址,形式参数的变化可能会改变实际参数的变化。

3)功能声明的检查:

必须有:函数名,函数返回类型,函数参数类型。

您不必知道参数的名称。

第六章

指针变量的本质是放地址,一般变量是放值。

int *p中*p和p的区别:

*p可以作为变量;*的作用是取后地址p中的值。

p被用作地址。

*p++和(*p)++:改错题很重要。

*p++表示地址会改变。

(*p)++是要更改的值。

三人主义:(考试重点)

数组名:表示第一个元素的地址。数组名不能自行添加,它是一个地址常量名。(我考了很多次)

函数名:表示这个函数的入口地址。

字符串常量名称:表示第一个字符的地址。

第七章

1一维数组的重要概念;

关于数组a[10]的讨论。

1和A代表数组名,是第一个元素的地址,也就是元素A的地址[10]。

2.a是一个地址常量,所以只要赋值a++或者a=a+2,就是错误。

3.a是一维数组名,所以是列指针,也就是说a+1是跳过一列。

对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]。

5.注意,A与a[0]、a[1]和a[2]不同,它们的基类型也不同。前者是一行元素,后三者是一列元素。

二维数组解题技巧;

如果有一个[3] [3] = {1,2,3,4,5,6,7,8,9}。

第一步:把它们写成:第一列,第二列,第三列。

a[0]à 1 2 3 ->首行

a[1]à4 5 6-->预备之物

a[2]à 7 8 9 ->第三线

步骤2:这样做非常简单:

*(a[0]+1)我们知道第一行第一个元素跳回一列,所以这是a[0][1]元素,所以是1。

*(a[1]+2)我们知道是第二行的第一个元素跳回两列。所以这是元素a[1][2],所以是6。

一定要记住:只要是二维数组的题目,一定要按照上面的格式写,然后做题就比较容易了。

数组初始化,一维和二维,一维不能写,二维第二必须写。

Int a [] = {1,2}合法。Int a [] [4] = {2,3,4} legal。但是int a [4] [] = {2,3,4}是非法的。

二维数组中的行指针

int a[1][2];

其中A现在是行指针,a+1跳过一行数组元素。带(*)p[2]指针

A[0],a[1]现在是列指针。A[0]+1跳转到一个数组元素。与*p[2]指针数组一起使用。

记住脱衣服的法则:

A[2]变成*(a+2) a[2][3]变成*(a+2)[3]然后变成*(a+2)+3)。

这个想法很重要。