内容正文:
专题二 赋值语句
《编程语言基础》
专题复习讲练测
模块一 基本数据类型与顺序程序设计
考纲要求
一
掌握
赋值语句的用法
赋值语句的格式与功能
考点解读
二
1.赋值语句的格式
2.赋值语句的功能。
3.赋值语句中的类型转换
基本知识
三
1.一般形式: 变量 = 表达式;
2. 功能:
首先计算赋值号“=”右边表达式的值,然后将结果值送给赋值号“=”左边的变量。
(一)、赋值语句的格式和功能
基本知识
三
char c1, c2;
c1 = 'a';
c2 = 'b';
上面定义了2个字符型变量 c1, c2,一个字符型变量可存放一个字符。
将一个字符常量存放到一个字符变量中,实际上并不是把该字符本身放到内存中,而是将该字符的相应的ASCII码存放内存单元中。
(一)、赋值语句的格式和功能
基本知识
三
#include <stdio.h>
main( )
{
char c1 = 'a', c2;
int k;
k = c1; /* 将字符型变量c1赋给整型变量k */
c2 = 97; /* 将整数97赋给字符型变量c2 */
printf("%c, %c, %d", c1, c2, c1);
/* 字符变量既可按字符形式输出,亦可按整型输出 */
printf("
%d, %c", k, k );
/* 整型变量既可按整型形式输出,亦可按字符型输出 */
}
(一)、赋值语句的格式和功能
基本知识
三
C语言中有一些复合赋值运算,如+=、一=、*=、/=等,因此
c+=32; (相当于c=c+32; )
c- =32; (相当于c=c-32;)
j*=a + b; (相当于i=i*(a+b); )
k /=2; (相当于k = k /2;)
均为赋值语句,它们均可以作为一个单独的语句在程序中出现。
复合赋值运算使得C语言表达式的表达方式更加精炼和紧凑。
(二)、复合赋值
基本知识
三
1.“=”左边变量与右边表达式的数据类型不一致时,C编译系统会自动实现数据类型的转换。
2.转换的原则是,将赋值号右边的表达式值的类型转换成与左边变量相同的类型后再赋值。
(三)、类型转换
基本知识
三
例如:
int a; long b; char c;
a = b; /* long型变量b的值变换成int型后再赋给a */
b = a; /* int型变量a的值变换成long型后再赋给b */
b = a + c; /* int型a + c的值变换成 long型后再赋给 b */
(三)、类型转换
基本知识
三
3.当右边表达式值的类型比左边变量的类型要长时,会对右边的数据进行截取,仅取出与左边变量类型相同的长度,这意味着,会丢失高位字节或高位字。
main( )
{ int a =350, b;
char c ;
c = a;
b = c;
printf("%d, %d, %d ", a, c, b );
}
运行结果为: 350, 94, 94
(三)、类型转换
高考链接
四
1.[2021年山东职教高考题]以下程序段的运行结果是( )
int n=353;
char c;
c=n;
printf("%c,%d,%x
",c,c,c);
A. A,353,161 B. A,97,61 C. a,97,68 D.a,97,61
答案:D
解答:当右边表达式值的类型比左边变量的类型长时,会对右边的数据进行截取,仅取出与左边变量类型相同的长度,丢失高位,保留低位。
高考链接
四
2.[2020年山东职教高考题]以下程序段的运行结果是( )
int a=0x41;
char c; c=a;
printf("%d,%cln",c.,c);
A. 65,A B.66,B C.48,0 D.49,1
答案:A
解答:本题考察类型转换规则,将赋值号右边的表达式值的类型转换成与左边变量相同的类型后再赋值。
高考链接
四
3.[2019