算法上机试题

合集下载

C语言上机题库百科园第4章!南信大!

C语言上机题库百科园第4章!南信大!

第四章单选有以下程序,程序运行后的输出结果是( )#include<stdio.h>int fun (int x,int y){ if (x!=y) return ((x+y)/2);else return (x);}int main(){ int a=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c))); return 0;}A.12B.6C。

3 D。

8有以下程序,程序运行的输出结果( ) #include <stdio.h>int f(int x);int main(){int n=1,m;m=f(f(f(n))); printf(“%d\n”,m);return 0 ;}int f(int x){return x*2;}A.8B.4C.1D.2有以下程序,程序执行后变量w中的值是( ) #include<stdio。

h>int funl(double a){return a*=a;}int fun2(double x,double y){double a=0,b=0;a=funl(x);b=funl(y);return (int)(a+b);}int main(){double w;w=fun2(1.1,2.0);……}A。

5。

21 B。

0.0 C。

5。

0 D.5有以下程序,程序运行后的输出结果是()#include<stdio。

h〉int fun(){ static int x=1;x*=2;return x;}int main(){int i,s=1;for(i=1;i〈=3;i++) s*=fun();printf(”%d\n”,s);}A。

10 B。

64 C。

0 D。

30有以下程序,程序运行后的输出结果是( )#include<stdio。

h>int f(int x,int y){return ((y-x)*x);}int main(){int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf(”%d\n",d);}A.10 B。

西安电子科技大学出版社计算方法上机答案

西安电子科技大学出版社计算方法上机答案

西安电子科技大学出版社《计算方法》任传祥等编著第九章计算方法上机参考答案实验一,算法一#include <stdio.h>#include <math.h>double I0=log(6)/log(5),I1;int n=1;main (){while(1){I1=1.0/(n)-I0*5.0;printf("%d %lf\n", n,I1);if(n>=20)break;elseI0=I1;n++;}}实验一,算法二#include <stdio.h>#include <math.h>double I0=(1/105.0+1/126.0)/2,I1;int n=20;main (){printf("%d %lf\n", n,I0);while(1){I1=1.0/(5.0*n)-I0/5.0;printf("%d %lf\n", n-1,I1);if(n<2)break;elseI0=I1;n--;}}实验二,二分法#include <stdio.h>#include <math.h>#define esp 1e-3double f(double x);main (){double a=1,b=2,x;while(fabs(b-a)>esp){x=(a+b)/2;printf("x=%lf\n",x);if(f(x)==0)break;elseif(f(x)*f(a)<0)b=x;elsea=x;}}double f(double x){return pow(x,3)-x-1;}实验二,牛顿迭代法#include<stdio.h>#include<math.h>double f(double x);double f1(double x);#define esp 1e-3void main(){double x0 = 1.5, x1;x1 = x0 - f(x0) / f1(x0);printf("x=%lf\n", x1);x0 = x1;x1 = x0 - f(x0) / f1(x0);printf("x=%lf\n", x1);while (fabs(x1 - x0)>esp){x0 = x1;x1 = x0 - f(x0) / f1(x0);printf("x=%lf\n", x1);} }double f(double x){return pow(x, 3) - x - 1;} double f1(double x){return 3 * x*x - 1;}弦割法#include<stdio.h>#include<math.h>double f(double x);#define esp 1e-3void main(){double x0 = 1.5, x1=2.0,x2;do{ x2=x1 - (x1-x0)*f(x1) /(f(x1)-f(x0));x0=x1;x1=x2;printf("x=%lf\n", x1);}while (fabs(x1 - x0)>esp);{printf("x=%lf\n", x1);}}double f(double x){return pow(x, 3) - x - 1;}实验3#include <stdio.h>/*列主元高斯消去法*/#include <math.h>float x[3],temp,max;float A[3][4]={10,-2,-1,3,-2,10,-1,15,-1,-2,5,10},c[3][4]={10,-2,-1,3,-2,10,-1,15,-1,-2,5,10}; int n=3,i,k,j,m;void main(){for(i=0;i<n;i++){max=A[i][i];k=i;for(j=j+1;j<n;j++){{max=fabs(A[j][i]);k=j;}}if(k!=i){for(j=i+1;j<=n;j++){temp=A[i][j];A[i][j]=A[k][j];A[k][j]=temp;}}for(j=i+1;j<n;j++)for(m=i+1;m<=n;m++){c[j][m]=c[j][m]+(-c[j][i]/c[i][i])*c[i][m];}}for(i=n-1;i>=0;i--){temp=0.0;for(j=n-1;j>=i+1;j--)temp=temp+c[i][j]*x[j];x[i]=(c[i][n]-temp)/c[i][i];}printf("x[1]=%f\nx[2]=%f\nx[3]=%f\n",x[0],x[1],x[2]);实验四,拉格朗日插值#include<stdio.h>int n=5,i,j;double l,L=0,X=0.5;main(){double x[5]={0.4,0.55,0.65,0.8,0.9};doubley[5]={0.41075,0.57815,0.69675,0.88811,1.02652}; for(i=0;i<n;i++){l=y[i];for(j=0;j<n;j++){if(j!=i)l=l*(X-x[j])/(x[i]-x[j]); } L=L+l;}printf("%lf\n",L);return 0;} X=0.5 X=0.7 X=0.85牛顿插值法#include<stdio.h>#include<math.h>main(){double x[5]={0.4,0.55,0.65,0.8,0.9};doubley[5]={0.41075,0.57815,0.69675,0.88811,1.02652};int n=5,i,j;double z;printf("input z\n");scanf("%lf",&z);double a[5][5];for(i=0;i<5;i++)a[i][0]=y[i];for(i=1;i<5;i++)for(j=i;j<5;j++)a[j][i]=(a[j][i-1]-a[j-1][i-1])/(x[j]-x[j-i]);double N=a[0][0],temp=1.0;for(i=1;i<n;i++){temp=temp*(z-x[i-1]);N=N+a[i][i]*temp;}printf("N=%lf\n",N);return 0;}实验五曲线拟合#include <stdio.h>#include <math.h>float x[5]={1,2,3,4,5};float y[5]={7,11,17,27,40};float A[2][3],c[2][3];float z[2],temp,max;int i,j,k,m;int n=2;void main(){for(i=0;i<5;i++){c[0][0]=A[0][0]+=1;c[0][1]=A[0][1]+=x[i];c[0][2]=A[0][2]+=y[i];c[1][0]=A[1][0]+=x[i];c[1][1]=A[1][1]+=x[i]*x[i];c[1][2]=A[1][2]+=x[i]*y[i];}/* for(i=0;i<2;i++){printf(" %lf %lf %lf\n",A[i][0],A[i][1],A[i ][2]);}*/for(i=0;i<n;i++){max=A[i][i];k=i;for(j=j+1;j<n;j++){if(fabs(A[j][i])>max){max=fabs(A[j][i]);k=j;}} if(k!=i){for(j=i+1;j<=n;j++){temp=A[i][j];A[i][j]=A[k][j];A[k][j]=temp;}}for(j=i+1;j<n;j++)for(m=i+1;m<=n;m++){c[j][m]=c[j][m]+(-c[j][i]/c[i][i])*c[i][m];}}for(i=n-1;i>=0;i--){temp=0.0;for(j=n-1;j>=i+1;j--)temp=temp+c[i][j]*z[j];z[i]=(c[i][n]-temp)/c[i][i];}printf("a=%f\nxb=%f\n",z[0],z[1]); }实验六数值积分/*梯形*/#include<stdio.h>#include<math.h> double f(double x); main(){double x[10],y[10];double h,b=1,a=0,I;int n,i;printf("n\n");scanf("%d",&n);h=(b-a)/n;for(i=0;i<=n;i++){x[i]=a+(i*h);y[i]=f(x[i]);}I=f(a)+f(b);for(i=1;i<=n-1;i++){I=I+2*y[i];}I=(h/2)*I;printf("%lf",I);}double f(double x){double f;f=1.0/(1.0+(x*x));return(f);}/*辛普森*/#include<stdio.h>#include<math.h>double f(double x);main(){double x[30],y[30];double h,b=1,a=0,I;int n,i;printf("n\n");scanf("%d",&n);//点乘2扩展h=(b-a)/n;x[10]=1;y[10]=f(x[10]);for(i=0;i<n;i++){x[2*i]=a+(i*h);y[2*i]=f(x[2*i]);x[2*i+1]=a+(i+(1.0/2.0))*h;y[(2*i)+1]=f(x[(2*i)+1]);}I=f(a)+f(b);for(i=0;i<n;i++){I=I+4*y[(2*i)+1];}for(i=1;i<n;i++){I=I+2*y[2*i];}I=(h/6)*I;printf("%lf\n",I);}double f(double x){double f;f=1.0/(1.0+(x*x));return(f);}/*梯形*//*辛普森*/。

算法设计技巧与分析习题答案

算法设计技巧与分析习题答案

算法设计技巧与分析习题答案【篇一:算法设计与分析考试题及答案】一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_________,________,________,__________,__________。

2.算法的复杂性有_____________和___________之分,衡量一个算法好坏的标准是______________________。

3.某一问题可用动态规划算法求解的显著特征是____________________________________。

4.若序列x={b,c,a,d,b,c,d},y={a,c,b,a,b,d,c,d},请给出序列x和y的一个最长公共子序列_____________________________。

5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含___________。

6.动态规划算法的基本思想是将待求解问题分解成若干____________,先求解___________,然后从这些____________的解得到原问题的解。

7.以深度优先方式系统搜索问题解的算法称为_____________。

8.0-1背包问题的回溯算法所需的计算时间为_____________,用动态规划算法所需的计算时间为____________。

9.动态规划算法的两个基本要素是___________和___________。

10.二分搜索算法是利用_______________实现的算法。

二、综合题(50分)1.写出设计动态规划算法的主要步骤。

2.流水作业调度问题的johnson算法的思想。

3.若n=4,在机器m1和m2上加工作业i所需的时间分别为ai和bi,且(a1,a2,a3,a4)=(4,5,12,10),(b1,b2,b3,b4)=(8,2,15,9)求4个作业的最优调度方案,并计算最优值。

4.使用回溯法解0/1背包问题:n=3,c=9,v={6,10,3},w={3,4,4},其解空间有长度为3的0-1向量组成,要求用一棵完全二叉树表示其解空间(从根出发,左1右0),并画出其解空间树,计算其最优值及最优解。

DS-上机体验作业

DS-上机体验作业

数据结构上机验证题一、设计并实现一个单链表操作算法:1)建立一个有序单链表h(a1,a2,…,a10);2)验证P56 题2.2, 2.3题算法,输出其结果值;二、设计并实现一个二叉树的操作算法:1、构造一二叉树,输出其中序遍历序列。

2、验证P194 题7.6题算法。

选做:验证其它感兴趣题。

每人所有程序用一个文件名(姓名+学号),以班为单位,集体发给教辅!1.单链表建立与操作例//单链表的创建、遍历、插入、删除、查询:#include <stdio.h>#include <malloc.h>#define N 8typedef struct node{int data;struct node *next;}node;node * createsl(){ node *p,*s,*h;int j=1,x;p=s=h=(node*)malloc(sizeof(node));h->next=NULL;printf("please input the data to create the list,end with -1 or %d nupmbers\n",N);while(x!=-1&&j<=N){ printf("number %d:",j);scanf("%d",&x);s=(node*)malloc(sizeof(node));s->data=x;if(h->next==NULL)h->next=s;elsep->next=s;p=s;j++;}p->next=NULL;return h;}int access(node *h,int i){ node *p;int j=1;p=h->next;while(p!=NULL){ if(p->data==i)break;p=p->next;j++;}if(p!=NULL){ printf("find the number in position:%d\n",j);return(p->data);}else{ printf("can't find the number in the list!\n"); return -1;}}void insertsl(node *h,int i){ node *p,*t;int j=1;p=h->next;;while(p->next!=NULL){ p=p->next;j++;}t=(node*)malloc(sizeof(node));t->data=i;t->next=p->next;p->next=t;printf("insert success in position %d\n",j+1); }void deletesl(node *h,int i){ node *p,*s,*q;int j=1;p=h;while(p->next!=NULL){ q=p->next;if(q->data==i)break;p=p->next;j++;}if(p->next==NULL){ printf("Can't find the number you want to delete.\n"); return;}else{ s=p->next;p->next=s->next;free(s);printf("delete success in position %d\n",j+1);}}void print(node *h){ printf("\nprint all the data in the list:") ;node *s;s=h->next;if(s!=NULL){ while(s!=NULL){ printf(" %d ",s->data) ;s=s->next;}}elseprintf("the list is empty!%d");printf("\n");}int main(){ node *p;int a;p=createsl() ;printf("\nyou need find the number:\n");scanf("%d",&a);access(p,a);printf("\nplease input the number you want to insert:\n");scanf("%d",&a);insertsl(p,a);printf("\nplease input the number you want to delete:\n");scanf("%d",&a);deletesl(p,a);print(p);return 0;}2.二叉树的建立与遍历程序例#define LEN sizeof(struct tree)#define NULL 0#include<stdio.h>#include<malloc.h>struct tree{char data;struct tree *lchild,*rchild;};//创建二叉树struct tree *creat(){ //输入用广义表简化法,如图:AB空C空空D空空char c;struct tree *t;A c=getchar();if(c==' ')t=NULL;else{t=(struct tree*)malloc(LEN);t->data=c;t->lchild=creat();t->rchild=creat();}return t;}//前序遍历void Preprint(struct tree*t){if(t!=NULL){printf("%c->",t->data);Preprint(t->lchild);Preprint(t->rchild);}}//中序遍历void Inprint(struct tree*t){if(t!=NULL){Inprint(t->lchild);printf("%c->",t->data);Inprint(t->rchild);}}//后序遍历void Postprint(struct tree*t){if(t!=NULL){Postprint(t->lchild);Postprint(t->rchild);printf("%c->",t->data);}}main(){struct tree *t;printf("Please input tree in order:\n");t=creat();printf("The result of Preorder traversal is\n"); Preprint(t);printf("^\nThe result of Inorder traversal is\n"); Inprint(t);printf("^\nThe result of Postorder traversal is\n"); Postprint(t);printf("^\n");return 0 ;}。

2009年12月江苏信息技术学业水平测试算法与程序设计上机题库答案

2009年12月江苏信息技术学业水平测试算法与程序设计上机题库答案
If ((year Mod 4 = 0) And (year Mod 100 <> 0)) ① (year Mod 400 = 0) Then
答案 For i = 1 To Len(Text1.Text) temp2 = 9 - temp;temp2 = -temp + 9 Text2.Text = y a = i \ 100 b = (i - a * 100) \ 10 Next i;Next s(i) = Val(InputBox("请输入一个数")) For i = 9 To 0 Step -1 Print s(i);;Print s(i);Print str(s(i));Print Cstr(s(i)) ss = Val(Text1.Text);ss = Val(Text1) h = ss \ 3600;h = Int(ss / 3600);h=ss\60\60 s = (ss - h * 3600) Mod 60 If a > b Then max = a Else max = b If c > max Then max = c Label3.Caption = CStr(max) For i = 1 To 4 For j = 1 To 5 Print "*"; If x >= 10 Then;If 10 <= x Then;If x > 9 Then;If x > 9 Then;If 9 > x s = 4 * x * 0.8;s = 4 * 0.8 * x Label1.Caption = CStr(s) For i = 1 To 10 m = j * 8 + i * 10;m = 8 * j + i * 10 x = Val(Text1.Text);x = Val(Text1) If c = x Then n = 1 Label1 Label1.Top = Label1.Top - 100 Label1.Top = Label1.Top + 100 b = Val(Text2.Text);b = Val(Text2) If p >= 0 Then;If 0 <= p Then;If -1 < p Then;If p>-1 Then Else x = Val(InputBox("请输入x的值")) y = x + 5 * a End If a = Val(Text1.Text);a = Val(Text1) b = g * 100 + shi * 10 + bai Text2.Text = CStr(b);Text2 = CStr(b) a = Val(InputBox("请输入边长a的值:")) s = sqr(q * (q - a) * (q - b) * (q - c)) Print s;Print Str(s);Print CStr(s) If ((year Mod 4 = 0) And (year Mod 100 <> 0)) Or (year Mod 400 = 0) Then Print "是闰年" Print "不是闰年" For Yiyuan = 1 To 100;For Yiyuan = 1 To 99;For Yiyuan = 1 To 98;For Yiyuan = 1 To 95;For Yiyuan = 1 To 94 Wujiao = 100 - Wuyuan - Yiyuan End If cost = x * 6.8;cost = 6.8 * x End If Print cost;Print Str(cost);Print CStr(cost) Fib = 1 End If S = Fib(10) Label1 Text1

华中科技大学《数值计算方法》考试试卷

华中科技大学《数值计算方法》考试试卷

华中科技大学《数值计算方法》考试试卷2006~2007学年 第一学期 《计算方法》课程考试试卷(A 卷)(开卷)院(系)__________专业班级______________学号______________ 姓名__________________考试日期: 2007年1月30日 考试时间: 下午 2:30~5:00一. 填空题 (每小题 4分,共 28份)1.已知矩阵⎥⎦⎤⎢⎣⎡-=1011A,则=∞A 。

2. 若用正n 边形的面积作为其外接圆面积的近似值,则该近似值的相对误差是 。

3.三次方程0123=+--x x x 的牛顿迭代格式是 。

4.若求解某线性方程组有迭代公式F BX X n n +=+)()1(,其中⎥⎥⎦⎤⎢⎢⎣⎡--=33a a a B ,则该迭代公式收敛的充要条件是 。

5.设xxe x f =)(,则满足条件)2,1,0(22=⎪⎭⎫⎝⎛=⎪⎭⎫ ⎝⎛i i f i p 的二次插值公式=)(x p 。

6.已知求积公式)1()1()2/1()0()1()(10f f f dx x f ααα+++-≈⎰至少具0次代数精度,则=α 。

7.改进的Euler 方法)],(),([211n n n n n n n f h y t f y t f hy y +++=++应用于初值问题1)0(),()('==y t y t y 的数值解=n y 。

二. (10分) 为数值求得方程022=--x x 的正根,可建立如下迭代格式,2,1,0,21=+=-n x x n n ,试利用迭代法的收敛理论证明该迭代序列收敛,且满足2lim =∞→n n x .解答内容不得超过装订线三. (20分) 给定线性方程组⎪⎩⎪⎨⎧=++-=---=++2628419541022321321321x x x x x x x x x(1)试用Gauss 消去法求解其方程组;(2) 给出求解其方程组的Jacobi 迭代格式和Gauss-Seidel 迭代格式,并说明其二种迭代格式的收敛性。

西安交通大学算法上机实验报告

《计算机算法设计与分析》上机实验报告姓名:班级:学号:日期:2016年12月23日算法实现题3-14 最少费用购物问题★问题描述:商店中每种商品都有标价。

例如,一朵花的价格是2元,一个花瓶的价格是5元。

为了吸引顾客,商店提供了一组优惠商品价。

优惠商品是把一种或多种商品分成一组,并降价销售。

例如,3朵花的价格不是6元而是5元。

2个花瓶加1朵花的优惠价格是10元。

试设计一个算法,计算出某一顾客所购商品应付的最少费用。

★算法设计:对于给定欲购商品的价格和数量,以及优惠价格,计算所购商品应付的最少费用。

★数据输入:由文件input.txt提供欲购商品数据。

文件的第1行中有1个整数B(0≤B≤5),表示所购商品种类数。

在接下来的B行中,每行有3个数C,K和P。

C表示商品的编码(每种商品有唯一编码),1≤C≤999;K表示购买该种商品总数,1≤K≤5;P是该种商品的正常单价(每件商品的价格),1≤P≤999。

请注意,一次最多可购买5*5=25件商品。

由文件offer.txt提供优惠商品价数据。

文件的第1行中有1个整数S(0≤S≤99),表示共有S种优惠商品组合。

接下来的S行,每行的第1个数描述优惠商品组合中商品的种类数j。

接着是j个数字对(C,K),其中C是商品编码,1≤C≤999;K表示该种商品在此组合中的数量,1≤K≤5。

每行最后一个数字P (1≤P≤9999)表示此商品组合的优惠价。

★结果输出:将计算出的所购商品应付的最少费用输出到文件output.txt。

输入文件示例输出文件示例Input.txt offer.txt output.txt2 2 147 3 2 1 7 3 58 2 5 2 7 1 8 2 10解:设cost(a,b,c,d,e)表示购买商品组合(a,b,c,d,e)需要的最少费用。

A[k],B[k],C[k],D[k],E[k]表示第k种优惠方案的商品组合。

offer (m)是第m种优惠方案的价格。

C++常用算法doc

C 常用算法笔试中有部分主要是上机考试中的算法1. 基本算法输出格式控制等求多项式之和、之积1 求sumn 1 2 3 … n 2 函数int funint number返回Sn 1/1 1/2 1/3 … 1/number 3 函数funint n计算在n范围内能被7或11整除的所有整数的倒数和。

4 求cos............xxxxnnn12412224122 编写函数判断一个数是否是质数素数。

算法求两个数的最大公约数和最小公倍数。

算法编一个函数用于判断一个年份是否是闰年。

函数int funint y int m int d计算并返回某年某月某日是当年的第几天。

特殊情况若是闰年且月份大于3则加一天。

求一个数的所有约数因子分解质因数。

1 函数funint n计算所有n的因子之和不包括自身2 求出x的所有约数并调用函数写入文件中。

3 一个数恰好等于它的因子之和这个数就称为“完数”例如6123。

编程找出1000以内的所有完数。

4 函数funint m int n 判定两个数是否是亲和数。

亲和数的定义如果n的所有因子之和因子除掉自身等于m。

m的所有因子之和等于n则判定m、n是互为亲和数。

5 函数funint n 完成的功能是将n分解为质数的积的形式。

如902×3×3×5。

简54题讲根据n的大小输出由组成的图形如n5输出函数int funint n输出一个n行的杨辉三角形。

输出9×9口诀涉及输出格式的控制。

找出在某个范围内满足条件的所有数1 在自然数中寻找n个连续的合数非质数。

2 在某范围内如10万以内找出一个数他加上100后是一个完全平方数再加上268又是一个完全平方数。

3 水仙花数。

函数bool funint n判断n是否为回文数如23632。

若是返回true否则返回false。

本题包含了数的分解与合并算法。

简62题讲 2. 数制转换将x的值转换成二进制数字符串输出到屏幕。

数值分析韩旭里答案

数值分析韩旭里答案【篇一:数值分析上机题目】>1631110xxxx 材料科学与工程学院一.第2章插值法l2.7 给定数据表2-15.用newton插值公式计算3次插值多项式n3(x).表2-15x f(x)1 1.251.52.500 1.002 5.50a. matlab代码如下,two.m,%第二章,p45,练习题2第七题 clear(); x=[1,1.5,0,2];y(:,1)=[1.25,2.50,1.00,5.50];%已知点集合x和y syms t w; w(1)=1; %计算基函数序列w和差商表y,以及函数序列的权数diag(y),计算的牛顿三次多项式表述为t的函数 for j=2:length(x) fori=j:length(x)y(i,j)=(y(i,j-1)-y(i-1,j-1))/(x(i)-x(i-j+1)); i=i+1; endw(j)=prod(t-x(1:j-1)); j=j+1; enddisp(三次牛顿插值多项式为); disp(collect(w*diag(y)));plot(x,y(:,1),*); hold on;fplot(collect(w*diag(y)),[-0.5,2.5]);legend({已知点集,三次牛顿插值多项式函数},location,northwest,fontsize,14); xlabel(x,fontsize,16);ylabel(y,fontsize,16); hold off;b. 计算结果如下:二.第3章函数逼近与数据拟合a. matlab代码,three.m,%第三章函数逼近与数据拟合,p68练习题,第2题 clear(); syms x;%所使用的非线性基函数序列,用符号表示 y=abs(x);%被逼近函数f=[1,x^2,x^4];%求解法方程的系数矩阵a*gn=b,其中a和b均为行向量gn=ones(length(f),length(f)); for i=1:length(f) for j=1:length(f) gn(i,j)=int(f(i)*f(j),-1,1);j=j+1; endb(i)=int(f(i)*y,-1,1); i=i+1; enda=b/gn;%最佳平方逼近的系数行向量 disp(逼近函数表达式);disp(vpa(f*a));disp(最佳函数逼近得平方误差); disp(vpa(int(y^2,-1,1)-a*b));fplot(y,[-1,1]); hold on; fplot(a*f,[-1,1]);legend({被逼近函数,逼近函数},location,north,orientation,horizontal,fontsize,16,fontweight,b old);xlabel(x,fontsize,20,fontweight,bold);ylabel(y,fontsize,20,fontweight,bold); hold off;b. 运行结果如下:三.第4章数值积分与数值微分例4.9用romberg求积法计算定积分 01sin?(??)??a. matlab代码,four.m%romberg求积公式,外推原理 clear(); clear(); format long; a=0; b=1;t(1,1)=(b-a)/2*(f(a)+f(b));t(2,1)=1/2*t(1,1)+(b-a)/2*f((a+b)/2); t(1,2)=(4*t(2,1)-t(1,1))/(4-1);col=2;while abs(t(1,col)-t(1,col-1))0.5*10^-6%t(1,col)对应的计算的是多少步的值,col→coln关系col=col+1;%此时求得是第n+1次均分后的结果,使用的是第n次的结果,注意在矩阵 %计算的第n斜列是第n-1次均分的结果 for j=1:colif j==1h=(b-a)/2^(col-2);%使用n+1之前的第n次结果【篇二:数值分析a教学】>一、课程基本信息二、课程目的和任务“数值分析”是理工科院校计算数学、力学、物理、计算机软件等专业的学生必须掌握的一门重要的基础课程。

中大实践考核数据结构试题和答案(上机考试)

数据结构样题1、已知整数a、b,假设函数succ(x)=x+1、pred(x)=x-1,不许直接用“+”、“-”运算符号,也不许用循环语句,只能利用函数succ( )和pred( ),试编写计算a+b,a-b的递归函数add(a,b),sub(a,b),并在主程序中验证函娄的正确性。

#include "stdio.h"#include "conio.h"int succ(int x){return x+1;}int pred(int x){return x-1;}int add(int a,int b){if(b==0) return a;if(b>0) return succ(add(a,pred(b)));else return pred(add(a,succ(b)));}int sub(int a,int b){if(b==0) return a;if(b>0) return pred(sub(a,pred(b)));else return succ(sub(a,succ(b)));}void main(){int k,a,b;clrscr();printf("\n Please input a b: ");scanf("%d%d",&a,&b);printf("\n a+b=%d",a+b);printf("\n a-b=%d",a-b);printf("\n add(a,b)=%d",add(a,b));printf("\n sub(a,b)=%d",sub(a,b));if((a+b==add(a,b))&&(a-b==sub(a,b)))printf("\n It's right! ");else printf("\n It's wrong! \n\n");}样题2 试编写一个求解Josephus问题的函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第 1 页 共 20 页 第一套 修改考生文件夹下的VB程序,使其具有下列功能:在文本框Text1中输入出租车行驶的路程(单位:千米),单击“计算”命令按钮Command1后,在文本框Text2中输出计算结果。运行界面如(A)图所示。

(A) 打开考生文件夹的“VB”文件夹下的工程文件“test.vbp”,完成下列操作: (1)参照(A)图,在窗体中添加相关对象,并在属性窗口中设置各对象的相关属性。 (2)选择“计算”按钮Command1合适的事件过程,该事件过程的代码从“VB”文件夹下“code.txt”文件中得到。 (3)调试运行程序,输入路程15千米,单击“计算”命令按钮Command1,则应付的金额是 元。 (4)保存窗体文件和工程文件,生成可执行程序“test.exe”并保存到“VB”文件夹下。

Label1 Command1 Text1

Label2 Text2 第 2 页 共 20 页

第二套 修改考生文件夹下的VB程序,使其具有下列功能:在文本框Text1中输入一个字符串,单击“确定”按钮Command1,在列表框List1中显示结果。

(A) 打开考生文件夹的“VB”文件夹下的工程文件“test.vbp”,完成下列操作: (1)参照(A)图,完成界面设计:添加所需对象,在属性窗口中设置各对象的有关属性。 (2)选择“确定”按钮Command1合适的事件过程,该事件过程的代码从“VB”文件夹下“code.txt”文件中得到 (3)调试并运行程序,分别输入以下三组测试数据: 测试数据1:happy 测试数据2:HAPPY 测试数据3:123456 根据输出结果,分析该程序的功能是 (A)统计字符串的长度 (B)统计字符串中每个字符的出现次数 (C)将字符串反向输出 (D)将字符逐个分离出来并输出 (4)保存窗体文件和工程文件,生产可执行程序“test.exe”并保存到考生文件夹的“VB”文件夹下。

Label1 Command1 Text1

List1 第 3 页 共 20 页 第三套: 修改考生文件夹下的VB程序,使其具有下列功能:在文本框Text1中输入某人的体重w(单位为千克),在文本框Text2中输入某人的身高h(单位为米),单击“检测”命令按钮Command1,在标签Label3上显示“健康”或“欠健康”,一般认为其值在20至25之间为“健康”,否则认为“欠健康”。计算公式为:BMI=w/(h×h)。运行界面如(A)图所示。

(A) 打开考生文件夹的“VB”文件夹下的工程文件“test.vbp”,完成下列操作: (1)参照(A)图,完成界面设计:添加所需对象,在属性窗口中设置各对象的有关属性。 (2)调试并运行程序,找出程序中唯一的错误位置是 。 (A)注释①所在行 (B)注释②所在行 (3)改正(2)中所找出的错误,使程序实现上述功能。 (4)保存窗体文件和工程文件,生产可执行程序“test.exe”并保存到考生文件夹的“VB”文件夹下。

Text1 Text2 Command1

Label3 第 4 页 共 20 页

第四套 编写一个具有下列功能的VB程序:在1至999之间的自然数中,找出能被2整除又能被7整除的所有整数,并统计个数。单击“统计”命令按钮Command1,在列表框list1中显示符合条件的整数,在文本框Text1中输出符合条件的整数的个数。窗体对象和运行界面如(A)图、(B)图所示。

(A) (B) (1)创建一个“标准EXE”工程,将其窗体文件和工程文件分别以“test.frm”、“test.vbp”为文件名保存到考生文件夹下“VB”文件夹中。 (2)参照(A)图和(B)图,在窗体中添加相关对象,并在属性窗口中设置各对象的相关属性。 (3)选择“统计”按钮Command1合适的事件过程,该事件过程的代码从“VB”文件夹下“code.txt”文件中得到。调试并运行程序。 (4)保存窗体文件和工程文件,生成可执行程序“test.exe”并保存到“VB”文件夹下。

list1 Command1

Text1 第 5 页 共 20 页

第五套 修改考生文件夹下的VB程序,使其具有下列功能:在文本框Text1中输入一个字符串,在文本框Text2中输入一个字符串,单击“交换”命令按钮Command1,实现两个文本框内容的交换。单击“取消”命令按钮Command2,退出整个程序。交换前后的运行界面如(A)图、(B)图所示。

(A) (B) 打开考生文件夹的“VB”文件夹下的工程文件“test.vbp”,完成下列操作: (1)参照(A)图,在窗体中添加相关对象,并在属性窗口中设置各对象的相关属性。 (2)选择“交换”按钮Command1合适的事件过程,该事件过程的代码从“VB”文件夹下“code.txt”文件中得到。 (3)选择“取消”按钮Command2合适的事件过程,该事件过程的代码从“VB”文件夹下“code.txt”文件中得到。 (4)保存窗体文件和工程文件,生成可执行程序“test.exe”并保存到“VB”文件夹下。

Text1 Command2 Command1 Text2 第 6 页 共 20 页

第六套: 修改考生文件夹下的VB程序,使其具有下列功能:计算s=1+2+3+„„n的值,通过文本框Text1输入n的值,单击“计算”命令按钮Command1,在文本框Text2中输出计算的结果。窗体对象和运行界面如(A)图、(B)图所示。

(A) (B) 打开考生文件夹的“VB”文件夹下的工程文件“test.vbp”,完成下列操作: (1)参照(A)图和(B)图,在窗体中添加相关对象,并在属性窗口中设置各对象的相关属性。 (2)选择合适的对象及事件过程,该事件过程的代码从“VB”文件夹下“code.txt”文件中得到。 (3)调试并运行程序,找出程序中的错误并改正。 (4)保存窗体文件和工程文件,生产可执行程序“test.exe”并保存到考生文件夹的“VB”文件夹下。

Text1 Text2 第 7 页 共 20 页

第七套 编写一个具有下列功能的VB程序:在文本框Text1中输入一个15位或18位的身份证号码,然后单击“出生年月”命令按钮Command1,在标签Label1上显示出生年月。如果身份证号码输入有误,则在标签Label1上显示“你输入的身份证位数不正确”。 窗体对象和运行界面如(A)图、(B)图所示。

(A) (B) 创建一个“标准EXE”工程,将其窗体文件和工程文件分别以“test.frm”、“test.vbp”为文件名保存到考生文件夹下“VB”文件夹中。 (2)参照(A)图,在窗体中添加相关对象,并在属性窗口中设置各对象的相关属性。 (3)选择“统计”按钮Command1合适的事件过程,该事件过程的代码从“VB”文件夹下“code.txt”文件中得到。在字符“①”处填写正确的VB语句(删除字符“①”),调试并运行程序。 (4)保存窗体文件和工程文件,生成可执行程序“test.exe”并保存到“VB”文件夹下。

Text1 Command1 Label1 第 8 页 共 20 页

第八套 修改考生文件夹下的VB程序,使其具有下列功能:在文本框Text1输入小写字母,单击“转换”命令按钮Command1,在文本框Text2中输出相对应的大写字母。运行界面如(A)图所示。

(A) 打开考生文件夹的“VB”文件夹下的工程文件“test.vbp”,完成下列操作: (1)参照(A)图,在窗体中添加相关对象,并在属性窗口中设置各对象的相关属性。 (2)在代码窗口输入相关代码,代码从“VB”文件夹下“code.txt”文件中得到。 (3)完善代码:当再次单击“清空”按钮时,清除文本框Text1和文本框Text2的内容。在字符“①”处填写正确的VB语句(删除字符“①”),调试并运行程序。 (4)保存窗体文件和工程文件,生成可执行程序“test.exe”并保存到“VB”文件夹下。

Text1 Command2 Command1

Text2 第 9 页 共 20 页

第九套: 修改考生文件夹下的VB程序,使其具有下列功能:单击“产生随机数”命令按钮Command1,在左边列表框List1中显示10个介于[10,99]的随机整数,在右边列表框List2显示每个随机数的十位和个位。单击“清除”按钮Command2,清空列表框List1和List2中的数据。运行界面如(A)图所示。

(A) 打开考生文件夹的“VB”文件夹下的工程文件“test.vbp”,完成下列操作: (1)参照(A)图,完成界面设计:添加所需对象,在属性窗口中设置各对象的有关属性。 (2)调试并运行程序,找出程序中唯一的错误并改正。 (3)完善代码:当再次单击“清空”按钮时,清除列表框List1和列表框List2的内容。选择“清空”按钮Command2合适的事件过程,编写代码。调试运行。 (4)保存窗体文件和工程文件,生产可执行程序“test.exe”并保存到考生文件夹的“VB”文件夹下。

相关文档
最新文档