20165310 学习基础和C语言基础调查
学习基础和C语言基础调查
做中学体会
阅读做中学之后,了解老师关于五笔练习、减肥、乒乓和背单词的经历,不禁联想到自己学古筝的经历。
- 成功的经验
- 兴趣
我其实小时候学过一段时间古筝,但是那时候是因为父母的要求,自己并不喜欢,后来就终止了。直到再过了几年自己对于古筝产生了兴趣,主动要求重新学习古筝,一直坚持到了最后。 - 专注
说来惭愧,我练琴从来不是定时定量的,而是根据心情和专注程度来,对于我来说,心不在焉的练习两个小时的效率没有专注练习半小时高。状态不好时当天我会放弃练习,状态好的时候连续练习几个小时也不觉得疲惫,最终效果也是不错。 - 坚持
学习过程中也遇到过许多困难,比如中间停止的断层,比如与学业的冲突,但是没有想过放弃,逐渐坚持下来,虽然由于上学距离远,携带不便等原因,现在还是生疏了,但是在整个学习过程中,不曾中断过。
- 兴趣
- 共通之处
- 持之以恒
不管是学习哪种技能,都是贵在坚持。学习速度因人而异,有快有慢,但是只要坚持,不管速度快慢都是可以达成目标的。 - 认真练习
从老师的博客联系自己的经历,不难看出,所有的学习过程都要付出努力,没有一蹴而就的事情,都需要认真练习,才能有所收获。
- 持之以恒
C语言基础调查
数据结构为大二下的课程,有些问题不太了解,通过网络查询后形成自己的理解,如有理解错误希望老师能够指出。
- 你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
- 上课听讲,下课练习。有疑问查询网络,解决不了的进行答疑。
- 重在理解,语法虽然重要,但是是可以即时学习的,更重要的是算法的设计,编程只是实现算法的过程,可以有多种方式实现,锻炼自己的思维才是关键。
- 目前为止估算自己写过多少行C代码?理解的情况如何?量变引起质变,如何平衡质和量?
- 没有具体计算过,应该不少于4000行。
- 感觉对于复杂程序还不能熟练编写,有所理解但不够深入。
- 先进行量变:基础短代码练习,学习理解;再进行质变:调用知识,灵活运用,完成更深一层的理解学习。
- 学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?
- 数组指针:本质是指针,指向数组地址
- eg:
int a[5],*p;
p=a;
- 指针数组:本质是数组,是由指针组成的数组。
- eg:
int (*p)[3];
- 函数指针:本质是指针,指向函数
- eg:
int function(int x,int y);//自定义某函数,具体不写
int main()
{
int a=3,b=4,s;
int (*p)(int ,int);
p=function;
s=(*p)(a,b);
return 0;
}
- 指针函数:本质是函数,指返回值是指针的函数。
- eg:
int *(pr(int (*p)[2] ,int a ));
{
int *str;
str=*p==a?*p:*(p+1);
return str;
}
- 学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
- 文件和流的区别与联系:文件是信息的一个集合,是一种真实的设备;而流是一种抽象概念,它是连接程序与文件、设备,导入或者导出设备的通
- 文本文件和二进制文件:文本文件是字符序列,与外设中的字符序列不一一对应,需要进行转换;二进制文件是字节序列,不需要进行转换可以直接对应。
- 编程操作两种文件的方法:C语言分别规定了相对应的函数操作:
- 文本文件函数:"r","w","a","r+","w+","a+"
- 二进制文件函数:"rb","wb","ab","rb+","wb+","ab+"
- 学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
- 面向过程程序设计是分析解决问题的过程中的具体步骤,按照具体步骤进行程序设计,顺序执行每一函数。
- 解决问题方法方法:根据问题进行分析,按执行顺序安排每一步骤,依据步骤进行函授编程。
- 在C语言里面,什么是模块?你写过多个源文件的程序吗?
- 在C语言里面,模块可近似看为函数。
- 没有写过
- 学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
- “高内聚,低耦合”的理解:高内聚是指模块尽可能独特完成单一子功能;低耦合是指模块与模块之间尽可能相互独立,模块与模块之间的接口尽可能少且简单。
- 在设计程序时,要学会将程序模块化成功能单一,相对独立的模块,再灵活调用,进行编程。
- 学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
- 数组复制:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int a[100],b[100],i,n;
printf("Input n=:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
memcpy(b,a,sizeof(int)*n);
return 0;
}
- 数组排序:
从大到小 :
#include <stdio.h>
int main()
{
int a[100],i,j,n,temp;
printf("Input n=:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]<a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
return 0;
}
从小到大:
#include <stdio.h>
int main()
{
int a[100],i,j,n,temp;
printf("Input n=:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
return 0;
}
- 查找是否存在数字5:
假设已通过上述程序进行从小到大排序,下面程序直接进行二分法查找
#include <stdio.h>
int judge(int a[],int n)
{
int high=n-1,low=0,mid;
while(low<=high)
{
mid=(high-low)/2+low;
if(a[mid]==5)
{
return 1;
}
else if(a[mid]>5)
{
high=mid-1;
}
else
{
low=mid+1;
}
return -1;
}
}
int main()
{
int a[100],n,ans;//数组a已输入并从小到大排序,n为a的长度
//具体程序见上面的“数组排序”
ans=judge(a,n);
if(ans==1)
{
printf("yes");
}
else
{
printf("no");
}
return 0;
}
- 写一个程序,统计自己C语言共写了多少行代码。
- 思路:将所有.c文件放入一个文件夹中,扫描文件夹目录,按照目录依次读取.c文件,不是注释行就计算为一行(按照个人编程习惯,注释行统一以//开头,可以修改程序为'/''/')
- 不足:
- 对于opendir,readdir函数还不是很理解,很多代码是根据例子生搬硬套的,自己独立无法灵活运用,无法利用dir等函数从将所有后缀文件中读取.c文件
- 对于文件操作,文件函数理解还不深厚
#include <stdio.h>
#include <dirent.h>
#include <stdbool.h>
int main(int argc, char const *argv[])
{
FILE *pt;
char *pt1,ch,buf[10000];
DIR *dirptr=NULL;
int count=0;
struct dirent *entry;
if((dirptr = opendir("test.dir"))==NULL)//操作失败
{
printf("opendir failed!");
return 1;
}
else
{
while(entry=readdir(dirptr))
{
if((pt=fopen(entry -> d_name,"r"))==NULL)//打开操作不成功
{
printf("The file can not be opened.\n");
exit(0);//结束程序的执行
}
else
{
if(feof(!pt))
{
ch=fscanf(pt,"%1s",ch);
if (ch=='\n')//扫描到换行符
{
pt1 = mystrstr(pt, "//");//注释的位置
if (pt1 != pt)//并不是整行注释
{
count++;//代码多一行
}
}
fgets(buf,10000,pt);
if (buf[0]=='\0')//删除空行数
{
count--;
}
}
}
}
closedir(dirptr);
printf("行数是%d\n",count);
}
return 0;
}
- 你知道什么是断点吗?给出自己调试程序的例子。
- 设置断点后,程序运行到断点自动停止,方便我们进行逐步调试。
- 在多次程序编写中,遇到无语法错误但是运行不出的情况,就会设置断点进行单步调试。
快速阅读与提问
阅读完怎样快速阅读一本书后,由于没有教材,对PPT进行了阅读。
- 第一章:如何在Linux,MacOS等环境下配置Java?Python,Java,C语言可以共用一个环境吗?
- 第二章:在输入对象调用中看到了eader.++has++NextDouble(),在PPT中的调用格式中,没有包含has的格式,并且对System.in.read(); 与 Scanner reader=new Scanner(System.in);等具体Scanner的用法存在一定混淆。
- 第三章:instanceof 运算符实际运用意义是什么? for(声明循环变量:数组的名字) 运用中,是不是不需要知道数组长度?
- 第四章:在传参和包的这两个地方不太理解。
- 第五章:什么时候需要运用到子类?
- 第六章:接口变量public、static,final的区别是什么?
- 第七章:为什么通过try-catch语句解决异常而不是从根本上改变异常语句出错的原因呢?try-catch语句能够解决所有异常吗?
- 第八章:引用和实体的区别是什么?
- 第九章:不是很理解不同处理事件之间的区别与应用。
- 第十章:如何限制读取的文件的后缀名,例如只读取.txt文件忽略其他文件?
- 第十一章:MySQL数据库与SQL Server数据库与Derby数据库分别应该如何应用呢,能否用JAVA搭建一个数据库?
- 第十二章:Java是多线程,但是为什么PPT中说“JVM就会知道又有一个新一个线程排队等候切换了”,是排队而不是同时进行呢?
- 第十三章:PPT讲解了基于UDP的数据包的接收与发送,那么如何基于TCP进行数据包的接收与发送呢?
- 第十四章:除了钟表的公式还有别的特殊公式吗?
- 第十五章:散列表的具体的数据结构是什么样的,和链表的区别是什么?
Java学习
对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?
- 学习目标:能较为熟练地运用Java,完成一些略微复杂的困难编程。
如何通过刻意训练提高程序设计能力和培养计算思维?
- 训练方法:多练习,多提问,多思考,再回归练习。
如何通过“做中学”实现你的目标?
- 通过实践练习已经掌握的知识,发掘自己的疑问和漏洞,再进行思考和实践,弥补知识的漏洞,最终回归实践。
20165310 学习基础和C语言基础调查的更多相关文章
- 20165318 预备作业二 学习基础和C语言基础调查
20165318 学习基础和C语言基础调查 技能学习经验 我们这一代人,或多或少的都上过各种兴趣班,舞蹈钢琴画画书法,我也是如此.可这些技能中,唯一能拿的出手的就是舞蹈了.按照<优秀的教学方法- ...
- 20165230 学习基础和C语言基础调查
20165230 学习基础和C语言基础调查 技能学习经验 我擅长弹钢琴.小时候我曾上过很多兴趣班,比如钢琴.跳舞.书法.绘画等等,唯一坚持至今的只有钢琴.仔细一算学习钢琴至今已有12年,不能说已经精通 ...
- 20165237 学习基础和C语言基础调查
学习基础和C语言基础调查 一.技能学习与特长 你有什么技能比大多人(超过90%以上)更好? 我的爱好和技能说实话挺广泛的.如果要挑出来一个很擅长的话,我觉得应该是钢琴. 针对这个技能的获取你有什么成功 ...
- 20165234 预备作业2 学习基础和C语言基础调查
学习基础和C语言基础调查 一.技能学习经验及体会 你有什么技能比大多人(超过90%以上)更好? 看到这个问题,我仔细想了想,好像的确没有什么特别出众的技能,但是我想到了许多我个人的爱好. 我从小喜欢五 ...
- 20165337学习基础和C语言基础调查
20165337学习基础和C语言基础调查 你有什么技能比大多人(超过90%以上)更好? 讲道理我感觉我自己没有什么能比90%以上的人都做得好的技能,我就瘸子里面拔将军挑一个我自认为还不错的技能吧. 我 ...
- 学习基础和C语言基础调查
学习基础和C语言基础调查 一.一种比大多数人(超过90%以上)更好的技能 说句实话,我还没有那种特别特别自信的.说我能拿得出手的.所谓能超过百分之九十以上的人的技能.毕竟人外有人,天外有天. 姑且算上 ...
- 20165323 学习基础和C语言基础调查
20165323 学习基础和C语言基础调查 一.技能学习心得 1.你有什么技能比大多人更好? 我觉得我羽毛球打的还行,不能说打得比大多数人好,但是对于一些打羽毛球的要领还是掌握的. 2.针对这个技能的 ...
- 20165235 学习基础和C语言基础调查
20165235 学习基础和C语言基础调查 首先第一个问题:你有什么技能比大多人(超过90%以上)更好?感觉很难回答这种问题,其实我对很多东西挺感兴趣的,如果非要拿出一种比较突出的技能的话我感觉就是象 ...
- 20165317 学习基础和C语言基础调查
学习基础和C语言基础调查 关于优势技能 说来惭愧,读书多年,爱好不少,但是真的能拿的出手的.能被叫做特长的不多.至今,能在同龄人中处于较领先位置的也只有从四年级开始练起的乒乓球.记得开始练习乒乓球是从 ...
随机推荐
- HDU-2680 Choose the best route 单向边+反向dijkstra
https://vjudge.net/problem/HDU-2680 题意:以起始点 终点 长度 给出一个图,已知可以从w个起点出发,求从任一起点到同一个终点s的最短路径.注意是单向边.m<1 ...
- intel笔记本cpu型号后缀详解(M,U,QM,MQ,HQ,XM)
M:笔记本专用CPU,一般为双核,M前面一位数字是0,意味着是标准电压处理器,如果是7,则是低电压处理器. U:笔记本专用低电压CPU,一般为双核,U前面一位数字为8,则是28W功耗的低压处理器(标准 ...
- JS-nodejs--nodewebkit--npm穿墙cnpm
npm install 本地安装与全局安装的区别 本地安装1. 将安装包放在 ./node_modules 下(运行npm时所在的目录)2. 可以通过 require() 来引入本地安装的包 全局安装 ...
- Numba:高性能Python编译器
一.简介 Numba是一个开源JIT编译器,它将Python和NumPy代码的子集转换为快速机器代码. 二.主要特点 加速Python功能 Numba使用行业标准的LLVM编译器库在运行时将Pytho ...
- 添加用户username到sudo组
添加用户username到sudo组: usermod -aG sudo username USERMOD(8) 系统管理命令 USERMOD(8) 名 usermod - 修改一个用户账户 大 us ...
- qt——常用的布局方法
布局相关对象及简介 窗体上的所有的控件必须有一个合适的尺寸和位置.Qt提供了一些类负责排列窗体上的控件,主要有:QHBoxLayout,QVBoxLayout,QGridLayout,QStackLa ...
- [py][mx]django get方法返回login页面
get方法返回login.html users/views.py def login(request): if request.method == "POST": pass eli ...
- 菜刀php过waf
关于PHP 一.waf为啥会拦截菜刀.菜刀在连接时,会向server端POST数据,抓包查看: 会看到他向server端post了 @eval(base64_decode($_POST[z0])); ...
- OCR学习及tesseract的一些测试
最近接触OCR,先收集一些资料,包括成熟软件.SDK.流行算法. 1. 一个对现有OCR软件及SDK的总结,比较全面,包括支持平台.编程语言.支持字体语言.输出格式.相关链接等 http://en.w ...
- jmeter Bean Shell的使用(一)
未经作者允许,禁止转载!!! Jmeter有哪些Bean Shell 定时器: BeanShell Timer 前置处理器:BeanShell PreProcessor 采样器: BeanShell ...