From 30b9f309c85d381bd620db26503cd6164290a5de Mon Sep 17 00:00:00 2001 From: xtaodada Date: Mon, 6 Dec 2021 21:15:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E9=AA=8C=E4=B8=83=20=E6=8C=87?= =?UTF-8?q?=E9=92=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 07/1/1.c | 17 ++++++++++++++ 07/1/README.md | 47 ++++++++++++++++++++++++++++++++++++++ 07/2/2.c | 49 +++++++++++++++++++++++++++++++++++++++ 07/2/README.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ 07/README.md | 35 ++++++++++++++++++++++++++++ README.md | 3 +++ 6 files changed, 213 insertions(+) create mode 100644 07/1/1.c create mode 100644 07/1/README.md create mode 100644 07/2/2.c create mode 100644 07/2/README.md create mode 100644 07/README.md diff --git a/07/1/1.c b/07/1/1.c new file mode 100644 index 0000000..c7598d4 --- /dev/null +++ b/07/1/1.c @@ -0,0 +1,17 @@ +#include + +void calculate(double x,double y,double *he,double *cha,double *ji,double *shang){ + *he=x+y; + *cha=x-y; + *ji=x*y; + *shang=x/y; +} +int main(){ + double x,y,he,cha,ji,shang; + + scanf("%lf %lf",&x,&y); + calculate(x,y,&he,&cha,&ji,&shang); + printf("%g %g %g %g",he,cha,ji,shang); + + return 0; +} diff --git a/07/1/README.md b/07/1/README.md new file mode 100644 index 0000000..3c9762a --- /dev/null +++ b/07/1/README.md @@ -0,0 +1,47 @@ +【问题描述】 + +编程题:利用指针,设计子函数实现求两个数的和差积商,函数原型如下 + +``` +void calculate(double x,double y,double *he,double *cha,double *ji,double *shang) +``` + +并设计主函数求1组数的和差积商,并输出。 + + +【输入形式】 + +输入两个数(整数或实数),空格间隔 + +【输出形式】 + +输出和差积商,空格间隔,若有小数,按 `%g` 最短格式输出 + +【样例输入】 + +``` +5 10 +``` + +【样例输出】 + +``` +15 -5 50 0.5 +``` + +【样例说明】 + +【评分标准】 + +# 运行结果 + +成功通过编译, 且无编译警告 + +共有测试数据:2 +平均占用内存:1.990K +平均CPU时间:0.00428S +平均墙钟时间:0.00428S + +测试数据 评判结果 +测试数据1 完全正确 +测试数据2 完全正确 diff --git a/07/2/2.c b/07/2/2.c new file mode 100644 index 0000000..25e6636 --- /dev/null +++ b/07/2/2.c @@ -0,0 +1,49 @@ +#include + +void input(int a[],int n){ + for(int i=0;i0;i--){ + printf("x=\n"); + scanf("%d",&x); + t=find(a,n,x); + if(t>-1){ + printf("下标=%d\n",t); + } + else { + printf("没找到\n"); + } + } + return 0; +} diff --git a/07/2/README.md b/07/2/README.md new file mode 100644 index 0000000..7a6a202 --- /dev/null +++ b/07/2/README.md @@ -0,0 +1,62 @@ +【问题描述】 + +输入 `n(0 作业时间: 2021-12-06 19:12:00 至 2021-12-26 23:55:00 + +# 实验目的 + +1. 掌握指针的概念、会定义和使用指针变量; +2. 掌握通过指针访问单个变量的方法; +3. 了解指针指向数组的使用。 + +# 实验器材 + +计算机硬件环境:PIII 667以上计算机;软件环境:Visual C,Devc++。 + +# 技能要点 + +1. 指针的定义,初始化,引用; +2. `&`和`*`运算符的使用; +3. 指向数组的指针的定义,初始化,引用; +4. 指针的比较运算(例如:p>q); +5. 指针与整数的加减运算(例如:p+i); +6. 使用运算符`[]`,实现用下标法间接访问数组; +7. 使用运算符`*`和`(+` 或 `-)`,实现用指针法间接访问数组。 + +# 思考题 + +1. 指针做赋值运算时,赋值运算符右侧可以是那些值? +答:第一,```int x,*p,*q; + p=&x; 同类型变量的地址 + q=p; 同类型指针变量``` + + 第二,```int a[10],*p,*q; + p=a; 数组名 + p=&a[0]; p=a+0; 数组元素地址 + q=p; 同类型指针变量``` diff --git a/README.md b/README.md index 302ad50..50a9c00 100644 --- a/README.md +++ b/README.md @@ -66,3 +66,6 @@ A repo to record my study life. - [2. 回文数](https://github.com/xtaodada/C-study/tree/master/06-1/2) - [3. 打印数字金字塔。输入层数,输出金字塔](https://github.com/xtaodada/C-study/tree/master/06-1/3) - [4. 实验9——函数基础——两点间的距离](https://github.com/xtaodada/C-study/tree/master/06-1/4) +- [实验七 指针(2学时)](https://github.com/xtaodada/C-study/tree/master/07) + - [1. 利用指针,设计子函数实现求两个数的和差积商](https://github.com/xtaodada/C-study/tree/master/07/1) + - [2. 对一组数据置逆,查找操作](https://github.com/xtaodada/C-study/tree/master/07/2)