本文目录一览:
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语言的数据类型 关于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语言的难点在哪里
1、c语言的主要难点在于指针,链表,函数,数组,结构体,文件等等方面的知识,这些知识点因为其复杂的特性,学习起来稍微有点难度,但是只要多加学习,在编写程序的过程中加以学习,也是能很好的掌握这些知识点的。
2、C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
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、函数。这个难度不大,主要是要理解,参数是在调用的时候另外开辟内存空间。除了数组和用定义的参数。要不然子函数改变了参数变量,调用它的地方的变量时不会改变的
其实就是这些基本的知识点