if(a[j]%k==0)break;
if(k>=a[j])
printf("%d",a[j]);
}
}
实验8:
题目8:
用字符数组存储任意输入的10字符,求该10字符中最大字符。
(文件名:
h8.cpp)
程序代码:
#include
voidmain()
{
chara[10];
inti,j=0;
printf("请任意输入10个字符:
\n");
for(i=0;i<10;i++)
a[i]=getchar();
for(i=1;i<10;i++)
if(a[i]>a[j])
j=i;
putchar(a[j]);
printf("\n");
}
题目9:
从键盘上任意键入一个3行4列的矩阵,要求输出其转置矩阵。
(文件名:
h9.cpp)
程序代码:
#include
voidmain()
{
inti,j,a[3][4],b[4][3];
printf("任意输入12个整数:
\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
printf("数组a:
\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%6d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("数组b:
\n");
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
printf("%6d",b[i][j]);
printf("\n");
}
}
题目10:
有5个学生,考3门功课。
求出每一个学生的总分及平均分,统计平均成绩低于60分的学生人数。
(文件名:
h10.cpp)
程序代码:
#include
voidmain()
{
intj,i,k=0;
floata[5][3],b[5];
printf("依次输入五个同学的成绩:
\n");
for(i=0;i<5;i++)
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
for(i=0;i<5;i++)
{
b[i]=a[i][0];
for(j=1;j<3;j++)
b[i]+=a[i][j];
b[i]/=3;
}
for(i=0;i<5;i++)
if(b[i]<60)
k+=1;
printf("%d\n",k);
}
三、实验结果(用截图说明)
四、调试心得(选作)
实验9,10函数实验
教学班级:
_______学号:
__________姓名:
___________
实验日期:
___________实验地点:
_________(机房)
实验成绩:
___________
一、实验目的
1.理解函数定义的方法。
2.掌握函数实参与形参的对应关系,以及”参数传递”的方式;
3.掌握函数的嵌套调用和递归调用的方法;
4.掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法。
二、实验任务
1.基本内容
实验9:
题目1:
以下程序是求3个数中的最大值(文件名:
i1.cpp)
#include
voidmain()
{inta,b,c,m;
intmax(intx,inty);/*函数声明*/
printf(“inputa,b,c=“);
scanf(“%d,%d,%d”,&a,&b,&c);
m=max(a,b);
m=max(m,c);
printf(“m=%d\n”,m);
}
intmax(intx,inty)/*函数定义*/
{intz;
z=(x>y)?
x:
y;
returnz;
}
①完善程序,如果输入4,2,6,程序运行结果:
6
题目2:
(文件名:
i2.cpp)
#include
voidmain()
{inta[][3]={0,2,4,6,8,10,12,14,16},sum;
intfunc(inta[][3]);/*函数声明*/
sum=func(a);
printf(“\nsum=%d\n”,sum);
}
intfunc(inta[][3])/*函数定义*/
{inti,j,sum=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j)sum+=a[i][j];
returnsum;
}
①程序的功能:
计算斜向右的对角线元素之和
②程序运行结果:
sum=24
题目3:
用子函数计算10名学生1门课成绩的平均分。
(文件名:
i3.cpp)
#include
floataverage(floatarray[10])/*注意数据类型的一致*/
{inti;floataver,sum=0;
for(i=0;i<10;i++)sum+=array[i];
aver=sum/10;
return(aver);
}
voidmain()
{floatscore[10],aver;
inti;
printf(“\ninput10scores:
”);
for(i=0;i<10;i++)scanf(“%f”,&score[i]);
aver=average(score[10]);/*error*/
printf(“\naveragescoreis%5.2f\n”,aver);
}
程序中有“error”标注处有错误,请改正,并调试运行程序。
Aver=average(score);
题目4:
子函数中判断一个大于1的整数是否是素数,数据由主函数中输入,并在主函数中显示结果。
(文件名:
i4.cpp)
#include
voidmain()
{intnumber;
printf(“请输入一个正整数:
\n”);scanf(“%d”,&number);
if(prime(number)==1)
printf(“\n%d是素数:
”,number);
else
printf(“\n%d不是素数:
”,number);}
intprime(intnumber)
{intflag=1,n;
for(n=2;flag==1&&n<=number/2;n++)
if(number%n==0)flag=0;
return(flag);
}
完善以上程序,并调试运行。
实验10:
题目4:
该程序使用了局部变量与全局变量,理解它们的使用方式。
(文件名:
j4.cpp)
#include
inta=3,b=5;
intmax(inta,intb)
{intc;
c=a>b?
a:
b;
returnc;
}
voidmain()
{inta=8;
printf(“%d”,max(a,b));
}
①局部变量:
a,c全局变量:
a,b
②程序运行结果:
8
题目5:
以下是一个求1-10累加和的错误程序,请改正。
(文件名:
j5.cpp)
#include
voidmain()
{inti,s;
for(i=1;i<=10;i++)
s=sum(i);
printf("s=%d\t",s);
}
sum(intj)
{intx=0;/*error*/
x+=j;
return(x);
}
改正为:
staticintx=0;
2.选择内容
实验9:
题目5:
子函数实现一个字符串按反序存放,在主函数中输入和输出字符串。
(文件名:
i5.cpp)#include
#include
voidmain(){voidinverse(charstr[]);
charstr[100];
printf(“输入字符串:
\n”);scanf(“%s”,str);
inverse(str);
printf(“转换后的字符串是:
%s\n”,str);
}
voidinverse(charstr[])
{chart;
inti,j;
for(i=0,j=strlen(str);istr[i]=str[j-1];
str[j-1]=t;
}
}
①运行以上程序,输入1234567*,程序运行结果是:
*7654321。
②将inverse函数中的for语句改为
for(i=0,j=strlen(str);i1234567*。
题目6:
在一个数组A中存放100个数据,用子函数判断该数组中那些是素数,并统计该素