文档库 最新最全的文档下载
当前位置:文档库 › 实验三-函数程序设计

实验三-函数程序设计

实验三-函数程序设计
实验三-函数程序设计

实 验 报 告 三

3.1 实验学时:4学时 3.2 实验目的

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

2) 掌握函数实参与形参的对应关系以及“值传递”的方式; 3) 掌握函数的嵌套调用和递归调用的方法;

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

3.3 必做实验

【题目3-1】编写函数实现将输入的小写字母转换成大写字母。

【题目3-2】从键盘输入6个同学计算机课程期末考试成绩,求该课程的期末成绩的平均分并输出。函数功能要求:实现6个同学的的期末成绩输入,并统计出平均分。

【题目3-3】请用函数编写程序实现:计算3到100之间所有素数的平方根之和,并输出。s=148.874270。

【题目3-4】用函数编写程序,其功能是:计算6210!

!!21)(-<++++=n x n x x x x f n n 直到 。若

x=2.5,编写程序给出输出值。

【题目3-5】输入下面的程序并分析运行结果。用F7单步执行,注意程序的执行过程,观察变量d 的值,理解全局变量和局部变量的区别,理解各种局部变量的作用范围。

3.4 选作实验

【选作3-1】编写函数fun ,其功能是:根据以下公式求P 的值,结果由函数值带回。m 与n 为两个正整数且要求m > n 。)!

(!!

n m n m P -=

例如:m =12,n =8时,运行结果为495.000000。

【选作3-2】请编写一个函数fun ,它的功能是:根据以下公式求π的值(要求满足精度0.0005, 即某项小于0.0005时停止迭代):

)12(53219753432175332153213112

+??????++??????+????+??++

=n n π

程序运行后,如果输入精度0.0005,则程序输出为3.14…。

3.5 实验结果

【实验3-1】代码及运行结果:#include"stdio.h"

char fs(char b)

{ //char a

b=b-32;

return b;

}

main ()

{

char c,d;

printf("input:");

scanf("%c",&c);

d=fs(c);

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

}

【实验3-2】代码及运行结果:#include"stdio.h"

float ave(int n)

{

int i;

float a,b,s=0;

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

{

scanf("%f",&b);

}

a=s/6;

return a;

}

main ()

{

float average;

average=ave(6);

printf("average=%f\n",average); }

【实验3-3】代码及运行结果:

#include"stdio.h"

#include"math.h"

int sushu(int a)

{

int i;

for(i=2;i

{

if((a%i)==0) break;

}

if(i==a) return a;

else return 0;

}

main ()

{

float sum=0;

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

{

sum+=sqrt(sushu(j));

}

printf("%f\n",sum);

}

【实验3-4】代码及运行结果:#include"stdio.h"

#include"math.h"

main ()

{

int i=1;

double x,term=1.0,sum=1.0;

printf("input x:");

scanf("%lf",&x);

while(term>=1e-6)

{

term=term*x/i;

sum=sum+term;

i++;

}

printf("%lf",sum);

}

【实验3-5】代码及运行结果:#include"stdio.h"

int d;

fun(int p)

{

int d=5;

d+=p++;

printf("%d\n",d);

}

main ()

{

int a=3;

fun(a);

{int d=16;

d+=a++;

printf("%d\n",d);

}

printf("%d\n",d);

}

【选作3-1】代码及运行结果:

#include"stdio.h"

int fun(int a)

{

int i,sum=1;

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

sum=i*sum;

return sum;

}

main ()

{

float p;

int m,n;

printf("input m:");

scanf("%d",&m);

printf("input n:");

scanf("%d",&n);

if(m>n)

{ p=(float)fun(m)/fun(n)/fun(m-n);

printf("%f\n",p);

}

else

printf("错误!\n");

}

【选作3-2】代码及运行结果:

#include"stdio.h"

float fun(int a)

{

int i;

float term=1,sum=1;

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

{

term=term*i/(2*i+1);

}

return term;

}

main ()

{

int a;

float sum=1;

for(a=1;fun(a)>=5e-4;a++)

sum+=fun(a);

printf("%f\n",2*sum);

}

C程序设计实验三实验报告

实验报告 工学院土木工程专业09级2011至2012学年度第1学期学号:xxxxxx姓名:xxxxxx 2011 年10月08日第3~4节综合楼325教室 实验目的:

a的字节数为sizeof (a)或sizeof (int ),用printf 函数语句输出各类型变 量的长度(字节数)。 ①输入程序如下 in clude int mai n() {int a,b,i,j,k,r,s,t,u,v,w,x,y,z; float d,e; char c1,c2; double f,g; long m, n; un sig ned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.78; m=50000;n=-60000; p=32768;q=40000; i=sizeof(a);j=sizeof(b); k=sizeof(d);r=sizeof(e); s=sizeof(c1);t=sizeof(c2); u=sizeof(f);v=sizeof(g); w=sizeof(m);x=sizeof( n); y=sizeof(p);z=sizeof(q); prin tf("a=%d,b=%d\nd=%d,e=%d\nc 1= %d,c2=%d\n",i,j,k,r,s,t); prin tf("f=%d,g=%d\nm=%d, n=%d\nmp=%d,q=%d\n",u,v,w,x,y,z); } 结 果如 下: (2)设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体 积。编程序,用scanf输入数据,输出计算结果。输出时要有文字说明,去小数点后两位数字。 ①编写程序如下: #i nclude int mai n() {float h,r,l,s,sq,vq,vz; float pi=3.141526; prin tf("Please in put r,h:"); sca nf("%f,%f",&r,&h); l=2*pi*r; s=r*r*pi; sq=4*pi*r*r; vq=3.0/4.0*pi*r*r*r; vz=pi*r*r*h; prin tf("The circumfere nce:l=%6.2f\n",l); prin tf("The area of thee circle:s=%6.2f\n ",s); prin tf("The superficial area of the ball:sq=%6.2f\n ",sq); prin tf("The volume of the ball:v=%6.2f\n",vq); prin tf("The volume of the cyli nder:vz=%6.2f\n ",vz); return 0; L

C语言程序设计实验3

一、实验目的 1. 掌握简单的程序设计,能正确写出顺序结构的源程序。 2. 掌握数据的输入输出方法,能正确使用各种格式转换符。 二、实验内容(程序清单及运行结果) (一)阅读程序 1.先读下列程序,写出程序运算结果,再将该程序输入并运行,观察运行结果 与你所写的结果是否相同。 ①int main() { int x,y,z; x=y=2;z=3; y=x++-1; printf("%d\t%d\t",x,y); y=++x-1; printf("%d\t%d\t",x,y); y=z--+1; printf("%d\t%d\t",z,y); y=--z+1; printf("%d\t%d\n",z,y); return 0; } ②int main() { char c1='a',c2='b',c3='c',c4='\101',c5='\116'; printf("a%cb%c\tc%c\tabc\n",c1,c2,c3); printf("\tb%c%c",c4,c5); return 0; } 2.以下各程序需要输入数据,请写出输入数据的格式和变量的值并上机验证。

①#include int main() { int a,b,c; printf("input a,b,c\n"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d",a,b,c); return 0; } ②main() { int i, j; printf("i, j=?\n"); scanf("%d, %d", &i, &j); } ③scanf(“%d,%*d,%d”,&a,&b); 若输入:3,4,5 a=? b=? ④scanf(“%3d%2d”,&a,&b); 若输入:12345 a=?b=?

实验三综合程序设计方案(一)

实验三综合程序设计(一) 一、实验目的 1熟练掌握子程序的结构。 2?掌握子程序设计的思想、方法及上机调试过程。 3 ?熟练掌握系统功能调用的作用。 4?掌握系统功能调用的思想、方法。 二、实验准备知识 1. 8086/8088汇编语言指令及伪指令的用法 2?子程序设计的思想和方法 (1)子程序是功能相对独立的程序段,它可以实现源程序的模块化,简化源 程序结构,提高编程效率 (2)子程序定义:禾I」用过程伪指令PROC和ENDP,格式如下: 过程名PROC [NEAR|FAR] ……;过程体 过程名ENDP 其中:可选的参数指定过程的调用属性。没有指定过程属性,则采用默认属性NEAR。 NEAR属性:段内近调用,子程序只能被相同代码段的其他程序调用 FAR属性:段间远调用,子程序可以被相同或不同代码段的程序调用 (3)主程序(调用程序)调用子程序(被调用程序):利用CALL指令 (4)子程序返回主程序:利用RET指令 (5)保护现场:子程序开始处应该保护子程序中使用的寄存器(通常利用堆栈),子程序返回前相应进行恢复。 (6)子程序中对堆栈的压入和弹出操作通常成对使用,以保持堆栈的平衡。 (7)子程序允许嵌套和递归

(8)处理好子程序与主程序之间的参数传递问题:利用寄存器、内存缓冲区 及堆栈。 3. DOS和BIOS中断调用是机器及操作系统提供的中断调用功能 4?系统功能调用的步骤: ⑴在AH寄存器中设置系统功能调用号 ⑵ 在指定寄存器中设置入口参数 ⑶ 用中断调用指令(INT i8 )执行功能调用 ⑷ 根据出口参数分析功能调用执行情况 5.DOS利用21H号中断提供给用户近百个系统功能,主要包括设备管理、 目录管理和文件管理三个方面的功能版权文档,请勿用做商业用途 (1 )输入一个字符,01H号功能调用 (2)输出一个字符,02H号功能调用 (3)输入一个字符串,0AH号功能调用 (4)输出一个字符串,09H号功能调用 注意它们的入口参数及出口参数 6.BIOS也以中断服务程序的形式,向程序员提供系统的基本输入输出程序 BIOS功能更加基本,且与操作系统无关,当DOS没有启动或不允许使用DOS 功能调用时,可以使用BIOS功能调用版权文档,请勿用做商业用途 (1)键盘I/O中断调用——INT 16H (2)显示器输入中断调用——INT 10H 注意它们的入口参数及出口参数 三、实验性质 本实验为综合性实验。 四、实验学时 本实验学时为2学时。

实验一简单程序设计实验

实验一:简单程序设计实验 (1)编写一个 32 位无符号数除法的程序,要求将存放在 NUM1 中的 32 位无符号数与存放 在 NUM2 中的 16 位无符号数相除,结果存放在 NUM3 和 NUM4 中。 程序流程图略。 参考源程序: DATA SEGMENT NUM1 DD 2A8B7654H NUM2 DW 5ABCH NUM3 DW ? NUM4 DW ? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA ;数据段寄存器初始化 MOV DS,AX MOV AX, WORD PTR NUM1 MOV DX, WORD PTR NUM1+2 DIV NUM2 MOV NUM3,AX MOV NUM4,DX MOV AH,4CH ;正常返回DOS 系统 INT 21H CODE ENDS END START (2)编写一个拆字程序。要求将存放在 ARY 单元的 2 位十六进制数 X 1X 2 拆为 X 1 和 X 2 两 部分,并以 0X 1 和 0X 2 的形式分别存入 ARY+1 和 ARY+2 单元中。 程序流程图略。 参考源程序: DATA SEGMENT ARY DB 2AH,?,? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET ARY ;取ARY 的偏移地址 MOV AL,[SI] ;取16进制数至AL

MOV BL,AL AND AL,0F0H ;取16进制数的高四位,即X1 SHR AL,4 MOV [SI+1],AL ;存0X1 MOV AL,BL AND AL,0FH ;取16进制数的低四位,即X2 MOV [SI+2],AL ;存0X2 MOV AH,4CH INT 21H CODE ENDS END START

实验四 MATLAB程序设计

实验四 MATLAB 程序设计 1.实验目的 (1)熟练掌握MATLAB 的程序流程控制结构。 (2)掌握M 文件的结构,M 函数文件编写、使用。 (3)熟练掌握函数调用和参数传递。 2.实验仪器 (1)Matlab6.5应用软件安装版 一套 (3)PC 机 一台 3. 实验原理 依据MA TLAB 的编程的原理,编写M 函数文件,调用M 函数文件,完成曲线绘制。 4. 实验步骤 (1)利用for 、while 控制语句和sum 指令求和。 (2)使用MA TLAB 函数文件绘图。 (3)利用置换指令绘制脉冲响应曲线. (4)利用feval 指令实现指定的函数。 5. 实验报告内容(选做其中两题) (1)分别用for 和while 循环语句计算∑==630i i 2 K 的程序,再写出一种避免循环的计算程序。 (提示:可考虑利用MA TLAB 的sum (X,n )函数,实现沿数组X 的第n 维求和。)保存为M 文件. (2)将课本例4-8子函数编程及调用演示,三个子图上的圆和多边形绘制在同一坐标系中。并保存为M 文件。保存输出结果图。 (3)利用置换指令subs(X,new),例4-18中的脉冲响应在t=[0,18]的曲线。并保存为M 文件。保存输出结果图。 (4)试利用feval ()指令计算F(x)+F 2(x),其中F 可取‘sin ’、‘cos ’。(提示:先编写以个M 函数function y=trif(F,x)实现F(x)+F 2(x)的计算,在编写调用函数完成F 为‘sin ’、‘cos ’的计算),并保存为M 文件。(指定完成sin(pi/2)+sin(pi/2)^2; cos(pi/3)+cos(pi/3)^2)

实验3简单的程序设计

实验3简单的程序设计 实验目的: 1.掌握表达式、赋值语句的正确书写规则。 2.掌握VB变量的定义和使用,表达式和常用函数的使用。 3.掌握InputBox与MsgBox的使用。 实验3.1函数考察 实验任务: 考察下列函数的值。 Round(-3.5) Round(3.5) Chr(66) Asc ("c") Asc(Chr(99)) Chr(Asc("K")) Ucase$("abcdefg") Lcase(“ABC”) Str(123.45) Val(“123AB”) Len(“123程序设计ABC”) LenB(“123程序设计ABC”) Ltrim(“ ABC”) String(3, “ABC”) Instr(“EFABCDEFG”, “ef”) Instr(2,“EFABCDEFG”, “ef”,1) Date() Now() Time() 实验步骤: 先自己分析以上函数的功能和可能的结果,然后在立即窗口用Print方法求出相应函数的值,对照比较自己的判断。 22

实验3.2表达式考察 实验任务: 考察下列表达式的值。 Dateadd(“m”,1,#1/30/2000#) Datediff(“y”,#12/03/1999#,#1/03/2000#) ‘计算时间间隔多少日 123 + Mid(“123456”,3,2) 123 & Mid(“123456”,3,2) Ucase(Mid(“abcdefgh”,3,4)) 16 / 4 – 2 ^ 5 * 8 / 4 MOD 5 \ 2 实验步骤: 先自己分析表达式的功能和可能的结果,然后在立即窗口用Print方法求出相应表达式的值,对照比较自己的判断。 实验3.3简单打印图形 实验任务: 使用Print方法、Tab函数和String函数设计一个过程,显示如图3-1所示的图形,并将结果保存到文件中。 图3-1 实验3.2运行界面 参考代码如下: Private Sub Form_Load() Print Tab(15); String(1, "1") Print Tab(14); String(3, "2") Print Tab(13); String(5, "3") Print Tab(12); String(7, "4") End Sub 操作提示: 应先将Form窗体的AutoRedraw属性值设为True。

程序设计综合实验报告册

西南交通大学程序设计综合实验 实验地点: 实验学期: 学生班级: 学生学号: 学生姓名: 任课教师:龚勋 信息科学与技术学院 2012年4月

实验一:ATM机用户操作界面、业务逻辑编写 ●实验目的及内容 1、根据ATM的工作流程编写用户界面,掌握文本用户菜单的编写方法; 2、根据ATM的工作流程编写业务罗杰,掌握搭建一个完整的应用系统的方法及软件编程思想。 ●实验要求 1、除提示用户输入的数字外,界面上不能响应、出现任何其他用户输入; 2、每个菜单界面独立显示,不要出现多组菜单重叠显示的现象; 3、每个业务逻辑可以多次执行,直到用户选择退出业务。 ●实验步骤及核心代码 void main() { int bExit=0; char in; //控制语言的选择 while(!bExit) { MainMenu(); in=getch(); system("cls"); switch(in) { .....语言选择} } } void MainMenu() {......} void LanguageMenu(int t) {

int cExit=0; char in; while(!cExit) { if(t==1) { ...... //显示中文功能选择菜单 in=getch(); system("cls"); switch(in) { 中文功能函数的选择} } else { 同上,只需将中文函数改为英文函数} } } //中文的查询函数 void Query1() { printf("======================\n") printf(“此账户有%.2f元\n",sum); //对sum已初始化system("pause"); system("cls"); } //中文的存钱函数 void Deposit1(float *p) { float x; printf("================================\n"); printf(" 输入您要存的数目:"); scanf("%f",&x); *p+=x; system("pause"); system("cls"); } //中文的取钱函数 void WithDraw1(float *p) { float y; int a=1; printf("====================================\n"); printf("输入您要取的数目: "); while(a) { scanf("%f",&y); if(y>sum)

实验05 函数程序设计

计算两个复数之积(调试示例error05_1)程序填空,不要改变与输入输出 有关的语句。 分别输入两个复数的实部与虚部,编程调用函数实现计算两个复数之积。 若两个复数分别为:c1=x1+(y1)i, c2=x2+(y2)i,则: c1*c2 = (x1*x2-y1*y2) + (x1*y2+x2*y1)i 输入输出示例:括号内是说明 输入 1 2 (x1=1, y1=2) -2 3 (x2=-2, y2=3) 输出 product of complex is (-5.000000)+(1.000000)i #include /*---------*/ int main(void) { float imag1, imag2, real1, real2; scanf("%f%f", &real1, &imag1); scanf("%f%f", &real2, &imag2); complex_prod(real1, imag1, real2, imag2); printf("product of complex is (%f)+(%f)i\n", result_real, result_imag); return 0; } /*---------*/ 使用函数求1! + 2! + … + m!(改错题error05_2)程序填空,不要改 变与输入输出有关的语句。 求1! + 2! + … + 10!,要求定义并调用函数fact(n)计算 n!,函数形参 n 的类型是int,函数类型是double。 输入输出示例:括号内是说明 输出: 1!+2!+...+10! = 4037913.000000 #include

matlab实验四函数编写与程序设计

实验四:函数编写与程序设计 一、实验目的1 . 掌握M文件的创建。 2.掌握函数的编写规则。 3.掌握函数的调用。 4 . 掌握基本的输入输出函数以及显示函数的用法。 5.会用Matlab程序设计实现一些工程算法问题。 二、实验内容 1 . 设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,显示相应的结果,并要求结果显示类似于“a=x+y=34”。a=input('请输入一个数: ')

b=input('请输入一个数:'); fuhao=input('请输入一个运算符号(+-*/):','s'); switch fuhao case {'+'} he=a+b; disp(['和=',num2str(a),'+',num2str(b),'=',num2str(he)]); case {'-'} he=a-b; disp(['减=',num2str(a),'-',num2str(b),'=',num2str(he)]) case {'*'} he=a*b; disp(['乘=',num2str(a),'*',num2str(b),'=',num2str(he)]) case {'/'} he=a/b; disp(['除=',num2str(a),'/',num2str(b),'=',num2str(he)]) otherwise disp('请输入正确的符号'); end 2 . 求下列分段函数的值 2 2 2 6,0 56, 1, y χχχχ χχχχχ χχ ?+-<≠ ? =-+≤≠≠? ?-- ? 且-3 0<10,2且3 其他

03实验三 顺序结构程序设计_答案

湖北工业大学实验报告 课程名称:C语言程序设计实验内容实验三顺序结构程序设计 学院:工程技术学院专业班级: 姓名:学号:教师:成绩: 一、实验目的 1、掌握赋值语句、表达式语句、函数调用语句、复合语句、空语句的使用方法。 2、掌握输入、输出函数的格式及格式符的使用。掌握文件包含预处理命令的使用方法。 3、掌握数据的输入、存储、输出之间的关系。 4、掌握顺序程序设计的逻辑结构,掌握数据结构的功能。 二、预习作业 1、程序填空题:试在括号中填入正确的答案,并上机验证程序的正确性。(1) 输入大写字符A,则输出为( )。(文件名:ex3_1.c) (#include ) main( ) { ( char ch,chr; ) chr=(ch= getchar( )) main( ) { ( long int) a =80000 , b = 60000, c, d; ( c) = ( a - b ,a + b ); ( d) = (a + b,a - b); printf(“%ld ,%ld\n”, c, d); }

2、程序改错并上机调试运行 (1)更改下列程序中的位运算符和逻辑运算符,能使变量d、e输出的结果为零。 (文件名:ex3_3.c) #include main( ) { int a = 8, b = 2,c = 3,d,e; /********** found **********/ d = (a % c & ^ a % c); e = a / c - b || && c + + ; printf (“%d, %d\n”, d, e); } (2) 查找改程序中的错误,并修改正确。(文件名:ex3_4.c) #include main( ) { int a = 4, b = 6, c= 3; /********** found **********/ a = a + b = b + c ; b = a < b ?a :b < c ?b :c printf(“%d,%d\n”, a, b); } 3、读程序写结果并上机验证其正确性 (1) 变量 a,b,c,d如下,将变量a以各种格式输出并输出表达式c+a,d – 32的值。(文件名:ex3_5.c) #include main( ) 结果为:(-1,4294967295,37777777777,ffffffff ) { int a = - 1 , b = 2 ; C,B char c = …D?,d = …b?; b = b + c;//??? printf (“%d, %u,%o,%x \n ”,a,a,a,a ); printf (“%c,%c \n ”,c + a, d - 32); } (2) 运行程序后输入”a空格b空格c回车”后,输出结果是(a ,b )。(文件

实验七 用函数实现模块化程序设计

河南工业大学C语言实验报告 专业班级:生物11级1班学号:201112910118姓名:l刘路路指导老师:朱红莉评分: 实验题目:用函数实现模块化程序设计 实验目的:熟练掌握函数的定义、调用、声明 实验内容:P218-219 习题1、2、4 实验步骤:(具体程序及运行结果) 7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。 #include int 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=lcd(u,v,h); printf("L.C.D=%d\n",l); return 0; } 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 lcd(int u,int v,int h) { return(u*v/h); } 7.3写一个判素数的函数,在主函数输入一个整数,输出是否为素数的信息。 #include int main() {int prime(int); int n; printf("input an integer:"); scanf("%d",&n);

if (prime(n)) printf("%d is a prime.\n",n); else printf("%d is not a prime.\n",n); return 0; } int prime(int n) {int flag=1,i; for (i=2;i #define N 3 int array[N][N]; int main() { void convert(int array[][3]); int i,j; printf("input array:\n"); for (i=0;i

实验三简单程序设计(2)

实验三简单程序设计 【实验目的】 1、掌握scanf、printf函数语句的使用 2、掌握算术表达式和赋值表达式的使用 3、能够编程实现简单的数据处理 【实验性质】验证性 【实验要求】 1、认真阅读本次实验的目的,了解本次实验要求掌握的内容 2、在上机前,需要预习,在程序改错题旁将程序中存在的错误修改过来,将编程题的 代码和流程图写在预习报告中 3、在实验时,将实验要求的基本题(程序改错和编程题)根据预习报告中编写的代码, 在VC环境中编写出来 4、在VC中将编写的程序编译、调试,能正确运行结果,各题目的具体要求请看题目下 的要求 5、将正确程序上传FTP服务器(ftp://172.17.9.253) 6、争取完成选作题 【实验内容】 1、程序改错 1) 下面程序需要从键盘输入三个数,计算其平均值在屏幕上显示输出。要求平均值 需要保留两位小数。源代码如下,程序中存在错误,请将其改正写在旁边,并注明为什么错误。 include int Main(){ int x,y,z,float ave; /*定义变量*/ printf("请输入三个数:\n);/*输入提示*/ scanf("%d,%d,%d",x,y,z);/*从键盘输入*/ ave=x+y+z/3;/*计算*/ printf("平均值是:ave=%f",AVE); return 0; }

2、编程题 1)编写程序,在计算机屏幕上显示如下信息。 【要求】 (1)使用printf 函数输出字符 2) 设一个正圆台的上底半径r1,下底半径r2,高h 。请设计一程序,从键盘输入r1,r2,r3;计算并在显示器上输出该圆台的上底面积s 1,下底面积s 2,圆台的体积V 。 【要求】 (1)r1,r2,h 用scanf 函数输入,且在输入前要有提示; (2)在输出结果时要有文字说明,每个输出值占一行,且小数点后取2位数字。 【思路点拔】 (1)圆面积计算公式为 s=πr 2。其中r 为圆半径。 (2)圆台体积计算公式为 V=3 /)r1r2r2r1(h 22++π 3) 鸡兔同笼,已知鸡兔总头数为h ,总脚数为f ,求鸡兔各有多少只? 【要求】

实验四 函数编程练习

2.2.4 实验4:函数编程练习 1. 给小学生出加法考试题 编写一个程序,给学生出一道加法运算题,然后判断学生输入的答案对错与否,按下列要求以循序渐进的方式编程。 程序1 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”,程序结束。 程序2 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”,直到做对为止。 程序3 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则提示重做,显示“Not correct! Try again!”,最多给三次机会,如果三次仍未做对,则显示“Not correct! You have tried three times! Test over!”,程序结束。 程序4 连续做10道题,通过计算机随机产生两个1~10之间的加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错的题数。 程序5 通过计算机随机产生10道四则运算题,两个操作数为1~10之间的随机数,运算类型为随机产生的加、减、乘、整除中的任意一种,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错题数。 【思考题】如果要求将整数之间的四则运算题改为实数之间的四则运算题,那么程序该如何修改呢?请读者修改程序,并上机测试程序运行结果。 2.掷骰子游戏 编写程序模拟掷骰子游戏。已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1、2、3、4、5、6个点,投两枚骰子之后,计算点数之和。如果第一次投的点数和为7或11,则游戏者获胜;如果第一次投的点数和为2、3或12,则游戏者输;如果第一次投的点数和为4、5、6、8、9或10,则将这个和作为游戏者获胜需要掷出的点数,继续投骰子,直到赚到该点数时算是游戏者获胜。如果投掷7次仍未赚到该点数,则游戏者输。 【思考题】将游戏规则改为:计算机想一个数作为一个骰子掷出的点数(在用户输入数据之前不显示该点数),用户从键盘输入一个数作为另一个骰子掷出的点数,再计算两点数之和。其余规则相同,然后请读者重新编写该程序。

实验三(1)MATLAB程序设计并且附有答案

实验三(1)、MATLAB程序设计 一、实验目的 1、掌握建立和执行M文件的方法 2、掌握利用if语句和switch语句实现选择结构的方法 二、实验内容及步骤 1、输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。 其中90分~100分为A,80分~89分为B,70分~79为C, 60分~69分为D,60分以下为E。 要求:1)分别用if语句和switch语句实现a=input('please input the score:'); if mod(a,0.5)==0 &a>=0&a<=100; switch (floor(a/10)) case 9 disp('A'); case 8 disp('B'); case 7 disp('C'); case 6 disp('D'); otherwise disp('E'); end else disp('输入的成绩不合理') end double x; x=input('Input x please:'); if mod(x,0.5)~=0 || x>100 || x<0 disp('ê?è?μ?3é?¨2?o?àí'); elseif x>=90 & x<=100 disp('A'); elseif x>=80 & x<=89 disp('B'); elseif x>=70 & x<=79 disp('C'); elseif x>=60 & x<=69 disp('D'); elseif x>=0 & x<60 disp('E');

end 2)对不合理的成绩应输出出错信息“输入的成绩不合理”(若成绩出现小数,则只能是“.5”) 2、设计程序,完成两位数的加、减、乘、除四则运算,即产 生两个两位随机整数,再输入一个运算符号,做相应的运 算,显示相应的结果,并要求结果显示类似于“a=x+y=34”。 x=randint(1,1,[10 99]);或者x=round(rand(1)*100) y=randint(1,1,[10 99]);或者y=round(rand(1)*100) disp(['x=',num2str(x)]); disp(['y=',num2str(y)]); A=input('请输入一个运算符号:','s'); %书上114页有说明 switch(A) case '+' a=x+y; disp(['a=x+y=',num2str(a)]); case '-' a=x-y;disp(['a=x-y=',num2str(a)]); case '*' a=x*y;disp(['a=x*y=',num2str(a)]); case '/' a=x/y;disp(['a=x/y=',num2str(a)]); end 3、求下列分段函数的值 2 2 2 6,0 56, 1, y χχχχ χχχχχ χχ ?+-<≠ ? =-+≤≠≠? ?-- ? 且-3 0<10,2且3 其他 要求:用if语句实现,分别输出x = -5.0,-3.0,1.0,2.0,2.5,

实验项目:实验一 最简单的C程序设计

实验项目:实验一最简单的C程序设计 (所属课程:《C语言程序设计》学时:2) 一、实验目的 1.掌握:使用标准输入/输出函数进行常见数据类型的数据的输入/输出方法。 2.初步培养编制程序框图和源程序、准备测试数据以及实际调试程序的独立编程能力。 3.掌握顺序结构程序设计的基本思路。 二、实验条件 Pc和vc++编程环境 三、实验内容 1.熟悉编程环境。 2.输入并运行一个C程序 3.掌握各种格式转换符的正确使用方法。 4.编程序:设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。要求用scanf函数从键盘上输入数据(半径和高),输出各计算结果,输出时要求有文字说明,取小数点后2位数字。5.编程序:用getchar函数输入两个字符给C1、C2,然后分别用putchar 函数和printf函数输出这两个字符。 四、实验步骤 编写程序,输入数据,观察结果。 五、实验结果 观察结果和预期是否一致。 实验项目:实验二选择结构程序设计

(所属课程:《C 语言程序设计》学时:2) 一、实验目的 1.了解C 语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。 2.学会正确使用逻辑运算符和逻辑表达式。 3.熟练掌握if 语句和switch 语句 二、实验条件 Pc 和vc++编程环境 三、实验内容 1.有一函数: ?? ???≥-<≤-<=)10x (113x )10x 1(12x )1x (x y 用scanf 函数输入x 的值,求y 值。 运行程序,输入x 的值(分别为x<1、1≤x <10、x ≥10三种情况),检查输出的y 值是否正确。 2.给出一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。90分以上为A ,81~89分为B ,71~79分为C ,61~69分为D ,60分以下为E 。 3.输入4个整数,要求按由小到大顺序输出。 四、实验步骤 编写程序,输入数据,观察结果。 五、实验结果 观察结果和预期是否一致。 实验项目:实验三 循环结构程序设计

函数程序设计 -C语言程序实验报告

安徽工程大学 高级语言程序设计实验报告 班级姓名同组者/ 成绩 日期2019\11\21 指导教师 实验名称函数程序设计 一、实验目的 1.掌握定义函数的方法。 2.掌握函数实参与形参的对应关系,体会“值传递”的方式。 3.掌握函数的嵌套调用和递归调用的方法。 4.掌握全局变量和局部变量、动态变量和静态变量的概念与使用方法。 5.理解数组作为函数参数的传递方式。 6.理解宏的概念,掌握宏的定义。 7.了解文件包含的概念,掌握其用法。 二、实验内容 1.完成程序,求解n! 具体要求:输入并完善源程序;对源程序进行编译、连接和运行;写出程序运行结果。 2.计算s=1的k次方+2的k次方+3的k次方+……+N的k次方。 具体要求:输入并完善源程序;对源程序进行编译、连接和运行;写出程序运行结果。 3.写出下面3个程序的输出结果,说明每个程序中的各个x有何不同。 4.阅读程序,理解程序的功能,写出预期结果并上机验证。 5.编程并上机调试运行。 (1)编写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。(2)输入一个整数,将它逆序输出。要求定义并调用函数rverse(number),它的功能是返回number的逆序数。如reverse(12345)的返回值是54321。 (3)用递归法求n阶勒让德多项式的值,递归公式为 P(x)=1,n=0;P(x)=x,n=1;P(x)= [(2n-1)*x-Pn-1(x)-(n-1)Pn-2(x)]/n, n>1 (4)编写一函数,由实参传递一个字符串,统计此字符串中字母、数字、空格和其他

字符的个数,在主函数中输入字符串并输出上述结果。 (5)带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出交换后的两个值。 (6)编写函数,实现两个字符串的连接,在主函数中输入两个字符串并输出连接后的结果(不要使用库函数中的strcat函数)。 (7)请编写函数fun,它的功能是:求出1~1000之内能被7或11整除,但不能同时被7和11整除的所有整数,并将它们放在a所指的数组中,通过n返回这些数的个数,在主函数中输出这些整数,并给出统计的总数。 (8)设有未完成的函数: char GetChar(char c) { char s[]="9038571426"; …… } 字符串s中无序地存储了10个数字字符,没有重复。函数的功能是: 如果字符c不是数字字符,函数原样返回该字符;否则,在s中查找字符C,并返回其在s 中的前一个字符。如果该字符位于s的最前面(字符'9') ,则返回最后一个字符6'。 如GetChar(4)得到字符'I', GetChar(T)得到字符T。请完成该函数并在主函数中调用。*思考题 1.请分析不返回值的函数定义与有返回值的函数定义有什么不同,思考这两类函数在实际编程中的作用。 2.请观察本次实验中使用的函数都有几个返回值,当个函数需要有多个返回值时,应该如何处理? 3.数组作为函数参数有哪几种方式?这些方式中有没有能解决之前“函数多值返回问题”的方法? 4.请分析下面程序的作用。 /*format.h*/ #define DIGIT(d) printf("整数输出:%d\n",d) #define FLOAT(f) printf("实数输出:%10.2f\n",f) #define STRING(s) printf("字符串输出:?号s\n",s) /*user's program*/

程序设计基础实验报告

实验一 用C 语言编写简单程序 一、实验目的 1. 熟悉VC6.0的编程环境,掌握运行C 程序的基本步骤。 2. 了解C 程序的基本框架,模仿例题编写简单的C 语言程序。 3. 正确书写算术表达式、赋值表达式和关系表达式。 4. 掌握基本输入输出函数的使用,正确调用C 语言提供的数学库函数。 5. 掌握简单的单步调试方法。 二、实验环境 Windows XP ;Visual C++ 6.0。 三、实验内容 1.在屏幕上显示一个句子“What is a computer?”。 2.求华氏温度150F 对应的摄氏温度。计算公式如下: 其中,c 表示摄氏温度;f 表示华氏温度。 3.输入x ,计算下列分段函数的值(保留2位小数),请调用sqrt 函数求平方根,调用pow 函数求幂。 4. 输入一个正整数m (0100)m ≤≤,求100i m i =∑。 四、实验要求 1. 将上机验证正确的源代码写到实验报告上。 2.根据自己的真实感受,认真填写实验分析和实验心得以及问题和建议。 3.按时提交实验报告。 553299 c f =?- ?21(1)2 x<02()0x x f x ?+++?=≥

一、实验目的 1.熟练掌握关系表达式的使用。 2.熟练掌握使用else-if 语句实现多分支结构程序设计。 二、实验环境 Windows XP ;Visual C++ 6.0。 三、实验内容 1.输入x ,计算并输出下列分段函数sign(x)的值。 2.输入月薪salary ,输出应交的个人所得税tax (保留2位小数)。按照2011年开始实行的新的个人所得税法,计算公式为:tax = rate*(salary-3500)-deduction 。 当salary≤3500时,rate=0、deduction=0 当35000y sign x -??==???

大学生c语言程序设计(第四版谭洪强)实验8答案

实验八 函 数(二) 参考答案 /*1.(sy8-1.c ) 请编写函数 fun ,其功能是:计算并输出给定数组(长度为 9)中每相邻两个元素之平均值的平方根之和。 例如,给定数组中的 9 个元素依次为 12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,输出应为:s=35.951014。 【解题思路】 在给出的参考程序中,由于函数要求的返回值为双精度型,所以先将变量 avg 、sum 定义为双精度型,初值为 0.0,然后通过 for 循环分别求出相邻两个元素的平均值放入变量 avg 中,再使用求平方根函数sqrt()对各平均值开方求和,最终结果输出到变量 sum 中并返回。 【参考答案】*/ double fun(double x[9]) { int i ; double avg=0.0,sum=0.0; //将变量avg 、sum 定义为双精度型,并给其赋初值为0.0 for (i=0;i< 8;i++) { avg=(x[i]+x[i+1])/2; //通过for 循环分别求出相邻两个元素的平均值放入变量avg 中 sum+=sqrt(avg); //使用求平方根函数sqrt()对各平均值开方求和,最终结果输出到变量 sum } return sum; /*返回计算结果*/ } 2.(sy8-2.c ) 编写函数fun ,实现矩阵(3行3列)的转置(即行列互换)。例如,输入下 面的矩阵:????? ??900800700600500400300200100,程序输出: ???? ? ??900600300800500200700400100。 【解题思路】 方阵转置,只需要将左下半三角元素和右上半三角元素对换即可。 【参考答案】 int fun(int array[3][3]) { int i,j,t ; for(i = 0 ; i < 3 ; i++) for(j = 0 ; j < i ; j++) {t=array[i][j]; array[i][j]=arrar[j][i]; array[j][i]=t ; } } 3.(sy8-3.c ) 请编写函数 fun ,函数的功能是:统计一行字符串中单词的个数作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。 【解题思路】I am a student! 在给出的参考程序中,若判断出当前字符为非空格,而它前面的字符是空格,则单词数累加 1;若当前字符为非空格,而其前面的字符也为非空格,则单词数不累加 1,程序细节可以参考程序的注释部分。 【参考答案1】 int fun( char s[])

相关文档
相关文档 最新文档