第三次作业

一、视频笔记

 

 

 

 

 

 

 

 

 二、代码列表

 

 

 三、问题

1、EOF是什么?怎么用?

C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。

2、char *a[]与char a[][10]有什么区别?

char *a[10]   表示一个数组,相当于 (char *) a [10],表示为a是一个数组,大小为10,这个数组的类型是 char *的,即这个数组的类型是指针。

char a[][10]  表示一个指针,相当于 char (* a) [10],表示为这个指针指向了一个数组,被指向的这个数组的类型是char型的,大小为10。

3、C99是什么?

是C语言官方标准第二版。

PTA:

4、

 

 

 我认为是错的,感觉前者有空格,而后者没有空格,所以不相等。

5、字符数组与字符指针有什么区别?

答:字符数组定义的字符串在数据区,而字符指针定义的字符串在代码区。代码区:整个运行过程不可改变。数据区:高地址,可改变。

例:char s2[]="array";     s2[0]='A';   printf("s2:%s\n",s2);  运行结果:s2:Array

char *sp="array";   sp="Array";  改变指针的指向才可以。

sp指向的字符不可改变,而sa中的字符可改变。

sp可指向别的字符串,sa是数组首元素地址,是常量,无法指向指针。

6、字符串常量:实质是一个指向该字符串首字符的指针常量。

 7、scanf()与gets()有什么区别?printf()和puts()呢?

答:scanf()遇回车或空格输入结束,并自动将输入的数据和字符串结束符‘\0’送入数组中。gets()函数从输入得到一个字符串,遇回车输入结束。采用函数gets()输入的字符串允许带空格。      printf()输出遇到‘\0’结束。puts()输出时遇‘\0’自动将其转换为‘|n’,输出字符串后换行。

8、#define是什么,怎么用?

答:#define是宏名标识符:编译时,把程序中所有与宏名相同的字符串,用宏定义字符串替代。例如:#define PI3.14中将后面出现的所有PI替换成3.14.

注意:a.宏名一般用大写字母,以与变量名区别。

           b.宏定义不是C语句,后面不加分号。

           c.宏定义可以嵌套使用。

 

 

 

 

posted @ 2020-03-14 14:00  李泰衡  阅读(243)  评论(2编辑  收藏  举报