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