C语言程序设计上机指导书及答案_第1页
C语言程序设计上机指导书及答案_第2页
C语言程序设计上机指导书及答案_第3页
C语言程序设计上机指导书及答案_第4页
C语言程序设计上机指导书及答案_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、姓 名:_学 号:_专 业:_ 日 期:_指导原则: 促进学生针对实际问题,用所学C语言知识编写符合规范的源程序代码,在某一集成开发环境下尽一切调试技能调试程序,并对运行结果进行分析处理,得出正确结论,解决好实际问题。更快更好地掌握所学知识,技能和软件的一向开发方法目的:1, 通过上机实验,加深对教材内容的理解,特别是一些语法规定,熟练掌握各种语法规则。2, 通过上机实验,熟悉某个C语言集成开发环境。掌握集成开发环境下程序的编辑、编译与连接、运行的完整过程3, 通过上机实验,要学会调试程序。能根据系统给出的“出错信息”,判断错误所在,并修改错误,使程序正确运行。要求:1, 复习与本次实验相关的

2、教学内容2, 了解集成开发环境的操作步骤3, 准备好实验内容。对于编程题,一定要自己动手,书写工整,并人工检查无误后才能上机实验,以提高上机效率。4, 要准备好调试和运行程序时所需的数据。5, 对运行中可能出现的问题事先作出估计,并对程序中有疑问的地方作上标记,以便在运行时给予注意。并在程序调试时,把系统给出的出错原因,解决方法等记载在源程序之后;程序运行结束后,把运行结果也记录下来。6,每个实验应独立完成,对实际问题所编写的源程序需写出完整实验的报告。 第一次上机作业 熟悉C语言集成开发环境实验目的:1, 熟悉C语言集成开发环境2, 掌握集成开发环境下文件的编写与调用,源程序的编译与调试,程

3、序运行结果的观察与分析。3, 掌握C语言程序的基本结构实验要求: 1, 程序编写完后,要对输入的每一个符号和词进行检查核对,不能有错。 2,编写源程序时,不要在中文输入法下进行,也不要有首字符大写,否则调试时,会有错误。实验内容: 1, 在D盘新建文件夹:D:C语言程序×××(所在班级如0709401)×××(自己学号或姓名如01),作为以后所做程序的存放位置。注:每次换机器须重复此操作。2, 编辑,编译,运行下面程序并存盘,文件名为ex1_1.c/* 输出信息的C源程序,文件名为ex1_1.c */#include”stdio.h”

4、void main() printf(“Hello, Everyone n Study hard!n”); 输出结果为 Hello, Everyone Study hard!3, 调入文件ex1_1.c,把程序修改成下面形式,运行,存盘,文件名为ex1_2.c/* 输出信息的C源程序,文件名为ex1_2.c */#include”stdio.h”void main() printf(“Hello, Everyone n ”); printf(“ Study hard!n”);输出结果为 Hello, Everyone Study hard _, ”n”的作用是 换行4, 编辑,编译,运行下面程

5、序并存盘,文件名为ex1_3.c/* 计算圆面积的程序,文件名为ex1_3.c */#include”stdio.h”void main() float r,area; printf(“r=?”); scanf(“%f”,&r); area=3.1415926*r*r; printf(“arear=%fn”,area);第一次运行时输入1,运行结果为 area=3.141593再次运行时输入10,运行结果为 area=314.159260把语句printf(“arear=%fn”,area);修改为:printf(“arear(%0.1f)=%fn",r,area);后,运行

6、时输入10,这时程序的运行结果为_area(10.0)=314.159260操作步骤: 一, TurboC 2.0集成开发环境(1) 熟悉C语言集成开发环境进入集成开发环境(菜单模式):执行文件TC.EXE文件菜单(file):FILE中有:NEW(新建文件),LOAD(或OPEN打开或调入文件),SAVE(保存文件),SAVEAS,QUIT(退出C语言集成开发环境)编译菜单(compile): COMPILE TO OBJ (路径名文件名)运行菜单(run): RUN , USER SCREEN选项(option):DIRECTORY(注明TC。EXE的当前目录路径,路径不符合,编译程序找不

7、到库函数所在头文件,编译会出错)从菜单进入编辑区的按键:Enter从编辑区进入菜单的按键:F10注:运行出错时,按F10也可回到菜单区,按EDIT进入编辑区(2) 掌握C语言源程序的编写(new(FILE)),编译(compile to obj(COMPILE),运行(run(RUN),观察结果(user screen(RUN)四个步骤。编译出错时,按ENTER键,然后在光标所在行或上一行查找出错位置。同时在顶行红字部分(英文提示)找出错原因。(3) 掌握一定的调试方法。方法:在已编译好的程序中人为制造错误(如删除标点符号,改错保留字(int, printf, scanf),确定出错位置(光标

8、所在行),猜测出错原因(根据顶行英文提示)。 二,Visual C+6.0集成开发环境1,启动Visual C+ 6.0环境方法:单击 “开始”-“程序”-“Microsoft Visual studio 6.0”-“Microsoft Visual C+ 6.0”命令,启动Visual C+,VC6主窗口如下:菜单栏项目工作区标题栏输出区工具栏状态栏文件编辑区2. 编辑源程序文件(1)建立新工程项目单击“文件”“新建”,弹出“新建”对话框。单击“工程”选项卡;单击“Win32 Console Application”选项;“工程文件”框中输入项目名(如gc1);“位置”框输入文件保存文件夹或

9、单击“”打开文件夹浏览窗口,选择新项目文件所需保存的位置,单击“确定”按钮。 弹出“Win32 Console Application Step 1of 1”对话框,在对话框中单击“An empt project”按钮和“完成”按钮。系统显示“新建工程信息”对话框。单击“确定”按钮。 (2) 建立新项目中的文件单击“文件”-“新建”,弹出“新建”对话框。 选择“文件”选项卡。单击“C+ Source File”选项,在“文件”文件框中输入文件名,单击“确定”按钮。系统自动返回VC6主窗口。显示文件编辑区窗口,在文件编辑区窗口输入源程序文件。 3, 编译和连接方法一:选择主窗口菜单栏中“编译”菜

10、单项;系统弹出下拉菜单,选择“构件”菜单命令。方法二:单击主窗口编译工具栏上的 “Build”按钮进行编译和连接。注:(1)系统对程序文件进行编译和连接,生成以项目名称命名的可执行目标代码文件.exe。(2)编译连接过程中,系统如发现程序有语法错误,则在输出区窗口中显示错误信息,给出错误的性质、出现位置和错误的原因等。如果双击某条错误,编辑区窗口右侧出现一个箭头,指示再现错误的程序行。用户据此对源程序进行相应的修改,并重新编译和连接,直到通过为止。 4. 执行方法一:单击“编译”菜单中“执行”命令。方法二:单击主窗口编译工具栏上的 “Build Execute”按钮来执行编译连接后的程序运行成

11、功,屏幕上输出执行结果,并提示信息:“Press any key to continue”。此时按任意键系统都将返回VC6主窗口。注:在执行程序过程中出现运行错误。用户要修改源程序文件并且重新编译、连接和执行。第二次上机作业 掌握基本数据类型在程序中的正确应用实验目的:1 熟悉C语言集成开发环境及程序编写、编译、运行,观察运行结果2 掌握基本的调试技巧(缺少标点符号,函数名错误或不一致)3 熟悉C语言基本数据类型(int,long,unsigned int,float,double,char)的输入,输出格式(%d,%ld,%f,%lf,%c,%o,%x,%u)实验内容:1, 输入半径,求圆的

12、面积(要求圆周率用符号常量表示)(查错改错1: 圆周率的定义名与使用名不一致; 查错改错2: 面积的输出格式用%d)。作业1程序如下,调试改正两处错误 ,正确运行后将文件保存为ex2_1.c#define pi 3.1415927#include"stdio.h"main() float area,banjing; printf("please enter a datan"); scanf("%f",&banjing); area=p*banjing*banjing; /* 圆周率的定义名pi与使用名p不一致*/ printf

13、("n the area of yuan is %dn",area); /* 面积的输出格式%d改为%f */ A)调试,语法错误如下: 出错信息为: D:vcfileex1ex.cpp(7) : error C2065: 'p' : undeclared identifier 中文意思为:符号p没有定义。 错误原因及更正:圆周率的定义名pi与使用名p不一致,p改为pi运行 B)观察及分析运行结果,逻辑错误 分析:半径为3时,圆的面积应为:pi×3×328.2743343,不能为负数。 查错:先查面积变量area的输出格式,再往上逆推查其

14、运算方法,最后查其定义 错误原因及更正:面积的输出格式%d(整数)改为%f (实数或单精度浮点数) 2,调入ex2_1.c 另存为ex2_2.c,并做如下修改后,保存调试运行程序,观察系统出出错信息(英文),并翻译成中文。注:每改一次,就调试一次。 1)将语句:float area,banjing;改为:floatarea,banjing;则出错信息为:F:C语言作业 1.cpp(4) : error C2065: 'floatarea' : undeclared identifierF:C语言作业1.cpp(4) : error C2065: 'banjing'

15、; : undeclared identifierF:C语言作业 1.cpp(7) : error C2065: 'area' : undeclared identifier中文意思为:文件的第四行有错,符号'floatarea'没有定义错误原因及更正:'floatarea'中float 与area之间少了空格,加上空格 2) 将语句:printf(”please enter a datan”); 改为:printf(”please enter a datan”)则出错信息为:F:C语言作业 1.cpp(6) : error C2146: syn

16、tax error : missing '' before identifier 'scanf'中文意思为:文件的第六行有错错误原因及更正:少了“;”,在第六行后加上“;” 3) 将语句:scanf(“%f”,&banjing); 改为:scan(“%f”,&banjing);则出错信息为:F:C语言作业1.cpp(6) : error C2065: 'scan' : undeclared identifier中文意思为:文件第六行'scan'没有定义错误原因及更正:'scan'后少了f,加上f 4

17、) 将语句: float area,banjing;中英文标点符号“;”或“,”,改为中文输入法全角字符后,再输入同样标点 则出错信息为:F:C语言作业1.cpp(4) : error C2018: unknown character '0xa3'F:C语言作业1.cpp(4) : error C2018: unknown character '0xac'F:C语言作业1.cpp(5) : error C2146: syntax error : missing '' before identifier 'printf'中文意思为:

18、系统不能识别字符“,”错误原因及更正:将“,”改为英文输入法输出的“,” 第三次上机作业 运算符与表达式的使用实验目的:1, 熟悉C语言集成开发环境和熟悉C语言程序结构2, 掌握一定的调试技巧。3, 熟悉运算符与表达式的正确使用。作业内容要求:1, 程序填空,以下程序输入3个整数值 给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a,b,c的值,例如输入1 2 3,输出a=2,b=3,c=1 #include"stdio.h"void main() int a,b,c, t; printf("enter a,b,c:"); s

19、canf("%d%d%d",&a,&b,&c); /*输入a,b,c的值*/ t=a; a=b; /*把b中的值给a,*/b=c;c=t; /* 把a的原来值给c*/ printf("a=%d b=%d c=%dn",a,b,c); */ 1,填空后,运行程序,结果如下:enter a, b,c:1 2 3 a=2, b=3, c=1 2,在程序输出语句前插入语句:clrscr(); 根据运行结果,说明其作用_TC下清屏命令 在程序输出语句后插入语句:getchar();根据运行结果,说明其作用_等待键盘输入字符 2, 调试以下程

20、序(划横线处有错),写出运行结果并简要回答为什么(即了解程序的运行过程)#include”stdio.h”main() intx,y,z; x=6;y=100;z=(+x)/(y-);printf(“x=%d,y=%d,z=%dn”,x,y,z); z=(x+y-)*(x+) printf(“x=%d,y=%d,z=%dn”,x,y,z); 运行结果:x=7,y=99,z=0x=8,y=98,z=742第四次上机作业 掌握顺序结构程序设计实验目的:4, 熟悉C语言集成开发环境和熟悉C语言程序结构5, 掌握一定的调试技巧。6, 熟悉运算符与表达式的正确使用。7, 掌握语句的正确书写,学会编写顺序

21、结构的程序。作业内容要求:1, 编写程序求解:已知半径r=3厘米(cm).求球的体积v;源程序代码 > 上机调试后,源程序中需修改的对应部分#include"stdio.h"#define pi 3.1415926void main() float a,b,r=3; double v; a=4.0; b=3.0; v=(a/b)*pi*r*r*r; printf("v=%fn",v); 程序运行结果:v=113.0973342, 以下叁个程序,选一个做。1) 输入两个整数,求其和,差,积,商和余数2) 输入一个三位数,依次输出其个位数字,十位数字,

22、百位数字。3) 用公式求三角形的面积(其中,a,b,c为三角形的三边长)要求:1, 确定所需的输入变量,输出变量,中间变量的个数及命名,并为其选取正确的数据类型。2, 根据正确的逻辑顺序书写程序。(变量先说明再赋值后使用;先输入再处理后输出;3, 每次输出必须有提示信息。如:printf(“n x+y=%f”,x+y);其中:x+y= 是提示信息。 题号: 第3题源程序代码:#include <stdio.h> #include <math.h> void main() float a,b,c; double area; scanf("%f%f%f"

23、,&a,&b,&c); if(a>=b+c | b>=a+c | c>=a+b|a<=0|b<=0|c<=0) printf("errorn"); else s = (a+b+c)/2);area=sqrt(double)(s*(s-a)*(s-b)*(s-c); printf("area=%fn",area); 输入数据与运行结果:3 4 5 area=6.000000第五次上机作业 掌握顺序结构与输入输出函数实验目的:1,掌握顺序程序设计的一般方法:2,根据算法(有的是计算公式)确定所需的输

24、入变量,输出变量,中间变量的个数及命名,并为其选取正确的数据类型(有计算公式的由计算公式右边表达式值的类型确定)。3,根据正确的逻辑顺序书写(审查)程序。(变量先说明再赋值后使用;函数先定义,后说明,再使用)4, 每次输入、输出应有提示信息。如:printf(“n x+y=%f”,x+y);其中:x+y= 是提示信息。5, 注意表达式的正确书写格式。 6, 掌握程序的一般调试方法:上机内容:1, 在调试的过程中改正如下程序的错误(注意:每编译一次只改正一个错误;同时思考错误提示信息中单引号中的内容与错误的关系)程序:用公式求三角形面积:,s= 程序代码 > 源程序中需修改的对应部分#in

25、clude <stdio.h> #include <maths.h> - #include <math.h>main() int a,b,c;float s,are; - double s,area; a=3,b=4,c=5;printf(“enter three datasn”);scanf(“%d%d%d”,a,b,c); -scanf("%d%d%d",&a,&b,&c); s=1/2*(a+b+c); - s=1.0/2*(a+b+c); area=sqrt(s-a)*(s-b)*(s-c)*s; - ar

26、ea=sqrt(s-a)*(s-b)*(s-c)*s); printf(“a=%d,b=%d,c=%dnarea=%d”,a,b,c,area); - area=%f2, 编程求三角形面积:,(C的单位为度数,库函数中自变量单位为弧度数)(已知:a=5, b=3, C=30o)注意:1,表达式的正确书写格式,2,程序的设计方法,3,检查、核实程序的顺序的正确性代码:#define pi 3.1415927#include <stdio.h>#include <math.h>void main() int a,b; double c,s; a=5,b=3; c=(1.0/

27、180)*pi*30; s=(1.0/2)*a*b*sin(c); printf("s=%lfn",s);运行结果:s=3.750000第六次上机作业 分支结构程序实验目的:1, 熟悉输入输出格式的使用2, 掌握逻辑运算符的特殊运算规则3, 了解简单的分支结构程序设计4, 学会阅读程序的基本技巧(参考第七讲:分析程序运行过程)上机内容:1, 阅读下面程序,计算运行结果,然后上机验证。#include <stdio.h>void main() int c,d,e; double a,b,t; a=3.6,b=-3.2; if(a>b) t=a; a=b;b=

28、t; /* 思考该复合语句的功能 */ printf(“n%5.2f,%5.2f”,a,b) c=1,d=1; e=-c&&d-;/* 注意运算符的优先级和运算规则 */ printf(“nc=%d,d=%d,e=%d”,c,d,e); e=+d|c+; pirntf(“nc=%d,d=%d,e%d”,c,d,e);运行结果:-3.20,3.60 c=0,d =1,e=0 c=0,d=2,e=02, 程序填空,输入x值,计算下面的函数值 ,并输出结果 程序如下: #include"stdio.h"void main() double x,y; scanf(&

29、quot;%lf",&x); /x类型与输入格式 if(x<1) y=x; else if(x<10) y=2*x-1; /分段函数的条件及表达式 else y=3*x-11; /表达式 printf("y= %lf n",y); 运行结果:5 y=9.000000 3,编程求x程序代码:#include"stdio.h"void main() double x,y; printf("enter x:"); scanf("%lf",&x); if(x<0) y=-x; e

30、lse y=x; printf("x=%lf,y=%lfn",x,y); 运行结果:enter x:-3 X=-3.000000,y=3.000000 第七次上机作业 分支结构程序填空实验目的:1, 能灵活处理分支结构的条件,选择相应的分支语句作程序设计2, 熟练掌握分支结构的程序设计3, 能阅读程序,能根据问题说明,补充源程序中的相关内容。4, 掌握动态测试技巧。上机内容:1, 程序填空问题说明:输入三个正数,若能构成三角形的三边的边长,则求其面积,否则,输出出错信息。程序:#include"stdio.h"#include"math.h&q

31、uot;main() int a,b,c; float s,area; printf("enter three positive numbers a b c(a>0,b>0,c>0):n"); scanf("%d%d%d",&a,&b,&c); if(a+b>c)&&(a+c>b)&&(b+c>a) /任意两边之和大于第三边 s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf("area=%6.2

32、fn",area); / 输出面积 else printf("nthree data a,b,c can't form a trianglen");运行结果:enter three positive numbers a b c(a>0,b>0,c>0):3 4 5 area= 6.002, 编程求一元二次方程的根 根据不同的系数a,b,c有以下的几种情况:1, 时,方程有两不等实根x1,x22, 时,方程有两相等实根x1x23, 时,方程有两共轭虚根x1,x2 4,时,方程为bxc=0, 根为x=-c/b; 5, 时,方程无解 6,时,方

33、程有无穷解(x可为任意值) 源程序代码:#include <stdio.h>#include <math.h>void main() float a ,b,c,disc,x1,x2,y1,y2; printf("please enter:a,b,cn"); scanf("%f,%f,%f",&a,&b,&c); disc=b*b-4*a*c; if(a=0) if (b=0) if (c=0) printf("the quadratic equation has many rootsn"

34、); else printf("the quadratic equation has no rootn"); else x1=x2=-c/b; printf("x1=x2=%.2fn",x1); else if(disc>=0) x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf("the roots of the quadratic equation:x1=%.2f,x2=%.2fn",x1,x2); else x1=x2=-b/(2*a); y1=y2=sqrt(

35、abs(disc)/(2*a); printf("the roots of the quadratic equation:x1=%.2f+%.2fi,x2=%.2f-%.2fin",x1,y1,x2,y2); 动态测试:数据准备,根据前面分析,应准备6组数据第一组数据:a=1,b=2,c=-3 运行结果: the roots of the quadratic equation:x1=1.00,x2=-3.00第二组数据:a=1,b=2,c=1运行结果:the roots of the quadratic equation:x1=-1.00,x2=-1.00第三组数据:a=1

36、,b=2,c=2 运行结果:the roots of the quadratic equation:x1=-1.00+1.00i,x2=-1.00-1.00i第四组数据:a=0,b=2,c=3运行结果:the roots of the quadratic equation:x1=x2=-1.5第五组数据:a=0,b=0,c=1 运行结果:the quadratic equation has no any root 第六组数据:a=b=c=0 运行结果:the quadratic equation has many roots 第八次上机作业 循环结构程序设计(一)实验目的:1,掌握程序的基本设

37、计方法(能分析具体问题的算法,输入输出,流程)2,掌握while循环的语义、语法和它的使用。(能根据流程写程序,根据程序写流程)3,能正确阅读程序,根据问题说明把程序补充完整上机内容:1, 填空,使程序完整问题说明:输出所有水仙花数。(水仙花数是三位自然数,其各位数字的立方和等于该数,例:153)程序:#include"stdio.h"main()int I,x,y,z; /变量或函数说明 I=100; while(I<1000) /循环条件三位自然数 x=I/100; y= I/10%10; /求I的十位数字 z=I%10; if(I= =x*x*x+y*y*y+z

38、*z*z) /水仙花数的判断条件:立方和等于该数 printf("%dn", I); I+; 运行结果:n=153 n=370 n=371 n=4072, 编程求解问题:一个皮球从50米高处落下,每次反弹的高度为原高度的,求至少经过多少次反弹后,反弹的高度才小于1米?提示:先弄清皮球的运动路线。可设变量,下落高度h1,反弹高度h2,反弹次数n。每次的反弹高度等于下次的下落高度。源程序代码 :#include<stdio.h>#include<math.h>void main()float h1,h2;h1=50.0;int n;n=1;while(n

39、<20) h2=pow(2.0/3,n)*h1; if(h2<1) printf("n=%d,h2=%fn",n,h2);break; n+;上机结果_n=10,h2=0.867077_反弹高度为原来的1/4时,运行结果_n=3,h2=0.781250_第九次上机作业 循环结构程序设计(二)实验目的:1,掌握程序的基本设计方法(能分析具体问题的算法,输入输出,流程)2,掌握for循环的语义、语法和它的使用。(能根据流程写程序,根据程序写流程)3,能正确阅读程序,了解程序的运行过程。根据问题说明把程序补充完整,上机内容:1)已知以下程序是求某一分数序列的前20项的

40、和:1, 填空使程序完整2, 写出该分数序列的前6项。(6个分数)程序:#include"stdio.h"main() int a,b,c,I; float sum,s; /说明类型说明 a=3,b=2,s=(float)a/b; sum=2/1; for(I=2; I<=20;I+) /循环条件:前20项的和 sum+=s; c=a+b; b=a; a=c; s=(float)a/b; /整数除法特殊运算规律 printf("sum=%f",sum);运行结果:sum=32.6602632)编程求:8!要求:用for循环 源程序代码 :#incl

41、ude <stdio.h>void main() int n1,n2,n3;double s1=0,s2=0,s3=1;for(n1=1;n1<=20;n1+)s1=s1+n1;for(n2=1;n2<=10;n2+)s2=s2+n2*n2;for(n3=1;n3<=8;n3+)s3=s3*n3;printf("sum=%fn",s1+s2+s3);上机结果sum=40915.000000第十次上机作业 嵌套循环实验目的:1,掌握嵌套循环程序的基本设计方法(难度分解,化为单层循环)2,掌握for循环,while循环的语义、语法和它的使用。(能根

42、据流程写程序,根据程序写流程)3,能正确阅读程序,了解程序的运行过程。根据问题说明把程序补充完整,上机内容:1, 程序填空,问题说明:求100到1000之间的所有素数和程序:#include <stdio.h>void main() int I,j,sum=0; for(I=101;I<=1000;I+) /循环变量增量 j=2; while(j<I) / I的所有可能因子j if(I%j=0)break; j+; if(j>=I)sum+=I; /素数条件:j<I都不是I因子时 printf("sum of primes of 1001000 i

43、s %dn",sum);运行结果:sum of primes of 1001000 is 75067 2,编程求Sn=a+aa+aaa+aaa(该项有n个a)之值,其中a 为一个数字。例如:222222222222222(此时n=5),n由键盘输入。源程序代码 :#include <stdio.h>void main() int a,n,i=1,sn=0,tn=0; printf("a,n=:"); scanf("%d,%d",&a,&n); while (i<=n) tn=tn+a; /tn表示项,如:222

44、2 sn=sn+tn; /sn表示和,如:2222222222 a=a*10; /下一项的最高位表示的数:如:20000 +i; printf("a+aa+aaa+.=%dn",sn); 上机结果a,n=:2,5 a+aa+aaa+.=24690 第十一次上机作业 一维数组实验目的:1, 掌握一维数组的定义,赋值,使用。2, 能用一维数组这个新的数据结构简化原有程序。3, 根据问题说明,能正确阅读程序。上机内容:1, 问题说明:求数列的前20项和:2/1, 3/2, 5/3, 8/5, 13/8, 21/13,.程序:#include <stdio.h>#def

45、ine N 20void main() int I,aN,bN; /定义两个数组 float s; a0=2; /数组元素初始化 b0=1; for(I=1;I<N;I+) aI=aI-1+bI-1; bI=aI-1; /求数组元素bI s=0; /和变量s初始化 for(I=0;I<N;I+) s+=(float)aI/bI; printf("sum=%fn",s); 运行结果:sum=32.60259 N的值改为3时,运行结果:sum=5.1666672, 编程:按下列数据的原来顺序和它的相反顺序输出下列各数:1,2,3,4,5,6,7,8(要求使用数组)注

46、意:数组的定义:数组元素的个数。数组的两种赋值方式。 数据类型的转换。 注意:数组的对换算法。 源程序代码 :#include <stdio.h>#define N 8void main() int i,aN=1,2,3,4,5,6,7,8; int k,temp;for(i=0;i<N;i+) printf("%3d",ai); printf("n"); for(k=0;k<N/2;k+) temp=ak; a k=aN-1-k; aN-1-k=temp; for(i=0;i<N;i+) printf("%3d&

47、quot;,ai); printf("n");上机结果: 1 2 3 4 5 6 7 8 8 7 6 5 4 3 2 1第十二次上机作业 数组(二)实验目的:1,熟练掌握一维数组,二维数组的正确使用。2,熟悉字符串数组的用法。3,能正确阅读程序,理解程序的含义。4,能根据问题说明,观察其隐含的规律,把程序补充完整。上机内容:1, 问题说明:按下列格式输出6行杨辉三角形11 11 211 3311464115101051要求:先根据已有条件猜测空的内容,再运行程序,再根据运行结果修改空的内容。直至符合要求。程序:#include”stdio.h”main() int y77,

48、n,m; for(n=1;n<7;n+) ynn=1; yn1=1; /* 第一列元素为1 */ for(n=3;n<7;n+) for(m=2;m<=n-1;m+) ynm= yn-1m-1+yn-1m; /数据元素等于上一行对应元素与其前一列元素和 for(n=1;n<7;n+) for(m=1;m<=n;m+) printf(“%4d”,ynm); printf("n",n); /换行 2, 编程,用冒泡法或选择法把一列数据排序后输出:23,145,65,73,12,74,91,5。要求先输出原数据,依次输出每一轮排序后的数据。 源程序代

49、码 :#include <stdio.h>void main() int a8=23,145,65,73,12,74,91,5; int i,j,temp,k; for (i=0;i<8;i+) printf("%4d",ai); printf("n");for(i=0;i<8;i+)for(j=i+1;j<8;j+) if(aj>ai) temp=ai; ai=aj; aj=temp; for(k=0;k<8;k+) printf("%4d",ak); printf("n"

50、;); for(i=0;i<8;i+) printf("%4d",ai);上机结果: 3, 难度题(可选):一个班的学生的学号与成绩如下,请按成绩从高分到低分输出。学生的学号与对应的成绩应同时输出。学号:1,2,3,4,5,6,7,8,9,10,11成绩:40,63,81,80,98,72,91,65,70,68,79提示:最好用选择法排序;增加一数组放学号,排序交换位置时,同时交换学号数组与成绩数组的对应元素。 注: 在上题的右边作适当修改第十三次上机作业 数组(二)实验目的:1,熟练掌握一维数组,二维数组的正确使用。2,熟悉字符串数组的用法。3,能正确阅读程序,理

51、解程序的含义。4,能根据问题说明,观察其隐含的规律,把程序补充完整。5,能根据多次不同的输入与对应的输出结果,推算程序功能。上机内容:1,下列程序是求给定字符串的字符个数。要求:不修改程序已写部分,在空缺部分把程序补充完整程序一:#include”stdio.h”main() char s40; int m=0; printf(“Enter a string : n”); scanf(“%s”,s); while(sm!=0) /循环条件:字符串结束标志 m+; /非0字符数累加 printf(“The string length : %dn”,m);2, 阅读下列程序要求:能根据多次不同的输入(多次修改字符串S1的初值)与对应的输出结果,以及源程序,推算程序功能。#include"stdio.h"char str ="printf"main() void squeeze(char s,char c);/函数说明 char ch='f' printf("%sn",str); squeeze(str,c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论