当前位置:文档之家› 上机实验六 一维数组 - 答案

上机实验六 一维数组 - 答案

上机实验六  一维数组 - 答案
上机实验六  一维数组 - 答案

上机实验六一维数组

班级学号姓名

本次题目一共5题,必做4个,选做1个。

选做题可能有点难度,请尝试着做一下,能做出来说明目前你已经很强了!

一.目的要求

1.掌握一维数组的基本概念,定义和初始化方法;

2.掌握一维数组的基本操作,如输入、输出、引用数组元素;

3.掌握与数组有关的基本算法,如寻找最大/最小值、排序等。

二.实验内容

【实验题1】程序改错:源程序用数组求Fibonacci数列前20项,但在带标记的代码行存在错误。源程序如下:#include

void main()

{ int i, fib[20];

fib[1]= fib[2]= 1; //错误1

for(i=3; i<=20; i++) //错误2

fib[i]= fib[i-1] +fib[i-2];

for(i=1; i<=20; i++){ //错误3

printf("%6d", fib[i]);

if( (i+1)%5==0 ) printf("\n");

}

}

数组的下标应该从几开始?标出的三个错误语句行,应分别改为?

数组下标应该从0开始,错误1修改为:fib[0]= fib[1]= 1;错误2修改为:for(i=2; i<20; i++);

错误3修改为:for(i=0; i<20; i++)

未改正错误之前,程序运行结果是(只写最后一项)

4181

改正后,程序运行结果是(只写最后一项)

6765

【实验题2】程序填空:给定平面上10个点,求其中离原点最近的点。源程序用一维数组x存放这10个点的x坐标,用一维数组y存放相应的y坐标,即第i个点的坐标为(x[i], y[i])。用变量index记录最近点的下标。程序中使用距离的平方做比较:x*x+y*y。

#include

void main()

{

int i, index; //index是离原点最近的点的下标

double d, min; //min是到原点的最近距离的平方

double x[]={1.1, 3.2, -2.5, 5.67, 3.42, -4.5, 2.54, 5.6, 0.97, 4.65};// 赋初值

double y[]={-6, 4.3, 4.5, 3.67, 2.42, 2.54, 5.6, -0.97, 4.65, -3.33};// :赋初值

index= 0 ; min= x[0]*x[0]+y[0]*y[0]; //设第0个点为最近点

for(i=1; i<10; i++){

d= x[i]*x[i]+y[i]*y[i];

if( d < min ){ //Line 11

min=d;

index=i;

}

}

printf("%d: x=%.2f, y=%.2f \n", index, x[index] , y[index] ); //输出最近点的下标和坐标}

程序运行结果为:

数组x和y的长度应该各是多少?

10,10

如果将程序功能改为求10个点中离原点最远的点,语句行Line 11又应如何填写?if( d>min ){ //Line 11

【实验题3】程序填空:输入5个整数, 将这5个数按逆时针顺序转动一次后再输出,如输入1 2 3 4 5,逆时针转动一次后,输出2 3 4 5 1。要求用数组实现。

提示:设存放整数的数组为a。要实现数组逆时针转动,只要先将首元素a[0]“搬”至一个变量t中; 然后从第1个元素到最后1个元素,依次向前移一位, 即a[i-1]= a[i] ( i= 1, … , 4);最后将存放在t中的首元素放入最后的元素。

#include

void main()

{

int i, t, a[5];

printf("Input 5 integers:\n");

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

scanf("%d", &a[i] );

t= a[0] ; //Line 7

for(i= 1 ; i< 5 ; i++) //Line 8

a[i-1]=a[i]; //Line 9

a[4] = t; //Line 10

printf("After rotation:\n");

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

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

printf("\n");

}

运行程序,输入1 2 3 4 5, 结果为:2 3 4 5 1

【实验题4】程序填空:输入一个整数n (1≤n≤10),再输入n个整数,将它们按升序排列后输出,分别用选择法和冒泡法完成排序。

程序分析1_选择法:

(1)由于n最大是10,需要定义一个长度为10的整型数组a;

(2)整个排序只需要确定前n-1个元素(a[0] ~a[n-2]),最后一个元素a[n-1]无需另外处理;

(3)在确定a[i](i=0,1,…,n-2)时,先将a[i]本身看成最小,将a[i]与后面的元素a[j](j=i+1, i+2, …, n-1)一一比较,如果a[i]> a[j],则交换a[i]与a[j]。

#include

#define NUM 10

void main()

{

int i, j, k,n, temp, a[NUM];

scanf("%d",&n); //输入n

printf("Input %d numbers:\n", n );

for(i=0; i

scanf("%d",&a[i]); //输入n个整型元素

//选择法排序,注意是排序n个元素

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

{

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

if( a[i] > a[j] ) //Line 13

{ temp = a[i] ; a[i] = a[j] ; a[j] = temp;}//a[i] a[j]

}

for(i=0; i

printf("%d ",a[i]);//输出排序后的数组

printf("\n");

}

程序分析2_冒泡法:

(1)整个排序只需要确定后n-1个元素(a[1] ~a[n-1]),最前一个元素a[0]无需另外处理;

(2)在确定a[i](i=1,2,…,n-1)时,按j=0,1,…,i-1的顺序,一次比较a[j]和[j+1],如果a[j]>a[j+1],则交换a[j]与a[j+1]。

#include

void main()

{

int i, j, k,n, temp, a[10];

scanf("%d",&n); //输入正确的n

printf("Input %d numbers:\n", n );

for(i=0; i

scanf("%d",&a[i]); //输入n个整型元素

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

if( a[j] > a[j+1] ) //Line 13

{ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp;}//a[j] a[j+1]

}

for(i=0; i

printf("%d ",a[i]);//输出排序后的数组

printf("\n");

}

运行程序,输入n: 5,输入5个整数:23 -9 14 0 -3,显示结果为:

本题有一定的难度,应该是目前为止最难的一道实验题目!

请认真阅读给出的例子后,进行算法思考,然后再试着写算法

【选做题】【实验题5】直接插入排序,从小到大排序。

假定待排序的6个数为:49 23 78 9 10 33

完成直接插入排序的一个简单步骤是:

1)定义两个数组a[6] = {49, 23, 78, 9, 10, 33}; b[6]={0,0,0,0,0,0};需要完成数组a中元素的排序;

2)直接将元素49赋给b[0];

3)向数组b中插入第二个元素23,则有b[0]=23,b[1]=49;

4)向数组b中插入第三个元素78,则有b[0]=23,b[1]=49,b[2]=78;

5)向数组b中插入第四个元素9,则有b[0]=9,b[1]=23,b[2]=49,b[3]=78;

6)….依次插入后面的数

7)基本思想就是每次向一个有序数组b中插入一个元素,n个数插入n-1次即可完成排序。

因此,直接插入排序的关键操作就是向一个有序数组中插入一个元素:

有序数组中插入一个数:

假设数组b已排好前4个元素,即b[0]=9,b[1]=23,b[2]=49,b[3]=78。向该数组中插入第5个元素10,:

插入方法:

1)找到需要存放元素10的位置:从b[0]向后依次进行比较,找到第一个大于10的数23,则10应该插入到元素23之前,也即10应该放入位置b[1]。

2)插入元素10:

(1)首先,要给元素10腾出位置。则从b[1]开始后的元素需要向后移动一位,移动后的结果为

b[2]=23,b[3]=49,b[4]=78,…。

(2)然后,插入元素10,即令b[1]=10;则插入完成后有b[0]=9,b[1]=10,b[2]=23,b[3]=49,b[4]=78 最后得到的数组b,就是数组a元素从小到大排序

请认真读懂上述直接插入算法的思想,补齐下面代码

#include

void main()

{

//数据初始化

int a[6]={49,23,78,9,10,33};

int b[6]={0,0,0,0,0,0};

int i,j,k;

//直接插入法排序,补齐下面代码

b[0] = a[0];//第一个元素直接插入

//插入一个元素a[i],分三步完成:1)选择插入点,2)插入点后的元素后移动,3)插入

for(i = 1; i < 6; i++)//i指标对应接下来要插入的a[i]

{

//第一步:寻找插入点

k = i;//a[i]大于目前b中所有的元素,则插入点为i。如果a[i]大于所有已插入元素,则k=j始终不会被执行

k = j;

break;

}

//第二步:插入点后的元素后移

for(j = i; j > k; j--)

b[j] = b[j-1];

//第三步:完成插入

b[k] = a[i];

}

//输出排序后的数组

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

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

printf("\n");

}

上机实验 11 参考答案

上机实验11 指针与数组 一.实验目的 1. 掌握用下标、数组名或指针等不同方式引用数组元素; 2. 掌握数组名作函数参数的方法; 3.掌握常用的字符串处理函数和字符处理函数; 4.掌握用指针处理字符串的方法; 二.实验内容 【实验题1】程序填空:自定义函数del(s), 功能是删除字符串s中的数字字符, 要求使用字符处理函数isdigit()和字符串处理函数strcpy()。在主函数中输入1个字符串,然后调用函数del(), 用于删除其中的数字字符,并输出处理后的字符串。 提示:从字符串s的首字符开始, 到结束符’\0’之前为止,逐个检查第i个字符是否是数字字符,是则删除该字符——使用字符判别函数isdigit(s[i]), 如果s[i]是数字字符,该函数返回1,否则返回0. 难点:如何删除s的第i个字符?——使用字符串复制函数strcpy(), 将子串s+i+1(从字符s[i+1]开始的子串)复制到给s+i (从字符s[i]开始的子串),即strcpy(s+i, s+i+1)。 #include #include < ctype.h > #include void del( char *s); //line 4 函数声明 void main() { char str[80]; gets( str); //输入字符串str del(str ); //调用函数del(),删除str中的数字 puts(str); //输出字符串str } void del(char *s) //line 12 函数定义 { int i=0; while(s[i]!='\0') if(isdigit(s[i]) ) strcpy( s+i, s+i+1); // 如果字符s[i]是数字,用函数strcpy删除它 else i++; // 否则,继续查看下一个字符 } 运行程序,输入字符串"a1b2 #include

数据库上机实验题目和答案

试用SQL的查询语句表达下列查询: 1.检索王丽同学所学课程的课程号和课程名。 select Cno ,Cname from c where Cno in (select cno from sc where sno in (select sno from s where sname='王丽' )) 2.检索年龄大于23岁的男学生的学号和姓名。 select sno,sname from s where sex='男' and age>23 3.检索‘c01’课程中一门课程的女学生姓名 select sname from s where sex='女' and sno in (select sno from sc where cno='c01') 4.检索s01同学不学的课程的课程号。 select cno from c where cno not in (select cno from sc where sno ='s01') 5.检索至少选修两门课程的学生学号。 select sc.sno from s,sc where s.sno=sc.sno group by sc.sno having count(https://www.doczj.com/doc/b57996047.html,o)>=2 6.每个学生选修的课程门数。 解法一: select so.sno sno,https://www.doczj.com/doc/b57996047.html,ount,s.sname from(select sc.sno sno,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno ) so,s where s.sno=so.sno 解法二: select sc.sno sno,s.sname,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno,sname

组胚考试范围及详解

一.组胚实验 考20道共20分 考试范围四次实验课要求看的切片 二.选择题包括单项选择题和多项选择题 共50分 考试范围上课内容(考题全部来源于组胚小书) 三.名词解释 考5个共10分 考试范围: 1.肌节:为肌原纤维上相邻两条Z线之间的一段结构,一个肌节由1/2明带+暗带+1/2明带组成。肌节是肌原纤维结构和功能的基本单位。 2.动脉周围淋巴鞘:呈鞘状包绕脾中央动脉的弥散淋巴组织,由大量T细胞和少量巨噬细胞与交错突细胞等构成,相当于淋巴结的副皮质区。 3. 淋巴小结:是淋巴组织存在一种形式,主要由B细胞聚集而成的椭圆形结构。再受抗原刺激后,小结增大,中央出现浅染色的生发中心,内有许多呈分裂相的B细胞,还有巨噬细胞、滤泡树突状细胞和Th细胞等。有生发中心的称为次级淋巴小结,没有生发中心的称为初级淋巴小结。从次级淋巴小结中产生出针对抗原的幼浆细胞和记忆性B细胞。 4.滤过屏障:是位于肾血球毛细血管腔与肾小囊之间的结构,又称滤过膜,由有孔内皮、基膜和足细胞裂孔膜组成。当血液流经血管球时,大量的水和小分子物质在较高的毛细血管压作用下,通过滤过膜进入肾小囊腔,形成原尿。正常时,血细胞和血浆中的大分子物质不能通过。 5.黄体:排卵后,残留在卵巢内的卵泡颗粒和卵细胞膜喜爱那个腔内塌陷,卵泡膜的结缔组

织和毛细血管也伸入颗粒层,这些成分逐渐演化成具有内分泌功能的细胞团,新鲜时显黄色,故称黄体。黄体含颗粒黄体细胞和膜黄体细胞,前者分泌孕激素,两者协同分泌雌激素。 6.粘液-碳酸氢盐屏障:由胃上皮表面粘液细胞分泌的含高浓度碳酸氢根的不可溶性粘液,覆盖于上皮表面形成。粘液层将上皮与胃液中的胃蛋白酶隔离,而高浓度碳酸氢根使局部pH为 7.既抑制了酶的活性,又可中和深入的盐酸,从而使胃黏膜免受损伤。粘液产生减少或分泌过多盐酸,屏障受到破坏,都会导致胃组织的自我消化,形成胃溃疡。 7.趋化性:体内某些细胞(如巨噬细胞)有沿着某些化学物质浓度梯度进行定向移动,聚集到产生和释放这些化学物质的病变部位的特性。这些化学物质,称为趋化因子。这种趋化性也可见于结缔组织和血液的其他细胞,如肥大细胞、中性粒细胞等。 8.郎飞结:有髓神经纤维的髓鞘呈节段状,相邻两个节段之间无髓鞘的缩窄部称郎飞结。郎飞结处的轴突部分裸露于外。 9.尼氏体:是神经元胞质内的强嗜碱性小斑块或颗粒。电镜下由许多平行排列的粗面内质网和游离核糖体组成。尼氏体是神经元合成蛋白质的场所,主要合成结构蛋白,合成神经递质所需的酶类和肽类的神经调质。 四.论述题 考四个共20分 考试范围 1.试述浆细胞的光镜结构、超微结构和功能 浆细胞是疏松结缔组织中的一种重要的细胞,其光镜特点是细胞为圆形或椭圆形,胞核为圆形,常偏居细胞一侧,异染色质常呈粗块状,呈辐射状排列。胞质丰富,嗜碱性,核旁有一浅染色区。电镜显示,其胞质内有丰富的粗面内质网,而浅染色区内则有高尔基复合体和中心体。浆细胞能合成和分泌免疫球蛋白,即抗体,抗体能与特异性的抗原结合,抑制或杀灭

第5章上机实验报告

第5章上机实验报告 一、实验目的 (1)观察程序运行中变量的作用域74。 (2)学习类的静态成员的使用。 (3)学习多文件结构的C++程序中的使用。 二、实验任务 (1)运行下面的程序,观察变量x,y的值。 【代码lab5-1】 #include"iostream" usingnamespace std; void fun(); int x=1,y=2; int main() { cout<<"Begin..."<

MATLAB上机实验(答案)

MATLAB工具软件实验(1) (1)生成一个4×4的随机矩阵,求该矩阵的特征值和特征向量。程序: A=rand(4) [L,D]=eig(A) 结果: A = 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057 L = -0.7412 -0.2729 - 0.1338i -0.2729 + 0.1338i -0.5413 -0.3955 -0.2609 - 0.4421i -0.2609 + 0.4421i 0.5416 -0.4062 -0.0833 + 0.4672i -0.0833 - 0.4672i 0.4276 -0.3595 0.6472 0.6472 -0.4804 D = 2.3230 0 0 0 0 0.0914 + 0.4586i 0 0 0 0 0.0914 - 0.4586i 0 0 0 0 0.2275 (2)给出一系列的a值,采用函数 22 22 1 25 x y a a += - 画一组椭圆。 程序: a=0.5:0.5:4.5; % a的绝对值不能大于5 t=[0:pi/50:2*pi]'; % 用参数t表示椭圆方程 X=cos(t)*a; Y=sin(t)*sqrt(25-a.^2); plot(X,Y) 结果: (3)X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2], (a)写出计算其负元素个数的程序。程序: X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2]; L=X<0; A=sum(L) 结果: A =

C语言上机综合实验一及答案

1、编制程序,输入n 个整数(n 从键盘输入,n>0),输出它们的偶数和。 2、 编程,输入n 后:输入n 个数,根据下式计算并输出y 值。 3、输入一行字符,统计并输出其中英文字母、数字字符和其他字符的个数。 4、编写程序,输入一个正整数n ,计算并输出下列算式的值。要求定义和调用函数total(n)计算1+1/2+1/3+……+1/n ,函数返回值的类型是double 。 5、输入一个正整数n ,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n 的阶乘,函数返回值的类型是单精度浮点型。 答案: 程序1、 #include void main () { int n,i,x,sum=0; while(scanf("%d",&n),n<=0); printf ("请输入%d 个数:", n); for (i=1; i<=n ;i++) { scanf("%d",&x); if(x%2==0) sum+=x; } printf ("sum=%d", sum) ; } 程序2、 #include #include void main( ) { int i,n; float x,y; scanf(“%d”,&n); for(i=1;i<=n;i++){ scanf(“%f”,&x); if(x<-2) y=x*x-sin(x); else if(x<=2) y=pow(2,x)+x; else y=sqrt(x*x+x+1); printf(“%f \n”,y); } } 程序3、 # include void main( ) { int letter,digit,other; ?????>++≤≤-+-<-=2 12222sin 22x x x x x x x x y x 111111...23n k s k n ===++++∑

计算机上机实验内容及实验报告要求(完整版)

报告编号:YT-FS-1915-76 计算机上机实验内容及实验报告要求(完整版) After Completing The T ask According To The Original Plan, A Report Will Be Formed T o Reflect The Basic Situation Encountered, Reveal The Existing Problems And Put Forward Future Ideas. 互惠互利共同繁荣 Mutual Benefit And Common Prosperity

计算机上机实验内容及实验报告要 求(完整版) 备注:该报告书文本主要按照原定计划完成任务后形成报告,并反映遇到的基本情况、实际取得的成功和过程中取得的经验教训、揭露存在的问题以及提出今后设想。文档可根据实际情况进行修改和使用。 一、《软件技术基础》上机实验内容 1.顺序表的建立、插入、删除。 2.带头结点的单链表的建立(用尾插法)、插入、删除。 二、提交到个人10m硬盘空间的内容及截止时间 1.分别建立二个文件夹,取名为顺序表和单链表。 2.在这二个文件夹中,分别存放上述二个实验的相关文件。每个文件夹中应有三个文件(.c文件、.obj 文件和.exe文件)。 3.截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。 三、实验报告要求及上交时间(用a4纸打印)

1.格式: 《计算机软件技术基础》上机实验报告 用户名se××××学号姓名学院 ①实验名称: ②实验目的: ③算法描述(可用文字描述,也可用流程图): ④源代码:(.c的文件) ⑤用户屏幕(即程序运行时出现在机器上的画面): 2.对c文件的要求: 程序应具有以下特点:a 可读性:有注释。 b 交互性:有输入提示。 c 结构化程序设计风格:分层缩进、隔行书写。 3.上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。请注意:过时不候哟! 四、实验报告内容 0.顺序表的插入。 1.顺序表的删除。

组织学与胚胎学实验考试图及答案

组织学与胚胎学实验考试图及答案照片名称:14平滑肌 照片名称:15尼氏体 照片名称:16轴丘 照片名称:17郎飞结 照片名称:21淋巴小结 照片名称:19小静脉小动脉 照片名称:18毛细血管 照片名称:1单层柱状上皮 照片名称:22皮质 照片名称:23淋巴小结生发中心 照片名称:24脾白髓 照片名称:28皮肤 照片名称:27腺垂体 照片名称:26肾上腺皮质

照片名称:25甲状腺滤泡照片名称:29胃(四层) 照片名称:31主细胞 照片名称:30胃 照片名称:32壁细胞 照片名称:36粘液性腺泡照片名称:35潘氏细胞照片名称:34小肠绒毛照片名称:33小肠 照片名称:37浆液性腺泡照片名称:39胰岛 照片名称:40肝 照片名称:38胰腺 照片名称:44肺泡 照片名称:43肝门管区

照片名称:42肝血窦 照片名称:41中央静脉 照片名称:45肾小体 照片名称:46近曲小管(近端小管曲部)照片名称:48致密斑 照片名称:52生精小管 照片名称:51滤过屏障 照片名称:49足细胞 照片名称:56初级卵泡 照片名称:55精子 照片名称:54支持细胞 照片名称:53精原细胞 照片名称:60胚泡 照片名称:59卵丘

照片名称:58次级卵泡 照片名称:57原始卵泡初级卵泡照片名称:61胚泡 照片名称:62二胚层胚盘 照片名称:63二胚层胚盘 照片名称:64脐带 照片名称:3杯状细胞 照片名称:红细胞白细胞 照片名称:65胎盘 照片名称:5浆细胞 照片名称:7嗜酸性粒细胞 照片名称:6中性粒细胞 照片名称:4肥大细胞 照片名称:12骨骼肌 照片名称:10单核细胞

C语言上机实验-答案

实验一上机操作初步(2学时) 一、实验方式:一人一机 二、实验目的: 1、熟悉VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个C程序。 3、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息:(实验指导书P79) ************************* Very Good ************************* 2、计算两个整数的和与积。(实验指导书P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。(书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include void main( ) { printf(“********************\n”); printf(“ Very Good\n”); printf(“********************\n”); } 2、#include void main( ) { int a,b,c,d; printf(“Please enter a,b:”);

scanf(“%d,%d”,&a,&b); c=a+b; d=a*b; printf(“%d+%d=%d\n”,a,b,c); printf(“%d*%d=%d\n”,a,b,d); } 3、#include #include void main( ) { double x,s; printf(“Please input value of x:”); scanf(“%lf”,&x); s=cos(x); printf(“cos(%lf)=%lf\n”,x,s); } 4、#include void main( ) { printf(“==================================\n”); printf(“ 1 输入数据 2 修改数据\n”); printf(“ 3 查询数据 4 打印数据\n”); printf(“===================================\n”); } 5、#include void main( ) { int x,y,t; printf(“Please enter x and y:”); scanf(“%d%d”,&x,&y); t=x; x=y; y=t; printf(“After s\n”,x,y); } 实验二简单的C程序设计(4学时) 一、实验方式:一人一机 二、实验目的: 1、掌握C语言的数据类型。 2、学会使用C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。

c语言上机实验完整标准答案

c语言上机实验完整答案

————————————————————————————————作者:————————————————————————————————日期:

实验一自测练习1 程序代码 #include"stdio.h" void main() {int x; scanf("%d",&x); if (x%2 !=0) printf("%d is an odd\n",x); else printf("%d is an even\n",x); } 运行结果 自测练习2 程序代码 #include"stdio.h" void main() {int i,sum; i=1;sum=0; while (i<=100) {sum=sum+i; i++; }

printf("sum=%d\n",sum); } 运行结果 自测练习3 程序代码 #include"stdio.h" void main() {int i,n; long p; p=1; printf("Enter n:"); scanf("%d",&n); for (i=1;i<=n;i++) p=p*i; printf("p=%ld\n",p); } 运行结果

自测练习4 程序代码 #include"stdio.h" int max(int x,int y) {int z; if (x>y) z=x;else z=y; return(z); } void main() {int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d\n",c); } 运行结果

Matlab上机实验答案 (1)

Matlab上机实验答案 实验一MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/200)/(1+exp(2)) z1 = 0.2375 >> x=[2 1+2i;-0.45 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = 0.7120 - 0.0253i 0.8968 + 0.3658i 0.2209 + 0.9343i 1.2041 - 0.0044i 2.9,,2.9, 3.0

>> a=-3.0:0.1:3.0; >> z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) (>> z33=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 0.7388 + 3.2020i 0.7696 + 3.2020i 0.7871 + 3.2020i 0.7920 + 3.2020i 0.7822 + 3.2020i Columns 6 through 10 0.7602 + 3.2020i 0.7254 + 3.2020i 0.6784 + 3.2020i 0.6206 + 3.2020i 0.5496 + 3.2020i Columns 11 through 20 0.4688 + 3.2020i 0.3780 + 3.2020i 0.2775 + 3.2020i 0.2080 + 3.2020i 0.0497 + 3.2020i

C语言程序设计_上机实验指导与习题_第三版_(陈湘骥_编著_著)_华南农业大学_参考答案

C语言程序设计上机实验指导与习题 参考答案 (仅供教师内部参考) 华南农业大学

目录 上机实验 (1) 实验 1 C语言程序初步 (1) 一、实验目的 (1) 二、实验内容 (1) 实验2基本数据类型、运算和表达式 (3) 一、实验目的 (3) 二、实验内容 (3) 实验3基本输入与输出 (5) 一、实验目的 (5) 二、实验内容 (5) 实验4选择结构程序设计 (4) 一、实验目的 (4) 二、实验内容 (4) 实验5循环结构程序设计(一) (9) 一、实验目的 (9) 二、实验内容 (9) 实验6循环结构程序设计(二) (15) 一、实验目的 (15) 二、实验内容 (15) 实验7数组 (17) 一、实验目的 (17) 二、实验内容 (17) 实验8字符数组的应用 (22) 一、实验目的 (22) 二、实验内容 (22) 实验9函数的基本应用 (24) 一、实验目的 (24) 二、实验内容 (24) 实验10指针与结构体 (26) 一、实验目的 (26) 二、实验内容 (26) *实验11链表 (29) 一、实验目的 (29) 二、实验内容 (29) *实验12文件 (32) 一、实验目的 (32) 二、实验内容 (32)

上机实验 实验 1 C语言程序初步 一、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个C程序。 (3)通过运行简单的C程序,初步了解C程序的特点。 (4)在教师的指导下,学会使用JudgeOnline实验系统。 二、实验内容 1. 运行第一个 C 程序 [题目:The first C Program] 将下列程序输入 TC(或 VC++),编译、连接和运行该程序。 void main() { printf("The first C Program\n"); } [具体操作步骤] 以 Turbo C 上的操作为例 (1)Windows 进入后,按照第一章中介绍的方法,进入 Turbo C。 (2)在编辑窗口中输入程序。 (3)保存程序,取名为 a1.c。 (4)按照第一章中介绍的方法,编译、连接和运行程序。 2.在JudgeOnline系统中提交实现了计算a+b功能的程序 [题目 1001:计算 a+b] 由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下, void main() { int a, b; scanf("%d%d", &a, &b); 1

C#上机实验题目和答案8

(1)创建一个控制台应用程序,在程序中定义一个公共接口IMyInterface,该接口中包含两个方法,一个是DoSomething(),另一个是DoSomethingElse();另外再定义一个类MyClass,该类实现了接口IMyInterface,在DoSomething()方法中向控制台输出“Do something.”,在DoSomethingElse()方法中向控制台输出“Do something else.”在Program类中的Main()方法中实例化MyClass 的对象和定义一个接口变量,通过对象和接口变量来访问这两个方法。 (2)创建一个控制台应用程序,在程序中定义了一个接口IIfc1,该接口包含一个无返回值,且带一个字符串类型的参数的方法PrintOut();在程序中定义了另一个接口IIfc2,该接口中也包含一个无返回值,且带一个字符串类型的参数的方法PrintOut();程序中还定义了一个类MyClass,该类以类级别和显式接口成员两种方式实现了这两个接口。在Program类的Main()方法中分别以类对象的引用和两个接口对象的引用来调用PrintOut()方法。 (3)创建一个控制台应用程序,求一个方阵的对角元之和。 1. using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { public interface IMyInterface { void DoSomething(); void DoSomethingElse(); } class MyClass : IMyInterface { public void DoSomething() { Console.WriteLine("Do Something."); } public void DoSomethingElse() { Console.WriteLine("Do Something Else."); } } class Program { static void Main(string[] args) { MyClass MC = new MyClass(); MC.DoSomething();

华南农业大学C语言实验上机实验第四版参考答案

华南农业大学C语言实验上机实验第四版参考答案 (4) C语言程序设计计算机实验教学与练习 参考答案(第4版) 实验1 C语言程序初步1、实验目的 (1)了解所用计算机系统的基本操作方法并学会独立使用该系统(2)了解如何在系统上编辑、编译、连接和运行C程序(3)通过运行一个简单的C程序,初步了解C程序的特点。(4)在教师的指导下,学会使用在线评价系统 2,实验内容 1。运行第一个C程序 [标题:第一个C程序] 将下列程序输入visual c++,编译、连接并运行该程序# include \ main(){ printf(\ } [具体操作步骤] (1)在编辑窗口中输入程序(2)保存程序,命名为a1.c (3)根据第1章中描述的方法编译、连接和运行程序。 (4)按照第3章描述的方法将代码提交到在线评估系统,系统返回“通过”,问题完成

2。在线测评系统中提交了一个程序 [话题1001:计算a+b] ,实现了计算a+b的功能。键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下,#include \main() { int a,b; scanf(\ printf(\ } (1))在程序编辑窗口中输入程序(2)保存程序,命名为a2.c (3)根据前两章描述的方法编译、连接和运行程序(4)在程序操作过程中,输入1530 ↙ (?表示输入回车) (5)如果看到以下输出结果,则表明15+30的结果是正确的。如果您无法获得以下结果,您需要检查并更正程序45 (6)根据第3章介绍的方法进入在线评估系统。 (7)显示主题列表,点击标题为1001且标题为“计算a+b”的主题 (8)查看主题要求后,点击页面底部的“sumbit”,参照第二章提交程序的方法提交程序a2.c。 (9)检查判断结果,如果获得”接受”,则问题通过,否则返回第一步检查程序是否正确。3 实验2基本数据类型、运算和表达式1、实验目的 (1)掌握c语言数据类型,熟悉如何定义整数和实变量,以及如何给它们赋值(2)掌握不同类型数据之间的分配规律 (3)学会使用C的相关算术运算符和包含这些运算符的表达式,尤

数据结构上机实验答案

《数据结构实验指导书》答案 实验一: 1、请编写函数int fun(int *a, int *b),函数的功能是判断两个指针a和b所指存储单元的值 的符号是否相同;若相同函数返回1,否则返回0。这两个存储单元中的值都不为0。在主函数中输入2个整数、调用函数fun、输出结果。 #include int fun(int *a, int *b) { if (*a*(*b)>0) return(1); else return(0); } main() { int x,y; scanf("%d%d",&x,&y); if (fun(&x,&y)) printf("yes\n"); else printf("no"); } 2、计算1+2+3+……+100,要求用指针进行设计。即设计函数int fun(int *n)实现求 1+2+3+……+*n,在主函数中输入、调用、输出结果。 #include int fun(int *n) { int i,sum=0; for (i=1;i<=*n;i++) sum+=i; return(sum); } main() { int x,sum; scanf("%d",&x); printf("the sum is %d\n",fun(&x)); } 3、函数的功能是求数组a中最大数的位置(位序号)。在主函数中输入10个整数、调用函

数fun、输出结果。 #define N 10 #include void input(int *a,int n) { int i; for (i=0;i*max) max=a+i; return(max-a); } main() {int a[N],maxi; input(a,N); maxi=fun(a,N); printf("\n the max position is %d\n",maxi); } 4、请编写函数fun(int *a,int n, int *odd, int *even),函数的功能是分别求出数组a中所有奇数之和和所有偶数之和。形参n给出数组中数据的个数;利用指针odd和even分别返回奇数之和和偶数之和。在主函数中输入10个整数、调用函数fun、输出结果。 #define N 10 #include void input(int *a,int n) { int i; for (i=0;i

大学大一c语言程序设计实验室上机题全部代码答案实验报告

C语言实验报告 实验1-1: hello world程序: 源代码: #include main() { printf(hello world!\n); system(pause); } 实验1-2: 完成3个数据的输入、求和并输出计算结果的程序:源代码: #include main() { int i,j,k,sum; scanf(%d%d%d,&i,&j,&k); sum=i+j+k; printf(sum=%d,sum); system(pause); 实验1-3: 在屏幕上输出如下图形: A BBB CCCCC 源代码: #include main() { printf( A\n); printf( BBB\n); printf( CCCCC\n); system(pause); } 实验2-1: 计算由键盘输入的任何两个双精度数据的平均值

源代码: #include main() { double a,b; scanf(%lf%lf,&a,&b); printf(%.1lf\n,(a+b)/2); system(pause); } 实验2-2: 写一个输入7个数据的程序,把输入的数据代入a + b * (c – d ) / e * f –g 表达式进行运算源代码: #include main() { float a,b,c,d,e,f,g,x; scanf(%f%f%f%f%f%f%f,&a,&b,&c,&d,&e,&f,&g); x=a + b * (c - d ) / e * f - g; 牰湩晴尨?春??※ system(pause); } 实验2-3: 编写一个C语言程序,测试下列各表达式: i, j i + 1 , j + 1 i++ , j++ ++i , ++j i+++++j 源代码: #include main() { int i=1,j=1; printf(%d %d\n,i+1,j+1); printf(%d %d\n,i++,j++); printf(%d %d\n,++i,++j); printf(%d\n,(i++)+(++j)); system(pause); } 实验2-4: 输入存款金额money,存期year和年利率rate,根据下列公式计算存款到期时的利息interest(税

第一次上机实验参考答案

第一次上机实验参考答案 一、编程范例:创建Windows 窗体个人简历应用程序。 编写一个简单的个人简历程序,要求可以通过文本框输入学号和姓名,通过文件对话框选择照片并显示。系统运行界面如图1-1 所示。 图 1-1 个人简历项目界面 [界面设计]略。 [参考代码] namespace FL1_1 { public partial class Resume : Form { public Resume() { InitializeComponent(); } private void btBrowse_Click(object sender, EventArgs e) {

OpenFileDialog imageDialog = new OpenFileDialog(); imageDialog.Filter = "BMP(*.BMP)|*.BMP|JPEG(*.JPEG)|*.JPEG|JPG(*.JPG)|*.JPG|GIF(*.GIF)|*.GIF|PNG(*.png)|* .png"; imageDialog.Title = "选择照片"; if (imageDialog.ShowDialog() == DialogResult.OK) { pbPhoto.ImageLocation = imageDialog.FileName; } } private void btOK_Click(object sender, EventArgs e) { if (tbID.Text.Equals("") || tbName.Text.Equals("")) MessageBox.Show("学号或者姓名不能为空"); else if (pbPhoto.ImageLocation == null) MessageBox.Show("请使用浏览按钮上传照片"); else { MessageBox.Show("您的简历已保存至数据库!"); Application.Exit(); } } } } 二.程序设计题 1.使用Visual C# 2008 设计一个Windows 应用程序,要求在窗体中显示“信息登录” 和“请输入您的姓名:”,输入文本框中最多只能输入4 个字符,显示文本框不能输入,当

c语言上机实验完整答案

%c 字符形式输出, %d 整数形式输出, 实验一 自测练习1 程序代码 #include void main() { int x; scanf("%d",&x); //%d十进制整型,&指x在内 存中的地址。上面 scanf的作用是:按照 x在内存的地址将x 的值存进去, if (x%2 !=0) printf("%d is an odd\n",x); else printf("%d is an even\n",x); }

运行结果 自测练习2 程序代码 #include void main() { int i, sum; i=1 ; sum=0;

while (i<=100) { sum=sum+i; i++; } printf("sum=%d\n",sum); } 运行结果 自测练习3 程序代码 #include void main( ) { int i, n; long p;

p=1; printf("Enter n:"); scanf("%d",&n); for (i=1; i<=n; i++) p=p*i; printf(" p=%ld\n", p); } 运行结果 自测练习4 程序代码 #include"stdio.h" int max(int x,int y) {int z; if (x>y) z=x;else z=y; return(z); } void main() {int a,b,c;

scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d\n",c); } 运行结果 自测练习5 程序代码 #include"stdio.h" void main() {int x,y; for(x=0;x<=25;x++) for(y=0;y<=50;y++) if(4*x+y*2==100) printf("兔=%d,鸡=%\n",x,y); } 运行结果

数字信号处理上机实验答案(全)1

第十章 上机实验 数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。 实验一 系统响应及系统稳定性。 实验二 时域采样与频域采样。 实验三 用FFT 对信号作频谱分析。 实验四 IIR 数字滤波器设计及软件实现。 实验五 FIR 数字滤波器设计与软件实现 实验六 应用实验——数字信号处理在双音多频拨号系统中的应用 任课教师根据教学进度,安排学生上机进行实验。建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR 数字滤波器设计及软件实现在。学习完第六章进行;实验五在学习完第七章后进行。实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。 10.1 实验一: 系统响应及系统稳定性 1.实验目的 (1)掌握 求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2.实验原理与方法 在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MA TLAB 语言的工具箱函数filter 函数。也可以用MATLAB 语言的工具箱函数conv 函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。 系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。 系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。 实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的[19]。系统的稳态输出是指当∞→n 时,系统的输出。如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n 的加大,幅度趋于稳定,达到稳态输出。 注意在以下实验中均假设系统的初始状态为零。 3.实验内容及步骤 (1)编制程序,包括产生输入信号、单位脉冲响应序列的子程序,用filter 函数或conv 函数求解系统输出响应的主程序。程序中要有绘制信号波形的功能。 (2)给定一个低通滤波器的差分方程为

相关主题
文本预览
相关文档 最新文档