常变量、数据类型、字符型复习与习题

本文详细介绍了C语言中的变量概念(全局变量、局部变量),数据类型(整型、实型、字符型)及其定义和生命周期,以及不同类型之间的强制转换。通过实例讲解了如何计算圆的面积和浮点型到整型的转换。
摘要由CSDN通过智能技术生成

变量和数据类型

全局变量

全局变量也称为外部变量,它是在函数外部定义的变量。
它不属于哪一个函数,它属于一个源程序文件。

#include<stdio.h>
int j = 1;//全局变量
int main()
{
	int a = 1;
	if (a = 1)
	{
		printf("%d\n", j);
	}
	printf("%d\n", j);
	return 0;
}

局部变量

int a = 100;
int main ()
{
int a =10
//局部变量是{ }内的变量结果为10
}
注意:由结果10可知局部变量优先于全局变量

变量的定义形式和生命周期

int(数据类型) name(变量名1) , age(变量名2);
数据类型 变量名 1 [ =初值];
生命周期:
1.变量的生命周期指的是变量的创建到变量的销毁之间的时间段
2.局部变量的生命周期是:从进入作用域生命周期开始,出作用域生命周期结束。
3. 全局变量的生命周期是:整个程序的生命周期。

数据类型与习题

整型常量
【例1 C源程序中能表示的数制是
A)十六进制
B)八进制
C)十进制
D)二进制
【解析】在C语言中整型常量可以用十进制、八进制和十六进制等形式表示,但不包括二进制.
【答案】D
【例2】以下选项中,能用作数据常量的是( )
A)115L B)0118 C)1.5el.5 D)0115
【解析】A选项中,115L表示115是长整型数 float x, double
生制 据,合法。选项B是八进制常量的表示方法,但是在 3 实型
八进制中不能含有数字8
,所以选项B错误。选项 C
中,e后面应该是整数,不能是小数1.5,所以选项C 由于错误。选项D中,八进制常量应该是以数字母“o”开始的,而不是以字母“o”开始的。 有限的。
【答案】A
【例3】C语言整数不包括()
A)带小数点的整数 B)正整数
C)负整数 D)无符号整数
【解析】C语言整数包括正整数、负整数、无符号 #in整数,不含带小数点的整数,故选择选项A。
【答案】A

实型数据:正确表达形式 3.1425、0.123、.123(实型数据必有小数)
以下选项中可用C程序合法实数的。
是()
A)3.0e0.2
B)le0
C)E9
D)9.12E
【解析】选项A中,,e"后面的指数必须为整数
故错误。C语言规定,“E”之前必须要有数字,故造项C错误。“E”后面必须要有数字,且必须为整数故选项D 错误。因此选择选项B。
【答案】B
【例2】以下选项中合法的实型常量是(
A)0 B)3.13e-2.1
C).914
D)2.0*10
[解析)选项A 为整型数据。选项B中“e"后面必须为整数。选项D是表达式,不是常量,所以选择C
【例3】在C语言中,不能正确表示10×1000之值的是( )。
A)1.0E4.0
B)1. E4
C)10E3
D)1.0e4
【解析】实型常量用带小数点的数字表示,其值有两种表达形式,分别为十进制小数形式和指数形式。指数形式由十进制数加阶码标志“e"或“E"以及阶码(只能为整数,可以带符号)组成。指数形式中阶码必须是整型常量,而选项A中4.0 是浮点数,所以选项A 不能正确表示10×1000之值,选项B、C、D都表示正确并且值为 10000, 因此选择选项 A。
【答案】A
【例4]C 语言中 double 型数据占字节数为)。
A)4 B)8
C)12
D)16
【解析】double 型数据在内存中占8个字节,floal 型数据占4个字节, int 型数据占2 个字节, char 型数据占1个字节。因此选择选项B

字符型数据

char c1(变量名),c2;c1 =‘a’,c2=‘b’

字符串常量

【例2】下面选项中合法的 游堂量是
A’‘x’’
B)‘X’
C)‘abc’
D)‘’
【解析】字符常量是用单引号括起来的。选项A中,使用双引号,故错误:选项C中,字符常量只能是单个字符,不能是一串字符,故错误;选项D中、以反斜线“\”开头的是转义字符。因此选项B正确。单引号为字符,双引号为字符串
【答案】B
【例3】若有定义语句charc=‘\101’;,则变量c在内存中占(
A)1个字节
B)2个字节
C)3个字节
D)4 个字节
【解析】本题考查字符变量的存储空间,每个斜杠的字符变量都分配一个字节的内存空间。因此选项A正确。
【答案】A

【例4】若有以下程序:
#include <stdio.h >
main()
{char cl, c2;
cl=‘C’+‘8’-3’;c2=‘9’-‘0’;
printf(“%c ad\n”, cl,c2);
}
则程序的输出结果是( )。
A)H’9’
B)H9
C)F ‘9’
D)表达式不合法,输出无定值
【解析】本题考查字符变量以及printf()函数的相关知识。字符变量c1被赋值为“‘C’+‘8’-'3”,即ASCII码值的运算,67+54-49=72,即“‘H”;字符变量2被赋值为“9’-0”,但输出时需要注意的是,cl以字符变量输出,而e2是以十进制整型变量输出。因此选项B正确。
【答案】B
数字0-9对应的ASCII码(十进制)为“48”~“57”
大写字母A-Z对应的ASCII码(十进制)为“65”~“90”
小写字母a-z对应的ASCII码(十进制)为"97"~“122”

不同类型的强制转换

float——double
int——long
注意:低类型转换成高类型
1、int和float,将两者都转换成double型。
2、10+‘a’+if-d\3
(1)先10+'a’为107
(2)i
f,将其都转换成double型结果为7.5,double型
(3)将整数107转换成双精度数与7.5double型计算。相加结果为114.5, double型。

案例:根据圆的半径求面积

#include<stdio.h>
void main()
{float pi =3.14;/*定义一个浮点型变量并初始化*/
int s,r = 5;/*定义两个整型变量,分别表示圆的半径和面积*/
s = r*r*pi;/*求圆的面积*/  
printf("s=%d\n",s);
}

【例】强制类型转换。
程序代码
#include<stdio.h>
void main()
(float f=1.2345;/定义一个浮点型变量f,并初始化为1.2345/
int a;/定义一个整型变量/
a=(int)f; //(float转化为double的形式)
将浮点型变量强制转化为整型值*/
printf(“a=d,f=&f\n”,a,f);输出整型变量a和浮点型变量f的值/
}
结果a=1,f=1.234500

  • 26
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值