C实验报告7参考答案
scanf("%s",s); if(function(s)) {printf("%s 是回文\n",s);count++;} else printf("%s 不是回文\n",s); } printf("共有回文%d 个\n",count); } (3)编写一函数,实现将一个十进制数转换成二进制数。程序以文件名 sy7_9.c 存盘。 #include <stdio.h> int n=0; void tentotwo(int number,int b[ ]) { while(number) {
}
(2)下列程序的功能为:将字符数组中的字符串逆序输出。纠正程序中存在的错误,
以实现其功能。程序以文件名 sy7_2.c 存盘。
#include<string.h>
#include<stdio.h>
#define ARR_SIZE = 80;
#define ARR_SIZE 80
void Inverse(char str[])
t[d+i]=s[i] ;
t[2*d]='/0' ;
t[2*d]='\0'
}
main( )
{
char s[100], t[100];
printf( " Please enter string s : " );
scanf("%s" , s );
sub(s,t) ;
printf( " \n The result is : %s \n ", t );
b[n]=number%2; number=number/2; n++; } } void main(void) { int inumber; int a[20],i; printf("please input nunber: "); scanf("%d",&inumber); printf("\n"); tentotwo(inumber,a ); for(i=n-1;i>=0;i--) printf("%d",a[i]); printf("\n"); }
strTemp[j]!=’\0’
main()
{ srcStr[i] = strTemp[j];
{
i++;
char string[MAX];
j++;
scanf("%s",string);
srcStr[i] = ' ';
Insert( string );
i++;
printf("%s",string);
}
void Inverse(char str[]);
main()
{ char a[ARR_SIZE] ;
printf("Please enter a string: ");
gets(a);
Inverse(char a[]);
Inverse(a);
printf ("The inversed string is: ");
result = sum( x+i1, i2-i1+1 );
printf( "Sum=%d\n", result );
}
(2)下列程序的功能为:输入一个字符数小于 100 的字符串 string,然后将 string 所存
盘字符串中的每个字符之间加一个空格。补充完善程序,以实现其功能。程序以文件名
sy7_5.c 存盘。
(1)下列 sub 函数的功能为:将 s 所指字符串的反序和正序进行连接形成一个新串放
在 t 所指的数组中。例如,当 s 所指字符串的内容为“ABCD”时,t 所指数组中的内容为
“DCBAABCD”。纠正程序中存在的错误,以实现其功能。程序以文件名 sy7_1.c 存盘。
#include <stdio.h>
int i; int y=strlen(x); for(i=0;i<y/2;i++)
if(x[i]!=x[l-i-1]) return 0;
return 1; } void main() {
char s[100]; int count=0,i; for(i=1;i<=5;i++) { printf("输入第%d 个字符串:",i);
任意整数和下标 i1、i2 的值(设 1≤i1≤i2≤9),调用 sum()函数计算从第 i1 元素到第 i2 元
素的和,并输出结果。补充完善程序,以实现其功能。程序以文件名 sy7_4.c 存盘。
#include <stdio.h>
int sum( int x[], int n )
{
int i, s=0;
scanf("%d",&a[i]); printf("调整前的数组元素为:");
for(i=0;i<N;i++) printf("%5d",a[i]);
printf("\n"); EXmaxmin(a,N); printf("调整后的数组元素为:");
for(i=0;i<N;i++) printf("%5d",a[i]);
#include<stdio.h>
{ char strTemp[MAX];
#include<string.h>
int i = 0, j = 0;
#define MAX 100
strcpy(strTemp, srcStr);
void Insert(char srcStr[]);
while ( j<MAX )
for ( i=0; i<n ; i++ )
s = s+x[i] ;
return s;
}
void main()
{
int i, i1, i2, result;
int x[10];
for ( i=0; i<10; i++ )
scanf( "%d", &x[i] );
scanf( "%d%d", &i1, &i2 );
{ int n,i;
int f=0;
int f=1;
printf("input member: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
f=f*fun(i);
f= fun(i);
printf("%d!=%d\n",n,f);
}
2.程序填空题
(1)下列 sum()函数的功能是:计算数组 x 前 n 个元素之和。在主函数中,输入 10 个
#include<stdio.h> #define N 10 void EXmaxmin(int a[],int n) //求最大数和最小数 {
int i,j=0,k=0,t; int max,min; max=a[0]; min=a[0]; for(i=1;i<n;i++)
if(max<a[i]) {max=a[i];j=i;} else if(min>a[i]) { min=a[i]; k=i;} t=a[j]; a[j]=a[k]; a[k]=t; } void main() { int i; int a[N]; printf("请输入%d 个整数:",N); for(i=0;i<N;i++)
puts(a);
}
void Inverse(char str[])
{ int len, i = 0, j;
char temp;
len = strlen(str);
for (j=len-1; i<j; i++, j--)
{ temp = str[i];
str[j] = str[i];
str[i] = str[j];
} (2)编写一函数,判断一字符串是否为回文。所谓“回文”是指顺读和倒读都一样的 字符串,如“deed”和“level”是回文。在主函数中对输入的 5 个字符串统计其中回文的个 数。程序以文件名 sy7_8.c 存盘。
#include <stdio.h> #include <stdlib.h> int function(char x[]) {
str[j] = temp;
}
}
(3)下列程序的功能为:求整数 n 的阶乘。纠正程序中存在的错误,以实现其功能。
程序以文件名 sy7_3.c 存盘。
#include<stdio.h>
int fun(int n)
{ static int p=1;
int p=1;
p=p*n;
return p;
}
void main()
《高级语言程序设计》实验报告
班级:
学号:
姓名:
成绩:
实验 7 函数. 掌握函数实参与形参的传递方式。 3. 掌握函数的嵌套调用和递归调用的方法。 4. 了解全局变量和局部变量、动态变量、静态变量的概念和使用方法。
二、实验内容