日报 2018/06/22

学生姓名:倪嘉颖          日期:2018/06/22              今天学习任务:C语言复习及提高
今日任务完成情况:已经按照老师所讲的完成应该完成的编程,代码量约250+行。
今日开发中出现的问题汇总:指针
今日未解决问题:无
今日开发收获:回顾了c语言的数组、指针、函数,并对于这些算法和基础函数有了再一次的训练。数组和指针在某些方面比较相似,尤其是数组地址以及数据在设备中存储地址的问题以前都没仔细注意过。
自我评价:学习积极性较高,学习到了一些基本的代码书写要求。及时高效完成老师布置的作业,自我百度不清楚的知识点。
其他:
1.一维数组,二维数组如何定义,初始化?如何在程序中赋值?
   一维数组的定义格式为:
     类型说明符  数组名[常量表达式];  例如:  int a[10];  它表示定义了一个整形数组,数组名为a,有10个元素。
  赋值:
    1.在定义数组时对数组元素赋以初值。例如:int a[10]={0,1,2,3,4,5,6,7,8,9};
   2. 可以只给一部分元素赋值。例如:int a[10]={0,1,2,3,4};    定义a数组有10个元素,但花括弧内只提供5个初                     值,    这表示只给前面5个元素赋初值,后5个元素值为0。
3. 如果想使一个数组中全部元素值为0,可以写成:int  a[10]={0,0,0,0,0,0,0,0,0,0};   或int a[10]={0};不能写成:int a             [10]={0*10};
4、在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。例如:int a[5]={1,2,3,4,                   5};也可以写成  int a[]={1,2,3,4,5};  int a[10]={1,2,3,4,5};  只初始化前5个元素,后5个元素为0。
二维数组定义的一般形式为:
类型说明符  数组名[常量表达式][常量表达式];

例如:定义a为3×4(3行4列)的数组,b为5×10(5行10列)的数组。如下:float  a[3][4],b[5][10] ;

初始化:1分行给二维数组赋初值  2可以将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值。3.可以对部分元素                 赋初值。4.如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。

2.字符数组如何定义,初始化,如何程序中赋值?

字符数组的输入输出可以有两种方法:
逐个字符输入输出。用格式符“%c”输入或输出一个字符。
将整个字符串一次输入或输出。用“%s”格式符,意思是对字符串的输入输出。 

3.字符串常见函数的使用,不用函数如何实现字符串的复制,字符串长度的实现?

(1)用“%s”格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名。

(2)如果数组长度大于字符串实际长度,也只输出到遇′\0′结束。(3)可以用scanf函数输入一个字符串。

4.函数的构造有哪些?入参,返回值如何在函数中体现?形参,实参是如何传递数据?

函数调用的形式:
(1)作为函数语句调用。函数一般无返回值。例:
printf(“Hello,World!\n”);
(2)作为函数表达式调用。例:
m=max(a,b)*2;
(3)作为函数参数调用。例:
printf(“%d”,max(a,b));
   m=max(a,max(b,c));

形式参数:定义函数时函数名后面括号中的变量名
实际参数:调用函数时函数名后面括号中的表达式

5.值传递,地址传递是怎么回事?如何实现在子函数中数值交换后在主函数中能实现?

值传递方式方式:
  函数调用时,为形参分配单元,并将实参的值复制到形参中;
  调用结束,形参单元被释放,实参单元仍保留并维持原值;
特点:

形参与实参占用不同的内存单元;  单向传递

地址传递方式:
函数调用时,将数据的存储地址作为参数传递给形参
特点:
形参与实参占用同样的存储单元;
“双向”传递;
实参和形参必须是地址常量或变量;

6. Auto,register,extern,static关键字的使用,详细说明

动变量是最常用的。 关键字auto能够显式地指定存储类别。
  显式定义         auto int x,y;隐含定义    等价       int x,y;

实际上关键字“auto”可以省略,auto不写则隐含确定为“自动存储类别”,即动态存储方式。 程序中大多数变量属于自动变量。

对于使用频繁的变量,可以使用register声明为寄存器变量,其值存储在CPU中,加快了运行速度。如:register int x;     register char  c.

如果全局变量在后面定义,而在前面的函数中要使用,则必须在使用前用extern声明该全局变量。如:extern int Abc; 

static修饰全局变量,改变变量的作用域,只在本文件被使用
static修饰函数,改变函数的作用域,只在本文件被调用
static修饰局部变量,改变变量的声明周期,直到程序退出

7.文件的包含有几种?分别表示什么意思?

两种。潜逃包含和集中包含。

8.宏定义如何实现?撤销定义如何实现?

一般形式:   #define   宏名    [宏体]

#undef可终止宏名作用域




猜你喜欢

转载自blog.csdn.net/Layman_/article/details/80777815