高级语言程序设计实验报告 C语言实验报告

2024-08-26

高级语言程序设计实验报告 C语言实验报告(通用11篇)

篇1:高级语言程序设计实验报告 C语言实验报告

C语言程序设计实验报告

实验二 循环结构程序设计

班级 2012196 学号 201219628 姓名 李明月

一、实验目的

(1)掌握用while语句,do-while语句和for语句实现循环的方法;(2)掌握循环结构的嵌套;

(3)掌握break语句和continue语句的使用方法。

二、实验内容及步骤

1.相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第一个格子中放1粒,第2格中放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上的64个格子,我就感恩不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。国王能兑现他的许诺吗?

程序1:试编程计算舍罕王共要多少粒麦子赏赐他的宰相,这些麦子合多少立方米?(已知1立方米麦子约1.42e8粒)总粒数为:sum=1+2+22+23+„+263 程序代码:

#include int main()//定义一个主函数 { int i;double t=1,sum=1,v;//定义变量

for(i=1;i<=63;i++)//用for循环语句实现循环运算 { t=t*2;sum+=t;//循环表达式 } printf(“总麦粒数为:%fn”,sum);v=sum/1.42e8;printf(“折合体积为: %f立方米n”,v);//对结果进行输出

return 0;} 运行结果:

2.求完数。

程序2:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数,输出所有的完数(要求:一行显示6个数);

程序代码:

#include int main(){ int i,j,sum,n=0;printf(“ 1000以内的完数有:n”);for(i=1;i<=1000;i++){

sum=0;for(j=1;j

if(i%j==0)

{

sum=sum+j;

} } if(sum==i)

{ printf(“ %d”,i);

n=n+1;

if(n%2==0)

printf(“n”);

} } printf(“n”);return 0;} 运行结果:

3.打印九九乘法表

程序3:编程输出如下上三角形式的九九乘法表。2 3 4 5 6 7 8 9-------n“);for(i=1;i<10;i++)//i { for(j=1;j<=i;j++)// printf(” “);for(j=i;j<10;j++)//j printf(”%-2d “,i*j);// printf(”n“);}

代表行 输出空格达到来使得向右对齐代表列

输出行与列的乘积 3 1 2 3 4 5 6 7 8 9

运行结果:

三、问题讨论

break语句和continue语句在循环结构中使用时有何区别?举例说明。

break语句是跳出整个循环过程,不再判断执行循环的田间是否成立,并且break语句不能用于循环语句和switch语句之外的任何其他语句中。而continue语句则只是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。

例子:

#include int main(){ int i;for(i=100;i<=200;i++){ if(i%3==0)continue;

printf(”%d“,i);} printf(”n");return 0;} 输出:

但是换成break之后:

四、实验心得

个人感觉对于这几个循环语句还是for循环最为灵活,不进可以用于循环次数一句in个确定的情况,还可用于不确定的情况下,它也完全可以代替while语句。并且是程序看起来更为简洁明了。

篇2:高级语言程序设计实验报告 C语言实验报告

实验目的

1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。

2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。

3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。

实验内容

计算并输出1000以内的10个素数以及它们的和。

要求:

在程序内部加必要的注释。

由于偶数不是素数,可以不考虑对偶数的处理。

虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。

输出形式为:素数1+素数2+素数3+…+素数10=总和值。

算法描述流程图

Main函数:

判断素数:

源程序

#include

#include

int sushu(int n)/* 判断素数的函数 */

{

int t,i;

t=sqrt(n);

for(i=2;i1;i-=2)/* x为奇数时,做函数计算 */

{

n=sushu(i); /* 做判断素数的函数调用 */

( 励志天下 )

if(n!=0)/* 对素数的处理 */

{

a[j]=n;/* 把素数由大至小存入数组a[ ]中 */

j++;

if(j<11)

m+=n;/* 统计前10个素数之和 */

}

}

if(j<10)/* 当素数个数小于10个时,结果输出 */

{

for(i=0;i

{

n=a[i];

printf(“%d”,n);

printf(“+”);

}

printf(“2=”);

printf(“%d ”,m+2);

}

else for(i=0;i<10;i++)/* 当素数个数大于等于10个时,结果输出 */

{

n=a[i];

printf(“%d”,n);

if(i<9)

printf(“+”);

else

{

printf(“=”);

printf(“%d ”,m);

}

}

}

}

测试数据

分别输入1000、100、10测试。

运行结果

出现问题及解决方法

当素数个数小于10时的处理不够完善,考虑不够周全。把“+2”的处理做的太勉强。

程序过大,不够精简,无用文字太多。

学习耐心与细心不足,如scanf(“%d”,&n);中的“&”经常忘记。

编程思想不够发散,例如如何判断素数,只能想出2种方式(其中1种为参考教科书上内容);在今后学习中应更多的动脑,综合运用所学。

基本功不够,如清屏clrscr等函数用的不好,有时同样的问题多次犯,给实验课老师带来很大的麻烦。这说明我的知识不够广,有很多有用但不做考试要求的书中内容没有学好,认识程度不够深刻。就算以后C语言这门课程结束后,也应多看相关东西,多上机练习,才能真正从本质上提高自己。

物理实验报告 ·化学实验报告 ·生物实验报告 ·实验报告格式 ·实验报告模板

篇3:C语言程序设计实验课程教学探索

C语言程序设计作为一门重要的程序设计语言入门语言, 在课程体系中的地位不言而喻。盐城师范学院将C语言程序设计作为计算机专业本科生程序设计课程的基础核心课程, 已有多年历史。该课程对培养学生计算思维、编程能力、自学能力和分析解决计算机问题的能力有着至关重要的作用, 并对后续课程, 譬如算法与数据结构、数据库原理、操作系统等核心课程的学习有非常大的支撑作用。但是, C语言中概念多、难点多、语法复杂、设计到的硬件知识多、使用灵活、不易调试等特点, 容易导致学生出现畏难情绪, 极大地遏制了学生的学习兴趣。本文针对以上问题就该课程对应的实验课程做几点思考, 从课程内容、教学方法、教学手段等几个方面进行大胆改革, 积极投身教学实践, 结果显示我们的改革能取得较好的效果。

2 传统教学模式存在的问题 (Defects of traditionalteaching model)

C语言程序设计实验课程是计算机专业进入大学后要学习的第一门程序设计实践课程, 它对提高学生编程兴趣和动手能力有着至关重要的作用。或者说, 该课程是热爱编程和害怕编程的两种学生的分水岭。传统教学模式在实际教学过程会存在以下问题[1]。

(1) 生源的计算机基础参差不齐, 有些学生进入大学前就已经通过计算一级考试, 有些学生还没有接触过计算机。进入大学后同一平台学习程序设计, 后者明显感觉到有压力, 自信心受打击从而出现厌学的情绪。

(2) 传统教学模式的过程以教师为主体, 学生被动的学, 对于实践性很强的课程, 学生逐渐丧失兴趣, 缺乏学习的动力。C语言程序设计实验课程上, 如果只是简单的做些验证性实验, 则不能培养学生独立编程解决问题的能力, 极大地扼杀了学生的创造力。

(3) 由于被动的学习, 造成只是照本宣科, 缺乏钻研精神, 导致学生在后续专业课程或参加设计性、综合性实验课程时, 往往力不从心, 达不到预期的教学效果。

(4) 教师对课程教学目标不明确, 认为将该课程的语法知识传授给学生就达到教学目的, 这样就背离了通过学习C语言应该培养学生能够用编程语言去分析和解决实际问题的能力的宗旨。

3 改革方案 (Project of innovation)

C语言程序设计是一门实践应用性较强的学科, 在日常的教学过程中需要不断强化实验环节, 让学生在操作实践过程中不断地发现、分析和解决新问题。为了实现上述目标, 教师在教学过程中必须要结合有效教学理论的要求, 努力改进教学方法。

3.1 精心设计好教学内容

案例教学教学法的理论依据是构建主义学习理论[2]。构建主义者认为, 教学设计要发挥学习者在学习过程中的主动性和构建, 教师的职责在于使学习者置身于探索知识之中, 为他们提供适当的“情境”[3]。在设计案例时, 要兼顾不同基础的学生, 不能让实验课变成少数人的实验课。因此, 我们将教学内容按层次组织。第一个层次为基本知识, 所有的学生都必须能够通过自身的努力顺利完成, 这样可以极大提高学生的学习积极性。第二个层次为对所学知识简单的应用, 这个层次对基本概念和方法加深理解, 需要学生通过自己的钻研、参考课外资料, 发挥自己的学习能力。通过这一层的学习, 所有的学生应该能够学会主动积极地查阅文献, 切实提高自己的钻研和自学能力, 同时也能鼓舞学生的斗志。第三个层次是用所学知识去解决实际问题, 真正做到培养学生的创造力。这个层次需要通过大量的思考和联系才能达到, 同时也能选拔出具有一定天分的学生。

3.2 激发学生的学习兴趣

兴趣是最好的老师, 同时兴趣也是学好程序设计的关键, 而培养学生对C语言程序设计课程的兴趣关键在于实验课。激发学生的学习兴趣的关键莫过于让学生有解决实验中碰到问题的能力, 不会因为C语言本身的问题丧失学习的信心。比如, 让学生掌握调试手段。首先我们使用一个有趣的现象引出为何要使用调试工具, 以及调试工具使用方法。例如, 我们给出如下所示代码, 请学生写出运行结果。绝大部分学生会给出从246到255的十个数。运行的结果告诉他们结果应该是一个死循环, 这样会激发学生的想知道原因的兴趣。

#include

int main ()

{

unsigned char a;

for (a=246;a<256;a++)

printf (“%dt”, a) ;return 0;

}

我们用VC++ 6.0的调试工具, 在循环体语句前设置一个断点, 执行debug, 并执行单步调试, 发现当a为255后for循环并没有能停止, a的值变成了0, 如图1和图2所示。这时学生会回忆起unsigned char类型的变量取值范围为0—255。当变量a值为255时再加1就回头变成了0。这样学生会对调试工具的使用有一个非常深刻的印象, 同时也会明白掌握调试工具的重要性。更重要的是, 极大地激发了学生的学习兴趣。

3.3 设计考核体系

目前许多高等院校C语言程序设计课程学习成绩的评定, 仅以期末一张考试卷的完成情况而定, 这使得很多学生不重视实验课, 认为实验课学得好与不好对成绩影响不大, 很多学生重理论、轻实验[4]。我们将考核贯穿整个学习过程中, 每学完一个知识点进行一次考核。考核的方式灵活多样, 可以通过诸如答辩、课后撰写小论文、完成实验报告等方式。考核过程中发现的问题决定教师教的过程, 可以通过集中讲授、设计思考题、提供参考资料等方式解决学习过程发现的问题。

4 结论 (Conclusion)

多年来, 我校在C语言程序设计实验课上进行了改革的尝试, 许多老师积极参与教学改革, 取得了辉煌的成果。我们一直在努力寻找提高学生对C语言程序设计实验课程的兴趣、最有效的教学手段, 为计算机专业学生提高动手能力、编程思维能力做出自己的努力。

参考文献

[1]王创伟, 汤克明, 蔡长安.“C语言程序设计”教学改革方案与实践[J].现代计算机, 2010 (10) :23-25.

[2]温彭年, 贾国英.建构主义理论与教学改革:建构主义学习理论综述[J].教育理论与实践, 2002, 23 (5) :17-22.

[3]储岳中, 秦锋, 刘哄申.“C语言程序设计”理论与实践一体化教学的几点实践[J].计算机教育, 2012 (12) :22-25.

篇4:C语言实验课教学设计

关键词:C语言实验教学;教学改革;教学设计;教学流程

中图分类号:G642.0 文献标识码:A

一、引言

C程序编写能力是要靠大量的练习学会的,只有让学生多多动手,他们才会对程序设计语言感兴趣。因此在C语言课程教学中应该重视实验课。但是,目前C语言实验课的教学存在着以下弊端:第一,在教学理念上重视理论教学,轻视实验课的练习。第二,在实验课教学过程中教师往往放任学生自由上机,学生只能被动地编写教师提供的程序清单对编程知识缺少深入思考。第三,在实验课的教学过程中,学生之间缺少交流。而在实际的程序开发行业中所有开发人员是需要相互合作的。基于以上因素需要对C语言实验课的教学过程进行改进。

二、C语言实验课教学目标的确定

教学目标就是教学的一个标准,教学目标规定了教学要达到的程度,它是教师教学和学生学习的依据,教学目标的制定可以克服教学的盲目性,在教学过程中占有重要的地位。因此,C语言实验课教学首先要确定教学目标。

C语言实验课教学目标的制订要从认知领域、动作技能领域和情感领域这三个方面来确定。例如对于C语言课程中的“控制结构”这部分的实验内容其实验目标确定如下:在认知领域方面,学生要理解基本的解决问题的技巧,理解计数控制循环和标记控制循环;在动作技能领域方面,学生能够熟练掌握自顶向下逐步求精算法设计,能够熟练应用if语句,if/else语句和switch语句来实现选择结构,能够应用while语句,do/while语句和for语句实现程序循环结构,学生可以使用++、--、赋值和逻辑运算操作符,在循环语句中能够应用break语句和continue语句来控制程序的结构;在情感領域方面,要培养学生认真学习、严谨求实、实事求是和勇于探索的科学精神和态度。

三、确定C语言实验课的操作流程

为了上好C语言实验课,并且能够完成制订好的教学目标,需要根据C语言实验课的具体题目可以将实验课教学过程分为三大部分进行:课前部分、课中部分和课后部分。其具体的操作流程如下图所示:

C语言实验课操作流程图

在上图中,课前教学部分、课中教学部分和课后教学部分都要按照实验教学目标来制定。课前教学部分是在课堂讲授课程完毕之后并且在实验课进行之前进行的,在这部分中主要是要对所讲授课程的知识点进行巩固,并对实验课涉及的知识进行预习。教师在设计实验题目时要设计好学习环境,利用良好的环境调动学生学习的积极性。在实验课学生现场自主编程中,可以发现C语言的语法错误和逻辑错误,提高学生自己分析和解决问题的能力。在这个过程中,教师要给予学生必要的指导和帮助。在协助学习实验题目过程中,教师要确定协作小组让学生共同完成学习目标并将个人习得成果转化为大家习得成果,并且教师要对不同的学习任务进行选择,要设计好实验课程的协作环境,保证实验课程的顺利实施,最后要对实验教学效果进行评价,以此来刺激教学的进行。

四、结论

在C语言实验课的教学中,要充分尊重学生学习活动的主体性地位。所以在大学C语言程序设计这门课程的实验教学中采用了以学为主的教学设计方案,这样可以促进学生独立分析问题的能力,充分调动学生学习的兴趣和主动参与意识。

参考文献:

[1]吴文虎.计算机程序设计基础课程改革[J].中国大学教学,2004(02).

[2]乌美娜.教学设计[M].北京:高等教育出版社,1994.

[3]孙可平.现代教学设计纲要[M].西安:陕西人民教育出版社,1998.

篇5:C语言程序设计实验指导及报告

C语言程序设计课程 实验报告

专业班级

指导教师

C语言程序设计 实验指导及报告

实验说明:

1、共4次实验,每次实验完成1个内容。

2、实验报告命名统一为:C语言_专业班级_学号_姓名

3、自备U盘,在实验前认真阅读实验要求,在实验中及时记录保存实验结果和调试过程,并填写到实验报告对应位置,实验结束后将该实验报告电子版在指定时间内提交给各班学习委员。

实验一

C语言开发工具VC6.0和顺序结构程序设计

1、实验目的:熟练掌握VC6.0开发工具进行程序设计及调试,能编写简单的C程序并完成调试。

2、实验内容1:结合课堂讲授学习VC6.0开发工具及调试方法。

单文件编辑运行方法:

打开VC++6.0,如图1所示

(图1)

选择“文件”→“新建”,打开如图2所示

(图2)

选择“文件”项,如图3所示

(图3)

选择“C++ Source File”项,并在“文件名”项目下输入“sum.c”如图4所示

(图4)

单击“确定”,打开如图5所示

(图5)

输入如上源代码,如图6所示

(图6)

选择“组建”→“编译”(或按Ctrl+F7组合键),打开如图7所示

(图7)

在下端的输出窗口会有错误和警告的提示,如果没有错误选择“组建”→“执行”(或按Ctrl+F5组合键)即可出现运行结果,如图8所示

(图8)

程序调试常用方法:

检查错误:

用鼠标单击调试信息窗口中右侧的向上箭头,可以看到出错的位置和性质, 进行改错时, 双击调试信息窗口中的报错行, 这时在程序窗口中出现一个粗箭头指向被报错的程序行,一般在箭头的当前行或上一行,可以找到出错语句。

修改错误后必须重新进行编译链接。从第一个错误开始修改,每修改一个错误就重新进行编译链接。

设置断点、单步跟踪、查看变量等,详细使用方法见下:

按快捷键F5或点击以下图片上标记的图标进入调试模式。

打开调试工具条,一般情况下当你按F5键后会自动弹出,如果没有弹出的话,右击工具栏空白处,会弹出下图,选中调试,就会出现调试工具条。

接下来,在监视窗口中添加你要监视数据变化的变量。

按F11逐语句的调试代码,如果某一语句是一函数,你不希望进入该函数时,F10逐过程来查看,在代码的调试过程中,通过监视窗口查看变量值的变化,从而确定代码是否有问题。

如果希望跳出某一函数时,按快捷键Shift+F11,或者直接点击调试工具条上的按钮就可以跳出该函数了。

如果只是希望调试某一部分代码的话,可以设置断点来调试,调试方法如上,只是在要调试的代码之间用断点来分开。设置断点时,光标放在你要设置断点的那行,按F9或点击编译微型条上面的类似手状的按钮即可。

3、实验内容2:以下程序有错误,请调试改正错误,使之能正常运行。

程序:

/* 登陆密码三次验证程序*/ #include void mian(void){ int nPwd=0;

/* 用于保存输入的密码*/ int i;

/*循环控制变量*/ int nFlag=1

/*密码匹配成功的标志*/

for(i=0;((nFlag=(87569!= nPwd))&& i<3);++i)

{ /* 默认设定密码为87569,可以根据需要进行设定*/

printf(“please input the password:”);

scanf(“%d”,&nPwd);}

if(nFlag=0)

printf(“the password is right!n”);

else

printf(“over the times and the password you input is error!n ”);}

修改程序及运行结果:#include void main(void){ int nPwd=0;

/* 用于保存输入的密码*/ int i;

/*循环控制变量*/ int nFlag=1;

/*密码匹配成功的标志*/

for(i=0;((nFlag=(87569!= nPwd))&& i<3);++i)

{ /* 默认设定密码为87569,可以根据需要进行设定*/

printf(“please input the password:”);

scanf(“%d”,&nPwd);}

if(nFlag=0)

printf(“the password is right!n”);else

printf(“over the times and the password you input is error!n ”);}

4、实验内容3:习题第三章第1题:假如国民生产总值的年增长率为9%,计算10年后国民生产总值与现在相比增长多少百分比,计算公式为

p(1r)n

r为年增长率,n为年数,p为与现在相比的倍数。源程序及运行

5、实验总结

实验二

选择结构和循环结构

1、实验目的:理解和掌握选择结构和循环结构的语法知识,理解自顶向下、逐步细化的结构化程序设计思想,并能熟练应用。

2、实验内容1:习题第四章第4题:有3个整数a,b,c,由键盘输入,输出其中最大的数。源程序及运行结果:

3、实验内容2:习题第五章第8题:输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各数字立方和等于该数本身。如:153是一个水仙花数153=13+53+33。源程序及运行结果

4、附加内容(非必做,供学有余力的同学):习题第五章第17题:两个乒乓球队进行比赛,各出3人,甲队为A,B,C,乙队为X,Y,Z。已抽签决定比赛名单,有人向队员打听比赛名单,A说他不和X比,C说他不和X,Z比,请编程找出比赛名单。源程序及运行结果:

5、实验总结

实验三

数组和函数

1、实验目的:理解和掌握数组和函数的语法知识,理解模块化编程思想,并能熟练应用。

2、实验内容1:习题第六章第3题:求一个3  3的整型矩阵对角线元素之和。源程序及运行结果:

3、实验内容2:习题第七章第3题:写一个判断素数的函数,在主函数中输入一个整数,输出是否为素数的信息。源程序及运行结果:

4、附加内容(非必做,供学有余力的同学):习题第六章第2题:用选择法对10个整数排序。

源程序及运行结果:

5、实验总结

实验四

指针和结构体

1、实验目的:理解和掌握指针和结构体的语法知识,并能熟练应用。

2、实验内容1:习题第八章第1题:输入3个整数,按由小到大的顺序输出。源程序及运行结果:

3、实验内容2:习题第九章第5题:有10个学生,每个学生的数据包括学号,姓名,3门课程的成绩,从键盘输入10个学生的数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课程成绩,平均分数)。源程序及运行#include #include #define SIZE 10

struct student{ char id[20];char name[20];int score[3];float average;} stud[SIZE];

void input()/* 输入学生的信息 */ { int i;

for(i=0;i

{

printf(“第%d个学生的信息:n”,i+1);scanf(“%s%s%d%d%d”,stud[i].id,stud[i].name,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);stud[i].average=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3.0;} }

void output()/* 输出学生的信息 */ { int i;

printf(“n”);for(i=0;i

void sortput()/* 排序输出最高分的学生信息 */ { int i,j;struct student temp;

for(i=0;i

void main(){ input();

output();sortput();} 结果:

4、附加内容(非必做,供学有余力的同学):习题第八章第6题:写一个函数,求一个字符串的长度,在主函数中输入字符串,并输出长度。源程序及运行结果:

篇6:高级语言程序设计实验报告 C语言实验报告

一、教材名称:<>

二、课程总学时:108学时 [理论: 72 学时;实验与上机:36学时]

三、适用专业和开课学期:软件技术专业,第2学期。

四、实验的目的与任务:

《C程序设计》是一门实践性很强的课程。通过实验使学生加深对课堂讲授的概念、语法、算法、编程技术的理解;熟悉C程序设计的开发环境;掌握程序设计和调试的基本技能。并通过实践激发学生进一步学习的积极性,培养学生的学习兴趣和创新思维。通过8个实验,使学生经过一定数量的上机训练,了解和掌握C程序设计的环境、程序的数据表示、程序的执行流程控制、程序的整体结构等C程序设计的基本概念和应用技术。

五、主要仪器设备及台(套)数

安装Windowsxp,TC2.0等软件的计算机,每生一台。

六、主要实验教材(指导书)及参考用书:

谭浩强主编,《C程序设计题解与上机指导》,清华大学出版社。

七、成绩考核方式及评分标准

实验占课程总课时1/3,每项实验按该实验说明要求规定的评分标准积分,学期末合计的实验成绩占课程总成绩的18%。

八、实验开出率:100%

九、实验项目与要求

实验一:C程序的运行环境和运行一个C程序的方法(2学时)

实验性质:验证性实验

一、实验目的

1.了解所用的计算机系统的基本操作方法,学会独立使用该系统。2.了解在该系统上如何编辑、编译、连接和运行一个C程序。3.通过运行简单的C程序,初步了解C源程序的特点。

二、实验内容

1.调用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的?

2.输入并运行教材第一章中例1.2。

3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。

实验二 数据类型、运算符和表达式(2学时)

实验性质:验证性实验

一、实验目的

1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。

2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

3.进一步熟悉C程序的编辑、编译、连接和运行的过程。

二、实验内容

1.输入并运行教材第三章例3.6.即: #include void main(){char c1,c2; c1=97; c2=98;

printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); } 在此基础上 ①将第二行改为: int c1,c2;再使之运行,分析结果。②再将第三行、第四行改为: c1=300;c2=400;再使之运行,分析其运行结果。

2.输入并运行教材第三章习题3.6,在上机前先用人工分析程序写出应得结果,上机后将二者对照。

3.输入并运行习题3.10。即: #include void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);} 分别作以下改动并运行: ①将第4行改为: m=i++;n=++j;②程序改为: #include void main(){int i,j;i=8;j=10;printf(“%d,%d”,i++,j++);} ③在②的基础上,将printf语句改为: printf(“%d,%d”,++i,++j);④再将printf语句改为:

printf(“%d,%d,%d,%d”,i,j, i++,j++);⑤程序改为: main(){int i,j,m=0,n=0;;i=8;j=10;m+=i++;n-=--j;printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);}

实验三 最简单的C程序设计(2学时)

实验性质:验证性实验

一、实验目的

1.掌握C语言中使用最多的一种语句—赋值语句的使用。2.掌握数据的输入输出的方法,能正确使用各种格式转换符。

二、实验内容

1.输入并运行以下程序:

#include

void main(){int a,b; float d,e; char c1,c2; double f,g; long m,n;

unsigned int p,q; a=61;b=62; c1=’a’;c2=’b’; d=3.56;e=-6.87;

f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000;

printf(“a=%d,b=%dn c1=%c,c2=%cnd=%6.2f,e=%6.2fn”,a,b,c1,c2,d,e); printf(“f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un”,f,g,m,m,p,q); } 在此基础上,做以下改动: ① 将程序第8-13行改为: a=61;b=62; c1=a;c2=b;

f=3157.890121;g=0.123456789; d=f;e=g;

p=a=m=50000;q=b=n=-60000; 运行程序,分析结果。

② 在①的基础上将printf语句改为:

printf(“a=%d,b=%dn c1=%c,c2=%cnd=%15.6f,e=%15.12fn”,a,b,c1,c2,d,e);

printf(“f=%f,g=%fn m=%ld,n=%ldn p=%d,q=%dn”,f,g,m,n,p,q); 运行程序。

2.编写程序,用getchar函数读入两个字符c1、c2,然后分别用putchar函数和printf函数输出这两个字符。

上机运行程序,比较用printf和putchar函数输出字符的特点。

实验四 选择结构程序设计(2学时)

实验性质:设计性实验

一、实验目的

1.了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”); 2.学会正确使用逻辑运算符和逻辑表达式; 3.熟练掌握if语句和switch语句。

二、实验内容

先编程序,解决以下问题,然后上机调试运行程序。1.有一个函数 xy2x13x11x11x10 x10用scanf函数输入x的值(分别为x<1、1~

10、≥10三种情况),求y值。2.给出一个百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。

实验五 循环控制(4学时)

实验性质:设计性实验

一、实验目的

1.熟悉用while语句,do-while语句和for语句实现循环的方法。2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。

二、实验内容

编程序并上机调试运行。

1.输入两个正整数,求其中最大公约数和最小公倍数。2.用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。

实验六 数组(4学时)

实验性质:设计性实验

一、实验目的

1.掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法(特别是排序算法)。

二、实验内容

编程序并上机调试运行。

1.用选择法对10个整数排序。10个整数用scanf函数输入。2.将两个字符串连接起来,不要用strcat函数。实验七 函数(4学时)

实验性质:设计性实验

一、实验目的

1.掌握定义函数的方法;

2.掌握函数实参与形参的对应关系,以及“值传递”的方式; 3.掌握函数的嵌套调用和递归调用的方法;

4.掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。

二、实验内容

编程序并上机调试运行。

1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。2.求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一函数根据求出的最大公约数求最小公倍数。

(1)用全局变量的方法。将两个整数的最大公约数、最小公倍数都设为全局变量。

(2)不用全局变量,两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。

实验八 预处理命令(2学时)

实验性质:设计性实验

一、实验目的

1.掌握宏定义的方法; 2.掌握文件包含处理方法; 3.掌握条件编译的方法。

二、实验内容

编程序并上机调试运行。

1.定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。

说明:在程序主函数使用宏时只能用两个实参,如SWAP(a,b),不能用三个参数。2.用条件编译方法实现以下功能:

输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下字母(如‘a’变成‘b’,„,‘z’变成‘a’。其它字符不变)。用#define命令来控制是否要译成密码。例如: #define CHANGE 1 则输出密码。若 #define CHANGE 0 则不译成密码,按原码输出。用条件编译方法来处理。

实验九 指针(4学时)

实验性质:设计性实验

一、实验目的

1.掌握指针的概念,会定义和使用指针变量; 2.学会使用数组的指针和指向数组的指针变量; 3.学会使用字符串的指针和指向字符串的指针变量; 4.学会使用指向函数的指针变量;

二、实验内容

编程序并上机调试运行程序(都要求用指针处理)。1.输入三个整数,按由小到大的顺序输出。

2.将一个3*3的矩阵转置,用一函数实现之。在主函数中用scanf函数输入以下矩阵元素:

1 7133915511 19将数组名作为函数实参。函数调用后在主函数中输出已转置的矩阵。3.用一个函数实现两个字符串的比较,即自己写一个strcmp函数: strcmp(s1,s2)如果s1=s2,则函数返回值为0;如果s1≠s2,返回它们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如s1

两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出。

实验十 结构体和共用体(4学时)

实验性质:设计性实验

一、实验目的

1.掌握结构体类型变量的定义和使用; 2.掌握结构体类型数组的概念和应用; 3.掌握共用体的概念与使用。

二、实验内容

编程序,然后上机调试运行。

1.有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5个学生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课的成绩、平均分数)。

要求用一个input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。

2.输入和运行以下程序:

#include

union data {int i[2]; float a; long b; char c[4]; };

void main(){union data u;

scanf(“%d,%d”,&u.i[0],&u.i[1]); printf(“i[0]=%d,i[1]=%dna=%fnb=%ldnc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%cn”,u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]);} 输入两个整数10000、20000给u.i[0]和u.i[1]。分析运行结果。

然后将scanf语句改为: scanf(“%ld”,&u.b);

输入60000给b。分析运行结果。

实验十一 位运算(1学时)

实验性质:设计性实验

一、实验目的

1.掌握位运算的概念和方法,学会使用位运算符; 2.学会通过位运算实现对某些位的操作。

二、实验内容

编写程序,上机调试并运行。

1.设计一个函数,使给出一个数的原码,能得到该数的补码,用八进制形式输入和输出。

实验十二 文件(1学时)

实验性质:设计性实验

一、实验目的

1.掌握文件以及缓冲文件系统、文件指针的概念; 2.学会使用文件打开、关闭、读、写等文件操作函数。3.学会用缓冲文件系统对文件进行简单的操作。

二、实验内容

1.从键盘输入一个字符,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符以“!”结束。实验十三 学生成绩管理(4学时)

实验性质:综合性设计性实验

一、实验目的

1.综合运用C程序设计知识,解决实际问题。

二、实验内容

1.有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。

2.将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu-sort”中。

3.将上题已排序的学生成绩文件进行插入处理。插入一个学生的三门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。

学生的原有数据为:

91101 Wang 89,98,67.5 91103 Li 60,80,90 91106 Fun 75.5,91.5,99 91110 Ling 100,50,62.5 91113 Yuan 58,68,71 要插入的学生数据为:

91108 Xin 90,95,60

制 订:程世辉 教研室:软件教研室 执笔人:程世辉 审定人:

篇7:高级语言程序设计实验报告 C语言实验报告

一、、for(i=0;i

T[2*d]='

Scanf(“%s”,&s)、#define ARR-SIZE 80;

Inverse(char a);

Str[i]=str[j];

3、int f=1;

二、1、i<=n

S+x[i]

i2—i1+12、#include

String

strTemp[i]

J++;

篇8:高级语言程序设计实验报告 C语言实验报告

1 高校C语言实践教学中存在的问题

1.1 实践教学内容有待优化

实践教学内容全部依附于理论教学课程, 实验项目陈旧, 只是配合每一章所学的内容在计算机上进行实践, 验证性实验项目较多, 缺少综合性、设计性实验。扩展内容太少, 不利于学生进行开拓性实验内容的设计, 不利于学生创新思维能力的培养。

1.2 实践教材形式单一

课程采用的实验教材与习题集合二为一的, 每一个实验题目都能在本书中找到答案, 学生只要把源程序输入计算机, 进行简单的调试就可以得到实验结果, 用不着去查资料、思考和创新, 编译出错时不是根据错误提示查找原因, 而是与书上的程序进行比对, 改正录入错误。这样不利于培养学生发现问题、分析问题、解决问题的能力。

1.3 实践教学方法有待创新

教师在教学过程中使用单纯的讲授法, 往往把实验过程、注意事项等讲得很详细, 学生实验时只是按照步骤被动的进行, 缺少独立思考、提问、尝试的机会, 主动性得不到发挥, 创新思维训练无从谈起。上课讲的内容在讲过之后, 无法反复学习研究, 学习者层次不一, 对知识的接受能力也存在较大差异, 造成学习者对教师所操作的步骤无法全部掌握。不利于激发学生对实验教学的兴趣和积极性, 不利于学生进行探究式学习。

2 C语言实践教学的实施内容

2.1 优化实验教学内容

为全面提高学生的实践能力, 使实验教学能够满足不同层次学生的自主学习需求, 我们对实验课程内容进行了规范和优化, 新的C语言程序设计实验内容系统地构建了实验项目模块, 确定开设16个实验。考虑到本课程为专业基础课, 实验项目以基础实验项目为主, 增加综合性实验项目, 使其具有从易到难、从基础到综合的系统性。

实验项目的精心选择。C语言有三种基本结构:顺序结构、选择结构和循环结构, 这三种结构是学生程序学习的入门结构, 所以我们进行了精心的选择, 例如我们在循环结时设计了两个题目, 1.编程计算5!, 要求输出结果为:1×2×3×4×5=120。2.输入10个数, 求其中的最大数和最小数。这两个程序难易适中, 不仅能够很好运用循环结构, 而且为后续的递归结构打下基础, 环环相扣, 由浅入深。

实验题型的多样化。在以往的实验课中, 大部分老师布置的实验题目题型单一, 内容不丰富, 为了全方位地训练学生程序设计能力, 在程序设计中设计多种类型的实验题目, 包括填空设计题, 程序修改题, 编程题等。

2.2 加强实验教材建设

实验教学的正常实施, 离不开相应教材的指导, 为给学生提供一定广度和深度的实验教材和辅助资料, 我们将编写实验指导手册;同时在新的教材中扩充一部分高级编程, 扩展学生的知识面;再加入常见错误代码, 以便学生能够更快的改正自己的程序, 也可预防一些错误的发生。

2.3 完善实验教学方法

将问题分析法, 项目实验法、任务驱动法等多种教学方法融合, 提高学生解决问题的能力, 增加学生的学习兴趣。鼓励学生参加学生社团, 开展趣味编程。组建编程竞赛和兴趣小组, 加入真实的实践项目, 增加学生参与项目的能力。

2.4 实验考核方法的改进

目前实验成绩主要是各个实验成绩的总合, 不能合理的评判出学生的水平和能力。我们将实验成绩分为三个部分, 实验考勤20%, 实验现场打分40%, 实验报告40%。这样给出的实验成绩不仅能够反映学生的真实能力, 而且量化科学。另外设定一部分加分项目, 当学生完成高难度项目时, 另设定加分内容。

3 C语言实践教学的具体实施

围绕理论教学, 设计出相关的例题, 习题、上机指导题以及工程化思想的项目指导题, 坚持实践和理论教学相结合, 以实践教学促进对理论教学的深入理解, 将理论教学置于实际应用的背景之下;以实践教学为手段, 培养学生的计算思维、工程化思想, 训练学生的分析问题、用程序的思维去解决问题的能力, 提高学生的编程能力及调试能力。主要从以下五种实践教学方面实施。

3.1 课内上机实践环节

上机实践课上要求学生在实验室按照理论课讲解的内容进行巩固相应的理论教学知识, 特别是相应的语法知识的熟悉, 然后根据教师布置的题目进行相关的程序分析与设计, 主要是分析该应用中主要用的相关语法知识, 解决思路、分析和处理实际问题。通过上机实践环节, 学生可以基本分析、处理、解决、调试程序的能力。

3.2 课外实验实践环节

要求学生按照本教材配套的C上机实验指导书完成相关的实验操作, 上面的题目设计是以理论教学和上机实践环节相对应的知识去设计的, 能够很多的满足学生对该门课的学习。

3.3 综合性实践环节

布置一个小型软件项目设计, 让学生以工程化的思想从需求分析到最后的实现、运行维护整个工程化阶段去完成课程的设计实践, 使学生在应用项目中学习理论和实践知识。进一步开发学生独立分析、独立思考、独立完成和解决实际应用问题的能力, 综合运用所学的理论知识, 做到融会贯通, 加深学生对编程基本理论的认识和理解。

3.4 学生学习社团趋动

学院有相应的学习社团, 每个社团为每个学生提供的专门的学习场所 (具有上机练习的环境) 及相应的指导教师、高年级的学生的指导, 定期的知识技术的讲座、培训、辅导, 另外还有本专业相关的应用项目支持, 从而达到了实践教学的更高的目的。

3.5 自主研发的云平台的环境支持

学生实验环境全部在学院自行研发的云平台的系统进行操作和实验的, 使学生能切实感受到在自己开发的平台下运行软件, 编写程序与调试程序的乐趣。

4 结语

C语言程序设计是对于初学者来说难以掌握, 很容易让初学者失去学习程序的兴趣, 而实验教学更是难于把握。本文针对C语言实验教学中存在的各种问题, 给出了具体的改革措施, 并在2013、2014级新生中进行实践, 通过这种教学方法的改革, 新生的C语言实践能力得到了明显的提升。通过调查, 学生对于学习编程语言的兴趣大大提升, 对于理论知识的理解也更加深入。

参考文献

[1]董永权.C语言程序设计实验教学中的问题及改革措施[J].科技视窗, 2011 (26) :61-62.

[2]郝慧馨, 李秀坤, 夏清泉.C语言程序设计实验教学探索[J].计算机教育, 2010 (17) :82-84.

篇9:高级语言程序设计实验报告 C语言实验报告

【关键词】C语言 程序设计 实验 考核体系

【中图分类号】G64【文献标识码】A 【文章编号】2095-3089(2016)37-0234-01

1.引言

C语言程序设计(实验)通过上机实践,可以帮助学生巩固课堂教学的理论知识,真正体现学生将知识“内化”的过程[1],意在培养学生分析问题、解决问题的实际动手能力和创新能力。传统的实验课程考核方式单一,不能公正的评价学生的实际综合能力。为了全面培养学生的学习兴趣、全面考查学生的综合知识点,全面注重学生的创新能力和实践能力的提高,以达到培养创新人才的目的,切实推进课程考核改革及考核体系已经刻不容缓[2]。

2.课程简介

程序设计基础是一门专业基础课,这门课通过全面、深入、系统地介绍程序设计方法和程序设计语言,使学生初步建立起程序设计的基本概念,通过学习一种典型的程序设计语言(C语言),初步掌握程序设计方法,具有一定的程序设计能力。我院的程序设计基础(C语言)分上下两个学期,程序设计基础(一)和(二),程序设计实验是单独的一门课程,有程序设计基础(一)实验和(二)实验,实验内容主要是辅助,强化理论各个章节的知识点,提高学生的动手能力为目的进行设计的。

本考核体系是基于程序设计基础(一)实验设计的。我院程序设计基础(一)主要的内容有:数据的表示、组织和处理、程序的基本结构控制(顺序、选择和循环)。

3.現行的考核方式

现行的考核方式比较单一,是从三个方面进行成绩给定:(1)考勤;(2)实验报告;(3)创新设计。这里的(2)和(3)都是以实验报告来给定成绩,其中一部分以实验报告的书面结果给定成绩,另一部分以答辩实验报告的方式给定成绩。现行的考核方式不能公正的评定学生的实际综合能力,也没有促进学生进行创新设计。

4.全程考核体系的构建

全程考核体系意在促进学生核心能力的提升,在学习过程和学习结果两个维度上设置考核指标:过程考核可以提高课程的教学质量,培养学生的学习能力以及提高学生的协作能力、表达能力、沟通能力等综合素质;结果考核目标是使学生掌握基本理论、基本知识的基础上增强职业素养与专业技能,提高分析问题及解决问题的能力。

全程考核体系:

(1)考勤

考勤是学生学习的基础和保证,能促使学生养成遵章守纪的习惯,以培养学生进行自我管理。每次实验使用E-learning系统进行签到记录。

(2)实验报告

实验课中,教师观察、了解学生学习的过程,学生参与课堂活动的广度和深度,学生学习过程中表现出来的解决问题的能力。而实验报告是实验过程中唯一存档的资料,是值得重视的环节。教师根据学生的实验报告的完成步骤、完成程度以及答辩等对每次实验进行综合评价。

(3)综合大作业

为培养学生的创新能力及实践工程能力,让学生以三人一组,综合运用所学知识,共同自主学习、相互启发、收集资料、团队协作开发一个趣味性、实用性的小系统。

大作业从三个方面给定成绩:一是系统的整体评价;二是团队分工;三是团队成员各自答辩情况。

成绩给定之一:系统的整体评价包括科学正确性、趣味性/适用性、界面的清晰性。成绩给定之二:根据团队的分工,评价团队各成员的工作量。成绩给定之三:团队成员各自的答辩情况加入各自的成绩。

(4)期末无纸化考试

为对学习结果进行公正的考核,且激发学生对C语言的热爱,我们用C语言编写了一个无纸化考试系统,并让学生观摩编制考试系统中的主要算法。考试系统的中的试题均为编程题目,按照实验教学大纲的知识模块将试题划分成几个组,每个组中的题目难度相当,考试系统从每个组中抽取一道编程题目,随机组成程序设计试卷。

考试过程中,为保证公正,避免学生考试上网查阅资料,使用E-learning系统控制学生,禁止其使用电脑的浏览器、U盘。

考试成绩从三个方面给定:一是程序结果,单纯地考核程序运行的正确性;二是程序设计思路;三是理论基础知识。

5.结束语

本考核体系应用于本学院15级数字媒体专业,将考核贯穿于整个学习过程中,调动了学生学习的兴趣,学生的实践能力和创新能力得到了一定的提升,能更公正地评价学生的综合能力,学生也表现出了对该门课程的热情和自信,本考核体系得到了学生的一致认可。

参考文献:

[1]王丽娜,吕红,张杰,任颖.《计算机程序设计实验》课程的教学改革与实践.计算机工程与科学.2014年.第A1期.

篇10:实验1-C语言实验报告

(2011-2012-1)

实验报告1

教学班级: 机械094 学号: 01 姓名:谭亮恩 课程教师:

曹瑛

实验辅导教师:

曹瑛

江西理工大学

P6-4:/*P6-4

表示第6页 第四题*/

int main(){ float r,s;r=15.5;s=2*3.14*r;

printf(“r=%4.2f,s=%f”, r, s);return 0;}

结果是:r=15.5

s=97.34

P32-3-1: /*P32-3-1

表示第6页 第四题 第一小题*/ #include int main(){ printf(“thististcbCtprogram.rTn”);return 0;} 结果是: This is C program.P32-3-2: /*P32-3-2

表示第6页 第四题 第二小题*/ #include int main(){ printf(“*abdbctr*ABCD105x46*”);return 0;}

结果是: *ABCDEF*

篇11:c语言实验报告

学生姓名: 学 号: 专业班级:

√ 综合 □ 设计 □ 创新 实验日期: 实验成绩: 实验类型:□ 验证 □一.实验名称

实验3 控制语句

二.实验目的

1.熟练掌握if、if…else、if……elseif语句和switch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。

2.熟练掌握while语句、do……while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。

3.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。

三.实验内容

1. 选择结构程序设计; 2. if语句的使用;

3. 使用switch语句实现多分支选择结构; 4. 三种循环语句的应用; 5. 循环结构的嵌套;

6. break和continue语句的使用。

三.实验环境

PC微机

DOS操作系统或 Windows 操作系统 Visual c++程序集成环境

四.实验内容和步骤

本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。学会单步调试和断点调试程序及变量跟踪方法。

1. 任意输入4个整数,要求按由小到大的顺序输出。

2.编程实现:输入一个整数,将其数值按照①小于10,②10~99,③100~999,④1000以上四个类别分类并显示。

要求:(1)将变量定义为整型。

(2)输入整数前,利用puts()/printf()给出提示信息。

(3)输出结果时要有必要的说明,例如:输入358时,显示358 is 100 to 999。(4)该程序利用if语句实现。

运行程序,分别输入9,21,321,4321数据检查输出信息的正确性。

3.编写程序:根据公式

261111......,输出 π的值。

122232n2要求:

(1)变量π为单精度类型,n为整型;

(2)计算当n的取值分别为20,50,100,200时的π值,说明什么问题?

(3)修改程序,不给出n值,而改为求π值,直到最后一项的数值小于10-4 为止。

(4)对修改后的程序,输出π值以及总的项数n。输出格式为:π=值;n=值。

4.从键盘输入一个0~1000之间的任意整数,输出该整数的所有因子(例如:输入12,其因子为1,2,3,4,6,12)。

要求:

(1)采用while循环语句实现。

(2)输出格式为:Input:12 Output:1,2,3,4,6,12 5.从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输出。学生的成绩可分成5个等级,90-100分为A级,80-89分为B级,70-79分为C级,60-69分为D级,0-59分为E级。要求在输入负数时,给出错误提示。

① 事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。

② 再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束 6.某航空公司规定:在旅游旺季7~9月份,如果订票20张及其以上,优惠票价的10%,20张以下,优惠5%;在旅游淡季1~6月份,10~12月份,订票20张及其以上,优惠票价的20%,20张以下,优惠10%。编写一个C程序,根据月份和旅客订票张数决定优惠率。已知机票单价,请算出旅客的总付款。请使用不同的测试数据进行测试。7.计算并输出1000以内最大的10个素数以及它们的和。

要求:

(1)在程序内部加必要的注释。

(2)由于偶数不是素数,可以不考虑对偶数的处理。

(3)虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。

(4)输出形式为:素数1+素数2+素数+…+素数10 = 总和值。

五.实验数据及处理结果

/*写出实验内容的算法(用流程图表示)、完整的程序、结果并能对结果的正确性及上机时产生的问题进行分析,注意程序变量命名应见名知意、有适当的注释,程序书写规范*/ 【习题1】

【设计思路】 :输入a,b,c,d四个数,将四个数两两进行比较,如果前者大于后者,则将两数的值交换,否则不变。这样重复操作6次,最后输出a,b,c,d的值,则a,b,c,d从大到小排列。

【数据输入】输入整型变量 a,b,c,d 【数据输出】输出 a,b,c,d的值,使其从大到小排列。【源程序实现】

#include main(){

int a,b,c,d,t;printf(“please input four numbers(example:1 2 3 4):n”);scanf(“%d %d %d %d”,&a,&b,&c,&d);if(a>b){t=a;a=b;b=t;}/* 实现a,b的交换 */ if(a>c){t=a;a=c;c=t;}/* 实现a,c的交换 */ if(a>d)

} {t=a;a=d;d=t;}/* 实现a,d的交换 */ if(b>c){t=b;b=c;c=t;}/* 实现b,c的交换 */ if(b>d){t=b;b=d;d=t;}/* 实现b,d的交换 */ if(c>d){t=c;c=d;d=t;}/* 实现c,d的交换 */ printf(“%d,%d,%d,%d”,a,b,c,d);【结果及截图】

答:输入64 3 5 23,运行结果为3,5,23,64,其截图如下:

输入格式的提示。

【修改后程序实现及结果】 /*习题2、4请添加此步*/

【问题分析】 输入数据时,没有按正确格式输入,所以在输入数据之前,应该给出一个【习题2】

【设计思路】

【数据输入】 输入整型变量x。【数据输出】 输出x的范围。【源程序实现】

#include

main()

{

int x;

printf(“Please input a number:n”);

scanf(“%d”,&x);

printf(“%d is ”,x);

if(x<10)printf(“less than 10n”);

else if(x<100)printf(“10 to 99n”);

else if(x<1000)printf(“100 to 999n”);

else printf(“more than 1000n”);

return 0;

}

【结果及截图】

答:运行程序,分别输入9,21,321,4321,截图如下:

【习题3】

【源程序实现】

#include

#include

main()

{

int n,N;

float pi,sum=0;

printf(“Please input a number:nN=”);

scanf(“%d”,&N);

for(n=1;n<=N;n++)

sum+=1.0/(n*n);

pi=sqrt(6*sum);

printf(“pi=%f”,pi);

return 0;} 修改后的程序: #include #include main(){

int n=0;

float pi,sum=0;

do

{

n++;

sum+=1.0/(n*n);

}while(1.0/(n*n)>=1e-4);

pi=sqrt(6*sum);

printf(“pi=%f;n=%d”,pi,n);

return 0;}

【结果i及截图】

答:计算当N的取值分别为20,50,100,200时,截图如下:

【结果ii及截图】

【习题4】

【源程序实现】

#include main(){ int num,i=2;printf(“Input:”);scanf(“%d”,&num);printf(“Output: 1”);/*第一个因式为 1*/ while(i<1000){ if(num%i==0)printf(“,%d”,i);i++;} return 0;}

【结果及截图】

答:输入30,得其因式为 1,2,3,5,6,10,15,30,截图如下:

【习题5】

【源程序实现】

If 语句

#include main(){

int num;

printf(“Input:”);

scanf(“%d”,&num);

if(num<0||num>100)printf(“The number is wrong!”);

else if(num<=59)printf(“E”);

else if(num<=69)printf(“D”);

else if(num<=79)printf(“C”);

else if(num<=89)printf(“B”);

else printf(“A”);

return 0;}

Switch 语句

#include main(){

int num,n;

printf(“Input:”);

scanf(“%d”,&num);

n=num/10;

switch(n)

{

case 0:

case 1:

case 2:

case 3:

case 4:

case 5: printf(“E”);break;

case 6: printf(“D”);break;

case 7: printf(“C”);break;

case 8: printf(“B”);break;

case 9:

case 10: printf(“A”);break;

default: printf(“error!”);

}

return 0;}

【问题分析】

【习题6】

【源程序实现】

#include main(){ int month,num;float price,cost;printf(“month=”);scanf(“%d”,&month);printf(“nprice=”);scanf(“%f”,&price);printf(“nnum=”);scanf(“%d”,&num);if(month>=7&&month<=9){if(num>=20)cost=price*0.9*num;else cost=price*0.95*num;} if((month>=1&&month<=6)||(month>=11&&month<=12)){if(num>=20)cost=price*0.8*num;else cost=price*0.9*num;} printf(“cost=%f”,cost);}

【习题7】

【源程序实现】

#include #include void main(){ int num,i,sum=0,count=0;for(num=999;count!=10;num-=2){for(i=2;i=sqrt(num)){count++;sum+=num;printf(“%d+”,num);} } printf(“b=%d”,sum);} 【结果及截图】

六.简答题

上一篇:三位数乘两位数下一篇:家乡特产网络营销计划