第一篇:C语言总结
目录
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 C基础知识.......................................................................................................1 函数与头文件..................................................................................................2 C预处理器.......................................................................................................3 将一个字符转换为long型.............................................................................4 strcpy函数.......................................................................................................4 assert用法.......................................................................................................5 itoa函数和atoi函数.......................................................................................6 strcmp函数实现.............................................................................................8 strcpy函数实现...............................................................................................9 memcpy函数实现.........................................................................................10 memcpy和memmove函数的实现.............................................................11 strcat函数实现..............................................................................................13 使用库函数atoi,将char *→int................................................................13 使用库函数itoa,将int→char *.................................................................14 不使用库函数,将int→char *....................................................................14 不使用库函数,将char *→int....................................................................15 求两个整数的最大公约数............................................................................16 Little_endian or Big_endian.........................................................................17 sizeof与strlen的区别..................................................................................19 实现String类的BIG_FOUR......................................................................19 struct和union的区别..................................................................................20 char字符变量与int整型数据.....................................................................22 字,字节,字符,比特.........................................................................................23 空格、空字符、字符数组结束符的区别....................................................25
1.1 C基础知识
位运算符 & 按位与
如果两个对应的二进制都为1,则该位结果值为1,否则为0
特殊用途:(1)清0(2)取一个数的特定位 | 按位或
如果两个对应的二进制中只要有一个为1,则结果为1,否则为0 ^ 按位异或
两个二进制同号,则结果为0,否则为1(1)与0相异或,保留原值(2)交换两个值,不用临时变量
将a,b交换 a = a ^ b;b = b ^ a;a = a ^ b;
~ 取反 << 左移 >> 右移
&& 与运算:表示如果y,z为真,则(y&&z)为真,返回一个布尔值1 || 或运算:表示如果y,z中有一个为真,则(y||z)为真,返回一个布尔值1
说明:位运算符除了~以外,均为二目运算符,即要求两侧各有一个运算量。运算量只能是整型或字符型的数据,不能为实型数据。
1.2 函数与头文件
#include
#include
#include
#include
#include
#include
1.3 C预处理器
C预处理器是一种简单的宏处理器。预处理器是由特殊的预处理器命令行控制的,它们是以#符号开头的源文件行。预处理器的一般操作:从源文件中删除所有的预处理器命令行,并在源文件中执行这些预处理器命令所指定的转换操作。
预处理器代码行的语法与C语言其他部分的语法是完全独立的,但经过预处理所产生的源代码必须在上下文环境中合法。常见的预处理器命令:
#define 定义一个预处理器宏 #undef 取消一个预处理器宏
#include 插入另一个源文件的文本 #if 测试一个常量表达式的值 #ifdef 测试如果一个宏已被定义 #ifndef 测试如果一个宏没有被定义 #else 测试失败后 #endif 终止条件文本
#line 提供用于编译器信息的行号
#elif 与else if相似
defined 判断一个宏是否被定义,已定义返回1,否则返回0,其与#if和#elif联用
# 将#后的宏标记转化为字符串
## 将两个相邻的宏标记连接成一个整体标记 #pragma 指定依赖编译器的信息
#error 用指定的信息产生一个编译时错误
常用的预定义的宏有:
__LINE__ 当前源程序行的行号,用十进制整数常量表示
__FILE__ 当前源文件的名称,用字符串常量表示
__DATE__ 编译时的日期,用“MM dd yyyy”形式的字符串常量表示
__TIME__ 编译时的时间,用“hh:mm:ss”形式的字符串常量表示
__STDC__ 当且只当编译器遵循ISO标准时,它的值是十进制常量1 __STDC__VERSION__ 如果编译器遵循C99,则这个宏的值是199901L,其他情况下,该宏没定义
__STDC__HOSTED__ 当前是宿主系统,该宏值为1,当前是独立系统,这个宏值为0
__STDC__IEC__559__ 如果浮点实现遵循IEC 60599标准,这个宏值为1,否则无定义
__STDC__IEC__559__COMPLEX__ 如果复数运算实现遵循IEC 60559标准,则该宏值为1,否则未定义
__STDC__ISO10646__ 定义为一个长整数常量
__LINE__和__FILE__在调试中的运用
上面这段代码通过#ifdef #else #endif三个条件编译指令,根据_DEBUG定义情况(该宏用于区分DEBUG版本和Release版本),决定了具体的TRACE_FILE_LINE_INFO宏函数的实现。使用者可以用如下方法使用
##标记符粘贴运算符
ANSI标准定义的标记符粘贴运算符##可以把宏定义中的两个标记符组合成一个标记符。
例如 #define combine(s1, s2)s1##s2 Combine(TOTAL,SALES)则为 TOTALSALES #define NAME(i)name ## i
NAME(1)=>name1
1.4 将一个字符转换为long型
char cMax;long lMax;cMax = getch();lMax = cMax & 0xF;1.5 strcpy函数
原型:extern char *strcpy(char *dest,char *src);用法:#include
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。给一个很经典版本的strcpy函数源码: char *strcpy(char *strDest, const char *strSrc);{
assert((strDest!=NULL)&&(strSrc!=NULL));
char *address = strDest;
while((*strDest++ = * strSrc++)!=‘ ’)NULL;
return address;} 1.6 assert用法
assert宏的原型定义在
FILE *fp;
fp = fopen(“test.txt”, “w”);//以可写的方式打开一个文件,如果不存在就创建一个同名文件
assert(fp);//所以这里不会出错
fclose(fp);
fp = fopen(“noexitfile.txt”, “r”);//以只读的方式打开一个文件,如果不存在就打开文件失败
assert(fp);//所以这里出错
fclose(fp);//程序永远都执行不到这里来
return 0;} [root@localhost error_process]# gcc badptr.c [root@localhost error_process]#./a.out a.out: badptr.c:14: main: Assertion `fp' failed.已放弃
使用assert的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。在调试结束后,可以通过在包含#include
1)在函数开始处检验传入参数的合法性 如: int resetBufferSize(int nNewSize){ //功能:改变缓冲区大小, //参数:nNewSize 缓冲区新长度 //返回值:缓冲区当前长度
//说明:保持原信息内容不变
nNewSize<=0表示清除缓冲区 assert(nNewSize >= 0);assert(nNewSize <= MAX_BUFFER_SIZE);...} 2)每个assert只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败
不好: assert(nOffset>=0 && nOffset+nSize<=m_nInfomationSize);好: assert(nOffset >= 0);assert(nOffset+nSize <= m_nInfomationSize);3)不能使用改变环境的语句,因为assert只在DEBUG生效,如果这么做,会使用程序在真正运行时遇到问题 错误: assert(i++ < 100)这是因为如果出错,比如在执行之前i=100,那么这条语句就不会执行,那么i++这条命令就没有执行。正确: assert(i < 100)
i++;4)assert和后面的语句应空一行,以形成逻辑和视觉上的一致感 5)有的地方,assert不能代替条件过滤
1.7 itoa函数和atoi函数
函数名:atoi 功 能:把字符串转换成整型数 用 法:int atoi(const char *nptr);
函数说明: atoi()会扫描参数nptr字符串,检测到第一个数字或正负符号时开始做类型转换,之后检测到非数字或结束符 时停止转换,返回整型数。需要用到的头文件: #include
#include
int main(void){ int n;char *str = “12345.67”;n = atoi(str);printf(“string = %s integer = %dn”, str, n);return 0;} 执行结果
string = 12345.67 integer = 12345
函数名: itoa
备注:该函数的头文件是#include
用 法:char *itoa(int value, char *string, int radix);详细解释:itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写。参数:
value: 待转化的整数。
radix: 是基数的意思,即先将value转化为radix进制的数,范围介于2-36,比如10表示10进制,16表示16进制。
* string: 保存转换后得到的字符串。返回值:
char * : 指向生成的字符串,同*string。atoi和itoa的示范代码如下:
#include
char *s;int ix;
char buffer[20];
int i = 3445;
long l =-344115L;
unsigned long ul = 1234567890UL;
s = “-9885 pigs”;
/* Test of atoi */
ix = atoi(s);
printf(“atoi test: ASCII string: %sttinteger: %dn”, s, ix);
_itoa(i, buffer, 10);
printf(“String of integer %d(radix 10): %sn”, i, buffer);
_itoa(i, buffer, 16);
printf(“String of integer %d(radix 16): 0x%sn”, i, buffer);
_itoa(i, buffer, 2);
printf(“String of integer %d(radix 2): %sn”, i, buffer);
_ltoa(l, buffer, 16);
printf(“String of long int %ld(radix 16): 0x%sn”, l, buffer);
_ultoa(ul, buffer, 16);
printf(“String of unsigned long %lu(radix 16): 0x%sn”, ul,buffer);} 输出结果:
atoi test: ASCII string:-9885 pigs
integer:-9885 String of integer 3445(radix 10): 3445 String of integer 3445(radix 16): 0xd75 String of integer 3445(radix 2): 110101110101 String of long int-344115(radix 16): 0xfffabfcd String of unsigned long 1234567890(radix 16): 0x499602d2
1.8 strcmp函数实现
功 能: 串比较
用 法: int strcmp(char *str1, char *str2);
#include
int MyStrcmp(const char *str1,const char *str2)//错误 {
assert((str1!=NULL)&&(str2!=NULL));
for(;(*str1!=' ')&&(*str2!=' ');str1++,str2++)
{
if(*str1>*str2)
return 1;
else
return-1;
}
return 0;}
int my_strcmp(const char *str1,const char *str2)//正确 {
assert((str1!=NULL)&&(str2!=NULL));for(;(*str1!=' ')&&(*str2!=' ');str1++,str2++){
if(*str1>*str2)return 1;if(*str1<*str2)
} } return-1;if((*str1==' ')&&(*str2!=' '))return-1;else if((*str1!=' ')&&(*str2==' '))return 1;return 0;else
int main(){
char *string1=“hanli”;
char *string2=“hanlihaha”;//-1 // char *string1=“";// char *string2=”“;//0
cout< return 0;} 1.9 strcpy函数实现 原函数作用:拷贝一个字符串到另一个 #include char *MyStrcpy(char *strDest, const char *strSrc)//程序员面试宝典P205 { assert((strDest!=NULL)&&(strSrc!=NULL)); char *strDestCopy=strDest; while((*strDest++=*strSrc++)!=' ') NULL; return strDestCopy;} 我的修改 char *MyStrcpy(char *strDest, const char *strSrc)//有错吗? { assert((strDest!=NULL)&&(strSrc!=NULL)); char *strDestCopy=strDest; while((*strDestCopy ++=*strSrc++)!=' ') ; return strDest;} int main(void){ char *str1=”abc“; char str2[20]; cout< return 0;} 1.10 memcpy函数实现 功 能: 从源source中拷贝n个字节到目标destin中 #include void *MyMemcpy(void *memDest, const void *memSrc, size_t size){ assert((memDest!=NULL)&&(memSrc!=NULL)); char *tempDest = static_cast const char *tempSrc = static_cast if((tempDest>tempSrc)&&(tempDest { for(size_t i=size-1;i!=-1;--i) tempDest[i]=tempSrc[i]; } /*其它情况都可以按照从小到大读取*/ else { for(size_t i=0;i tempDest[i]=tempSrc[i]; } return memDest;} int main(){ char strSrc[]=”12345“; char strDest[20]; MyMemcpy(strDest,strSrc,4); strDest[4]=' ';//以' '结束,勿漏! cout< return 0;} 1.11 memcpy和memmove函数的实现 /* * 函数名: memcpy * 功 能: 从源source中拷贝n个字节到目标destin中 * 用 法: void *memcpy(void* destin, const void* source, size_t n); * 说 明: 自己实现此库函数 */ #include //#include //getch头文件 #include typedef unsigned char byte;//typedef unsigned int size_t;/* memcpy自定义函数 */ //src要保留 void* memcpy(void* dst,const void* src,size_t count){ char* pbTo =(char*)dst; char* pbFrom =(char*)src; assert(dst!= NULL && src!= NULL);//不能存在空指针 assert(pbTo >= pbFrom+count || pbFrom >= pbTo + count);//防止内存重叠 //assert(pbTo >= pbFrom+count&& pbTo< pbFrom);//assert(pbFrom >= pbTo + count&& pbFrom< pbTo); while(count--> 0) { *pbTo++ = *pbFrom++; } return dst;} /* memmove自定义函数 */ //src可以不保留 char *_memmove(char* dest, const char *src, size_t len){ assert(src!= 0 && src!= 0); if(dest < src) { char *p = dest; for(size_t i = 0;i < len;i++) *p++ = *src++; } else if(dest > src) { char *p = dest + len1; for(size_t i = len-1;i >= 0;i--) *p--= *src--; } return dest;} void* memmove(void* dst,const void* src,size_t count){ char* pbTo =(char*)dst; char* pbFrom =(char*)src; assert(dst!= NULL && src!= NULL);//不能存在空指针 if(dst <= src || pbTo >= pbFrom + count)//没有overlap的情况,直接拷贝 { while(count--> 0) { *pbTo++ = *pbFrom++; } } else { pbTo = pbTo + count-1;//overlap的情况,从高位地址向低位拷贝 pbFrom = pbFrom + count-1; while(count--> 0) { *pbTo--= *pbFrom--; } } return dst;} 1.12 strcat函数实现 功 能: 字符串拼接函数 #include char* MyStrcat(char *strDest,const char *strSrc)//copy strStr to the end of strDest { assert((strDest!=NULL)&&(strSrc!=NULL)); char *strDestCopy=strDest; strDest=strDest+strlen(strDest); while(*strSrc!=' ') { *strDest++=*strSrc++; } return strDestCopy;} int main(){ char string1[100]=”hanli“; char *string2=”yuanlin“; cout< return 0;} 1.13 使用库函数atoi,将char *→int #include int number; char str[10]=”12345“; number=atoi(str);//const char *str cout< return 0;} 1.14 使用库函数itoa,将int→char * #include int number=12345; char str[10]; itoa(number,str,10);//int value,char *str, int radix cout< return 0;} 1.15 不使用库函数,将int→char * #include void MyItoa(int value, char *str){ assert((value>=0)&&(str!=NULL)); char temp[10]; int i=0,j=0; while(value) { temp[i++]=value%10 + '0';//整数加'0'就会隐性转化成char类型的数 value=value/10; } i--; while(i>=0) str[j++] = temp[i--]; str[j]=' ';//以' '结束,勿漏!} int main(){ int number; char str[10]; cout<<”Please input an integer“< cin>>number; MyItoa(number,str); cout< return 0;} 1.16 不使用库函数,将char *→int #include int MyAtoi(const char *str){ int number=0; const char *ptr=str; if((*str=='+')||(*str=='-'))//如果第一位为符号位 str++; while(*str!=' ') { if((*str<'0')||(*str>'9'))//如果不是数字 break; number=number*10+(*str-'0');//数字转换为字符 str++; } if(*ptr=='-')//如果有符号位,且为'-' number=-number; return number;} int main(){ int number; char str[10]=”12345“; number=MyAtoi(str); cout< return 0;} 1.17 求两个整数的最大公约数 #include int GetGcd(unsigned long int a,unsigned long int b){ assert((a>0)&&(b>0)); unsigned long int temp; while(a%b!= 0) { temp=a%b; a=b; b=temp; } return b;} int main(){ unsigned long int x,y; unsigned long int gcd; cout<<”Please input two integers:“< cin>>a>>b; gcd=GetGcd(x,y); cout< return 0;} 1.18 Little_endian or Big_endian //Little_endian: CPU对操作数的存储方式是低字节在低地址;(Intelx86)//Big_endian :CPU对操作数的存储方式是低字节在高地址; #include int CheckCPU(){ union w { int a; char b; }c; c.a=1; return(c.b==1);//Little_endian(==1)} int main(){ int temp; temp=CheckCPU(); if(temp) cout<<”Little_endian“< else cout<<”Big_endian“< return 0;} 字节序(Endian),大端(Big-Endian),小端(Little-Endian) 在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种: big-edian和little-endian。字节顺序 Endian 现代的计算机系统一般采用字节(Octet, 8 bit Byte)作为逻辑寻址单位。当物理单位的长度大于1个字节时,就要区分字节顺序(Byte Order, or Endianness)。常见的字节顺序有两种:Big Endian(High-byte first)和Little Endian(Low-byte first),这就是表2.1中的BE和LE。Intel X86平台采用Little Endian,而PowerPC处理器则采用了Big Endian。举例来说,整型数字$1234ABCD存储的时候就会有两种方式: 大端Big-Endian 低地址存放最高有效位(MSB),既高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。 计算机体系结构中一种描述多字节存储顺序的术语,在这种机制中最高有效位(MSB)存放在最低端的地址上。采用这种机制的处理器有IBM3700系列、PDP- 10、Mortolora微处理器系列和绝大多数的RISC处理器。小端Little-Endian 低地址存放最低有效位(LSB),既低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。 计算机体系结构中一种描述多字节存储顺序的术语,在这种机制中最不重要字节(LSB)存放在最低端的地址上。采用这种机制的处理器有PDP- 11、VAX、Intel系列微处理器和一些网络通信设备。该术语除了描述多字节存储顺序外还常常用来描述一个字节中各个比特的排放次序。 中端 Middle-Endian 除了big-endian和little-endian之外的多字节存储顺序就是middle-endian,比如以4个字节为例:象以3-4-1-2或者2-1-4-3这样的顺序存储的就是middle-endian。这种存储顺序偶尔会在一些小型机体系中的十进制数的压缩格式中出现。 网络字节序 Network Order TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序。 主机序 Host Orader 它遵循Little-Endian规则。所以当两台主机之间要通过TCP/IP协议进行通信的时候就需要调用相应的函数进行主机序(Little-Endian)和网络序(Big-Endian)的转换。 C++怎样判别大端小端 使用宏的方法: const int endian = 1;#define is_bigendian()((*(char*)&endian)== 0)#define is_littlendbian()((*(char*)&endian)== 1)方法二: bool IsLittleEndian(){ union { long val;char Char[sizeof(long)];}u;//1-小端(Intel);0-大端(Motor)u.val = 1; if(u.Char[0] == 1){ //小端 return true;} else if(u.Char[sizeof(long)-1] == 1){ // 大端 return false; } throw(”Unknown!“);} 小知识 Java使用的是Big-Endian。 1.19 sizeof与strlen的区别 (1)sizeof是运算符,strlen是函数 (2)sizeof可以用类型做参数;strlen只能用char *做参数,且必须是以' '结尾(3)sizeof大多在编译时已计算出结果;strlen的结果要在运行的时候才能计算出来 即:sizeof是计算范围有多大;strlen是计算' '之前有多少 1.20 实现String类的BIG_FOUR //构造函数 String::String(const char *str){ if(str==NULL) { m_data=new char[1]; *m_data=' '; } else { int length=strlen(str); m_data=new char[length+1]; strcpy(m_data,str); } } //析构函数 String::~String(void){ dalete [] m_data;} //拷贝构造函数 String::String(const String &other){ int length=strlen(other.m_data); m_data=new char[length+1]; ctrcpy(m_data,other.m_data);} //赋值函数 String &String::operator=(const String&other){ if(this!=&other) { char *temp=new char[strlen(other.m_data)+1]; str(temp,other.m_data); delete [] m_data; m_data=temp; } return *this;} 1.21 struct和union的区别 首先看看union,在c++中,union可能没有多大用处,在c语言中,可能我们要借助其完成很多巧妙的设计,下面是其一个完整的定义: union UTest { double dlOne; char chOne; byte bArray[4];};好了,看到上面的定义,很像struct的定义,但是对于union来说,有几点是值得注意的:不能直接对其进行初始化;某个时候只能使用其中的一个元素;最后一点也是最重要的一点就是内存共享,分配给union内存的Size是其中Size最大的那个元素的Size。说到这里,既然union最重要的是内存共享,那么我们做如下定义:union UTest tEle;然后赋值:tEle.dlOne = 2.0f;现在是dlOne可用,下一步:tEle.chOne = 'A';到这里dlOne失去了其意义,chOne变得可用。 然后,我们再来看看Struct,在struct中每一个元素都是分配内存的,而且都是有单独意义的,也就是说对一个变量的赋值并不影响其它变量的取值。到这里,各位应该明白这两者之间的区别了吧,事实上我个人认为,它们最主要的区别是在内存的分配和使用上。知道这一点,一切也就不难理解了。 最后,在使用union的时候,可能有时候我们会来用其来对字节流进行分解和重组,这样使用的时候一定要注意各种内存对数据的存储,比如Intel是按高高低低的原则存储的,有些则是相反的。因此,这点因该值得注意,否则得到的可能和预期的结果不一样。 举例:使用union结构输出主机字节序 int main(void){ union { short s; char c[sizeof(shor)]; }un; un.s = 0x0102; printf(”%s:“, CPU_VENDOR_OS); if(2==sizeof(short)) { if(1==un.c[0]&& 2==un.c[1]) { printf(”big-endiann“); } else if(2==un.c[0] && 1==un.c[1]) { printf(”little-endiann“); } else { printf(”unknownn“); } } else { printf(”sizeof(short)= %dn“, sizeof(short)); } return 0;} 1.22 char字符变量与int整型数据 字符型变量用来存放字符变量,请注意只能放一个字符,将一个字符常量放在字符变量中,实际上并不是把该字符本身放在内存单元中去,而是将该字符对应的ASCII码放在存储单元中,即在内存中,字符数据是以ASCII码存储,存储形式就与整数的存储形式类似。ASCII码表如下示: ASCII码表 由图可知,字符数据类型只能存储一个字节,即0~255之间的内的整数。有些系统将字符变量中的最高位做为符号位,也就是将字符处理成带符号的整数,即signed char型,它的取值范围为-128~127。如果使用ASCII码为0~127间的字符,由于字节最高位为0,因此用%d输出时是一个正整数,如果使用ASCII码为128~255间的字符,由于字节最高位为1,因此用%d输出时是一个负整数。 char a = 256;int b = a;printf(”%dn“,b);char c = 130;//输出结果为0 printf(”%dn“,c);//输出结果为-126 1.23 字,字节,字符,比特 1bit = 1b = 1比特 = 二进制的一位 1Byte = 1B = 1字节 = 8b 1英文字母占用1个字节 1个汉字占用2个字节 c和c++语言中 char = 8b = 1B int = 32b = 4B float = 32b = 4B double = 64b = 8B 原码转补码:取反再加1 补码转原码:减1再取反 “比特”(Bit) 一个比特只能拥有一个值,不是0就是1,所以如果我给你一个值0,你可以说它就是一个比特,如果我给你两个(00),你就可以说它们是两个比特了。 现在,如果你将八个0或者1组合在一起,例如0110 1010(在中间加一个空格是为了看起来清晰明了),你就可以说它们是八个比特或者说一个字节。好,这就对了,八比特就等于一字节,而不管它们都是全是0、全是1或者是由若干0和若干1混合而成。将这些字节加起来,到了1024个字节的时候,就获得了一个千字(Kbyte)了,为什么是1024而不是1000呢?这是由二进制的进位方式造成的,如果你学过数学,你就会知道上述结果是正确的。 容易混淆的概念 字 在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称字。字通常分为若干个字节(每个字节一般是8位)。在存储器中,通常每个单元存储一个字,因此每个字都是可以寻址的。字的长度用位数来表示。 在计算机的运算器、控制器中,通常都是以字为单位进行传送的。字出现在不同的地址其含义是不相同。例如,送往控制器去的字是指令,而送往运算器去的字就是一个数。 字长 计算机的每个字所包含的位数称为字长。根据计算机的不同,字长有固定的和可变的两种。固定字长,即字长度不论什么情况都是固定不变的;可变字长,则在一定范围内,其长度是可变的。 计算的字长是指它一次可处理的二进制数字的数目。计算机处理数据的速率,自然和它一次能加工的位数以及进行运算的快慢有关。如果一台计算机的字长是另一台计算机的两倍,即使两台计算机的速度相同,在相同的时间内,前者能做的工作是后者的两倍。一般地,大型计算机的字长为32―64位,小型计算机为12―32位,而微型计算机为4一16位。字长是衡量计算机性能的一个重要因素。 字节 字节是指一小组相邻的二进制数码。通常是8位作为一个字节。它是构成信息的一个小单位,并作为一个整体来参加操作,比字小,是构成字的单位。 在微型计算机中,通常用多少字节来表示存储器的存储容量。 字符,字节,字符串 理解编码的关键,是要把字符的概念和字节的概念理解准确。这两个概念容易混淆,我们在此做一下区分: 概念描述 举例 字符 人们使用的记号,抽象意义上的一个符号。'1', '中', 'a', '$', '¥', „„ 字节 计算机中存储数据的单元,一个8位的二进制数,是一个很具体的存储空间。0x01, 0x45, 0xFA, „„ 字符串 在内存中,如果“字符”是以ANSI编码形式存在的,一个字符可能使用一个字节或多个字节来表示,那么我们称这种字符串为 ANSI 字符串或者多字节字符串。如,”中文123“(占7字节)。 字符集和代码页 对于ANSI编码方式,存在不同的字符集(Charset)。同样的字节序列,在不同的字符集下表示的字符不一样。要正确解析一个ANSI字符串,还要选择正确的字符集,否则就可能导致所谓的乱码现象。不同语言版本的操作系统,都有一个默认的字符集。在不指定字符集的情况下,系统会使用此字符集来解析 ANSI 字符串。也就是说,如果我们在简体中文版的Windows下打开了一个由日文操作系统保存的 ANSI 文本文件(仅包含 ANSI 字符串的文本文件),我们看到的将是乱码。但是,如果我们使用Visual Studio之类的带编码选择的文本编辑器打开此文件,并且选择正确的字符集,我们将可以看到它的原貌。注意:简体中文字符集中的繁体字和繁体中文字符集中的繁体字,编码不一定相同(事实证明,似乎是完全不同)。 每个字符集都有一个唯一的编号,称为代码页(Code Page)。简体中文(GB2312)的代码页为936,而系统默认字符集的代码页为0,它表示根据系统的语言设置来选择一个合适的字符集。 UNICODE 字符串在内存中,如果“字符”是以在Unicode中的序号存在的,那么我们称这种字符串为Unicode字符串或者宽字节字符串。在Unicode中,每个字符都占两个字节。如,”中文123“(占10字节)。 Unicode和ANSI的区别就相当于输入法内的“全角”和“半角”的区别。 由于不同 ANSI 编码所规定的标准是不相同的(字符集不同),因此,对于一个给定的多字节字符串,我们必须知道它采用的是哪一种字符集则,才能够知道它包含了哪些“字符”。而对于 UNICODE 字符串来说,不管在什么环境下,它所代表的“字符”内容总是不变的。Unicode 有着统一的标准,它定义了世界上绝大多数的字符的编码,使得拉丁文、数字、简体中文、繁体中文、日文等都能以同一种编码方式保存。 ANSI字符串:(多字节字符) 在内存中,如果“字符”是以 ANSI 编码形式存在的,一个字符可能使用一个字节或多个字节来表示,那么我们称这种字符串为 ANSI 字符串或者多字节字符串。”中文123“(占7字节) UNICODE字符串:(宽字符) 在内存中,如果“字符”是以在 UNICODE 中的序号存在的,那么我们称这种字符串为 UNICODE 字符串或者宽字节字符串。L”中文123"(占10字节) 由于不同 ANSI 编码所规定的标准是不相同的,因此,对于一个给定的多字节字符串,我们必须知道它采用的是哪一种编码规则,才能够知道它包含了哪些“字符”。而对于 UNICODE 字符串来说,不管在什么环境下,它所代表的“字符”内容总是不变的。 1.24 空格、空字符、字符数组结束符的区别 空格符号和空字符是不一样的,在ASCII里面,空格(space)符号的ASCII码是0x20,而空字符是0x0,2个是完全不一样的2个字符呵呵.空字符一般来描述一个字符串的结尾,其实是控制符的一种,但不能理解为没有字符,应该理解为代表什么都没有的字符.好比回车0x0A和换行0x0D虽然不显示,但是也是控制字符的一种.(这些字符以前是用于打印机的,所以很多都没有用了) 字符串的概念:在C语言中,字符串是指由若干个有效字符(其中包括字母、数字、转义字符、等)组成的系列,以' '作为字符串结束标志。' '是一个“空操作”字符,它不做任何操作,只是一个标志。' '的代码值为0,它不计入串的长度。 还有这里需要注意下在接受字符串的时候,如果用scanf来接收的话,字符串中不能含有空格,否则将以空格作为串的结束符。如果你键入得是harry potter 那么实际上scanf只能获取harry这个单词。所以要接收空格的话可以用gets()这个函数。 补充:C语言中字符串结束符' '就是0.》》' '就是8位的00000000,因为字符类型中并没有对应的这个字符,所以这么写。在数值类型里就代表数字0。补充:这个你要去学下基础的,数值类型存储时,最高位决定正负号,其他位都为0可不就是0了么? ' '是转译字符,意思是告诉程序,这不是字符0,我要的是数字0的2进制直接放进来,因为acsii码的0可不是00000000 学前班下学期语言教学总结 转眼间本学期的教学工作已圆满结束,在本学期,从各方面我严格要求自己,使语言教学工作有计划,有组织,有步骤地开展。 一、教育教学情况 在教学工作中,我注意做到以下几点: 1、根据开学前写的语言教学来实施、开展。 2、深入细致的备好每一节课。在备课中,认真研究教材,力求准确把握难重点,并注重参阅各种幼儿用书,制定符合幼儿认知规律的教学方法及教学形式。注意弱化难点强调重点。并不断归纳总结提高教学水平。 3、认真上好每一节课,上课时注重幼儿主动性的发挥,发散幼儿的思维,注重综合能力的培养,有意识的培养幼儿的思维的严谨性及逻辑性,在教学中提高幼儿的思维素质,保证教学质量。 4、注意听取幼儿的意见,及时了解幼儿的学习情况,并有目的的对幼儿进行辅导。 5、坚持听课,注意学习其她老师的教学经验,努力探索适合自己的教学模式。 6、多参与教学赛课,多听取老师给予的意见和建议。 7、注重教育理论的学习,并注意把一些先进的理论应用到教学中,做到学有所用。 8、我习惯上完每一节课后让幼儿评课,看看哪个环节幼儿比较喜欢和容易学到知识。然后再根据班里面的幼儿情况适当做调整,做到幼儿在课堂上愉快轻松的学知识。 9、语言课的教材主要是通过故事体会到其中的做人道理,制造各种童话、梦幻的氛围让幼儿进入佳境,感同身受,体会到主人翁的立场,再说说自己的看法,这样才能有效的让幼儿说出自己的情感和个人体会。 二、达到目标情况。 语言课主要是激发幼儿语言发挥能力,培养语言交往的积极态度和良好的习惯。对幼儿进行正确的、基本的语言教育,学说普通话,扩大词汇量,掌握基本的听话、说话技能,提高语言交往能力,幼儿能够大胆自信跟别人对话。发展幼儿的记忆力、思维能力、想象力和语言的感受能力,为小学语文学习打下良好基础。 1、孩子们聪明伶俐,活泼可爱,每天的好心情大部分源自他们,因为他们语出惊人,能说一些安慰老师的话,能说一些帮助同学的话,老师听了很欣慰。孩子的教育跟家庭有很大的关系,有些家长照顾孩子做到无微不至。而有些家长忙与工作常常忽略孩子的教育,导致孩子的成长和各方面能力都不一样。在课堂上会发现有些孩子主动积极回答老师的问题,而有些孩子却坐在那似乎跟他没有关系一样,这些孩子我试着跟他们谈心,可是我总是处于主动状态,效果不佳,我再次试着从孩子的兴趣找话题,慢慢的我们课后似乎成为朋友,可以无话不说,作为朋友的我们在课堂上孩子也很给面子,通过各种鼓励和表扬孩子也找到属于自己的那份自信了,这个教育方法让我意识到了,教育需要我们更多的耐心,耐心会创造出意想不到的效果。 2、幼儿通过一个学期的语言教学下来,对于语言的组织能力有很大的进步,幼儿在平时的交谈中运用到了老师教过的词语或成语,家长常常跟我开玩笑的说这孩子说话真像一位“小大人”,在家看见爸爸妈妈做得不好的会批评我们,老师说应该这样的,老师的要求孩子铭记在心,不仅严格要求自己还要要求身边的人,这点孩子做得非常好。 3、在口头讲述方面我做了一些比赛项目,幼儿学会了四种讲述方法:看图讲述、情境讲述、生活经验讲述、创造性讲述,幼儿各抒己见,幼儿有自己的主见、看法和观点。 4、在欣赏文学作品方面。孩子能安静地、注意力集中地聆听成人朗诵或朗读,欣赏各种文学作品中的语言韵味,了解作品内容,丰富对语言的认知和体验。 5、早期阅读方面。学会看图书,体会翻阅图书的经验,读懂图书的内容,了解图书画面、文字与口语的对应关系。学习认读汉字,知道文字是一种符号,每一个汉字都有它的读音和具体的意义,了解识字规律,懂得一些书写规则。 孩子们的进步就是我的进步!孩子们我们一起加油。 二实幼2004——2005学 创建语言文字规范化示范校工作总结 按照上级文件精神,我们对照“自治区语言文字规范化示范校的基本条件”的相关要求,对我园语言文字规范化专项工作如实进行了自查,现将我园2004学年创建情况总结如下: 一、精心管理 1、我园党政领导高度重视语言文字规范化工作,将其列入幼儿园精神文明建设和校园文化建设的要求,纳入幼儿园工作计划并加以实施。所有的党政领导坚持讲普通话、用规范字。成立了语言文字规范化工作领导小组,将语言文字规范化工作融入幼儿园日常工作,使之常规化、普及化。 2、语言文字工作网络健全,各部门积极配合高效开展工作。 各线各块各司其职,齐抓共管。园长陈元玲任语言文字工作小组组长,总体规划符合教育发展和社会发展需求的幼儿园语言文字工作;各职能部门老师任专管员,具体负责各项工作的落实;组织开展幼儿园的语言文字规范化活动。 3、幼儿园语言文字工作渗透到幼儿园各个部门各条线路——德育活动、食堂用语用字、教室广播、外出交流等,各条线路积极配合工作。 4、制定学期语言文字工作计划和“推普宣传周”活动计划并付诸实施。 5、幼儿园语言文字工作情况有详细的记录,有关文件、资料齐全并装订成册归档。 6、把语言文字应用能力作为对教师业务考核的一项重要内容,并列为教师聘用、晋级和评优的条件之一。在“教师为主、全员参与;教学为主,全面渗透;幼儿园为主,全方配合”的原则指导下,制定了语言文字规范化工作总体规划,开展科学、生动、有序、有效的“双推”工作。同时,利用我园的优势,充分发挥向城区及偏远地区推普、推规的辐射作用,加强对扶贫幼儿园 “双推”工作的指导。 二、积极宣传 1、“双推”宣传 我们加强了园内外的“双推”宣传工作,幼儿园宣传组派专人负责利用教研信息、工作简报、广播等形式进行“推广普通话,推广规范字”的宣传,增强全园师生的自觉推普、推规的意识。我园还特别重视一年一度的推普周工作,认真组织好幼儿园的外出宣传,制作宣传版面、散发传单;积极搞好校内推普宣传,加大“双推”工作力度。 我们还利用我园先进的信息技术设备,建立“双推”专栏,几乎涵盖了我园“双推”工作的所有内容,使“双推”工作管理实现信息化、公开化,大大提高了工作效率。 2、营造氛围 幼儿园的树干上悬挂了警示标语牌,各教学楼楼梯都设有“请讲普通话,请用规范字”等永久性标语牌,“推普周”时又大量张贴推普海报。同时还指导幼儿用绘画等形式设计、宣传推普内容,将“双推”活动渗透到整个教室的布置当中,并要求幼儿在接受品德教育的同时,行动起来,通过检查身边的牌匾、标语,净化我们的语言空间。 三、教育教学 1、队伍建设 推普、推规工作的落实,关键要有一支素质高、具有奉献精神、敬业精神、开拓精神的工作队伍,教育工作者自身运用普通话、规范字的能力、素质对幼儿的影响是非常深远的。为此,我们逐步探索,不断完善管理,注重“双推”工作队伍建设,形成以领导主管、办公室牵头、语文教研组监督、全员落实的立体化管理模式,围绕“严管理、重考核、创特色”的总体思路,既分工明确,又团结协作。 我园特别注重对全校教职工,尤其是广大教师的普通话素养、运用规范字能力等的培养。我们知道“双推”工作要想取得实效,每一位教职工尤其是教师的影响力非常重要。我园多次召开教职工语言文字规范化专项工作落实大会,组织教职工学习各级语委下发的语言文字规范化标准及《校园语言文字规范化实施细则》,强化教职工说普通话、写规范字的意识;幼儿园曾派出张弘、吴冬磊两位老师参加省级普通话测试员培训。 同时,要求教师率先垂范,在工作、学习、生活中讲标准普通话、用规范化汉字。幼儿园还派专人不定期听课,检查教师讲普通话,用规范字的情况,并将讲标准普通话、写规范汉字作为一年一度教师赛讲和教案评比的主要评分标准。一年来,许多老师在各级各类赛讲中荣获大奖。现在教师们大多能自觉运用标准普通话、规范字进行教学,形成了一支善学习、勤钻研、肯耕耘、能奉献的教职工队伍,为我园“双推”工作和幼儿园各项工作的顺利开展,做出了突出的贡献。 2、教学管理 我园对“语言文字规范提出了明确要求,如:活动中教师和幼儿交流必须使用普通话,语言力求清晰明了。教案书写工整,不写繁体字、异体字、错别字等。语言活动在对幼儿的普通话培训工作中发挥了重要作用。幼儿普通话口语表达能力得到了加强和提高。 3、课外活动 为了全面提高幼儿的普通话水平,我园花大力气改善普通话使用的大环境。每年我们以普通话宣传周为契机,在幼儿园走廊、寝室走廊张贴有关于讲普通话的宣传标语,时时提醒老师、幼儿、家长养成加强说普通话的意识。大力进行普通话的校外推广,力争使普通话由校园辐射到校外,传播到家庭和社会,努力营造普通话使用的大环境,同时也为家庭,为社会的语言文字规范化尽一份力量。 我园对教师普通话进行大范围的提高和培训,最终目的还是为了提高幼儿的普通话水平。为此,我园分学期、分年段开展了与普通话有关的各种活动。如:各年级举行了诗歌朗诵比赛、演讲比赛等等;许多幼儿也因此得到了训练,在市级、区级演讲比赛中获得优异成绩。实践证明,这些活动对幼儿的普通话水平的提高非常有帮助。这也是我们在今后要长期坚持的一项工作。 经过以上种种卓有成效的工作和努力,我园幼儿普通话水平有了很大进步,无论在幼儿园,还是在家庭、社会均能正确、流利地使用普通话。 四、主要成绩 经过长期深入的推规、推普教育和严格的考核管理,讲标准普通话,写 规范化汉字已成为我园师生的自觉行为,普通话已经成为校园语言;幼儿园的公文、印章、标牌、教职工个人名片等使用的汉字均没有不规范字,幼儿园的自编教材、讲义、试卷、教辅读物、网络和教学软件、橱窗、墙报等使用的汉字规范程度很高,教师文字材料以及书写评语使用的汉字符合规范要求,幼儿能用普通互相交流、表达。 同时,通过纠正身边用语、用字等活动,我园师幼不仅能规范用语、用字,也在一系列活动中形成了严谨、文明的自觉行为。受到了家长和社会各界的广泛赞誉。 尽管取得了如此令人振奋的成绩,但我们也深深知道自己工作仍然有待改进,我们将认真总结经验、不断借鉴兄弟幼儿园有效方法,以推动我园语言文字规范化专项工作再上一个新台阶。 二实幼 2005年6月 2016年下期夏层铺学校学前1班语言工作总结 一、达到的教学目的 激发幼儿学习语言的兴趣,培养语言交往的积极态度和良好的习惯。对幼儿 进行正确的、基本的语言教育,学说普通话,扩大词汇量,掌握基本的听话、说话技能,提高语言交往能力。初步培养幼儿对书刊、广播、电影、电视多媒体表现的文学作品产生兴趣,喜欢听故事,能有表情地朗诵诗文和表演故事等,从而获得初步的欣赏能力。发展幼儿的记忆力、思维能力、想象力和语言的感受能力,为小学语文学习打下良好基础。 1、学说普通话方面。幼儿学会辨别方言与普通话发音和声调的不同。丰富幼儿词汇,并写会正确使用。学习日常生活用语,掌握基本句型。 2、在口头讲述方面。学会了四种讲述方法:看图讲述、情境讲述、生活经验讲述、创造性讲述。 3、在欣赏文学作品方面。孩子能安静地、注意力集中地聆听成人朗诵或朗读,欣赏各种文学作品中的语言韵味,了解作品内容,丰富对语言的认知和体验。 4、早期阅读方面。学会看图书,体会翻阅图书的经验,读懂图书的内容,了解图书画面、文字与口语的对应关系。学习认读汉字,知道文字是一种符号,每一个汉字都有它的读音和具体的意义,了解识字规律,懂得一些书写规则。 我今后将更加努力,认真做好本职工作,为了使幼儿的语言发展得更好,我在本学期中通过学讲话,学儿歌,讲故事等各种形式发展幼儿的语言能力,并培养幼儿的发音清楚,正确,学习说普通话。进一步丰富幼儿词汇,发展幼儿思维和口头语言的表达能力。本学期来,我根据《幼儿教育纲要.的教学目标,随幼儿的年龄特点,做了如下几点工作: 一、要求幼儿继续学说普通话,在园活动中和老师或跟小朋友交谈,都强调幼儿用普通话进行交谈,加强注意幼儿交谈时发音和语调的正确。 二、让幼儿能集中注意力,耐心地倾听别人讲话。不打断别人的话。乐意与同伴交流,能大方地在集体面前说话能说学普通话,较连贯地表达自己的意思,在平时老师和几个小朋友谈话时,应该用轮流的方式谈话,不抢着讲。 三、要求幼儿养成先仔细观察图片,后表达讲述的习惯,我逐步引导幼儿理解图片和情景中展示的事件顺序。要求个别幼儿能主动地在集体面前讲述,声 四、我在上课时,采用游戏法的形式幼儿之间发展朗诵诗歌比赛和稞三四个故事,并根据幼儿的表情,发音语调,动作表演让他们学会主人别人的讲述。 本学期来,我以活动游戏的形式来帮助幼儿学习语言,在生动活泼的操作实践中动脑、动嘴、动手发展幼儿的语言表达的能力。 2017年1月9日 文章的语言风格 1、从用词遣词方面去赏析 叠字叠词:不仅传神的描写了事物的特点,而且读起来音韵和谐,节奏鲜明,韵律协调,富有音乐美。 2、人称变化美 采用第一人称,增强了文章的亲切感。语言铿锵有力,富有感染力。语言洒脱,透过语言可见作者洒脱奔放的性格。 3、句式多样美 整句:结构匀称、音韵和谐、气势贯通; 散句:错落有致,自由活泼,富于变化 长短相间,整散结合,错落有致,具有典雅之美。 对偶句:句式整齐,富有节奏感、音乐美 排比句:显得整齐、工稳、典雅 感叹句:情感强烈 疑问句:发人深思 回环复沓句:琅琅上口,音乐美,感染力。复沓对充实内容,突出主题,渲染气氛,加强情感都起了很好的作用。 4、从修辞角度(略) 5、从语言风格 豪放、激越-----阴柔、婉约 清新、明快-----沉郁、含蓄 质朴、通俗-----华丽、典雅 潇洒、旷达-----严谨、工整 舒缓、和平-----急骤、猛烈 活泼、幽默------细腻、隽永 语言风格举隅: 自然淡雅,如朱自清,用工笔写意蕴。 平和冲淡,如周作人,用淡笔写浓情。 苍劲雄健,如鲁迅,刚健之中见哲思。 绚丽浓艳,如徐志摩,用诗意写浓情。 清婉隽永,如冰心,用婉笔抒写柔情。 形象含蓄,如茅盾,用形象表达主旨。 概括本文的语言风格,联系文章主要内容进行赏析 我家的大门口平放着一扇废弃的石墨,夏日黄昏,曾祖母常常坐在上面。(牛汉的《灯笼红》) 参考答案:本文语言本色,平实。文章主要续写了我的童年回忆,塑造了曾祖母这位慈祥温厚的乡村老年妇女的形象,语言与任务形象特征相吻合。 6、从语体的角度鉴赏 如:书面语与口语,普通用语与专业术语等 7、从语气称谓 如:语气委婉谦卑。 8、从情感的角度鉴赏 如《陈情表》融情于事,寓理于情。强烈的感情色彩是本文的一大特色。 一、知识梳理: 文体与语言的关系: 记叙文,散文主要有平实、华丽、清新、自然、明快、典雅等风格; 议论文(杂文、随笔),主要有幽默诙谐、辛辣、冷峻等风格。 小说,语言是散句形式,其语言可以口语化,个性化,诗意化。 不同的文章,语言上各具特色,有的语言明白晓畅,简洁清丽,充满了诗情画意,展现出优美的画面,有的语言通俗易懂,形象生动,字里行间洋溢着作者对崇高人生境界的热烈追求。有的语言凝练含蓄,形象生动,情理和谐,意境深广。 语言风格,是作家通过作品表现出来的创作语言特有的格调。 比如古代的:李白-雄奇飘逸,杜甫-沉郁顿错,白居易-清浅通俗,李贺-幽峭冷艳,李商隐-秾丽朦胧。 现代作家的:鲁迅—冷峻,孙犁—朴实,赵树理—通俗,朱自清—高雅 豪放—苏轼、辛弃疾 婉约—柳永、姜夔、李清照 隽永—李煜、刘禹锡(意味深长,引人入胜) 朴素自然—陶渊明、谢脁、谢灵运 屈原—雄浑悲壮 王安石—雄健高峻 李商隐—委婉含蓄 李清照—婉约缠绵 陆游——慷慨悲凉 杜甫——沉郁顿挫、激愤悲慨 白居易——明快简洁、明白晓畅 李白——清新飘逸、豪迈洒脱 王维——闲适恬淡、清幽空寂 辛弃疾——豪放悲慨 杜牧——俊爽明快 苏轼——豪迈旷达、雄健奔放 诗歌语言风格常用界定词语: 清新 平淡 绚丽 明快 含蓄 自然 常用语言风格术语: 清新淡雅,平淡自然,明快浅显含蓄委婉,简洁洗练,沉郁顿挫,浑厚雄壮,明白如话,朴实无华,华美绚丽,文白夹杂,多用口语,语言风格:清新自然、朴实无华、华美绚丽、明白如话、多用口语、委婉含蓄、雄浑豪放、笔调婉约、简练生动、清新飘逸、沉郁顿挫等 例文:春怨 打起黄莺儿,莫教枝上啼。啼时惊妾梦,不得到辽西。 清新自然,口语化。《长干曲》 唐人崔颢 君家何处住?妾住在横塘。停船暂借问,或恐是同乡 朴素自然,明快清新,有如民歌。 阅读贾岛的《寻隐者不遇》“松下问童子,言师采药去。只在此山中,云深不知处。”回答问题。问:这首诗的语言有何特点? 叙:本诗语言清新自然、朴实无华。 析:这首小诗,无华丽的词藻,以平常用语入诗,不着一色,寓问于答,简炼而自然,寓深沉于平淡之中。 评:全诗景中寓情,表现了诗人对隐者钦慕而不遇的惆怅之情。 二、阅读李白的《横江词(其一)》人道横江好,侬道横江恶。猛风吹倒天门山,白浪高于瓦官阁。回答问题:本诗在语言运用方面有何特色? 叙:这首诗多用口语,自然流畅,朴实无华。 析:一二名句“人道”、“侬道”,纯用口语,生活气息浓烈。三四句用语夸张,想象奇特,焕发着积极浪漫主义的光彩,语言明朗率真。 评:诗人以浪漫主义的彩笔,驰骋丰富奇伟的想象,创造出雄伟壮阔的境界,读来使人精神振奋,胸襟开阔。 (一)清新:其特点是用语新颖,不落俗套。 《绝句》杜甫 两个黄鹂鸣翠柳,一行白鹭上青天。 窗含西岭千秋雪,门泊东吴万里船。 四句写了四种景色,有动景,有静景,有近景,有远景,有实景,有虚景,色彩绚丽,语言清新生动。 一般用在写景诗中,诗风比较亮丽,语言比较通俗,比喻新颖独到,包含着作者的喜悦之情。 大部分山水田园诗人:王维、孟浩然的诗相对比较清新。而陶潜的诗特点不乏清新,但主体风格是平淡。 清新淡雅--像一朵别具风采的小花 (二)平淡:又称质朴,其特点是选用确切的字眼直接叙述,全用白描,不加修饰,显得真切深刻,又平易近人。平淡不等于简陋和寒伧,它是用语上的返璞归真,体现了诗人的真功夫,如陶渊明的诗。 方宅十余亩,草屋八九间。榆柳荫后檐,桃李罗堂前。 暧暧远人村,依依墟里烟。狗吠深巷中,鸡鸣桑树颠。--陶渊明《归园田居》 平淡质朴--像一条静静流淌的小溪 (三)绚丽 其特点是有富丽的词藻、绚烂的色彩,奇幻的情思。如李商隐的诗。 沧海月明珠有泪,蓝田日暖玉生烟。--李商隐《锦瑟》 华美绚丽--像一朵富丽堂皇的牡丹 明净绚丽--像一株静静开放的月季 (四)明快 其特点是直接的,明朗的,爽快的,泼辣的,往往是斩钉截铁,一语破的。 江楼月 白居易 嘉陵江曲曲江池,明月虽同人别离。 一宵光景潜相忆,两地阴晴远不知。 谁料江边怀我夜,正当池畔望君时。 今朝共语方同悔,不解多情先寄诗。 明白晓畅--像一杯透明洁净的矿泉水 白云泉 白居易 天平山上白云泉,云自无心水自闲。何必奔冲山下去,更添波浪向人间! 这首七绝犹如一幅线条明快简洁的淡墨山水图。诗人采取象征手法,写景寓志,以云水的逍遥自由比喻恬淡的胸怀与闲适的心情;用泉水激起的自然波浪象征社会风浪,言浅旨远,意在象外,寄托深厚,理趣盎然。 明快简洁--像一幅线条简洁的淡墨山水 (五)含蓄,其特点是意在言外,常常不是直接叙述,而是曲曲折折的倾诉,言在此而意在彼,或引而不发,或欲说还休,让读者去体味。如杜牧的绝句,李清照后期的词。如梦令(李清照) 昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。 “绿”、“红”分别借代绿叶和红花;“肥”和“瘦”分别形容叶的茂盛和花的凋零。词人惜花,为花悲喜,为花醒醉,为花憎风恨雨,实际是含蓄地表达了青春韶光短暂、好花不常的惋惜之情。 夜雨寄北 李商隐 君问归期未有期,巴山夜雨涨秋池。何当共剪西窗烛,却话巴山夜雨时。 委婉含蓄--像一位怀春的名门淑女 (六)自然,即不加雕饰的率真朴素的语言,多用口语,较少炼字,读来平白如话,自然生动,韵味无穷。 如李白诗歌的语言,“青天有月来几时?我今停杯一问之。”(《把酒问月》)“小时不识月。呼作白玉盘。”(《古朗月行》)都是脍炙人口的名句。 朴素自然--像一池雨后出水的芙蓉 能用来答语言风格的词一般有: 清新自然、朴实无华、华美绚丽、明白晓畅、多用口语、简练生动、婉约缠绵、委婉含蓄、雄浑豪放、慷慨悲凉 现代文举例: 我的母亲 胡适 我小时候身体弱,不能跟着野蛮的孩子们一块儿玩。我母亲也不准我和他们乱跑乱跳。小时不曾养成活泼游戏的习惯,无论在什么地方,我总是文绉绉的。所以家乡老辈都说我“像个先生样子”,遂叫我做“穈先生”。这个绰号叫出去之后,人都知道三先生的小儿子叫做穈先生了。既有“先生”之名,我不能不装出点“先生”样子,更不能跟着顽童们“野”了。有一天,我在我家八字门口和一班孩子“掷铜钱”,一位老辈走过,见了我,笑道:“穈先生也掷铜钱吗?”我听了羞愧的面红耳热,觉得大失了“先生”的身份! 语言特点:自然、质朴 再塑生命 海伦·凯勒 朋友,你可曾在茫茫大雾中航行过?在雾中神情紧张地驾驶着一条大船,小心翼翼地缓慢地向对岸驶去,心儿怦怦直跳,惟恐意外发生。在未受教育之前,我正像大雾中的航船,既没有指南针也没有探测仪,无从知道海港已经临近。我心里无声地呼喊着:“光明!光明!快给我光明!”恰恰正在此时,爱的光明照在了我的身上。 语言特点:饱含感情 雷电颂 啊,电!你这宇宙中最犀利的剑呀!我的长剑是被人拔去了,但是你,你能拔去我有形的长剑,你不能拔去我无形的长剑呀。电,你这宇宙中的剑,也正是,我心中的剑。你劈吧,劈吧,劈吧!把这比铁还坚固的黑暗,劈开,劈开,劈开!虽然你劈它如同劈水一样,你抽掉了,它又合拢了来,但至少你能使那光明得到暂时的一瞬的显现,哦,那多么灿烂的,多么眩目的光明呀! 语言特点:想象奇特,富有浪漫主义色彩;运用象征,含蓄深沉,凝练;感情充沛,富有气势 端午的鸭蛋 汪曾祺 双黄鸭蛋味道其实无特别处。还不就是个鸭蛋! 高邮咸蛋的特点是质细而油多。蛋白柔嫩,不似别处的发干、发粉,入口如嚼石灰。油多尤为别处所不及。鸭蛋的吃法,如袁子才所说,带壳切开,是一种,那是席间待客的办法。平常食用,一般都是敲破“空头”用筷子挖着吃。筷子头一扎下去,吱——红油就冒出来了。高邮咸蛋的黄是通红的。苏北有一道名菜,叫做“朱砂豆腐”,就是用高邮鸭蛋黄炒的豆腐。我在北京吃的咸鸭蛋,蛋黄是浅黄色的,这叫什么咸鸭蛋呢! 特点:熔书面语和口语为一体,将古汉语和现代汉语完美结合,在平实自然中流露出典雅雍容。 《雪》:含蓄,深刻,凝练 《春》:清新、朴实,隽永(耐人寻味,意味深长),善于提炼通俗易懂、生动形象的口语。 《济南的冬天》:遣词造句精妙,用词讲究,语言生动、传神,恰当。 《夏感》 夏天的色彩是金黄的。按绘画的观点,这大约有其中的道理。春之色为冷的绿,如碧波,如嫩竹,贮满希望之情;秋之色为热的赤,如夕阳,如红叶,标志着事物的终极。夏正当春华秋实之间,自然应了这中性的黄色——收获之已有而希望还未尽,正是一个承前启后,生命交替的旺季。 ——描写细致生动,文白相见 金色主宰了世界上的一切,热风浮动着,飘过田野,吹送着已熟透了的麦子的香味。那春天的灵秀之气经过半年的积蓄,这时已酿成一种磅礴之势,在田野上滚动,在天地间升腾。夏天到了。 ——豪放,气势磅礴第二篇:语言总结
第三篇:语言总结
第四篇:1班语言总结
第五篇:语言风格总结