实验5-结构、指针与文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5 结构体、指针与文件
程序填空
1.指针数组
题目描述:从键盘任意输入一个整型表示的月份值,用指针数组编程输出该月份的英文表示,若输入的月份值不在1~12之间,则输出“Illegal month”。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。
代码:
#include
int main()
{
char *monthName[13]={"Illegal month",
"January","February","March","April","May","June",
"July","August","September","October","November","December"};
int m;
printf("输入一个月份值(整型表示):");
scanf("%d",&m);
if(__(1)__)
printf("%s\n",monthName[0]);
else
printf("%s\n",__(2)__);
return 0;
}
2.二维数组作为函数参数
题目描述:编写一个函数,用来求出一个n×n阶矩阵的转置矩阵。函数原型为void Transpose(int a[][N],int n);
以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。
代码:
#include
#include
#define N 100
int main()
{
void Transpose(int a[][N],int n);
int d[N][N];
int n,i,j;
scanf("%d",&n);
for(i=0;i for(j=0;j d[i][j]=(int)rand()%100; printf("原来的矩阵为:\n"); for(i=0;i { for(j=0;j printf("%4d",d[i][j]); printf("\n"); } Transpose(__(1)__,n); printf("转置后的矩阵为:\n"); for(i=0;i { for(j=0;j printf("%4d",d[i][j]); printf("\n"); } return 0; } void Transpose(int a[][N],int n) { void Swap(int *pa,int *pb); int i,j; for(i=0;i for(j=0;j Swap(__(2)__); } void Swap(int *pa,int *pb) { int t; t=*pa; __(3)__; *pb=t; } 3.结构体 题目描述:定义一个复数MyComplex结构体类型,它包含实部real和虚部imag 两个个成员,并且可以进行复数的加减运算。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。 代码: #include struct MyComplex { float real,image; }; void Display(struct MyComplex c) /* 输出复数 */ { printf("%.2f",c.real); if(c.image>0) printf("+%.2f",c.image); else printf("-%.2f",__(1)__); } __(2)__ Add(struct MyComplex x,struct MyComplex y) { struct MyComplex z; z.real=x.real+y.real; z.image=x.image+y.image; return __(3)__; }; __(4)__ Sub(struct MyComplex x,struct MyComplex y) { struct MyComplex z; z.real=x.real-y.real; z.image=x.image-y.image; return __(5)__; }; int main() { struct MyComplex c1={1,2},c2={3,4},c3; c3=Add(c1,c2); printf("\n两个复数相加的结果为:");Display(c3); c3=__(3)__; printf("\n两个复数相减的结果为:");Display(c3); return 0; } 4.结构体指针 题目描述:定义一个时钟结构体类型,它包含“时、分、秒”3个成员,然后编写一个时钟模拟显示程序。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。代码: #include struct Clock { int second,minute,hour; }; void update(struct Clock *pc) { pc->second++;