论文部分内容阅读
摘要:当前网络均采用动态网页设计,要求学生必须具备扎实的编程功底才有可能开发出网站。然而,有些学生却连一些简单的填空题都无从下手。本文从笔者的教学实践出发,详细地剖析一道C语言填空题,并总结出C语言填空题的一般解法。
关键词:C语言 解题技巧 变量 一般方法
大多数学生都有学好C语言的愿望,但由于学习方法不对,最终事与愿违。有没有一种方法能够将学生这种好学的愿望转变成学习动力,真正将知识转变成学生行万里路的智慧呢?
笔者从自己的教学实践出发,以一道C语言填空题的解题方法为例,与广大同行共同进行探讨。
例:10个小孩围成一圈来分糖果,教师分发给每个小孩的糖果数依次为12、2、8、22、16、4、10、6、14、20,然后所有的小孩同时把自己的糖果分一半给右边的小孩,糖果数变为奇数的小孩向老师补要一块,问经过多少次调整后每个小孩的糖果数都一样,此时的糖果数为多少?请填空。
#include
void main()
{int i,k,f,y,b[10],a[10]=
{12,2,8,22,16,4,10,6,14,20};
k=1;f=0;
while(f!=1)
{ ①;
for(i=0;i<=9;i )
{ ②;
b[i]=a[i];}
for(i=0;i<=9;i )
{y= ③;
a[y]=a[y] b[i];
if(a[y]%2!=0) ④; }
for(i=1;i<=9;i )
if(a[0]!=a[i]){f=0;break;}
k ;}
printf(“k=%d,a[0]=%d”,k,a[0]);}
C语言的填空题首先要从变量入手,弄懂变量的作用,然后通读整个程序,读懂程序的算法,接下来再结合一些技巧和经验来解答,问题就能迎刃而解了。
要读懂变量的作用,应该从变量的初值入手。对于变量的初值,笔者做了一些总结,如某一变量的初值为0(假如s=0),那么变量s一般情况下可以用来求和、进行统计、状态变量、数组下标等。如果出题者严格遵循变量名的命名规则,那么学生应该可以很快读懂变量的作用。有时初值为1的变量也可以用来进行统计,关键要善于归纳、总结。特别要提醒的是,如果初值作为状态变量的话,那么该变量的数值一定是在0和1之间变化的。
另外,变量k是用来统计分糖果的次数,变量f是一个状态变量。既然这样,状态肯定在1和0之间变化。而整个程序只有一处f=0,那么肯定有一空是变量f=1,不然这道题就成了一个死循环。结合程序,第①空应该填写f=1。
a数组第一次用来存放最初的糖果数,循环之后就变成用来存放分糖果后自己以及左面小孩给的总糖果数。统一起来a数组就是用来存放每次分之前各个小孩的糖果数。因为题目中要求同时分糖果,程序b数组是用作一个中间数组,用来存放每个小孩要分给右面小孩的糖果数,即每个小孩手中糖果数的一半,故b[i]=a[i]。所以,第②空可填成“a[i]=a[i]/2”。
经过仔细审题,再结合程序,第④空的答案也就显而易见了。故此空可填“a[y] ”。另外,学生在解题时,要注意体会题目中的“同时”一词。
经过前面的几个步骤之后,学生就会发现第二个for语句是真正意义上的分糖果的过程。学生很快得出答案“y=i 1”。但是,这个答案是错误的。把两个变量的变化关系写出来,为:
y=1时 i=0
y=2时 i=1......
y=9时 i=8
y=0时 i=9
前面9处两个变量间的关系均可以写成“y=i 1”。但最后一处如果也用这样的关系,那么得出“y=9 1=10”。显然此处的变量y不等于10。这时就要采用取余方法,就得出答案为“y=(i 1)”。
参考文献:
[1]谭浩强.C程序设计语言[M].
北京:清华大学出版社,2005.
[2]方明.陶行知教育名篇[M].北京:教育科学出版社,2006.
[3]李崇泰.C语言案例教程[M].
北京:电子工业出版社,2005.
(作者单位:江苏省南通市如皋市职业教育中心)
关键词:C语言 解题技巧 变量 一般方法
大多数学生都有学好C语言的愿望,但由于学习方法不对,最终事与愿违。有没有一种方法能够将学生这种好学的愿望转变成学习动力,真正将知识转变成学生行万里路的智慧呢?
笔者从自己的教学实践出发,以一道C语言填空题的解题方法为例,与广大同行共同进行探讨。
例:10个小孩围成一圈来分糖果,教师分发给每个小孩的糖果数依次为12、2、8、22、16、4、10、6、14、20,然后所有的小孩同时把自己的糖果分一半给右边的小孩,糖果数变为奇数的小孩向老师补要一块,问经过多少次调整后每个小孩的糖果数都一样,此时的糖果数为多少?请填空。
#include
void main()
{int i,k,f,y,b[10],a[10]=
{12,2,8,22,16,4,10,6,14,20};
k=1;f=0;
while(f!=1)
{ ①;
for(i=0;i<=9;i )
{ ②;
b[i]=a[i];}
for(i=0;i<=9;i )
{y= ③;
a[y]=a[y] b[i];
if(a[y]%2!=0) ④; }
for(i=1;i<=9;i )
if(a[0]!=a[i]){f=0;break;}
k ;}
printf(“k=%d,a[0]=%d”,k,a[0]);}
C语言的填空题首先要从变量入手,弄懂变量的作用,然后通读整个程序,读懂程序的算法,接下来再结合一些技巧和经验来解答,问题就能迎刃而解了。
要读懂变量的作用,应该从变量的初值入手。对于变量的初值,笔者做了一些总结,如某一变量的初值为0(假如s=0),那么变量s一般情况下可以用来求和、进行统计、状态变量、数组下标等。如果出题者严格遵循变量名的命名规则,那么学生应该可以很快读懂变量的作用。有时初值为1的变量也可以用来进行统计,关键要善于归纳、总结。特别要提醒的是,如果初值作为状态变量的话,那么该变量的数值一定是在0和1之间变化的。
另外,变量k是用来统计分糖果的次数,变量f是一个状态变量。既然这样,状态肯定在1和0之间变化。而整个程序只有一处f=0,那么肯定有一空是变量f=1,不然这道题就成了一个死循环。结合程序,第①空应该填写f=1。
a数组第一次用来存放最初的糖果数,循环之后就变成用来存放分糖果后自己以及左面小孩给的总糖果数。统一起来a数组就是用来存放每次分之前各个小孩的糖果数。因为题目中要求同时分糖果,程序b数组是用作一个中间数组,用来存放每个小孩要分给右面小孩的糖果数,即每个小孩手中糖果数的一半,故b[i]=a[i]。所以,第②空可填成“a[i]=a[i]/2”。
经过仔细审题,再结合程序,第④空的答案也就显而易见了。故此空可填“a[y] ”。另外,学生在解题时,要注意体会题目中的“同时”一词。
经过前面的几个步骤之后,学生就会发现第二个for语句是真正意义上的分糖果的过程。学生很快得出答案“y=i 1”。但是,这个答案是错误的。把两个变量的变化关系写出来,为:
y=1时 i=0
y=2时 i=1......
y=9时 i=8
y=0时 i=9
前面9处两个变量间的关系均可以写成“y=i 1”。但最后一处如果也用这样的关系,那么得出“y=9 1=10”。显然此处的变量y不等于10。这时就要采用取余方法,就得出答案为“y=(i 1)”。
参考文献:
[1]谭浩强.C程序设计语言[M].
北京:清华大学出版社,2005.
[2]方明.陶行知教育名篇[M].北京:教育科学出版社,2006.
[3]李崇泰.C语言案例教程[M].
北京:电子工业出版社,2005.
(作者单位:江苏省南通市如皋市职业教育中心)