C语言考试全部知识点复习重点常考点 联系客服

发布时间 : 星期五 文章C语言考试全部知识点复习重点常考点更新完毕开始阅读273b85cbc381e53a580216fc700abb68a882ad10

个。 int a[2][3]={{1,2},{3,4,5}}; 合法,第一行最后一个默认为0。

int a[2][3]={1,2,3,4,5,6,7}; 不合法,赋值的

int a[][3]={1,2,3,4,5,6}; 不合法,不可以缺省行的个数。

int a[2][]={1,2,3,4,5,6}; 合法,可以缺省列的个数。 补充:

1)一维数组的重要概念: 对a[10]这个数组的讨论。

a) a表示数组名,是第一个元素的地址,也就是元素a[0]的地址。(等价于&a) b) a是地址常量,所以只要出现a++,或者是a=a+2赋值的都是错误的。 c) a是一维数组名,所以它是列指针,也就是说a+1是跳一列。 对a[3][3]的讨论。

a表示数组名,是第一个元素的地址,也就是元素a[0][0]的地址。

b) a是地址常量,所以只要出现a++,或者是a=a+2赋值的都是错误的。 c) a是二维数组名,所以它是行指针,也就是说a+1是跳一行。 d) a[0]、a[1]、a[2]也都是地址常量,不可以对它进行赋值操作,同 时它们都是列指针,a[0]+1,a[1]+1,a[2]+1都是跳一列。 26. 其他知识点:

1)字符串的 strlen() 和 strcat() 和strcmp() 和strcpy()的使用方法一定要记住。他们的参数都是地址。其中strcpy() 和strcmp()有两个参数。

2)strlen 和 sizeof的区别也是考试的重点;

3)#define f(x)(x)*(x) 和 #define f(x) x*x 之间的差别。一定要好好的注意这写容易错的地方,替换的时候有括号和没有括号是很大的区别。 4)int *p;

p = (int *)malloc(4);

p = (int *)malloc(sizeof(int));以上两个等价 当心填空题目,malloc的返回类型是 void *

6)函数的递归调用一定要记得有结束的条件,并且要会算简单的递归题目。 7)结构体要掌握最简单的,而且一定要知道如何引用结构体中的各个变量。 8)scanf 和 gets的数据:

如果输入的是 good good study!

那么scanf(“%s”,a); 只会接收 good. 考点:不可以接收空格。 gets(a); 会接收 good good study! 考点:可以接收空格。

9)“文件包含”的考查点:

这里一个C语言程序是有两个文件组成,分别是no1.c, no2.c。那么no1.c中最开始有个#include”no2.c”,表示把第二个文件的内容给包含过来,那么no1.c中调用add()函数的时候就可以了把数值传到no2.c中的被调用函数add()了。

一个文件必须要有main函数。 这句话错了。 例如:no2.c就没有。 被包含的文件一定是以.h结束的。 这句话错了。例如:no1.c中就是#include”

no2.c”以.c结尾的。 10)指针迷惑的考点:

char ch[]=”iamhandsome”; char *p=ch; 问你 *(p+2) 和 *p+2的结果是多少? ‘m’ ‘k’ 结果是这两个。 11)数组中放数组一定要看懂:

int a[8]={1,2,3,4,4,3,2,2}; int b[5]={0};

b[a[3]]++ 这个写法要看懂,结果要知道是什么?b[4]++,本身是0,运行完后,b[4]为1了。

15)字符串的赋值: C语言中没有字符串变量,所以用数组和指针存放字符串:

a)char ch[10]={“abcdefgh”}; 对 b)char ch[10]=

“abcdefgh”; 对 c)char

ch[10]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,‘\\0’}; 对 d)char *p=

“abcdefgh”; 对

e)char *p; p=

“abcdefgh”; 对 f)char ch[10]; ch=“abcdefgh”; 错了!数组名不可以赋值!

g) char *p={“abcdefgh”}; 错了!不能够出现大括号!

16)typedef 是取别名,不会产生新的类型,它同时也是关键字 考点一:typedef int qq 那么 int x 就可以写成 qq x 考点二:typedef int *qq 那么 int *x就可以写成 qq 17)static 考点是一定会考的!复习相关的习题。 static int x;默认值为0。

x