第一节 数据类型、常量、变量-【单招零距离】计算机专业综合(下)

2025-04-23
| 2份
| 11页
| 89人阅读
| 0人下载

内容正文:

总复习方案·第二章数据类型及其运算 第二章 数据类型及其运算 大纲要求 1.掌握C的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。 2.理解C运算符的种类、运算优先级、结合性。 3.理解不同类型数据间的转换与运算。 4.掌握C表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式) 和求值规则。 第一节数据类型、常量、变量 知识体系 命名规则 标识符 分类 整数:十进制、八进制、十六进制 数值常量 实数:小数、指数 数据的表示 常量 字符型常量 字符:普通字符、转义字符 字符串 符号常量 宏定义命令define定义 基本类型 数据 int、char、float、double等 类型构造类型 —数组 定义 指针类型 文件指针 变量名 数据的存储—变量 值 初始化 存储数据输入、赋值 使用 参数传递 参与运算 ·13· 单招零距离·计算机专业综合·下册 知识梳理 @⑤ 一、标识符 在C语言中,变量名、函数名、数组名等都是按照一定的规则命名的符号,称为标识符。 1.标识符的命名规则: (1)合法的标识符只能由 组成; (2)标识符必须以 或 打头,不能是数字; (3)要区分字母的大小写,如a和A是两个不同的字符。 2.标识符的分类: (1)关键字(32个):C语言中规定了一些专用的标识符,它们有着固定的含义,不能更改, 也不能被你用作函数名或变量名。 auto、break、case、char、const、continue、default、double、else、enum、extern、float、for、 goto、int、long、register、.return、short、signed、sizeof、do、if、static、struct、switch、typedef、 union、unsigned、void、while、.const (2)预定义标识符:有特定的含义,包括库函数的名字和编译预处理的命令。如:scanf、 printf、include、define (3)用户自定义标识符:用户根据自己的需要定义的标识符。一般给变量、函数、数组、文 件等命名。选择变量名和其他标识符时,应注意“见名知义”的原则。 二、数据的表示 在C程序中,直接表示的数据被称为常量。 1.常量的种类有 2.数值型常量 (1)整型常量:在C程序中,可以用十进制、八进制、十六进制形式表示数据。 八进制整数以 开头十六进制整数以 开头。 (2)实型常量的表示形式有 指数形式用 表示以10为底的指数,其前是 ,其后是 且 必须是 3.字符型常量有 两种。 (1)字符常量用 括起来,有普通字符与 两种,其中后者以 开头; 表2一1常用转义字符及其含义 字符 含义 An 换行 Ar 回车 lv 竖向跳格 Ib 退格符,向前倒删除一个字符(BACKSPACE键) Ac 横向跳格(TAB键) 走纸换页符 ·14 总复习方案·第二章数据类型及其运算 u 反斜杠字符1 单引号 \" 双引号” Addd 1一3位八进制数所代表的一个ASCI码字符如101一A \xhh 1一2位十进制数所代表的一个ASCI码字符如x41一A 10 空字符 \a 警告声 1A 字符A,此时的\没有实际意义,相当于续行符的作用 (2)字符串常量用 括起来。 4.符号常量用标识符表示一个常量。 (1)定义符号常量的一般形式: (2)符号常量在程序中其值不能被重新赋值; (3)符号常量一般用 写字母表示。 三、数据的存储 在C程序中,用变量来存放数据,程序运行时,计算机给每个变量分配一定量的内存空间 (不同的编译系统分配的存储空间不相同),数据通过变量存储在内存中,且整数以补码形式存 储,字符以ASCII码值形式存储。变量必须先定义,后使用。 1.变量的定义 (1)定义变量的一般形式: (2)类型:变量的类型决定了该变量中可存放数据的类型和大小。 ①当数据的类型与变量的类型不一致时,数据存储时可能会产生错误; ②当数据大小与变量的空间不吻合时,则可能会发生溢出。 (3)变量名:变量的名字,用于标识变量。 ①变量名一般用写字母,且区分大小写字母,取名合法并尽量做到顾名思义; ②在同一程序的同一函数内,变量不可被重复定义(除非变量在复合语句内)。 (4)变量的值:存放在变量中的数据。一个变量中只能存放一个数据。 2.变量的使用 (1)数据存入变量的途径有:初始化、赋值、从键盘接收、参数传递。 (2)初始化:定义的同时赋初值。若定义时变量未被初始化,则自动变量中的值是 ,全局变量、静态局部变量被自动置 (3)程序运行时,变量的值可随时变化,变量被重新赋值后,新值会 旧值。 3.变量的存储 不同类型的变量,其存储单元的大小不同。可用运算符 求出。 (1)整型int:占 B,范围:-2147483648~+2147483647 (2)短整型short(int):占 B,范围:-32768~+32767 (3)长整型long int:占 B,范围:一2147483648~+2147483647 (4)无符号型unsigned(int):占 B,范围:0~4294967295 (5)无符号型unsigned short(int):占 B,范围:0~65535 ·15· 单招零距离·计算机专业综合·下册 (6)无符号型unsigned long(int):占 B,范围:0~4294967295 (7)单精度实型float:占 B,提供7位有效数字 (8)双精度实型double:占 B,提供15~16位有效数字 (9)字符char:占 B,每个字符变量中只能存放一个字符。 典例精析 @ 【例1】下列四组字符串中都可以用作C语言程序中的标识符的是()。 A.print3d db8 aBc B.I\am one half start $it 3pai C.str_1 Cpp pow while D.Pxq My->book line#His.age 【分析】标识符的命名规则:(1)只能由字母、数字、下划线构成;(2)数字不能作为标识符 的开头;(3)关键字不能作为标识符。 选项B中的”,”$”,选项D中“>”,”#”,”.”,”一”不满足(I):选项C中的while为关 键字,不满足(3)。 【答案】A 【例2】阅读下面程序,分析运行结果。 #include <stdio.h int main() printf("abed "); printf("abc\t"); printf("123\rghjkl "); printf("\\"\? "); printf("\ABCD\a\62\103\x61\x62 "); } 【分析】转义字符 ’的含义是换行;\t'的含义是横向跳格;\r’的含义是退格;\\’ 的含义是\;’的含义是';\"’的含义是";\?’的含义是?;\A’的含义是A;\a’的含义是 一声警告声;\62'的含义是ASCII值为八进制数62的数字字符2;\103'的含义是ASCII值 为八进制数103的字符C;\x61'的含义是ASCIⅡ值为十六进制数61的字母字符a;\x62' 的含义是ASCII值为十六进制数62的字母字符b。 【答案】abcd ghjkl123 \'”? ABCD2Cab 【例3】阅读下面程序,分析运行结果。 #include<stdio.h> int main() inta=123,b=0123,c=0x123; printf("%d,%d,%d ",a,b,c); a=b=c=318; ·16· 总复习方案·第二章数据类型及其运算 printf("d,%00,%x ",a,b,c); printf(",x,#X ",a,b,c); 【分析】(1)b=0123是一个八进制整数,要转换成十进制整数83:c=0x123是一个十六 进制整数,要转换成十进制整数291。 (2)语句a=b=c=318;的作用是将a,b,c的值都赋为十进制整数418。printf函数中 的"%"表示以十进制整数输出,”%o"表示以八进制整数输出,"%x"表示以十六进制整数 (若含有字母A一F则以小写字母形式)输出。因此,要将318转换成八进制数476和十六进 制数13e。 注意:以"%。"输出的数在显示屏幕上或理论分析程序写运行结果时是不加前导0的,同 样"%x"输出数时也不加前导0x;而以"%#o"输出的八进制数则会带上前导0,以"%#x"输 出的十六进制数则会带上前导0x,以"%#x"输出的十六进制数则会带上前导0X。 【答案】123,83,291 318,476,13e 0476,0x13e,0X13E 【例4】写出定义变量/数组的语句,用于正确存放下列数据。 (1)存放1个年龄 (2)存放10个语文成绩 (3)存放1个字母 (4)存放1个人的姓名(设字符个数不超过15) (5)存放10个人的姓名(设字符个数不超过15) 【分析】年龄都是整数,应定义为int型;语文成绩可能是小数,应定义为float或double 型,10个语文成绩应定义为一维数组,数组的大小为10;1个字母应定义为char型;1个人的 姓名应定义为一维字符型数组;10个人的姓名应定义为二维字符型数组。 【答案】(1)int age; (2)double score[10]; (3)char ch; (4)char name[16]; (5)char name[10][16]; 巩固练习 ⑤ 1.下列四组选项中,正确的C语言标识符是()。 A.%x B.a+b C.a123 D.123 2.C语言中的简单数据类型包括( A.整型、实型、逻辑型 B.整型、实型、逻辑型、字符型 C.整型、字符型、逻辑型 D.整型、实型、字符型 3.在C语言中,char型数据在内存中以( )形式存放。 A.原码 B.反码 C.补码 D.ASCII码 ·17… 单招零距离·计算机专业综合·下册 4.在C语言中,以( )作为字符串结束标志。 A' B.· C.'0 D.\0 5.下列数据中属于“字符串常量”的是( )。 A."a" B.(ABC) C.'abc\0' D.'a 6.有语句char c-=\x46';则变量c中包含()个字符。 A.1 B.2 C.3 D.4 7.阅读分析程序: #include <stdio.h int main() printf("%s","d:\c.txt "); } 上面程序中,字符串"d:川c.txtn"中 个字符,其中是 字符。本程序的运 行结果是: 8.写出程序的运行结果。 #include<stdio.h int main() {inta=56,b=78; printf("%d,%0,",a,a); printf("%o,%x ",b,b); 拓展练习 1.字符‘F’在内存中占 个字节,字符串"chinese"在内存中占 个字节。 2.定义一个变量m为整型且赋初始值是78,应写成语句 3.数学表达式y=x2+2x一4,写成标准的C语言表达式是 4.字符B'的十进制ASCII码值是 ,其对应的八进制数是 ,十六进制数 是0x42,用转义字符表示为 5.字符串"123\Av*7八n"占 个字节数。 6.阅读分析程序: #include <stdio.h int main() double x,y; x=2.8;y=8.2; x=x+y; y=x-y; x=x一y; printf("x=%.1lf,y=%.1lf ",x,y); 本题的功能是 ,本程序的运行结果是: ·18· 总复习方案·第二章数据类型及其运算 7.若整型变量a和b中的值分别为5和8,要求按以下格式输出a和b的值: a=5 b=8 请完成输出语句printf(" ",a,b); 8.分析下面程序,并思考问题: 已知圆半径值是5.2,求圆面积。 #include<stdio.h> #define PI 3.14 int main() { float r,s; r=5.2; s=PI*r米r; printf("s=%f ",s); } 思考: (1)程序中,常量有 (2)程序中,变量有 (3)程序中第2行语句是 命令,其功能是 (4)以"%f"输出,默认小数位 位,本题的运行结果是 (5)如果仅想输出2位小数位,可用" "格式,圆点后面的数字就是指保留的 小数位,注意格式中的小圆点不可省略。 9.下列程序有若干处错误,请改正,改正后写出程序的运行结果。 #include <stdio.h> int main() { int a,B; long a; a=12.6; B=-24; c='a'+b; printf("%d ",c); } 程序中的a'还可以表示成 等。 10.分析下列程序,并思考问题。 #include <stdio.h int main() int a,i; for(i=1;i<=5;i++) a=a*i; ·19… 单招零距离·计算机专业综合·下册 printf("%d",a); 思考: (1)本程序的运行结果是否为1*2*3*45的值?为什么? (2)由此可以总结出什么结论? 技能实践 ©¥③ 1.下面的程序用公式c=(f一32)/1.8将输入的华氏温度转换为摄氏温度请将程序补充完整。 #include<stdio.h int main() { float f,c; printf("请输入华氏温度:"); scanf("%f", c= printf("摄氏温度为%f升n", } 2.输入两个整数,按从小到大的顺序输出,请将程序补充完整。 #include<stdio.h int main() { int x,y,t; printf("请输入x,y:"); scanf("d,%d",&.x,&y); t= y= x=t; printf(" 从小到大输出这两个数是:%d%d八n",x,y); 3.程序填空题:已知10个数,输出其中能被3整除的数。 #include <stdio.h> int main() int i,x,f; ·20· 总复习方案·第二章数据类型及其运算 for(i=0;i<N;i++) { scanf("%d",&x);//从键盘输入一个整数存入变量x if(x%3!=0)f=1; if(f==-1)printf("%d\t",x); } } 4.程序改错题:从键盘输入8个实数,输出它们的总和。程序中有若干处错误,请改正。 #include <stdio.h /著***米*米米*米*米f0und米*米**黄**0米米米/ #define NO int main() int i; /米********米米米f0und**米********* int x; /关¥¥*关米共**关米*f0und米米关*¥¥¥¥关**关/ double sum; /*关米*米米**米关米*f0und关关*****关关关关米/ N=8; i=1; do { scanf("%1f",&x);//从键盘输入一个实数存入变量x sum=sum十x; i++; )while(i<=N); printf("%.2lf",sum);/输出sum中的实数 } 5.程序设计题:通过初始化方法将35,55,21依次存入变量整型x1、x2、x3,要求将x1的 值赋给x3,x2的值赋给x1,x3的值赋给x2,输出处理后各变量的值。 ·21·转义 main 最大数是2 它的5倍是:10  2.(1)头文件#inculde<stdio.h>写错,应该改为 #include<stdio.h>  (2)主函数voidmain后少了一对括号,应该改为 voidmain()  (3)定义变量intx;时少定义了s,应该改为intx,s;  (4)语句x=2要以分号结束,x=2应该改为x= 2;  (5)语句s=x×(x+2);中的乘号要用∗号才能构 成标准的C语言表达式,应该改为s=x∗(x+2);  (6)语句printf("%d/n",s);中表示换行是"/n", 应该改为printf("%d ",s);  (7)花括号成对使用,少了一个"}"作结束,应该在 最后一条语句后添加一个"}"  3.#include<stdio.h> intmain() {  printf("∗∗ "); printf("您好 "); printf("HELLO "); printf("∗∗∗∗∗∗∗∗ "); } 第二章 数据类型与表达式 第一节 数据类型、常量、变量 【知识梳理】 一、标识符  1.(1)字母 数字 下划线  (2)字母 下划线 二、数据的表示  1.数值型常量、字符型常量、符号常量  2.数值型常量  (1)0 0x  (2)小数形式、指数形式.E或e、尾数、指数 整数.  3.字符、字符串  (1)一对单引号' 转义字符 \  (2)一对双引号“”  4.标识符  (1)#define标识符 常量表达式  (3)大 三、数据的存储  1.变量的定义  (1)类型名 变量名[=‹表达式›]  (3)小  2.变量的使用  (2)不确定、0  (3)自动覆盖  3.sizeof  (1)4 (2)2 (3)4 (4)4 (5)2  (6)4 (7)4 (8)8 (9)1 【巩固练习】  1.C 2.D 3.D 4.D 5.A 6.A  7.9 转义 d:\c.txt 8.56,70,116,4e 【拓展练习】  1.1 8  2.intm=78;  3.y=x∗x+2∗x-4或y=pow(x,2)+2∗x-4  4.66 102 '\x42'  5.10  6.实现两个变量x和y值的交换 x=8.2,y=2.8  7.a=%d b=%d  8.(1)PI、3.14、5.2  (2)r、s  (3)宏定义 定义符号常量PI表示实数3.14;  (4)6 s=84.905594;  (5)%.2f  9.调试出错信息:  warningC4142:benignredefinitionoftype //重 复定义  errorC2086:'a':redefinition  //重复定义  warningC4244:'=':conversionfrom'constdouble 'to'int',possiblelossofdata     //类型不一致,可能会丢失数据  errorC2065:'c':undeclaredidentifier  //变量c 未被定义  errorC2065:'b':undeclaredidentifier //变量b 未被定义  改错:  (1)inta,B;改为intB,c;  (2)longa;改为doublea;  (3)c='a'+b;改为c='a'+B;  运行结果:73  程序中的'a'还可以表示成:97、'\141'、'\x61'、0141、 0x61.  10.(1)不是,a在累加前值是随机的、不确定的,应 赋初值1.  (2)每个变量在进行各种运算之前其内必须存入 一个确定的数据. 􀅰11􀅰 总复习方案􀅰参考答案 【技能实践】  1.&f (f-32)/1.8 c  2.(x>y)? y:x (x>y)? x:y  3.intN=10 f=-1  4.调试出错信息:  errorC2106:'=':leftoperandmustbel-value  //赋值号左边必须是变量  改错:  (1)#defineN0改成#defineN8  (2)intx;改成doublex;  (3)doublesum;改成doublesum=0;  (4)N=8;去掉  5.#include<stdio.h> intmain() { intx1=35,x2=55,x3=21,temp;//temp 变量用于临时借用 temp=x1; x1=x2; x2=x3; x3=temp; printf("x1=%d,x2=%d,x3=%d",x1, x2,x3); } 第二节 运算符与表达式 【知识梳理】 二、运算符  1.(1)单目 双目  三目  3.(1)左 右 (2)右 左 三、算术运算符和算术表达式  2.“%”  3.变量  4.从左向右 乘除 加减 四、关系运算符与关系表达式 优先级 运算符 用法 结合方向 6 7 > 大于 >= 大于等于 < 小于 <= 小于等于 == 等于 ! = 不等于 自左向右  2.== ! =  3.1 0 五、逻辑运算符与逻辑表达式  1. 优先级 运算符 用法 结合方向 2 ! 逻辑非 自右向左 11 && 逻辑与 自左向右 12 || 逻辑或 自左向右    2.1 0  3. a b ! a a&&b a||b 非0 非0 非0 0 0 1 1 0 1 0 非0 0 0 1 0 1 0 0  0 1 六、条件运算符与条件表达式  1.表达式2 表达式3  2.三目  3.自右向左 七、赋值运算符和赋值表达式  1.将赋值号右边的值或表达式的值赋值给左边的 变量  2.+= 、- =、∗=、/=、%=、<<=、>>=、 &=、̂=、|= 八、逗号运算符和逗号表达式  1.表达式1,表达式2,􀆺􀆺,表达式n  2.低  4.最右端表达式 九、求字节数运算符与表达式  sizeof 十一、不同类型数据间的混合运算  1.(1)3 舍弃小数部分  (2)自动将运算符两边的表达式转换成同一类型  2.(类型名)(表达式) 【巩固练习】  1.C 2.D 3.B 4.D 5.C  6.fabs(y∗x+log10(x∗x+1)+3∗exp(x)+log (y))+sin(25)  7.-6  8.2  9.0 1 0  10.3,-3,3,-3 24,312 【技能实践】  1.(1)inty=0 (2)x/100 (3)x3 (4)y∗10+ x1 􀅰21􀅰 单招零距离􀅰计算机专业综合􀅰下册

资源预览图

第一节 数据类型、常量、变量-【单招零距离】计算机专业综合(下)
1
第一节 数据类型、常量、变量-【单招零距离】计算机专业综合(下)
2
第一节 数据类型、常量、变量-【单招零距离】计算机专业综合(下)
3
第一节 数据类型、常量、变量-【单招零距离】计算机专业综合(下)
4
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。