合肥工业大学宣城校区,程序设计基础上机实验,周波老师仅供参考(修正版).doc
程序设计基础(实验七)
学号: 姓名: 专业:
1.目的:强化debug模式下的分布调试,掌握指针。
2 题目:
(1)编写swap函数,形参为指针类型,完成两个变量值的交换。
(2)处理任意人数的学生成绩,学生成绩利用一维数组保存,人数由用户输入;
要求:
子函数1:输入并保存学生成绩,利用new函数申请内存
子函数2:完成平均成绩的求取
子函数3:完成获取内存的释放 delete
(3)编写一程序,请求用户输入8首歌名,歌名存入字符指针数组,然后按照原序、字母序、字母逆序(从Z到A)输出;在调试过程中,截取该指针数组在内存中的截图,针对自己编程过程中的输出,打断点后进行分步调试,并截图。
3 程序结果贴图(注意标明对应题号和进行简短说明)
//1
//2
//3
//x1.in
asdaf
bfdbdfg
casfdasdf
dasfdasf
egreh
fasdgfs
gsfsdg
hsdhdr
//x1.out
hsdhdr
bfdbdfg
dasfdasf
casfdasdf
asdaf
gsfsdg
egreh
fasdgfs
asdaf
bfdbdfg
casfdasdf
dasfdasf
egreh
fasdgfs
gsfsdg
hsdhdr
hsdhdr
gsfsdg
fasdgfs
egreh
dasfdasf
casfdasdf
bfdbdfg
asdaf
4 编程过程中碰到的问题及总结
5 附源代码:
//1
#include
#include
void swap(int*,int*);
int main()
{
int a,b;
scanf("%d%d",&a,&b);
swap(&a,&b);
printf("%d %d",a,b);
return 0;
}
void swap(int* a,int* b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
//2
#include
#include
using namespace std;
int * init(int *,int);
double ave(int *,int);
void _free(int *);
int main()
{
int n;
cin>>n;
int *arr;
arr=init(arr,n);
double aver=ave(arr,n);
cout<
_free(arr);
return 0;
}
int * init(int *a,int n)
{
a=new int[n];
for(int i=0;i
cin>>a[i];
return a;
}
double ave(int *s,int n)
{
int sum=0;
for(int i=0;s[i]!='\0';i++)
sum+=s[i];
return sum/n;
}
void _free(int *s)
{
delete []s;
}
//3 version1:
#include
#include
#include
using namespace std;
int main()
{
freopen("x1.in","r",stdin);
freopen("x1.out","w",stdout);
char s[8][50],arr[8][50];
for(int i=0;i<8;i++)
//scanf("%s",s[i]);
cin>>s[i];
for(int i=0;i<8;i++)
{
cout<
cout<
}
for(int i=0;i<8;i++)
{
for(int j=i;j<8;j++)
{
if(strcmp(s[i],s[j])==1)
{
strcpy(arr[i],s[i]);
strcpy(s[i],s[j]);