C++语言程序设计实验答案-函数的应用

合集下载

华南农业大学C语言程序设计实验指导书参考答案

华南农业大学C语言程序设计实验指导书参考答案

华南农业大学c语言程序设计上机指导书参考答案上级实验参考答案#include stdio.h#includemath.hint main(){ int i;double a, b;for(i=0;i<=100000;++i){a=sqrt(i+100);b=sqrt(i+168);if((int)a==ceil(a)&&(int)b==ceil(b))printf(%d\n,i);}}实验2基本数据类型、运算和表达式一、实验目的1)掌握C语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。

2)掌握不同的类型数据之间赋值的规。

3)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加++)和自减--)运算符的使用。

4)进一步熟悉C程序的编辑、编译、连接和运行的过程。

二、实验内容1 / 561.变量的定义[题目1117:变量定义,按要求完成程序]下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。

void main(){int a, b;/*定义整型变量a和b*/int i, j;/*定义实型变量i和j */a=5;b=6;i=3.14;j=i*a*b;printf(a=%d,b=%d,i=%f,j=%f\n, a, b, i,j);}[具体操作步骤]1)将代码补充完整;2)在TC或VC++上运行通过;3)在JudgeOnline实验系统上提交;2.赋值表达式与赋值语句[题目1118:赋值表达式与赋值语句,写出程序运行结果]阅读下面程序,写出运行结果:voidmain()2 / 56{float a;int b, c;char d, e;a=3.5;b=a;c=330;d=c;e='\\';printf(%f,%d,%d,%c,%c, a,b,c,d,e);}运行结果为:3.500000,3,330,J,\[提示]赋值语句具有类型转换的功能,但可能会改变数据。

C语言程序设计(函数的定义及调用)习题与答案

C语言程序设计(函数的定义及调用)习题与答案

1、简单变量做实参时,它和对应形参之间的数据传递方式是()。

A.地址传递B.单向值传递C.由实参传给形参,再由形参传回给实参D.由用户指定的传递方式正确答案:B2、若函数的调用形式如下:f((x1,x2,x3),(y1,y2))则函数形参个数是()。

A.5B.2C.3D.4正确答案:B3、下列程序段中,有错误的是()。

A. void change(int x, int y){int t;t=x; x=y; y=t;}B. int f2(int x){return (x>1?printf("Y"): putchar('N'));}C. int f(){int x;scanf("%d", &x);return x++, x+5;}D.int main(){float a=2.6 , b;b=max(2.1, 3.6)=a++;printf("%f", a+b);}正确答案:D4、以下说法正确的是()。

A.C程序中,被调用的函数必须在main()函数中定义B.C程序中的main()函数必须放在程序的开始处C.C程序总是从第一个定义的函数开始执行D.C程序总是从主函数main()开始执行正确答案:D5、关于函数原型,叙述错误的是()。

A.当自定义函数被放在了主调函数的后面,就需要在函数调用之前,加上函数的原型声明B.所有函数定义放在main函数之前,可以省略原型声明C.函数可以不必进行声明,可以放在程序的任意位置D.被调用函数在主调函数之前定义,可以省略函数原型声明正确答案:C6、下列函数定义中,正确的是()。

A.int max1(int a,b){return a>b?a:b;}B.int max1(a,b){int a,b;return a>b?a:b;}C.int max1(int a,int b){return a>b?a:b;}D.int max1(int a,int b);{return a>b?a:b;}正确答案:C7、以下函数返回值的类型是( )。

C语言实验报告(函数应用)

C语言实验报告(函数应用)

C语言实验报告(函数应用)实验目的:1. 掌握C语言函数的定义方法和调用方法;2. 掌握函数的参数传递和返回值的使用方法;3. 熟悉C语言库函数的使用方法。

实验原理:C语言中函数是程序的基础构件,函数可以定义在任何地方或者文件中。

在场合需要使用函数时,只要调用函数名称,即可执行函数,然后返回将结果。

函数定义的一般形式为:类型说明符函数名(形式参数列表){函数体语句return 返回值;}函数名是对函数定义的标识符。

形式参数列表指定函数使用的形式参数。

返回值是函数的结果。

在调用函数时,必须知道函数名称和使用的参数。

当调用函数时,实际参数传递给函数。

函数的返回值传递给调用者的程序段,通常是保存在调用者中的变量中。

C语言库函数是指提供了重要功能的函数。

这些函数可以在使用时直接调用。

实验步骤:1. 实现一个求和函数add代码:int add(int a, int b){int c = a + b;说明:定义了一个名为add的函数,函数有两个参数a和b,函数体内进行a和b的加法运算,并将结果赋值给c,最终返回c作为函数的结果。

#include <stdio.h>int x, y;printf("请输入两个整数:\n");scanf("%d %d", &x, &y);printf("%d + %d = %d\n", x, y, add(x, y));说明:主函数中调用add函数,将输入的两个数作为参数传递给add函数,并输出结果。

3. 实现一个数组平均值函数averagefor(i=0; i<len; i++){sum += arr[i];return (float)sum/len;int arr[5] = {1, 2, 3, 4, 5};len = sizeof(arr)/sizeof(arr[0]);printf("数组arr的平均值是%f\n", average(arr, len));5. 使用C语言库函数实现字符串反转函数strrevvoid strrev(char s[]){char temp;说明:该程序中使用C语言库函数strlen求出字符串长度,然后进行字符交换操作,实现字符串反转。

C语言:函数的应用实验报告

C语言:函数的应用实验报告

课程名称:结构化程序设计与C语言开课实验室:年月日一、实验目的用C语言编写和调试函数的程序。

从而对函数的定义、调用、全局变量的灵活运用有比较深入的了解。

二、内容及结果1、程序一素数函数1)程序要求:写一个判断是否是素数的函数,在主函数输入一个整数,调用它后输出结果。

2)代码:#include<stdio.h>#include<math.h>int prime(int n){ int i,k;k=sqrt(n);for(i=2;i<=k;i++)if(n%i==0) break;if(i<=k)return 0;elsereturn 1;}int main(){ int prime(int n);int n;printf("Please enter n:");scanf("%d\n",&n);if(prime(n)==1)printf("%d is a prime number",int(n));elseprintf("%d is not a prime number",int(n)); }3)运行截图:2、程序二用递归方法求n阶勒让德多项式的值1)程序要求:递归公式为:当n=0,=)(xP n 1当n=1, =)(xP n x;当n>=1, =)(xP n((2n-1)x-Pn-1(x)-(n-1)Pn-2)x))/n2)代码:#include<stdio.h>#include<math.h>int p(int n,int x);void main(){int n,x;scanf("%d",&x);for(n=0;n<=10;n++)printf("p(%d,%d)=%d\n",n,x,p(n,x));}int p(int n,int x){if(n==0)return 1;elseif(n==1)return x;elsereturn((2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))/n; }3)运行截图:3、程序三成绩统计程序1)程序要求:输入10个学生5门课的成绩,分别用函数实现以下功能:计算每个学生的平均分;计算每门课的平均分;找出所有50个分数中最高的分数所对应的学生和课程;计算平均方差。

习题答案(7函数)《C语言程序设计》课后习题解答

习题答案(7函数)《C语言程序设计》课后习题解答
#include <stdio.h>
void main()
{int xyz(int i);
int i;
for (i=100;i<=200;i++)
if(xyz(i))
printf("%d\n",i);
}
int xyz(int i)
{int j=0;
if(i%5==0&&i%3!=0) j=1;
return j;
}
void triangle(int n)
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
}
2.编写一个求1~n之间奇数和的函数,在main( )函数中输入n,然后调用该函数求1~n之间奇数和并输出。
#include <stdio.h>
scanf("%d",&a);
if(sushu(a)) printf("是素数");
else printf("不是素数");
}
int sushu(int a)
{ int i;int j=1;
for(i=2;i<=a-1;i++)
if(a%i==0) j=0;
return j;
}
4.在main( )函数中输入一个人的年龄和性别,女性退休年龄为55岁,男性退休年龄为60岁,编写一个函数根据年龄和性别判断一个人是工作还是退休,若工作,则输出“woking”,退休则输出“retired”。

C语言实验报告 实验三 参考答案

C语言实验报告 实验三  参考答案

实验十 参考答案(指针)三、实验内容( 按要求完善或设计以下程序,并调试分析运行结果)1. 程序填空题 给定程序BLACK10-1.C 中,函数fun 的功能是:将形参n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n 传回所指变量。

例如,输入一个数:27638496,新的数:为739。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

【解题思路】第一处:t 是通过取模的方式来得到*n 的个位数字,所以应填:10。

第二处:判断是否是奇数,所以应填:0。

第三处:最后通形参n 来返回新数x ,所以应填:x 。

2. 程序改错题 给定程序MODI10-1.C 中函数fun 的功能是: 计算n 的5次方的值(规定n 的值大于2、小于8),通过形参指针传回主函数;并计算该值的个位、十位、百位上数字之和作为函数值返回。

例如,7的5次方是16807, 其低3位数的和值是15。

【解题思路】第一处:变量d 的初始值应为1。

第二处:整除的符号是 /。

3. 程序设计题 请编写函数fun ,它的功能是:求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。

例如,若 x 中的值为: 35,则有 4 个数符合要求,它们是: 1, 5, 7, 35。

【解题思路】本题是求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。

【参考答案】void fun ( int x, int pp[], int *n ){ int i; *n=0;for(i=1; i <= x; i++)if((x % i== 0) && (i % 2)) pp[(*n)++]=i;}4. 程序填空题 给定程序中,函数fun 的功能是:找出N ×N 矩阵中每列元素中的最大值,并按顺序依次存放于形参b 所指的一维数组中。

C语言程序设计实验六函数答案《西北民大电气学院》

C语言程序设计实验六函数答案《西北民大电气学院》

实验六函数一,实验目的:1,掌握定义函数的方法.2,掌握函数实参与形参的对应关系,以及"值传递"的方式.3,掌握函数的嵌套调用和递归调用的方法.4,掌握全局变量和局部变量动态变量,静态变量的概念和使用方法.二,实验准备:1,复习函数调用的基本理论知识.2,复习函数的嵌套调用和递归调用的方法.3,复习全局变量,局部变量;静态变量,动态变量;外部变量等概念和具体使用. 4,源程序.三,实验步骤及内容:1,运行程序并回答问题(1)程序main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n")}void print_message(){ printf("Good Friend! \n");}void play(n)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}}问题:运行后出现什么错误为什么应如何修改请上机调试.修改:main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n");(缺少分号)}void print_message(){ printf("Good Friend! \n");}play(n)(原先void的与声明类型不同)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}getch();}运行结果(2)以下程序用于计算1+2+3+4+5.main(){ int i,sum;for(i=1;i<=5;++i)sum=add(i);printf("sum=%d\n",sum);getch();}add (a)int a;{static int s=0;s=s+a;return(s);}运行结果:问题:此程序能否得到正确结果为什么请在不增加语句的条件下,修改程序并上机调试.(3)程序int x=567,y=890;main(){ printf("x=%d,y=%d\n",x,y);}运行结果:问题:运行程序后出现什么错误为什么如何修改答:定义位置出错,y的定义在主函数之后了,将y的定义改在和x一样的位置处。

C语言程序设计实验五 参考答案

C语言程序设计实验五  参考答案
5-2、以下程序的功能:输出3—1000之间的素数。选择合适的内容填入空白处,并调试运行程序。
答案:
#include<stdio.h>
void main()
{
int i,j,num=0;
for(i=3;i<=1000;i++)
{
for(j=2;j<=1000;j++)
if(i%2==0)
break;
5-4从键盘输入一个整数n,计算2n+1与++n之和。要求计算两数之和用函数实现。
答案:
#include<stdio.h>
void main()
{
int a;
int sum(int n);
printf("input n:\n");
scanf("%d",&a);
sum(a);
}
int sum(int n)
if(i%2!=0)
{
printf("%5d",i);
num++;
if(num%10==0)
printf("\n");
}
}
printf("\n");
}
*************************************************************************************************************实验三*******************************************
c语言程序设计实验五参考答案实验解答实验五参考答案编程语言c语言吧c语言答案
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++语言程序设计实验答案-函数的应用实验03函数的应用(2学时)(第3章函数)一、实验目的(1) 掌握函数的定义和调用方法。

(2) 练习重载函数的使用。

(3) 练习使用系统函数。

(4) 学习使用Visual Studio 2010的调试功能,使用“逐语句”追踪到函数内部。

二、实验任务3_1(习题3-8)编写一个函数把华氏温度转换为摄氏温度,转换公式为:C=(F-32)*5/9。

3_2 编写重载函数Max1可分别求取2个整数、3个整数、2个双精度数、3个双精度数的最大值。

3_3 使用系统函数pow(x, y)计算x y的值,注意包含头文件cmath。

3_4(习题3-13)用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。

三、实验步骤1.(编程,习题3-8)把华氏温度转换为摄氏温度。

编写函数float Convert(float TempFer),参数和返回值都为float类型,实现算法C=(F-32)*5/9,在main()函数中实现输入、输出。

程序名:lab3_1.cpp。

★程序及运行结果:(注意:定义的函数头是float Convert(float TempFer))//lab3_1(习题3-8)#include<iostream>using namespace std;float Convert(float TempFer);void main(){float f;cout<<"输入一个华氏温度值:";cin>>f;cout<<"华氏温度"<<f<<"转换为摄氏温度的值是"<<Convert(f)<<endl;}float Convert(float TempFer){return (TempFer-32)*5/9;}2.(编程)编写重载函数,求2或3个数中的最大数。

编写4个同名函数Max1,分别求取2个整数、3个整数、2个双精度数、3个双精度数的最大值,实现函数重载,在main()函数中测试函数功能。

程序名:lab3_2.cpp。

★程序及运行结果:(注意:分别测试4个函数)//lab3_2.cpp#include<iostream>using namespace std;int Max1(int a,i n t b){cout<<"调用函数: int Max1(int a,intb)"<<endl;return a>b?a:b;}int Max1(int a,int b,int c){cout<<"调用函数: int Max1(int a,int b,intc)"<<endl;return a>b ? (a>c?a:c) : (b>c?b:c);}double Max1(double a,double b){cout<<"调用函数: double Max1(doublea,double b)"<<endl;return a>b?a:b;}double Max1(double a,double b,double c){ cout<<"调用函数: double Max1(doublea,double b,double c)"<<endl;return a>b ? (a>c?a:c) : (b>c?b:c);}void main(){int a,b,c,ii;double d,e,f,dd;cout<<"输入2个整数:";cin>>a>>b; ii=Max1(a,b);cout<<a<<"和"<<b<<"的最大数是:"<<ii<<endl;cout<<"\n输入3个整数:";cin>>a>>b>>c; ii=Max1(a,b,c);cout<<a<<","<<b<<"和"<<c<<"的最大数是:"<<ii<<endl;cout<<"\n输入2个双精度数:";cin>>d>>e; dd=Max1(d,e);cout<<d<<"和"<<e<<"的最大数是:"<<dd<<endl;cout<<"\n输入3个双精度数:";cin>>d>>e>>f; dd=Max1(d,e,f);cout<<d<<","<<e<<"和"<<f<<"的最大数是:"<<dd<<endl;}方法2:int Max1(int a,i n t b){if(a>b) return a;else return b;}int Max1(int a,int b,int c){if(a>b)if(a>c) return a;else return c;elseif(b>c) return b;else return c;}方法3:int Max1(int a,i n t b){if(b>a) a=b;return a;}int Max1(int a,int b,int c){if(b>a) a=b;if(c>a) a=c;return a;}3.(编程)调用系统函数pow(x, y)计算x的y次幂。

在main()函数中提示输入两个整数x、y,使用cin语句得到x、y的值,调用pow(x, y)函数计算x的y次幂的结果,再显示出来。

程序名:lab3_3.cpp。

/*重载函数pow的函数原型:long double pow(long double,int);float pow(float,int);double pow(double,int);*/★程序及运行结果:(注意:不要编写函数pow(…),直接调用)//lab3_3.cpp#include<iostream>#include<cmath>//无此行也可以using namespace std;void main(){float x; int y;cout<<"输入基底的值:";cin>>x;cout<<"输入幂的值:";cin>>y;cout<<x<<"的"<<y<<"次幂的结果为"<<pow(x,y)<<endl;}4.(验证,习题3-13)编写递归函数求Fibonacci级数。

编写递归函数int fib(int n),在主程序中输入n的值,调用fib函数计算Fibonacci级数。

公式为fib(n)=fib(n-1)+fib(n-2),n>2;fib(1)=fib(2)=1;使用if语句判断函数的出口,在程序中用cout语句输出提示信息。

程序名:lab3_4.cpp。

(程序见步骤5)★程序的运行结果:(注意:运行步骤5的程序,输入6)5.(要求)用Debug调试的程序文件lab3_4.cpp。

使用“调试”中的“逐语句”追踪到函数内部,观察函数的调用过程,参考程序如下://lab3_4.cpp#include<iostream>using namespace std;int fib(int n);int main(){int n,answer;cout<<"输入一个正整数:";cin>>n;cout<<"\n";answer=fib(n);cout<<answer<<" 是第"<<n<<" 个Fibonacci 数。

\n";return 0;}int fib(int n){cout<<"计算fib("<<n<<")......";if(n<3){cout<<"返回1!\n";return (1);}else{cout<<"调用fib("<<n-2<<") 和fib("<<n-1<<");\n";return (fib(n-2)+fib(n-1));}}6.(操作)调试步骤。

调试操作步骤如下:(1)选择菜单命令“调试| 逐语句”,系统进入单步执行状态,程序开始运行,并出现一个DOS窗口,此时在源码中光标停在main()函数的入口处。

(2)把光标移到语句“answer=fib(n);”前,并在该行单击鼠标右键,再单击“运行到光标处”,在程序运行的DOS窗口中按提示输入数字6,光标停在语句“answer=fib(n);”前,观察一下n的值(观察方法见实验2)。

(3)单击“逐语句”,程序进入fib函数,观察一下n的值。

(4)把光标移到语句“return(fib(n-2)+fib(n-1));”前,单击“运行到光标处”。

(5)再单击“逐语句”,程序递归调用fib函数,再进入fib函数,观察一下n的值。

(6)继续执行程序,参照上述的方法,观察程序的执行顺序,加深对函数调用和递归调用的理解。

把光标移到语句“return(fib(n-2)+fib(n-1));”前,单击Runto Cursor。

再单击Step Into。

相关文档
最新文档