C语言实验七_c语言实验七
C语言实验七由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言实验七”。
实验7 函数程序设计
一、实验目的1、掌握函数定义的方法。
2、掌握函数实参与形参的传递方式。
3、掌握函数的嵌套调用和递归调用的方法。
4、了解全局变量和局部变量、动态变量、静态变量的概念和使用方法。
二、实验内容 1.改错题
(1)下列sub函数的功能为:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。纠正程序中存在的错误,以实现其功能。程序以文件名sy7_1.c保存。#include #include void sub(char s[],char t[]){
int i,d;
d=strlen(s);
for(i=1;i
t[i]=s[d-1-i];
for(i=0;i
t[2*d]=’ ’;} main(){ char s[100],t[100];printf(“Please enter string s:”);scanf(“%s”,s);sub(s,t);printf(“nThe result is:%sn”,t);}(2)下列程序的功能为:将字符数组中的字符串逆序输出。纠正程序中存在的错误,以实现其功能。程序以文件名sy7_2.c保存。#include #include #define ARR_SIZE=80;void Inverse(char str[])main(){
char a[ARR_SIZE];printf(“Please enter a string:”);gets(a);Inverse(char a[]);printf(“The inversed string is :”);puts(a);} void Inverse(char str[]){
int len,i=0,j;
char temp;
len=strlen(str);
for(j=len-1;i
{
temp=str[i];
str[j]=str[i];
str[j]=temp;
} }
(3)下列程序的功能为:求整数n的阶乘。纠正程序中存在的错误,以实现其功能。程序以文件名sy7_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(“input member:”);
scanf(“%d”,&n);
for(i=1;i
f=f*fun(i);printf(“%d!=%dn”,n,f);}
2.程序填空题
(1)下列sum()函数的功能是:计算数组x前n个元素之和。在主函数中,输入10个任意整数和下标i1、i2的值(设1 int sum(int x[],int n){
int i,s=0;
for(i=0;______________;i++)
s=____________;
return s;} void main(){
int i,i1,i2,result;
int x[10];
for(i=0;i
scanf(“%d”,&x[i]);
scanf(“%d%d”,&i1,&i2);
result=sum(x+i1,___________);printf(“Sum=%dn”,result);}
(2)以下程序的功能是:输入一个字符数小于100的字符串string,然后将string所保存字符串中的每个字符之间加一个空格。补充完善程序,以实现其功能。程序以文件名sy7_5.c保存。
#include ______________________ #define MAX 100 void Insert(char s[]);main(){
char string[MAX];
scanf(“%s”,string);
Insert(_______________);
printf(“%s”,string);} void Insert(char srcStr[]){
char strTemp[MAX];
int i=0,j=0;
strcpy(strTemp,srcStr);
while(________________________)
{
srcStr[i]=strTemp[j];
i++;
_______________________
srcStr[i]=’ ‘;
i++;
}
srcStr[i]=’ ’;}(3)下列程序的功能为:输出如下图所示的图形。补充完善程序,以实现其功能。程序以文件名sy7_6.c保存。#include void a(int i){
int j,k;
for(j=1;j
for(k=1;k
printf(“n”);} void main(){
int i;
for(i=1;i
for(i=6;i>=1;i--)_____________;}
222
33333
4444444
555555555
66666666666
7777777777777
66666666666
555555555
4444444
33333
222
3.编程题
(1)从键盘输入10个数,用函数编程实现将其中最大数与最小数的位置对换后,再输出调整后的数组。程序以文件名sy7_7.c保存。
(2)编写一函数,判断一字符串是否为回文。所谓“回文”是指顺读和倒读都一样的字符串,如“deed”和“level”是回文。在主函数中对输入的5个字符串统计其中回文的个数。程序以文件名sy7_8.c保存。
(3)编写一函数,实现将一个十进制转换成二进制数。程序以文件名sy7_9.c保存。