C实验报告7参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《高级语言程序设计》实验报告

班级:___________ 学号:________ 姓名:____________ 成绩: ___________

实验7函数程序设计

一、实验目的

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

2. 掌握函数实参与形参的传递方式。

3. 掌握函数的嵌套调用和递归调用的方法。

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

二、实验内容

1.改错题(在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。|)

(1)下列sub函数的功能为:将s所指字符串的反序和正序进行连接形成一个新串放

在t所指的数组中。例如,当s所指字符串的内容为“ ABCD ”时,t所指数组中的内容为“DCBAABCD ”。纠正程序中存在的错误,以实现其功能。程序以文件名存盘。

#in elude <>

#in elude <>

void sub( char s[], char t[])

{

int i, d;

d=strle n( s );

for( i=1; i< d ; i++ ) for( i= 0; i< d ; i++ )

t[i]=s[d-1-i];

for( i=0; i

t[d+i]=s[i];

t[2*d]='/0' ; t[2*d]=' O'

}

mai n()

{

char s[100], t[100];

printf(” Please en ter stri ng s :");

scan f("%s" , s );

sub(s,t);

printf( " \n The result is : %s \n ", t );

}

(2)下列程序的功能为:将字符数组中的字符串逆序输出。纠正程序中存在的错误,以实现其功能。程序以文件名存盘。

#in clude<>

#in clude<>

#defi ne ARR_SIZE = 80; void In verse(char str[])#defi ne ARR_SIZE 80 void Inverse(char str[]);

main ()

{ char a[ARR_SIZE];

printf("Please enter a string:");

gets(a);

In verse(char a[]);

printf ("The in versed stri ng

is:"); puts(a);

}

void In verse(char str[])

{ int len, i = 0, j;

char temp;

len = strle n(str);

for (j=len-1; i

{ temp = str[i];

str[j] = str[i];

str[j] = temp; In

verse(a);

str[i] = str[j];

} }

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

#in clude<>

int fun (i nt n)

{ static int p=1; int p=1; p=p* n;

return p;

}

void mai n()

{ int n ,i;

int f=0; int f=1;

prin tf("i nput member:");

scan f("%d",&n);

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

f=f*fun( i); f= fun (i); prin tf("%d!=%d\n", n,f);

}

2 •程序填空题

(1)下列sum()函数的功能是:计算数组x前n个元素之和。在主函数中,输入

任意整数和下标i1、i2的值(设K i1 < i2 < 9),调用sum()函数计算从第i1元素到第素的和,并输出结果。补充完善程序,以实现其功能。程序以文件名存盘。10个i2元

#in clude

<>

int sum( int x[], int n )

{

int i, s=0;

for ( i=0; _i

s = s+x[i] return s; }

void mai n() {

int i, i1, i2, result; int x[10];

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

scan f( "%d", &x[i]); scan f( "%d%d", &1, &i2 ); result = sum( x+i1, _i2-i1+1 _ ); prin tf( "Sum=%d\n", result ); }

(2)下列程序的功能为:输入一个字符数小于 100的字符串string ,然后将string 所存

盘字符串中的每个字符之间加一个空格。

补充完善程序,以实现其功能。程序以文件名存盘。

#in clude<>

{ char strTemp[MAX];

#in clude<>

int i = 0, j = 0;

#define MAX 100 strcpy(strTemp, srcStr); void Insert(char srcStr[]); while ( j

main () { srcStr[i] = strTemp[j];

{

i++; char stri ng[MAX]; j++

scan f("%s",stri ng); srcStr[i]=''; In sert( stri ng );

i++;

prin tf("%s",stri ng);

}

}

srcStr[i] = '\0';

void In sert(char srcStr[]) }

(3)下列程序的功能为:输出如下图形,补充完善程序,以实现其功能。程序以文件 名保存。

#in clude<> void a(i nt i) { int j,k;

for(j=1;j<=30-i;j++) pri ntf("%c",''); for(k=1;k<= _2*i-1 _ ;k++) printf( %c ”+48_); prin tf("\n"); or %d ”

}

void mai n() { int i;

for(i=1;i<=7;i++) —a(i)_; for(i=6;i>=1;i--)

一a(i) 一;

}

3.编程题 (1)从键盘任意输入10个整数,用函数编程实现将其中最大数与最小数的位置对换后, 再输出调整后的数组。程序

以文件名存盘。

相关文档
最新文档