这个作业属于哪个课程 | C语言程序设计二 |
这个作业要求在哪里 | 2019春季学期第六周作业 |
我的课程目标 | 理解变量、内存单元和地址之间的关系;掌握如何定义指针变量,怎样使用指针变量,怎样进行指针变量的初始化;掌握指针变量的基本运算;理解指针作为函数参数的作用;掌握如何使用指针实现函数调用返回多个值 |
这个作业在哪个具体方面帮助我实现目标 | 题目让我学会如何操作运用指针 |
参考文献 | c语言程序设计第3版 |
基础
6-1 求两数平方根之和 (10 分)
函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y = 7.936238。
函数接口定义:
double fun (double *a, double *b);
其中 a和 b是用户传入的参数。函数求 a指针和b 指针所指的两个数的平方根之和,并返回和。
裁判测试程序样例:
#include<stdio.h>
#include <math.h>
double fun (double *a, double *b);
int main ( )
{ double a, b, y;
scanf ("%lf%lf", &a, &b );
y=fun(&a, &b); printf ("y=%.2f\n", y );
return 0;
}
/* 请在这里填写答案 */
输入样例:
12 20
输出样例:
y=7.94
实验代码:
double fun (double *a,double *b)
{
double y;
y=sqrt(*a)+sqrt(*b);
return y;
}
设计思路:
遇到的问题与解决方法:
没有遇到问题
实验截图:
7-1 利用指针返回多个函数值 (30 分)
读入n个整数,调用max_min()函数求这n个数中的最大值和最小值。
输入格式:
输入有两行: 第一行是n值; 第二行是n个数。
输出格式:
输出最大值和最小值。
输入样例:
在这里给出一组输入
5
8 9 12 0 3
输出样例:
在这里给出相应的输出
max = 12
min = 0
实验代码:
#include<stdio.h>
void max_min(int a[],int n,int*pmax,int*pmin);
int main(void)
{
int n,i,max,min;
int *pmax,*pmin;
int a[9999];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
max_min(a,n,&max,&min);
printf("max = %d\nmin = %d",max,min);
return 0;
}
void max_min(int a[],int n,int*pmax,int*pmin)
{
int i;
*pmax=a[0];
*pmin=a[0];
for(i=1;i<n;i++)
{
if(*pmax<a[i])
*pmax=a[i];
if(*pmin>a[i])
*pmin=a[i];
}
}
设计思路:
遇到的问题与解决方法:
答案错误,看题发现等号两边空格。
实验截图:
学习感悟:
开始学指针时真的觉得指针能干嘛,有什么用,而且还麻烦,为什么要用指针。觉得用指针不是比不用多了一个没必要的操作吗?没有很明显感觉到它的优点。感觉指针一下不能好好理解。
学习进度条:
周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较疑惑的问题 |
---|---|---|---|---|
3/23-3/29 | 两天 | 200 | 冒泡排序法、二维数组处理字符串 | 不是很懂冒泡排序的代码 |
4/2-4/5 | 一天 | 120 | 指针的含义。地址、指针变量的关系。指针变量的初始化。指针的基本运算。 | 指针的应用操作不太理解 |
结对编程的感想:
队友重新换了一下,我和他认识,但是我们两个能力都不强,这周就是自己搞的。不过相信以后能越来越好。
思考题:
1.为什么要使用指针?它有什么用?
我觉得指针计算速度会更加快,就比如一本书里目录的标题就像栈,页码就像指针,如果要找书里的内容,是一页一页的翻快点呢还是根据目录找到页码然后在找到内容快呢。显然是后者快。
2.指针变量在内存中暂用多大的空间?它的大小由什么决定?
指针变量本身所占用的内存大小跟所指向的类型 没有任何关系。
它只跟当前CPU的寻址位数 和编译器的 位数有关。跟多少位的处理器无关
例如:
-32位处理器上32位操作系统的32位编译器,指针大小4字节。
-32位处理器上32位操作系统的16位编译器,指针大小2字节。
-32位处理器上16位操作系统的16位编译器,指针大小2字节。
-16位处理器上16位操作系统的16位编译器,指针大小2字节。
参考资料指针变量本身所占用的内存大小