C实验与习题7-10

更新时间:2023-12-08 23:57:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验7 函数程序设计

一、实验目的

1.掌握函数定义的方法。

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

4. 了解全局变量和局部变量、动态变量、静态变量的概念和使用方法。

二、实验内容

1.改错题(在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。) (1)下列程序的功能为:求三角形面积,请纠正程序中存在的错误,使程序实现其功能,程序以文件名sy6_1.c存盘。

#include \ #include \

area(float,float,float); void main() {

float a,b,c;

printf(\请输入三角形的三个边长值:\\n\ scanf(\ if(a+b>c&&a+c>b&&b+c>a)

printf(\ }

area(float a,float b,float c) {

float s,area_s; s=(a+b+c)/2.0;

area_s=sqrt(s*(s-a)*(s-b)*(s-c)); return(area_s); }

(2)下列程序的功能为:输入N个-100~100间的整数,输入数据不对则重输,并计算其中的正整数之和,请纠正程序中存在的错误,使程序实现其功能,程序以文件名sy6_2.c存盘。

#include #define N 10

int sum(int x[],int n) {

int i=0,s=0; while (i<=n) {

if (x[i]>0) s=s+x[i]; i++; }

return s; }

void main() {

int i=0,s,a[N],flag=1; do

{ flag=0;

printf(\

scanf(\ while(flag) {

if((-100<=a[i])&&(a[i]<=100)) flag=1;

else

{ printf(\ printf(\ scanf(\

}

} i++;

} while (i

s=sum(a,N);

printf(\}

(3)下列程序的功能为:求整数n的阶乘,请纠正程序中存在的错误,使程序实现其功能,程序以文件名sy6_3.c存盘。

#include int fun(int n) {

static int p=1; p=p*n; return p; }

void main() {

int n,i; int f=0;

printf(\ scanf(\ for(i=1;i<=n;i++) f=f*fun(i);

printf(\}

2.程序填空

(1)下列程序的功能为:输出如下图形, 请填写适当的符号或语句,使程序实现其功能,程序以文件名sy6_4.c存盘。

1 222 33333 4444444 555555555 66666666666

7777777777777 66666666666 555555555 4444444 33333 222 1

#include void a(int i) {

int j,k;

for(j=1;j<=30-i;j++) printf(\

for(k=1;k<= ;k++) printf( ); printf(\}

void main() { int i;

for(i=1;i<=7;i++) ; for(i=6;i>=1;i--) ; }

(2)下列程序的功能为:编一判断质数的函数,验证歌德巴赫猜想:任何大于2的偶数均可表示为两个素数之和。例如:4=2+2(特例,仅此一个),6=3+3,8=3+5,…。程序要求输入任一偶数,输出6到该数范围内的各个满足条件的组合。请填写适当的符号或语句,使程序实现其功能,程序以文件名sy6_5.c存盘。

#include \

int isprime(int m) //判别m是否为质数 { for(int i=2;m%i!=0;i++);

return (i>m/2?1:0); }

void main() { int n,x,a,b;

scanf(\

for(n=6;n<=x;n+=2) for(a=3;a<=n/2;a+=2)

if( ) { b=n-a;

if( ) { printf(“%d=%d+%d”,n,a,b);

; //退出a循环,判别下一个n的组合 } } }

3.编程题

(1)编写一个程序实现如下功能:编写两个函数,其功能分别为:

①求N个整数的最大值和次大值。

②求两个整数的最大公约数和最小公倍数。主函数调用这两个函数(程序以文件名

sy6_7.c存盘)。

(2)编写一个程序实现如下功能:验编一函数,功能为判断一字符串是否为回文。回文是指顺读和倒读都一样的字符串,如“deed”和“level”是回文。在主函数中对输入的5个字符串统计其中回文的个数。(程序以文件名sy6_8.c存盘)。

(3)编写一个程序实现如下功能:利用自定义函数,实现将一个十进制数转换成二进制数(程序以文件名sy6_9.c存盘)。

本文来源:https://www.bwwdw.com/article/sput.html

Top