全国二级C语言复习资料_第1页
全国二级C语言复习资料_第2页
全国二级C语言复习资料_第3页
全国二级C语言复习资料_第4页
已阅读5页,还剩154页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一认识c语言程序C语言是一种高级语言(但更多的接触机器硬件,较其他语言低级,也可称为中级语言),本身没有输入输出语句,输入操作由库函数scanf完成,输出操作由库函数printf完成。用高级语言编写的程序叫“源程序”,用机器语言编写的程序叫“目标程序”。C语言的主要特点。语言简洁、紧凑,使用方便、灵活。运算符和数据类型丰富。 (3)程序设计结构化、模块化。语法限制不太严格,程序设计自由度大。可直接访问物理地址、进行位操作、直接对硬件操作。生成目标代码质量高。 (7)可移植性好。C语言产生的目的:为描述和实现UNIX操作系统提供一种工作语言而设计的。C语言中共有32个关键字、34种运算符(课本365页),9种控制语句(课本370页)。C语言的风格。a)严格区分大小写。b)用“;”作为语句分隔符。c) 一行内可写几个语句,一个语句也可写在几行上。d)注释部分以“/*”开始,以“*/”结束,允许出现在程序任何位置(不可插在标识符中间),不可嵌套,编译程序时不做任何处理(也无法发现注释中的拼写错误)。e)花括号{}配对使用标识一个语句组,即构成一个复合语句。C语言的构成。C程序由一个或多个函数组成(至少要有一个主函数,即main函数,位置可以任意),每个函数完成相对独立的功能。函数是C程序的基本单位.函数由函数的首部和函数体(包括声明部分和执行部分)组成。C程序总是从main函数开始执行,在main函数中结束,其他通过嵌套调用执行.一般形式为: 函数类型函数名(形参)形参说明(内部变量说明;执行语句部分;).优秀程序员的素质。(1) 使用Tab键缩进代码而不是按空格。 (2) 花括号{}对齐.(3) 有足够的注释。 (4) 有合适的空行.&道序的开发过程。编辑。源程序文件扩展名“.cpp”;编译。(快捷键CE+F7)生成目标程序,文件扩展名“.obj”;连接。生成可执行程序,文件扩展名“.exe”;执行。(快捷键Ctrl+F5)9.目前程序设计采用的基本方法有面向过程的程序设计和面向对象的程序设计.习题部分1.以下不是C语言特点的是( )。A.运算符丰富 B.数据结构丰富

2.C.可以直接访问物理地址以卜对C2.C.可以直接访问物理地址以卜对C语言叙述正确的是(A.比其他语言高级D.C函数包含的语句数R没有限制)0B.可以不用编译就能被计算机识别执行C.以接近英语国家的自然语言和数学语言作为语言的表达形式D.出现最晚,具有其他语言的一切优点3.下面程序格式错误的是( )«A.main()B.A.main()B.{inta,b,z;C.a=2:b=3;.C语言的程序一行写不下,可以用()oA.逗号换行B..C语言的程序一行写不下,可以用()oA.逗号换行B.分号换行C.在任意一分隔符或空格处换行 D.回车符换行.卜.面把一条语句写在两行时错误的是()oA.inta,B.intaC.intD.inta,bb; ,b;b; ,b;6.程序段中,错误的注释是(#in/*包含*/clued<stdio.h>voidmain(){IC.#include<stdio.h>a,b; ;)o#include<stdio.h>voidmain/**/(/*主函数*/)(}D.#include<stdio.h>voidmain(){intxvoidmain(){intx/*初始化=10;/*打印*/primf("%d”,x); }7.一个C程序的执行是从( )ovoidmain(){intx=10;printf("%d''.x);/*打印x的值*"*=10*/)A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后•个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第•个函数开始,到本程序main函数结束判断叙述的正确性。•个好程序要有详尽注释;C程序中的#include和#define均不是C语句。C程序书写程序比较自由,一行内必须写一个语句,并要有行号。•个C程序只有在编译、连接成・exe程序才能执行。)括起来;C语言的函数体由()括起来;C语言的函数体由()部分,其后是( )部分。)程序。开始,用符号( )结束;函数体的前面是(C程序编译后生成( )程序,连接后生成(C编译程序的功能是什么?习题参考答案•.1.Do参考知识点2。 2.C 3.C。语句间用应用“;”隔开。 4.CDo分号作为语句的结束标志,同一行里前面要有内容。Ao不允许在预编译命令中插入注释。 7.A. (1)正确(2)错误。一个语句可写在多行,一行内也可写多个语句(3)正确.花括号{}; { ; }:变量说明;执行语句。.目标(或.obj);可执行(或.exe)o.答:功能:将C源程序进行语法检查,无语法错误再翻译成目标代码,最后通过和标准库链接后形成可执行文件。若没有C编译程序,编写的C程序是无法执行的。实验二简单的C语言程序设计运行结果:运行结果:HellolWorld!例1输出一行信息。/*第一个简单的C语言程序*/#include<stdio.h>voidmain() {printf(MHeilo!World!\nw);/*注释*//♦编译预处理*//*主函数*/) /*语句*/说明:(1)void表示此函数是“空类型”,即执行此函数后不产生一个函数值。(2)函数体由花括号{}括起来。“\n”是换行符。(3)放在C程序开头的头文件也称包含文件或标题文件,用#include"文件名”或者include<文件名)的格式,其中文件名为头文件名,一般用h作扩展名。习题编写一个C习题编写一个C程序,输出以下信息:**********Good!求两数之积。#include<stdio.h>voidmain(){inta,b,sum; /*声明部分,定义变量a、b、sum为整型数据*/a=10;b=20; /*为a,b赋值*/sum=a*b; 运行结果:printf("sumis%d\nn,sum): } sumis200说明:“%d”是输入输出的“格式字符串”,表示“以十进制整数类型”。习题 编写一个程序并运用加减乘除中的3种运算使1-15内的4个数的运算结果为24;例3例3求2个数中的较大者。#include<stdio.h>voidmainO{intmax(intx,inty);inta,b,c;scanf(w%d,%d",&a,&b)c=max(a,b);printf(Mmax=%d\nw,c);/*对被调用函数max的声明*//*定义整型变量a,b,c*//*输入变量a,b的值*//*调用max函数。将得到的值赋予c*//*输出c的值*/intmax(intx,inty){intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z); }/*定义函数max,函数值为整型,形式参数x,y为整型*//*max函数中的声明部分,定义本函数中用到的变量z为整型*//*将z的值返回,通过max带会到调用函数的位置*/说明:“&”的含义是“取地址”。习题编写一个C程序,要求能输入a,b,c3个值,输出其中的最大者。

习题习题参考答案:#include<stdio.h>voidmainO(printf(w**********\nM); printf(“\n”);printf(uGood!\nw); printf(u\nff):printf(a**********\nn); }#include<stdio.h>voidmainO{intayb,c,d,sum; a=2;b=4;c=8;d=10;sum=(d-c/a)*b: printf(Msumis%d\nn,sum): }解法h解法h#include<stdio.h>voidmainOIintmax(intx,inty,intz);inta,b,c,d;scanf("%d,%d,%d”,&a,&b,&c);d=max(a,b,c);printf("max=%d\n",d); }/*对被调用函数max的声明*//*定义整型变量a,b,c,d*//*输入变量a,b,c的值*//*调用max函数。将得到的值赋予d*//*输出d的值*/intmax(intx,inty,intz){ /*定义函数max,函数值为整型,形式参数x,y,z为整型*/intp;/*max函数中的声明部分,定义本函数中用到的变量p为整型*/if(x>y)p=x;else p=y;if(y>z)p=y;else p=z;if(x>z)p=x;else p=z;return(p);/*将P的值返回,通过max带会到调用函数的位置*/解法2#include<stdio.h>voidmain(){运行结果:pleaseinputa,b,c:运行结果:pleaseinputa,b,c:6,5,1/Thelargestnumberis6printf(Mpleaseinputa,b,c:\nw);scanf(u%d,%d,%dM,&a,&b,&c);max二a:if(max<b) max=b;if(max<c) max=c;printf("Thelargestnumberis%d”,max);实验三程序的灵魂一算法程序的内容.对数据的描述。在程序中制定数据的类型和数据的组织形式,即数据结构。.对操作的描述。即操作步骤,也就是算法.二.算法.含义:为解决一个问题而采取的方法和步骤。.分类:a.数值运算算法。目的是求数值解,如求方程的根等:b.非数值运算算法.如图书检索、人事管理、行车调度管理等。.特点:①有穷性。一个算法应包含有限的操作步骤:②确定性。算法中的每个步骤都应该是确定的;③有零个或多个输入。输入是指执行算法时需从外界获得必要信息:有一个或多个输出。算法是为了求解,“解”就是输出。有效性。算法中的每个步骤都应能有效地执行,并得到确定的结果。三.算法的表示.表示方法:自然语言、传统流程图、结构流程图、伪代码、PAD图等..流程图表示算法的优点:流程图是用一些图框表示各种操作。用图形表示算法,直观形象,易于理解。.常用的流程图符号:起止框 输入输出框 判断框 处理框 连接点 注释框.流程图的内容:表示相应操作的框、带箭头的流程线、框内外必要的文字说明。四.三种基本结构.顺序结构。当型(while)循环结构在执行完A框所指定的操作后,必然接着执行B框所指定的操作。顺序结构是最简单的一种基本结构。.选择结构。又称为选取结构或分支结构。该结构中必包含一个判断框。根据给定的条件p是否成立而选择执行A框或B框(允许有一个框为空)。.循环结构。又称为重复结构,即反复执行某一部分的操作。有“当''型和“直到''型两种结构。a.当给定条件pl成立时,执行A框操作,执行完A后,再判断条件pl是否成立,如果仍然成立,再执行A框,当某一次pl条件不成立,此时不执行A框,而从b点脱离循环结构. .b.直到型(until)循环结构:相当于do~while():先执行A框,然后判断条件p2是否成立,如果p2不成立,则再执行A框,然后再对p2条件作判断,如果p2仍然不成立,又执行A,如此反复执行A,直到给定的条件p2成立为止,此时不再执行A,从b点脱离本循环结构。.以上三种结构的共同点:.只有一个入口。2.只有一个出口.3.内部的每一部分都有机会被执行到。.结构内不存在“死循环”(无终止的循环)。.一个结构化算法由一些基本结构顺序组成;基本结构间不存在向前或向后跳转,流程的跳转只存在了一个基本结构范围内(如循环中流程的跳转);一个非结构化的算法可用等价的结构化算法代替,其功不变.五.结构化程序.定义:用高级语言表示的结构化算法。.方法:(1)自顶向下:(2)逐步细化:(3)模块化设计:(4)结构化编码。实验四标识符和常量--标识符定义:用来标识变最、常量、函数等的字符序列。命名规则:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线。特点:大小写敏感(如sum与Sum不一样);不能使用关键字(如int)。长度:最长32个字符,建议不要超过8个字符。类型:关键字:又称保留字,特定的标识符,不允许用大写字母:预定义标识符:主要用于系统提示的库函数名(如printf)和预编译处理命令(如define);用户标识符:用户根据需要定义的标识符,允许使用预定义标识符(如scanf)但失去原特定意义。习题1.合法的C语言关键字是( )。A.VARB.cherC.integerD.defaultE.FloatF.signedGChar2.以下属于合法的用户标识符的分别是( )。A.Pad和p#d B.scanf和alO C.void和max D.a*和forA.INT和Jsw B.keep%和<fr> C.023和一am D.abc.c和file二.常量定义:在程序运行过程中,其值不能改变的量,分为数值常量和符号常量。类型:(1)符号常量(用一个标识符代表的一个常量)①定义格式:#define常量名常量值 (如:#definePI3.14)②说明:a.“#define”是定义符号常量的关键字,是必须的:b.符号常量名一般用大写字母表示;符号常量值在其作用域内不能改变或赋值:c.使用好处:含义清楚,在需要改变一个常量时能“一改全改”。(2)数值常量a.整型常量。(即整常数,3种形式)①十进制整数; ②八进制整数(形式为0d,d取值。〜7之间)9 1A如:0123=(1238=IX8+2X8+3X8=83-011=(-11)=一(lx8+1x8)=-9③十六进制整数(以Oxd,d取值0〜9或从“a"〜"f"的字母)。如:0x123=Q23,6=lx162+2x161+3X160=291-0x12=(-12|6=-Qxld+2x16°)=-18b.实型常量.(即浮点型常量,是用一个十进制表示的符号实数)①十进制小数形式:由数字和小数点组成;②指数形式:由数字、小数点和e(或E)组成,且e(或E)之前必须有数字,e(或E)之后的指数必须为整数。(“规范化的指数形式":字母e(或E)前的小数部分中小数点左边只有一位非零数字,如1.23e5)c.字符常量.①定义:用单撇号('')括起来的一个字符。如:言,W,,?J等。②特殊的字符常量一转义字符,以反斜杠(\)开头,并将反斜杠(\)后面的字符转换为另外的意义。如:

字符型式含义字符型式 含义\n回车换行\t 水平制表制表区占8列)\b退格V 回车不换行\f换页\\ 反斜杠字符7单撇号字符双撇号字符\ddd1到3位8进制所代表的字符每个d代表1位8进制)\xhh1到2位16进制所代表的字符每个h代表1位16进制,x是必须的)d.字符串常量.①定义:用双撇号("")引起来的字符序列称为字符串常量。如:"Howdoyoudo.","#12345”等。(只能够把字符常量赋给一个字符变量,而不能把字符串常量赋给一个字符变量。如:charc='A'是正确的,而charc="A"则是错误的。)字符常量与字符串常量的区别:②字符串常量存储时,在字符串的结尾加一个“字符串结束标志''(即'0')。如:对丁字符串"CHINA”在内存中存放的形式如下:CHINA\0它占6个字节而不是5个字节。(书写字符串的时候不要写VT)③在程序设计中一般用字符是否等于V)’来判断字符串是否结束。整型数据在内存中的存储形式存在形式:二进制方式。(最高位是符号位,0为正,1为负)十进制整数转化为补码。(一个整数占16位)对于正数,其补码表示与原码相同。对于负数,其补码为它的绝对值的:进制形式,按位取反加1。字符数据在内存中的存储形式将一个字符常量放到一个字符变量中,实际是将该字符的相应的ASCH代码放到存储单元中.如'a','A','O'的ASCII码分别是97,65,48。字符数据的存储方式与整数相似,因此字符数据可以和整型数据相通用,一个字符数据既可以以字符形式(%c)输出,也可以以整数形式(%d)输出。字符数据只占一个字节,只能存放0-255范围的整数。浮点型数据在内存中的存储形式①一个浮点型数据在内存中占4个字节(32位),按照指数形式进行存放,分为小数部分和指数部分进行存储。②不少系统以24位表示小数位(包括符号),以8位表示指数部分(包括指数符号)。小数部分占位数越多,发示有效数字越多。指数部分占的位数越多,则能表示的数越大。习题3.字符型常量在内存中存放的是(C.内部码 D.十进制码C.C.内部码 D.十进制码C.68 D.D.-8在内存中的存储形式是(TOC\o"1-5"\h\z.合法的字符常量是( ).A."B" B.'\010'.错误的字符串常量是( ).0',D.A.'abc'B.''12'0',D..数值029是一个( ).

C.非法数 D.十六进制数)C.非法数 D.十六进制数);字符串常量"BB\n\\\'\r”在内存中所占C.''D.,\483,C.''037'D."\"④“ab6"⑤OeO“\nab\t"⑨'\07‘ ⑩''a,b,c表示各位的数,则从左到右各个数字是bac的.字符串常量“\\\22a,0\n”的长度是(字节数为( ),长度是(TOC\o"1-5"\h\z.不合法的常量是( ).A. ''2‘ B."".非法的C语言转义字符是(A. '\b' B.'\0xf'.将下面的常量归类。①0x7a②57L ③,m'(6)1E0 ⑦0.012e003 ⑧.假设m是一个三位数,从左到右用三位数的表达式为( )«习题参考答案:3.A6.A10.B浮3.A6.A10.B浮点型常量有:⑤@⑦12.(m/10)%10*100+m/100*10+m%104.1111111111111000 5.B7.C8.6:7;6o9.D11.整型常量有: ①②字符型常量有:③©⑧⑨⑩实验五常量的简单程序应用例一符号常量的使用#include<stdio.h>^definePRICE40 /*定义常量PRICE,其值为40*/voidmain(){intnum1,num2,total1,total2;num1=10;num2=20; 运行结果:totall=num1*PRICE;total2=num2*PRICE; total2=800printf(*totall=%d\n*,total1);printf(*total2=%d\n*,total2); }例二转义字符的使用程序一:#include<stdio.h>main(){charch='\124'; 〃定义字符变量ch,其值为转义字符’\124’printf(a%c\nw,ch); } 运行结果: T解析:转义字符<\124,为八进制数,需转换成十进制数得到其对应的ASCII码。9 1 n即(124)8=1X8+2X8+4X8=84。程序二:

ftinclude<stdio.h>voidmain(){printf(*ab_c\tde\rf\tg\n*); printf(*h\ti\b\bjk*); }解析:第一个printf函数:先在第一行左端输出“ab_c”,遇到“\t”(“跳格”经8列的“制表区”到下一个“制表位置”,即第9列)。第9〜11列输出“de”,遇到“\r”(不换行“回车”返回本行最左端第一列位置),再输出“f”,得“fabcde”。再遇到“\t”,移到第9行输出“g”,得"fab_c__gde\第二个printf函数:现在第一行左端输出“h”,遇到“\t”跳至第9行输出“i”,得“h iwo(此时当前输出位置在第10列)遇到“\b"(退一格)2次,即退到第8列,输出“j_k”,得“h j_k”。在屏幕输出的结果是: 在打印机输出的结果:fabcgde f gdeh jk h jik不同结果的原因说明:使用“\r”和“\b”后所输出的字符(包括空格和跳格所经过位置)在屏幕显示时将取代原来屏幕上该位置原显示的字符。其实,扉幕上完全按程序要求输出了全部的字符,只是因为在输出前面的字符后很快又输出后面的字符,还未看清楚就被新的字符取代旧的字符。习题1.定义一个符号常量TIME和一个整型常量num,其值为12和20在主函数中将它们的乘积输出。2.利用转义字符编写一个C程序,要求运行结果为ASCII码值为014对应的“音符图形”。习题参考答案:/*定义符号常量TIME,其值为12*//*定义符号常量TIME,其值为12*//*定义整型常量TIME,其值为20*/printf(*total=%d\n”,total);intnum=20;total=num*TIME;根据题意,必须先求出ASCII码值为014的八进制数,进而转换成转义字符。而(16)8=1X8、6X8°=14,故题意所指的转义字符为'\16'。#include<stdio.h>voidmain(){chara='\016’; 〃定义字符变量a,其值为转义字符'016'printf(a%c\nw,a); }实验六变量变量.定义:其值可以改变的量。(变量代表内存中具特定属性的一个存储单元,即地址,用来存放数据).类型:整型变量(int)、浮点型变量(float)、字符型变量(char)。.格式:数据类型[变量1,变量2,…,变量n];例:inta=3;(a是变量名,3是变量值).数据类型(int、float、char)决定分配字节数和数的表示范围。一般整型占2个字节,浮点型占4个字节,字符型占1个字节。.赋值方式。a、定义时赋值。如:inta=l,b=-3,c:b、以语句的形式赋值。如:floatx;x=10.5;要求变量先“定义后使用”a、凡未被事先定义的不作为变量名,保证程序中变量名使用正确。如:intstudent;而在程序执行中错写为:stadent即stadent=40;这时就会出现:'statent':undeclaredidentifier(不明确定义)的错误提示。b、每一个变量被指定为一确定类型,在编译时就能为其分配相应的存储单元。c、指定每一变量属于某一个类型,这就便于在编译时,据此检杳该变量所进行的运算是否合法。如:只能对整型变量a和b可以进行求余运算a%b(“%”为求余运算符),而对浮点型变量a和b就不可以进行求余运算。整型变量的分类.定义格式:int变量名1[,变量名2,・・・,变量名n]:整型变量的基本类型符为into可根据数值范围定义三种整型变量。(1)基本整型:以int表示。如:inta;(2)短整型:以shortint或short表示。如:shortb;(3)长整型:以longint或long表示。如:longc:4321;0L;数值的范围:short<int<long.为充分利用变量的表示范围,将变量定义为“无符号”类型,即加上unsigned修饰符。如果不指定为unsigned则默认为有符号的。(1)有符号基本整型:[signed]into如:inta,b;(2)无符号基本整型:unsigned[int],,如:unsigneda,b:(3)有符号短整型:[signed]short[int]0如:shorta,b;(4)无符号短整型:unsignedshort[int]0如:unsignedshorta,b;(5)有符号长整型:[signed]long[int]o如:longa,b;(6)无符号长整型:unsignedlong[into如:unsignedlonga,b;3.标准定义的整形数据(方括号部分可以省略不写,尤其是signed股不写)类型比特数取值范围输出格式[signed]int16(2字节)-32768〜32767%dunsigned[int]16(2字节)0〜65535%u[signed]short[int]16(2字节)-32768〜32767%dunsignedshort[int]16(2字节)0-65535%ulong[int]32(4字节)-2147483648〜2147483647%1unsignedlong[int]32(4字节)0〜4294967295%lu

浮点型变量的分类定义格式:float变量名1[,变量名2,••%变量名n];浮点型变量的基本类型符为float。float和double的输出格式都是%f。分为:单精度型(float)、双精度型(double)和长双精度型(longdouble).类型比特数有效数字数值范围float326~7-3.4X10"(-38)"3.4X10~38double6415'16-1.7X107-308)"1.7X10-308longdouble12818~19-1.2X10-(一4932)」.2X10(932字符变量.字符变量用来存放字符常量,一个字符变量只能放一个字符常量。字符变量占一个字节(8位)。.定义格式:char变量名1[,变量名2,•••,变量名n];.char是定义字符变量的关键字。字符变量用%c作为输出格式。不同类型数据间的转换和运算不同类型的数据要转换为同一类型,然后才进行运算。转换规则如图:double-float高 t 横向向左的箭头是必须转换的运算;t long 向上的箭头只表示数据类型级别的高低,低t 转换时是直接转换的。如:int转换为unsigned long是直接转换为long.«tint-char、short习题1.可以作为C语言程序中的变量名是(A.1B.alC.intD.*P.下面程序的输出为()oA.0B.1C.-1D.变量无定义.有定义chars=''092',则该语句( )。A.使s的值包含一个字符 B.使s的值包含4个字符C.使s的值包含4个字符 I).定义不合法,s的值不确定.的字符数分别为(.设.的字符数分别为(.设int类型数据长度为( )和(.如下程序的输出为(nclude<stdio.h>main(){printf(M%dw.null);若有说明:charsl=>\067';chars2:''1'';chars3=,2';si,s2,s3所包含),( ),( )o2个字节,则int和unsigned),long类型数据占()oA.01int类型数据的取值范围分别为)个字节。B.变量无定义-1.C语言中,int.char,short三种类型数据所占的内存由( )决定。比如在16位机和32位机中,int型数据所占字节数分别是2和4。.不属于C语言类型的是( )«.signedshortintB.unsignedlongintC.unsignedintD.longshort.错误的int类型常量是()oA.32768B.0C.037D.OxAF.为了求出s=10!,则变量s的类型应该为( )。长整型long数据在内存中存储形式为TOC\o"1-5"\h\z()O"犷’求余运算的运算数必须都是( )型。11*若x为int或nsignedint型变量,则执行下面语句的输出值为(x=65535; printf( ,x);12若a为整型变量,则下面语句的输出值为()oa=-2L; printf(M%d\nw,a);13.下述语句的输出为( )。intx=-1;printf(4<%d,%u,%ow,x,x,x);A.-1,-1,-1 B.-1,32767,-177777C.-1,32768,177777 D.一1,65535,177777若有说明语句charw;intx;floaty;doublez;则表达式w*x+z-y的结果为( )类型。A.floatB.charC.intD.doubleC语言中定义了一个变量,代表内存中的一个( ).若变量a是int类型,并执行语句:a='A'+1.6,则a的值为( ).A.字符C B.不允许字符型和浮点型相加C.浮点型 D.字符'A'的ASCII码值加上1习题参考答案:1-3BDD4.1;无定值,说明不合法:1-32768~32767;0~65535;4B7.所用机器的机器字长8.A9.A10.long;补码;整—1 12.-2 13.D14.D15.地址16.D解析:11.变量x占用2个字节,当它为int型,其表示范围是一32768〜32767;当它为unsigned型,其表示范围为。〜65535,两者都无法正确表示65535。但65535=32767+32767+1,在计算机内部将二进制补码相加:0111111111111111+oiiinnniinn1111111111111110+000000000000000111111111H111U1最后结果为iinnniiniin(补码),原码等于其反码加1,即:-[0000000000000000+0000000000000001]2 =-[0000000000000001]2=-1一个常整埴,若其值在一32768〜32767范围内,可赋给一个int或longint型变量,若超出上述范围而在一2147483648〜2147483647范围内,其值应赋给longint型变量。-2L为longint型,但值为一2,可由类型转换把长整型换为短整型再赋给int型变「最a,按%d格式输出。提示:-1在内存中以补码形式存储:niinn11111111.实验七变量的简单程序应用

例一整型数据的溢出#include<stdio.h>voidmainO( 运行结果:shortinta,b; 32767»—32768a=32767:b=a+1;printf(*a=%d,b=%d\n*,a,b); }分析:b输出的值不为32768的原因:数值32767在内存的表示方式为011111111111111,加1得100000000000000(即一32768).理论值32768超出int型变量的取值范围,导致“溢出解决办法:将a>b定义为long型,并按%ld进行输出就可以得到正确的结果。(将变量b改成long类型并将a+1改成a+lL,并用%ld格式输出)例二浮点型数据的舍入误差浮点型变量用有限的存储单元存储,能提供的有效数字有限(如门oat型提供6至7位,double型提供15至16位),有效位外的数字将被舍去而赋予随机值,会产生“不正确”的结果。#include<stdio.h>voidmainO{floata,b;运行结果:a=运行结果:a=12345678848.000000b=12345678848.000000b=a+20;printf(*a=%f\n*,a);printf(*b=%f\n*,b); }解决办法:将a、b定义为double型。例三字符变量与整数的通用#include<stdio.h>voidmainO( 运行结果:charcl,c2; a,bcl=97;c2=98; 97,98printf(*%c,%c\n”,cl,c2);printf(*%d,%d\n*,cl,c2); }例四大小写字母的转换#include<stdio.h>voidmain0{charcl,c2;cl=a; c2='b'; 运行结果:cl=cl-32; c2=c2-32; ABprintf(*%c%c\n*,cl,c2); }分析:一个小写字母比它相应的大写字母的ASCH码大32.cl-32相当于97—32=65,65恰好是字母‘A'的ASCH码。例五若ch为char类型变量,k为int类型变量(已知字符a的ASCII码为97),求执行下面程序后输出结果。#include<stdio.h>voidmainO{ch=*a*;k=12;printf("%x,%o”,ch,ch,k);printf(Mk=%%d\nw,k); }运行结果:61,141k=%d分析:第一个printf语句的格式说明,将ch的值97分别按十六进制和八进制格式输出,多余的输出项k不予输出;第二个printf语句,由于格式说明符中包含两个连续的%字符,所以两个%将不再作为格式描述符使用,而是处理成字符“%”原样输出。输出项K因没有对应的格式描述符将不予输出。习题 1.写出以下程序的运行结果。#include<stdio.h>voidmain(){charcl=>a',c2=,b',c3='c',c4='MOT,c5=,\116';printf(aa%cb%c\tc%c\tabc\nw,cl,c2,c3);printf(M\t\b%c%c\nM,c4,c5); }.能否将F面程序中的cl,c2由int类型改成char类型?分析运行时会显示什么信息?为什么?#include<stdio.h>voidmain()(intcl,c2;cl=97;c2=98;printf(a%c%c\nw,cl,c2);printf(%d\nw,cl,c2); }.要将“China”译成密码,规则为:用原字母后面第4个字母代替原来字母。(如字母“A”后面第四个字母为“E”,“E”代替“A”)编写一个程序,用赋初值的方法使cl,c2,c3,c4,c5这5个变量的值分别为‘C'MJi'Jn'a',经过运算输出所求密码。习题参考答案:aabbcc abcAN能。显示结果为:abo因为字符变量和整数可以互相通用。97,983.#include<stdio.h>voidmain(){charcl="C",c2二“h“,c3二“i“,c4二"n“,c5二“a";cl+=4; c2+=4; c3+=4; c4+=4; c5+=4;printf(<<%c%c%c%c%c\nM,cl,c2,c3,c4,c5): }实验八算术运算符和算数表达式.基本的算术运算符①+(加法运算符,或正值运算符),-(减法运算符或负值运算符),*(乘法运算符),(除法运算符),%(模运算符,或称求余运算符,%两侧均应为整型数据)。优先级:-(负号运算符)>*、/、%> +、一(减号运算符)。结合性:除负号运算符外都是由左向右结合。两个整数相除结果为整数,小数被舍掉。除数或被除数中有一个数为负数,舍入方向是不固定的。多数计算机采取“向零取整”的方法。如:-5/3=-2(不向零取整):-5/3=-1(向零取整)。算术表达式和运算符的优先级与结合性①用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为C算术表达式。运算对象包括:常量、变量、函数等。②表达式求值时一般先按运算符的优先级别高低次序进行。运算时象两侧的运算优先级别相同时按“自左至右”的结合方向(左结合性)处理。. 强制类型转换运算符格式:(类型名)(表达式)。即(typex)或(type)x。如(float)(5%3)指将5%3的值强制转换为float型。含义:强制将“表达式”的值转为“类型名”对应的类型。类型名必须耍0括起来,要转换类型的是表达式,则表达式必须用。括起来。在进行强制类型转换时得到的是一个所须类型的中间变量,原变量类型未发生任何改变。如:x是float型,经过(int)x后,x依然是float型.④两种类型转换:a、隐式转换:运算时不必用户指定,系统自动进行转换。如I:2+2.6将自动转换为double型b、显式转换:系统不能够实现自动转换时用户用强制类型来转换。如:‘%'运算时必须将两侧的数据转换为整型。.自增e•夕、自减运算符①假设变量i的初值为5,a为整型变量:++i使用i前,使i的值加、如a=++。执行完语句后a的值为6,i的值为6。i++使用i后,使i的值加一。如a=i++;执行完语句后a的值为5,i的值为6。-i 使用i前,使i的值减。如@=--「执行完语句后a的值为4,i的值为4。使用i后,使i的值减一.如a=i--;执行完语句后a的值为5,i的值为4。②自增运算符(++)和自减运算符(--)只用于变量。++和一的结合方向是“自右向左”。如:对于表达式-i++相当于-(i++),先使用i,即对i的原值5加上负号得到表达式的值,然后再对i加1。执行完之后发达式-i++的值是-5,而i的值是6。例一强制类型转换的使用#include<stdio.h>voidmain(){输出结果:floatx;inti;x=3.6:输出结果:i=(int)x; /*将x强制转换为int型*/例二自例二自增自减运算符的使用#include<stdio.h>voidmain(){inta,b,c,d,i;i=5;a=++i;b=a+(i++);c=b+( i);d=c+(i—);输出结果:a=6,b=12,c=18,d=24,i=5执行后a=6,i=6;执行后b=6+6=12,i=7;执行后c=12+(7-l)=18,i=6;执行后d=18+6=24,i=5.printf(*a=%d,b=%d,c=%d,d=%d,i=%d*,a,b,c,d,i); }习题1.求下面数算表达式的值。x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;0(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。. 写出下面程序的运行结果。#include<stdio.h>voidmainO{inti,j,m,n;i=8;j=10;m=++i;n=j++;TOC\o"1-5"\h\zprintf(“%d,%d,%d\n”,i,n,m,j); }.已知字母a的ASCH码值为97,执行下面语句的输出结果为( )<,chara='a';a—;printf("%d,%c\n",a+'2f-'O',a+'3'-'O');.若a为int型变量,由a=25/3%3得a的值为( )。定义intb=7;floata=2.5,c=4.7;则a+(int)(b/3*(int)(a+c)/2)%4的值为( )。.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为( )«.已知字母A的ASCII码为卜进制数65,且c2为字符型变量,执行语句c2='A'+'6'-'3'后,c2的值为()o)o设a和b为double)o)0.已知:inti=6,j;则语句)o设a和b为double)o)0.若定义了intx,将x强制转化成双精度类型应写成(9.已知9.已知floatx=l,y;则y=++x*++x结果为()o若有floatx,为测试此数据类型所占TOC\o"1-5"\h\z内存字节数有sizeof(x)和sizeof(float),正确的形式为( )。10.下面关于自增自减运算符正确的是( )。A.10++B.(x+y)--C.d+++d+++d+++D.++(a-b)11*若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为( )o习题参考答案:1. 2.5;3.1. 2.5;3.500000 2.9,11,95.int型 6.D3.98,c4. 2;5.5000007. 14;6.0000008.(doublex)或(double)8.(doublex)或(double)x实验九赋值、逗号运算符及其表达式一、赋值运算符“=”是赋值运算符,它的作用是将右边常量或者表达式的值赋给左边的变量。赋值运算符的结合方向是"自右至左"。种类:+=~=*=/=%=!二、类型转换1、将浮点型数据(包括单、双精度)赋给整型变量时,舍去小数部分,将整数部分赋给整型变量。2、将整型数据赋给浮点型变量时,数值不变,但以浮点数形式存储到变量中(补足有效数字的位数。float:6'7位,double:15~16位)。三、复合的赋值运算符1,在赋值符号“=”之前加匕其他运算符就可以构成复合的运算符。2,含义:explop=exp2或expl=explopexp2(如果exp2为表达式,则相当于exp2有括号)。 如:x*=y+8等价于x=x*(y+8)。赋值表达式1、定义:由赋值运算符将一个变量和一个表达式连接起来的式子称“赋值表达式”。2、格式:〈变量X赋值运算符〉〈表达式〉。 结合方向:自右向左。左侧必须是变量,不能是常量或表达式。逗号表达式、逗号表达式是用一个或多个逗号(,)将表达式连接起来的式子。又称“顺序求值运算符”。 格式:表达式1,表达式2, ,表达式n。.求值方法:先计算表达式1,然后计算表达式2, ,一直计算到表达式n。整个逗号表达式的值是表达式n的值。.结合方向:由左至右。优先级:所有运算中优先级最低。例一复合运算符的使用#include<stdio.h>mainO{inta=l,b=3,c=6,d=12,e=7;a+=5;/*a=a+5=1+5=6*/b-=a+2;/*b=b-(a+2)=3-(6+2)=-5:c*=2;/*c=c*2=6*2=12*/d/=c/3;/*d=d/(c/3)=12/(12/3)=3e%=3;/*e=e%3=7%3=l*/printf(*a=%d,b=%d,c=%d,d=%d,e=%d\n*»a,b,c,d,e); }输出结果:a=6,b=-5,c=12,d=3,e=l假设a=2»求表达式a+=a*=a-=a*=3的值和a的值。解析:①先进行“a*=3",相当于a=a*3=2*3=6;②再进行即a=a-6=6-6=0;和“a*=0",即a=a*0=0*0=0;③最后进行“a+=0”,得a=a+0=0+0=0. 所以,表达式的值为0,a的值为0。例二 求逗号表达式,*5,a*4升5的值和a的值。分析:把逗号表达式标记为:①a=3*5,②a*4,③a+5;求表达式①的值为15,a的值为15;求表达式②的值为60,a的值为15;求表达式③的值为20,a的值为15;所以:整个逗号表达式的值为20,a的值为15。习题 1.符合C语言语法的赋值表达式是()oA.d=9+e+f=d+9B.d=9+e,f=d+9C.d=9+e,e++,d+9D.d=int(a+b);TOC\o"1-5"\h\z.若有intnum=7,sum=7,则计算表达式sum=num++,sum++,++num后sum值为( )»设intx=U,则表达式(x++*l/3)的值为( )。.与k=n++完全等价的表达式为( )。A.k=n,n=n+lB.n=n+l,k=nC.k=++nD.k+=n+l.若变量已正确定义并赋值,合法的表达式为( ).A.a=a+l;B.a=7+b+c,a++C.int(12.5%2)D.a=a+l=c+binta=3;则a+a-=a*a的结果为( 定义inta,b,x,则x=(a=3,b=a一)计算后a,b,x的值分别是( ).若inta,(a=4*5,a*2),a+6的值为( )..6*定义int1=2,j=5,p,q,b=4,y;且p=(i++)+(++i)+(i++);q=(++j)+(++j)+(++j);y=--b*--b*--b;则计算后,j,p,q,b,y的值分别是( )..写出执行如下程序后的输出结果。.mainO{longa=32767,b;b=a+l;printf(Ma=%ld,b=%ld",a,b);}(2)main(){inta=-32768;unsignedb;b=a;printf(**a=%d,b=%u\nM,a,b);}TOC\o"1-5"\h\z.假设所有变量均是整形,则(a=2,b=5,a++,b++,a+b)的值为( )..程序输出结果为( ).Chara='A';intb=20;printf("%d,%o",(a=a+l,a+b,b),a+'a'-'A',b):.下面错误的说法是( ).A.在C程序中逗号运算符的优先级最低B.在C程序中APH和aph是两个不同的变量C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D.从键盘输入数据时,整型、实型变量只能分别输入整型、实型数值习题参考答案:1.B 2.8;3 3.A4.B表达式出错,无值;2,3,3; 268,9,24,1,1.分析:对于3个以上的自增自减运算,按前缀++到后缀++的顺序排列,则p等价于++i;p=i+i+i:i++:i++;这样的顺序进行运算。q等价于++j;++j;++j;q=j+j+j:y等价于一b;-b;-b;y=b*b*b;(1)a=32767,b=32768 (2)a=-32768,b=327689 9.20,141 10.Dc语言程序单元测试卷一得分评卷人 一、选择题(本大题共46小题,每小题1分,共46分)一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:( )A、任意B、第•个函数必须是主函数,其他函数任意C、必须完全按照执行的顺序排列D、其他函数可以任意,主函数必须在最后2,下列四个叙述中,正确的是:( )A、C程序中的所有字母都必须小写

B、C程序中的关键字必须小写,其他标示符不区分大小写C、C程序中的所有字母都不区分大小写D、C语言中的所有关键字必须小写3、下列四个叙述中,错误的是:( )A、一个C源程序必须有且只能有一个主函数B、一个C源程序可以有多个函数C、在C源程序中注群说明必须位于语句之后D、D、C源程序的基本结构是函数4,下面不是C语言合法标识符的是:(A、abc B、5n5、以下叙述不正确的是:( )A.分号是C语句的必要组成部分C.函数是C程序的基本单位C语言中允许的基本数据类型包括:(A.整型、实型、逻辑型C.整型、字符型、逻辑型C语言中能用八进制表示的数据类型为:A、字符型、整型C、字符型、实型、双精度型8、下列属于C语言合法的字符常数是:(A、'\97' B、"A"C、_4m D、x3B.C程序的注释可以写在语句的后面D.主函数的名字不一定非用main来表示)B.整型、实型、字符型D.整型、实型、逻辑型、字符型()B、整形、实型D、字符型、整型、实型、双精度型)C、'\t' D、“\0"9、在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:( )char<int<=longint<=float<doublechar=int<longint<=float<doublechar<int<longint=float=doublechar=int=<longint<=float<doubleTOC\o"1-5"\h\z10、在C语言中(VC环境),一定是长整型常数的是:( )A、0L B、4962710 C、0412765 D、0xa34b7fe11、若有以下定义语句charcl='b',c2='e';printf(a%d,%c\nw,c2-cl,c2-'a'+'A*);则输出结果是:( )A、2,M B>3,EC、2,E D、输出项与相应的格式控制不一致,输出结果不确定12、以下合法的赋值语句是:( )A、x=y=100 B、d―; C、x+y D>c=int(a+b);13、设变量t为int型,下列选项中不正确的赋值语句是:( )A、++t; B、nl=(n2=(n3=0));C、k=i==m;D、a=b+c=l;14、在以下一组运算符中,优先级最高的是:( )A、<=B、= C、% D、&&15、下列能正确表示a210或aWO的关系表达式是:( )A、a>=10ora<=0B、a<=10 a>=0C、a>=10I|a<=0D、a>=10&&a<=016、下列只有当整数x为奇数时,其值为“真”的表达式是:( )A、x%2=0 B、!(x%2==0)C>(x-x/2*2)==0D、!(x%2)17、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:( )A>10<aA>10<a<15B、!(a<=10||a>=15)C、C、a>10&&a<15D、!(a<=10)&&!(a>=15)18、已知x=43,ch='A',y=0;则表达式(x〉=y&&ch〈‘B'&&!y)的值是:( )A、0 B、语法错 C,1 D、“假”19、表达式17%4/8的值为:( )A、0 B、1 C、2 D、320、语句printf("%d”,(a=2)&&(b=-2));的输出结果是:( )A,无输出B、结果不确定 C,-1 D、121、一个可执行的C程序的开始执行点是:( )A.程序中的第一个语句A.程序中的第一个语句B.包含文件中的第一个函数C.名为C.名为main的函数D.程序中的第一个函数22、组成C语句的一个必不可少的符号是:( )A.逗号B.引号C.冒号 D.分号23、若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:( )A.intB.longC.float D.double24、下述是C语言中有关变量定义的几个说法,正确的是:( )A. 变量可以不定义直接使用 B.一个说明语句只能定义一个变量C. 几个不同类型的变量可在同一语句中定义 D.变量可以在定义时进行初绐化25、与x*=y+z等价的赋值表达式是:( )26、A.x=y+zB.x=x*y+zC.x=x*(y+z) D.x=x+26、当代电子计算机能够自动地处理指定的问题是因为:( )27、A.27、A.计算机是电动的C.事先存储了解决该问题的程序以下叙述中最准确的是:( )B.有解决该问题的计算机程序D.以上都不是A.B.C.I).计算机程序是处理某一问题所有指令的集合计算机程序是处理某一问题所用到的所有数据的集合计算机程序是处理某一问题的所有指令及人数据的集合计算机程序是处理某一问题的所有指令及其数据的有序集合28、关于计算机程序设计,以卜.描述最准确的是:( )A.B.C.D.程序设计就是用语言来编写程序程序设计就是用计算机语言来编写程序程序设计就是用计算机程序设计语言来编”;程序程序设计就是用计算机能识别的语言来编写程序29、Fl前编写计算机程序一般采用的是:(A.机器语言B.汇编语言A.B.C.I).计算机程序是处理某一问题所有指令的集合计算机程序是处理某一问题所用到的所有数据的集合计算机程序是处理某一问题的所有指令及人数据的集合计算机程序是处理某一问题的所有指令及其数据的有序集合28、关于计算机程序设计,以卜.描述最准确的是:( )A.B.C.D.程序设计就是用语言来编写程序程序设计就是用计算机语言来编写程序程序设计就是用计算机程序设计语言来编”;程序程序设计就是用计算机能识别的语言来编写程序29、Fl前编写计算机程序一般采用的是:(A.机器语言B.汇编语言C.高级语言D.英语30、设计一个计算机程序最基本的工作是:(A.制定正确的算法C.制定正确的算法和选择合理的数据结构B.选择合理的数据结构D.以上都不是31、算法具有五个特性,以卜.选项中不属于算法特性的是:( )A.有穷性B.简洁性A.有穷性B.简洁性C.可行性D.确定性32、下述哪一个不是结构化程序基本结构:(33、A.顺序C语言是一种:(A.机器语言B.32、下述哪一个不是结构化程序基本结构:(33、A.顺序C语言是一种:(A.机器语言B.选择B.汇编语言34、C语言源程序的扩展名为:( )C.循环C.高级语言I).I).嵌套以上都不是A..exe B..c C..obj D..cpp35、C程序编译后最终产生(即计算机执行)的文件的扩展名为()A..A..exe B..c36、下列各项中,不是C语言的特点是:(A.语言简洁、紧凑,使用方便C.能实现汇编语言的大多数功能37、构成C语言源程序的基本单位是:(A.子程序B.过程C..obj D..cpp)B.程序执行效率高,可移植性好D.有较强的网络操作功能)C.文本D.函数38、下列叙述正确的是:( )C语言源程序可以直接在DOS环境中运行B.编译C语言源程序得到的目标文件可以宜接在DOS环境中运行C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行C语言源程序可以直接在VC++环境中运行39、某C程序由一个主函数main。和一个自定义函数max()组成,则该程序:( )A.写在前面的函数先开始执行B.总是从main。函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行40、以下叙述不正确的是:( )A.分号是C语句的必要组成部分C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定用mian表示41、以下为C语句的是:( )A.a=8B.a++; C.if(a>8)D.A.a=842、以下不是42、以下不是C语句的是:( )A.a=8; B.a++;43、以下所列语句中,合法的语句是:(A.a=l,b=2B.++a;44、C程序中的复合语句指的是:( )A.并列的多个C语句C.用一对大括号对括的多个C语句C.if(a>8)sD.for(i=l;i<5:i++))C.a=a+l=5D.y=int(a);B.写在同行中的多个C语句D.就是函数体中的语句45、当个很长的C语句(中间无字符串)在•行写不下(超出扉幕的宽度)时,应该:()A.由系统自动换行 B.立即按回车键换行C.在任意•个空格处按回车健换行D.输入•个分号后并按回车键换行换行46、在x值处于-2〜2,4〜8时值为“真,否则为“假”的表达式是:()«(2>x>-2)II(4>x>8)!(((x<-2)II(x>2)&&((x<=4)I|(x>8))(x<2)&&(x>=-2)&&(x>4)&&(x<8)得分评卷人D.(x>-2)&&(x>4)11D.(x>-2)&&(x>4二、判断题(本大题共34小题,每小题1分,共34分). ()C语言是严格区分大写和小写的,因此主:函数不能写成main。以外的其他形式.. ( )C语言程序是从源文件的第一条语句开始执行的。. ( )C语言对其数据在内存中所占用的实际字节数是有明确规定的。. ( )C语言中/*..*/之间的注释内容是不能跨行的。. ( )C语言中多个以“;”结束的语句不能放在同一行。.()以下常数:'101',e3,'\78',(2+3)e(4-2)都是不合法的。.()变量说明语句inta=b=c=23;是正确的。.()字符型数据不可以和整数数据一起进行算术运算。. ()C语句:3*x*x+4*x+l+6sin(x)=y.是可以允许的。.()表达式m=(a=4,4*5)和m=a=4,4*5的值是相等的。.( )C语言中强制类型转换不会改变原变量的原有数据类型。.()表达式j=-i++和j=-(i++)不相等.()程序段:i=8,j=10;printf(飞d,%d,%d,%d\n”,i,j,++i,j++);其结果9,10,9,10..()C语言中放在“”之间的内容都被视为字符串的一个构成部分,都可以在屏幕上原样显示。.()计算机程序的基本组成是:指示计算机如何去解决某一问题的一组指令。.()计算机程序的执行过程实际上是对程序所表达的数据进行处理的过程。.()目前程序设计的理念已经从“面向过程的程序设计”向“面向对象的程序设计”方面转变。.()任何一个计算机程序都可以用机器语言、汇编语言和高级语言来编写。.()有人曾提出:计算机程序=算法+数据结构。.()在程序设计中提到的算法就是“解决问题的方法和步骤”.()在程序设计中提到的数据结构就是“程序处理的对象的表示方法”.()计算机程序的算法就是解决“做什么”和“怎么做”的问题。.()结构化程序设计的基本理念是:将一个较大的问题细分成若干个较小问题的组合。.( )C程序的编译是从程序的第一行开始,到程序的最后一行结束。.()C程序的编译是从主函数的第一行开始,到主函数的最后一行结束。.( )C程序的执行是从程序的第一行开始,一直到程序的最后一行结束。.()C程序的执行是从主函数的第一行开始,一宜到主函数的最后一行结束。.()设*、t均为int型变量,则执行语句"x=10;t=x&&x>10;"后,t的值为0.()若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变.()在©程序中,%是只能用于整数运算的运算符.()在C语言中,逻辑“真”等价于不等于0的数.()C语言中字符型、整型、实型都能用八进制表示.()在VC语言中,5种基本数据类型的存储空间长度的排列顺序为:char〈int〈longint<float<double.()变量的三要素是:变量名、变量类型、变量的值。C语言程序单元测I试卷一参考答案:一、选择题:1-5ADCBD6-10BACAA11-15BBDCC16-20BACAD21-25CDDDC26-30CDCCC31-35BDCBA36-40DDCBD41-46BDBCCB二、判断题:1-5TFTFF6-10TFFFT11-15TFTFT16-20TTTTT21-25TTTTF26-30FTTTT31-34TFFT

实验十c语句和赋值语句c语句概述一个C程序可以由若干个源程序文件(分别进行编译的文件模块)组成,一个源文件可以由若干个函数和预处理命令以及全局变量声明部分组成。一个函数由数据声明部分和执行语句组成。一个程序或函数包括数据描述(由声明部分来实现)和数据操作(由语句来实现)。数据描述主要定义数据结构(用数据类型表示)和数据初值。数据操作的任务对已提供的数据进行加工。声明部分的内容不应称为语句。如:inta;不是一个C语句,它不产生机器操作,而只是对变量的定义。二. C语句的分类.控制语句。完成一定的控制功能。有以下9种控制语句:(1)if()'else'(条件语句)(2)for()~(循环语句)(3)while(广(循环语句)(4)do'whileO(循环语句)(5)continue(结束本次循环语句)(6)break(终止switch或循环语句)goto(转向语句)(8)switch(多分支语句)(9)return(从函数返回语句)其中,括号“()”表示括号中为一个“判别条件”,表示内嵌的语句。.函数调用语句。由一次函数调用加上一个分号构成。如printfCApple.");一般形式为:函数名(实参表);参数的传递方式是值传递,需要实参和形参各占一个独立存储单元,函数调用时系统将实参的值赋给形参,故修改形参值与实参变量无关。.表达式语句。由表达式和一分号构成,最典型的是在赋值表达式后加上一个分号构成的赋值语句,如i=i+l(是表达式),i=i+l;(是语句)。if条件中可包含赋值表达式但不可包含赋值语句。.空语句。只有一个分号的语句,它什么也不做。.可以用(}把•些语句括起来成为复合语句,又称为分程序。(可在•行写多条语句,但必须用分号隔开。可将一条语句拆开在几行写,但必须在拆开地方的每行行末加“\”作为续行符,最后-行用“;”作为语句的结束)一个复合语句在语法上等价于单个语句:凡单个语句能出现的地方均能出现复合语句;大括号里所有语句是•个整体,需要全部执行或全不执行;可以嵌套,即复合语句中可以有复合语句.三. 数据输入输出的概念及在C语言中的实现.所谓输入输出是以计算机为主体而言的。从计算机向外部设备(如显示器、打印机、磁盘等)输出数据称“输出”;从输入设备(如键盘、磁盘、光盘、扫描仪等)向计算机输入数据称“输入”。.(:语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。putchar(输出一个字符) getchar(输入一个字符) printf(格式输出)scanf(格式输入) puts(输出字符串) gets(输入字符串).使用C语言函数库时,要用预编译命令”#include”将有关的"头文件"包括到用户源文件中。a、头文件一般要写在程序的开始,不要写在函数之后或函数中。b、不同类型的函数要包括不同的头文件。 c、文件后缀中“h”是head的缩写。d、包括头文件不是语句,不应该在后面加分号。习题.符合语法的赋值语句是(习题B.a=7+b++=a+7;B.a=7+b++=a+7;D.a=7+b,c=a+7;C.a=7+b,b++,a+7;.下面错误的C语言语句是(A.x=l,y=2;B.x++;C.x=y=5;D.y=int(x);TOC\o"1-5"\h\z.C语言程序中,要调用的函数不是必须在main。函数中定义,C语言程序的三种基本结构是( );.若a,b,c都是int类型变量且初值为0,错误的赋值语句是( ).A.a=b=c=d=100;B.d++;C.c+b;D.d=(c=22)-(b++);习题参考答案:D 2.D顺序结构、选择结构、循环结构 4.C实验十一字符数据、格式的输入和输出字符数据的输入输出putchar函数(字符输出函数)a.作用:向终端(或系统隐含指定的输出设备)输出一个字符.b.格式:purchar(c).(参数可以是字符型、整型变量,字符型、整型常量)getchar函数(字符输入函数)a.作用:从终端(键盘)输入一个字符。(若输入多个字符,一次只能从左到右接受一个字符)b.格式:getchar().

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论