c语言教学中的几个问题_第1页
c语言教学中的几个问题_第2页
c语言教学中的几个问题_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c语言教学中的几个问题

在某些方面,省级计算机等级考试是全省大学生计算机水平测试的主要手段。笔者在辅导C语言的过程中发现许多学生基础知识不扎实,对相关知识似懂非懂,一味追求能不能编出一个完整的C语言程序。对许多知识点缺乏准确的理解和掌握,做不到融会贯通。比如说变量、表达式、运算符等这些基础概念出现在选择题中时,总觉得似是而非,似对非对,拿不准哪个是对的。对部分语句、函数的使用条件不是特别清楚,所以在作题的过程中有一种看似简单做起来难的感觉。笔者针对这些状况结合自己在实际教学中的一些感悟,对C语言复习时应该注意的几个问题作了总结,本文就C语言基础部分进行了初步的论述。一、外来文件中的编码情况float在C程序中,变量的使用率是相当高的,可以说在每个C程序中都或多或少地使用了不同类型的变量,使用变量时应该注意:1.定义变量名时,变量名只能是字母,数字或下划线三种字符组成,特别强调:第一个字符不能是数字,并且变量名不能是C语言提供的标准库函数名或特定标识符。比如说(2001年试题中的第47题)下面符号中可以作为变量名的是____A).intB).GotoC).UnionD).float分析:题目中四个选项都是由字母或下划线组成的,但是A),C),D)均是C语言中的特定标识符。所以答案应该是B)。2.变量在使用前必须先定义,不允许使用未定义的变量。变量被定义后,对变量可以赋不同类型的值,取值时,按原定义的类型取值。比如说(2001年试题中的第34题)分析:变量a定义为整型数据,当给a赋值时,虽然赋的是浮点型数据,但a仍按原定义类型取整数部分5,同理变量b被定义为浮点型数据给b赋予了整型数据,取值时,系统会自动按要求的小数点位数,用0补全。所以,其输出结果应该是5,5.00。二、运算符的优先分析在循环语句中作为变量的增值表达式,绝大多数都是使用的自增、自减运算符。使用这类运算符时,应该注意:1.区别运算符是作为前缀作用还是后缀作用两种情况。如果前缀作用,则其表达式的值为原变量值加1,变量值也自加1。如果后缀作用,则其表达式的值为原变量值,变量值自加1。比如说(99年试题中的第3题)变量定义为inta=5,b=6;表达式(++a=b--)++a:-b的值为___A).5B).6C).7D).8分析:该表达式的意思是如果++a和b--两表达式的值相等,该表达式的值就是其后++a的值,否则的话就是其后--b的值。所以应先计算前面的判断条件,++a前缀作用表达式值为6,变量a的值也为6,b--后缀作用表达式值为6,变量值为7。判断条件为真值,应该执行其后的++a,此时参与运算的a值为6,所以++a=7。答案应为:C)。2.自增、自减运算符,只能用于单个变量,不能用于常量或表达式,而且与其他运算符混合使用时,一定要注意各类符号的优先级别问题。比如说(2001年的第8题)已知inta=5,b=6:下列表达式正确的是___。A).--(a+b)B)---a.C),--a*bD).--(a*b)分析:因为()和“-”的运算级别均高于“--”的运算级别,所以,A,B,D选项都相当于是对表达式进行自减运算,这是错误的。答案应为:C),相当于是(--a)*b。3.当在同一表达式里,用不同的前缀作用或后缀作用于同一变量时,应先计算所有前缀作用的表达式,然后用自增后的值去计算所有后缀作用的表达式。例如:语句intI=3;k=(++I)+(++I)+(I++);执行后K,I的值分别为___。A)15,6B)12,5C)18,6D)15,5分析:k表达式中含有两个前缀作用的表达式,所以首先应进行两次自加运算,这时I=5,两个前缀作用的表达式也都是5,再运算I++的值也是5,此时的I值自加1为6,所以k=5+5+5=15,答案应为A)。三、条件运算符的使用条件表达式在二级考试中出现的频率也是很高的。其构成形式为:表达式1表达式2:表达式3。其两个运算符?和:只能配对使用。条件表达式执行的顺序是:如果表达式1为非0(真),则求解表达式2,表达式2的值作为该整个条件表达式的结果;如果表达式1为0(假),则求解表达式3。使用的时候,应该注意两个方面:1.表达式1可以是任意类型的表达式。(比如说:98年试题中的第30题)给定条件表达式(m)(a++):(a--),则该条件表达式中的m和哪一个等价?A).m==0B).m==1C).m!=0D).m!=1分析:这里m是作为一个表达式,通过判断其值是否为0,来决定其后的执行语名句,A)和D)都是把m=0作为真值条件,这是错误的。B)则是把m表达式的值是否为1作为判断真值的条件,这也是错误的。所以答案应为C。2.条件运算符的结合方向为:自右至左。比如说:(2001年试题中的第29题)与y=(x>01∶x<0-1∶0);的功能相同的if语句应该为___分析:该表达式相当于y=(x>01(x<0-1∶0))也就是如果x>0,则y=1,否则如果x<0,则y=-1,两种情况均排除时,也就是x=0时y=0。所以答案为:四、把自然赋值的变量x型化后文c型在C程序中,有时为了简化程序,有时为了提高编绎效率,常使用复合赋值运算符构成复合赋值表达式,使用该表达式时应该注意:复合赋值表达式是用变量的当前值与表达式的值进行运算,并将结果再赋给变量,执行的方向是:自右向左。比如说:(98年试题中的第1题)执行下面语句后,x的值是:分析:该表达式等价于x=x+(x=x-(x*x),所以应先计算x-=x*x部分。x=6-6*6=-30。此时变量x的当前值为-30,用该值再参与下面的运算x+=x,也就是x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论