文档库 最新最全的文档下载
当前位置:文档库 › C语言数据类型及输入输出函数

C语言数据类型及输入输出函数

C语言数据类型及输入输出函数
C语言数据类型及输入输出函数

实验二C语言数据类型及输入输出函数

一、实验目的

1、熟悉C语言编译环境Turbo C 2.0;

2、熟悉C语言的基本数据类型;

3、熟悉C语言的基本输入及输出函数;

4、使用TC编写简单的程序。

二、预习并思考

1.C语言所包括的基本数据类型

1)整型

整型数据可以有哪几种表示形式?(十进制,八进制,十六进制)

基本整型,短整型,长整型,字符型

两种表现形式

1在定义时使用:

比如十进制表示: int a=12;

八进制表示: int a=012;

十六进制表示:int a=0x12;

2

在输出时使用:

Printf(“%d”,a);/*十进制数*/

Printf(“%o”,a);/*八进制数*/

Printf(“%h”,a);/*十六进制数*/

这几种类型的数据应该如何定义?怎么区分?

整型 int “%d”

长整型 long int “ %ld”

字符型 char “%c”

整型数据的范围是多少?超出以后会如何?

整型数据范围:-32768~32767

超出后,依次从最小开始计数

比如32768 显示出来是-32768 2)实型

实型数据分为单精度float和双精度double两种,它们存储时分别占据多大的内存空间?

Float -2^32~2^31-1,占四个字节

Double -2^64~2^63-1,占八个字节

3)字符型

一个字符的数据范围有多大?

0~256

如何理解字符数据和整型数据之间的关系?字符和字符串之间的关系是什么,存储时有何区别?

字符人们使用的记号,抽象意义上的一个符号。 '1', '中', 'a', '$', '¥', ……

字符串在内存中,如果“字符”是以 ANSI 编码形式存在的,一个字符可能使用一个字节或多个字节来表

示,那么我们称这种字符串为 ANSI 字符串或者多字节字符串。

三、实验内容

阅读并调试下列程序(如程序中有错误,将错误改正过来,修改过的地方用红色字体标示,并将运行结果截图粘贴在程序下方)

1.putchar()函数的使用方法

#include

main()

{ int c;

char a;

c=65; a='B';

putchar(c); putchar('\n'); putchar(a);

}

2.getchar()函数的使用方法

#include

main()

{ int c;

printf("Enter a character:");

c=getchar();

printf("%c--->hex%x\n",c,c);

}

3.printf()函数的使用方法

main()

{

int a=1234;

int b=255;

float f=123.456;

char ch=‘a’;

printf(“%8d,%2d\n”,a,a);

printf(“%d\t%o\t%x\n”,b,b,b);

printf(“%f,%8f,%8.1f,%.2f,%.2e\n”,f,f,f,f,f);

printf(“%3c\n”,ch);

}

4.scanf()函数的使用方法

main()

{

int x;

char ch;

float f; float a,b,c,s,area;

/*这里可以用printf()输出一个提示输入的语句,指明用户应当输入什么数据*/

scanf(“%d”,&x);

/*这里可以用printf()输出一个提示输入的语句*/

scanf(“%c”,&ch);

/*这里可以用printf()输出一个提示输入的语句*/

scanf("%f,%f,%f",&a,&b,&c);

s=1.0/2*(a+b+c);

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n",a,b,c,s);

printf("area=%7.2f\n",area);

printf("x=%d,ch=%d\n",x,ch);

}

5.调试程序

#include

main()

{

int a;

float b;

char c;

a=213;

c=’a’;

b=12.32;

printf("\n%c\n%d\n%c\n%f",c,a,a,b);

return 0;

}

实验练习:(在每道题的后面先写上程序,再粘贴运行结果截图)

1.利用getchar()输入字符a,A,并用putchar()输出。

#include

main()

{

char a;

char A;

a=getchar();

A=getchar();

putchar(a);

putchar(A);

}

2请编写一个程序,显示以下两行文字。

I an a student.

I love China.

#include

main()

{

printf("\n I am a student\n");

printf("\n I love China\n");

}

3. 在一个程序中,分别有两个变量,一个名字为m,一个名字为n,他们的值分别是以下几组数据。请分析他们的数据类型,并分别为每组数据编制程序,输出其m和n 的值,观察程序运行结果。

m=5,n=8;

#include

main()

{

int m=5;

int n=8;

printf("\n %d,%d",m,n);

}

m=’a’,n=’B’;

#include

main()

{

char m,n;

m='a';

n='B';

printf("\n%c.%c",m,n);

}

m=-43,n=278;

#include

main()

{

int m=-43;

int n=278;

printf("\n %d,%d",m,n);

}

m=234.45,n=123.245;

#include

main()

{

float m,n;

m=244.45;

n=123.245;

printf("\n%f,%f\n",m,n);

}

4. 编写程序,要求输入某职工的工资和奖金,并求出总收入(注意保留2位小数)显示输出。

#include

main()

{

int labourage=0;

int bonus=0;

float revenue=labourage+bonus;

printf("\n Enter your labourage:");

scanf("\n%d",&labourage);

printf("\n Enter your bonus:");

scanf("\n%d",&bonus);

revenue=labourage+bonus;

printf("\The revenue is

\n%.2f",revenue);

}

四、思考题

1.常用的转义字符有哪些?基本功能如何?

\n 换行。

\t 光标移向下一个制表符。

\r 光标移向当前行的开头。

\\ 插入斜杠

\”插入双引号

\’插入单引号

2. scanf()函数的格式输入控制是如何实现的?试结合具体的数据类型来说明。

当数据为整型,scanf(“%d”,&a);

当数据为浮点型,scanf(“%f”,&a);

当数据为字符型,scanf(“%f”,&a);

3.printf()函数的格式输出控制是如何实现的?试结合具体的数据类型来说明。当数据为整型,printf(“\n%d”);

当数据为浮点型,printf(“\n%f”);

当数据为字符型,printf(“\n%c”);

C语言关键字共32个

由ANSI标准定义的C语言关键字共32个: auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if while static 根据关键字的作用,可以将关键字分为数据类型关键字和流程控制关键字两大类。 1数据类型关键字 A.基本数据类型(5个) void:声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果 char:字符型类型数据,属于整型数据的一种 int:整型数据,通常为编译器指定的机器字长 float:单精度浮点型数据,属于浮点数据的一种 double:双精度浮点型数据,属于浮点数据的一种 B.类型修饰关键字(4个) short:修饰int,短整型数据,可省略被修饰的int。 long:修饰int,长整形数据,可省略被修饰的int。 signed:修饰整型数据,有符号数据类型 unsigned:修饰整型数据,无符号数据类型 C.复杂类型关键字(5个) struct:结构体声明 union:共用体声明 enum:枚举声明 typedef:声明类型别名 sizeof:得到特定类型或特定类型变量的大小 D.存储级别关键字(6个) auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配 static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部 register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数 extern:指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变) volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值 2流程控制关键字

C语言输入输出函数printf与scanf的用法格式

C 语言输入输出函数printf 与scanf 的用法格式 printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入设备(键盘)上读数据。下面详细介绍这两个函数的用法。 一、printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式控制字符, 以"%"开始, 后跟一个或几个控制字符,用来确定输出内容格式。 参量表是需要输出的一系列参数,可以是常量、变量或表达式,其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。 例如: printf("a=%d b=%d",a,b); 1. 格式控制符Turbo C 2.0提供的格式化规定符如下: 格式控制字符 参量表 正常字符

━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号作用 ────────────────────────── %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e,%E 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %o 无符号以八进制表示的整数 %g,%G 自动选择合适的表示法 ━━━━━━━━━━━━━━━━━━━━━━━━━━ printf的附加格式说明字符 字符说明 l 用于长整型数或双精度实型,可加在格式 符d、o、x、u和f前面 m(代表一个正整数据最小输出显示宽度

C语言输入输出函数格式详解

1、输入和输出: 输入:输入也叫读,数据由内核流向用户程序 输出:输出也称写、打印,数据由用户程序流向内核 以下介绍一些输入输出函数,尽管都是一些有缺陷的函数,但比较适合初学者使用 2、printf用法(其缺陷在于带缓存) printf输出时必须加上\n(刷新缓存) 解释:第一幅图没有加'\n',不会刷新缓存区,则不会打印出来;第二幅图是因为主函数结束时刷新了缓存区,但由于没有换行符,所以没有换行便显示了后面的内容;第三幅图时正常打印。 变量定义的是什么类型,在printf打印时就需要选择什么格式符,否则会造成数据的精度丢失(隐式强转),甚至会出现错误

(1)格式输出函数的一般形式 函数原型:intprintf(char * format[,argument,…]); 函数功能:按规定格式向输出设备(一般为显示器)输出数据,并返回实际输出的字符数,若出错,则返回负数。 A、它使用的一般形式为:printf("格式控制字符串",输出项列表); B、语句中"输出项列表"列出要输出的表达式(如常量、变量、运算符表达式、函数返回值等),它可以是0个、一个或多个,每个输出项之间用逗号(,)分隔;输出的数据可以是整数、实数、字符和字符串。 C、"格式控制字符串"必须用英文的双引号括起来,它的作用是控制输出项的格式和输出一些提示信息,例如:

inti=97; printf("i=%d,%c\n",i,i);输出结果为:i=97,a 语句printf("i=%d,%c\n",i,i);中的两个输出项都是变量i,但却以不同的格式输出,一个输出整型数97,另一个输出的却是字符a,其格式分别由"%d"与"%c"来控制。 语句printf("i=%d,%c\n",i,i);的格式控制字符串中"i="是普通字符,他将照原样输出;"%d"与"%c"是格式控制符;"\n"是转义字符,它的作用是换行。 (2)格式控制 格式控制由格式控制字符串实现,格式控制字符串由3部分组成:普通字符、转义字符、输出项格式说明。 A、普通字符。普通字符在输出时,按原样输出,主要用于输出提示信息。(空格属于普通字符) B、转义字符。转义字符指明特定的操作,如"\n"表示换行,"\t"表示水平制表等。 \n 换行 \f 清屏并换页 \r 回车 \tTab符 \xhh表示一个ASCII码用16进表示,其中hh是1到2个16进制数 C、格式说明部分由"%"和"格式字符串"组成,他表示按规定的格式输出数据。格式说明的形式为:% [flags] [width] [.prec] [F|N|h|l] type||%[标志][输出最少宽度][.精度][长度]类型 各部分说明如下: a、[]表示该项为可选项,即可有可无,如printf("%d",100); b、%:表示格式说明的起始符号,不可缺少。 c、flags为可选择的标志字符,常用的标志字符有: - ——左对齐输出,默认为右对齐输出 + ——正数输出加号(+),负数输出减号(-),如省略正数的+默认不显示 0 ——输出数值时指定左面不使用的空位置自动填0,如省略表示指定空位不填 # ——对c、s、d、u类无影响;对o类,在输出时加前缀0(数字0,八进制表示符);对x类,在输出时加前缀0x(字母为小写);对X类,在输出时加前缀0X(字母为大写);对e,g,f类当结果有小数时才给出小数点。 d、width为可选择的宽度指示符。 用十进制正整数表示设置输出值得最少字符个数。不足则补空格,多出则按实际输出,默认按实际输出,例如: printf("%8d\n",100); (前面空五格)100 printf("%08d\n",100); (前面5个0)100 printf("%6d\n",100); (前面空三格)100 printf("%-8d\n",100); 100(后面空五格) printf("%+8\n",100); (前面空四格)+100 e、[.prec]为可选的精度指示符 用“小数点”加“十进制正整数”表示,对“整数”、“实数”和“字符串”的输出有如下

c语言数据类型关键字

1 数据类型关键字(12个): (1) char :声明字符型变量或函数 (2) double :声明双精度变量或函数 (3) enum :声明枚举类型 (4) float:声明浮点型变量或函数 (5) int:声明整型变量或函数 (6) long :声明长整型变量或函数 (7) short :声明短整型变量或函数 (8) signed:声明有符号类型变量或函数 (9) struct:声明结构体变量或函数 (10) union:声明联合数据类型 (11) unsigned:声明无符号类型变量或函数 (12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)(2)控制语句关键字(12个): A循环语句 (1) for:一种循环语句(可意会不可言传) (2) do :循环语句的循环体 (3) while :循环语句的循环条件 (4) break:跳出当前循环 (5) continue:结束当前循环,开始下一轮循环 B条件语句 (1)if: 条件语句 (2)else :条件语句否定分支(与if 连用) (3)goto:无条件跳转语句 C开关语句 (1)switch :用于开关语句 (2)case:开关语句分支 (3)default:开关语句中的“其他”分支 D return :子程序返回语句(可以带参数,也看不带参数) 3 存储类型关键字(4个) (1)auto :声明自动变量一般不使用 (2)extern:声明变量是在其他文件正声明(也可以看做是引用变量) (3)register:声明积存器变量 (4)static :声明静态变量 4 其它关键字(4个): (1)const :声明只读变量 (2)sizeof:计算数据类型长度 (3)typedef:用以给数据类型取别名(当然还有其他作用 (4)volatile:说明变量在程序执行中可被隐含地改变

C语言编程常用头文件

C语言编程常用头文件 C语言常用头文件总结 序号库类别头文件 1 字符处理ctype.h 2 地区化local.h 3 数学函数math.h 4 信号处理signal.h 5 输入输出stdio.h 6 实用工具程序stdlib.h 7 字符串处理string.h 字符处理函数 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。

头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin 反正切atan 反正切2 atan2 余弦cos 正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h

C语言的基本数据类型及其表示

3.2 C语言的基本数据类型及其表示 C语言的基本数据类型包括整型数据、实型数据和字符型数据,这些不同数据类型如何表示?如何使用?它们的数据范围是什么?下面我们分别进行介绍。 3.2.1 常量与变量 1. 常量 常量是指程序在运行时其值不能改变的量,它是C语言中使用的基本数据对 象之一。C语言提供的常量有: 以上是常量所具有的类型属性,这些类型决定了各种常量所占存储空间的大小和数的表示范围。在C程序中,常量是直接以自身的存在形式体现其值和类型,例如:123是一个整型常量,占两个存储字节,数的表示范围是-32768~32767;123.0是实型常量,占四个存储字节,数的表示范围是-3.4 10-38~3.4 1038。 需要注意的是,常量并不占内存,在程序运行时它作为操作对象直接出现在运算器的各种寄存器中。 2.符号常量 在C程序中,常量除了以自身的存在形式直接表示之外,还可以用标识符来表示常量。因为经常碰到这样的问题:常量本身是一个较长的字符序列,且在程序中重复出现,例如:取常数的值为3.1415927,如果在程序中多处出现,直接使用3.1415927的表示形式,势必会使编程工作显得繁琐,而且,当需要把的值修改为3.1415926536时,就必须逐个查找并修改,这样,会降低程序的可修改性和灵活性。因此,C语言中提供了一种符号常量,即用指定的标识符来表示某个常量,在程序中需要使用该常量时就可直接引用标识符。 C语言中用宏定义命令对符号常量进行定义,其定义形式如下: #define 标识符常量 其中#define是宏定义命令的专用定义符,标识符是对常量的命名,常量可以是前面介绍的几种类型常量中的任何一种。该使指定的标识符来代表指定的常量,这个被指定的标识符就称为符号常量。例如,在C程序中,要用PAI代表实型常量3.1415927,用W代表字符串常量"Windows 98",可用下面两个宏定义命令: #define PAI 3.1415927 #define W "Windows 98" 宏定义的功能是:在编译预处理时,将程序中宏定义(关于编译预处理和宏定义的概念详见9.10节)命令之后出现的所有符号常量用宏定义命令中对应的常量一一替代。例如,对于以上两个宏定义命令,编译程序时,编译系统首先将程序中除这两个宏定义命令之外的所有PAI替换为3.1415927,所有W替换为Windows 98。因此,符号常量通常也被称为宏替换名。 习惯上人们把符号常量名用大写字母表示,而把变量名用小写字母表示。例3-1是符号常量的一个简单的应用。其中,PI为定义的符号常量,程序编译时,用3.1416替换所有的PI。 例3-1:已知圆半径r,求圆周长c和圆面积s的值。

C语言的基本数据类型及其表示

3.2C语言的基本数据类型及其表示 C语言的基本数据类型包括整型数据、实型数据和字符型数据,这些不同数据类型如何表示?如何使用?它们的数据范围是什么?下面我们分别进行介绍。 3.2.1常量与变量 1.常量 常量是指程序在运行时其值不能改变的量,它是C语言中使用的基本数据对 象之一。C语言提供的常量有: 以上是常量所具有的类型属性,这些类型决定了各种常量所占存储空间的大小和数的表示范围。在C程序中,常量是直接以自身的存在形式体现其值和类型,例如:123是一个整型常量,占两个存储字节,数的表示范围是-32768~32767;123.0是实型常量,占四个存储字节,数的表示范围是-3.410-38~3.41038。 需要注意的是,常量并不占内存,在程序运行时它作为操作对象直接出现在运算器的各种寄存器中。 2.符号常量 在C程序中,常量除了以自身的存在形式直接表示之外,还可以用标识符来表示常量。因为经常碰到这样的问题:常量本身是一个较长的字符序列,且在程序中重复出现,例如:取常数的值为3.1415927,如果在程序中多处出现,直接使用3.1415927的表示形式,势必会使编程工作显得繁琐,而且,当需要把的值修改为3.1415926536时,就必须逐个查找并修改,这样,会降低程序的可修改性和灵活性。因此,C语言中提供了一种符号常量,即用指定的标识符来表示某个常量,在程序中需要使用该常量时就可直接引用标识符。 C语言中用宏定义命令对符号常量进行定义,其定义形式如下: #define标识符常量 其中#define是宏定义命令的专用定义符,标识符是对常量的命名,常量可以是前面介绍的几种类型常量中的任何一种。该使指定的标识符来代表指定的常量,这个被指定的标识符就称为符号常量。例如,在C程序中,要用PAI代表实型常量3.1415927,用W代表字符串常量"Windows98",可用下面两个宏定义命令: #define PAI3.1415927 #define W"Windows98" 宏定义的功能是:在编译预处理时,将程序中宏定义(关于编译预处理和宏定义的概念详见9.10节)命令之后出现的所有符号常量用宏定义命令中对应的常量一一替代。例如,对于以上两个宏定义命令,编译程序时,编译系统首先将程序中除这两个宏定义命令之外的所有PAI替换为3.1415927,所有W替换为Windows98。因此,符号常量通常也被称为宏替换名。 习惯上人们把符号常量名用大写字母表示,而把变量名用小写字母表示。例3-1是符号常量的一个简单的应用。其中,PI为定义的符号常量,程序编译时,用3.1416替换所有的PI。 例3-1:已知圆半径r,求圆周长c和圆面积s的值。

广技师C语言复习题集2.练习(输入输出)(含答案解析)

一、选择题 1. 以下程序的运行结果是。 #include int main( ) { int m=5, n=10; printf(“%d, %d\n”,m++, --n); return 0; } A.5,9 B.6,9 C.5,10 D.6,10 2. 有定义语句int a,b; ,若要通过语句scanf(“%d, %d”, &a, &b); 使变量a得到数值6,变量b得到数值5,下面形式中错误的是。(注:□代表空格) A.6,5<回车> B.6,□□5<回车> C.6 5<回车> D.6,<回车> 5<回车> 3. 以下程序的输出结果是。(注:□代表空格) #include int main( ) { printf(“\n*s1=%15s*”, “chinabeijing” ); pirntf(“\n*s2=%-5s*”, “chi”); return 0; }

A.*s1=chinabeijing□□□* B.*s1=chinabeijing□□□* *s2=**chi* *s2=chi□□* C.*s1=*□□chinabeijing* D.*s1=□□□chinabeijing* *s2=□□chi* *s2=chi□□* 4. 已有如下定义语句和输入语句,若要求a1, a2, c1, c2的值分别为10、20、A和B,当从第一列开始输入数据时,正确的数据输入方式是。(注:□代表空格) int a1,a2; char c1, c2; scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2); A.10A□20B<回车> B.10□A□20□B<回车> C.10□A□20B<回车> D.10A20□B<回车> 5. 已有定义int x; float y; 且执行scanf(“%3d%f”, &x,&y); 语句,若从第一列开始输入数据12345□678<回车>,则x的值为(1),y的值为(2)。(注:□代表空格) (1)A.12345 B.123 C.45 D.345 (2)A.无定值B.45.000000 C.678.000000 D.123.000000 6. 阅读以下程序,当输入数据的形式为25,13,10<回车>,程序的输出结果为。 #include int main( ) { int x,y,z;

C语言数据类型及表示范围

C语言各种数据类型在系统中占的字节和取值围 基本类型包括字节型(char)、整型(int)和浮点型(float/double)。 定义基本类型变量时,可以使用符号属性signed、unsigned(对于char、int),和长度属性short、long(对于int、double)对变量的取值区间和精度进行说明。 下面列举了Dev-C++下基本类型所占位数和取值围: 符号属性长度属性基本型所占位数取值围输入符举例输出符举例-- -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u signed -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u unsigned -- char 8 0 ~ 2^8-1 %c %c、%d、%u [signed] short [int] 16 -2^15 ~ 2^15-1 %hd unsigned short [int] 16 0 ~ 2^16-1 %hu、%ho、%hx [signed] -- int 32 -2^31 ~ 2^31-1 %d unsigned -- [int] 32 0 ~ 2^32-1 %u、%o、%x [signed] long [int] 32 -2^31 ~ 2^31-1 %ld unsigned long [int] 32 0 ~ 2^32-1 %lu、%lo、%lx [signed] long long [int] 64 -2^63 ~ 2^63-1 %I64d unsigned long long [int] 64 0 ~ 2^64-1 %I64u、%I64o、%I64x -- -- float 32 +/- 3.40282e+038 %f、%e、%g -- -- double 64 +/- 1.79769e+308 %lf、%le、%lg %f、%e、%g -- long double 96 +/- 1.79769e+308 %Lf、%Le、%Lg 几点说明: 1. 注意! 表中的每一行,代表一种基本类型。“[]”代表可省略。 例如:char、signed char、unsigned char是三种互不相同的类型; int、short、long也是三种互不相同的类型。可以使用C++的函数重载特性进行验证,如: void Func(char ch) {} void Func(signed char ch) {} void Func(unsigned char ch) {} 是三个不同的函数。

c语言输入输出函数知识点总结

c语言输入输出函数知识点总结 1.I/O input output(输入端,输出端) 输入:从计算机向外部输出设备(显示器,打印机)输出数据。 输出:从输入设备(键盘、鼠标、扫描仪)向计算机输入数据。 2.C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数实现的。 3.字符输出函数一般形式:putchar(a);a可以是字符型变量、整型变量、字符常量、整型常量。函数作用:向终端输出一个字符。 4.字符输入函数一般形式:a=getchar( );函数作用:从终端输入一个字符。函数值:从输入设备得到的字符。 5.格式输出字符 %d:以十进制输出整数;%o:以八进制形式输出整数;%c:以字符形式输出一个字符;%s:输出字符串;%f:以小数形式输出单、双精度数,隐含输出六位小数。 6.getchar一次只能输入一个字符,有几个getchar()就输入几个字符,多输入的计算机不能识别。 7.getchar()输入的时候,空格键、Enter键、Tab键不能乱用,他们都当成字符对待。 printf("%d,%c,%f,%o,%x,%s",a,b,c,d,e,f); .......................................... 8.格式控制都是小写字母; 9.格式控制与后面要输出的变量是一一对应;................................................... 10.printf("%md",a); 1).m是整数; 2).m是指输出的结果占m列宽度; 3).m是正整数的话,输出结果差几列左补几个空格; m是负整数的话,输出结果差几列右补几个空格; 4).如果m的绝对值小于原来数的宽度,则原样输出。................................................... 11.printf("%m.nf",a); 1).m是指输出占几列宽度,n是指输出结果小数点后保留几位有效数字; 2).m是正整数的话,输出结果差几列左补几个空格; m是负整数的话,输出结果差几列右补几个空格; 3).printf("%2.5f",a); m

C语言数据的输入与输出

C语言数据的输入与输出 一.Printf函数 函数原型在头文件stido.h中(使用时可以不包括) printf函数的返回值等于成功输入得数据的个数 1.printf函数得一般调用形式 printf(格式控制字符串,输出项列表) 格式控制字符串包括: (1)格式指示符 格式:%[标志][宽度][.精度][[h|l]<类型>] (2)转义字符 如:'\n','\0' (3)普通字符 如:printf("max=%d,min=%d\n",a,b); “max=”和“,min=”是普通字符;“%d”是格式指示符;“\n”是转义字符; a和b是输出类表中的输出项(可以是常量、变量、或表达式)。 2.print函数中常用得格式控制说明 (1)数据类型控制字符 格式字符说明 %c输出一个字符 %d或%i以十进制形式输出一个带符号得整数(正数不输出符号) %u以十进制形式输出无符号整数。若有符号则自动将符号位转化为数值位,%o 和%x也具有类似得功能 %o以八进制形式输出无符号整型数(不带前导0) %x或%X以十六进制形式输出无符号整型数(不带前导0x或0X)。对于十六进制数中的字符abcdef,用%x时输出得是小写字母,%X时输出的是大写字母 %f以小数形式输出单精度或双精度实数 %e或%E以指数形式输出单精度或双精度实数 %g或%G有系统决定是采用%f还是%e格式,以使输出结果的总宽度最小,并且不输出没意义的0 %s依次输出字符串中得各个字符,知道遇到'\0'是结束 (2)数据类型修饰符 数据类型修饰符在%和数据类型控制符之间 如:长整型"%ld",短整型"%hd" (3)输出数据所占得宽度与精度

C语言的32个关键字和9种控制语句

C语言的32个关键字和9种控制语句 C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。 1 数据类型关键字(12个): (1) char :声明字符型变量或函数 (2) double :声明双精度变量或函数 (3) enum :声明枚举类型 (4) float:声明浮点型变量或函数 (5) int:声明整型变量或函数 (6) long :声明长整型变量或函数 (7) short :声明短整型变量或函数 (8) signed:声明有符号类型变量或函数 (9) struct:声明结构体变量或函数 (10) union:声明共用体(联合)数据类型 (11) unsigned:声明无符号类型变量或函数 (12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用) 2控制语句关键字(12个): A循环语句 (1) for:一种循环语句(可意会不可言传) (2) do :循环语句的循环体 (3) while :循环语句的循环条件 (4) break:跳出当前循环 (5) continue:结束当前循环,开始下一轮循环 B条件语句 (1)if: 条件语句 (2)else :条件语句否定分支(与if 连用) (3)goto:无条件跳转语句 C开关语句 (1)switch :用于开关语句 (2)case:开关语句分支 (3)default:开关语句中的“其他”分支 D返回语句 return :子程序返回语句(可以带参数,也看不带参数) 3 存储类型关键字(4个) (1)auto :声明自动变量一般不使用 (2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)

C语言字符串的输入和输出

C语言字符串的输入和输出 字符串的输入和输出 %c人为加入\0进行输入输出 %s直接输入输出 *输入输出字符串时字符数组应有足够的存储空间,指针变量作为输入项时,指针必须已经指向确切的、足够大的存储空间 %s的使用 scanf("%s",地址值) 地址值:字符数组名、字符指针、字符数组元素的地址 例:char str[15]; scanf("%s",str); abc123 1.不读入空格和回车,从空格处结束 2.输入字符串长度超过字符数组元素个数,不报错 3.当输入项为字符指针时,指针必须已指向确定的有足够空间的连续 存储单元 4.当为数组元素地址时,从此元素地址开始存放 2.printf("%s",地址值) 输出时遇到第一个'\0'为止 3.gets和puts函数 开头必须stdio.h #include"stdio.h"

1.gets(地址值) 地址值:字符数组名、字符指针、字符数组元素的地址 4.当为数组元素地址时,从此元素地址开始存放 5.printf("%s",地址值) 输出时遇到第一个'\0'为止 6.gets和puts函数 开头必须stdio.h #include"stdio.h" 1.gets(地址值) 地址值:字符数组名、字符指针、字符数组元素的地址 7.例: char str[10]; gets(str); 包括空格符 8. 2.puts(字符串起始地址) 遇第一个'\0'结束,自动加入换行符 9.字符串数组:数组中每个元素都是一个存放字符串的数组 可以将一个二维数组看作是字符串数组 10.char ca[3][5]={"A","BB","CCC"}; A\0 B B\0 C C C\0 字符型指针数组 char*pa[3]={"a","bb","ccc"}; pa[0]pa[1]pa[2] 可以重新赋值gets(pa[2]);

C语言数据类型与表达式习题及答案

第一章数据类型,运算符与表达式 一.选择题 1.不合法的常量是A。 A)‘/2’B) “”C)‘’D)“483” 2. B 是C语言提供的合法的数据类型关键字。 A)Float B)signed C)integer D)Char 3.在以下各组标识符中,合法的标识符是(1)A,(2) C ,(3) D 。 (1)A)B01 B)table_1 C)0_t D)k% Int t*.1 W10 point (2)A)Fast_ B)void C)pbl D) Fast+Big abs fabs beep (3)A)xy_ B)longdouble C)*p D)CHAR 变量1 signed history Flaut 4. 不属于合法的C语言长整型常量的是 C 。 A)5876273 B)0L C)2E10 D)(long)5876273 7.下面选项中,均是合法浮点数的是 B 。 A)+1e+1 B)-0.60 C)123e D)-e3 5e-9.4 12e-4 1.2e-.4 .8e-4 03e2 -8e5 +2e-1 5.e-0 8.在C语言中,要求参加运算的数必须是整数的运算符是 C 。 A)/ B)* C)% D) = 9.在C语言中,字符型数据在内存中以 D 形式存放。 A)原码B)BCD码C)反码D)ASCII码10.下列语句中,符合语法的赋值语句是 C 。 A)a=7+b+c=a+7;B)a=7+b++=a+7; C)a=7+b,b++,a+7;D)a=7+b = c=a+7; 11. B 是非法的C语言转义字符。 A)‘\b’B)‘\0xf’C)‘\037’D)‘\’’12.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中, B 是正确的。 A)语法错误B)f为5.0 C)f为0.0 D)f为2.0 13.与代数式x y u v ? ? 不等价的C语言表达式是A。 A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y 14.在C语言中,数字029是一个 D 。 A)八进制数B)十六进制数C)十进制数D)非法数 16.对于char cx=?\039?;语句,正确的是A。 A)不合法B)cx的值是?\03? C)cx的值为四个字符D)cx的值为三个字符 17.若int k=7,x=12;则能使值为3的表达式是 D 。 A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5) 18.为了计算s=10!(即10的阶乘),则s变量应定义为 C 。 A)int B)unsigned C)long D)以上三种类型均可

C语言基本数据类型及运算题库

第二章基本数据类型及运算 一、选择题 1. 若以下选项中的变量已正确定义,则正确的赋值语句是。 A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3; 答案:C 2. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是。 A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0 C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0 答案:C 3. 下列C语言中运算对象必须是整型的运算符是。 A) %= B) / C) = D) *= 答案:A 4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是。 A) 0 B) 0.5 C) 1 D) 2 答案:A 5. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是。 A) 把x和y按从大到小排列 B) 把x和y按从小到大排列 C) 无确定结果 D) 交换x和y中的值 答案:D 6. 下列变量定义中合法的是。 A)short_a=1-.le-1; B)double b=1+5e2.5; C)long do=0xfdaL; D)float 2_and=1-e-3; 答案:A 7. 以下4个选项中,不能被看作是一条语句的是。 A) {;} B) a=0,b=0,c=0; C) if (a>0); D) if (b==0)m=1;n=2; 答案:D 8. 设x=1,y=-1,下列表达式中解为8的是。 A)x&y B)~x│x C)x^x D)x<<=3 答案:D 9. 在C语言中不合法的整数是。 A)20 B)0x4001 C)08 D)0x12ed 答案: C 10. 以下选项中不正确的实型常量是 A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2 答案:B) 11.若变量已正确定义并赋值,符合C语言语法的表达式是 A)a=a+7 B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b 答案:B) 12.以下十六进制数中不合法的是 A)oxff B)0Xabc C)0x11 D)0x19

c语言关键字及常用符号

C语言关键字及常用符号 32个关键字 auto :声明自动变量 short :声明短整型变量或函数 int:声明整型变量或函数 long :声明长整型变量或函数 float:声明浮点型变量或函数 double :声明双精度变量或函数 char :声明字符型变量或函数 struct:声明结构体变量或函数 union:声明共用数据类型 enum :声明枚举类型 typedef:用以给数据类型取别名 const :声明只读变量 unsigned:声明无符号类型变量或函数 signed:声明有符号类型变量或函数 extern:声明变量是在其他文件中声明 register:声明寄存器变量 static :声明静态变量 volatile:说明变量在程序执行中可被隐含地改变 void :声明函数无返回值或无参数,声明无类型指针 if:条件语句 else :条件语句否定分支(与 if 连用) switch :用于开关语句 case:开关语句分支 for:一种循环语句 do :循环语句的循环体 while :循环语句的循环条件 goto:无条件跳转语句 continue:结束当前循环,开始下一轮循环 break:跳出当前循环 default:开关语句中的“其他”分支 sizeof:计算数据类型长度 return :子程序返回语句(可以带参数,也可不带参数)循环条件 数据类型 char:字符型 int:基本整型 short int:短整型 long int:长整型

unsigned:无符号型 unsigned long:无符号长整型 float:单精度实型 double:双精度实型 C语言常用转义字符表 转义字符含义ASCII码(16/10进制) \o 空字符(NULL) 00H/0 \n 换行符(LF) 0AH/10 \r 回车符(CR) 0DH/13 \t 水平制表符(HT) 09H/9 \v 垂直制表(VT) 0B/11 \a 响铃(BEL) 07/7 \b 退格符(BS) 08H/8 \f 换页符(FF) 0CH/12 \’单引号27H/39 \”双引号22H/34 \\ 反斜杠5CH/92 \? 问号字符3F/63 \ddd 任意字符三位八进制 \xhh 任意字符二位十六进制 字符常量中使用单引号和反斜杠以及字符常量中使用双引号和反斜杠时,都必须使用转义字符表示,即在这些字符前加上反斜杠。 在C程序中使用转义字符\ d d d或者\ x h h可以方便灵活地表示任意字符。C语言的运算符可分为以下几类: 算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。 关系运算符:用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。 逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三种。 位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。 赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。 条件运算符:这是一个三目运算符,用于条件求值(?:)。

C语言中文件_数据的输入输出_读写

C语言中文件,数据的输入输出,读写. 文件是数据的集合体,对文件的处理过程就是对文件的读写过程,或输入输出过程。 所谓文件是指内存以外的媒体上以某种形式组织的一组相关数据的有序集合。文件分类: 顺序文件,随机文件。 文本文件和二进制文件。 文本文件也称为ASCII文件,在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。 文本文件可以在屏幕上按字符显示,源程序文件就是文本文件,由于是按字符显示,所以能读懂文件内容。 二进制文件是按二进制编码方式来存放的。这里主要讨论文件的打开,关闭,读,写,定位等操作。 文件的存取方法 C程序的输入输出(I/O)有两种方式:一种称为标准I/O或流式I/O,另一种称为低级I/O。流式I/O是依靠标准库函数中的输入输出函数实现的。低级I/O利用操作系统提供的接口函数(称为底层接口或系统调用)实现输入输出,低级I/O 主要提供系统软件使用。 在C语言中用一个FILE类型的指针变量指向一个文件,(FILE类型是系统在stdio.h中定义的描述已打开文件的一种结构类型),这个指针称为文件指针。FILE *指针变量标识符; 如 FILE *fp; 文件的打开与关闭 所谓打开文件,指的是建立文件的各种有关信息,并使文件指针指向该文件,以便对它进行操作。 关闭文件则是断开指针与文件之间的联系,也就禁止再对该文件进行操作。 1、fopen 函数原型:FILE *fopen(const char *filename,const char *mode); Fopen函数用来打开一个文件,前一部分用来说明文件路径及文件名,后一部分mode指出了打开文件的存取方式;返回值是被打开文件的FILE型指针,若打开失败,则返回NULL。打开文件的语法格式如下: 文件指针名=fopen(文件名,使用文件方式); 文件指针名必须被说明为FILE类型的指针变量。 FILE *fp; fp=fopen(“C:\\Windowss\\abc.txt”,”r”); 注意用两个反斜杠\\来表示目录间的间隔符。 存取文件的模式是一个字符串,可以由字母r,w,a,t,b及+组合而成,各字符的含

C语言数据类型及转换23页word文档

C语言的数据类型 C语言提供的数据结构,是以数据类型形式出现的。具体分类如下:1.基本类型 分为整型、实型(又称浮点型)、字符型和枚举型四种。 2.构造类型 分为数组类型、结构类型和共用类型三种。 3.指针类型。在第9章中介绍。 4.空类型 C语言中的数据,有常量和变量之分,它们分别属于上述这些类型。本章将介绍基本类型中的整型、实型和字符型三种数据。 2.3 常量和变量 2.3.1 常量 1.常量的概念 在程序运行过程中,其值不能被改变的量称为常量。 2.常量的分类 (1)整型常量 (2)实型常量 (3)字符常量。 (4)符号常量。 常量的类型,可通过书写形式来判别。 2.3.2 变量 1.变量的概念

在程序运行过程中,其值可以被改变的量称为变量。 2.变量的两个要素 (1)变量名。每个变量都必须有一个名字──变量名,变量命名遵循标识符命名规则。 (2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值。 3.标识符命名规则 (1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。 (2)有效长度:随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃。 例如,由于student_name和student_number的前8个字符相同,有的系统认为这两个变量,是一回事而不加区别。 在TC V2.0中,变量名(标识符)的有效长度为1~32个字符,缺省值为32。 (3)C语言的关键字不能用作变量名。 注意:C语言对英文字母的大小敏感,即同一字母的大小写,被认为是两个不同的字符。 习惯上,变量名和函数名中的英文字母用小写,以增加可读性。 思考题:在C语言中,变量名total与变量名TOTAL、ToTaL、tOtAl等是同一个变量吗? 标识符命名的良好习惯──见名知意:

相关文档
相关文档 最新文档