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

作者&投稿:闽复 (若有异议请与网页底部的电邮联系)
总结C语言基础知识这章节的难点在哪~

因为我是学习计算机软件专业的,且使用 C 语言编程也有很长时间了。故我的最深体会就是:C 语言中最、最难于理解、且最难于熟练掌握的就是:C 语言中的指针概念!!
而且了,C 语言中强大的指针功能再和软件专业中的《数据结构》课程中的各种链表(例如:单链表、双链表、循环链表等)一起进行混合编程,那么其程序调试难度更是难上加难。
故如果想真正彻底精通掌握这部分编程技能,没有别的办法,只能够亲自多上机编写、并亲自调试程序,直到调试通过为止。当达到了一定的数量后,就会产生编程的灵感了。

#includeint func(int *a,int *b);void main(){ int x=0,y=2;// int func();//这里不规范 y=func(&x,&y); x=func(&x,&y); printf("%d,%d
",x,y);}int func(int *a,int *b){ if(*a>*b) (*a)-=*b; else (*a)--; return ((*a)+(*b));}结果-1,1调用func(int *a,int *b)a指向x的地址,b指向y的地址,即*a = x,*b = y;第一次调用后x = -1,y = 1;第一次调用后x = -1,y = 1;#includevoid main(){ int f(int); int x=1,k; for(k=0;kint f(int x){ int p; if(x==0||x==1) return(3); p=x-f(x-2); return(p);} void main(){ printf("%d
",f(9)); } //结果为7//p = 9 -f(7) = 9 - (7 - f(5)) = 9 - (7 - (5 - f(3))) //= 9 - (7 - (5 - (3 - f(1)))) = 9 - (7 - (5 - (3 - 3)) = 7// int f(int x)//是一个递归掉用函数,调用到直到能计算出f(3)的值 #include void main(){ void increment(void); increment(); increment(); increment();}void increment(void){ static int x=0; x++; printf("%d
",x);}结果为 1 2 3
//还是一个局部静态变量的问题

一、整型数据的范围
不同类型的数据在内存中占用的存储单元长度不同,以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=a>b)&&(n=a>b)); printf("m=%d,n=%d\n",m,n);
输出结果为 表达式=0 m=0,n=1
常用的运算符的优先级别从高到低排序为:!,算术运算符(++,--高于*,/,%高于+,-),关系运算符(>,>=,<,<=高于==,!=),&&,||,赋值运算符,逗号运算符。
三、比较数的大小
例如:编写程序,输出三个整数的最大值。刚接触C语言的学生,大部分学生上机实践都可以完成这个程序,但是思路不太好。调整算法思路,便于以后程序的编写。
main( )
{ int a,b,c,max; max=a;
if(b>max) max=b; if(c>max) 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语言的学生,大部分学生上机实践都可以完成这个程序,但是思路不太好。调整算法思路,便于以后程序的编写。main( ){ int a,b,c,max; max=a;if(b>max) max=b; if(c>max) max=c; printf("max=%d\n",max...

c语言的难点
c语言的难点如下:1、语言基础难理解。C语言是用来编写操作系统和很多系统中底层部件的一种语言。基础语言理解难度大,但是学习这门语言可以使语言基础稳固。2、计算机程序运行过程复杂。这门语言的核心特点就是精密,复杂,但是执行效率非常高。所以这门语言用来开发底层系统,以及适用范围非常广泛。3、典型...

自考英语有哪些难点?
词汇量: 英语词汇是学习任何语言的基础,而自考英语对词汇量的要求相对较高。考生需要掌握大量的单词及其用法,这对于平时英语使用频率不高的考生来说尤其困难。语法结构: 英语语法与汉语存在很大的差异,许多语法点对于中国学生来说比较陌生,如时态、语态、虚拟语气等。正确理解和运用这些语法规则对提高英语...

俄语的学习难点有哪些?
学习俄语的难点主要包括以下几个方面:语法复杂:俄语的语法系统非常复杂,尤其是名词的变格系统,有六个格的变化,每个格又有单数和复数的区别,这对于初学者来说是一个很大的挑战。此外,俄语的动词也有复杂的时态和语态变化。词汇量庞大:俄语的词汇量非常大,尤其是专业词汇和成语,这需要学习者花费大量...

幼儿学习语音的难点有哪些?
幼儿学习语音的难点主要包括以下几个方面:1.发音准确性:幼儿在学习语音时,由于口腔肌肉的控制能力较弱,容易出现发音不准确的问题。此外,幼儿在学习过程中容易受到母语口音的影响,导致发音偏离正确的目标。2.声调掌握:幼儿在学习声调时,由于声带振动和气流控制的能力有限,很难准确地发出各种声调。此外...

大学生学习9大语种的难点所在
另外意西葡三语打嘟噜发音的掌握也是一个难点。习惯了中规中矩的英语字母,会觉得这几种语言的好些字母看上去挺另类,有装天线的,比如a e,有戴帽子的比如个仓负,有配眼镜的,比如 ei u ,还有一个穿高跟鞋的C。有些同学会由此判断,这语言的字母太多,很麻烦;实际情况并非如此,这些带音符的...

语基语言概述
语言基础,通常指的是人们通过书面和口头交流所依赖的基本能力,它由语音、词汇和语法组成,是学习语文的基础要素。在学生的学习目标中,重点在于掌握拼音和汉字,如准确地使用汉语拼音规则,辨识和改正错别字,以及熟练地使用字典和词典进行识字。高考中的语基部分,包括文学文化常识,对于3500个常用汉字中的...

Java学习有哪些重点和难点
Java学习第三个重点难点——OOP面向对象编程思想 Java作为高级编程语言,最大的特点就是采用面向对象编程思想,与面向过程的编程方法相比,OOP能够大幅度的提高代码运行效率。在面向对象中需要重点理解类、对象、抽象类、接口、封装、集成和多态的概念。在Java编程开发中,大部分实战项目都是采用面向对象的思维...

浅谈日语学习的难点及要注意的几个问题
关于日语学习难点,应该是很多人都不能长期坚持下来,还有就是感觉听说比较薄弱。日语学习应该要注意的几个问题 1、日语的发音一定要准确!发音是语言学习的基础,在刚开始学习日语五十音图的时候一定要注意发音的口型及发音的准确性!你可把自己的发音录下来然后和教材或者网站上日本人的发音作对比,找出...

学习一门新语言有什么难点
因此在语言的四大基本技能——听说读写中,关于听与说,比读写要简单多了。任何一个人,只要生理无听力方面的障碍,基本都具备听别人讲话的能力。听到的内容一般都只需理解语言所承载的基本信息就够了。自不必多言,无言语生理障碍的人都能够用自己的母语达到一般的交际与表达自我的目标。听与说当然也...

钢城区13882801058: c语言的难点在哪里 -
戏爸贝特: 1、c语言的主要难点在于指针,链表,函数,数组,结构体,文件等等方面的知识,这些知识点因为其复杂的特性,学习起来稍微有点难度,但是只要多加学习,在编写程序的过程中加以学习,也是能很好的掌握这些知识点的. 2、C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.

钢城区13882801058: C语言的难点和重点是什么
戏爸贝特: c语言是介于低级语言与高级语言之间的一门面向过程的程序设计语言,c语言的重点是指针,同其他东西一样重点同时也是难点,要想学好c语言必须把指针学好

钢城区13882801058: 学习C语言应注意哪些方面?其重点和难点是哪些? -
戏爸贝特: 第一个难点 C语言的数据类型 关于C语言数据类型,不难理解但难于运用.这就要求同学们在学习的时候记住常用的一些数据类型的特征(第一次作业第2题内容). 第二个难点 C语言的运算符和运算顺序 1.C语言的运算功能十分丰富,运算种...

钢城区13882801058: C语言的难点 -
戏爸贝特: 学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题.即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题.只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确...

钢城区13882801058: 学习编程的C语言的难点是什么? -
戏爸贝特: C语言的精髓也是它的难点就是指针,因为C里的大部分功能或特性的实现方法都是通过指针,如果能够把指针弄懂,其他那些就迎刃而解了.

钢城区13882801058: C语言学习中哪些是难点,哪些是易错点?
戏爸贝特: C 语言难点是入门难,这一步你需要多看书,熟悉C语言的语法规则. 有了 C 的基础知识之后,重难点就是指针了(它是 C 的灵魂、精华),其次结构体也比较重要

钢城区13882801058: 学习C语言的几个难点? -
戏爸贝特: 数组和指针,指针是C语言最重要的地方,也是C语言灵活的体现,如果没学懂指针就等于没学C语言.

钢城区13882801058: c语言的难点与学习技巧
戏爸贝特: 难点是容易混淆.学习技巧是.看书的时候要一直看下去.不要看来一半.觉的自己不懂就返回头看.这是错误的. 学习时要注意不要大意.不要认为自己看的懂程序.以为自己已经会写了.还要.看书时.要细心点.哪怕课本上的一个标记错误都要知道.这个本没什么.但有这习惯.可以帮助你以后.学习时.遇到不懂的.记录下是多少页.你可以看完一本书后再看你记录下了多少.理解.动手.具体本没什么要注意的.动手.思考.不要一遇到不懂的问题你就去问别人.那样没用的.自己想.想个两三天.帮助你的思考能力.

钢城区13882801058: C语言程序设计中哪些基础比较重要但又难学? -
戏爸贝特: C语言是目前最常用的软件开发语言之一,其功能强大,具有悠久的历史,从C、C++发展到现在的C#,不断地得以更新繁衍.在全国计算机等级考试中有,五个类别使用C语言作为上机考试内容,为各编程语言中应用最多的. 理论先行 虽是上...

钢城区13882801058: C语言哪个部分最困难? -
戏爸贝特: 也看了大家回答,基本上都是指针难,只要完全理解这一大章才算进入C的殿堂,抽象,逻辑,悟性都必须.至于英语高中水平足矣.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网