全国二级C语言复习资料.docx

上传人:文*** 文档编号:68228299 上传时间:2022-12-27 格式:DOCX 页数:155 大小:474.51KB
返回 下载 相关 举报
全国二级C语言复习资料.docx_第1页
第1页 / 共155页
全国二级C语言复习资料.docx_第2页
第2页 / 共155页
点击查看更多>>
资源描述

《全国二级C语言复习资料.docx》由会员分享,可在线阅读,更多相关《全国二级C语言复习资料.docx(155页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验一认识c语言程序1. C语言是一种高级语言(但更多的接触机器硬件,较其他语言低级,也可称为中级语言), 本身没有输入输出语句,输入操作由库函数scanf完成,输出操作由库函数printf完成。用 高级语言编写的程序叫“源程序”,用机器语言编写的程序叫“目标程序”。2. C语言的主要特点。(1) 语言简洁、紧凑,使用方便、灵活。(2) 运算符和数据类型丰富。(3)程序设计结构化、模块化。(4) 语法限制不太严格,程序设计自由度大。(5) 可直接访问物理地址、进行位操作、直接对硬件操作。(6) 生成目标代码质量高。(7) 可移植性好。3. C语言产生的目的:为描述和实现UNIX操作系统提供一种

2、工作语言而设计的。4. C语言中共有32个关键字、34种运算符(课本365页),9种控制语句(课本370页)。5. C语言的风格。a) 严格区分大小写。b)用“;”作为语句分隔符。c)一行内可写几个语句,一个语句也可写在几行上。d)注释部分以“/*”开始,以“*/”结束,允许出现在程序任何位置(不可插在标识符 中间),不可嵌套,编译程序时不做任何处理(也无法发现注释中的拼写错误)。e) 花括号配对使用标识一个语句组,即构成一个复合语句。6 C语言的构成。(1) C程序由一个或多个函数组成(至少要有一个主函数,即main函数,位置可以任意), 每个函数完成相对独立的功能。函数是C程序的基本单位.

3、(2) 函数由函数的首部和函数体(包括声明部分和执行部分)组成。C程序总是从main 函数开始执行,在main函数中结束,其他通过嵌套调用执行.(3) 一般形式为:函数类型函数名(形参)形参说明(内部变量说明; 执行语句部分; )7 .优秀程序员的素质。(1)使用Tab键缩进代码而不是按空格。(2)花括号对齐.(3)有足够的注释。(4)有合适的空行.& 道序的开发过程。(1) 编辑。源程序文件扩展名“.cpp”;(2) 编译。(快捷键CE+F7)生成目标程序,文件扩展名“.obj”;(3) 连接。生成可执行程序,文件扩展名“.exe”;(4) 执行。(快捷键Ctrl+F5)9.目前程序设计采用

4、的基本方法有面向过程的程序设计和面向对象的程序设计.习题部分1.以下不是C语言特点的是()。A.运算符丰富B.数据结构丰富2.C.可以直接访问物理地址 以卜对C语言叙述正确的是(A.比其他语言高级D. C函数包含的语句数R没有限制)0B.可以不用编译就能被计算机识别执行C.以接近英语国家的自然语言和数学语言作为语言的表达形式D.出现最晚,具有其他语言的一切优点3.下面程序格式错误的是()A. main() B. int a,b,z;C. a=2:b=3;4 . C语言的程序一行写不下,可以用( )oA.逗号换行B.分号换行 C.在任意一分隔符或空格处换行D.回车符换行5 .卜.面把一条语句写在

5、两行时错误的是( )oA. int a, B. int a C. intD. int a,bb;,b;6.程序段中,错误的注释是(A. # in/*包含 */ clued void main() IC. # includea,b;;)oB. # includevoid main /*/(/*主函数*/) ( D. # includevoid main() int x/*初始化=10;/* 打印 */primf(d”,x);7. 一个C程序的执行是从()ovoid main()int x=10;printf(d.x); /*打印 x 的值 *=10*/ )A.本程序的main函数开始,到main

6、函数结束B.本程序文件的第一个函数开始,到本程序文件的最后个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第个函数开始,到本程序main函数结束8. 判断叙述的正确性。(1) 个好程序要有详尽注释;C程序中的# include和# define均不是C语句。(2) C程序书写程序比较自由,一行内必须写一个语句,并要有行号。(3) 个C程序只有在编译、连接成exe程序才能执行。)括起来;C语言的函数体由()部分,其后是()部分。)程序。9. C语言中,当复合语句多于一条时,要用一对(开始,用符号()结束;函数体的前面是(10. C程序编译后生成()程序,连接

7、后生成(11. C编译程序的功能是什么?习题参考答案.1. Do参考知识点2。2. C3. C。语句间用应用“;”隔开。4. C5. Do分号作为语句的结束标志,同一行里前面要有内容。6. Ao不允许在预编译命令中插入注释。7. A8 .(1)正确(2)错误。一个语句可写在多行,一行内也可写多个语句(3)正确9 .花括号 ;: 变量说明;执行语句。10 .目标(或.obj);可执行(或.exe)o11 .答:功能:将C源程序进行语法检查,无语法错误再翻译成目标代码,最后通过和标准库链 接后形成可执行文件。若没有C编译程序,编写的C程序是无法执行的。实验二简单的C语言程序设计运行结果:Hello

8、lWorld!例1输出一行信息。/*第一个简单的C语言程序*/# include void main( )printf( MHeilo!World!nw );/*注释*/编译预处理*/*主函数*/)/*语句*/说明:(1) void表示此函数是“空类型”,即执行此函数后不产生一个函数值。(2)函数体由花括号括起来。“n”是换行符。(3)放在C程序开头的头文件也称包含文件或标题文件,用#include 文件名”或者include 文 件名)的格式,其中文件名为头文件名,一般用h作扩展名。习题 编写一个C程序,输出以下信息:*Good!求两数之积。# include void main( )int

9、 a,b, sum;/*声明部分,定义变量a、b、sum为整型数据*/a=10; b=20;/*为 a, b 赋值*/sum=a*b;运行结果:printf( sum is %dnn , sum):sum is 200说明:“d”是输入输出的“格式字符串”,表示“以十进制整数类型”。习题编写一个程序并运用加减乘除中的3种运算使1-15内的4个数的运算结果为24;例3求2个数中的较大者。# include void mainO int max(int x, int y); int a, b, c ;scanf ( w%d, %d , &a, &b) c=max (a, b);printf( Mm

10、ax=%dnw , c);/*对被调用函数max的声明*/*定义整型变量a,b,c*/*输入变量a, b的值*/*调用max函数。将得到的值赋予c*/*输出c的值*/int max(int x, int y) int z ;if (xy) z=x;else z=y;return(z);/*定义函数max,函数值为整型,形式参数x,y为整型*/*max函数中的声明部分,定义本函数中用到的变量z为整型*/*将z的值返回,通过max带会到调用函数的位置*/说明:“&”的含义是“取地址”。习题编写一个C程序,要求能输入a,b,c 3个值,输出其中的最大者。习题参考答案:1. # include voi

11、d mainO ( printf( w*nM );printf( “n” );printf( u Good! nw );printf ( unff ):printf( a*nn );2. # include void mainO int ay b, c, d, sum;a=2; b=4; c=8; d=10;sum=(d-c/a)*b:printf( Msum is %dnn , sum):3. 解法h# include void mainO Iint max(int x, int y, int z);int a, b, c, d ;scanf( %d,%d,%d”,&a,&b,&c); d=

12、max (a, b, c);printf( max=%dn,d) ;/*对被调用函数max的声明*/*定义整型变量a, b, c, d*/*输入变量a, b,c的值*/*调用max函数。将得到的值赋予d*/*输出d的值*/int max (int x, int y, int z) /*定义函数max,函数值为整型,形式参数x, y, z为整型*/int p ;/*max函数中的声明部分,定义本函数中用到的变量p为整型*/if(xy) p=x ;elsep=y;if (yz) p=y;elsep=z;if(xz) p=x;elsep=z;return(p);/*将P的值返回,通过max带会到调用

13、函数的位置*/解法2#includevoid main( ) 运行结果:please input a,b,c:6,5, 1/The largest number is 6int a, b, c, max;printf ( M pl ease input a, b, c: nw );scanf( u%d,%d,%dM ,&a,&b,&c);max二a:if(maxb)max=b;i f(maxc)max=c;printf( The largest number is %d” , max);实验三程序的灵魂一算法程序的内容1 .对数据的描述。在程序中制定数据的类型和数据的组织形式,即数据结构。2

14、.对操作的描述。即操作步骤,也就是算法.二.算法1 .含义:为解决一个问题而采取的方法和步骤。2 .分类:a.数值运算算法。目的是求数值解,如求方程的根等:b.非数值运算算法.如图书检索、人事管理、行车调度管理等。3 .特点:有穷性。一个算法应包含有限的操作步骤:确定性。算法中的每个步骤都应该是确定的;有零个或多个输入。输入是指执行算法时需从外界获得必要信息: 有一个或多个输出。算法是为了求解,“解”就是输出。 有效性。算法中的每个步骤都应能有效地执行,并得到确定的结果。三. 算法的表示1 .表示方法:自然语言、传统流程图、结构流程图、伪代码、PAD图等.2 .流程图表示算法的优点:流程图是用

15、一些图框表示各种操作。用图形表示算法, 直观形象,易于理解。3 .常用的流程图符号:起止框输入输出框判断框处理框连接点注释框4 .流程图的内容:表示相应操作的框、带箭头的流程线、框内外必要的文字说明。四.三种基本结构1 .顺序结构。当型(while)循环结构在执行完A框所指定的操作后,必然接着执行B框所指定的操作。 顺序结构是最简单的一种基本结构。2 .选择结构。又称为选取结构或分支结构。该结构中必包含一个判断框。根据给定的条件p是否成 立而选择执行A框或B框(允许有一个框为空)。3 .循环结构。又称为重复结构,即反复执行某一部分的操作。有“当型和“直到型两种结构。a.当给定条件pl成立时,执

16、行A框操作,执行完A后,再判断条件pl是否成立,如果仍然成 立,再执行A框,当某一次pl条件不成立,此时不执行A框,而从b点脱离循环结构.b.直到型(until)循环结构:相当于dowhile():先执行A框,然后判断条件p2是否成立,如 果p2不成立,则再执行A框,然后再对p2条件作判断,如果p2仍然不成立,又执行A,如 此反复执行A,直到给定的条件p2成立为止,此时不再执行A,从b点脱离本循环结构。4 .以上三种结构的共同点:1 .只有一个入口。2.只有一个出口. 3.内部的每一部分都有机会被执行到。4 .结构内不存在“死循环”(无终止的循环)。5 .一个结构化算法由一些基本结构顺序组成;

17、基本结构间不存在向前或向后跳转,流程的跳转只存 在了一个基本结构范围内(如循环中流程的跳转);一个非结构化的算法可用等价的结构化算法代 替,其功不变.五.结构化程序1 .定义:用高级语言表示的结构化算法。2 .方法:(1)自顶向下:(2)逐步细化:(3)模块化设计:(4)结构化编码。实验四标识符和常量- 标识符(1) 定义:用来标识变最、常量、函数等的字符序列。(2) 命名规则:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线。(3) 特点:大小写敏感(如sum与Sum不一样);不能使用关键字(如int)。(4) 长度:最长32个字符,建议不要超过8个字符。(5) 类型: 关键字:

18、又称保留字,特定的标识符,不允许用大写字母: 预定义标识符:主要用于系统提示的库函数名(如printf)和预编译处理命令(如define); 用户标识符:用户根据需要定义的标识符,允许使用预定义标识符(如scanf)但失去原特 定意义。习题 1.合法的C语言关键字是()。A. VAR B. cher C. integer D. default E. Float F. signed G Char2.以下属于合法的用户标识符的分别是()。(1) A. Pad 和 p#dB. scanf 和 alOC. void 和 maxD. a*和 for(2) A. INT 和 JswB. keep%和C.

19、023 和一amD. abc.c 和 file二. 常量1. 定义:在程序运行过程中,其值不能改变的量,分为数值常量和符号常量。2. 类型: (1)符号常量(用一个标识符代表的一个常量)定义格式:#define 常量名 常量值(如:#define PI 3.14 )说明:a.“#define”是定义符号常量的关键字,是必须的:b.符号常量名一般用大写字母表示;符号常量值在其作用域内不能改变或赋值: c.使用好处:含义清楚,在需要改变一个常量时能“一改全改”。(2)数值常量a.整型常量。(即整常数,3种形式)十进制整数;八进制整数(形式为0d , d取值。7之间)91A如:0123= (123

20、8= IX 8 + 2X 8 + 3X 8 = 83-011= (-11) = 一 (lx 8 +1x8 ) = -9十六进制整数(以Oxd , d取值09或从“af的字母)。如:0x123= Q23 ,6 = lx 16 2 + 2x 161 + 3X 160 = 291-0x12= (-12 |6 = - Qx ld + 2x 16) = -18b.实型常量.(即浮点型常量,是用一个十进制表示的符号实数)十进制小数形式:由数字和小数点组成;指数形式:由数字、小数点和e(或E)组成,且e(或E)之前必须有数字,e(或E) 之后的指数必须为整数。(“规范化的指数形式:字母e(或E)前的小数部分

21、中小数点左边只有一位非零数字,如1.23e5) c.字符常量.定义:用单撇号()括起来的一个字符。如:言,W, ,? J等。特殊的字符常量一转义字符,以反斜杠()开头,并将反斜杠()后面的字符转换 为另外的意义。如:字符型式含义字符型式含义n回车换行t水平制表制表区占8列)b退格V回车不换行f换页反斜杠字符7单撇号字符双撇号字符ddd 1到3位8进制所代表的字符每个d代表1位8进制)xhh 1到2位16进制所代表的字符每个h代表1位16进制,x是必须的) d.字符串常量.定义:用双撇号()引起来的字符序列称为字符串常量。如:How do you do. , #12345”等。(只能够把字符常量

22、赋给一个字符变量,而不能把字符串常量赋给一个字符变量。如:charc=A 是正确的,而char c=A则是错误的。)字符常量与字符串常量的区别:字符串常量存储时,在字符串的结尾加一个“字符串结束标志(即0)。如:对丁字符串CHINA”在内 存中存放的形式如下:C H I N A 0它占6个字节而不是5个字节。(书写字符串的时候 不要写VT)在程序设计中一般用字符是否等于V)来判断字符串是否结束。3. 整型数据在内存中的存储形式 存在形式:二进制方式。(最高位是符号位,0为正,1为负) 十进制整数转化为补码。(一个整数占16位) 对于正数,其补码表示与原码相同。 对于负数,其补码为它的绝对值的:

23、进制形式,按位取反加1。4. 字符数据在内存中的存储形式 将一个字符常量放到一个字符变量中,实际是将该字符的相应的ASCH代码放到存储单元 中.如a , A , O的 ASCII 码分别是97, 65, 48。 字符数据的存储方式与整数相似,因此字符数据可以和整型数据相通用,一个字符数据既可 以以字符形式(c)输出,也可以以整数形式(%d)输出。 字符数据只占一个字节,只能存放0-255范围的整数。5. 浮点型数据在内存中的存储形式一个浮点型数据在内存中占4个字节(32位),按照指数形式进行存放,分为小数部分和指数 部分进行存储。 不少系统以24位表示小数位(包括符号),以8位表示指数部分(包

24、括指数符号)。小数部分占 位数越多,发示有效数字越多。指数部分占的位数越多,则能表示的数越大。习题 3.字符型常量在内存中存放的是(C.内部码D.十进制码C. 68D. DA. ASCII 码 B. BCD 码4 . -8在内存中的存储形式是(5 .合法的字符常量是().A. BB. 0106 .错误的字符串常量是().0,D.A. abc B. 12 12 C.7 .数值029是一个().C.非法数D.十六进制数);字符串常量BBn r”在内存中所占C. D. ,483,C. 037 D. “ ab6 OeO“nabt 07a, b, c表示各位的数,则从左到右各个数字是bac的A.八进制数

25、B.十进制数8 .字符串常量“22a,0n”的长度是( 字节数为(),长度是(9 .不合法的常量是().A.2B. 10 .非法的C语言转义字符是( A.bB. 0xf11 .将下面的常量归类。 0x7a 57L,m(6) 1E0 0.012e00312 .假设m是一个三位数,从左到右用 三位数的表达式为()习题参考答案:3. A6. A10. B浮点型常量有:12. (m/10)%10*100+m/100*10+m%101. D F2. B A4. 11111111 111110005. B7. C 8. 6 : 7; 6o 9. D11.整型常量有:字符型常量有:实验五常量的简单程序应用例

26、一符号常量的使用#include define PRICE 40/*定义常量 PRICE,其值为 40*/void main() int num 1, num 2,total 1,total 2;num 1=10; num 2=20;运行结果:total l=num 1*PRICE;total 2=num 2*PRICE;total 2=800printf (*total l=%dn*, total 1);printf(*total 2=%dn*, total 2);例二转义字符的使用程序一:#include main( ) char ch= 124;定义字符变量ch,其值为转义字符124pr

27、intf ( a%cnw , ch);运行结果:T解析:转义字符124,为八进制数,需转换成十进制数得到其对应的ASCII码。91n即(124) 8=1X8 +2X8 +4X8 =84。程序二:ftinclude void main( )printf(* ab_ct derftgn*);printf(*htibbj k*);解析: 第一个printf函数: 先在第一行左端输出“ ab_c”,遇到“t”(“跳格”经8列的“制表区”到下一个“制表位置”, 即第9列)。 第911列输出“ de”,遇到“r”(不换行“回车”返回本行最左端第一列位置),再输出“f”, 得 “f ab c de”。 再遇

28、到“t”,移到第9行输出“g”,得fa b _ c _ _ gde 第二个printf函数: 现在第一行左端输出“h”,遇到“t”跳至第9行输出“i”,得“h iwo (此时当前输出位置在第10列) 遇到“b(退一格)2次,即退到第8列,输出“j_ k”,得“hj _k”。在屏幕输出的结果是:在打印机输出的结果:fab c gdefgdehj khj i k不同结果的原因说明:使用“r”和“b”后所输出的字符(包括空格和跳格所经过位置)在屏幕显示时将取代原 来屏幕上该位置原显示的字符。其实,扉幕上完全按程序要求输出了全部的字符,只是因为在输出前面的字符后很快又输 出后面的字符,还未看清楚就被新

29、的字符取代旧的字符。习题 1.定义一个符号常量TIME和一个整型常量num,其值为12和20在主函数中将它们的乘积输出。2.利用转义字符编写一个C程序,要求运行结果为ASCII码值为014对应的“音符图形”。习题参考答案:/*定义符号常量TIME,其值为12*/*定义整型常量TIME,其值为20*/ printf(*total =%dn”, total);1. include define PRICE 12 void main( ) int total;int num =20; total =num * TIME;2. 根据题意,必须先求出ASCII码值为014的八进制数,进而转换成转义字符。

30、而(16) 8=1X8、6X8=14,故题意所指的转义字符为16。#include void main() char a= 016;定义字符变量a,其值为转义字符016printf ( a%cnw , a) ;实验六变量一. 变量1 .定义:其值可以改变的量。(变量代表内存中具特定属性的一个存储单元,即地址,用来存放数据)2 .类型:整型变量(int)、浮点型变量(float)、字符型变量(char)。3 .格式:数据类型变量1,变量2,,变量n;例: int a=3;(a是变量名,3是变量值)4 .数据类型(int、float、char)决定分配字节数和数的表示范围。一般整型占2个字节,浮点

31、型占4 个字节,字符型占1个字节。5 .赋值方式。a、定义时赋值。如:int a=l, b =-3, c: b、以语句的形式赋值。如:float x; x=10. 5;二. 要求变量先“定义后使用”a、凡未被事先定义的不作为变量名,保证程序中变量名使用正确。如:int student;而在程序执行中错写为:stadent即stadent = 40;这时就会出现:statent: undeclared identifier (不明确定义)的错误提示。b、每一个变量被指定为一确定类型,在编译时就能为其分配相应的存储单元。c、指定每一变量属于某一个类型,这就便于在编译时,据此检杳该变量所进行的运算是

32、否合法。如:只能对整型变量a和b可以进行求余运算a%b( “%”为求余运算符),而对浮点型变量a和b 就不可以进行求余运算。三. 整型变量的分类1 .定义格式:int变量名1,变量名2,,变量名n:整型变量的基本类型符为into可根据数值范围定义三种整型变量。(1)基本整型:以int表示。如:int a;(2)短整型:以 short int 或 short 表示。如:short b;(3)长整型:以 long int 或 long 表示。如:long c: 4321; 0L;数值的范围:shortintlong2 .为充分利用变量的表示范围,将变量定义为“无符号”类型,即加上unsigned修

33、饰符。如果不指 定为unsigned则默认为有符号的。(1)有符号基本整型:signed into如:int a, b;(2)无符号基本整型:unsigned int , 如:unsigned a, b:(3)有符号短整型:signed short int0 如:short a, b;(4)无符号短整型:unsigned short int0 如:unsigned short a, b;(5)有符号长整型:signed long int o 如:long a, b;(6)无符号长整型:unsigned long into 如:unsigned long a, b;3.标准定义的整形数据(方括号

34、部分可以省略不写,尤其是signed 股不写)类型比特数取值范围输出格式signed int16(2字节)-3276832767%dunsigned int16(2字节)065535%usigned shortint16(2字节)-3276832767%dunsigned shortint16(2字节)0-65535%ulong int32(4字节)-2147483648 2147483647%1unsignedlongint32(4字节)0 4294967295%lu四. 浮点型变量的分类1. 定义格式:float变量名1,变量名2, %变量名n;浮点型变量的基本类型符为float。floa

35、t和double的输出格式都是f。2. 分为:单精度型(float)、双精度型(double)和长双精度型(long double).类型比特数有效数字数值范围float3267-3.4X10 (-38) 3. 4X1038double6415 16-1.7 X107-308)1.7 X10-308long double1281819-1. 2X10- (一4932).2X 10(932五. 字符变量1 .字符变量用来存放字符常量,一个字符变量只能放一个字符常量。字符变量占一个字节(8位)。2 .定义格式:char变量名1,变量名2, ,变量名n;3 . char是定义字符变量的关键字。字符变

36、量用%c作为输出格式。六. 不同类型数据间的转换和运算不同类型的数据要转换为同一类型,然后才进行运算。转换规则如图: double - float高t横向向左的箭头是必须转换的运算;tlong向上的箭头只表示数据类型级别的高低,低 t转换时是直接转换的。如:int转换为unsignedlong是直接转换为long. t int - char、 short习题 1.可以作为C语言程序中的变量名是(A. 1 B. al C. int D. *P2 .下面程序的输出为( )oA. 0 B. 1 C. -1 D.变量无定义3 .有定义char s= 092,则该语句()。A.使s的值包含一个字符B.使

37、s的值包含4个字符C.使s的值包含4个字符I).定义不合法,s的值不确定4 .的字符数分别为(5 .设int类型数据长度为()和(6 .如下程序的输出为( ncludemain( ) printf( M%dw .null);若有说明:char sl= 067 ; char s2:1 ; char s3=, 2 ; si, s2, s3 所包含),(),()o2个字节,则int和unsigned ),long类型数据占()oA. 0C. 1int类型数据的取值范围分别为 )个字节。B.变量无定义D. -17 . C语言中,int. char, short三种类型数据所占的内存由()决定。比如在1

38、6位机和32位机中,int型数据所占字节数分别是2和4。8 .不属于C语言类型的是()1 . signed short int B. unsigned long int C. unsigned int D. long short9 .错误的int类型常量是( )oA. 32768 B. 0 C. 037 D. OxAF10 .为了求出s=10!,则变量s的类型应该为()。长整型long数据在内存中存储形式为( )O 犷求余运算的运算数必须都是()型。11*若x为int或nsigned int型变量,则执行下面语句的输出值为(x=65535;printf(, x);12若a为整型变量,则下面语句

39、的输出值为( )oa= -2L;printf ( M%dnw , a);13.下述语句的输出为()。int x= - 1; printf ( 4%d, %u,%ow , x, x, x);A. -1, -1, -1B. -1, 32767, -177777C. -1, 32768, 177777D. 一 1, 65535, 17777714. 若有说明语句char w; int x; float y; double z;则表达式 w * x + z -y的结果为()类型。A. float B. char C. int D. double15. C语言中定义了一个变量,代表内存中的一个().16

40、. 若变量a是int类型,并执行语句:a= A +1.6,则a的值为().A.字符CB.不允许字符型和浮点型相加C.浮点型D.字符A的ASCII码值加上1习题参考答案:1-3 B D D 4. 1;无定值,说明不合法:15. -3276832767 ; 065535; 46. B 7.所用机器的机器字长 8. A9. A 10. long ;补码;整11. 112. -213. D 14. D15.地址 16. D解析:11.变量x占用2个字节,当它为int型,其表示范围是一3276832767;当它为unsigned型, 其表示范围为。65535,两者都无法正确表示65535。但65535=

41、32767+32767+1,在计算机内部将二进制补码相加:01111111 11111111+ oiiinn niinn11111111 11111110+ 00000000 0000000111111111 H111U1最后结果为iinnn iiniin (补码),原码等于其反码加1,即:-00000000 00000000+00000000 000000012= -00000000 000000012 = -112. 一个常整埴,若其值在一3276832767范围内,可赋给一个int或long int型变量,若超出 上述范围而在一21474836482147483647范围内,其值应赋给l

42、ong int型变量。-2L为long int 型,但值为一2,可由类型转换把长整型换为短整型再赋给int型变最a,按%d格式输出。13. 提示:-1在内存中以补码形式存储:niinn 11111111.实验七变量的简单程序应用例一整型数据的溢出#includevoid mainO (运行结果:short int a, b;32767 32768a = 32767:b = a+1;printf(*a=%d, b=%dn*, a, b);分析:b输出的值不为32768的原因:数值32767在内存的表示方式为01111111 1111111,加1得10000000 0000000 (即一32768

43、).理论值32768超出int型变量的取值范围,导致“溢出解决办法:将a b定义为long型,并按%ld进行输出就可以得到正确的结果。(将变量b改成long类型并将a+1改成a+lL,并用%ld格式输出) 例二浮点型数据的舍入误差浮点型变量用有限的存储单元存储,能提供的有效数字有限(如门oat型提供6至7位,double型提供 15至16位),有效位外的数字将被舍去而赋予随机值,会产生“不正确”的结果。#includevoid mainO float a, b;运行结果:a = 12345678848. 000000b = 12345678848. 000000a=123456. 789e5;b = a +20;printf(*a=%fn*, a);printf(*b=%fn*, b);解决办法:将a、b定义为double型。例三字符变量与整数的通用#includevoid mainO (运行结果:char cl,c2;a , bcl=97; c2=98

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁