第六周作业

一.作业头文件
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass1-2018/homework/2828
我在这个课程的目标是 掌握定义指针变量,使用指针变量,进行指针变量的初始化
这个作业在那个具体方面帮助我实现目标 能从多个角度来解决以前类似的题目
参考文献 https://zhidao.baidu.com/question/193848631.html和https://blog.csdn.net/lhj_168/article/details/80308041

为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出数组元素。。
函数接口定义:

void input(int *arr,int n);
void max_min(int *arr,int n);
void output(int *arr,int n);
三个函数中的 arr和n 都是用户传入的参数。n 是元素个数。
input函数的功能是输入 n个元素存到指针arr所指向的一维数组中。
max_min函数的功能是求指针arr所指向的一维数组中的最大值和最小值,其中最小的数与第一个数对换,将最大的数与最后一个数对换。
output函数的功能是在一行中输出数组元素,每个元素输出占3列。

include<stdio.h>

define MAX 80

int n;

void max_min(int *num,int *max,int *min);
int main()
{
int num[MAX];
int i,max,min;
scanf("%d",&n);

 for(i=0;i<n;i++)
 {
     scanf("%d",&num[i]);
 }
 
 max_min(&num[0],&max,&min);   
 
 printf("max = %d
min = %d
",max,min);
 
 return 0;

}

void max_min(int *num,int *max,int *min)
{
int i;
*max = min = num[0];
for(i=0;i<n;i++)
{
if(
max < num[i])
{
max = num[i];
}
if(
min > num[i])
{
*min = num[i];
}
}
}

设计思路

运算结果

遇到的问题

函数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 ", y );
return 0;
}

实验代码

double fun(double *a,double *b)
{
double result;

   result=sqrt(*a)+sqrt(*b);
   
   return result;

}
设计思路

运行结果

遇到问题

思考题:(分值等同于编程题)
  1.为什么要使用指针?它有什么用?

   答:1.在数据传递时,如果数据块较大,使用指针传递地址而不是实际数据,即提高传输速度,又节省大量内存

          2.字符串指针

          3.函数指针,可以用在大量分支处理的实例当中

        



         (1)指针就是指向一个特定内存地址的一个变量。

         (2)指针只是一个变量,它存储一个内存地址

         (3)指针直接与存储地址有关

  2.指针变量在内存中暂用多大的空间?它的大小由什么决定?

    答:指针的大小实际上是由CPU的寻址位数决定,而不是字长

          32位处理器上32位操作系统的32位编译器,指针大小4字节。

   32位处理器上32位操作系统的16位编译器,指针大小2字节。
   32位处理器上16位操作系统的16位编译器,指针大小2字节。
   16位处理器上16位操作系统的16位编译器,指针大小2字节。

          它只跟当前CPU的寻址位数 和编译器的 位数有关

周/日期 这周所用时间 代码行 学到的知识点简介 目前比较迷惑的问题
3/9-3/15 10小时左右 200左右 二维数组 对矩阵的上下三角形的一些规律,运用的不熟练
3/16-3/22 6小时时左右 260左右 冒泡法 对题目进行思路分析不够全面
3/23-3/29 10小时左右 220左右 在定义指针变量时需要使用指针声明符 * ,但指针声明符并不是指针的组成部分 指针变量的初始化
3/30-4/5 7小时左右 180左右 理解变量、内存单元和地址之间的关系;指针变量 如何使用指针实现函数调用返回多个值

代码行数
时间 博客字数 代码行数
第二周 1000 40
第三周 1500 90
第四周 2500 70
第五周 2000 80
第六周 1800 100

原文地址:https://www.cnblogs.com/JCclub/p/10658310.html