实验5 循环控制(二)
华南农业大学C语言程序设计实验指导书参考答案

华南农业大学c语言程序设计上机指导书参考答案上级实验参考答案#include stdio.h#includemath.hint main(){ int i;double a, b;for(i=0;i<=100000;++i){a=sqrt(i+100);b=sqrt(i+168);if((int)a==ceil(a)&&(int)b==ceil(b))printf(%d\n,i);}}实验2基本数据类型、运算和表达式一、实验目的1)掌握C语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。
2)掌握不同的类型数据之间赋值的规。
3)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加++)和自减--)运算符的使用。
4)进一步熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容1 / 561.变量的定义[题目1117:变量定义,按要求完成程序]下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。
void main(){int a, b;/*定义整型变量a和b*/int i, j;/*定义实型变量i和j */a=5;b=6;i=3.14;j=i*a*b;printf(a=%d,b=%d,i=%f,j=%f\n, a, b, i,j);}[具体操作步骤]1)将代码补充完整;2)在TC或VC++上运行通过;3)在JudgeOnline实验系统上提交;2.赋值表达式与赋值语句[题目1118:赋值表达式与赋值语句,写出程序运行结果]阅读下面程序,写出运行结果:voidmain()2 / 56{float a;int b, c;char d, e;a=3.5;b=a;c=330;d=c;e='\\';printf(%f,%d,%d,%c,%c, a,b,c,d,e);}运行结果为:3.500000,3,330,J,\[提示]赋值语句具有类型转换的功能,但可能会改变数据。
实验5

实验五第3章MATLAB程序设计第二节程序控制结构程序控制结构有三种:顺序结构、旋择结构、循环结构.任何复杂的程序都可以由这三种基本结构构成.Matlab提供了实现控制结构的语句,利用这些语句可以编写解决实际问题的程序.一、顺序结构顺序结构是指按照程序中语句的排列顺序从上到下依次执行,直到程序的最后一个语句如例1的qiu文件和例2的dd1文件.这是最简单的一种程序结构.一般涉及数据的输入、计算或处理、数据的输出等内容.1. 数据的输入通过input命令来接收从终端输入的内容,它也可以显示文本和提示.命令集14 输入命令input(out ,in)在屏幕上显示出字符串out的文本并等待终端的输入.如果变量in是's',则输入的内容以字符串的形式进行保存,通常MATL AB在保存前要尽可能地求出表达式的值.如果使用格式控制符号如'\n',字符串out可以是若干行.2. 数据的输出可以通过简单地输入变量的名字来显示数字矩阵或者字符串向量的内容,结果将显示出变量的名字和内容.另一种显示变量的值就是使用命令disp.使用它只显示出变量的内容,这是有用的,特别是在字符串的应用中.命令集15显示命令disp(A)显示矩阵A的内容,如果A是字符串,则显示出它的文本.二、循环结构循环结构是按照给定的条件,重复执行指定的语句.Matlab用于实现循环结构的语句有for — end语句和while — end语句.1.for —end语句for-end语句的格式为:for 循环变量=表达式1 : 表达式2 : 表达式3循环体语句end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值.步长为1时,表达式2可以省略.循环语句应用时应注意:● 循环语句可以嵌套使用;● 不能在 for — end 循环体内改变循环变量的值; ● 为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免 for — end 循环的使用,如例8;● 如果预先就知道循环的次数,则可以采用 for — end 循环;否则,如果预先无法确定循环的次数,则可以使用 while — end 循环.2. while — end 循环while-end 语句的一般格式为:while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环.■例1 使用while-end 结构计算1+2+3+…+100 . 解:■例2 计算 Matlab 中 eps 值 (exp1.m) 解:s=0;for i=1:100 s=s+i; end ss=0; i=1;while i<=100 s=s+i; i=i+1; end snum=0; EPS=1; while (1+EPS)>1 EPS=EPS/2; num=num+1; endEPS,num三、选择结构选择结构是根据给定的条件成立或不成立,分别执行不同的语句.Matlab 用于实现选择结构的语句有条件语句:if –end 和 开关语句:switch-end .1.单分支结构 if —end 语句 2.双分支结构 if —else —end 语句 if-end 语句的格式为: if-else-end 语句的格式为:3.多分支结构 if — elseif — else — end 语句 if — elseif — else — end 语句的格式为:if 条件表达式 语句组 endif 条件表达式 语句组1 else语句组2 endif 条件表达式1 语句组1 elseif 条件表达式 2 语句组2 ... ...elseif 条件表达式 m 语句组m else 语句组end■例3求函数1;00;1;x y x x -<⎧⎪= =0⎨⎪ >⎩ ,输入x 值,输出y 值.解:■例4一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数.输出全部水仙花数.解:程序如下运行结果:153 370 371 407function y=fuhao(x) if x<0 y=-1; elseif x==0 y=0; else y=1; endA=[];for m=100:999m1=fix(m/100); %求m 的百位数字 m2=rem(fix(m/10),10); %求m 的十位数字 m3=rem(m,10); %求m 的个位数字 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 A=[A,m];endend disp(A)4. switch-end 语句根据表达式的不同取值,分别执行不同的语句.其格式如下:■关于 switch-end 语句的几点注解:● Matlab 首先计算表达式的值,然后将它依次与各个case 指令后的检测值进行比较,当比较结果为真时,就执行相应的语句组,然后跳出 switch-end 结构● 如果所有的比较结果都为假,则执行 otherwise 后面的语句组,然后跳出 switch-end 结构 ● otherwise 指令可以不出现● switch 后面的表达式的值可以是一个标量或字符串 ● case 指令后的检测值超过一个时,应用{}括起来switch 表达式 case 值1 语句组1 case 值2 语句组2 ... ... case 值m 语句组m otherwise 语句组n end■例5 阅读程序method=input('请输入方法名:')switch methodcase {'linear','bilinear'}disp('Method is linear')case 'cubic'disp('Method is cubic')case 'nearest'disp('Method is nearest')otherwisedisp('Unknown method.')end■例6用switch-end语句编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设:90分以上为…A‟, 80~89分为…B‟,70~79分为…C‟,60~69分为…D‟,60分以下为…E‟.function sctole(score)grade=fix(score/10);switch gradecase {10,9}grade='A'case 8grade='B'case 7grade='C'case 6grade='D'otherwisegrade='E'end四、其他流程控制语句●break语句●continue语句●return语句●try语句●echo命令●keyboard命令●pause命令1.break和continue语句与循环结构相关的语句还有break语句和continue语句.它们一般与if语句配合使用.break语句用于终止循环的执行.当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句后的下一语句.continue语句控制跳过循环体中的某些语句.当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环. ■例7求[100,200]之间第一个能被21整除的整数.for n=100:200if rem(n,21)~=0continueendbreakendn for n=100:200if rem(n,21)==0breakendendn2.try语句语句格式为:try语句组1catch语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2.这种试探性执行语句是其他高级语言所没有的.■例8矩阵乘法运算要求两矩阵的维数相容,否则会出错.先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘.function C=rc(A,B)%A,B为矩阵tryC=A*B;catchC=A.*B;endlasterr %显示出错原因3.请求键盘输入命令keyboard暂停运行程序并处于等待键盘输入状态(便于调试及程序运行中修改变量),键入“return”程序继续运行.如运行如下:4. echo 命令(在命令窗口,程序调用前使用)一般情况下,M 文件执行时,文件中的命令不会显示在命令窗口.echo 命令可使文件命令在执行时可见.这对程序的调试及演示很有用.对命令文件和函数文件,echo 的作用稍微有些不同.●对命令文件,其格式如下:echo on 打开命令文件的回应命令 echo off 关闭回应命令●对函数文件,其格式如下:echo file on 使指定的file 文件的命令在执行中被显示出来 echo file off 关闭指定文件的命令在执行中的回应function y=f(x) keyboardy=(5*x-6)/((x-3)*(x-3)+2);>> f K>> x=4; K>> return ans = 4.6667>> y=f(4) K>> return y = 4.6667。
实验报告5 循环结构

实验报告5 循环结构1. 实验目的本次实验主要通过编写程序练习循环结构的使用,包括for循环和while循环,并掌握循环结构在解决问题中的应用。
2. 实验内容2.1 for循环2.1.1 基本语法for循环一般的基本语法如下:pythonfor 变量in 可迭代对象:循环体其中,变量为循环控制变量,可迭代对象为需要遍历的对象,循环体为要执行的操作。
2.1.2 实验步骤本次实验选择使用for循环来实现如下功能:1. 计算1到100之间所有正整数的和。
2. 输出一个400行的矩形,每行有20个星号。
python计算1到100之间所有正整数的和sum = 0for i in range(1, 101):sum += iprint("1到100之间所有正整数的和为:", sum)输出一个400行的矩形,每行有20个星号for i in range(1, 401):print("*", end="")if i % 20 == 0:print()2.2 while循环2.2.1 基本语法while循环的基本语法如下:pythonwhile 循环条件:循环体其中,循环条件为判断条件,当循环条件为True时,执行循环体中的操作。
2.2.2 实验步骤本次实验选择使用while循环来实现如下功能:1. 计算1到100之间所有偶数的和。
2. 输出1到100之间所有的质数。
python计算1到100之间所有偶数的和sum = 0i = 1while i <= 100:if i % 2 == 0:sum += ii += 1print("1到100之间所有偶数的和为:", sum)输出1到100之间所有的质数num = 2while num <= 100:prime = Truefor i in range(2, int(num 0.5) + 1):if num % i == 0:prime = Falsebreakif prime:print(num, end=" ")num += 13. 实验结果运行以上代码,可以得到以下结果:1到100之间所有正整数的和为: 5050...1到100之间所有偶数的和为: 25502 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 4. 实验总结通过本次实验,我学会了使用循环结构来解决问题。
实验五 步进电机单轴定位控制实验

方向信号 (a) 脉冲+方向 (b) 正脉冲+负脉冲 实验五 步进电机单轴定位控制实验一、实验目的1. 学习和掌握步进电机及其驱动器的操作和使用方法;2. 学习和掌握步进电机单轴定位控制方法;3.学习和掌握PLC 单轴定位模块的基本使用方法。
二、实验原理步进电动机是一种将电脉冲信号转换为相应的角位移或直线位移量的机电执行元件,即步进电动机输入的是电脉冲信号,输出的是角位移或直线位置。
每给一个脉冲,步进电动机转动一个角度,这个角度称为步距角。
运动速度正比于脉冲频率,角位移正比于脉冲个数。
步进电动机典型控制系统框图如图1-2-9所示。
图1-2-9 步进电动机典型控制系统框图位置控制单元可根据需要的频率和个数以及设定的加减时间控制步进电动机运动。
由于步进电动机需要正反转运动,因此定位单元的输出脉冲形式有“脉冲+方向”和“正脉冲+负脉冲”两种,它们均可控制步进电动机正反转运动。
输出脉冲形式通过参数设定来选择。
其脉冲形式如图1-2-10所示。
图1-2-10 定位模块的两种输出脉冲形式频 率 (HZ ) 脉冲数(PLS ) f 1S 2 S 3S 1由于步进电动机的电磁惯性和所驱动负载的机械惯性,速度不能突变,因此定位模块要控制升降频过程。
步进电机升、降频过程如图1-2-11。
一般情况下,S 2=S 3。
图 1-2-11 步进电机升、降频示意图其中:f 1——设定的运行频率,应小于步进电动机的最高频率;S 1——设定的总脉冲个数;S 2——升频过程中脉冲个数,由加速时间和运行频率确定;S 3——降频过程中脉冲个数,由减速时间和运行频率确定。
步进电动机驱动器将位置定位模块的输出脉冲信号进行分配并放大后驱动步进电动机的各相绕组,依次通电而旋转。
驱动器也可接受两种不同形式的脉冲信号,通过开关来选择,定位模块和驱动器的脉冲形式要相同。
另外,为了提高步进电动机的低频性能,驱动器一般具有细分功能,多个脉冲步进电动机转动一步,细分系数一般为1、2、4、8、16、32等几种,通过拨码开关来设定。
实验内容 (2)

不存在”。 ④ 将数组元素按照从小到大的顺序排序。 ⑤ 删除 给定 下标位置 的元素,将数组元素输出。下标位置有键盘输入,
范围在[0-9]。 4、如何在给定位置插入数组元素。 5、从键盘输入若干个整数,其值在0-4范围内,用-1作为输入结束标志。统计输入的 每个整数的个数。提示:用一维数组存放每个整数的个数:
14 b= 2 5
36
实验内容7:使用字符数组实现如下程序
1、编写程序将字符串a复制到字符数组b中,要求不能使用字符串复制函
数strcpy。 已有定义:
char a[10]="hello !",b[10];
2、编程序实现求字符串(为任意输入的串)的长度,不使用strlen函数。 提示:字符串用字符数组存放
实验内容4: 使用循环控制语句实现如下程序
1、求2~100间的全部素数输出 2、输出九九乘法表. 3、输出如下图所演示 星星图(3选1即可)
* *** ***** ****** *********
* *** ***** ****** *********
* *** ***** ****** *********
int count[5]={0}; int x,i;
实验内容6:使用二维数组实现如下程序
1、求二维数组a[3][4]中最大元素值及其行列号。
int a[3][4]={2,7,9,5,8,6,12,10,11,3,0,7}; 最大值为12,行号1,列号2 2、输出杨辉三角形,要求输出10行,用二维数组实现。杨辉三角形一般形式如下: 1 11 121 1331 1464 1 1 5 10 10 5 1 …… 3、求二维数组a[3][3]中对角线元素之和。
c语言第二部分 实验内容

三、实验内容
1.阅读并输入如下程序,查看运行结果,并分析其功能。 # include "stdio.h" main ( ) { int a, b, c, s ; a = 5; b = 4; c = 6; s = (a+b+c)/ 3; printf (" a = %d, b = %d, c = %d \n, s = %d ", a, b, c, s) ; }
C语言程序设计实验·设计·习题
2.下面是一正方形面积的计算程序,通过输入不同的边长,求 出不同的面积。输入此程序并试运行。 注意:程序中含有输入语句,运行时将会停留在另一窗口中等待 输入数据。 # include"stdio.h" main ( ) { int r, s ; scanf (" %d ",&r) ; s= r*r; printf (" s = %d ", s) ; } 3.在Turbo C中调试并修改以下C程序中的错误。
C语言程序设计实验·设计·习题
三、实验内容
1.改正书中所给的相关程序的错误。 2.程序填空。 (1)按程序中注释的要求填输出语句。 (2)要求运行时必须按如下格式输入数据,请填空。 3.程序编译成功,只是说明没有语法错误,但并不一定能得出 正确结果,因为有可能存在编程逻辑错误。这时,我们需要跟踪变量、 调试程序,找出问题所在。调试的一般方法有: (1)单步跟踪:选择Run菜单下的Step命令,也可以直接按快捷键 F7(可跟踪进函数、过程)或快捷键F8,这样可以每条语句单独运行。 (2)运行至光标处:先将光标移至目标语句,然后选择Run菜单下 的Go to Cursor命令,或按快捷键F4,这样可以连续运行从开始到光 标处的一段程序。
《C语言程序设计》课程教学大纲

《C语言程序设计》课程教学大纲适用专业信息与计算科学总学时90学分 4一、编写说明(一)本课程的性质、地位和作用本课程属于信息与计算科学的专业课,C程序设计语言的语法规则、数据类型、数据运算、语句、函数、指针、程序结构等方面的学习,掌握应用C语言进行程序设计的技能,为今后进一步学习程序开发以及科学与工程计算的软件开发奠定一个良好的基础。
(二)本大纲制定的依据根据本专业人才的培养目标和人才培养规格所需要的基本理论和基本技能的要求,根据本课程的教学性质、条件和教学实践而制定。
(三)大纲内容选编原则与要求通过对本课程的学习,使学生掌握基本概念、基本原理、基本知识和实际操作能力,重点落实到“用”上。
在对大纲内容选编时,在注重基本原理、基本概念的同时,特别强调实用系统的设计与开发,做到了理论与实践有效结合。
(四)实践环节实验1:C程序的运行环境和运行一个C程序的方法, 2学时主要内容与要求:了解所用的计算机系统的基本操作方法,学会独立使用该系统;了解在该系统上如何编辑、编译、连接和运行一个C程序;通过运行简单的C程序,初步了解C 程序的特点。
实验2:简单的C程序设计,2学时主要内容与要求:掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法;掌握不同类型数值之间赋值的规律;学会使用C的有关算术运算符,以及包含这些运算符的表达式;掌握赋值语句的使用方法;掌握各种类型数据的输入输出方法,能正确使用各种格式转换符。
实验3:逻辑结构、循环控制程序设计,4学时主要内容与要求:了解C语言表示逻辑量的方法;学会正确的使用逻辑运算符和逻辑表达式;熟练掌握if语句和switch语句;熟悉掌握用while 语句,do while语句和for语句实现循环的方法;掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等);进一步学习调试程序。
实验4:数组、函数,4学时主要内容与要求:掌握一维数组和二维数组的定义、赋值和输入输出方法;掌握字符数组和字符串函数的使用;掌握与数组有关的算法(特别是排序算法);掌握定义函数的方法;掌握函数实参与形参的对应关系以及“值传递”的方式;掌握函数的嵌套调用和递归调用的方法;掌握全局变量和局部变量,动态变量、静态变量的概念和使用方法;学习对多文件程序的编译和运行。
实验5__差热、热重

实验5 热重、差热分析实验一.实验目的与基本要求1.在固相反应中,通过对材料基本性质的了解,利用其基本性质参数,试设计出一条合理的温度曲线,利用综合热分析仪(ZRY-1P、ZRY-2P)对其进行测试分析,通过对比,得到最优烧结方案。
2.理解热重分析和差热分析的基本原理。
3.了解高温综合热分析仪(ZRY-2P)的组成及组成各系统的基本工作原理。
4.掌握高温综合热分析仪的具体测量方法。
5.当各种固体氧化物、盐类发生熔融、相变、分解、化合、脱水、凝固、蒸发、升华等特定过程时,对其进行热重分析和差热分析。
6.对实验数据进行处理,根据得到的一系列热重曲线(TG)、微分热重曲线(DTG)和差热曲线(DTA),对物质发生的具体过程进行热分析。
二.实验原理与温度曲线的设计固相反应是一系列合金、传统硅酸盐材料以及新型无机功能材料生产过程中的基础反应。
固相反应是固体参与直接化学反应并起化学变化,同时至少在固体内部或外部的一个过程中起控制作用的反应。
固相反应除固体间的反应外也包括有气、液相参与的反应。
例如金属氧化、碳酸盐、硝酸盐和草酸盐等的热分解反应、粘土矿物的脱水反应以及煤的干馏等反应。
固相反应的共同特点有:首先,固体质点(原子、离子或分子)间具有很大的作用键力,故固态物质的反应活性通常较低,速度较慢。
其次,在低温时固体在化学上一般是不活泼的,因而固相反应通常需在高温下进行。
而且由于反应发生在非均一系统,传热和传质过程都对反应速度有重要影响。
而伴随反应的进行,反应物和产物的物理化学性质将会变化,并导致固体内部温度和反应物浓度分布及其物性的变化,这都可能对传热、传质和化学反应过程产生影响。
在具体的反应中为了得到预定的产物,使反应向着希望的方向进行,各种固体氧化物、盐类发生熔融、相变、分解、化合、脱水、凝固、蒸发、升华等特定过程需要适当的温度和持续时间,在对具体反应物基本性质的了解,利用其基本性质参数的基础上,试设计出一条适宜的温度曲线,利用高温综合热分析仪(ZRY-2P)对其进行测试,通过对实验结果的分析比较,得到最优温度方案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5 循环程序设计(二)
一、实验目的
1、熟练掌握for语句的使用。
2、熟练掌握break语句与continue语句的使用。
3、能够用循环实现一些常用算法。
4、循环嵌套的应用。
二、实验内容及实验步骤
1、s=1!+2!+3!+4!+5!+6!+7!+8!+9!+10!。
2、求100-200间的全部素数。
3、有一分数序列
2/1 3/2 5/3 8/5 13/8 21/3 ……
求出这个数列的前20项之和。
4、打印以下图案:
1)
*
* * *
* * * * *
* * * * ** *
2)
* * * * * * *
* * * * *
* * *
*
3)把上面的图案行列改变。
4)将图案形状改变。
以上程序都要调试运行,并检查结果的正确与否。
选做:联系实际自己编写一个循环结构程序(查资料)。
三、预习内容
理论第6章。
四、实验讨论
1、for(表达式1;表达式2;表达式3)语句中的三个表达式通常表示的意义。
2、循环嵌套中break 语句与continue 语句的作用域。
五、实验报告要求:
写明实验目的、实验内容与步骤,写出程序的代码。