c语言学习重点有哪些
4个回答
展开全部
大家好,我是华北工学院的,专业是经济学。马上就要上大四了,现在已经拿到三级证书。作为过来人,对于网络考试,我有一些自己的感受,想和大家做个交流,供正在努力中的朋友们做个参考,希望有所帮助。
我是去年(2002)9月份参加全国三级计算机考试改革的第一次考试的,是大二下学期5月份报的名,直接报的三级(网络技术),看起来好象比较狂妄,不过由于对计算机本身的喜欢,并通过了CCNA(Cisco认证网络工程师)的考试,对计算机网络有比较清楚的了解。我想,只要用功,笔试应该不是问题的;对C语言的学习,我觉得是个难点,也没有打算一次性通过,觉得战线拉的长点比较好,这样准备时间充足。于是,我9月份考试的时候,笔试容易的很,题目做起来很轻松,每道题目对我来说都是飞驰而过。。。。。
至于上机,我进入系统,看了题目,觉得很深,自己一点都不会,于是在那里磨蹭了一些时间,然后下了机。。。。。成绩下来,笔试良好,上机当然是0分。
有了这次的上机经历,我对考试环境有了一些了解。经过努力,今年4月份参加三级网络技术的上机考试,以满分成绩通过,现在三级证书已经拿到。
对于三级(网络技术),我的感受是:
1.关于参加时间,对于在校大学生来说,最好是在大三,因为这个时期知识积累比较多,也容易学习;而且要保证在大四上学期通过,最好是大四11月份以前,因为11月招聘会就开始了,拿到证书对自身作用很大,也比较轻松;
2.对于笔试,一定要用教育部考试中心出的,高等教育出版社出的指定教材。现在盗版和仿冒的教材很多,大家要注意鉴别。
3.对于C语言的上机环境,版本比较多,我个人用的是Borland C 3.1(版本现在有点记的不是太清楚,应该就是这个),它是那本书上面的作者推荐使用的版本,这个教材也是结合这个C语言环境编写,这样教材和我用的完全配套,对学习的完整和实用性帮助很大,推荐大家使用;而且这个界面不是全屏幕显示,与XP系统配合的比较好,里面对于C语言的格式化输入帮助也是很明显,比较成熟,比Turbo C感觉要好一点;
4.至于考试中注意的事项,需要说明的是,有不少同学都会遇到这样的题“输出结果到out.dat”,注意这个结果你按Ctrl+F9是出不来的,好多同学看不见结果,以为自己错了,结果慌忙也没有存盘,甚至放弃。。。。是比较可惜的;
5.上机的时候,要查看你运行结果,进DOS SHELL,里面有你数据的详细资料;
6.注意快捷键的使用,提高工作效率,进而提高成绩。。。。。
7.至于网络的笔试,我认为没有什么好说的,就是多看,尤其是没有经历过网络学习的菜鸟们,一定要多看,不理解的就背,慢慢就会理解的。。。。。
8.最后,对于网络,通过了考试,只是说明你会那么一小点,并不能说明你是个高手。比如学了一本书,你知道网线的制作,有568A,568B两个标准,但是要你怎么区分这两个标准,自己去做一个网线,你会吗?你学了IP地址,但是对于经常见的192.168.0.1这个是哪里的地址你都不知道,那你还需要再深入了解,可以告诉大家答案,这个是内网IP,不对外使用的。 还有,现在宽带普及了,问你ADSL和Cable两种接入方式各是怎样,有什么特点,你还能回答出来吗? .......
所以我说,过了三级,不要以为自己很了不起-----网络之大,非你我所能想象,走过考试的门槛,展现在你们面前的,是更高,更远,更广阔的空间。。。。。。
我是去年(2002)9月份参加全国三级计算机考试改革的第一次考试的,是大二下学期5月份报的名,直接报的三级(网络技术),看起来好象比较狂妄,不过由于对计算机本身的喜欢,并通过了CCNA(Cisco认证网络工程师)的考试,对计算机网络有比较清楚的了解。我想,只要用功,笔试应该不是问题的;对C语言的学习,我觉得是个难点,也没有打算一次性通过,觉得战线拉的长点比较好,这样准备时间充足。于是,我9月份考试的时候,笔试容易的很,题目做起来很轻松,每道题目对我来说都是飞驰而过。。。。。
至于上机,我进入系统,看了题目,觉得很深,自己一点都不会,于是在那里磨蹭了一些时间,然后下了机。。。。。成绩下来,笔试良好,上机当然是0分。
有了这次的上机经历,我对考试环境有了一些了解。经过努力,今年4月份参加三级网络技术的上机考试,以满分成绩通过,现在三级证书已经拿到。
对于三级(网络技术),我的感受是:
1.关于参加时间,对于在校大学生来说,最好是在大三,因为这个时期知识积累比较多,也容易学习;而且要保证在大四上学期通过,最好是大四11月份以前,因为11月招聘会就开始了,拿到证书对自身作用很大,也比较轻松;
2.对于笔试,一定要用教育部考试中心出的,高等教育出版社出的指定教材。现在盗版和仿冒的教材很多,大家要注意鉴别。
3.对于C语言的上机环境,版本比较多,我个人用的是Borland C 3.1(版本现在有点记的不是太清楚,应该就是这个),它是那本书上面的作者推荐使用的版本,这个教材也是结合这个C语言环境编写,这样教材和我用的完全配套,对学习的完整和实用性帮助很大,推荐大家使用;而且这个界面不是全屏幕显示,与XP系统配合的比较好,里面对于C语言的格式化输入帮助也是很明显,比较成熟,比Turbo C感觉要好一点;
4.至于考试中注意的事项,需要说明的是,有不少同学都会遇到这样的题“输出结果到out.dat”,注意这个结果你按Ctrl+F9是出不来的,好多同学看不见结果,以为自己错了,结果慌忙也没有存盘,甚至放弃。。。。是比较可惜的;
5.上机的时候,要查看你运行结果,进DOS SHELL,里面有你数据的详细资料;
6.注意快捷键的使用,提高工作效率,进而提高成绩。。。。。
7.至于网络的笔试,我认为没有什么好说的,就是多看,尤其是没有经历过网络学习的菜鸟们,一定要多看,不理解的就背,慢慢就会理解的。。。。。
8.最后,对于网络,通过了考试,只是说明你会那么一小点,并不能说明你是个高手。比如学了一本书,你知道网线的制作,有568A,568B两个标准,但是要你怎么区分这两个标准,自己去做一个网线,你会吗?你学了IP地址,但是对于经常见的192.168.0.1这个是哪里的地址你都不知道,那你还需要再深入了解,可以告诉大家答案,这个是内网IP,不对外使用的。 还有,现在宽带普及了,问你ADSL和Cable两种接入方式各是怎样,有什么特点,你还能回答出来吗? .......
所以我说,过了三级,不要以为自己很了不起-----网络之大,非你我所能想象,走过考试的门槛,展现在你们面前的,是更高,更远,更广阔的空间。。。。。。
展开全部
一、语法规则方面应注意的问题
1.书写标识符时,应注意大小写字母的区别。例:
main( )
{int a=3; printf ( "%d ", A);}
学生在学习C语言之前可能已学习或使用了其他的高级语言,在这些高级语言中,有些并不区分变量名的大小写。但在C语言中则认为大写字母和小写字母是两个不同的字符,如上例中被认为a和A是两个不同的变量名,且并不一定显示出错信息,但往往得出错误的结果。习惯上,用预处理定义的符号常量名应大写,如:#define A 10,以增加可读性。
2. 分号的使用。分号是C语句中不可缺少的一部分,语句末尾必须有分号。对于复合语句来说,最后一条语句中的分号也不能忽略,但复合语句的花括号后面不应再加“;”,否则将会画蛇添足。改错时,有时在被指出有错的一行中未发现错误,就需要看本行的上下行是否漏掉了分号。
3. 预处理命令和C语句的区别。预处理命令不是C语言本身的组成部分,也不是C语句。书写预处理命令时均以“#” 打头,末尾不应加分号。如果加了“;”号,编译发生错误,根据错误提示来查找这类错误,较难发现。
二、几个常用函数应用时应注意的问题
1. scanf� 函数
(1)scanf函数中的格式控制后面应当是变量地址,而不应是变量名。例如:如果a,b为整型变量,则:scanf(“%d,%d”,a,b);是不对的,应该为 scanf(“%d,%d”,&&a,&&b)。
(2)如果在格式控制后面除了格式说明以外还有其他字符,则在输入时应输入与这些字符相同的字符。例如:scanf(“%d,%d”,&&a,&&b),输入时应用如下形式3,4 如果输入时不用逗号而用空格或其他字符都是不对的。
(3)当用scanf函数给一个字符数组赋值时,由于数组名代表数组的起始地址,因此地址参数应用数组名。
如:char str[10];scanf(“%s”,str); 而用scanf(“%s”,&&str)不对。
2. printf� 函数
(1)注意函数参数的求值顺序。例:
int i=2;printf(“%d,%d,%d”,i++,i++,i--);
该程序的结果很容易判断为2,3,3。但turbo c2.0在执行printf()函数时,参数自右向左依次压入栈中,即先压入i--参数的值,再压入第二个i++参数的值,最后将第一个i++参数的值压入;弹出时则依次为i++,i++,i--,因此结果为2,1,2。即turbo c2.0对参数的求值顺序是自右而左。若没有注意函数的求值顺序和++,--运算的前、后缀运算,甚至会感到结果莫名其妙。
(2)注意(i++)�(i++)作为printf()输出项参数和作为赋值表达式一部分的区别。例如:
i=2;printf(“%d”,(i++)�(i++));在此语句中先处理右边的(i++),即先用i的原值2,然后i自加,这时左边的(i++)的值就是3,进行2�3运算,故结果为6。而在下列例子中:
i=2;j=((i++)�(i++));printf(“%d”,j);结果就不同了,先将原值i在取出来在整个表达式中应用,进行2�2运算,赋值给j,然后再执行两次自加操作,结果为4。
三、不同类型的数值型数据进行混合运算时应注意的问题
C语言中数值型数据进行混合运算时会自动进行类型转换,但可能因类型转换而产生误差或溢出的错误,这种错误往往容易被忽略而难于发现,这时需要强制进行类型转换以保证结果的正确性。两个相同类型的数值进行运算时,类型不变,而不同类型的数值进行运算时,先将位数短的数转换为位数长的数,再进行运算。特别地,两个整数进行加、减、乘、除运算时,结果仍为整数。下面看这个容易出错的简单例子。用公式π/4=1-1/3+1/5-1/7+……来求π时,如果用变量i(i的值为1,3,5,7……)来做分母,而分子为整型常数1,用这种方法1/i值为0,那么π的值求得为4,这显然不正确。为保证结果的正确性,累加语句应使用s=s+1.0/i或s=s+(float)1/i而不是s=s+1/i。
四、数组使用时应注意的问题
1. 定义数组时不能用变量。如�
int n; scanf ("%d", &&n); int a [n];
数组名后用方括号括起来的是常量表达式,可以包括常量和符号常量。即不允许对数组的大小C作动态定义。
2. 引用数组元素时下标的值不要超过数组的范围。例如:a数组长度为5,下标值应控制在0~4范围内。这一点特别要注意,C编译不检查下标是否出界,如果引用了a[5],系统会把a[4]后面的单元内容作为a[5]引用,如果有赋值语句,如:a[5]=100;很可能会破坏数组以外的其他变量,造成严重后果。 五、引用指针变量时应注意的问题
引用指针变量前应先对它赋予确定值。例如下面的例子就出了问题:
swap(int �p1,int �p2)
{ int �p��p=�p1��p1=�p2��p2=�p�}
main()
{int a,b,�q1��q2;scanf(“%d,%d”,&&a,&&b);q1=&&a;q2=&&b;
swap(q1,q2);
printf(“
%d,%d”,a,b);
}
程序原意是通过swap函数交换a,b的值,但输入2,8后运行结果为8,8;输入8,2后运行结果为2,2。a , b变量值并没有进行交换,原因是swap函数中的指针变量p无所指变量,只是把p2所指变量b值送入p1所指的变量a中。
1.书写标识符时,应注意大小写字母的区别。例:
main( )
{int a=3; printf ( "%d ", A);}
学生在学习C语言之前可能已学习或使用了其他的高级语言,在这些高级语言中,有些并不区分变量名的大小写。但在C语言中则认为大写字母和小写字母是两个不同的字符,如上例中被认为a和A是两个不同的变量名,且并不一定显示出错信息,但往往得出错误的结果。习惯上,用预处理定义的符号常量名应大写,如:#define A 10,以增加可读性。
2. 分号的使用。分号是C语句中不可缺少的一部分,语句末尾必须有分号。对于复合语句来说,最后一条语句中的分号也不能忽略,但复合语句的花括号后面不应再加“;”,否则将会画蛇添足。改错时,有时在被指出有错的一行中未发现错误,就需要看本行的上下行是否漏掉了分号。
3. 预处理命令和C语句的区别。预处理命令不是C语言本身的组成部分,也不是C语句。书写预处理命令时均以“#” 打头,末尾不应加分号。如果加了“;”号,编译发生错误,根据错误提示来查找这类错误,较难发现。
二、几个常用函数应用时应注意的问题
1. scanf� 函数
(1)scanf函数中的格式控制后面应当是变量地址,而不应是变量名。例如:如果a,b为整型变量,则:scanf(“%d,%d”,a,b);是不对的,应该为 scanf(“%d,%d”,&&a,&&b)。
(2)如果在格式控制后面除了格式说明以外还有其他字符,则在输入时应输入与这些字符相同的字符。例如:scanf(“%d,%d”,&&a,&&b),输入时应用如下形式3,4 如果输入时不用逗号而用空格或其他字符都是不对的。
(3)当用scanf函数给一个字符数组赋值时,由于数组名代表数组的起始地址,因此地址参数应用数组名。
如:char str[10];scanf(“%s”,str); 而用scanf(“%s”,&&str)不对。
2. printf� 函数
(1)注意函数参数的求值顺序。例:
int i=2;printf(“%d,%d,%d”,i++,i++,i--);
该程序的结果很容易判断为2,3,3。但turbo c2.0在执行printf()函数时,参数自右向左依次压入栈中,即先压入i--参数的值,再压入第二个i++参数的值,最后将第一个i++参数的值压入;弹出时则依次为i++,i++,i--,因此结果为2,1,2。即turbo c2.0对参数的求值顺序是自右而左。若没有注意函数的求值顺序和++,--运算的前、后缀运算,甚至会感到结果莫名其妙。
(2)注意(i++)�(i++)作为printf()输出项参数和作为赋值表达式一部分的区别。例如:
i=2;printf(“%d”,(i++)�(i++));在此语句中先处理右边的(i++),即先用i的原值2,然后i自加,这时左边的(i++)的值就是3,进行2�3运算,故结果为6。而在下列例子中:
i=2;j=((i++)�(i++));printf(“%d”,j);结果就不同了,先将原值i在取出来在整个表达式中应用,进行2�2运算,赋值给j,然后再执行两次自加操作,结果为4。
三、不同类型的数值型数据进行混合运算时应注意的问题
C语言中数值型数据进行混合运算时会自动进行类型转换,但可能因类型转换而产生误差或溢出的错误,这种错误往往容易被忽略而难于发现,这时需要强制进行类型转换以保证结果的正确性。两个相同类型的数值进行运算时,类型不变,而不同类型的数值进行运算时,先将位数短的数转换为位数长的数,再进行运算。特别地,两个整数进行加、减、乘、除运算时,结果仍为整数。下面看这个容易出错的简单例子。用公式π/4=1-1/3+1/5-1/7+……来求π时,如果用变量i(i的值为1,3,5,7……)来做分母,而分子为整型常数1,用这种方法1/i值为0,那么π的值求得为4,这显然不正确。为保证结果的正确性,累加语句应使用s=s+1.0/i或s=s+(float)1/i而不是s=s+1/i。
四、数组使用时应注意的问题
1. 定义数组时不能用变量。如�
int n; scanf ("%d", &&n); int a [n];
数组名后用方括号括起来的是常量表达式,可以包括常量和符号常量。即不允许对数组的大小C作动态定义。
2. 引用数组元素时下标的值不要超过数组的范围。例如:a数组长度为5,下标值应控制在0~4范围内。这一点特别要注意,C编译不检查下标是否出界,如果引用了a[5],系统会把a[4]后面的单元内容作为a[5]引用,如果有赋值语句,如:a[5]=100;很可能会破坏数组以外的其他变量,造成严重后果。 五、引用指针变量时应注意的问题
引用指针变量前应先对它赋予确定值。例如下面的例子就出了问题:
swap(int �p1,int �p2)
{ int �p��p=�p1��p1=�p2��p2=�p�}
main()
{int a,b,�q1��q2;scanf(“%d,%d”,&&a,&&b);q1=&&a;q2=&&b;
swap(q1,q2);
printf(“
%d,%d”,a,b);
}
程序原意是通过swap函数交换a,b的值,但输入2,8后运行结果为8,8;输入8,2后运行结果为2,2。a , b变量值并没有进行交换,原因是swap函数中的指针变量p无所指变量,只是把p2所指变量b值送入p1所指的变量a中。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
嘿嘿,C语言重点啊,其他都没什么,最重要的是指针,只此一家,别无分店
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数和指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询