您的位置:

c语言里的难点,c语言重点难点总结

本文目录一览:

C语言基础的几个难点解析

一、整型数据的范围

不同类型的数据在内存中占用的存储单元长度不同,以VC++6.0的编译环境为例,基本整型(int)数据分配4个字节,短整型(short int)数据分配2个字节。我们以short int为例。1个字节为8个二进制位,每个短整型数据分配2个字节,即16位。对于有符号位的短整型(signed short int,默认的),最左面一位作为符号位,0表示正,1表示负。即能存储的最大数为0111111111111111,第一位是0,表示正数,后边15位都是1,转换为十进制为32767;最小数为1000000000000000,转换为十进制为-32768。超出此范围,即为“溢出”。例如:

short int a,b,c,d; a=32767;b=a+1; c=-32768;d=b-1;

printf("b=%d\t",b); printf("d=%d\n",d); 输出结果为b=-32768 d=32767

对于无符号的短整型(unsigned short int),最小为0000000000000000,最大为1111111111111111,范围0~65535。例如:

unsigned short int e=65535,f; f=e+1;

printf("f=%d\n",f); 输出结果为f=0

二、运算符

算术运算符有+,-,*,/,%,++,--。其中,*号在表达式中不可以省略,如b2-4ac,写成表达式为b*b-4*a*c。/和%要区分好,/为商,%为余。如a可以被b整除,表示为a%b==0。++,--的使用方法有两种:一种i++,i--,先使用i原值,再使i的值加或减1;第二种++i,--i,先使i的值加或减1,再使用i的新值。例如:

int i=11; printf("%d\n",i++ * 1/3); 输出结果为3。

int i=11; printf("%d\n",++i * 1/3); 输出结果为4。

自加自减运算符在后边的学习中会经常用到,要好好理解。

逻辑运算符有,||,!。在逻辑表达式中,不是所有的逻辑运算符都执行,只在必须执行下一个逻辑运算符才能求出表达式的解的时候,才执行该运算符。a b只有a为真时,才判断b的值。换句话说,a如果为假,b就不执行。同理,a || b,a如果为真,b就不用执行。例如:

int m=1,n=1,a=1,b=1;

printf(“表达式=%d\t”,(m=ab)(n=ab)); printf("m=%d,n=%d\n",m,n);

输出结果为 表达式=0 m=0,n=1

常用的运算符的优先级别从高到低排序为:!,算术运算符(++,--高于*,/,%高于+,-),关系运算符(,=,,=高于==,!=),,||,赋值运算符,逗号运算符。

三、比较数的大小

例如:编写程序,输出三个整数的最大值。刚接触C语言的学生,大部分学生上机实践都可以完成这个程序,但是思路不太好。调整算法思路,便于以后程序的编写。

main( )

{ int a,b,c,max; max=a;

if(bmax) max=b; if(cmax) max=c; printf("max=%d\n",max);}

同理,编写程序,输出10个整数的最大值。

main( )

{ int a[10],max,i; for(i=0;i=9;i++) scanf("%d",a[i]);

max=a[0]; for(i=1;i=9;i++) if(a[i]max) max=a[i];

printf("max=%d",max); }

四、switch语句

处理选择结构有if语句和switch语句。switch语句用于处理多分支选择结构,在使用时有多个注意点,这里强调两点。

1.case后边的常量,不能写成表达式。

例如:编写程序,评判学生成绩score的等级grade,90~100为A,80~90为B,70~80为C,60~70为D,60以下为E。

c语言的难点

c学起来也不是很难,主要是指针和其他的知识点入数组、函数等组合起来难理解一些

要想学习,主要有几点需要注意

一、记忆部分

1、保留字,如if,int,for等

2、常规的结构,如条件,循环,switch、数组的结构,指针定义,结构体的定义等

3、语法的构成,如printf,scanf等一些语句的构成

4、一些系统带的函数,常用的要记住,如strlen,printf等

5、一些经典的算法,如素数的计算,排序的写法等

二、算法,语法等

这个就是解决问题的方法,没有好的捷径,只要慢慢的积累,数学方面的算法要加深

其实,c基础也就是那么一些基础点

1、保留字

2、定义变量等,int,float等

3、条件语句if,选择语句switch,循环,do--while、for、while、goto

4、注意逗号语句,scanf和printf要熟练,知道格式(这个很基础,用错了很麻烦)

5、数组,这里注意二维数组和字符串的一些函数

6、指针,这个是难点,也就是说很难理解,特别是和数组函数结构体等结合使用的时候

7、结构体共用体,这个不难,就是繁琐而已。这里涉及到链表,其实不难理解,可以想象成一串珠子,next指针就是串珠子的线,结构体就是珠子

8、文件操作,这个就是套用格式,没难度

9、宏定义,这个没难度,就是最简单的直接替换。注意一点就是在定义宏的时候多用几个括号增加优先级没坏处

10、函数。这个难度不大,主要是要理解,参数是在调用的时候另外开辟内存空间。除了数组和用定义的参数。要不然子函数改变了参数变量,调用它的地方的变量时不会改变的

其实就是这些基本的知识点

学习C语言应注意哪些方面?其重点和难点是哪些?

第一个难点 C语言的数据类型 关于C语言数据类型,不难理解但难于运用。这就要求同学们在学习的时候记住常用的一些数据类型的特征(第一次作业第2题内容)。 第二个难点 C语言的运算符和运算顺序 1.C语言的运算功能十分丰富,运算种类远多于其它程序设计语言。大家在学习的时候不仅要注意某些运算符的运算法则,还要注意运算规则(注意事项)。 2.当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。 第三个难点 C语言的三种简单程序结构 其实,C语言的前二个程序结构不是难点,三种结构里难点应在于循环的嵌套用法。 (1)关于顺序结构 这种结构的程序比较简单,就是按照语句的排列顺序依次执行的机制。顺序结构的执行顺序是自上而下,依次执行,因此编写程序也必须遵守这一规定,否则你的程序执行结果就不对。 语句也是多分支选择语句,又称为多路开关语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if—else 语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。 (3)关于循环结构: 循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do –while循环和for循环。 四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提昌用goto循环,所以下面我们重点讲解另外的三种循环。 常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,大家好好看一下书中三种循环的格式和执行顺序,如何替换使用,如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。 注意:在while和do—while循环体内和for 循环中的第3语句中,应包含趋于结束的语句(如i++,i--),否则就可能成了一个死循环,这也是初学者的一个常见错误。 下面我们来讨论下这三种循环的异同之处: 用while和do—while循环时,循环变量的初始化的操作应在循环体之前,而for循环是在语句1中进行的;while 循环和for循环都是先判断表达式,后执行循环体,而do—while循环是先执行循环体后判断表达式,也就是说do—while的循环体最少被执行一次,而while 循环和for就不一定了。这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,不能用break和 continue语句进行控制。 这三种结构并不是彼此孤立的,在循环中可能出现分支、顺序结构,分支中也可能出现循环、顺序结构而把循环、分支看成一个语句,它又是构成顺序结构的一个元素,因此这三种结构相互结合,就能实现各种算法,设计出解题程序,但若是很大的题目,这样编出的程序往往很长,重复结构多,并且可阅读性差,因此我们常将C程序设计成模块化结构。

c语言的难点在哪里?

难的是设计。能把别人的设计思路弄通了,就没什么难度了。指针不是难点,难的是看懂别人的设计思路,能读懂别人的变量定义以及变量的用处。指针稍微精通C语言的人都不会很纠结指针,看懂指针和精通运用指针是两个概念。

c语言程序设计难点在哪里?

C语言是一种表达力很强的语言,而且与其他语言相比显得比较精炼高效。在C语言中的语法部分,比较难的是指针,由于它很灵活,用好的话能大大提高效率,反之则容易出错(一般是内存空间指向出错,如指针空悬、内存泄露等),但是当你练多了,指针应该也不成问题(要有意识的去练),我觉得真正的难点在于算法逻辑。理论上,C语言只要求你时刻知道自己在干什么,要实现什么功能,只要你的程序逻辑明晰,一般不用再DEBUG,一次就能成功,反之,如果自己都感觉模糊,那程序只会比你还模糊:-D,要极好的人品才能勉强运行成功,但出不出正确结果还不一定。解决的方法很简单,就是练。每成功写出一个程序,都会让自己有所进步,积累多了,就能在编程之前在大脑里构建出清晰的蓝图,编程自然不在话下。祝你在通往程序员的道路上一路狂奔,呵呵