本节书摘来自异步社区《指针的编程艺术(第二版)》一书中的第1章,第1.5节,作者 蔡明志,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.5 练习
指针的编程艺术(第二版)
1.以下是Linda所撰写的程序,请你帮她debug一下。
/* addressBugs5.c*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
double x, y, average;
printf("请输入浮点数x与y: ");
scanf("%lf %lf", x, y);
average = (x+y)/2;
printf("x与y的平均数为: %\n", &average);
system("PAUSE");
return 0;
}
2.以下是Jennifer所写的程序,请你帮她debug一下。
/* addressArrayBugs5.c */
#include <stdio.h>
#include <conio.h>
int main()
{
int x[5];
int i;
for(i=0; i<5; i++)
{
printf("请输入x[%d]的整数值: ", i);
scanf("%d", &(x+i));
}
for(i=0; i<5; i++)
printf("x[%d] = %d\n", i, x[i]);
printf("\n");
getch();
return 0;
}
3.以下是Amy写的程序,请你帮她Debug一下。
/* addressStructBugs.c */
#include <stdio.h>
#include <stdlib.h>
int main( )
{
/* 声明结构变量 */
struct employee
{
char id[7]; /* ID号码 */
char name[20]; /* 员工姓名 */
int salary; /* 所得薪资 */
};
/* 定义结构变量,并设定其初值 */
struct employee manager = {"D12345", "Peter", 35000};
/* 输出结构变量的内存地址 */
printf("&manager= %x\n", &manager);
printf("manager.id= %x\n", manager.id);
printf("manager.name= %x\n", manager.name);
printf("&manager.salary= %x\n\n", &manager.salary);
/* 输出结构变量的值 */
printf("manager.id= %s\n", id);
printf("manager.name= %s\n", name);
printf("manager.salary= %d\n\n", salary);
system("PAUSE");
return 0;
}