实验答案--函数
MATLAB实验答案(桂电)
实验一 MATLAB入门(1)1.实验目的:(1)了解MATLAB的体系结构与特点,熟悉其集成开发环境。
(2)熟悉MATLAB界面窗口的功能和使用方法。
(3)熟悉MATLAB的帮助系统及使用方法。
(4)了解MATLAB的的数据类型、基本形式和数组的产生方法。
(5)掌握MATLAB基本的数学运算操作。
2.实验原理(1)MATLAB简介MATLAB是美国MathWorks公司开发的高性能的科学与工程计算软件。
它在数值计算、自动控制、信号处理、神经网络、优化计算、小波分析、图像处理等领域有着广泛的用途。
近年来, MATLAB在国内高等院校、科研院所的应用逐渐普及,成为广大科研、工程技术人员必备的工具之一。
MATLAB具有矩阵和数组运算方便、编程效率极高、易学易用、可扩充性强和移植性好等优点,俗称为“草稿纸式的科学计算语言”。
它把工程技术人员从繁琐的程序代码编写工作中解放出来,可以快速地验证自己的模型和算法。
经过几十年的扩充和完善,MATLAB已经发展成为集科学计算、可视化和编程于一体的高性能的科学计算语言和软件开发环境,整套软件由MATLAB开发环境、MATLAB语言、MATLAB数学函数库、MATLAB图形处理系统和MATLAB应用程序接口(API)等五大部分组成。
MATLAB的主要特点包括强大的计算能力(尤其是矩阵计算能力)、方便的绘图功能及仿真能力、极高的编程效率。
另外,MATLAB还附带了大量的专用工具箱,用于解决各种特定领域的问题。
通过学习软件的基本操作及其编程方法,体会和逐步掌握它在矩阵运算、信号处理等方面的功能及其具体应用。
通过本课程实验的学习,要求学生初步掌握MATLAB的使用方法,初步掌握M文件的编写和运行方法,初步将MATLAB运用于数字信号处理中。
循序渐进地培养学生运用所学知识分析和解决问题的能力。
(2)MATLAB的工作界面(Desktop)与操作MATLAB 安装成功后,第一次启动时,主界面如下图(不同版本可能有差异)所示:其中① 是命令窗口(Command Window ),是MATLAB 的主窗口,默认位于MATLAB界面的右侧,用于输入命令、运行命令并显示运行结果。
《C语言与程序设计》实验06---函数
实验六函数一、实验目的1. 熟练掌握函数的定义、函数的类型和返回值。
2. 熟练掌握形式参数与实际参数、参数值的传递。
3. 掌握函数的嵌套调用与递归调用。
4.学会使用指向函数的指针变量。
5.了解指向指针的指针的概念及带参数的main函数。
6. 掌握局部变量和全局变量。
7. 掌握变量的存储类型。
8. 了解内部函数和外部函数。
二、实验学时:8课时三、预习知识1.标准库函数标准库函数是C系统提供的,这些库函数定义了一些基本的、常用的功能,用户可以使用这些库函数,但是在使用库函数之前需要用预编译命令# include将该库函数所在的头文件包含进来。
2.自定义函数定义函数一般有两种形式形式1:存储类型类型符函数名(类型符形参1,类型符形参2 ,… ) { 说明语句执行语句}形式2:存储类型类型符函数名(形参1,形参2 ,……)形参类型说明{ 说明语句执行语句}说明:①形参表中即使没有参数,函数名后的一对圆括号也不能省略。
②函数名前的类型符是用来说明函数返回值的数据类型(也作为函数的数据类型) 。
当函数值为整型时,类型符可以省略。
③当函数只完成某一特定操作不需要返回值时,可用类型标识符 void 说明,将函数定义成空类型。
④C 规定:不允许在一个函数内部再定义另外一个函数,即函数不允许嵌套定义。
⑤函数的存储类型:函数的存储类型有 extern 和 static 两种。
extern 型的函数除了可以被本程序中其它函数调用外,还可以被其它文件中的函数调用,这种函数称为外部函数,如果定义函数时省略 extern ,则隐含为外部函数。
static 型的函数只能被本源程序文件中的函数调用,称为内部函数(静态函数)。
3.函数的参数(1)在定义函数时函数名后面括号中的变量称为形参(形式参数),如果有两个以上形参,形参之间以逗号分隔。
形参是函数的内部变量,只在函数内部才有意义。
在未出现函数调用时,形参不占内存。
对每个形参必须指明其名字和数据类型。
c语言上机实验题及参考答案
5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}
C语言程序设计实验指导含答案
C语言程序设计实验指导含答案实验一:C语言程序设计基础实验内容:本实验主要以C语言的基础语法为主,通过一些简单的示例和练习来帮助学生熟悉C语言的基本概念和语法规则。
实验步骤:1. 编写一个简单的C程序,输出"Hello, World!"。
要求程序能够顺利编译并执行。
答案:#include <stdio.h>int main(){printf("Hello, World!");return 0;}2. 基于上一题的程序,修改代码,要求程序输入一个整数,并将其乘以2输出。
答案:#include <stdio.h>int main(){int num;printf("请输入一个整数:");scanf("%d", &num);printf("乘以2的结果为:%d", num * 2);return 0;}3. 编写一个C程序,输入一个圆的半径,计算并输出其面积和周长。
要求保留2位小数。
答案:#include <stdio.h>#define PI 3.14159int main(){float radius;printf("请输入圆的半径:");scanf("%f", &radius);float area = PI * radius * radius;float circumference = 2 * PI * radius;printf("圆的面积为:%.2f\n", area);printf("圆的周长为:%.2f\n", circumference);return 0;}实验二:循环和判断语句实验内容:本实验主要通过不同的练习来帮助学生熟悉和掌握C语言中的循环和判断语句的使用方法。
C语言实验5-8答案(函数与数组)
任务
1.fact(j-1)*j
2.gcd(n,m%n)
m<n
3.//for(j=0;j<=n-i;j++)
//printf("");//删除这两行,因为顶格输出,不要空行了。
y==1||y==x
z=c(x-1,y-1)+c(x-1,y)
4.程序代码如下:
#include<stdio.h>
fib(int n)
#include <stdio.h>
main( )
{double fun(int m);//先调用再定义,且不是能缺省的int型,请加上函数说明。
int m;
printf("\n input m:");
scanf("%d",&m);
printf("\n t= %12.10lf \n",fun(m));
j=2
j—
i+j==2
输出为:a=13,b=14
4.i=1
x[i-1]
5.m<1000
m/10%10或m/10-x*10
a[i]=m
m<i
输出结果为:153 370 371 407
6.a
a
sum/n
x[i]<ave
任务
1.‘\0’
str1[i]-str2[i]
2.c[k]=a[i++];
c[k]=b[j++];
return yes;
}
main( )
{
int n;
scanf("%d",&n);
C语言在线实验第5次(第七章函数)-题目与答案
第五次实验题目-第七章函数教学目标31.一元二次方程的系数:a、b、c由主函数输入,编写函数求方程的根。
#include <stdio.h>#include <math.h>void root(double a, double b, double c){ double delta,x1,x2,m,n;if (fabs(a) <= 1e-6){if (fabs(b) <= 1e-6)puts("Not an equation");elseprintf("x=%.2lf",-c/b);return;}else{delta=b*b - 4*a*c;m = -b / (2*a);n = sqrt(fabs(delta)) / (2*a);x1 = m + n;x2 = m - n;if (fabs(delta) <= 1e-6)printf("x1=%.2lf, x2=%.2lf", x1, x1);else if (delta < 0)printf("x1=%.2lf+%.2lfi, x2=%.2lf-%.2lfi",m,n,m,n);elseprintf("x1=%.2lf, x2=%.2lf", x1, x2);}}int main( ){ double a,b,c;scanf("%lf%lf%lf",&a,&b,&c);root(a,b,c);return 0;}教学目标32.输入一串字符,统计其中英文字母的个数,编写统计英文字母个数的函数。
#include<stdio.h>int numberOfLetter(char str[]) {int i=0;int num = 0;//统计字母个数while (str[i]!=’\0’) {if ((str[i]>='A'&& str[i]<='Z')||( str[i]>='a'&& str[i]<='z')) num++;i++;}return num;}int main( ) {char str[100];int letterNum;printf("Enter a string: ");gets(str);letterNum = numberOfLetter(str);printf("Number of letters is %d.\n", letterNum);return 0;}教学目标33. 求100以内所有素数的和。
济南大学c语言实验答案(DOC)
实验2 顺序结构程序设计1. 编写程序,从键盘输入一个大写字母,将它转换为对应的小写字母后输出。
参考程序:#include "stdio.h"void main(){char ch;printf(“\nPlease input a capital character:”);scanf(“%c”,&ch);ch=ch+32;printf(“\nThe small letter is %c”,ch);}2.编写程序,输入圆半径r ,求圆周长、圆面积、圆球体积。
参考程序:#include <stdio.h>#include <math.h>#define PI 3.14void main(){float r,c,area,v;printf(“\nPlease input the r:”);scanf(“%f”,&r);c=2*PI*r;area=PI*r*r;v=4.0/3*PI*pow(r,3);printf(“\nThe circle’s perimeter is %.2f”,c);printf(“\nT he circle’s area is %.2f”,area;printf(“\nThe circle’s volume is %.2f”,v);}3. 输入一个华氏温度,要求输出摄氏温度。
公式为:()3295-=F c 输出要有文字说明,取2位小数。
参考程序:#include <stdio.h>void main(){float f,c;printf(“\nPlease input a F temperature:”);scanf(“%f ”,&f);c=5.0/9*(f-32);printf(“\nThe temperature is %.2f ”,c);}4. 有3个电阻r1、r2、r3并联,编写程序计算并输出并联后的电阻r 。
实验6 函数 习题及答案
(2)a2.cppe "stdio.h"
int fun(int num)
{
int k=1;
do
{
k*=num %10;/
num/=10;
}while(num);
return(k);
}
void main()
{
int n=26;
printf("%d\n",fun(n));
#include "stdio.h"
int swap(int a,int b)
{
int c,s;
c=a;
a=b;
b=c;
s=a+b;
return s;
}
void main()
{
int a,b,s;
a=3;b=4;
s=swap(a,b);
printf("a=%d b=%d s=%d\n",a,b,s);
{
flag=1;
t[i++]=c;
}
else if(flag)
{
t[i]='\0';
printf("decimal number %d:\n",htoi(t));
printf("continue or not(Y/N)?");
c=getchar();
if(c=='N' || c=='n')
flag1=0;
}
(4)b4.cpp
程序说明:在主函数中读入一字符串,再读入一字符,然后调用函数dele在字符串中查找并删除该字符,最后输出该字符串。
#include "stdio.h"
C语言实验报告 实验三 参考答案
实验十 参考答案(指针)三、实验内容( 按要求完善或设计以下程序,并调试分析运行结果)1. 程序填空题 给定程序BLACK10-1.C 中,函数fun 的功能是:将形参n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n 传回所指变量。
例如,输入一个数:27638496,新的数:为739。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
【解题思路】第一处:t 是通过取模的方式来得到*n 的个位数字,所以应填:10。
第二处:判断是否是奇数,所以应填:0。
第三处:最后通形参n 来返回新数x ,所以应填:x 。
2. 程序改错题 给定程序MODI10-1.C 中函数fun 的功能是: 计算n 的5次方的值(规定n 的值大于2、小于8),通过形参指针传回主函数;并计算该值的个位、十位、百位上数字之和作为函数值返回。
例如,7的5次方是16807, 其低3位数的和值是15。
【解题思路】第一处:变量d 的初始值应为1。
第二处:整除的符号是 /。
3. 程序设计题 请编写函数fun ,它的功能是:求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。
例如,若 x 中的值为: 35,则有 4 个数符合要求,它们是: 1, 5, 7, 35。
【解题思路】本题是求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。
【参考答案】void fun ( int x, int pp[], int *n ){ int i; *n=0;for(i=1; i <= x; i++)if((x % i== 0) && (i % 2)) pp[(*n)++]=i;}4. 程序填空题 给定程序中,函数fun 的功能是:找出N ×N 矩阵中每列元素中的最大值,并按顺序依次存放于形参b 所指的一维数组中。
实验3 函数的极值以及符号表达式的计算-答案
实验3 函数的极值以及符号表达式的计算-答案1、求函数)sin()(t t e t f t -=在[0,1]内的最小值点以及最小值。
编辑ff2.m 文件:function f=ff(t)f=exp(t)-t*sin(t);调用函数>> [t,favl]=fminbnd('ff',0,1)t =6.6107e-005favl =1.00012、对以下表达式进行因式分解,然后再将分解的结果进行展开,检查因式分解结果是否正确。
(1)12234++++x x x x(2)6555234-++-x x x x(1)>> syms x>> f=x^4+x^3+2*x^2+x+1;>> s=factor(f)s =(x^2+x+1)*(x^2+1)>> expand(s)ans =x^4+x^3+2*x^2+x+1(2)>> syms x>> f= x^4-5*x^3+5*x^2+5*x-6;>> s=factor(f)s =(x-1)*(x-2)*(x-3)*(x+1)>> expand(s)ans =x^4-5*x^3+5*x^2+5*x-63、对以下表达式进行化简。
(1)123842+++x x x(2)x x 22sin cos 2-(1)>> syms x>> f=(4*x^2+8*x+3)/(2*x+1);>> s=simplify(f)s =2*x+3(2)>> syms x>> f=2*cos(x)^2-sin(x)^2;>> s=simplify(f)s =3*cos(x)^2-14、求下列函数的极限。
(1)4586lim 224+-+-→x x x x x (2)x x x /)sin(lim 0→ (1)>> syms x>> f=(x^2-6*x+8)/(x^2-5*x+4);>> limit(f,x,4)ans =2/3(2)>> syms x>> limit(sin(x)/x,x,0)ans =15、 首先作出函数)/1cos(x y =在区[-1,-1e-6]区间上的图形,观测图形在0=x 附近的形状,判断)/1cos(x y =函数在0=x 极限的存在性。
C语言程序设计实验六函数答案《西北民大电气学院》
实验六函数一,实验目的:1,掌握定义函数的方法.2,掌握函数实参与形参的对应关系,以及"值传递"的方式.3,掌握函数的嵌套调用和递归调用的方法.4,掌握全局变量和局部变量动态变量,静态变量的概念和使用方法.二,实验准备:1,复习函数调用的基本理论知识.2,复习函数的嵌套调用和递归调用的方法.3,复习全局变量,局部变量;静态变量,动态变量;外部变量等概念和具体使用. 4,源程序.三,实验步骤及内容:1,运行程序并回答问题(1)程序main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n")}void print_message(){ printf("Good Friend! \n");}void play(n)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}}问题:运行后出现什么错误为什么应如何修改请上机调试.修改:main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n");(缺少分号)}void print_message(){ printf("Good Friend! \n");}play(n)(原先void的与声明类型不同)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}getch();}运行结果(2)以下程序用于计算1+2+3+4+5.main(){ int i,sum;for(i=1;i<=5;++i)sum=add(i);printf("sum=%d\n",sum);getch();}add (a)int a;{static int s=0;s=s+a;return(s);}运行结果:问题:此程序能否得到正确结果为什么请在不增加语句的条件下,修改程序并上机调试.(3)程序int x=567,y=890;main(){ printf("x=%d,y=%d\n",x,y);}运行结果:问题:运行程序后出现什么错误为什么如何修改答:定义位置出错,y的定义在主函数之后了,将y的定义改在和x一样的位置处。
C语言程序设计实验五 参考答案
答案:
#include<stdio.h>
void main()
{
int i,j,num=0;
for(i=3;i<=1000;i++)
{
for(j=2;j<=1000;j++)
if(i%2==0)
break;
5-4从键盘输入一个整数n,计算2n+1与++n之和。要求计算两数之和用函数实现。
答案:
#include<stdio.h>
void main()
{
int a;
int sum(int n);
printf("input n:\n");
scanf("%d",&a);
sum(a);
}
int sum(int n)
if(i%2!=0)
{
printf("%5d",i);
num++;
if(num%10==0)
printf("\n");
}
}
printf("\n");
}
*************************************************************************************************************实验三*******************************************
c语言程序设计实验五参考答案实验解答实验五参考答案编程语言c语言吧c语言答案
实验4-函数
实验4 函数程序填空1.普通参数本题分值:4题目描述:输入日期的年份和月份,求该月有多少天。
要求编写函数int daynum(int year,int month),求出以year为年份、以month为月份的某个月的天数。
以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。
代码://通过日期求某月的天数。
#include<iostream>using namespace std;int main(){int daynum(int year,int month);int y,m,d;cin>>y>>m;if(y<1900 || y>=3000 || m<1 || m>12){cout<<"输入错误!"<<endl;return 0;}d=daynum(__(1)__); //以y、m作实参调用函数,求出该月的天数cout<<"此月的天数为"<<d<<endl;return 0;}int daynum(int year,int month){int days;switch(month){case 1:case 3:case 5:case 7:case 8:case 10:case 12: days=31; break;case 4:case 6:case 9:case 11: days=30; break;case 2: if(year%4==0&&year%100!=0 || year%400==0)days=29;elsedays=28;break;}return __(2)__;}答案:(1) y,m(2) days每空分值:2参考答案:yx3-t1.cpp2.字符数组参数本题分值:4题目描述:编写一个函数,用来求字符串s的任意子串。
C语言实验报告 实验八 参考答案
实验七八 函 数(一) 参考答案1.请编写程序sy8-1.cpp ,要求:(1)设计一个fun 函数用来计算并输出n (包括n )以内能被5 或9 整除的所有自然数的倒数之和。
(2)在主函数中输入数据,调用fun 函数,输出结果。
例如,若主函数从键盘给n 输入20后,则输出为s=0.583333。
【解题思路】用循环穷举1~n 之间各数,若余5等于0或余9等于0,则将其表示为倒数并累加即可。
注意分式若需要得到实数结果则必须至少有一个操作数是实数类型。
【参考答案】#include <stdio.h>double fun(int n){ double s=0;int i;for(i=1;i<=m;i++)if(i%5==0||i%9==0)s=s+1.0/i;return s;}main( ){ int n;double s;printf("\nInput n: ");scanf("%d",&n);s=fun(n);printf("s=%f\nlf",s);}2.请编写程序sy8-2.cpp ,要求:(1)设计一个fun 函数用来计算下列多项式的值。
(2)在主函数中输入数据,调用fun 函数,输出结果。
例如:若n 的值为11时,函数的值为1.83333【解题思路】根据多项式各项的变化规律可以看出各项的分子为常量1,分母是从1到n 累加和。
【参考答案】#include <stdio.h>float fun(int n){ float sum=0,s=0; //sum 存多项式的累加和,s 存分母的累加和int i;for(i=1;i<=n;i++){ s=s+i; //先求分母的累加sum=sum+1/s;}return sum;}main()n s ⋯++++⋯++++++=321132112111{int n; float s;printf("\nPlease enter n:");scanf("%d", &n);s = fun(n);printf("the result is: %f\n", s);}3.请编写程序sy8-3.cpp,要求:(1)设计一个fun函数,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。
高等数学(第三版)各章实验作业题答案
1. 作出函数[]53()3123,2,2f x x x x x =+-+∈-的图像.第1题图2. 求下列各极限.(1)1lim 1nn n →∞⎛⎫- ⎪⎝⎭; (2)sin lim x x x →∞;(3)0sin lim x x x →; (4)10lim x x e +→.解(1)11lim 1enn n →∞⎛⎫-= ⎪⎝⎭; (2)sin lim 0x x x →∞=;(3)0sin lim 1x xx →=; (4)12lim e x x e →3. 求方程20.2 1.70x x --=的近似解(精确到0.0001). 解 1 1.2077x ≈-,2 1.4077x ≈. 4. 探究高级计算器的其他功能.(略)1. 求函数3(21)y x x =-的导数; 操作:在命令窗口中输入:>> syms xy=x^3*(2*x -1); dy=diff(y) 按Enter 键,显示:dy = 3*x^2*(2*x -1)+2*x^3 继续输入:>> simplify(dy) % 将导数化简 按Enter 键,显示: ans =8*x^3-3*x^2即 3283y x x '=-. 2. 求函数()ln 1y x x =-+的二阶导数; 操作:在命令窗口中输入: >> syms xy=1-log(1+x); dy=diff(y,x,2) 按Enter 键,显示: dy = 1/(1+x)^2即 21(1)y x ''=+. 3.函数4322341y x x x x =-+-+在区间[-3,2]上的最小值. 操作:在命令窗口中输入:>>x=fminbnd('x^4-2*x^3+3*x^2-4*x+1',-3,2) y=x^4-2*x^3+3*x^2-4*x+1 按Enter 键,显示: x =1 y =-11.求下列不定积分(1)在命令窗口中输入: >> syms xint(x/(sqrt(x^2+1)),x)按键Enter 键,显示结果: ans = (x^2+1)^(1/2)即c +.(2)在命令窗口中输入: >> syms xint(x^3*cos(x))按键Enter 键,显示结果:ans =x^3*sin(x)+3*x^2*cos(x)-6*cos(x)-6*x*sin(x) 即332cos =sin 3cos 6cos 6sin x xdx x x x x x x x c +--+⎰. 2.求下列定积分(1)在命令窗口中输入: >> int((-3*x+2)^10,x,0,1) 点击Enter 键,显示结果: ans = 683/11 即1100683(-3+2)d =11x x ⎰. (2)在命令窗口中输入: >> int(x*sin(x),x,0,pi/2)点击Enter 键,显示结果: ans = 1 即 π20sin d =1x x x ⎰.3.求广义积分0e d x x x -∞⎰.操作:在命令窗口中输入: >>int(x*exp(x),x,-inf,0)按Enter 键,显示结果: ans =-1 即e d =1xx x -∞-⎰.1. 230y y y '''++=.操作:在命令窗口中输入: >> syms x y;y=dsolve('D2y -4*Dy -5*y=0','x') 显示:y =C1*exp(5*x)+C2*exp(-x)即满足所给初始条件的特解为:512xx y c e c e -=-.2. 232sin xy y e x '''-=.操作:在命令窗口中输入: >> syms x y;y=dsolve('D2y -3*Dy=2*exp(3*x)*sin(x)','x') 显示:y = -3/5*exp(3*x)*cos(x)-1/5*exp(3*x)*sin(x)+1/3*exp(x)^3*C1+C2即满足所给初始条件的特解为:33312311cos sin 553xxxy e x e x c e c =--++. 整理得:33213cos +sin 5xxy e x x ce c =-++()(令113c c =)3. +cos x y y y e x '''+=+,00x y ==,032x y ='=.操作:在命令窗口中输入: >> syms x y;y=dsolve('D2y+Dy+y=exp(x)+cos(x)','y(0)=0', 'Dy(0)=3/2', 'x') 显示:y = -1/3*exp(-1/2*x)*cos(1/2*3^(1/2)*x)+1/3*exp(x)+sin(x)即满足所给初始条件的特解为:211cos()sin 323x xy e e x -=-++.1. 绘制平面曲线ln y x =. 操作:在命令窗口中输入: >> x=1:0.02: exp(2); y=log(x); plot(x,y);按Enter 键,显示下图:2. 绘制空间曲面2232z x y =-. 操作:在命令窗口输入 >>[x,y]=meshgrid(-4:0.5:4); z=-3*x.^2-2*y.^2; surf(x,y,z)按Enter 键,显示下图:3. 绘制空间曲线23,23.t t t x e y e z e ---⎧=⎪⎪=⎨⎪=⎪⎩操作:在命令窗口输入>>t=0:0.01:1;x=exp(-t);y=exp(-2*t)/4;z=3*exp(-3*t)/9;plot3(x,y,z)按Enter键,显示下图:实验6作业题1. 求函数cos z xy =的偏导数. 操作:在命令窗口中输入:>> dz_dx=diff('cos(x*y)', 'x ') 显示dz_dx = -sin(x*y)*y 继续输入:>> dz_dy=diff('cos(x*y)', 'y ') 显示:dz_dy =-sin(x*y)*x即sin zx xy x∂=-∂, sin z x xy y ∂=-∂2. 计算函数23y x y =-的极值.操作:在matlab 中依次选择“File\New\M -File ”,在弹出的M 文件编辑窗口中在命令窗口中输入:clear all;clc syms x y;z=x^3-6*x-y^3+3*y;dz_dx=diff(z,x); %计算z 对x 的偏导数 dz_dy=diff(z,y); %计算z 对y 的偏导数 [x0,y0]=solve(dz_dx,dz_dy); %求驻点x0,y0A_=diff(z,x,2); %计算z 对x 的二阶偏导数B_=diff(diff(z,x),y); %计算z 对x,y 的二阶混合偏导数 C_=diff(z,y,2); %计算z 对y 的二阶偏导数 x0=double(x0); %数据转换 y0=double(y0);n=length(x0); %计算x0中元素的个数 for i=1:nA_x=subs(A_, x,x0(i)); %把x=x0(i)(即x0的第i 个元素值)代入z 对x 的二阶偏导数A=subs(A_x, y,y0(i)); %继续把y=y0(i)(即y0的第i 个元素值)代入z 对x 的二阶偏导数,得到AB_x=subs(B_, x,x0(i)); %把x=x0(i)代入z 对x 、y 的二阶混合偏导数 B=subs(B_x, y,y0(i)); %继续把y=y0(i)代入二阶混合偏导数,得到B C_x=subs(C_, x,x0(i)); %把x=x0(i)代入z 对y 的二阶偏导数C=subs(C_x, y,y0(i)); %继续把y=y0(i)代入z 对y 的二阶偏导数,得到C D=A*C-B^2;text=['原函数在(',num2str(x0(i)), ', ',num2str(y0(i)), ')处' ]; if D>0fm=subs(x^3-6*x-y^3+3*y,{x,y},{x0(i),y0(i)}); %求函数值 if A>0disp([text, '有极小值',num2str(fm)]) %在命令窗口中输出 elsedisp([text, '有极大值',num2str(fm)])end end if D==0disp([text, '的极值情况还不确定,还需另作讨论' ]) end end保存后,选择M 文件编辑窗口中的“Debug\run ”,显示如下结果: 原函数在(1.4142,-1)处有极小值-7.6569 原函数在(-1.4142,1)处有极大值7.65693. 计算(2)d d Dx y x y -⎰⎰,D :顶点分别为(0,0),(1,1)和(0,1)的三角形闭区域;操作:在命令窗口中输入: >>syms x y;S=int(int(2*x-y,y,0,1-x),x,0,1) 显示: S=1/6即:二重积分1(2)d d =6Dx y x y -⎰⎰.实验7作业题1. 将函数xx f -=11)(展开为幂级数,写出展开至6次幂项. 操作:在命令窗口中输入: >> clear;clc syms x; f=1/(1-2*x); taylor(f,7,x) 显示:ans = 1+2*x+4*x^2+8*x^3+16*x^4+32*x^5+64*x^6即65432643216842111x x x x x x x ++++++=-. 2. 求函数2()tf t e =的拉氏变换.操作:在命令窗口中输入: >> clear;clc syms x;laplace(exp(2*t)) 显示: ans = 1/(s -2)即 21)(2-=s e L t. 3.求函数22()56s F s s s +=-+的拉氏逆变换.操作:在命令窗口中输入: >>syms silaplace((s+2)/(s^2-5*s+6)) 显示:ans =-4*exp(2*t)+5*exp(3*t)即 12256s L s s -+⎡⎤⎢⎥-+⎣⎦234e 5e t t =-+.。
《c语言程序设计》实验指导书答案
《c语言程序设计》实验指导书答案《C语言程序设计》实验指导书答案实验一:C语言环境搭建与基本语法1. 问题:如何在计算机上搭建C语言开发环境?答案:搭建C语言开发环境通常需要安装编译器和集成开发环境(IDE)。
常见的编译器有GCC,而IDE如Visual Studio Code、Code::Blocks等。
安装完成后,配置好编译器路径,即可开始编写和编译C语言程序。
2. 问题:C语言的基本数据类型有哪些?答案:C语言的基本数据类型包括整型(int)、字符型(char)、浮点型(float和double)以及更复杂的结构体(struct)和联合体(union)等。
3. 问题:如何定义一个变量?答案:定义变量的基本语法是:`类型名变量名;`。
例如,定义一个整型变量a:`int a;`。
4. 问题:如何实现变量的输入和输出?答案:使用`scanf`函数进行输入,使用`printf`函数进行输出。
例如,输入一个整数并输出:`scanf("%d", &a); printf("%d", a);`。
实验二:控制结构1. 问题:C语言中的条件语句有哪些?答案:C语言中的条件语句主要有`if`语句和`switch`语句。
2. 问题:如何使用`if`语句?答案:`if`语句的基本语法是:`if (条件) { 语句 }`。
例如,判断一个数是否为正数:`if (a > 0) { printf("正数"); }`。
3. 问题:如何使用`switch`语句?答案:`switch`语句用于多条件分支选择。
基本语法是:`switch (表达式) { case 常量1: 语句1; break; case 常量2: 语句2; break; ... default: 默认语句; }`。
4. 问题:C语言中的循环语句有哪些?答案:C语言中的循环语句主要有`for`循环、`while`循环和`do-while`循环。
c语言程序设计实验指导书答案
c语言程序设计实验指导书答案C语言程序设计实验指导书是帮助学生理解和掌握C语言编程技能的重要工具。
本指导书旨在通过一系列实验,引导学生从基础语法到高级编程技巧,逐步提高编程能力。
以下是一些实验题目和相应的答案示例,以供参考。
实验一:C语言基础语法实验目的:- 熟悉C语言的基本语法结构。
- 掌握变量声明、数据类型和运算符的使用。
实验内容:1. 编写一个程序,输入两个整数,输出它们的和、差、积和商。
实验答案:```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("和是:%d\n", num1 + num2);printf("差是:%d\n", num1 - num2);printf("积是:%d\n", num1 * num2);if (num2 != 0) {printf("商是:%d\n", num1 / num2);} else {printf("除数不能为0。
\n");}return 0;}```实验二:控制结构实验目的:- 掌握条件语句和循环语句的使用。
实验内容:1. 使用循环语句计算1到100的和。
实验答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}printf("1到100的和是:%d\n", sum); return 0;}```实验三:数组和字符串- 掌握数组和字符串的声明、初始化和使用。
实验内容:1. 编写一个程序,输入一个字符串,然后反转该字符串并输出。
[练习]C语言实验七、函数程序设计答案
实验七 函数及程序结构(二)一、实验目的1.掌握函数的嵌套调用和递归调用2.掌握数组做函数参数的用法3.掌握全局变量和局部变量的用法。
?4.掌握变量的存储类别。
?二、实验内容1.[目的]掌握函数的嵌套调用方法。
[题目内容] 编写程序计算cb a 。
要求设计主函数main()读取a 、b 、c 的值,并调用ratio 函数计算a/(b-c)的值。
如果(b-c)=0那么ratio 就不能计算,因此,ratio 函数调用另一个函数dif ,以测试(b-c)的差是否为零,如果b 不等于c ,dif 返回1,否则返回0。
[输入] a 、b 、c 的值[输出] 计算结果[提示] main 函数调用ratio 函数,ratio 函数调用dif 函数。
三个函数平行定义,嵌套调用。
#include <stdio.h>void main(){float ratio(int x,int y ,int z);int dif(int x,int y);int a,b,c;float d;printf("请输入a,b,c:");scanf("%d%d%d",&a,&b,&c);d=ratio(a,b,c);if(d==0.0) printf("b-c 为零。
");else printf("%d/(%d-%d)=%f\n",a,b,c,d);}float ratio(int x,int y ,int z){if(dif(y ,z)==1) return (float)x/(float)(y-z);else return 0.0;}int dif(int x,int y){if(x==y) return 0;else return 1;}2.[目的]利用标准库提供的随机数功能。
[题目内容]编写程序,帮助小学生练习乘法计算。
二年级下册数学实验手册答案苏州专用
二年级下册数学实验手册答案苏州专用1、函数y=kx(k是不为0的常数)是()。
[单选题] *正比例函数(正确答案)一次函数反比例函数二次函数函数2、260°是第()象限角?[单选题] *第一象限第二象限第三象限(正确答案)第四象限3、33、点P(-5,-7)关于原点对称的点的坐标是()[单选题] *A. (-5,-7)B. (5,7)(正确答案)C. (5,-7)D. (7,-5)4、下列各式中能用平方差公式的是()[单选题] *A. (x+y)(y+x)B. (x+y)(y-x)(正确答案)C. (x+y)(-y-x)D. (-x+y)(y-x)5、11.小文买了一支温度计,回家后发现里面有一个小气泡(即不准确了),先拿它在冰箱里试一下,在标准温度是零下7℃时,显示为℃,在36℃的温水中,显示为32℃,那么用这个温度计量得的室外气温是23℃,则室外的实际气温应是()[单选题] *A.27℃(正确答案)B.19℃C.23℃D.不能确定6、43、长度分别为3cm,5cm,7cm,9cm的四根木棒,能搭成(首尾连结)三角形的个数为[单选题] *A.1B.2C.3(正确答案)D.47、1.计算| - 5 + 3|的结果是[单选题] *A. - 2B.2(正确答案)C. - 8D.88、6.已知集合A={0,1,2},则集合B={(x,y)|x≥y,x∈A,y∈A}中元素的个数是( ) [单选题] * A.1B.3C.6(正确答案)D.99、17.若a与﹣2互为相反数,则a的值是()[单选题] *A.﹣2B.C.D.2(正确答案)10、5.下列说法中正确的是()[单选题] *A.没有最大的正数,但有最大的负数B.没有最小的负数,但有最小的正数C.没有最小的有理数,也没有最大的有理数(正确答案)D.有最小的自然数,也有最小的整数11、计算-(a-b)3(b-a)2的结果为( ) [单选题] *A. -(b-a)?B. -(b+a)?C. (a-b)?D. (b-a)?(正确答案)12、(正确答案)函数y=4x+3的定义域是()。
MATLAB全部实验及答案
3)A^3和A.^3
4)[A,B]和[A([1,3],:);B^2]
2、设有矩阵A和B,A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25],B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]
使用Windows的“开始”菜单。
运行MATLAB系统的启动程序matlab.exe。
利用桌面上的快捷方式。
MATLAB主窗口
命令窗口(Command Window)
当前目录窗口(Current Directory)
工作空间窗口(Workspace)
命令历史窗口(Command History)
2、下列符号中哪些是MATLAB的合法变量名?用给变量赋值的方法在机器上验证你的答案(3vars、global、help、My_exp、sin、X+Y、_input、E-4、AbCd、AB_C_。)
6、利用MATLAB提供的rand函数和圆整函数随机生成4X3整数矩阵A,进行如下操作
1)A各列元素的平均值和中值
平均值
>> A_mean=mean(A)
A_mean =
0.5000 0.7500 0.7500
中值
>> A_median=median(A)
A_median =
0.5000 1.0000 1.0000
整数类型的运算函数
创建逻辑类型数据的函数
MATLAB的逻辑运算
MATLAB的关系运算
格式化字符
三、主要仪器及耗材
计算机
四、实验内容和步骤
1、已知A=[12 34 -4;34 7 87;3 65 7],B=[1 3 -1;2 0 3;3 -2 7],求下列表达式的值:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 编一个带有函数的程序。
在main() 函数中输入一个字符串(长度<20),调用函数fun 将该字符串中的所有字符按ASCII 码升序排序,然后再输出排序后的字符串。
例如,输入edcba,则应输出abcde.。
#include <>#include <>int main(){void fun(char x[],int y);int i;char c[20];printf("Please input chars:\n"); gets(c);i=strlen(c);fun(c,i);return 0;}void fun(char x[],int y){int i,j;char c;for(i=0;i<y-1;i++)for(j=i+1;j<y;j++)if(x[i]>x[j]){ c=x[i]; x[i]=x[j]; x[j]=c; } puts(x);}2. 下面程序的功能是依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串;(如:abcd123efg456变为123456)。
修改该程序,要求将红色部分用一个函数来实现。
#i nclude ""mai n(){ char s[15]; int i,j;scan f("%s",s);for (i=0,j=0; s[i]!='\0'; i++){ s[j]=s[i]; j++; }s[j]='\0';printf("\nThe result:");prin tf("%s",s);}#in clude <> int main() { void fun(char x[]);char s[15];printf("Input chars to fill s[15]:\n"); scanf("%s",s);fun(s);return 0;}void fun(char x[]){int i,j;for(i=0,j=0; x[i]!='\0'; i++) if(x[i]>='0'&&x[i]<='9'){ x[j]=x[i]; j++; }x[j]='\0';puts(x);}3. 编写带有函数的程序(函数名为:int fun(int s[],int *k) ),功能是求出数组的最大元素在数组中的下标并存放在k 所指的存储单元中。
例如:输入如下整数876 675 896 101 301 401 980 431 451 777则输出结果为:6,980。
#include <>void fun(int s[],int *k){int i,max=s[0];for(i=1;i<10;i++)if(max<s[i]){ max=s[i]; *k=i; }}int main(){int a[10]={876,675,896,101,301,401,980,431,451,777};int k;fun(a,&k);printf("%d,%d\n",k,a[6]);return 0;}4. 在main() 函数中,已有一个已排好序的整型数组,今输入一个整数,调用函数fun() ,其功能是按原来排序的规律将它插入数组中。
例如:原来数组的元素依次为4、6、8、41、56、77、102。
若将42 插入数组中,则插入后数组元素依次为4、6、8、41、42、56、77、89、102。
#include <>void fun (int s[],int m){int i,j;for(i=0;;i++)if(s[i]<m&&s[i+1]>m) break;for(j=6;j>i;j--)s[j+1]=s[j];s[i+1]=m;}int main(){int s[8]={4,6,8,41,56,77,102};int i,m;puts("Please input m:");scanf("%d",&m);fun (s,m); for(i=0;i<8;i++) prin tf("%d ",s[i]); putchar('\n'); return 0;}5. 下面程拷贝序的功能是将字符数组s2中的全部字符拷贝到字符数组s1时,’0'也拷贝过去,但’0'后面的字符不拷贝。
修改该程序,要求将红色部分用一个函数来实现。
mai n(){char s1[80],s2[80];int i;sca nf("%s",s2);for(i=0;s2[i]!= ' 0' ;i++)s1[i]= ' 0';printf("s1:%s\n",s1);}#include <>void xp(char s1[],char s2[]) {int i;for(i=0;s2[i]!='\0';i++) s1[i]=s2[i];s1[i]='\0';}int main(){char s1[80],s2[80];puts("Input chars of s2[]:"); gets(s2);xp(s1,s2); printf("s1:%s\n",s1); return 0;}6. 编写带有函数的程序(函数名为:fun()),功能是将ss 所指字符串中下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换,注意下标是从0 开始的)。
例如:输入abbcc45ghNj,则应输出aBbCc45GhN。
#include <>void fun(char x[]){int i;for(i=1;x[i]!='\0';i=i+2) if(x[i]>'a'&&x[i]<'z') x[i]=x[i]-32;}int main(){char ss[80];puts("Input chars to fill ss[]:");gets(ss);fun(ss);puts(ss);return 0;}7. 在main()函数中,先从键盘上输入一个3行3列整型数组的各个元素的值,然后调用函数fun() ,其功能是计算并返回主对角线元素之和。
#include <>int fun(int a[][3]){int i,j,s=O;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==j) s=s+a[i][j];return s;}int mai n(){int i,j,k,a[3][3];puts(" In put 9 numbers to fill a[3][3]:");for(i=0;i<3;i++)for(j=0;j<3;j++)sca nf("%d",&a[i][j]);k=fu n(a);printf(" 主对角线之和=%d",k);return 0;}8. 下面程序的功能是用冒泡法对10个整数按降序进行排序。
修改该程序,要求将红色部分用一个函数来实现。
mai n(){ int a[11],i,j,t;prin tf("I nput 10 numbers:\n");for(i=1;i<11;i++)scan f("%d",&a[i]); prin tf("\n");for(j=1;j<=9;j++)for(i=1;i<=10-j;i++)if(a[i]<a[i+1])for(i=1;i<11;i++)prin tf("%d ",a[i]);}#in elude <>void fun (i nt a[]){int i,j,t;for(j=1;jv=9;j++)for(i=1;i<=10-j;i++) if(a[i]<a[i+1]){ t=a[i]; a[i]=a[i+1]; a[i+1]=t; }}int mai n(){int a[11],i;prin tf("I nput 10 numbers:\n");for(i=1;i<11;i++)scan f("%d",&a[i]);prin tf("\n");fun( a);prin tf("The sorted nu mbers:\n"); for(i=1;i<11;i++)prin tf("%d ",a[i]);putchar('\n');return 0;9. 编写带有函数的程序(函数名为:int fun()),功能是从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。
结果应该是:15 45 51 54#in elude <>int fun(int b[]){int i,j=O;for(i=1;i<=55;i++)if(i%3==0)if(i/10==5||i%10==5){ b[j]=i; j++; }return j;}int mai n(){int a[100],k,m;m=fu n(a);prin tf("The result is:\n");for(k=0;k<m;k++)prin tf("%4d",a[k]);prin tf("\n");return 0;}10. 下面程序的功能是将两个字符串连接起来,不要用strcat函数。
修改该程mai n(){char s1[80],s2[80];int i=0,j;sca nf("%s",s1);scanf( “%s‘ ,s2);while(s1[i]!= ' 0' ) i++;for(j=0; s2[j]!= ' 0';)s1[i++]=s2[j++];prin tf("s1:%s\n",s1);#in elude <>void xp(char s1[],char s2[]){int i=0,j;while(s1[i]!='\0')i++;for(j=0; s2[j]!='\0';)s1[i++]=s2[j++];s1[i]='\0';}int mai n(){char s1[80],s2[80];puts(" In put chars to fill s1[]:");gets(s1);puts(" In put chars to fill s2[]:");gets(s2);xp(s1,s2);puts(s1);return 0;}11. 编写带有函数的程序(函数名为fun ),功能是求出ss 所指字符串中指定字符的个数,并返回此值。