1 / 51

第二讲 C 语言概述

第二讲 C 语言概述. 主讲:周春容. 2.0 预备知识 2.1 常量与变量 2.2 数据类型 2.3 常用输出与输入函数 练习与实践. 2.0 预备知识 计算机中数的表示及进制转换 数码、基与权 数码:表示数的符号 基:数码的个数 权:每一位所具有的值 数制. 十六进制数. 数制. 十进制数. 二进制数. 八进制数. 数码. 0~9. 0~1. 0~7. 0~9,A~F,a~f. 基. 10. 2. 8. 16. 权. … ,10²,10¹ 10 º. … , 2², 2¹, 2 º.

Download Presentation

第二讲 C 语言概述

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第二讲 C语言概述 主讲:周春容

  2. 2.0预备知识 • 2.1常量与变量 • 2.2数据类型 • 2.3常用输出与输入函数 • 练习与实践

  3. 2.0预备知识 计算机中数的表示及进制转换 数码、基与权 数码:表示数的符号 基:数码的个数 权:每一位所具有的值 数制

  4. 十六进制数 数制 十进制数 二进制数 八进制数 数码 0~9 0~1 0~7 0~9,A~F,a~f 基 10 2 8 16 权 …,10²,10¹10º …,2², 2¹, 2º … ,8², 8¹, 8º …,16², 16¹, 16º 表示 特点 逢十进一 逢二进一 逢八进一 逢十六进一 十六进制:81AE=816³+116² +1016¹+1416º 八进制:4275=48³+28² +78¹+58º 十进制:4956= 410³+910² +510¹+610º 二进制:1011=12³+02² +12¹+12º

  5. 各种进制之间的转换 • 二进制、八进制、十六进制转换成十进制 • 方法:按权相加

  6. 例 把十进制数159转换成八进制数 余 7 余 3 余 2 例 把十进制数59转换成二进制数 0 2 8 59 159 1 余 2 2 2 8 2 8 2 7 19 3 14 29 2 1 (159)10=(237)8 余 1 例 把十进制数459转换成十六进制数 余 0 2 3 7 1 C B 余 1 459 16 余11 余 1 余12 16 28 余 0 1 16 1 余 1 1 1 1 0 1 1 0 (59)10=(111011)2 (459)10=(1CB)16 • 各种进制之间的转换(整数) • 二进制、八进制、十六进制转换成十进制 • 方法:按权相加 • 十进制转换成二进制、八进制、十六进制 • 原理: • 方法:连续除以基,从低到高记录余数,直至商为0

  7. 二进制与八进制之间的转换 • 二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制 • 八进制转换成二进制:用3位二进制数代替每一位八进制数 000 ~ 0 001 ~ 1 010 ~ 2 011 ~ 3 100 ~ 4 101 ~ 5 110 ~ 6 111 ~ 7 例 (1101001)2=(001,101,001)2=(151)8 例 (246)8=(010,100,110)2=(10100110)2

  8. 二进制与十六进制之间的转换 • 二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制 • 十六进制转换成二进制:用4位二进制数代替每一位十六进制数 0000 ~ 0 0001 ~ 1 0010 ~ 2 0011 ~ 3 0100 ~ 4 0101 ~ 5 0110 ~ 6 0111 ~ 7 1000 ~ 8 1001 ~ 9 1010 ~ A 1011 ~ B 1100 ~ C 1101 ~ D 1110 ~ E 1111 ~ F 例 (11010101111101)2=(0011,0101,0111,1101)2=(357D)16 例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2

  9. 0 1 2 3 4 5 7 6 7 6 5 4 3 2 1 0 7 6 8 5 9 4 10 3 ……... 2 1 • 字节和位 • 内存以字节为单元组成 • 每个字节有一个地址 • 一个字节一般由8个二进制位组成 • 每个二进位的值是0或1

  10. 12 1 11 2 10 9 3 8 4 5 7 6 • 数值的表示方法——原码、反码和补码 • 原码:最高位为符号位,其余各位为数值本身的绝对值 • 反码: • 正数:反码与原码相同 • 负数:符号位为1,其余位对原码取反 • 补码: • 正数:原码、反码、补码相同 • 负数:最高位为1,其余位为原码取反,再对整个数加1 9-5=4 9+7=16=(14)12

  11. 为什么用补码表示? 25-19=25+(-19) (25)10=(00011001)2 (-19) 10 =(11101101) 2 00011001 + 11101101 ----------------- 100000110

  12. 为什么用补码表示? 19 - 25 = 19 +(- 25) (19)10=(00010011)2 (-25) 10 =(11100111) 2 00010011 + 11100111 ----------------- 11111010 -------(-6)? 引入补码之后符号位也进入了运算,不用再单独处理符号位

  13. (用一字节表示数) 原码 反码 补码 +7 00000111 00000111 00000111 -7 10000111 11111000 11111001 +0 00000000 00000000 00000000 -0 10000000 11111111 00000000 01111111~ 10000000 (-128~+127) 01111111~ 10000000 (-127~+127) 01111111~ 11111111 (-127~+127) 数的范围 • 负数补码转换成十进制数:最高位不动,其余位取反加1 例 补码:11111001 取反:10000110 加1: 10000111=-7

  14. 2.1常量与变量 标识符 定义:用来标识变量、常量、函数等的字符序列 组成: 只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线 大小写敏感 不能使用关键字 长度:最长32个字符 命名原则: 见名知意 不宜混淆 如l与I, o与0 • 例:判断下列标识符号合法性 • sum Sum M.D.John day Date 3days • student_name #33 lotus_1_2_3 • char a>b _above $123 M.D.John 3days #33 char a>b $123

  15. 常量 • 定义:程序运行时其值不能改变的量(即常数) • 分类: • 符号常量:用标识符代表常量 • 定义格式: #define符号常量 常量 • 一般用大写字母 • 是宏定义预处理命令,不是C语句 • 直接常量: • 整型常量 • 实型常量 • 字符常量 • 字符串常量 例 符号常量举例 #define PRICE 30 main() { int num,total; num=10; total=num*PRICE; printf("total=%d",total); } 如 #define PRICE 30 运行结果:total=300

  16. 变量------其值可以改变的量 概念: 每个变量有一个名字:用标识符表示。 每个变量有一个存储空间(存储单元),该单元中的状态所表示的数为此时变量的值。 • 变量的使用:先定义,后使用 • 变量定义的一般格式: 数据类型 变量1[,变量2,…,变量n]; 如:int a,b,c; float x,y; 合法标识符 • 变量初始化:定义时可以赋初值

  17. int a=1, b=-3,c; 地址 地址 地址 …... 1 a 2字节 b -3 2字节  c 2字节 …... 随机数 内存 编译程序根据变量定义为其 分配指定字节的内存单元

  18. main() { int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%f\n”,data); } 变量定义 可执行语句 main() { int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%f\n”,data); } • 变量定义位置:一般放在函数开头 例: int a=2,b,c=4; float data=3.67; char ch=‘A’; int x=1,y=1,z=1; int x=y=z=1; 例1 int student; stadent=19; //Undefined symbol ‘statent’ in function main 例2 float a,b,c; c=a%b; //Illegal use of floating point in function main

  19. 每一个变量都有一个类型,表明了为它的存储属性:每一个变量都有一个类型,表明了为它的存储属性: 分配空间的大小; 表示的数的范围; 所能进行的运算。

  20. 例2.1 main() { float length,area,radius; /*length为周长,area为面积,radius半径*/ printf("\nEnter a radius: "); scanf("%f",&radius); length=2*PI*radius; /*计算圆的周长*/ area=PI*radius*radius; /*计算圆的面积*/ printf("\n length is : %f ",length); printf("\n area is : %f ",area); } 程序的运行情况为: Enter a radius: 2.8 ↙ length is : 17.584000 area is : 24.617599

  21. 整 型 基本类型 单精度型float 实型 双精度型double 字符类型char 数组 短整型short 结构体struct C 数 据 类 型 整型int 共用体union 构造类型 长整型long 枚举类型enum 指针类型 空类型void 定义类型typedef • 2.2数据类型 • 数据类型总表 数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作

  22. 2.2.1整数类型 整数类型的标识符是int。整型数据根据其占用的内存字节数不同,可加限定词: short(短整型),int ,long(长整型), short≤int≤long 可用sizeof(类型标识符)测量 unsigned short (无符号短整型), unsigned int (无符号整型), unsigned long (无符号长整型), 其中short和long的引入是为满足实际要求的不同长度的整数,而经unsigned限定词限定的整数总是正的。

  23. int型: 最大:32767 01 11 11 11 11 11 11 11 10 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11 最小:-32768 unsigned int型: 最大:65535 00 00 00 00 00 00 00 00 最小:0

  24. 问题: 0123 = ( )10 0x123 = ( )10 0Xff = ( )10 83 291 255 • 整型常量(整常数) • 三种形式: • 十进制整数:由数字0~9和正负号表示.如 123,-456,0 • 八进制整数:由数字0开头,后跟数字0~7表示.如0123,011 • 十六进制整数:由0x开头,后跟0~9,a~f,A~F表示. 如0x123,0Xff 问题: 0123 = ( )10 0x123 = ( )10 0Xff = ( )10 例 30000 为int型 65536 为long int 型 例 12 与 12L

  25. 整型常量的类型 • 根据其值所在范围确定其数据类型: 一个整数若值在-32768~32767内,则默认为它是int型;一个整数若值在-2147483648~2147483647之间,可使用长整型常量表示。 • 在整常量后加字母l或L,认为它是long int型常量 • 无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。 例如: 358u,0x38Au,235Lu 均为无符号数;0XA5Lu表示十六进制无符号长整数A5,其十进制为165。 一个非负的整数,只要它的值不超过相应变量的取值范围,就可以赋给unsigned型变量。例如,可以将6000赋给一个 unsigned int型变量,但却不可以将66000赋给一个unsigned int型变量(将会出现溢出错误)

  26. 整型变量 定义方法: int a1,a2; unsigned int b1,b2; 一个整型常量只可以赋给能容纳下其值的整型变量。 如a1,a2的取值范围为-32768----32767 b1,b2的取值范围为 0----65535 如果:a1=65535; 或者: b1=-1; 在内存中数值将不是所赋的数值。

  27. 2.2.2 实数类型 实数类型分为单精度(float)和双精度(double)类 型,二者的区别在于所占存储位的多少,从而决定了其取值范围。 通常以32位(bits)来存储单精度实数型数据,以64位来存储双精度实型数据。

  28. 实型常量(实数或浮点数) • 表示形式: • 十进制数形式:由数字和小数点组成,小数点的左右至少一边要有数字。 (必须有小数点) 如0.123, .123, 123.0, 0.0, 123. • 指数形式:由尾数、e或E和指数部分组成,E的两边都至少要有一位数且E的右边只允许是整数形式(e或E之前必须有数字;指数必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 • 实型常量的类型 • 默认double型 • 在实型常量后加字母f或F,认为它是float 型

  29. 实型变量 • 实型变量的说明形式如下: • float 变量名1[,变量名2,……变量名n]; • double 变量名1[,变量名2,……变量名n]; • float:占4字节,提供7位有效数字 • double:占8字节,提供15~16位有效数字 float a,b,c; double x,y; 例 float a; a=111111.111; /* a=111111.1*/ double b; b=111111.111; /* b=111111.111*/

  30. 【例2.2】实型变量的有效数字。 main( ) { double a; a=6.152367864359046178294901; printf("\n%25.20f",a); } 输出结果为: 6.15236786435904648000 在这个例子中,a被赋值了一个有效位数为25位的数字。但由于a是double类型的,所以a只能接收15~16位有效数字。在printf语句中,我们使用了%20.18f这样的格式符号,这指示printf语句在输出a时总长度应为25位,小数点位数占20位。输出的结果显然显示了25位数,但只有6.152367864359046共16位有效数字被正确显示出来,后面的数字是一些无效的数值。这就表明double型的数据只接收15~16位有效数字。

  31. 2.2.3 字符类型 整型、实型都是数值型,是大家比较熟悉的。除数值型外,还有一类数据是计算机经常处理的数据,这就是字符型。 • 字符型数据包含的是一个字符集。一般用的是ASCII码字符集见附录A(p249) 。 • 字符集中的每一个字符都有一个序号,称为ASCII码。 ASCII码大的字符比ASCII码小的字符值大。 • 字符类型的标识符是char。

  32. 转义字符及其含义: 转义字符 含义 转义字符 含义 \t \n 换行 水平制表 垂直制表 \b 退格 \v \r 回车 \f 换页 \a 响铃 \\ 反斜线 \‘ 单引号 \“ 双引号 < 2位16进制数代表的字符 \ddd 3位8进制数代表的字符 \xhh • 字符常量 • 定义:用单引号括起来的单个普通字符或转义字符. 如 ‘a’ ‘A’ ‘?’ ‘\n’ ‘\101’ • 字符常量的值:该字符的ASCII码值 • 转义字符:反斜线后面跟一个字符或一个代码值表示 如 ‘A’——65, ‘a’——97, ‘0’——48 , ‘\n’——10 例 转义字符举例(ch2_001.c,ch2_004.c) main() { printf("\101 \x42 C\n"); printf("I say:\"How are you?\"\n"); printf("\\C Program\\\n"); printf("Turbo \'C\'"); } 例: ‘A’-------’\101’-------’\x41’--------65 如 ‘\101’ -----------‘A’ ‘\012’ -----------’\n’ ‘\376’ -----------’’ ‘\x61’ -----------’a’ ‘\60’ -----------’0’ ‘\483’ ----------() 运行结果:(屏幕显示) A B C Isay:”How are you?” \C Program\ Turbo ‘C’ 例 main() { printf(“Y\b=\n”); } 运行结果: 屏幕显示:= 打印机输出:¥

  33. 字符型变量 • char 变量名1,[变量名2,......变量名n]; 如:char c1,c2 ; • 一个字符型变量的值只能是一个单个字符;在内存中占一个字节; • 字符变量存放的是字符的ASCII码; • char与int数据间可进行算术运算; 由于字符型变量在内存中是以字符的ASCII码—一个无符号整数的形式来存放的,所以在一定范围内,字符型数据和整型数据是可以互相通用的,二者的区别仅在于:字符型常量占一个字节,而整型常量占两个字节。 例 a=‘D’; /* a=68; */ x=‘A’+5; /* x=65+5; */ s=‘!’+‘G’ /* s=33+71; */

  34. 【例2.3】将小写字母转化为大写字母。 main( ) {char c1,c2; c1='x';c2='y'; c1=c132; c2=c232; printf("\n%c,%c",x1,x2); } 程序的输出结果是:X,Y 这个例子是将小写字母转化为大写字母的程序。我们在对ASCII码字符表进行观察后会发现,大小写对应的字母,它们之间的ASCII码正好相差32。利用这个特性和上一个特性,我们可以编写出非常简单的大小写字母转换程序。

  35. h e l l o \0 例 字符串“hello”在内存中 例 空串 “” \0 例 ‘a’ “a” a a \0 例: char ch; ch=‘A’; • 字符串常量 • 定义:用双引号(“”)括起来的字符序列 • 存储:每个字符串尾自动加一个 ‘\0’ 作为字符串结束标志 • 字符常量与字符串常量不同 例: char ch; ch=“A”; 没有字符串变量,用字符数组存放

  36. 类型 符号 关键字 数的表示范围 所占位数 (signed)int 16 -32768~32767 16 (signed)short -32768~32767 32 (signed)long -2147483648~2147483647 unsignedint 16 0~65535 unsignedshort 16 0~65535 unsignedlong 32 0~4294967295 32 float 有 3.4e-38~3.4e38 64 有 double 1.7e-308~1.7e308 8 有 char -128~127 无 8 0~255 unsigned char • 基本数据类型 有 整型 无 实型 字符型 说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:

  37. 宏定义 变量定义 输出结果 例 /*ch2_003.c*/ #define PRICE 12.5 main() { int num=3; float total; char ch1,ch2=‘D’; total=num*PRICE; ch1=ch2-‘A’+‘a’; printf(“total=%f,ch1=%c\n”,total,ch1); } 运行结果: total=37.500000, ch1=d

  38. 2.3常用输入与输出函数 C语言无I/O语句,I/O操作由函数实现 #include <stdio.h>

  39. 2.3.1格式输出函数 • 格式:printf(“格式控制串”,输出表列); • 功能:按指定格式向显示器输出数据 • 返值:正常,返回输出字节数;出错,返回EOF(-1) • 输出表列:要输出的数据,通常是表达式,可以没有,多个时以“,”分隔) • 格式控制串:包含两种信息: • 格式说明: %[修饰符]格式字符---用于指定所输出的表达事的格式; • 普通字符或转义序列:原样输出; • 格式字符

  40. 格式字符: 十进制整数 d,i 十六进制无符号整数 x,X 11 11 11 11 11 11 11 11 八进制无符号整数 o 不带符号十进制整数 u 单一字符 c 字符串 s 指数形式浮点小数 e,E 小数形式浮点小数 f e和f中较短一种 g 百分号本身 %% 65535 int a=567;printf ( “%d”,a); 567 int a=255;printf(“%x”,a); ff int a=65;printf(“%o”,a); 101 int a=567;printf(“%u”,a); 567 • 例main() • { unsigned int u=65535; • printf(”u=%d\n",u); • } • 输出结果:u=-1 char a=65;printf(“%c”,a); A 例 int a=3,b=4; printf(“%d %d\n”,a,b); printf(“a=%d , b=%d\n”,a,b); 例 int a=3,b=4; printf(“%d %d\n”,a,b); printf(“a=%d , b=%d\n”,a,b); 输出结果: 3 4 a=3, b=4 ABC printf(“%s”,“ABC”); float a=567.789;printf(“%e”,a); 5.677890e+02 567.789000 float a=567.789;printf(“%f”,a); float a=567.789;printf(“%g”,a); 567.789 printf(“%%”); % • 说明 • 格式字符要用小写 • 格式字符与输出项个数应相同,按先后顺序一一对应 • 输出转换:格式字符与输出项类型不一致,自动按指定格式输出

  41. 附加格式说明符(修饰符) 修饰符 功 能 m 输出数据域宽,数据长度<m,左补空格;否则按实际输出 对实数,指定小数点后位数(四舍五入) 对字符串,指定实际输出位数 .n 输出数据在域内左对齐(缺省右对齐) - 指定在有符号数的正数前显示正号(+) + 输出数值时指定左面不使用的空位置自动填0 0 # 在八进制和十六进制数前显示前导0,0x 在d,o,x,u前,指定输出精度为long型 在e,f,g前,指定输出精度为double型 l

  42. 例2.4 main() { int n1,n2; float f1,f2,sum; char ch; n1=65; n2= 3; f1=234.5; f2=18.75; sum=f1+f2; ch='A'; printf("%d ,%c ,%d,%o ,%f ,%c, %d ",n1,n1,n2,n2,sum,ch,ch); printf("%s","Very good!"); } 运行结果: 65, A ,–3 ,177775, 253.250000 ,A ,65 ,Very good! 运行结果:Hello,world! Hello,world! Hello Hello Hel 例 static char a[]=“Hello,world!” printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a);

  43. 例 - 例 int a=1234; float f=123.456; static char c[]=“Hello,world!”; printf(“%8d,%-8d\n”,a,a); printf(“%10.2f,%-10.1f\n”,f,f); printf(“%10.5s,%-10.3s\n”,c,c); 运行结果:1234,1234 123.46,123.5 Hello,Hel

  44. 例 0 、+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 例 int a=1234; float f=123.456; printf(“%08d\n”,a); printf(“%010.2f\n”,f); printf(“%0+8d\n”,a); printf(“0+10.2f\n”,f); //00001234 //0000123.46 //000+1234 //000+123.56 例 # 例 int a=123; printf(“%o,%#o,%X,%#X\n”,a,a,a,a); //173,0173,7B,0X7B 例 l 例 long a=65536; printf(“%d,%8ld\n”,a, a); //0, 65536

  45. 2.3.2 格式输入函数 • 格式: scanf(“格式控制串”,地址表) • 功能:按指定格式从键盘读入数据,存入地址表指定的 • 存储单元中,并按回车键结束 • 返值:正常,返回输入数据个数 • 地址表:变量的地址,常用取地址运算符& • 格式字符:d,i,o,x,u,c,s,f,e 例 scanf(“%d”,&a); 输入:10  则 a=10 例 scanf(“%x”,&a); 输入:11  则 a=17

  46. 附加格式说明符(修饰符) 修饰符 功 能 h 用于d,o,x前,指定输入为short型整数 用于d,o,x前,指定输入为long型整数 l 用于e,f前,指定输入为double型实数 m 指定输入数据宽度,遇空格或不可转换字符则结束 抑制符,指定输入项读入后不赋给变量 * 例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 输入 19991015  则1999yy, 10 mm, 15 dd • 例 scanf(“%3d%*4d%f”,&k,&f); • 输入 12345678765.43 • 则123k, 8765.43f 例 scanf(“%3c%2c”,&c1,&c2); 输入 abcde  则‘a’c1, ‘d’ c2 • 例 scanf(“%2d%*3d%2d”,&a,&b); • 输入 1234567 • 则12a, 67b

  47. 输入分隔符的指定 • 一般以空格、TAB或回车键作为分隔符 • 其它字符做分隔符:格式串中两个格式符间字符 例 scanf(“%d%o%x”,&a,&b,&c); printf(“a=%d,b=%d,c=%d\n”,a,b,c); 输入 123 123 123 输出 a=123,b=83,c=291 • 例 scanf(“%d:%d:%d”,&h,&m,&s); • 输入 12:30:45 • 则12 h, 30 m, 45 s • 例 scanf(“%d,%d”,&a,&b) • 输入 3,4  • 则3a, 4 b • 例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); • 输入 a=12,b=24,c=36 

  48. 说明:用“%c”格式符时,空格和转义字符作为有效字符输入说明:用“%c”格式符时,空格和转义字符作为有效字符输入 • 输入数据时,遇以下情况认为该数据结束: • 遇空格、TAB、或回车 • 遇宽度结束 • 遇非法输入 如 scanf(“%c%c%c”,&c1,&c2,&c3); 若输入abc 则ac1, c2, b c3 例 int x; char ch; scanf(“%d”,&x); scanf(“ %c”,&ch); 或 scanf(“%*c%c”,&ch); 如 scanf(“%d%c%f”,&a,&b,&c); 若输入1234a123o.26  则 1234 a, ‘a’ b, 123 c • 输入函数留下的“垃圾”: 例 int x; char ch; scanf(“%d”,&x); ch=getchar(); printf(“x=%d,ch=%d\n”,x,ch); 执行:123 输出:x=123,ch=10 解决方法: (1)用getchar()清除 (2)用函数fflush(stdin)清除全部剩余内容 (3) 用格式串中空格或“%*c”来“吃掉” 例 int x; char ch; scanf(“%d”,&x); scanf(“%c”,&ch); printf(“x=%d,ch=%d\n”,x,ch); 执行:123 输出:x=123,ch=10

  49. 2.3.3 字符输出函数------putchar() • 格式: putchar( c ) • 参数: c为字符常量、变量或表达式 • 功能:把字符c输出到显示器上 • 返值:正常,为显示的代码值;出错,为EOF(-1) #include <stdio.h> main() { int c; char a; c=65; a='B'; putchar(c); putchar('\n'); putchar(a); } 运行结果:A B

  50. 2.3.4 字符输入函数------getchar() • 格式:getchar( ) • 功能:从键盘读一字符 • 返值:正常,返回读取的代码值;出错,返回EOF(-1) #include <stdio.h> main() { int c; printf("Enter a character:"); c=getchar(); printf("%c--->hex%x\n",c,c); } 例 运行结果: Enter a character:A A--->hex41

More Related