1、你对自己的未来有什么规划?做了哪些准备?

不管做什么,我都要把手头的事情当作自己喜欢的去做,充满热情和激情。

准备呢,就是学生阶段学好知识,做一些社会实践,多看书,好好学英语,掌握办公软件的使用,熟悉使用计算机。

2、你认为什么是学习?学习有什么用?现在学习的动力如何?为什么?

我认为学习就是了解、熟悉到掌握一门技术的过程。

学习的用处有很多,首先,学习可以让我们掌握一门生活技能来糊口;其次,学习锻炼了我们坚韧不拔、不畏艰难的良好品质,而且充实着我们打大脑,解决我对世界的种种问题;最后,在学习的过程中,我们树立了正确的人生观、世界观、价值观。

现在,学习的动力比之前更强。

因为,时间在不停的流逝,我们很快就要步入社会了,我们离这个残酷、现实、弱肉强食的社会越来越近,我不是官二代富二代,我需要靠自己,所以我需要在有限的时间内,无限的充实自己。

3、你认为专业课学习和公务员考试是哪个重要还是同等重要还是其他想法?为什么?

我认为学好专业课知识和考好公务员考试同等重要。

学好专业课知识,如果以后不想干公务员了,出来也可以依靠自己的专业干一番事业,而公务员考试呢,检验了一个人的综合素质,这是多方面的,能够顺利通过公务员考试、并且取得好成绩的人,在这个社会上,一定不会差的,我坚信这一点。

4、你感觉自己什么事情做的比较成功?有什么经验?

我觉得自己画画比较成功。

对一件事情全身心的投入其中,你的努力就一定不会白费。

5、你怎么看待《Java程序设计》这门课?学习这门课你对自己有什么期望?

Java是现在做软件比较常用的一门语言,这门课是比较重要的。

我希望自己可以像画画一样,全身心的投入其中,最好能掌握这门语言。

6、参考2015-2016-1《信息安全系统设计基础》课程总结,学习《Java程序设计》你对老师有什么期望?你准备怎么学习《Java程序设计》?

我希望老师能留给我们更多自主学习的空间,让我们自己遇到问题,去尝试解决,实在不会的再去请教老师。

我想语言这种东西,想要掌握就必须熟练,所以我准备,上手多练,没事就自己搜一些程序,写着练练手。

7、你是怎么学习C语言的?(作业、实验、教材、其他),目前为止估算自己写过多少行代码?

首先是看教材,理论明白了之后,就上机,把书上的例题先敲一遍,运行出来之后,做老师的实验题,实验题是在例题的基础上的综合和提升,这个时候就自己仔细琢磨,想不明白的地方,就通过上网百度,找类似的代码,写入自己的试验中尝试运行。

估计自己最少写了写了有1000行代码。

8、C语言的学习有什么经验和教训?

写代码,还是要求熟练和思路清晰两个,一个是靠练习一个是靠动脑子去想,动手去画流程图。

教训就是自己太懒,一是,太懒而上手练习的很少,导致敲代码的时候,速度是明显上不去;而是,太懒,自己在写程序之前,没有动手画流程图,导致在关键的地方,就很容易大脑混乱,理不清思绪,导致敲代码进度变慢,而且容易出现错误。

9、除了应付考试和实验,编程在什么地方帮助过你?

以前尝试在一个网页内,添加背景音乐,但是,设置里没有,只能是通过自己添加背景音乐的代码,从而实现这一想法。

10、学了C语言,你分得清楚数组指针,指针数组;函数指针,指针函数这些概念吗?

还是分不清,所以查了一下。

数组指针(也称行指针)
定义 int (*p)[n];
()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。

如要将二维数组赋给一指针,应这样赋值:
int a[3][4];
int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。
 p=a;        //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0]
 p++;       //该语句执行过后,也就是p=p+1;p跨过行a[0][]指向了行a[1][]

所以数组指针也称指向一维数组的指针,亦称行指针。

指针数组
定义 int *p[n];
[]优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组,它有n个指针类型的数组元素。这里执行p+1时,则p指向下一个数组元素,这样赋值是错误的:p=a;因为p是个不可知的表示,只存在p[0]、p[1]、p[2]...p[n-1],而且它们分别是指针变量可以用来存放变量地址。但可以这样 *p=a; 这里*p表示指针数组第一个元素的值,a的首地址的值。
如要将二维数组赋给一指针数组:
int *p[3];
int a[3][4];
p++; //该语句表示p数组指向下一个数组元素。注:此数组每一个元素都是一个指针
for(i=0;i<3;i++)
p[i]=a[i]
这里int *p[3] 表示一个一维数组内存放着三个指针变量,分别是p[0]、p[1]、p[2]
所以要分别赋值。

这样两者的区别就豁然开朗了,数组指针只是一个指针变量,似乎是C语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。

 

指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针

     类型标识符    *函数名(参数表)

      int *f(x,y);

 

首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。

表示:

float *fun();

float *p;

p = fun(a);

注意指针函数与函数指针表示方法的不同,千万不要混淆。最简单的辨别方式就是看函数名前面的指针*号有没有被括号()包含,如果被包含就是函数指针,反之则是指针函数。

来讲详细一些吧!请看下面

 指针函数:
    当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需要指针或地址的表达式中。
    格式:
         类型说明符 * 函数名(参数)
    当然了,由于返回的是一个地址,所以类型说明符一般都是int。

    例如:int *GetDate();
          int * aaa(int,int);
    函数返回的是一个地址值,经常使用在返回数组的某一元素地址上。

函数指针是指向函数的指针变量,即本质是一个指针变量。

 int (*f) (int x); /* 声明一个函数指针 */

 f=func; /* 将func函数的首地址赋给指针f */

 

指向函数的指针包含了函数的地址,可以通过它来调用函数。声明格式如下:
        类型说明符 (*函数名)(参数)
    其实这里不能称为函数名,应该叫做指针的变量名。这个特殊的指针指向一个返回整型值的函数。指针的声明笔削和它指向函数的声明保持一致。

        指针名和指针运算符外面的括号改变了默认的运算符优先级。如果没有圆括号,就变成了一个返回整型指针的函数的原型声明。
    例如:
        void (*fptr)();
    
把函数的地址赋值给函数指针,可以采用下面两种形式:
        fptr=&Function;
        fptr=Function;
    
取地址运算符&不是必需的,因为单单一个函数标识符就标号表示了它的地址,如果是函数调用,还必须包含一个圆括号括起来的参数表。
    可以采用如下两种方式来通过指针调用函数:
        x=(*fptr)();
        x=fptr();
    
第二种格式看上去和函数调用无异。但是有些程序员倾向于使用第一种格式,因为它明确指出是通过指针而非函数名来调用函数的。

11、学了C语言,你明白文件和流的区别和联系吗?如何区别文本文件和二进制文件?如何编程操这两种文件?

不明白,但是上网查了一下,简单了解

文件(File)和流(Stream)是既有区别又有联系的两个概念。

         文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。

                 存储介质:文件是指在各种存储介质上(如硬盘、可移动磁盘、CD等)永久存储的数据的有序集合,它是进行数据读写操作的基本对象。

                       特性:每个文件都有文件名、文件所在路径、创建时间及访问仅限等属性。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

         是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。

                   存储介质:除了和磁盘文件直接相关的文件流以外,流还有多种类型。流可以分布在网络中、内存中或者是磁带中。

文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码。

  从上面可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8)。而二进制文件可看成是变长编码的,因为是值编码嘛,多少个比特代表一个值,完全由你决定。大家可能对BMP文件比较熟悉,就拿它举例子吧,其头部是较为固定长度的文件头信息,前2字节用来记录文件为BMP格式,接下来的8个字节用来记录文件长度,再接下来的4字节用来记录bmp文件头的长度。

第三个问题,还是不会。

12、学习了c语言,你知道什么是面向过程吗?它解决问题的方法是什么?

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 

面向过程是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。 

13、在c语言里面,什么是模块?你写过多个源文件的程序吗?

按照功能将一个软件切分成许多部分单独开发,然后再组装起来,每一个部分即为模块  

模块是在内核空间运行的程序,实际上是一种目标对象文件

没写过。

14、学了c语言,你知道什么事“高内聚,低耦合”吗?这个原则如何应用到高质量的程序设计中?

高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。

内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。
所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
耦合:一个软件结构内不同模块之间互连程度的度量(耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。)
对于低耦合,粗浅的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。
15、学了c语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有5?如何对整数数组A进行排序(从小到大、从大到小)?写出相应的程序。
int A[100],B[100];
int i, flag=0; //查找数组A中是否含有特定数字(5);
for(i=0; i<100; i++)
{ if(A[i] == 5)
{ flag = 1;
breaak;
}
}
if(flag) printf("存在 !\n");
else printf("不存在!\n"); //将数组A的内容复制到数组B中;
for(i=0; i<100; i++) B[i] = A[i]; //对整数数组A进行排序
int j, temp; for (j=0; j<100-1; j++) //从小到大
for (i=0; i<100-1-j; i++)
{ if(A[i] > A[i+1])
{ temp = A[i];
A[i] = A[i+1];
A[i+1] = temp;
}
}
for (j=0; j<100-1; j++) //从大到小
for (i=0; i<100-1-j; i++)
{ if(A[i] < A[i+1])
{ temp = A[i];
A[i] = A[i+1];
A[i+1] = temp; } }
16、你知道什么是断电吗?给出自己调试程序的例子。
所谓断点就是程序被中断的地方,这个词对于解密者来说是再熟悉不过了。那么什么又是中断呢?中断就是由于有特殊事件(中断事件)发生,计算机暂停当前的任务(即程序),转而去执行另外的任务(中断服务程序),然后再返回原先的任务继续执行。
17、毕业后大多数人从事的工作的要求是“提笔能写、开口能说、问策能对、遇事能办”,非常重要的技能是公文写作能力,你觉得自己写作能力如何?
我认为自己的写作能力还是有待提高,我还是会多多读书,多多积累,这样才能写出与深度有宽度的文章。

 

posted on 2016-02-28 16:19  张家明  阅读(231)  评论(0编辑  收藏  举报