C实验报告7参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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个整数,用函数编程实现将其中最大数与最小数的位置对换后, 再输出调整后的数组。程序 以文件名存盘。