C语言程序设计作业06
|
这个作业要求在哪里 | https://pintia.cn/problem-sets/1603042333342580736 |
我在这个课程的目标是 | 熟练掌握C语言课程知识并懂得如何运用,为以后的专业课打下基础 |
这个作业在那哪个具体方面帮助我实现目标 | 这个作业可以帮助我更加懂得C语言编程原理,加深对C语言的了解 |
参考文献 | C语言程序设计 |
1.PTA实验作业
1.1指向函数的指针
分析下面代码,体会 理解 指向函数的指针
#include<stdio.h>
int max(int a,int b){
if(a>b) return a;
else return b;
}
int main(){
int(*pf)();
int x=5,y=8,z;
pf=max;
z=(*pf)(x,y);
printf(“max=%d”,z);
return 0;
}
执行程序,输出:
max=8
1.1.1数据处理
1 数据表达 定义了int a,int b,int *pf,int x,int y,int z变量进行计算
2 数据处理
1.1.2实验代码截图
1.1.3造测试数据
1.1.4 PTA提交列表及说明
个人感觉这道题刚看到的时候有点难,无从下手,不知道怎么去切入。后面做了一些尝试,发现这其实是一道验证性的题目,然后前面的疑惑就消除了。
1.2 指向函数的指针代码分析
代码分析 指向函数的指针代码分析
请分析以下代码,理解函数指针变量。
#include<stdio.h>
int add(int a,int b){return a+b;}
int sub(int a,int b){return a-b;}
int mul(int a,int b){return a*b;}
int div(int a,int b){
if(b==0){
printf(“Error:Divide by zero.”);
exit(0);
}
return a/b;
}
int error(int a,int b){
printf(“Error:Expression undefined!”);
exit(0);
}
int main(){
int x,y,z;
char op=‘#’;
int(fun)(int,int);
scanf(“%d%c%d”,&x,&op,&y);
switch(op){
case ‘+’: fun=add; break;
case ‘-’: fun=sub; break;
case '': fun=mul; break;
case ‘/’: fun=div; break;
default: fun=error;
}
z=(*fun)(x,y);
printf(“Result=%d\n”,z);
return 0;
}
执行程序输入:
1+2
输出:
Result=3
再次执行输入:
9-8
输出:
Result=1
再次执行输入:
9/0
输出:
Error:Divide by zero.
再次执行输入:
1H2
输出:
Error:Expression undefined!
1.2.1数据表达
1 数据表达 定义了int a,int b,int x,int y,int z,变量进行计算
2 数据处理
1.2.2实验代码截图
1.2.3造测试数据
1.2.4 PTA提交列表及说明
经过了7.1的题目,我看到这道题的时候就已经醒悟很多了,知道又是一道验证性的题,所以整个代码打下来还好,但是主要是对指向函数的指针代码的理解还有很多不懂。
2 学习总结
2.1 学习进度条
2.2 学习内容和感悟
2.2.1 学习内容总结
学习内容总结:本周学习了指针与数组
2.2.2 学习体会
指针这一章节感觉还是蛮抽象蛮有难度的,而且还是线上课,所以说目前面临的挑战还是挺大的。同时,也临近期末,对于整个科目的总复习也快要开始了,现阶段的学习任务还是比较重的。