实验6函数习题及答案

实验6函数习题及答案
实验6函数习题及答案

实验6 函数

班级:学号:

姓名:日期:

一、实验目的

(1)掌握定义函数的方法;

(2)掌握函数实参与形参的对应关系,以及“值传递”的方式;

(3)掌握函数的嵌套调用和递归调用的方法;

(4)掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法;

(5)学习对多文件的程序编译和运行。

二、实验内容

1.阅读下面程序,写出程序运行结果,并且上机进行验证。

(1)a1.cpp

变量的虚实耦合,实现的是值传递,是单向传递

#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);

}

(2)a2.cpp

将十进制数26的各位数字相乘

#include "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));

}

(3)a3.cpp

变量的作用域,当在函数内定义了与全局变量同名的局部变量时,全局变量被屏蔽#include "stdio.h"

int a=3,b=5,c;

void f(int b)

{

c=a+b;

printf("%d %d %d\n",a,b,c);

}

void main()

{

int a=8;

f(3);

printf("%d %d %d\n",a,b,c);

}

(4)a4.cpp

递归,将十进制11转换为二进制

#include "stdio.h"

void dtob(int n)

{

int i;

if(n>1)

{

i=n%2;

dtob(n/2);

}

else

i=n;

printf("%d",i);

}

void main()

{

int i=11;

printf("%d->",i);

dtob(i);

printf("(2)\n");

}

(5)a5.cpp

静态变量,求1到4的阶乘

#include "stdio.h"

int f1(int n)

{

static int f=1;

f=f*n;

return(f);

}

void main()

{

int i;

for(i=1;i<=4;i++)

printf("%5d",f1(i));

printf("\n");

}

2.程序填空(根据题意在空白处填入适当的内容,使程序变得完整。并上机进行调试验证)

(1)b1.cpp

程序说明:下面程序将输入的十进制数n 转换为b 进制数,并将转换结果输出。转换的方法是:除b 取余法。

#include "stdio.h"

void transfer(int m,int k)

{

int a[20],i;

for(i=0; m; i++) //当商m为0时,循环结束,否则继续循环

{

a[i]=m % k; //将m对k的余数存放在数字a中

m/=k; //m=m/k,即将m除k的商放在m中

}

for(i--;i>=0;i--)

printf("%d",a[i]);

printf("\n");

}

void main()

{

int b,n;

scanf("%d%d", &b,&n);

transfer(n, b);

}

(2)b2.cpp

程序说明:歌德巴赫猜想指出:任何一个充分大的偶数都可以表示为两个素数之和,例如4=2+2 6=3+3 8=3+5… 50=3+47。下面程序将4-50 之间的所有偶数用两个素数之和表示,判断一个整数是否为素数用函数prime 完成。

#include "stdio.h"

int prime(int x) //判断x是否为素数,如果x为素数,则返回1,否则返回0 {

int k,flag=1;

for(k=2;k<=x/2;k++)

if(x % k==0 )

{

flag=0;

break;

}

return(flag);

}

void main()

{

int m,n;

for(m=4;m<=50;m=m+2)

for(n=2;n

if(prime(n) && prime(m-n)) //如果n和m-n均为素数,则prime(n)和

prime(m-n)返回的值均为1,非零即真

{

printf("%d=%d+%d\n", m,n,m-n);

break;

}

}

(3)b3.cpp

程序说明:用一个一维数组存放10 个学生的成绩,写一个函数求出平均分、最高分和最低分。

#include "stdio.h"

float max=0,min=0;

float average(float score[],int n)

{

int i;

float ave,sum=score[0];

max=min=score[0];

for(i=1;i

{

if(score[i]>max)

max=score[i];

else if( score[i]

min=score[i];

sum=sum+score[i];

}

ave=sum/10;

return ave ;

}

void main()

{

float ave,score[10];

int i;

for(i=0;i<10;i++)

scanf("%f",&score[i]);

ave=average( score,10 ); //如果形参是数组,则调用时实参应该用数组名,实现的是地址传递

printf("max=%6.2f min=%6.2f average=%6.2f\n",max,min,ave);

}

(4)b4.cpp

程序说明:在主函数中读入一字符串,再读入一字符,然后调用函数dele 在字符串中查找并删除该字符,最后输出该字符串。

#include "stdio.h"

#include

void dele(char p[],char ch)

{

int i=0,j;

while( p[i]!='\0')

{

if(p[i]==ch)

for(j=i;p[j]!= '\0';j++)

p[j]=p[j+1];

else

i++;

}

}

void main()

{

char p[80],ch;

scanf("%s",p);

ch=getchar();

scanf("%c",&ch);

dele( p,ch );

printf("%s", p );

}

3.编写程序并上机调试运行之。

(1)写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。

本程序应当准备以下测试数据:17、34、2、1、0。分别运行并检查结果是否正确。

#include

#include

void main()

{

int prime(int);

int n;

printf("\nplease input a integer:");

scanf("%d",&n);

if(prime(n))

printf("\n%d is a prime!",n);

else

printf("\n%d is not a prime!",n);

}

int prime(int n)

{

int i,flag=1;

for(i=2;i<=n/2 && flag==1;i++)

{

if(n%i==0)

flag=0;

}

return(flag);

}

(2)用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数。

把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。

把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。

letter函数用于测试是否字母,longest函数用于返回最长单词的起始位置。

#include

#include

void main()

{

int letter(char);

int longest(char s[]);

int i;

char str[100];

printf("\n input the string:");

gets(str);

printf("The longest word is:");

for(i=longest(str);letter(str[i]);i++)

printf("%c",str[i]);

printf("\n");

}

int letter(char c)

{

if((c>='a' && c<='z') || (c>='A' && c<='Z'))

return(1);

else

return(0);

}

int longest(char s[])

{

int len=0,i,length=0,flag=1,place=0,point; for(i=0;i<=strlen(s);i++)

if(letter(s[i]))

if(flag)

{

point=i;

flag=0;

}

else

len++;

else

{

flag=1;

if(len>=length)

{

length=len;

place=point;

}

len=0;

}

return(place);

}

(3)用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。N 的位数不确定,可以是任意的整数。

#include

void main()

{

void convert(int n);

int number;

printf("input an integer:");

scanf("%d",&number);

printf("output: ");

if(number<0)

{

putchar('-');

number=-number;

}

convert(number);

putchar('\n');

}

void convert(int n)

{

int i;

if((i=n/10)!=0)

convert(i);

putchar(n%10+'0');

}

(4)求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一函数根据求出的最大公约数求最小公倍数。

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

②用全局变量的方法,分别用两个函数求最大公约数和最小公倍数,但其值不由函数带回。将最大公约数和最小公倍数都设置为全局变量,在主函数中输出它们的值。

#include

void main()

{

int hcf(int,int);

int lcd(int,int,int);

int u,v,h,l;

scanf("%d%d",&u,&v);

h=hcf(u,v);

printf("H.C.F=%d\n",h);

l=loc(u,v,h);

printf("L.C.D=%d\n",l);

}

int hcf(int u,int v)

{

int t,r;

if(v>u)

{

t=u;

u=v;

v=t;

}

while((r=u%v)!=0)

{

u=v;

v=r;

}

return(v);

}

int loc(int u,int v,int h)

{

return(u*v/h);

}

(5)写一函数,输入一个十六进制数,输出相应的十进制。#include

#define MAX 100

void main()

{

int htoi(char s[]);

int c,i,flag,flag1;

char t[MAX];

i=0;

flag=0;

flag1=1;

printf("\ninput a HEX number: ");

while((c=getchar())!='\0' && i

{

if((c>='0' && c<='9')||(c>='a' && c<='f')||(c>='A' && c<='F')) {

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;

else

{

flag=0;

i=0;

printf("\ninput a HEX number: ");

}

}

}

}

int htoi(char s[])

{

int i,n;

n=0;

for(i=0;s[i]!='\0';i++)

{

if(s[i]>='0' && s[i]<='9')

n=n*16+s[i]-'0';

if(s[i]>='a' && s[i]<='f')

n=n*16+s[i]-'a'+10;

if(s[i]>='A' && s[i]<='F')

n=n*16+s[i]-'A'+10;

}

return(n);

}

三、预习内容

教材第7章。

实验6 多态性(一)

福建农林大学实验报告 实验6 多态性(一) 一、实验目的和要求 (1)掌握虚函数的定义与使用方法,进一步理解多态性的概念和分类。 (2)了解纯虚函数和抽象类的使用方法。 二、实验内容和原理 1、分析并调试下列程序,回答以下问题:(1)指出抽象类(2)指出虚函数,并说明它的作用(3)每个类的作用是什么?整个程序的作用是什么? 2、使用虚函数编写程序求球体、圆柱体和圆锥的体积,由于球体、圆柱体和圆锥都可以看做由圆继 承而来,所以可以定义圆类作为基类。在圆类中定义数据成员半径和一个求体积的虚函数。由圆类 派生出球体类、圆柱体类和圆锥类,在派生类中对圆类中的虚函数重新定义。编写一个外部函数求 各类形状的总体积。最后在main()函数中构造若干形状,并求它们的体积和。

三、实验环境 1. 硬件:PC机; 2. 软件:Windows操作系统、Visual C++ 6.0 四、算法描述及实验步骤 1、算法描述及步骤如下: (1)根据题目要求编写好程序代码并在VC环境下输入源程序。 (2)检查程序有无错误(包括语法错误和逻辑错误),有则改之。 (3)编译和连接,仔细分析编译信息,如有错误应找出原因并改正之。本题改正后的代码如下: #include const double PI=3.1415; class Shap { public:virtual double Area()=0; }; class Triangle:public Shap { public:Triangle(double h,double w) { H=h; W=w; } double Area() { return 0.5*H*W; } private:double H,W; }; class Circle:public Shap { public:Circle(double r) { R=r; } double Area() { return PI*R*R; } private:double R; }; double Total(Shap*s[],int n) { double sum=0; for(int i=0;i

实验6+过程_函数和程序...

实验6过程、函数和程序包 姓名:学号: 专业:班级: 同组人:无实验日期:2013/7/21 【实验目的与要求】 ?掌握过程的创建与调用 ?掌握PL/SQL函数的编写与调用 ?熟悉程序包的使用 【实验内容与步骤】 6.0.实验准备工作:PL/SQL程序文件的编辑与执行 1.使用文档编辑器编辑以下文件,并保存为aa.sql: 2.以scott身份登录,在SQ L Plus中执行@aa命令运行程序: 注:测试时,文件名请用全名(即包含路径,如:@c:\aa) 给出运行结果:

6.1.存储过程 1.最简单的存储过程编写与执行 (1)创建测试表 drop table Exam_Table; create table Exam_Table( e_id number(5), e_name varchar2(20), e_salary number(8,2) ); (2)创建存储过程 create or replace procedure insert_salary (v_id number,v_name varchar2,v_salary number) is begin insert into Exam_Table values (v_id,v_name,v_salary); commit; dbms_output.put_line('数据插入成功'); end; / (3) 执行(调用)存储过程 exec insert_salary(6,'g',2000); (4)查询执行结果

select * from Exam_Table; 给出执行的最后结果: 2.参数的使用:in/out/in out参数 阅读以下程序,理解不同类型参数使用的不同,运行程序,给出运行结果。 (1) 用两个参数:in ,out 传入一个姓名,输出:某某人你好: create or replace procedure mp(v_in varchar2,v_out out varchar2) is begin v_out:=v_in||'你好'; end; declare v_name varchar2(10); begin mp('scott',v_name); dbms_output.put_line(v_name); end;--输出:scott你好 给出运行结果:

excel基础应用实验报告

Excel电子表格实验报告 姓名(学号):________201302020112____ 年级(专业):_____ 电商1301 ________成绩:________ 实验时间:_______________________ _实验地点:__________________________ _ 实验1-1: 一、实验目的: 掌握使用Excel进行电子表格处理的基本操作,编辑与格式化工作表和单元格。 二、实验内容: 1.在Excel中新建一个空白工作簿,文件名为“学号.xls”,保存在文件夹“实验4”中; 学号姓名性别班级平时成绩期中成绩期末成绩 男一班85 72 80 女一班86 68 72 男二班76 80 84 女二班89 82 80 女一班92 94 91 女二班98 96 92 男二班60 59 60 女一班90 82 88 男一班71 74 70 65 58 54 男 二班 3.在工作表“成绩1”的最右侧插入两列,标题依次为“总评成绩”、“等级”; 4.调整“学号”、“姓名”、“性别”、“班级”、“等级”列的列宽为80个像素,调整“平时成绩”、“期中成绩”、“期末成绩”、“总评成绩”列的列宽为85个像素; 5.设置“平时成绩”只能为[60-100]的整数,“期中成绩”和“期末成绩”只能为[0-100]的整数; 6.设置标题行:行高为20磅,水平居中,垂直居中,字体为新宋体,字形为加粗,字号为12磅,底纹图案为25%灰色,颜色为浅橙色; 7.在工作表“成绩1”顶部插入一行,输入“学生成绩表”,字体为黑体,字号为20磅,颜色为蓝色,跨列居中(使它位于所制作表格的上方中央位置)。 8.为表格添加表格框线,内部为单实线,外部为双实线。 9.在“学号”列从上到下依次填充文本数据“2009001”至“2009010”,要求水平居中。10.在“姓名”列从上到下依次填充文本数据“某一”至“某十”,要求水平居中。11.要求“期末成绩”列能自动识别高于90分的成绩,并将其显示成蓝色粗体。 12.保存修改后的文件。 三、实验步骤:(学生自己填写) 1.桌面——右键——新建——文件夹——改名为“实验1”——Excel空白工作簿——改名为“20091060257”;

会计学原理课程实验答案(张志康 第二版)

《会计学原理课程实验》关键性参考答案

实验2关键性参考答案 万山市黔西机械加工厂2012年4月份专用记账凭证如下(以会计分录代替): 1. 借:应付账款——临江市钢铁公司88 000 贷:银行存款88 000(银付1号) 2. 借:其他应收款——李凯力 1 200 贷:库存现金 1 200(现付1号) 3. 借:银行存款95 000 贷:应收账款——中原器械有限公司95 000(银收1号) 4. 借:银行存款800 贷:库存现金800(现付2号) 5. 借:材料采购——角钢40 000 ——铸铁90 000 应交税费——应交增值税(进项税额)22 100 贷:银行存款152 100(银付2号) 6. 借:库存现金800 贷:银行存款800(银付3号)7. 借:应付职工薪酬210 贷:库存现金210(现付3号)8. 借:银行存款60 000 贷:应收账款——金山器械有限公司60 000(银收2号) 9. 借:材料采购——角钢 4 000 ——铸铁9 000 贷:银行存款13 000(银付4号)10. 借:原材料——角钢44 000 ——铸铁99 000 贷:材料采购——角钢44 000 ——铸铁99 000(转1号) 11. 借:管理费用800 贷:库存现金800(现付4号)12. 借:管理费用100 贷:库存现金100(现付5号)

13. 借:银行存款94 770 贷:主营业务收入81 000 应交税费——应交增值税(销项税额)13 770(银收3号)14. 借:财务费用60 贷:银行存款60(银付5号)15. 借:管理费用300 贷:库存现金300(现付6号)16. 借:银行存款159 120 贷:主营业务收入136 000 应交税费——应交增值税(销项税额)23 120(银收4号)17. 借:销售费用 6 500 贷:银行存款 6 500(银付6号)18. 借:银行存款200 000 贷:短期借款200 000(银收5号)19. 借:管理费用600 贷:库存现金600(现付7号)20.(1)借:库存现金220 贷:其他应收款——李凯力220(现收1号)(2)借:管理费用980 贷:其他应收款——李凯力980(转2号)21. 借:固定资产60 000 应交税费——应交增值税(进项税额)10 200 贷:银行存款70 200(银付7号)22. 借:生产成本——切管机29 700 ——焊机28 600 制造费用9 350 贷:原材料——角钢26 400 ——铸铁41 250(转3号)23.(1)借:材料采购——角钢61 600 应交税费——应交增值税(进项税额)9 520 贷:银行存款71 120(银付8号)(2)借:原材料——角钢61 600 贷:材料采购——角钢61 600(转4号)24. 借:库存现金120 000 贷:银行存款120 000(银付9号)25. 借:应付职工薪酬99 500 贷:库存现金99 500(现付8号)26. 借:应收账款——金山器械有限公司105 300 贷:主营业务收入90 000 应交税费——应交增值税(销项税额)15 300(转5号)27. 借:银行存款105 300

实验六 高层绘图操作答案

实验六 高层绘图操作 实验目的: 1. 掌握绘制二维图形的常用函数 2. 掌握绘制三维图形的常用函数 3. 掌握绘制图形的辅助操作 实验内容: 1. 1. 设x x x y cos 2^1sin 35.0????? ? ++=,在π 2~ 0=x 区间取101点,绘制函数曲 线。 x=0:pi/100:2*pi; y=(0.5+3*sin(x)./(1+x..^2)).*cos(x); plot(x,y); 2. 已知2 1x y = ,)2cos(2x y =,213y y y ?=,完成下列操作: (1) 在同一坐标系下用不同的颜色和线型绘制三条曲线。 (2) 以子图形式绘制三条曲线。 (3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 (1).在同一坐标系下用不同的颜色和线型绘制三条曲线。 x=0:pi/1000:2*pi; y1=x.^2; y2=cos(2*x); y3=y1.*y2;

plot(x,y1,'r',x,y2,'b-.',x,y3,'k--'); (2). 以子图形式绘制三条曲线。 x=0:pi/10:2*pi; y1=x.^2; subplot(2,2,1);plot(x,y1,'r'); title('y1=x^2'); y2=cos(2*x); subplot(2,2,2);plot(x,y2,'b-.'); title('y2=cos(2*x)'); y3=y1.*y2; subplot(2,2,3);plot(x,y3,'k--'); title('y3=y1.*y2'); (3). 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。x=0:pi/10:2*pi; y1=x.^2; subplot(2,2,1);bar(x,y1,'r'); title('y1=x^2'); subplot(2,2,2);stairs(x,y1,'r'); title('y1=x^2'); subplot(2,2,3);stem(x,y1,'r'); title('y1=x^2'); subplot(2,2,4);fill(x,y1,'r');

C上机实验报告实验四

实验四数组、指针与字符串 1.实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准C++库的使用 4.掌握指针的使用方法 5.练习通过Debug观察指针的内容及其所指的对象的内容 6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准C++库练习处理字符串的方法 2.实验要求 1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。 2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。 5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。实现并测试这个类。 6.定义包含5个元素的对象数组,每个元素都是Employee类型的对象。 7. (选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。 3.实验内容及实验步骤 1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。 2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。 4.使用string类定义字符串对象,编程实现两字符串的连接。在string类中已重载了运算符“+=”实现字符串的连接,可以使用这个功能。程序名:lab6_4.cpp。 5.在employee.h文件中定义Employee类。Employee类具有姓名、街道地址、城市和邮编等私有数据成员,在成员函数中,构造函数用来初始化所有数据成员;display()中使用cout显示

电路实验二实验报告仪器仪表的使用

电路实验二实验报告 实验题目:仪器仪表的使用 实验内容: 1.熟悉示波器和函数信号发生器的使用; 2.测量示波器自带的校准信号; 3.用示波器测量函数信号发生器提供的正弦波、三角波和方波; 4.在面包板上搭接一个积分电路,用示波器观测其波形。 实验环境: 示波器DS1052E,函数发生器EE1641D,面包板SYB-130。 实验原理: 1.示波器是一种用途十分广泛的电子测量仪器。把肉眼看不见的电信号变换成看得见的 图象,便于研究各种电现象的变化过程。利用狭窄的、由高速电子组成的电子束,打在涂有荧光物质的屏面上,产生细小的光点。在被测信号的作用下,电子束就好像一支笔的笔尖,可以在屏面上描绘出被测信号的瞬时值的变化曲线。利用示波器能观察各种不同信号幅度随时间变化的波形曲线,还可以用它测试各种不同的电量,如电压、电流、频率、相位差、调幅度等等。 2.函数发生器是一种多波形的信号源。它可以产生正弦波、方波、三角波、锯齿波,甚

至任意波形。有的函数发生器还具有调制的功能,可以进行调幅、调频、调相、脉宽调制和VCO控制。 3.面包板是专为电子电路的无焊接实验设计制造的。由于各种电子元器件可根据需要随 意插入或拔出,免去了焊接,节省了电路的组装时间,而且元件可以重复使用,所以非常适合电子电路的组装、调试和训练。 实验记录及结果分析: 1.示波器自带的校准信号: 2.函数发生器提供正弦波: 3.函数发生器提供的方波: 最大值:2.40V 最小值:-2.64V 峰峰值:5.04V 频率:2.016kHz 周期:496.0μs 占空比:48.0% 4.函数发生器提供的三角波: 最大值:2.40V 最小值:-2.64V 峰峰值:5.04V 频率:2.016kHz 周期:496.0μs 实验总结: 示波器能够产生波形,把肉眼看不见的电信号转为我们很容易看见的图形,而函数发生器则会产生不同类型的电信号,这样利用示波器和函数发生器就可以对函数发生器所发

会计学原理课程实验答案(张志康-第二版)

会计学原理课程实验答案(张志康-第二版)

《会计学原理课程实验》关键性参考答案

实验2关键性参考答案

万山市黔西机械加工厂2012年4月份专用记账凭证如下(以会计分录代替): 1. 借:应付账款——临江市钢铁公司88 000 贷:银行存款88 000(银付1号) 2. 借:其他应收款——李凯力1 200 贷:库存现金1 200(现付1号) 3. 借:银行存款95 000 贷:应收账款——中原器械有限公司95 000(银收1号) 4. 借:银行存款800 贷:库存现金800(现付2号) 5. 借:材料采购——角钢40 000 ——铸铁90 000 应交税费——应交增值税(进项税额)22 100 贷:银行存款152 100(银付2号) 6. 借:库存现金800 贷:银行存款800(银付3号) 7. 借:应付职工薪酬210 贷:库存现金210(现付3号) 8. 借:银行存款60 000 贷:应收账款——金山器械有限公司60 000(银收2号)

9. 借:材料采购——角钢4 000 ——铸铁9 000 贷:银行存款13 000(银付4号) 10. 借:原材料——角钢44 000 ——铸铁99 000 贷:材料采购——角钢44 000 ——铸铁99 000(转1号) 11. 借:管理费用800 贷:库存现金800(现付4号) 12. 借:管理费用100 贷:库存现金100(现付5号) 13. 借:银行存款94 770 贷:主营业务收入81 000 应交税费——应交增值税(销项税额) 13 770(银收3号) 14. 借:财务费用60 贷:银行存款60(银付5号) 15. 借:管理费用300 贷:库存现金300(现付6号) 16. 借:银行存款159 120 贷:主营业务收入136 000 应交税费——应交增值税(销项税额)

matlab 实验6 函数及其调用

数学实验练习六:函数 一、1)写一个 MATLAB 函数 piFun01.m 来计算下列级数: f(n) = 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...) 其中 n 为函数的输入,代表上述级数的项数,级数和 f(n) 则是函数的输出。 解:function f=pifun01(n) f=0; for i=1:n f=f+4*(-1)^(i+1)/(2*i-1); end >> piFun01(100000) ans = 3.1416 2)使用 tic 和 toc 指令来测量 piFun01(100000) 的计算时间。如果你不知道如何使用这两个指令,请使用 help tic 及 help toc 来查出它们的用法。我的旧计算机是 Pentium 450MHz,所得的计算时间约为 2 秒。请说明你的计算机规格以及其计算时间。

解:function f=pifun01(n) tic f=0; for i=1:n f=f+4*(-1)^(i+1)/(2*i-1); end f=toc 二、写一个 MATLAB 的递归函数 fibo.m 来计算 Fibonacci 数列, 其定义如下: fibo(n+2) = fibo(n+1)+fibo(n) 此数列的启始条件如下: fibo(1) = 0, fibo(2) = 1. a) fibo(25) 的返回的值是多少? 解:function f=fibo(n) if n==1 f=0; elseif n==2

f=1; else f=fibo(n-1)+fibo(n-2); end >> clear >> fibo(25) ans = 46368 b)使用 tic 和 toc 指令来测量 fibo(25) 的计算时间。我的计 算机是 Pentium 2GHz,所得的计算时间约为 3.35 秒。请说明你的计算机规格以及其计算时间。 解: function f=fibo(n) tic if n==1 f=0; elseif n==2 f=1; else f=fibo(n-1)+fibo(n-2); end

MATLAB程序设计实验报告

MATLAB实验报告 一、实验名称 实验4图形绘制(1) 二、实验目的: 熟悉和掌握MA TLAB基本的二维图形绘制函数。 三、实验内容: 1.绘制简单的二维图形 2.一个坐标系绘制多幅图形 3.图形标识和坐标控制 4.交互式图形指令 四、回答问题: (本次实验未预留问题) 五、遇到的问题及解决: 遇到了求y=lnx时,输入“y=ln(x)”不被软件识别的问题,查看常用数学函数表后改为y=log(x)成功解决。 在求10x时不知道用什么函数,函数表里也查不到,在老师的点拨下用“y=10.^x”解决。 在绘图时发现默认线型不够明显,查表后使用尖三角、叉号代替默认线型。 六、体会: 本次实验我学会了利用MATLAB绘制图形的基本方法,以及相应的备注方法。 难点是了解各种函数的具体作用并熟练掌握。 体会是:多学多练,孰能生巧,日积月累,必有提高。

思考题: 1.在同一坐标系绘制t3,-t2,t2sint在[0,2π]内的曲线图。 x=0:pi/50:2*pi; y1=t.*t.*t; y2=-t.*t; y3=t.*t.*sin(t); plot(t,y1,'^k',t,y2,'.k',t,y3,'xk'); legend('\ity=t^3','\ity=-t^2','\itt^2*sint'); 2.在一幅图中画出4幅子图,分别绘制sin2x,tanx,lnx,10x的图形,并加上适当的图形注释。注意:把函数变成MATLAB对应的形式。 x=0:pi/50:2*pi; y1=sin(2*t); y2=tan(x); y3=log(x); y4=10.^x; subplot(2,2,1) plot(x,y1); legend('y=sin2x'); subplot(2,2,2) plot(x,y2) legend('y=tanx'); subplot(2,2,3) plot(x,y3)

数据库实验1-6参考答案

实验一SQL Server使用初步 一、实验目的 1、熟悉SQL Server2000的组成及基本功能。 2、掌握SQL Server2000的登录及注册。 3、掌握SQL Server2000企业管理器的使用方法。 4、熟悉查询分析器的基本使用。 二、实验预习 1、什么是数据库管理系统DBMS?你所知道的DBMS有哪些? 答:DBMS是位于用户和操作系统之间的一层数据管理软件。常见的DBMS主要有:Oracle、db2、SQL Server、MySQL、PostgreSQL、SQLite、Firebird等等。 2、SQL Server 2000(2005)的安装步骤? 答:以企业版安装为例,步骤为: 将企业版安装光盘插入光驱后,出现以下提示框。请选择“安装 SQL Server 2000 组件” 出现下面对话框后,选择 "安装数据库服务器" 。 选择 "下一步",然后选择 "本地计算机" 进行安装。 在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。对于初次安装的用户,应选用这一安装模式,不需要使用 "高级选项" 进行安装。 "高级选项" 中的内容均可在安装完成后进行调整。 在 "用户信息" 窗口,输入用户信息,并接受软件许可证协议。 在“安装定义”窗口,选择“服务器和客户端工具”选项进行安装。 在“实例名”窗口,选择“默认”的实例名称。 在“安装类型”窗口,选择“典型”安装选项,并指定“目的文件夹”。 在 "服务账号" 窗口,请选择 "对每个服务使用统一账户..." 的选项。 在 "身份验证模式" 窗口,选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。 最后按“下一步”即可完成安装。 检测安装:如果安装成功,应该能成功启动SQL Server,并且能和SQL Server 客户端连接上。 可以通过服务管理器来进行启动。

实验六、用窗函数法设计FIR滤波器分析解析

实验六 用窗函数法设计 FIR 滤波器 一、实验目的 (1) 掌握用窗函数法设计FIR 数字滤波器的原理和方法。 (2) 熟悉线性相位FIR 数字滤波器特性。 (3) 了解各种窗函数对滤波特性的影响。 二、实验原理 滤波器的理想频率响应函数为H d (e j ω ),则其对应的单位脉冲响应为: h d (n) = ?-π π ωωωπ d e e H n j j d )(21 窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼h d (n)。由于h d (n)往往是无 限长序列,且是非因果的,所以用窗函数。w(n)将h d (n)截断,并进行加权处理: h(n) = h d (n) w(n) h(n)就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数H(e j ω )为: H(e j ω ) = ∑-=-1 )(N n n j e n h ω 如果要求线性相位特性,则h (n )还必须满足: )1()(n N h n h --±= 可根据具体情况选择h(n)的长度及对称性。 用窗函数法设计的滤波器性能取决于窗函数w(n)的类型及窗口长度N 的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。 三、实验步骤 1. 写出理想低通滤波器的传输函数和单位脉冲响应。 2. 写出用四种窗函数设计的滤波器的单位脉冲响应。 3. 用窗函数法设计一个线性相位FIR 低通滤波器,用理想低通滤波器作为逼近滤波器,截止频率ωc =π/4 rad ,选择窗函数的长度N =15,33两种情况。要求在两种窗口长度下,分别求出h(n),打印出相应的幅频特性和相频特性曲线,观察3dB 带宽和阻带衰减; 4 用其它窗函数(汉宁窗(升余弦窗)、哈明窗(改进的升余弦窗)、布莱克曼窗) 设计该滤波器,要求同1;比较四种窗函数对滤波器特性的影响。 四、实验用MATLAB 函数 可以调用MATLAB 工具箱函数fir1实现本实验所要求的线性相位FIR-DF 的设计,调用一维快速傅立叶变换函数fft 来计算滤波器的频率响应函数。

SQL_Server_SQL实验与练习题参考答案

实验1 数据库操作 1.创建数据库: 操作1.1:创建一个test数据库,其主数据文件逻辑名test_data,物理文件名test_data.mdf,初始大小10MB,最大尺寸为无限大,增长速度1MB;数据库日志文件逻辑名称为test_log,物理文件名为test_log.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为10%。 参考答案: create database Test ON primary ( name = test_data, filename = 'd:\test\test_data.mdf', size = 5MB, maxsize = unlimited, filegrowth = 1MB ) LOG ON ( name = test_log, filename = 'd:\test\test_log.ldf', size = 1MB, maxsize = 5MB, filegrowth = 10% ) GO 2.查看数据库属性: 操作1.2:使用T-SQL语句查看数据库test属性 参考答案: EXEC sp_helpdb test 3.删除数据库: 操作1.3:使用T-SQL语句删除数据库test 参考答案: drop database Test 实验2 表操作 1.创建表: 操作2.1:创建学生表:

参考答案: USE test GO CREATE TABLE student ( st_id nVarChar(9) primary key NOT NULL , st_nm nVarChar(8) NOT NULL , st_sex nVarChar(2) NULL , st_birth datetime NULL , st_score int NULL , st_date datetime NULL , st_ from nVarChar(20) NULL , st_dpid nVarChar(2) NULL , st_ mnt tinyint NULL ) GO 操作2.2:创建课程信息表: 表名:couse 说明:课程信息表 USE test GO CREATE TABLE couse ( cs_id nVarChar(4) primary key NOT NULL , cs_nm nVarChar(20) NOT NULL , cs_tm int NULL , cs_sc int NULL ) GO 操作2.3:创建选课表:

实验六 函数

实验六 函数 一、实验目的 1.掌握自定义函数的一般结构及定义函数的方法。 2.掌握形参、实参、函数原型等重要概念。 3.掌握函数声明、函数调用的一般方法。 4. 了解函数的嵌套调用以及函数的递归调用的格式。 二、实验预习 1 .理解为什么要在程序中引入函数?函数的引入对程序的整体结构有什么样的影响? 2. 函数的定义格式,理解函数的类型说明符根据什么来确定? 3. 充分理解函数实参和形参的联系和区别,掌握单向值传递的意义。 4. 了解针对不同返回类型的函数返回值的应用,尤其是有无return 语句的区别。 5. 掌握函数调用与函数声明的格式,了解什么情况下需要进行函数声明?什么情况下不需要? 6. 了解函数嵌套调用和递归调用的原理及使用原则。 三、实验内容 (一)阅读并调试下列程序,根据要求给出程序结果。 1.求三角形面积函数。 ⑴ 编程分析 ① 设三角形边长为a 、b 、c ,面积area 的算法是s=(a+b+c)/2, area=))()((c s b s a s s --- ,其中 显然,要计算三角形面积,需要用到三个参数,面积函数的返回值的数据类型应为实型。 ② 尽管main()函数可以出现在程序的任何位置,但为了方便程序阅读,通常将主函数放在程序的开始位置,并在它之前集中进行自定义函数的原型声明。 ⑵ 参考程序 /* 定义和使用求三角形面积函数的程序 */ #include "math.h" #include "stdio.h" float area(float,float,float); /*函数的声明*/ void main() { float a,b,c; printf("请输入三角形的三个边长值:\n") scanf("%f,%f,%f",&a,&b,&c); if(a+b>c&&a+c>b&&b+c>a&&a>0.0&&b>0.0&&c>0.0) printf("Area=%-7.2f\n",area(a,b,c)); /* 以下是计算任意三角形面积的函数 */ float area(float a,float b,float c) { float s,area_s; s=(a+b+c)/2.0;

图的应用的实验报告

实验六图的应用及其实现 一、实验目的 1.进一步功固图常用的存储结构。 2.熟练掌握在图的邻接表实现图的基本操作。 3.理解掌握AOV网、AOE网在邻接表上的实现以及解决简单的应用问题。 二、实验内容 [题目一]:从键盘上输入AOV网的顶点和有向边的信息,建立其邻接表存储结构,然后对该图拓扑排序,并输出拓扑序列. 试设计程序实现上述AOV网的类型定义和基本操作,完成上述功能。 测试数据:教材图7.28 [题目二]:从键盘上输入AOE网的顶点和有向边的信息,建立其邻接表存储结构,输出其关键路径和关键路径长度。试设计程序实现上述AOE网类型定义和基本操作,完成上述功能。 测试数据:教材图7.29 三、实验步骤 ㈠、数据结构与核心算法的设计描述 基本数据结构: #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 typedef int Status; /* Status 是函数的类型,其值是函数结果状态代码,如OK 等*/ #define INFINITY INT_MAX //定义无穷大∞ #define MAX_VERTEX_NUM 20 typedef int V ertexType; typedef int InfoType; typedef struct ArcNode // 表结点定义 { InfoType info; int adjvex; //邻接点域,存放与V i邻接的点在表头数组中的位置ArcNode *nextarc; //链域,指示依附于vi的下一条边或弧的结点, }ArcNode; typedef struct VNode //表头结点 { int data; //存放顶点信息 struct ArcNode *firstarc; //指示第一个邻接点 }VNode,AdjList[MAX_VERTEX_NUM]; typedef struct { //图的结构定义

物理化学实验思考题及参考答案

基础化学实验Ⅳ (物理化学实验) 2011年11制作 思考题及参考答案

目录 第一部分:思考题.................................................... 错误!未定义书签。 实验七十恒温水浴组装及性能测试.............................. 错误!未定义书签。 实验七十一燃烧热的测定........................................ 错误!未定义书签。 实验七十二差热分析............................................ 错误!未定义书签。 实验七十三凝固点降低法测定摩尔质量............................ 错误!未定义书签。 实验七十四纯液体饱和蒸气压的测量.............................. 错误!未定义书签。 实验七十五双液系的气-液平衡相图............................... 错误!未定义书签。 实验七十六三组分液-液体系的平衡相图........................... 错误!未定义书签。 实验七十七化学平衡常数及分配系数的测定........................ 错误!未定义书签。 实验七十八溶液电导的测定——测HAc的电离平衡常数.............. 错误!未定义书签。 实验七十九原电池电动势的测定及其应用.......................... 错误!未定义书签。 实验八十线性电位扫描法测定镍在硫酸溶液中的钝化行为.......... 错误!未定义书签。 实验八十一旋光法测定蔗糖转化反应的速率常数.................... 错误!未定义书签。 实验八十二电导法测定乙酸乙酯皂化反应的速率常数................ 错误!未定义书签。 实验八十三最大泡压法测定溶液的表面张力........................ 错误!未定义书签。 实验八十四固体在溶液中的吸附.................................. 错误!未定义书签。 实验八十五粘度法测定水溶性高聚物相对分子质量.................. 错误!未定义书签。 实验八十六 Fe(OH)3溶胶的制备及其ξ电势的测定 ................. 错误!未定义书签。 实验八十七电导法测定水溶性表面活性剂的临界胶束浓度............ 错误!未定义书签。第二部分:参考答案.................................................. 错误!未定义书签。 实验七十恒温水浴组装及性能测试.............................. 错误!未定义书签。 实验七十一燃烧热的测定........................................ 错误!未定义书签。 实验七十二差热分析............................................ 错误!未定义书签。 实验七十三凝固点降低法测定摩尔质量............................ 错误!未定义书签。 实验七十四纯液体饱和蒸气压的测量.............................. 错误!未定义书签。

实验六 自定义函数

实验六自定义函数 实验目的:熟悉Matlab自定义函数的定义和调用方法 实验内容: 2. 编写程序,在主程序中提示用户输入一组数字,编写子程序文件 find_div2.m找出能被2整除的数字,find_max_min.m找出输入数字中的最大值和最小值之和,find_averag求出输入数字的平均值,sort_number对数字进行排序,在主程序中调用子程序并且把上述结果输出。例如输入的数字为1,2,3,4,5,要求输出格式为:输入数字中能被2整除的数为:2,4 输入数字中最大值与最小值之和为:5+1=6 输入数字的平均值为:3 输入数字从大到小排序为:5,4 3,2,1 主程序: clear,clc s=input('请输入一组数字:','s'); x=str2num(s); find_div2(x); find_max_min(x); find_averag(x); sort_number(x);

子程序: function find_div2(x) b=length(x); for i=1:b A(i)=x(i); end c=find(rem(A,2)==0); A=A(c); disp(['输入数字中能被2整除的数为:',num2str(A)]) 子程序: function find_max_min(x) a=max(x); b=min(x); c=a+b; disp(['输入数字中最大值与最小值之和为:',num2str(a),'+',num2str(b),'=',num2str(c) 子程序: function find_averag(x) a=mean(x); disp(['输入数字的平均值为: ',num2str(a)]) 子程序: f unction sort_number(x) a=sort(x); b=fliplr(a); disp(['输入数字从大到小排序为:',num2str(b)])

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

C语言程序设计II实验报告题目:实验五函数应用 院系名称:计算机学院 专业名称:计算机科学与技术 班级: 学号: 学生姓名: 指导教师: 实验日期:2017年4月1日 报告提交截止日期:2017年4月11日

一、实验目的 1、掌握C语言函数的定义方法、函数的声明及函数的调用方法及 调用过程; 2、掌握主调函数和被调函数之间的参数传递方式; 二、实验内容与要求: 1、求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数,用 另一个函数根据求出的最大公约数求最小公倍数。(提示:设两个整数是 a,b,最大公约数是p,最小公倍数是q,那么ab=pq) 2、用牛顿迭代法求方程f(x)=ax3+bx2+cx+d=0的根。系数a、b、c、d由主 函数输入。求根过程写成函数。(提示:牛顿迭代法是先给定方程f(x)=0 的一个较好的初始近似根x0,然后重复使用迭代公式: 求x的近似解,直至相邻两次的近似解相差很小为止,如差值的绝对值 小于1e-07。x0可以从键盘输入或直接设定。) 3、定义一个函数,功能是计算n个学生的成绩中高于平均成绩的人数,并 作为函数返回值。用主函数来调用它。统计30个学生成绩中高于平均成 绩的有多少人。 4、 ∑= + + + = = n i n p p p i p n s 1 ) ( )2( )1( )( ) (Λ Λ,! )(i i p= 5、编写和调用函数,给定圆筒的内径、外径和高,计算该圆筒的体积;给

定圆锥的高、底面半径,计算该圆锥的体积和表面积。 6、编写和调用函数,求出10000以内的所有素数、绝对素数、水仙花数、 完全数(或称完数)、互满数。 提示:一个素数经过任意次调换位,仍然为素数,则称其为绝对素数, 例如13和31就是一个绝对素数。水仙花数是指一个三位整数,其各位 数字立方之和等于该数。例如,153就是一个水仙花数:153=1*1*1+ 5*5*5+3*3*3。完全数是指一个数正好是它的所有约数(本身除外)之和。 例如,6就是一个完全数,因为6的因子有1、2、3,并且6=1+2+3。 如果有两个数,每一个数的所有约数(除它本身以外)之和正好等于对 方,则称这两个数为互满数。 三、实验结果

实验6函数习题及答案

实验6 函数 班级:学号: 姓名:日期: 一、实验目的 (1)掌握定义函数的方法; (2)掌握函数实参与形参的对应关系,以及“值传递”的方式; (3)掌握函数的嵌套调用和递归调用的方法; (4)掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法; (5)学习对多文件的程序编译和运行。 二、实验内容 1.阅读下面程序,写出程序运行结果,并且上机进行验证。 (1)a1.cpp 变量的虚实耦合,实现的是值传递,是单向传递 #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); } (2)a2.cpp

将十进制数26的各位数字相乘 #include "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)); } (3)a3.cpp 变量的作用域,当在函数内定义了与全局变量同名的局部变量时,全局变量被屏蔽#include "stdio.h" int a=3,b=5,c; void f(int b) { c=a+b; printf("%d %d %d\n",a,b,c); } void main() { int a=8; f(3); printf("%d %d %d\n",a,b,c); } (4)a4.cpp 递归,将十进制11转换为二进制 #include "stdio.h" void dtob(int n) { int i;

相关文档
最新文档