c语言编程练习(共9篇)
1 学生学习C/C++语言时面临的问题
1.1 不能熟练掌握C/C++语法
学生在对照输入参考资料的过程中, 要一面看书一面敲键盘, 出现此类现状的原因是由于学生对程序本身不甚熟悉, 因而如果不进行对照会出现字母输错的情况, 例如, 经常出现的问题是大小写、中英文、字母漏写等情况。对于初学者, 如果不能清楚了解其中的语法, 那么就不能快速的找到语法错误, 在没有教师指导的前提下, 会感觉不知所措, 长此以往学生就容易失去学习信心和学习兴趣。
1.2 不熟悉开发环境
学生在不熟悉开发环境的基础上, 联系过程中不能很好的结合开发环境开发程序, 更不能很多的开展练习, 所以操作不当引发很多不必要的错误, 并且出现问题会不能做出妥善处理[1]。
1.3 参考书不准确
学生在学习时会借助参考书等书籍, 但是现在很多市面上的参考书本身就存在错误, 因而学生不但不能提升自己的语言开发能力, 还会带来适得其反的效果。
2 系统设计概述
针对以上提出的问题, 针对初学者设计一套C/C++语言的编程练习系统, 在学生登陆系统以后, 可以从数据库内下载程序题, 让学生练习。其中练习库能够将学生输入的源代码、编译、连接最后生成EXE程序, 通过调用该程序, 让练习者灵活的运用该系统。
2.1 系统流程设计
该系统流程主要是练习者登陆系统后, 运用练习者输入的用户名和密码查找数据库内的服务器, 如果存在该用户, 就证明登陆成功, 并且能够根据后台操作了解该用户类型是学生或者是管理员, 判断结束后给该用户分配应有的使用权限。
如果是学生用户, 可以从服务器下载编辑好的样例程序, 根据选择的相应程序代码, 在显示屏幕上面选择源代码, 让学生输入相关信息。输入过程中要求系统时刻监听键盘, 对比输入的代码和样例程序, 用明显的颜色标识出错误代码。输入完成后, 把输入的代码保存到临时建立的文件夹里面, 并且调用C编译器, 编译存储的文件, 生成EXE程序, 调用不断执行。管理用户设置是要求增加样例程序, 可以查看学生的练习情况[2]。
2.2 功能模块的设计
为了适应系统功能的各项要求, 需要将系统功能划分为3个重要模块, 分别是系统管理、学生练习和教师管理。系统管理模块主要的工作职责是判断用户登录情况, 学生练习模块主要是统计学生开展练习的时间情况, 控制学生的各项练习数据。教师管理模块能够管理练习分数查询学生的具体练习情况。
2.2.1 系统选项模块的设计
该模块的控制方式用户设置模块、管理员模块和推出模块, 用户控制模块可以实现用户口令的修改, 保障整个体统平台的安全性, 避免非法用户进入系统中破坏系统内的各类质量。管理元设置模块字更高一级的模式控制, 主要是在该模块中添加一部分合法用户, 或者删除一部分用户, 或者当用户忘记密码后, 可以通过管理员密码进行查询[3]。
2.2.2 试题维护模块
试题维护模块主要涉及内容是增加试题、浏览和删除试题, 并且对应模块中还有不同的对应操作模块, 运用试题增设模块可以随时随地的补充试题, 并且添加不同类型的视图, 浏览和删除试题模块是在浏览过程中删除没有必要存在或者重复试题。
2.2.3 试题打印模块
该模块的主要构成是选择题、填空题和程序改错题, 通过不同模块的组合了解不同题型, 根据题型应答不同的操作。
2.2.4 试题生成模块
该模块的主要构成部分是2部分, 包括自动生成试卷和人工生成试卷。自动生成模块主要是针对试卷的难易程度, 分为简单、适中和较难3类, 通过随机组合生成一张标准的试卷, 借助于浏览和打印等工作流程。人工生成试卷模块主要是用户根据自己的实际需求, 要求生成难易不同和类型不同的试卷。
在试卷模块中如何针对不同类型题目选择试卷, 满足学生的实际需求, 这是该模块开发的重点内容, 其中随机产生的试卷作为开发的重点也是开发的难点。
该系统主要是根据试卷的具体难易程度和试题难度设置不同参数, 实现试卷的随机性抽取, 对于同一张试卷其难易度更趋向多维合理性, 评价方式是需要借助于学生参与考试的成绩或者其他的参数做出综合测评, 根据参数试卷能够被划分为简单, 就是试卷内容很简单没有任何难度, 适中就是难易程度在学生可以接受的范围内, 较难就是有一定的难度。
为了区分开试卷的难易情况, 在系统运行是要求从系统中找到大致的难度系数, 这样做的目的是在生成试卷的过程中, 系统有效的筛选出题库中的题目, 对系统的难度规定系数如下。
难度系数范围集中在0.3~1.0之间, 难度系数范围可以分为以下几个档次:
A档主要的难度系数定在0.3~0.4之间, 通过对C类语言试题考察可以了解, 这部分试题没有太大的难度, 属于基本档。B档的难度系数主要定位在0.5~0.6之间, 此范围内的语言知识是需要通过考虑, 就能得到分数的。C档主要是0.7~0.8, 该档有着一定的难度系数和综合性。D档难度系数在0.9~1.0档, 该档的难度系数较大, 主要考察学生的综合能力, 要求学生对C语言知识有着深刻的认知和理解。考察学生的C语言知识, 要求考察学生的基本程序知识, C语言基础知识和阅读等方面的知识, 让学生可以对该项知识有着深入浅出的理解, 为了使用时更好的实现试卷的随机性, 就要求在试卷生生成过程中有较大的随机性, 通过取舍试卷系统随机产生RAND () , 让系统每一次产生随机的RAND () 不同, 用以赛选试题的不同表现方式。
2.3 学生编辑练习功能
该功能区主要是让学生选择合理的样例程序, 将各类源代码显示在屏幕上面, 让学习对照练习。练习中样例程序输入某一代码时, 系统需要用反色表示, 这样可以便于学生对照。学生在完成编辑以后可以继续编译其他的练习程序。学生开始练习以后要求学生从数据库内下载样例程序, 或者从本地文件找样例程序进行编辑。学生整体输入区域的控制件是Rich Eidt实现。前面的反色目的是为样例程序添加背景颜色, 并且设置好Rich Edit的字体样式, 其中用到字体的结构和设置的文字背景色[4]。
函数原型的如下:
typdedf struct charformat
UINT cb Size://定位特殊字节的大小
DWORD dw Mask://设置相关文字属性信息内容
DWORD dw Effeets;//具体的文字设定效果
LONG y Height://文字的高度
LONG y Offset://文字的偏移情况
COLORREF er Text Color;//文字颜色
BYTE b Char Set;//字符集
BYTE bpitch And Family:??字体家族和间距情况
cf.cbsize=sizeof (charformat2)
cf.dwmask=cfm backcolor
cf.crbackcolor=rgb (0、255、0) //背景颜色是红色
m richedit setsel (0.2) //设置处理的区域
m richedit setsel message (EM SETCHARFORMAT.SCF SELECTION. (LPARAM) cf)
2.4 正确率统计设计
学生将相关内容输入编辑框的同时, 也会引发很多其他项目的变化, 并且容易触发相应实践, 学生通过响应时间可以回刁函数中的内容, 读取学生输入的部分程序内容, 逐一与模板进行对比, 最终判定录入的字母数与模板程序的具体长度比率成为判读学生正确率的 标准。
3 结论
本教学系统的开发为学生学习C/C++语言提供良好的平台, 学生通过该平台能够快速的掌握C/C++语言编程的各类语法知识, 并且在后期训练中提升自己的运用熟练度, 增大学生的学习兴趣, 也可以为后续的课程学习打下坚实基础。
参考文献
[1]吴皖赣, 董华青, 蒋一君, 等.中小学个性化网络练习系统的设计与开发[J].中国教育信息化, 2011 (4) :21-22.
关键词:C语言;编程技巧;应用
中图分类号:G642 文献标识码:B 文章编号:1002-7661(2014)24-002-01
C语言属于一种程序设计类语言,其使用在数据处理方面有突出作用,在很多的学习工作领域都有大规模的应用,像是软件开发、科研建设等都离不开C语言的利用。C语言编程,就是用C语言进行相应计算机代码的编写,C语言的学习,需要掌握一定的技巧,不然没有头绪的学习是得不到良好学习效果的,掌握了C语言的学习技巧,才能够更好的促进C语言的学习[1]。
一、C语言与C语言的优势
当下世界上使用范围最广,流行度最高的计算机编程语言便是C语言,要想良好的学习和使用C语言,必须加深对C语言的了解。C语言发源于上个世纪60年代,成熟在70年代,最近半个世纪的使用过程中,C语言表现了如下几种优势:第一,C语言简洁紧凑,使用方式灵活方便,且语法运用宽松不受限制,书写方式自由随意,结合了高级编程语言的结构性与实用性的特点,组成了一种全新式的有强大使用功能的编程语言;第二,C语言有广泛的应用层面,且可植性强,C语言在各种系统中都能够被兼容使用;第三,C语言的运算符丰富多样,各种数据结构类型的使用,除了C语言可以将各种复杂的数据运算完成外,还具有强大的图形功能;第四,结构式的语言特点分割了代码和数据,其中的程序表现层次条理清楚,后期的使用和维护工作便利,使用C语言可以访问物理地址[2]。从中可知,C语言具有强大的功能,因此在信息技术的领域中,C语言所占据的地位是非常高的。
二、C语言学习难度大的原因
因为C语言所具备的各种强大功能,因此人们对其的关注程度也越来越高,想要学会并且全面掌握C语言技术的人也越来越多。可是大部分在刚刚接触C语言的时候,觉得C语言过于枯燥乏味,学习了一段时间后都没有掌握到多少知识,也没有一个清楚全面的认识对于C语言,觉得十分的茫然。出现这种情况的原因还是因为C语言是一种高级语言,这种语言和面向对象的语言之间存在较大的差别,在C语言的学习过程中,学习者难以从中看到形象的画面,只能够在编程程序成功后,经过调试才可以看到效果。在编程的过程中,只要出现一点粗心错误,就会让整个编程无法成功调试,出现一些错误的现象,除此之外,C语言的使用过程中,包含了大量的算法与数据组成结构,这些没有任何的技巧,就是要死记硬背,所以很多学习者在遇到这些枯燥晦涩的问题时,就会丧失学习兴趣,降低学习效率和学习质量。
三、C语言编程技巧的应用
1、用空间换时间
例如对字符串进行赋值,方法有以下几种:
(1)基础方法:
#define LEN 32
Char string I[LEN];
memset(string 1,0,LEN);
ctrcpy(string 1,“this is a example”) ;
(2)方法2:
const char string2[LEN]=“this is a example”;
char*cp;
cp=string2;
从这个案例中可以发现,方法(1)与方法(2)在电脑上的执行效率是不一样的,第一种方法必须使用两个字符函数才可以完成,而第二种方法直接使用指针就可以完成了。但是第二种方法相比第一种方法灵活性欠缺,如果这个字符串有不断变化的要求,那么第一种方法就有很大的使用优势了,第二种方法要占用较大的内存,但是效率比第一种更高[3]。
2、位运算掌握
在利用位运算的时候,能够让代码变得更加的简洁,提升运算效率,让问题得到顺利解决。在所有的计算机程序之中,最小的数据单位就是位,无特殊情况的话,所有的数据运算和操作都可以使用“位运算”方式完成,从这里就就可以看出,在编程语言之中,“位”有多么重要了。“位”使用在C语言的运算过程中,可以提升工作效率,顺利的将更多难度大的问题解决。
3、C语言特有函数掌握
很多时候进行编程,都需要使用C语言的特有函数,函数不是一种数据,而是一种功能,每一个函数都能够执行一定的功能建设,而相对应的函数名称中也将函数的功能反映了出来。开展函数定义的时候,要求操作者包含名字、参数名、类型和函数返回类型的数据,编译过程中,数据库系统是之前被定义好了的,使用过程中只要通过#include这项指令,把各种相关的头文件包含在本文件当中就可以了。
但是不管在C语言编程过程中使用怎样的技巧,还是需要做到具体问题具体分析,以上各种技巧使用起来因人而异,整体是能够提升编程效率,在学习过程中使用会获得一定的成效,而降低学习的枯燥感,拓宽C语言的使用范围。
C语言的学习过程中,每一位学习者都应该对C语言的特性有充分的了解,学习并且掌握每一种编程技巧,学习好了C语言的编程技巧,可以帮助学生提升C语言的学习兴趣,让学生的学习目的性更强,提升学生的C语言学习效率与学习质量。
参考文献:
[1] 余 勍.王 捷.浅谈C语言编程技巧在C语言学习中的应用[J].信息通信,2013,07:108.
[2] 赵 黎.范君君.C语言编程技巧在C语言学习中的应用研究[J]. 信息与电脑(理论版),2014,09:252.
void main(){
} 1.2用一条C语句完成下述要求。
a)把变量x,y,z和result定义为int类型。b)提示用户输入三个整数。
c)从键盘读取三个整数并把它们存储在变量x,y,z中。d)计算变量x,y和z所存储的整数的和,并把计算结果赋给变量result.e)打印出“The sum is ”并紧接着打印出变量result的值。
答:
a)int x, y, z, result;b)printf(〞请输入三个整数n〞);c)scanf(〞%d%d%d〞, &x, &y, &z);d)result = x + y + z;e)printf(〞The sum is %d〞, result);1.3用练习1.2中的语句写出计算三个整数和的完整的程序。答:
void main(){ int x, y, z, result;printf(〞请输入三个整数n〞);scanf(〞%d%d%d〞, &x, &y, &z);result = x + y + z;printf(〞The sum is %d〞, result);} 1.4指出并改正下列语句中的错误(每条语句可能不止一个错误)。
a)scanf(〞%d,value〞);b)printf(〞The sum of %d and %d is %d〞n,x,y);c)*/Program to determine the largest of three in integers/* d)printf(〞The value you entered is %d〞n,&value);e)int return=10;答:
a)scanf(〞%d〞, &value);b)printf(〞The sum of %d and %d is %dn〞, x, y, x + y);c)/* Program to determine the largest of three in integers*/ d)printf(〞The value you entered is %dn〞, value);e)int ret=10;//关键字不能作变量名
1.5 在VC6.0中编译运行程序1-1,1-4和练习1.3所写的程序。
1.6 下面的标识合法吗?
aBc,-245, _245, +3a, 4E2, _ _, 2n, n2, account_total 答:
合法:aBc, _245, _ _, n2, account_total 1.7 标识符的第一个字符为何不能是数字? 答:
如果可以为数字,则32是变量名还是整数呢?如 int 32=56;则printf(〞%d〞, 32);的输出为?
1.8 C语言中标识符区分大小写吗?即n1和N1是同一个标识符吗?利用下面的程序验证。
# include
int n1=3;
printf(〞n1=%d〞,N1);} 答: 程序编译时出错。如果在C语言中n1和N1被认为是同一个标识符,则不会出现这个错误。
1.9写出输出结果或输出语句(x=2)。
a)printf(〞x=〞);b)printf(〞x=%d%d〞,x,x);c)/* printf(〞x+y=%d〞,x+y);*/ d)printf(〞% and %%〞);e)printf(〞Welcome to C!and x=%z〞);f)输出信息100%.g)把信息“This is a c program.”打印在两行上,第一行最后一个字母是c。答:
f)printf(〞100%%〞);g)printf(〞This is a cn program.〞);1.10 编写一个C程序,输出以下信息。
* * * * * * * * * * * * * * * * * * * * * * Very Good!* * * * * * * * * * * * * * * * * * * * * * 答:
#include
1.11 分析下面程序运行结果,运行顺序。
答:
#include
print函数没有输入和输出值,因此在使用时直接调用就好,如print()。
1.12找到工程目录,查看VC6.0为一个工程所生成的文件。找到C语言源文件(扩展名为.c的文件),把它拷贝到某个文件夹中。打开VC6.0,单击文件(File)→打开(Open),找到并打开拷贝到其它文件夹中的源文件。单击组建(Build)→执行(Execute)命令(或Ctrl+F5),程序能被编译吗?
答: 能被编译。
1.13 在VC6.0中编译C语言程序时可以从新建一个C语言源文件开始吗?请验证。
答:
可以的,不过在编译时会提示建工程。
1.14 C语言源文件能用记事本打开吗?
答: 可以的。
教学目标
1、了解、掌握协奏曲的结构。
2、提高学生的欣赏能力、感受能力。
教学重点
钢琴的发展及钢琴的真正价值的了解,我国钢琴音乐的发展。钢琴对音乐的表现作用。
教学难点
学生音乐感受能力、记忆能力、听辨能力的培养。
教法
放磁带,让学生欣赏两遍,了解曲子的旋律特点。
学法
欣赏法、讨论法。
教学过程
一、组织教学
二、新授
1、作者介绍
弗雷德里克·弗朗索瓦·肖邦(1810年3月1日-1849年10月17日)。波兰作曲家和钢琴家,1810年3月1日生于华沙近郊,肖邦父亲是法国人,母亲是波兰人,7岁时就创作了波兰舞曲,8岁登台演出,不足20岁已出名。肖邦39岁时英年早逝,后半生主要生活在法国,创作了大量钢琴作品,7岁时就创作了《波兰舞曲》,被誉为“钢琴诗人”。他是历史上最具影响力和最受欢迎的钢琴作曲家之一,是波兰音乐史上最重要的人物之一,是欧洲19世纪浪漫主义音乐的代表人物。肖邦一生不离钢琴,所有创作几乎都是钢琴曲。2010年为肖邦诞辰200周年,被波兰命名为“肖邦年”。
2、作品介绍
乐曲创作于1831年9月,这时肖邦离开祖国去巴黎,途中经维也纳、慕尼黑,来到德国斯图加特,听到了波兰起义失败而陷于帝俄之手的消息,内心深处沸腾着剧烈的激情和愤怒。乐曲就是在这种万分悲愤的心情下写的,它表达了肖邦对暴力的愤慨,对祖国灾难的悲痛和号召人们起来斗争等各种复杂的心情。所以人们也简称其为《革命练习曲》。
3、欣赏《c小调练习曲》。
《c小调练习曲》是热烈的快板、四四拍,采用了比较自由的复三部曲式。
4、播放《c小调练习曲》,整体感受乐曲的情绪特点。
提示学生在欣赏时,与创作的时代背景相联系,乐曲表达的是作者对暴力的愤慨,对祖国灾难的悲痛和号召人们起来斗争等各种复杂的心情。
一、判断对错题
1.必需品的价格弹性必定大于高级品的价格弹性。
2.在收入制约条件下的效用最大化在现实中往往很难达到。3.无差异曲线的斜率等于两种商品的效用之比。
4.假设劳动市场是竞争性的,如果政府规定的最低工资高于市场均衡工资,必然引起失业。5.如果垄断者实行一级价格歧视,它就可以获得所有消费者剩余。
二、单项选择题
1.预算线反映了()
A.消费者的收入约束 B.消费者的偏好 C.消费者人数 D.货币的购买力。2.等成本曲线平行向外移动表明()
A.产量提高了 B.成本增加了 C.生产要素的价格按相同的比例提高了 D.生产要素的价格按不同的比例提高了
3.一个市场上只有一个厂商,生产一种没有替代品的产品,这样的市场结构被称为()A.垄断竞争 B.完全垄断 C.寡头垄断 D.完全竞争 4.寡头垄断和垄断竞争之间的主要区别是()A.厂商的广告开支不同 B.非价格竞争的数量不同 C.厂商之间相互影响的程度不同 D.以上都不对 5.鸡蛋的供给量增加是指()
A.由于鸡蛋的需求量增加而引起的增加 B.由于鸡蛋的价格上升而引起的增加 C.由于收入的增加而引起的增加 D.由于饲料价格的下降而引起的增加 6.所有下列因素除哪一种外都会使需求曲线移动()
A.消费收入变化 B.商品价格变化 C.消费者偏好变化 D.其它相关产品价格变化 7.市场失灵是指()
A.在私人部门和公共部门之间资源配置不均 B.不能产生任何有用成果的市场过程 C.以市场为基础的对资源的低效率配置 D.收入分配不平等
8.直线型需求曲线的斜率不变,因此其价格弹性也不变,这种说法()A,正确 B.不正确 C.有时正确有时不正确 D.难以确定 9.需求曲线从()导出
A.价格-消费曲线 B.收入-消费曲线 C.无差异曲线 D.预算线 10.在垄断竞争厂商长期均衡点上,长期平均成本曲线处于()
A.上升阶段 B.下降阶段 C.水平阶段 D.上升、下降、水平阶段都有可能 11.当某一经济活动存在外部经济效果是指该活动的()
A.私人利益大于社会利益 B.私人成本大于社会成本 C.私人利益小于社会利益 D.私人成本小于社会成本
三、名词解释
1.边际分析 2.供给 3.最高限价 4.消费者均衡 5.寡头市场
四、问答题
1按西方经济学家的看法,能否说“产品差别程度越大,则产品价格差别越大”? 2.为什么完全竞争中的厂商不愿为产品做广告而花费任何金钱? 3.一个企业主在考虑再雇佣一名工人时,在劳动的平均产量和边际产量中他更关心哪一个?为什么?
4.解释需求定理和供给定理。
微观经济学练习题C答案
一、判断对错题
1.F 2.T 3.F 4.T 5.T
二、单项选择题
1.A 2.B 3.B 4.C 5.B 6.B 7.C 8.B 9.A 10.B 11.C
三、名词解释
1.边际分析:通过对增量的对比来决定是否采取或取消一种经济行为。2.供给指在一个特定时期内与每一价格水平相对应、生产者愿意并且能供给市场销售的商品或劳务的数量。3.最高限价:又叫价格天花板,是指政府为限制某些商品和要素价格上涨而规定的最高价格。其目的是为了保护消费者利益,这个价格低于均衡价格。
4.消费者均衡是指消费者通过购买各种商品和劳务实现最大效用时既不想再增加、也不想再减少任何商品购买数量的这么一种相对静止的状态。5.寡头市场又称寡头垄断市场。他是指少数几家厂商控制整个市场的产品的生产和销售的这样一种市场组织。
四、问答题
1.可以这样说。因为西方经济学家认为,产品差别造成了垄断,才能使垄断厂商按不同质的产品价格来出售自己的产品。如果产品没有差别,则价格不能有差别,否则,产品会失去市场。如果产品有差别,生产者就可以在价格上也有差别。这样的价格差别并不会使生产者丧失市场,因为有差别的产品能满足人们不同的需要。产品差别越大,满足人们不同需要的程度也越大,从而使产品价格差别的可能性也越大。
2.因为在理论上完全竞争本身假定生产者和消费者具有完全的信息或知识,无需作广告。厂商做广告只会增大产品的成本,使所获利润减少甚至亏损。完全竞争厂商仅是价格的接受者,他能按市场决定的价格卖出他愿意出卖的任何数量的产品,故厂商不愿做广告。3.一个企业主在考虑再雇佣一名工人时,在劳动的平产量和边际产量中他将更关心劳动的边际产量。厂商的理性决策在劳动的第Ⅱ阶段,在这个区域中,劳动的平均产量及边际产量都是递减的,但其中却可能存在着使利润极大化的点,劳动第Ⅱ阶段的右界点是使劳动的边际产量为零的点。因此,只要增雇的这名工人的边际产量大于零,即能够带来总产量的增加,企业主就可能雇佣他。
肖邦于18岁 (1828年) 时开始写作练习曲 (Etudes) (作品10) , 于1833年出版, 共十二首第二组十二首练习曲 (作品25) 于1837年出版, 但其中许多首是和作品10同时写作的。大体上, 各首练习曲以关系调排列, 例如第一首是C大调, 第二首便是a小调, 第三首是E大调, 第四首便是c小调, 当然其中有例外和重复, 因为他的练习曲是艺术品而不是机械的技术曲。这位波兰历史上最著名作曲家和钢琴家是唯一一位, 一生几乎只写钢琴曲而又取得辉煌成就的作曲家, 同时也是一位伟大的钢琴家。他天才的创造了唯有钢琴才有的那种音乐美, 所以人们提起肖邦必定想到钢琴, 提起钢琴就必然想到肖邦, 他的具有非凡艺术魅力的钢琴诗篇, 以其迷人的旋律, 绝妙的和声, 完美的钢琴织体展现出一片片崭新的音乐美景。
1、背景介绍
肖邦的第十二首 (c小调) 是著名的《革命练习曲》, 作于1 8 3 1年9月。俄国沙皇的军队于11月7日攻陷了华沙。肖邦当时在德国, 他在9月的日记中已经这样写道:“当斯图加特传出了午夜的钟声时, 世界上平添了多少尸体!父亲、母亲, 你们在哪里?也许也成了尸体!”其后, 他以沉痛的心情面对华沙陷落的消息, 写出了这首震古烁今的练习曲。全曲热情奔放, 各种情绪的变化在曲中表现的淋漓尽致, 如英雄性的激越慷慨、内心的万分痛苦、以及愤怒的抗议。由于这首作品表达了肖邦对暴力的愤慨, 对祖国灾难的悲痛和号召人们起来斗争等各种复杂的心情, 所以人们将这首练习曲 (10之12) 简称为《革命练习曲》。
2、乐曲的音乐形象分析
本曲为单三部曲式结构的单一形象的音乐作品。全曲自始至终贯穿在愤怒和悲痛的情绪之中。整个音乐形象是通过左手奔腾的音流和右手刚毅的曲调相结合体现出来的。
练习曲从一个不协调的属九和弦开始, 力度强硬, 坚定, 较快的将全曲的意境铺垫开来。紧接着引出了一连串汹涌澎湃的十六分音符。音乐形象出现得十分突然, 给人十分强烈的冲击力, 仿佛是肖邦内心感情的一种宣泄。
接着, 左右手同向进行, 两道音流奔腾不羁的由最高点倾泻下来, 犹如千军万马、浩浩荡荡。突然间高音部出现了主题旋律:一个刚毅的曲调, 就像是冲锋陷阵的角号。这段音乐除了表现肖邦内心的愤慨和焦虑之外, 还包含着坚定不移的信念。它仿佛是愤怒中的抗争, 痛苦中的挣扎。
音乐在展开中, 越来越趋向紧张, 一系列的转调和变化音把全曲推向高潮。练习曲的高潮处是一个胜利凯旋的形象, 它仿佛是在严峻的现实面前的片刻幻想, 是对华沙起义爆发一瞬间的回忆。在接近结尾的时候, 音乐由强到弱, 出现了一个悲伤的音调。它象哭泣, 悲悲切切;又象诉说, 发自肺腑。然而它的背景仍然是起伏汹涌的澜涛。这犹如是肖邦对整个命运的哀哭。
乐曲的结尾又回复到自豪、刚毅的形象。音乐在很强的力度下, 从高音向低音冲击, 并且左、右手八度同奏, 气势逼人。最后, 在特强的力度下, 奏出了大调的主和弦, 它象征着肖邦内心的满腔仇恨和对革命胜利的信念。
3、乐曲的演奏分析
(1) 左右手的交替运动
这首作品主要是训练左手快速运动时的“颗粒性”和“清晰度”。弹奏时一定不要有“压”的感觉, 这样会造成手腕的不适感以及音色上的沉重感, 同时也不要只用手指的力量去完成单独的每个音, 这样声音听起来会僵硬缺少流动感。当手指第一个音触键后, 随后的一连串快速运动的动作要顺着第一个音触键的感觉, 用小臂带动着去完成, 要有一气呵成的感觉。仿佛有人在旁边用一根绳索拖着你的手、小臂往音流前进的方向快速的移动。右手的主题旋律以丰满的八度和弦为特征, 这也蕴含了全曲的基本动机, 因此右手八度和弦的演奏要具有生命力和感染力, 要达到这种音乐效果, 除了手指的弹奏外, 身体的协调动作、手臂的灵活调节也是十分重要的, 这一部分的解决需要右手八度慢速练习, 体会身体对手臂、手指的支撑作用, 从而使声音贯通, 以达到完美的音响效果。 (第10-15小节) 这部分是在刻画人内心的一种起伏, 所以强弱对比要明显地表现出来, 以此来衬托人们当时的心情。
(2) 用身体和大臂的协调弹奏右手的和弦连接: (谱例见下页)
这部分右手的和弦要坚定有力, 在弹奏和弦连接时, 一定要注意和弦声部的连接, 如果要使和弦弹奏出爆发力的音响效果, 仅用手指、手臂的力量远达不到要求的, 这时必须要借助于身体的力量, 身体是弹奏时的“支点”, 大臂只有运用身体的支撑才能发挥作用, 所以身体和大臂应协调好, 去弹奏乐曲中出现的和弦连接。左手注意旋律的起伏感, 与右手“号角般”的旋律要密切配合, 融为一体。
(3) 注意节奏、双手同步以及休止符的准确停顿: (谱例下)
双手的16分音符快速下行, 节拍要稳定, 拍点明确, 用力方向要统一, 手指提指要快, 但是手指切勿“敲击”琴键, 应把力量揉人到琴键中去, 弹出的声音要干净利落。双手的旋律迂回向上进行时, 身体要注意协调运转, 有助于弹奏时的韵律感。对于乐谱出现的休止符必须重视, 因为休止符也是音乐。
(4) 远距离触键的准确性: (谱例下)
这段旋律由于速度比较快, 且左手的第一个音到第二个音连接时跨度较大, 所以快速弹奏时在跨越式触键的准确性上还是有一定难度的, 解决这部分的难点, 在弹奏时手慢练、指的动作要小, 尽量贴键弹奏, 把身体的力量揉入到指尖中去, 深刻体会指尖上的爆发力, 当跨度较大时, 要从意识上先想到这个音的位置, 提前做好手指触键的准备, 做到心手合一, 有助于触键的准确性。
4、练习曲的艺术美感
差不多所有的钢琴演奏家都在音乐会上弹奏肖邦的作品, 而在音乐会上, 任何肖邦的作品都是最受欢迎的项目。练习曲也不例外, 肖邦练习曲的艺术性及旋律性的成就不用我多说, 但是如何用双手歌唱出肖邦旋律的美感钢琴演奏中的重点和难点之一, 如何演奏出圆润, 连贯的歌唱性声音是学琴者的主要目标。
练习曲的艺术美感往往通过弹奏时的歌唱性来表达, 即指由个圆润的持续音相互连接而成具有明确感情倾向性的乐句。音乐其实等于歌唱, 演奏中往往很难做到歌唱性的弹奏, 钢琴毕竟不象小提琴, 钢琴是要用手指来敲击键盘发出声音, 这就需要通过手指手腕甚至手臂之间合理动作搭配, 从而构架合理乐句。
肖邦作品抒情性旋律演奏需要多方面的技能, 比如说旋律的句法, 要准确寻找句逗, 正确划分段落。还有旋律连奏的触键方法, 主要声部旋律的歌唱性在此曲中非常重要, 要歌唱性的弹奏此曲必须注意对触键的控制。肖邦作品中迷人的旋律惟有在手指伸展和全臂触键结合在一起时才能表现的最为充分。钢琴家殷承宗曾说过:“钢琴歌唱性从来就不是问题, 因为触键的同时我的心里在吟唱”。这就说明内心歌唱旋律线条对表现旋律美感的重要性。总体上讲, 由于肖邦抒情性旋律“声乐性”的特点, 钢琴演奏不能只限于手指弹奏的演奏方法, 而要求演奏者从手指到大臂始终保持一种“通感”, 即手、手腕与手臂的放松协调。
除此之外, 还要注意强弱的起伏变化, 强弱起伏的变化是情绪和感情的自然流露。强弱的变化不仅要注意每个乐句的变化起伏, 更要注意整个曲子全局的情绪变化, 只有把握好整个曲子的情绪, 才能将全曲的精神面貌完整的体现出来。
参考文献
[1]塔代乌什.席林斯基《.肖邦:生活和创作道路》克拉科夫, 1993, p238.
[2]林育.《怎样弹好肖邦钢琴练习曲》.上海音乐学院出版社.
[3]科托编.《肖邦练习曲十二首》.上海文艺出版社.
[4]索洛甫磋夫.《肖邦的创作》.人民音乐出版社.
[5]A.阿列可塞耶夫.《钢琴演奏教学法》.上海音乐出版社, 1989.
[6][波]雷吉娜.斯门江卡.《如何演奏肖邦》.中国文联出版社.
[7]列文.《钢琴弹奏的基本法则》.人民音乐出版社.
[8]李嘉禄.《钢琴表演艺术》.人民音乐出版社.
[9][匈]李斯特.《肖邦传》.人民音乐出版社.
[10]克.格.汉密尔顿.《钢琴演奏中的触键与表情》.人民音乐出版社.
【关键词】C语言;学生兴趣;教学方法
现在计算机已普及到各行各业,深入到各级层次。在我国高职院校教育中,C语言不但成为计算机专业的必修课,而且也成为非计算机专业的学习课程。做好该门课程的教学具有非常重要而深远的社会意义,现将我在C语言程序设计课程中教学内容、教学手段、教学方法等方面的改革与取得的教学效果与大家做一探讨
一、努力培养学生的学习兴趣及正确的思维摸式
兴趣是学习的关键,兴趣决定了教学效果的好坏。初学C语言时,很多学生感到新奇、好玩,这不能说是兴趣,只是一种好奇。随着课程的不断深入,大量的规则、定义、要求和机械的格式出现,很容易使一部分学生产生枯燥无味的感觉。为了把学生的好奇转化为学习兴趣,授课时我改变过去先给出定义和规则的讲授办法,而是演示一些由前几届学生自己编写的、有趣的程序,从而吸引学生,并告诉他们学习了C语言程序设计的内容后,大家都能够编出这些小程序。努力把枯燥无味的“语言”讲的生动、活泼。
二、循序渐进
高职学生第一次接触计算机语言,“通俗性、可接受性”的教学原则同样适合于这门课的教学。在课程讲授过程中,我没有把重点放在语法规则的叙述上,而是放在算法和程序设计方法上,通常由几个例题引出一种语法规则,通过一些求解具体问题的程序来分析算法,介绍程序设计的基本方法和技巧,既注重教材的系统性、科学性,又注意易读性和启发性。从最简单的问题入手,一开始就介绍程序,要求学生编写程序,通过反复编写、运行程序来掌握语言的规定和程序设计的方法。同一个语法规则、同一种算法,在选择例题时也是由简到难,逐步呈现给学生。在学习上不要求学生死记语法规则,而是要求学生能把各个孤立的语句组织成一个有机的、好的程序。注意培养学生良好的编程风格,让学生在编制程序过程中不断总结、巩固,达到学会方法、记住语法规则,提高设计技巧的目的。
三、改进授课方法、实现教学相长
(一)采用启发、引导的教学方法
(1)教师在教学过程中,应当注意设置疑难问题,引导学生思考和探索,让他们的思想活跃起来。我教学时发现,学生问不出问题的原因往往在于没有真正学好。实际上,问题是最好的老师,是学生学习的引导者,没有问题便没有深入。在教学过程中,引导学生在问题解决中学习,即提出问题,给时间让学生思考、讨论、解决问题,从而更深入地展开学习。实践证明,这种教学方法充分调动了学生学习的积极性和主动性。例如 ,在讲数组的概念时,我先设置问题:编程计算10个人的英语平均成绩。根据以前所学,学生会想到:需要说明10个类型相同的变量用于存放10个人的英语成绩。进一步要求:计`算50个人的英语平均成绩,这时候如再说明50个变量,则会将问题麻烦化,学生此刻需要讨论该如何合理说明变量。再深入一步:求100个人的英语平均成绩。此时,当教师引出数组的概念、分析数组的性质时,学生不仅能够记住数组的性质,还能够知道在什么情况下使用数组类型,达到事半功倍的效果。
(2)教给学生正确的学习方法,引导学生掌握程序设计的思想和方法。经验丰富的软件设计者都知道程序设计的关键在于找到解决问题的方法,即算法。根据软件工程的思想,当拿到一个任务时,首先应将这个问题自顶向下逐步细化,逐层向下分解,直到满足每一个要求。实现时,可以先用流程图描述出算法,进而写出合理的算法,再将之转化成程序。
(二)采用目标教学法,使学生明确目的,确立主题
学生是认知主体,是信息的主动接受者,但也并不能否定教师的指导作用,教师作为知识的先知者,自然清楚所学内容哪些是重点及难点,哪些是只需一般掌握的,如果脱离了这一点,学生有可能会不加区分地对所学内容完成认知,进而导致其知识主结构的无法确定,所以教师在进行教学设计的第一步还是要进行目标分析,指导学生确立主题。
四、校企结合,加强实践教学环节
高职教育着重培养具有实际工作能力的技术型和应用型人才。为了使学生学习到的知识与社会接轨,可以创建校企结合的课程建设方法。听取企业家对C语言程序设计教学改革的意见、由企业向学校提供实验(实习)条件、以企业作为学生的校外实习基地,通过这些方法使学生熟悉公司内的编程环境。学校还可以邀请企业家为学生开讲座,派遣青年教师到企业去实习,使教学的内容与企业的实际更为贴近。高职院校作为企业的人才培育基地,发挥技术和设备的优势,为企业提供支持,向企业输送合格毕业生,校企结合实现双赢。
C语言编程个人简历、本文由大学生个人简历网编辑,以下推荐一篇相关的、计算机应用与编程个人简历表格、参考!
姓 名: 性 别: 男
年 龄: 22岁 学 历: 本科
工作年限: 应届生 婚姻状况: 未婚
户 口: 长沙市
居 住 地: 湖南省邵阳市近期任职: 实习生
待遇要求: --3500/月 到岗时间: 1周以内
希望地区: 深圳市
希望岗位: 储备干部
自我评论
我待人真诚,做事有上进心,自学能力强。处事自信、认真、肯担当。父母坚毅,朴实的性格无时无刻不在感染着我,生活中对自己是尽量节俭,但工作学习中必须做到“贪得无厌”。我不甘于寂寞,我渴望能和身边的.朋友分享成功的喜悦,更享受经受挫败时一起的越挫越勇。但我又不擅于喧闹,我认为广博的知识必须静心汲取,全心投入的思考。唯有如此才能在技术上面日日进步,精益求精。我憧憬做一个事业成功的人,能凭自己双手给社会造益,能给家人幸福,能给身边人带来快乐。我钟爱一句话,也是驱使我有不懈奋斗的一句话—— “天行健,君子以自强不息。地势坤,君子以厚德载物。”工作经验
某公司 -02 - 2009-04
公司性质:
担任职位:实习生
工作职责和业绩:
在公司主要负责网站的开发与维护 教育经历
邵阳学院 -06 - -06
最高学历:本科
专业名称:信息与计算科学
专业描述:信息与计算科学专业 Information and Computing Sciences 信息与计算科学专业是以信息领域为背景数学与信息,管理相结合的交叉学科专业.该专业培养的学生具有良好的数学基础,能熟练地使用计算机,初步具备在信息与计算科学领域的某个方向上从事科学研究,解决实际问题,设计开发有关软件的能力.毕业生适合到企事业单位、高科技部门、高等院校、行政管理和经济管理部门,从事科研、教学和计算机应用软件的开发和管理工作,也可以继续攻读信息与计算科学及相关学科的硕士学位。
技能专长:
掌握C++、C语言编程,熟悉linux C语言。Linux系统下文件I/O操作,进程控制,信号,网络编程均有学习。了解ARM平台下linux嵌入式项目开发流程。
it技能专长
技 能:AIX
使用时间:一个月
题目01:在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同的单词。
[cpp] view plain copy print?
1.2.3.4.5.6.7.8.9.int main(){
// 用数组定义一个字符串
char array[50] = “zha junju zhamengjun z mengjun”;
char *str = array;// 定义指针变量str,指向数组array
int len = 0;// 定义变量len,用于计数
int max = 0;// 定义变量max,存放最长单词的长度
char *p = 0;// 定义指针变量p,指向最长单词的首字符
10.11.// 判断指针当前指向的字符是不是'
12.while(*str!= ')13.{
14.if(*str!= )// 判断字符是不是空格 15.{
16.len++;// 计数加1 17.18.// 判断最大长度跟len长度的大小
19.if(max < len){
20.max = len;// 如果max小于len,将len赋值给max
21.p = str1];
46.} 47.else
48.{
49.sumDaysOfMonth += pingYear[monthDay;// 定义整型变量days,存储一个月内相隔的天数
54.int sumDays = 0;// 定义整型变量sumDays,存储两个时间点相隔的总天数
55.56.// 得到两个时间点相隔的总天数
57.sumDays = sumDaysOfYear + sumDaysOfMonth + days;58.59.printf(“两个时间点相隔%d天n”, sumDays);60.61.// 根据相隔的天数,判断小明遇到的人
62.if((sumDays % 2 == 0)&&(sumDays % 3 == 0))63.{
64.printf(“小明既结识了帅哥又结识了美女!n”);65.}
66.else if(sumDays % 2 == 0)67.{
68.printf(“小明结识了帅哥!n”);69.}
70.else if(sumDays % 3 == 0)71.{
72.printf(“小明结识了美女!n”);73.} 74.else
75.{
76.printf(“小明没有结识帅哥和美女n”);77.} 78.}
心得体会:(1)利用for循环遍历,if条件来判断是平年还是闰年,求出相隔年数的累加的天数(2)同理,利用第一步的方法,求出相隔月数的累加的天数,只是要注意每月的天数,根据平年和闰年的不同分别保存在两个不同的数组中,以便利于累加
(3)将输入的日减1,计算出当月相隔的天数,最后求出两个日期相隔的总天数。(4)根据总天数取余2和3,判断出小明当天结识的是美女还是帅哥。
题目05:提示用户输入一个正整数n,利用while循环计算并输出:1-2+3-4+5-6+7…+n的和。
[cpp] view plain copy print?
1.2.3.4.5.6.7.8.9.int main(){
// 1.定义变量存储用户输入的整数
int n = 0;
// 2.判断n是否为正整数
while(n <= 0){
// 2.1 提示输入
printf(“输入一个正整数:n”);
10.11.// 2.2 让用户输入
12.scanf(“%d”, &n);13.} 14.15.// 3.计算阶乘
16.int sum = 0;// 存储计算结果
17.int current = 0;// 当前要累加的数值
18.while(current < n){ 19.current++;20.21.// 如果是偶数,就减
22.if(current % 2 == 0){ 23.sum-= current;24.} else { // 如果是奇数,就加
25.sum += current;26.} 27.} 28.29.// 4.输出结果 30.printf(“%dn”, sum);31.32.return 0;33.}
心得体会:
(1)确保从键盘上输入的是一个整数(用while来判断);(2)用while循环来遍历从1到n的值;
(3)通过奇偶性判断所要累加数值的正负性,奇数就累加,偶数就累减。
题目06:提示用户输入一个正整数n,计算并输出n的阶乘结果:1*2*3*…*n。
[cpp] view plain copy print?
1.2.3.4.5.6.7.8.9.int main(){
// 1.定义变量存储用户输入的整数
int n = 0;
// 2.判断n是否为正整数
while(n <= 0){
// 2.1 提示输入
printf(“输入一个正整数:n”);
10.11.// 2.2 让用户输入
12.scanf(“%d”, &n);13.} 14.15.// 3.计算阶乘
16.int result = 1;// 存储计算结果
17.int current = 1;// 当前的乘数
18.while(current <= n){
19.result *= current;// 累乘每次的乘数
20.current++;// 乘完一次就++
21.} 22.23.// 4.输出阶乘结果
24.printf(“%d!= %dn”, n, result);25.26.return 0;27.}
心得体会:
(1)可以利用for循环或者while循环进行遍历,利用累乘即可求出值。(2)还可以利用递归来做,更简单。
题目07:编写一个函数,判断某个字符串是否为回文。回文就是从左边开始读 和 从右边开始读 都是一样的,比如“abcba” [cpp] view plain copy print?
1.2.3.4.5.6.7.8.9.int main(){
printf(“%dn”, isHuiwen(“a”));
return 0;}
/*
返回1代表是回文
返回0代表不是回文
10.*/ 11.int isHuiwen(char *str)
12.{
13.// 1.定义一个指向变量left指向字符串的首字符
14.char *left = str;
15.// 2.定义一个指向变量right指向字符串的末字符
16.char *right = str + strlen(str)1)+ count(n);// 求出每一个阶乘的累加和
58.} 59.60.// 定义和求出一个累加和
61.int count(int n)
62.{
63.if(n == 1)64.return 1;
65.return count(n1;22.23.// 如果左边元素的下标 < 右边元素的下标
24.while(left < right)25.{
26.// 利用中间变量交换两个元素的值
27.int temp = array[left];28.array[left] = array[right];29.array[right] = temp;30.31.// 交换一次后,左边元素下标增加,右边元素下标减小
32.33.left++;34.right--;35.} 36.}
心得体会:
(1)首先要明白一点,为什么不能通过sizeof(array)/ sizeof(int)来求出数组元素的个数?因为当数组作为参数传递的时候,函数的参数array实际上当做变量来存储传来的数组首元素的地址。而每一个指针变量占用8个字节。
(2)分别拿出数组首元素和数组尾元素,然后利用中间变量交换两个元素的值。(3)利用while循环,遍历数组元素,并使left< right保证循环到中间即可,否则每个元素又进行一次交换,结果值没有改变。
【c语言编程练习】推荐阅读:
c语言编程心得07-22
大一c语言期末编程题10-07
C语言编程期末试题答案10-08
c语言总结07-15
c语言概念题09-22
C语言教学建议10-25
c语言递归程序11-06
c语言排序算法总结06-25
C语言实验报告模版07-10
c语言实验报告总结07-13