搜档网
当前位置:搜档网 › 第4次上机作业

第4次上机作业

第4次上机作业
第4次上机作业

华中科技大学

《计算机基础与程序设计(C++)》

实验报告

实验名称:第四次上机实验实验学时:

姓名:学号:班级:

实验日期:教师批阅签字:

一、实验目的

●掌握一维数组的定义、输入、输出和基本操作。

●掌握二维数组的定义、输入、输出和基本操作。

●掌握字符串的存储和访问。

●使用数组处理解决实际问题的能力。

●动态数组的访问

二、实验内容

1.阅读程序

1)#include

#include

using namespace std;

int main()

{ int n=5;

int i,a[n];

for(i=0;i

{ cin>>a[i];

cout<

}

return 0;

}

运行上述的程序,改正其中的错误,并解释错误原因。

正确代码:

#include

#include

using namespace std;

int main()

{

int i;

int a[5];

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

{ cin>>a[i];

cout<

}

return 0;

}

调试错误:

Subscript requires array or pointer type.

原因:数组元素个数不能是实数?

2)#include

#include

using namespace std;

int main()

{ int i,a[5]={0,1,2,3,4};

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

cout<

return 0;}

运行上述的程序,其结果是否正确,如不确请修改正确,并解释原因。

正确代码:

#include

#include

using namespace std;

int main()

{

int i,a[5]={0,1,2,3,4};

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

cout<

return 0;

}

3)#include

using namespace std;

int main( )

{

char rstr[10 ]="abcdefgh",dstr[10];

int i;

for(i=0; rstr[i]!='\0'; i++) //循环条件可以写成rstr[i]!=0; 或rstr

dstr[i]=rstr[i];

cout<<"输出字符串dstr:"<

return 0;

}

上述程序的功能是将字符串rstr复制到目标串dstr中,运行该程序结果是否正确,如不正确请修改正确,并解释原因。

#include

using namespace std;

int main( )

{

char rstr[10]="abcdefgh",dstr[10];

int i;

for(i=0; rstr[i]!='\0';i++) //循环条件可以写成rstr[i]!=0; 或rstr

dstr[i]=rstr[i];

dstr[i]='\0';

cout<<"输出字符串dstr:"<

return 0;

}

解释原因:

因为赋值时原串的’\0’并没有赋值给目标串,所以循环结束后一定要加上语句dstr[i]='\0';否则程序运行会出现异常。

4)#include

using namespace std;

int main( )

{

char name1[]={'a','b','c','d'};

char name2[]=”abcd”;

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

cout<

cout<

cout<

cout<

return 0;

}

运行上述程序,比较三种输出的异同,并解释原因。

输出1和输出2:字符数组name1的处理与数值型数组没有差异,因为结尾没有’\0’,没有构成c++字符串,若用输出2语句“cout<

输出3:输出的是字符串,初始化时直接用字符串常量赋值。

5)#include

using namespace std;

int main( )

{int a=10, b=20,*p=&a,*q;

cout<

cout<<*p<

*p=b;

cout<

cout<<*p<

cout<

cout<<*q<

return 0;

}

编译调试上述程序,如有错误请修改,并解释原因。

5)int a[5]={1,2,3,4,5};

int *p=a;

在上述语句的基础上,请用5种方式输出数组a的各元素。参考教材P142页

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

cout<

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

cout<<*(p+i)<<””; //指针表示法

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

cout<<*(a+i)<<””; //下标表示法

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

cout<

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

cout<<*(p++)<<””; //通过移动指针p指向不同的元素

2.编程题

1)定义包含10 个元素的一维数组,输入输出各元素的值,然后求出最大值将其与第一个数交换位置后再输出。

要求:

程序原代码。(直接粘贴在此)

#include

#include

using namespace std;

int main()

{

int a[10];

int i,max,j,temp;

cout<<"请输入10个数:";

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

cin>>a[i];

max=a[0];

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

{ if(max

{

max=a[i];

j=i;

}

}

temp=a[0];

a[0]=a[j];

a[j]=temp;

cout<<"交换后数组"<

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

{

cout<

}

cout<

return 0;

}

●解决本题的算法思路描述

利用了经典交换语句实现最大值和第一个数交换,其中j是最大值下标:

temp=a[0];

a[0]=a[j];

a[j]=temp;

●调试过程的记载(包括出现的错误,以及修改过程)

●归纳本题应用的知识点或算法

2)编写一个程序,定义 5 行4 列二维数组,并对前 4 行 4 列的元素赋值,计算二维数组前 4 行各列之和,且将每列之和放于各列最后一行的位置,然后输出该二维数组(按行列的格式输出)。

要求:

●程序原代码。(直接粘贴在此)

#include

#include

using namespace std;

int main( )

{

int i, j;

int a[5][4];

cout<<"请输入"请输入前四行四列元素:"<

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

{

for (j = 0; j <= 3; j++)

cin >> a[i][j];}

for (j = 0; j <= 3; j++)

{

a[4][j] = 0;

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

{a[4][j] += a[i][j];}

}

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

{

for (j = 0; j <= 3; j++)

{cout << setw(4) << a[i][j];}

cout << endl;

}

return 0;

}

●解决本题的算法思路描述

●调试过程的记载(包括出现的错误,以及修改?)

●归纳本题应用的知识点或算法

3)编程输出10 行的杨辉三角形。(使用二维数组并利用每个系数等于其上两系数之和,要求按等腰三角形的格式输出)

要求:

●程序原代码。(直接粘贴在此)

#include

#include

#include

using namespace std;

int main()

{

int i,j,n;

cout<<"请输入行数"<

cin>>n;

int matrix[10][10];

for(i=0;i<=n-1;i++)

{

matrix[i][0]=1;

matrix[i][i]=1;

}

for(i=2;i<=n-1;i++)

{

for(j=1;j<=i-1;j++)

matrix[i][j]=matrix[i-1][j-1]+matrix[i-1][j];

}

for(i=0;i<=n-1;i++)

{

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

cout<

cout<

}

return 0;

}

●解决本题的算法思路描述

●调试过程的记载(包括出现的错误,以及修改)

●归纳本题应用的知识点或算法

4)编程将一个字符串插入另一个字符串的指定位置。(位置由用户输入)要求:

●程序原代码。(直接粘贴在此)

#include

using namespace std;

int main()

{

int len1,len2,len4,i,x,k=0;

char a[100],b[100], c[100];

cout<<"请输入一个字符串:"<

cin>>a;

cout<<"请输入要插入的字符串:"<

cin>>b;

len1=strlen(a);

len2=strlen(b);

cout<<"请输入你要插入的位置:"<

cin>>x;

for(i=x-1;a[i]!='\0';i++)

c[k++]=a[i];

len4=x-1;

for(i=0;i

a[len4++]=b[i];

for(i=0;i

a[len4++]=c[i];

a[len4]=0;

cout<

return 0;

}

●解决本题的算法思路描述

●调试过程的记载(包括出现的错误,以及修改)

●归纳本题应用的知识点或算法

5)编程产生10个互不相同的100~200范围内的随机数。

要求:

●程序原代码。(直接粘贴在此)

●解决本题的算法思路描述

●调试过程的记载(包括出现的错误,以及修改)

●归纳本题应用的知识点或算法

6)编程将下列10本书的书名升序排序输出。("计算机基础","编译原理","算法基础","计算机原理","

高等数学","线性代数","离散数学","大学物理","大学英语","大学英语听力")

要求:

●程序原代码。(直接粘贴在此)

#include

using namespace std;

int main()

{

char *name[10]={"计算机基础","编译原理","算法基础","计算机原理","高等数学","线性代

数","离散数学","大学物理","大学英语","大学英语听力"};

int i,look=0,position;

char searchname[10];

cout<<"请输入要查找的书名:";

cin.getline(searchname,21);

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

if(strcmp(name[i],searchname)==0)

{ look=1;

position=i+1;

}

if(look==1)

cout<

else cout<<"sorry"<

return 0;

}

●解决本题的算法思路描述

本题中书名的比较实质是两个字符串比较,不能直接用“name[i]==searchname;”,只能使用strcmp(字符数组1,字符数组2)

●调试过程的记载(包括出现的错误,以及修改)

char *name[10]={"计算机基础","编译原理","算法基础","计算机原理","高等数学","线性代数","离散数学","大学物理","大学英语","大学英语听力"};

这条语句的分号错用成拼音的分号了。

●归纳本题应用的知识点或算法

7)用数组编程实现将10进制整数转换成2进制数。

要求:

●程序原代码。(直接粘贴在此)

#include

using namespace std;

int main()

{

int k,a[100],m,n;

int i=0;

cout<<"请输入你要转换的数:"<

cin>>k;

do

{

m=k/2;

n=k%2;

k=m;

a[i++]=n;

}

while(m!=0);

i--;

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

cout<

cout<

return 0;

}

●分别用200,520,1024,2048 等数据测试。将其与第3次上机作业中不用数组做结果有何不

同?并解释原因。

8 )选做题

从键盘输入2 个字符串,判断其中较短的串是否是另一个串的子字符串。

如:“ab”是”fgabcde”的子串,不是”fgacbdef”的子串

要求:

●程序原代码。(直接粘贴在此)

●解决本题的算法思路描述

●调试过程的记载(包括出现的错误,以及修改?)

●归纳本题应用的知识点或算法

9)选做题

假设你想发10个拼手气红包,红包总金额由你从键盘输入。请编程完成此功能。

要求:

●程序原代码。(直接粘贴在此)

●解决本题的算法思路描述

●调试过程的记载(包括出现的错误,以及修改?)

●归纳本题应用的知识点或算法

三、对本次实验内容及方法、手段的改进建议,以及实验心得

实验心得包括:1)哪些知识点已掌握

2)哪些知识点有困难

3)对讲课的建议

4)对没有掌握知识的补救建议

华中科技大学c第2次上机作业

第二章上机实验 一、实验目的 ●学会编写选择结构的C++程序。 ●掌握if 语句的使用 ●掌握switch 语句的使用 ●学会编写简单的循环结构C++程序 二、实验内容 1.在vc环境下编写下述程序代码,编译调试其语法和逻辑错误,直至得到完全正确的结果。 #include using namespace std; int main(){ int a,b,c; int max,min; cout<<"请输入三个不等整数:\n"; cin>>a>>b>>c; if(a>b) max=a; min=b; else ; max=b; min=a; if(c>max) cout<

发系统给出很多条error信息,因此,发现一个错误并修改后最好重新编译一次,以便提高工作效率。 警告错误处理: 一般是触发了C/C++的自动规则,如将一个单精度(浮点)型数据赋给整型变量,需要系统将单精度型数据自动转换为整型,此时小数部分会丢失,因而系统给出警告信息,警告信息不会影响程序执行,本例可以通过强制转换去掉警告信息。 连接错误(linking error) 产生连接错误的原因可能是缺少所需的库文件或目标文件,或程序中调用的外部函数没有定义等,只要补充相应文档再重新建立即可。 逻辑错误 运行程序时,可能发现程序没有编译错误,而且也能执行,但执行结果不对,此时存在的就是逻辑错误。 ①编译上述程序,按照上面介绍的方法找出并修改其语法错误。 ②语法错误修改完毕后用下列四组数组分别测试其结果,看是否正确,如果不正确,请 使用下述调试手段修改。 数据一: 33 60 50 数据二: 33 22 10 数据三: 88 45 67 数据三: 88 45 30 调试过程:+ 首先,在源程序中可能出现错误的行上设置断点,方法是将光标移至该行,然后按F9键,或单击工具栏上的手形按钮(再按一次F9键或单击手形按钮将取消断点),此时该行左侧出现一个红色圆点,断点设置成功,如图就是在A行设置了断点。 然后选择【组建】|【开始调试】|【GO】菜单命令(也可直接单击工具栏上的图标),程序开始执行,但执行到断点处停止,这时选择【查看】|调试窗口|子菜单的Watch 和Variables两个菜单项,打开监视窗口和变量窗口来观察变量的值,分析并查找出错原因。 在Watch窗口加入max和min两个变量,进行监视。Watch窗口的每一行可以显示一个变量,其中左栏显示变量名,双击它可进行编辑;右栏显示变量的值。接下来可按F10键从断点位置处单步执行。通过单步执行(一条一条语句执行)可以看出我们所观察的变量的变化以及程序执行流程是否正确,如果不正确是由哪条语句引起的,因而有针对性的检查错误原因。例如在本例中,尽管a>b,在执行了if后面的{max=a; min=b; }后,通过单步执行发现仍然执行了else后面的{max=b; min=a; }所以当程序执行到箭头所指位置时,max=45, min=48,如图所示,与预期结果不相符,说明程序的流程有问题。此时再仔细分析源程序,发现问题在于else后多余的分号。

上机作业

课件52页上机作业 第一题 1、function f= eval(M1) a=1;b=2;c=3;d=4; M1=[a,b;c,d] 运行结果: M1 = 1 2 3 4 2、function g= eval(M2) a=1;b=2;c=3;d=4; M2='[a,b;c,d]' 运行结果: M2 = [a,b;c,d] 3、function h= eval2(M3) a=1;b=2;c=3;d=4; M3=sym('[a,b;c,d]') 运行结果: M3 = [ a, b] [ c, d] 结论: M1为矩阵,M2为未赋值矩阵,M3为两个行向量,结果均不同。 第二题 程序 a1=1e10;b1=1e-10; c1=(a1+b1-a1)/b1 a2=sym(a1);b2=sym(b1); c2=(a2+b2-a2)/b2 运行结果: li5 c1 = c2 = 1

结论:C1和C2不相等。 符号运算 1: (1)因式分解 syms x f=x^2-5*x+6 s=factor(f) 运算结果: yinshifenjie f = x^2 - 5*x + 6 s = (x - 2)*(x - 3) (2)函数展开 syms x; f=(x+1)^3; expand(f) 运行结果:hanshuzhankai ans = x^3 + 3*x^2 + 3*x + 1 (3)合并同类项 syms xy; f=x^2+3*x+2*x+y^3+8*y^3; collect(f) collect(f,y) 结果 >>hebingtongleixiang ans =

第一次上机作业答案

2018-2019第一学期土木文检课作业(一) 1.试用图书馆书目检索系统查出如下题名的中图法分类号和检索结果条数,再用所查出的分类号分别检索中文图书和西文图书的结果条数。 图书条数:_473______,西文图书条数:___64____; (2)题名:克隆,在图书馆位置:_北四楼中文自科图书借阅室/南六楼中文自科参考书阅览室_______ ,中图分类号:_Q785_____,中文图书条数:__70______,西文图书条数:_________; (3)题名:文献编目,在图书馆位置:_南五楼中文社科参考书阅览室\北三楼中文社科图书借阅室____ ,中图分类号:__ G254.3 __,中文图书条数:__170__,西文图书条数:___9_____; (4)题名:古生物学,在图书馆位置:__南六楼中文自科参考书阅览室_______ ,中图分类号:__Q91____,中文图书条数:_317_______,西文图书条数:____15______; (5)题名:英语写作,在图书馆位置:__北三楼中文社科图书借阅室__ ,中图分类号:__H315____,中文图书条数:_3511__,西文图书条数:____679__ [填空题] * 2.用图书馆主页的《中图分类法》“生物化学”的分类号,并写出以上各级分类号和类目(参考教材11页)。[填空题] * Q生物科学(一级类目) Q5生物化学(二级类目)

3.根据要求填写下列各题。 (1)请在图书馆馆藏目录中找出2015年《细胞生物学》有几个版本?_2_;按照正确著录格式著录这几本图书: [1]左伋,刘艳平.细胞生物学[M].北京:人民卫生出版社,2015 [2]李瑶.细胞生物学[M].北京:化学工业出版社,2015 ⑵写出以下期刊的分类号和在图书馆的位置。 ①《基因组学与应用生物学》分类号:_Q343.1 _____ ;位置:南三楼自科期刊阅览室。 ②《青年文摘》分类号:__D432 _____ ;位置:南二楼社科报刊阅览室。 ③《生物工程学报》分类号:___Q_______ ;位置:__南三楼自科期刊阅览室_________。 ④《中国民商》分类号:___ F279.2 ____ ;位置:___南二楼社科报刊阅览室_____ 。 ⑤《生态毒理学报》分类号:__X3_____ ;位置:__南三楼自科期刊阅览室_______ 。[填空题] *

大连理工程序设计 第二次上机作业

1 题目描述:4个数排序 从键盘任意输入4个整数,将其按从小到大顺序排序后输出。 题目分析:定义a,b,c,d,t.为a,b,c,d赋上四个值。用if语句,借用t,将a,b,c,d通过多次调换数值使得a,b,c,d对应的数值大小依次减小。再倒序输出。 流程图: 程序代码: #include main() { int a,b,c,d,t; printf("please enter four number"); scanf("%d%d%d%d",&a,&b,&c,&d); if(b>a) {t=a;a=b;b=t;} if(c>a) {t=a;a=c;c=t;} if(d>a) {t=a;a=d;d=t;} if(c>b) {t=b;b=c;c=t;} if(d>b) {t=b;b=d;d=t;} if(d>c) {t=c;c=d;d=t;} printf("After ascending sorting:%d %d %d %d\n",d,c,b,a); }

2. 题目描述:求1 + 1/2! +....+ 1/n! 题目分析:定义i,n,t,s。运用循环语句,让t的值为n!,同时s累计求和。因为最后要输出原式,所以要将公式的部分包含在循环语句中。 流程图:

#include main() { int i,n; float s,t; i=1; s=0; t=1; printf("please enter a number"); scanf("%d",&n); printf("1"); while(i<=n) {t=t*i; s+=1/t; if(i!=1) printf("+1/%d!",i); i++;} printf("=%.4f\n",s); } 程序截屏:

计算方法上机作业

计算方法上机报告 姓名: 学号: 班级: 上课班级:

说明: 本次上机实验使用的编程语言是Matlab 语言,编译环境为MATLAB 7.11.0,运行平台为Windows 7。 1. 对以下和式计算: ∑ ∞ ? ?? ??+-+-+-+=0681581482184161n n n n S n ,要求: ① 若只需保留11个有效数字,该如何进行计算; ② 若要保留30个有效数字,则又将如何进行计算; (1) 算法思想 1、根据精度要求估计所加的项数,可以使用后验误差估计,通项为: 1421114 16818485861681 n n n a n n n n n ε??= ---<< ?+++++??; 2、为了保证计算结果的准确性,写程序时,从后向前计算; 3、使用Matlab 时,可以使用以下函数控制位数: digits(位数)或vpa(变量,精度为数) (2)算法结构 1. ;0=s ?? ? ??+-+-+-+= 681581482184161n n n n t n ; 2. for 0,1,2,,n i =??? if 10m t -≤ end; 3. for ,1,2,,0n i i i =--??? ;s s t =+

(3)Matlab源程序 clear; %清除工作空间变量 clc; %清除命令窗口命令 m=input('请输入有效数字的位数m='); %输入有效数字的位数 s=0; for n=0:50 t=(1/16^n)*(4/(8*n+1)-2/(8*n+4)-1/(8*n+5)-1/(8*n+6)); if t<=10^(-m) %判断通项与精度的关系break; end end; fprintf('需要将n值加到n=%d\n',n-1); %需要将n值加到的数值 for i=n-1:-1:0 t=(1/16^i)*(4/(8*i+1)-2/(8*i+4)-1/(8*i+5)-1/(8*i+6)); s=s+t; %求和运算 end s=vpa(s,m) %控制s的精度 (4)结果与分析 当保留11位有效数字时,需要将n值加到n=7, s =3.1415926536; 当保留30位有效数字时,需要将n值加到n=22, s =3.14159265358979323846264338328。 通过上面的实验结果可以看出,通过从后往前计算,这种算法很好的保证了计算结果要求保留的准确数字位数的要求。

文献检索第二次上机实习作业 (2)

1.检索有关钒钛中锰含量的测定的国家标准,给出标准号、起草单位及检索流程。 标准号YB/T 505.6-2007 起草单位:冶金工业信息标准研究院攀研院 以钒钛中锰含量的测定和国家标准为收索主题进行百度收索 2.在cnki的《中国期刊全文数据库》中检索篇名为《青梅果酒发酵工艺优化》的论文。下载并浏览全文。在阅读该篇文章的过程中有些地方该文章是引用其他文章的内容,记下该篇论文的第三篇参考文献。到维普中文科技期刊数据库中检索你记下的该篇参考文献,浏览该篇文章的全文,给出该文章作者的单位。并说明这种查找文献的方法是什么方法。同样的内容在万方数字化资源库中在进行一次检索,比较二者有何不同。 第三个参考文献《果梅资源的开发和利用》作者:曾凡骏张月天 作者单位四川大学轻工与食品工程学院: 查找文献方法:找出该文献,然后再上知网搜索。万方的文献带有超级链接,搜索更加方便。 3.检索一篇华南理工大学的硕士学位论文,题名为《具有修护作用的洗发和护发产品的配方研究》,说明可以到哪些数据库中检索,其中哪些数据库可以下载全文。写出该论文作者是谁。 中国知网中可以下载全文,作者:王新全 4.到中国重要报纸全文数据库中检索发表在人民日报上的题名含有攀枝花的文章。写出检索策略及结果,下载一篇caj格式的全文,并说明文章共有多少页。其实网上也可以免费检索和下载该文章的全文,写出检索步骤。 进中国知网,点击‘报纸栏’再关键词栏输入‘攀枝花’。文章:<< 目光里,始终有攀枝花传奇>> 5.请在维普信息资源系统中检索2008年涉及“数字图书馆”的相关文章。(1)全文中含有“数字图书馆”的文章,共有__1145_____篇。 (2)标题中含有“数字图书馆”,有_893_篇。 6.请在万方数据库中的“学术会议”数据库中检索涉及“室内空气质量”的会议文献,请摘录其中一篇. 常州城市空气质量变化特征及其与气象条件的关系 利用常州环境监测中心站空气质量资料和常规气象观测资料,对2001-2006年常州空气质量的变化特点进行了统计分析,结果表明:(1)常州最严重污染年份为2001、2002年;空气污染呈显著下降趋势。(2)污染最高发季节为冬季,其次为春季,再次为秋季,最少发生的季节为夏季。(3)污染出现最多的月份是1、3、10、11月,而6、7、8、9月则是污染出现较少的月份。(4)雾会加重空气污染程度,浓雾或强浓雾加重程度更深。由于常州空气质量呈逐渐好转的趋势,雾对API指数大小的贡献也呈下降趋势。(5)强降水会显著改善空气质量,

第二次上机作业参考答案

第二次上机作业参考答案: 1. 4个数排序 从键盘任意输入4个整数,将其按从小到大顺序排序后输出。 例:输入 5 12 -9 3 输出After ascending sorting: -9 3 5 12 #include void main() { int a,b,c,d,t; scanf("%d%d%d%d",&a,&b,&c,&d); if(a>b) { t=a; a=b; b=t; } if(a>c) { t=a; a=c; c=t; } if(a>d) { t=a; a=d; d=t; } if(b>c) { t=b; b=c; c=t; } if(b>d) { t=b; b=d; d=t; } if(c>d) { t=c; c=d; d=t; } printf("The sorted number is:%d %d %d %d\n",a,b,c,d); } 2.求1 + 1/2! +....+ 1/n! 输入正整数n,计算上式前n 项的和(保留 4 位小数)。 例:输入10 输出 1 + 1/2! +....+ 1/10!=1.7183 #include int main( ) { int i,j,n; float s,t; scanf("%d",&n); for(s=0,i=1;i<=n;i++) { for(t=1,j=1;j<=i;j++) t*=j; s+=1/t; } printf("%0.4f\n",s); }

3. 编程计算表达式:data1 op data2 的值。(+ - * / %) 例:输入23+12 输出23+12=35 #include int main( ) { int a,b,result,flag=1; char op; scanf("%d%c%d",&a,&op,&b); switch(op) { case '+': result=a+b; break; case '-': result=a-b; break; case '*': result=a*b; break; case '/': printf("%d%c%d=%.2f\n",a,op,b,(float)a/b); flag=0; break; case '%': result=a%b; break; } if(flag) printf("%d%c%d=%d\n",a,op,b,result); } 4. 用二分法求方程2x3-4x2+3x-6=0在(a,b)之间的根。 例:输入Please input the lower and upper boundaries: 3 10 输出No root in this boundary! Please input the lower and upper boundaries: 1 5 The root is 2.00 #include void main() { double x,fx,a,fa,b,fb; do { printf("Please input the lower and upper boundaries:"); scanf("%lf%lf",&a,&b); fa=2*a*a*a-4*a*a+3*a-6; fb=2*b*b*b-4*b*b+3*b-6; }while(fa*fb>0); while(1) { x=(a+b)/2; fx=2*x*x*x-4*x*x+3*x-6;

线性代数上机作业题答案

线性代数机算与应用作业题 学号: 姓名: 成绩: 一、机算题 1.利用函数rand 和函数round 构造一个5×5的随机正整数矩阵A 和B 。 (1)计算A +B ,A -B 和6A (2)计算()T AB ,T T B A 和()100 AB (3)计算行列式A ,B 和AB (4)若矩阵A 和B 可逆,计算1 A -和1 B - (5)计算矩阵A 和矩阵B 的秩。 解 输入: A=round(rand(5)*10) B=round(rand(5)*10) 结果为: A = 2 4 1 6 3 2 2 3 7 4 4 9 4 2 5 3 10 6 1 1 9 4 3 3 3 B = 8 6 5 4 9 0 2 2 4 8 9 5 5 10 1 7 10 6 0 3 5 5 7 9 3 (1)输入: A+B 结果为:

ans= 10 10 6 10 12 2 4 5 11 12 13 14 9 12 6 10 20 12 1 4 14 9 10 12 6 输入: A-B 结果为: ans = -6 -2 -4 2 -6 2 0 1 3 -4 -5 4 -1 -8 4 -4 0 0 1 -2 4 -1 -4 -6 0 输入: 6*A 结果为: ans = 12 24 6 36 18 12 12 18 42 24 24 54 24 12 30 18 60 36 6 6 54 24 18 18 18 (2)输入: (A*B)' 结果为: ans = 82 112 107 90 135 100 121 107 83 122

80 99 105 78 107 61 82 137 121 109 78 70 133 119 134 输入: B'*A' 结果为: ans = 82 112 107 90 135 100 121 107 83 122 80 99 105 78 107 61 82 137 121 109 78 70 133 119 134 输入: (A*B)^100 结果为: ans = 1.0e+270 * 1.6293 1.6526 1.4494 1.5620 1.6399 1.9374 1.9651 1.7234 1.8573 1.9499 2.4156 2.4501 2.1488 2.3158 2.4313 2.0137 2.0425 1.7913 1.9305 2.0268 2.4655 2.5008 2.1932 2.3636 2.4815 (3)输入: D=det(A) 结果为: D = 5121 输入: D=det(B) 结果为:

C语言上机作业试题5套含答案

第一次上机作业(2014): 要求: ?独立完成,上机调试通过后上交 ?作业提交邮箱: ?邮件主题命名:班级学号姓名(第1次作业), 例如:电1301班2王鹏(第1次作业) ?以附件形式将每次作业的所有程序源程序压缩打包后提交,压缩文件命名格式同上。 ?程序必须采用缩进格式 1.大写字母转换成小写字母 从键盘输入一个大写英文字母,输出相应的小写字母。 例:输入G 输出g 2.求平方根 输入一个实数x,计算并输出其平方根(保留1 位小数)。 例:输入17 输出The square root of 17.0 is 4.1 3.温度转换 设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32) a)输入华氏温度(实型) b)输出的摄氏温度结果保留两位小数 例:Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89 4. 计算旅途时间 输入二个整数time1 和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 (输入的有效的时间范围是0000 到2359,不需要考虑出发时间晚于到达时间的情况。) 例:输入712 1411 (出发时间是7:12,到达时间是14:11) 输出The train journey time is 6 hours 59 minutes. 5. 数字加密 输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。 例:输入1257 输出The encrypted number is 4601 思考题:你能否编程找出谁做的好事? 有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 ?A说:不是我。 ?B说:是C。 ?C说:是D。 ?D说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 第二次上机作业(2014): 要求: ?独立完成,程序必须采用缩进格式,上机调试通过后上交

文献检索第二次上机作业

第二次计算机检索实习题目 本次实习目的是使学生对以下三个外文数据库:美国EI COMPENDEX数据库、荷兰SDOS 数据库、德国Springer数据库的使用方法有所了解。通过题目,使学生分别掌握每个数据库所提供的各种获取文献的方法,包括浏览和检索的方法,并通过各种算符的组配,以达到获取正确检索结果的目的。 ”) 一、EI COMPENDEX 数据库检索题目 题目1检索2000以前的有关“计算机网络”方面的文献,检索要求: (1)文献类型为会议,文献处理类型为理论,语种为英文。 (2)记下检索到的数量及第一条记录的篇名、作者、刊名、年、卷、期,出版地、出版社等。 (3 检索到的数量:31931; 第一条记录的篇名:Fault-tolerant analysis of the spiral computer network topology; 作者:Mitchell, Tony L.、Nilsson, Arne A.; 刊名:Conference Record - International Conference on Communications; 年:1989;卷:1;期:1989 出版地:Boston, MA, USA; 出版社:Publ by IEEE, Piscataway, NJ, United States; 该篇文章三种显示格式: 第一种题录格式:Fault-tolerant analysis of the spiral computer network topology Mitchell, Tony L. (USAF Acad, Dep of Math Sci, Colorado, Springs, CO, USA); Nilsson, Arne A. Source: Conference Record - International Conference on Communications, v 1, p 363-367, 1989

2010专第一次上机作业:%20MatLab练习题-基本运算

一、书上命令练习: 二、MatLab 练习1 注意: 1,请按要求作题,写出程序并把结果附上,并保存文件. 2,仔细填写 “学生信息”. 3,把此word 文档的文件名更名为你的 “学号 姓名(*)”-*表示第几次作业.在下课前5分钟提交. 1, (5*2+1.3-0.8)*10^2/25 答案:42 2,y =23log )10sin(4 ) 43.0(2 +?+-e π 答案: 3,z = 10sin(π/3) ... cos(π/3) 答案: 4,x = sin(223/3), y = x^2,z = y*10 ; 求x+2y-5z 答案: 5,i e z i z i z ?==+=π23215,2,72,计算3 221z z z z z += 答案: 6, 建立起始值=3,增量值=5.5,终止值=44的一维数组x (填写程序语句) 答案:X=(3:5.5:44) X =

3.0000 8.5000 1 4.0000 19.5000 2 5.0000 30.5000 3 6.0000 41.5000 7, 建立等差一维数组x :首项为0,末项为π,项数为15 (填写程序语句) 答案: >> X=linspace(0,pi,15) X = Columns 1 through 8 0 0.2244 0.4488 0.6732 0.8976 1.1220 1.3464 1.5708 Columns 9 through 15 1.7952 2.0196 2.2440 2.4684 2.6928 2.9172 3.1416 8, 计算行列式的值1 8 7 624 3 23 =A 答案:-8 9, 矩阵??????????=18 7 624323A ,矩阵??? ? ? ?? ???=33 3 222111 B ;分别求出A x B 及A 与B 中对应元素 之间的乘积的程序语句。 答案>> A=[3 2 3;4 2 6;7 8 1] A = 3 2 3 4 2 6 7 8 1 >> det(A) ans = -8

word上机作业

word上机作业 一、Word操作题 1.打开上节课写的文本文档,将里面的文字复制、粘贴到Word文档中 2.将文档的标题加上双下划线并居中对齐 3.将文档的标题设置为“加粗”、“黑体”、“三号” 4.设置文本文档的正文:楷体小四号字、1.5倍行距、分为两栏。 5.设置正文首字下沉:下沉行数为2行,颜色为红色。 6 设置每一段前添加项目符号 7设置最后一段内容段落加边框线,并设置成黄色底纹。 完成效果如下: 阳关雪 ? ?国古代,一为文人,便无足观。文官之显赫,在官场而不在文,他们作为文人中 的一面,在官场也是无足观的。但是事情又很怪异,当峨冠博带早已零落成泥之后,一杆竹管笔偶尔涂划的诗文,竟能镌刻山河,雕镂人心,永不漫游。

二设置诗歌格式 《秋登兰山寄张五》作者:孟浩然北山白云里,隐者自怡悦。 相望始登高,心随雁飞灭。 愁因薄暮起,兴是清秋发。 时见归村人,沙行渡头歇。

天边树若荠,江畔洲如月。 何当载酒来,共醉重阳节。 要求完成入下效果: 1.插入一副背景图片,并将诗歌内容写在图片上面。 2.设置标题为艺术字。 3.正文内容加粗、倾斜、宋体二号字。 4.正文内容段前段后间距为2行。 北山白云里,隐者自怡悦。 相望始登高,心随雁飞灭。

愁因薄暮起,兴是清秋发。 时见归村人,沙行渡头歇。 天边树若荠,江畔洲如月。 何当载酒来,共醉重阳节。 三⑴以文章形式,给自己写一篇个人简历,不少于1000字。除名字和系别学号信息外,其他可以

杜撰,但要成文。 文章的基本格式为(####代表若干内容):

⑵在文章的“个人简历”下($$$$$$$处)为文章添 加副标题:一名优秀的师大学生。并将新增加的 标题设置为:绿色10%的底纹,兰色楷体字、倾 斜显示,四号大小,带下划线,文字为正文格式,段前段后间距都是6磅。(“个人简历”为主标题,大小为小二、隶书,红色字体)。 ⑶将第一段的第一个字下沉两行,字体为楷体 (即“我的童年”下面的段落)。 ⑷设置Word的度量单位为“厘米”,所有正文段落 首行缩进1厘米,字体为仿宋体,小四号,常规形式。

软件基础第一次上机作业

1、设有一个线性表E={e1, e2, … , en-1, en},设计一个算法,将线性表逆置,即使元素排列次序颠倒过来,成为逆线性表E’={ en , en-1 , … , e2 , e1 },要求逆线性表占用原线性表空间,并且用顺序表和单链表两种方法表示,分别用两个程序来完成。(文件夹:顺序表逆置、单链表逆置) 线性表:#include<> #include<> typedef char datatype; const int maxsize=1024; typedef struct { datatype data[maxsize]; int last; }sequenlist; void create(sequenlist*&); void print(sequenlist*); void invert(sequenlist*); void main() { sequenlist*L; create(L); printf("建立的顺序表是:"); print(L); invert(L); printf("逆置后的顺序表是:"); print(L); } void create(sequenlist*&L) { L=(sequenlist*)malloc(sizeof(sequenlist)); L->last=0; printf("请输入数据:"); char ch; while((ch=getchar())!='\n') { L->last++; L->data[L->last]=ch; } } void print(sequenlist*L) { for(int i=1;i<=L->last;i++) printf("%2c",L->data[i]);

第2次上机作业

1、编写一程序P709.C实现以下功能 输入一个华氏温度,要求输出摄氏温度,计算公式为c=5(F-32)/9。编程可用素材:printf("Input the degree:")...、printf("\nF(...)=C(...)...。 程序的运行效果应类似地如图1所示,图1中的120是从键盘输入的内容。 2、编写一程序P711.C实现以下功能 用scanf输入圆半径r,圆柱高h,求圆周长C1(=2πr)、圆面积S(=πr2)、圆柱体积V(=πr2h)。(注意:本题中规定圆周率取值为3.14) 程序的运行效果应类似地如图1所示,图1中的r=1.3,h=5是从键盘输入的内容。 3、编写一程序P721.C实现以下功能 从键盘输入x,y,z的值,编写程序输出以下表达式的值: x+z%3*(int)(x+y)%2/4 程序的运行效果应类似地如图1所示,图1中的2.5,4.7,7是从键盘输入的内容。 4、编写一程序P722.C实现以下功能 从键盘输入一日期,年月日之间以“-”分隔,并以同样的形式但以“/”作分隔符输出。 程序的运行效果应类似地如图1所示,图1中的2009-12-9是从键盘输入的内容。

5、编写一程序P727.C实现以下功能 输入两个整数,输出这两个整数的和 程序的运行效果应类似地如图1所示,图1中的3 4是从键盘输入的内容。 6、编写一程序P728.C实现以下功能 已知某产品单价是30 ,输入其数量是num,输出其总价。 程序的运行效果应类似地如图1所示,图1中的8是从键盘输入的内容。 7、编写一程序P734.C实现以下功能 从键盘输入一个正方体的边长(整型),计算该正方体的体积和表面积。 程序的运行效果应类似地如图1所示,图1中的5是从键盘输入的内容。 8、编写一程序P736.C实现以下功能 从键盘上输入一个四位整数,计算各个位上的数字之和。编程可用素材:

C上机作业复习资料讲解

第一章作业答案. 1.编写程序,将华氏温度转化为摄氏温度:公式:C=(5/9)*(F-32)程序代码: #include using namespace std; void main() {float F,C; cout<<"Please input F:"; cin>>F; C=5*(F-32)/9.0; cout<<"C="< using namespace std; #define PI 3.14159 void main() {float r,h,v;

cout<<"Please input r h:"; cin>>r>>h; v=PI*r*r*h; cout<<"v="< #include using namespace std; void main() {float a,b,c,p,area; cout<<"Please input a b c:"; cin>>a>>b>>c; if((a+b>c)&&(b+c>a)&&(a+c>b)) {p=(a+b+c)/2.0; area=sqrt(p*(p-a)*(p-b)*(p-c)); cout<<"area="<

统计学上机作业

统计学第一次上机实验 一、上机项目名称:EXCEL、SPSS绘制统计图表 二、上机时间:2011年10月 13日,下午14:00—15:50 上机地点:基础楼综合实验室 三、上机目的、内容、步骤及结果 目的:掌握EXCEL、SPSS统计图表的基本操作 内容:教材29页4题EXCEL;30页6题SPSS 步骤及结果: ○1 29页4题EXCEL: 1、打开Nielsen的excel表格,并在相应位置输入TV Show、Millionaire、Frasier、Charmed、Chicago Hope、total、 frequency、relative frequency、percent frequency。 2、在Millionaire后的frequency中输入——函数——COUNTIF——range(所有的数组)——CRITERIE(C2)——确定,单元格中显示Millionaire的频数,并以此用此法求出Frasier、Charmed、Chicago Hope的频数。 3、在Millionaire后的relative frequency中输入=Millionaire 的frequency数值/50,得到Millionaire的相对频数。并依次据此求出Frasier,Charmed,Chicago Hope,total的相对频数。 4、在Millionaire后的umulative frequency中输入=Millionaire 的relative frequency数值*100,得到Millionaire的百分频数,并据此求出Frasier,Chicago Hope,Charmed的百分频率。

大连理工c语言第五次上机作业参考答案

第五次上机作业:(请用指针实现) 1.数据移位 有n(n<=10)个整数,使前面各数顺序向后移m(m<=n)个位置,最后m 个数变成最前面的m个数,如图所示。编写函数shift(a,n,m)实现上述功能,在主函数中输入n个整数和输出调整后的n个数。 SAMPLE OUTPUT Input n(n<=10):10 Input 10 integers:1 2 3 4 5 6 7 8 9 10 Output the original:1 2 3 4 5 6 7 8 9 10 Input m(m<=10):4 Output the shifted:7 8 9 10 1 2 3 4 5 6 #include #define N 10 void shift(int a[ ],int n,int m); void main( ) { int i,n,m; int a[N]; printf("Input n(n<=10):"); scanf("%d",&n); printf("Input %d integers:\n",n); for(i=0;i=0;j--) a[j+1]=a[j]; a[0]=t; } } n

数学软件与实验 第一次上机作业

数学软件与实验第一次上机作业 上机时间:2013-4-10 地点:E204 班级:071111 学号:07111014 姓名:曹红兴xdhjtang@https://www.sodocs.net/doc/5517476540.html, 学号、姓名、MATLAB、第一次作业 1.计算三角形三边分别为a,b,c中c边对应内角的角度 >> a = 3; b = 3; c = 3; >> acos((a^2+b^2-c^2)/2/a/b) *180/pi ans = 60.0000 >> a = 3; b = 4; c = 5; >> acos((a^2+b^2-c^2)/2/a/b) *180/pi ans = 90 >> a = 3; b = 4; c = 20; >> acos((a^2+b^2-c^2)/2/a/b) *180/pi ans = 1.8000e+002 -1.9715e+002i 2.试分别生成5 阶的单位阵、8 阶均匀分布的随机矩阵及其下三角 矩阵,要求矩阵元素为介于10~99之间整数 >> C=eye(5,5) C =

1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 >> N=randsrc(8,8,[10:99]) N = 59 21 72 34 19 76 25 52 66 28 54 28 22 15 45 68 12 23 58 60 24 87 22 12 65 27 50 67 65 94 12 85 42 13 21 47 61 98 94 60 14 67 54 28 14 87 37 86 54 35 86 95 93 80 36 41 27 58 88 17 75 56 39 50 >> Z=tril(N) Z = 83 0 0 0 0 0 0 0 91 96 0 0 0 0 0 0 21 24 81 0 0 0 0 0 92 97 96 45 0 0 0 0 66 96 69 68 72 0 0 0 18 53 13 25 38 54 0 0 35 82 86 73 95 50 20 0 59 22 94 12 13 68 54 72 3.生产列向量x=[1, 3, 10, 15, 20, 25, 30, 35, 40] >> x=[1;3;10;15;20;25;30;35;40] x = 1 3 10 15 20 25 30 35 40

第二次上机作业

第二次上机作业 目的: 运行课本第四章及课堂上讲过的例子,掌握Matlab的流程控制语句、函数及脚本文件的编程、调试方法。 要求:1、本次作业要求全部写M文件;2题目要求未明确要求写脚本文件还是函数文件的,学生自己决定是写脚本文件还是函数文件。只要能够实现要求。 作业: 1.分析脚本M文件及函数M文件的区别。 (1)M脚本文件名不必与函数名相同;(2)M函数文件调用时需要提供函数参数,而M脚本文件只需要提供文件名;(3)M脚本文件创建的每个变量都会保存到Matlab工作区,而M函数文件只有输出结果才保存到Matlab工作区中;(4)文件格式上的一些区别。 2.分别编写脚本文件,实现以下要求: 1)求[100,999]之间能被21整除的个数。 m=0; for n=100:999 if n/21==round(n/21) m=m+1; k(m)=n; else end end k,m 2)用magic(6)产生一矩阵,用至少两种方法求解其所有元素的和。(提示:1、for循环;2、sum函数) A=magic(6) B=sum(A) sum(B) q=0 for i=1:36 q=q+A(i); end q 3.编写函数文件,实现从键盘输入一个3位整数,将它反向输出。如639,输出为936。并调用该函数, 输入自己的学号后三位数,输出结果。 function f=xuehao(k) k=input('请输入一个数字'); a=fix(k/100); b=fix((k-a*100)/10); c=k-a*100-b*10; k=c*100+b*10+a xuehao

请输入一个数字200 k = 2 4. 定义一个函数文件,求∑=n i m i 1,要求在函数文件中包含能够通过help 查询到的说明,说明里面必须有自己的名字学号。然后调用该函数文件求 ∑∑∑===++10 1501210011k k k k k k 的值。 function s=sfun(m,n) %20111200xieyinbin s=0; for k=1:n i=k s=s+i^m end qiuhe(1,100)+qiuhe(2,50)+qiuhe(-1,10) ans = 4.7978e+004 5. 已知) 7.1cos(12 ln )7.1sin(++++=x x x y π,当x 取-3.0,-2.9,-2.8,…,2.8,2.9,3.0时, 1) 求各点的函数值; 2) 求这些数据的平均值; function y=mao(x) s=0,n=0; for x=-3:0.1:3 y=(sin(x+1.7)*log((pi+x)/2))/(1+cos(x+1.7)); n=n+1; s=y+s; end k=s/n mao(-3) s = 0 k = 0.1616 ans =-1.1359 6.求分段函数的值。

相关主题