考试范围教材中的内容.ppt_第1页
考试范围教材中的内容.ppt_第2页
考试范围教材中的内容.ppt_第3页
考试范围教材中的内容.ppt_第4页
考试范围教材中的内容.ppt_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

1,复习,考试范围:教材中的内容,打*号的不作教学要求,另外:11.3、12.4、12.3.6(除feof和rewind函数以外)不作教学要求。,笔试题型单选题概念语法填空题概念语法,写出表达式或语句程序阅读题重点语法,算法编程程序填空题重点语法,算法编程,注:1.做填空题时,要对表达式与语句区分2.题目要看清楚,要用题目定义的变量3.该打印的打印,不该打印的不打印4.语法无定义符号不要写,笔试时间2009年06月21日(14:00-16:00)教室:,答疑时间:6月20日9:0017:00地点:,模拟考教室东2-104时间6月9日晚6:308:009,2,c为字符变量,存储小写英文字符,将其按ab、bc、yz、za对应转换,写出赋值语句_。,答案:c=c=z?a:c+1;,c为字符串,其长度可以用函数求得y=strlen(c);也可用for(_);求得。,答案:y=0;cy!=0;y+,3,下列程序的输出结果是_。intf(intn)if(n)returnf(n-1)+n;elsereturnn;voidmain()printf(“f=%d”,f(4);,答案:f=10,#definecirfer(r)2*r*要写成3.1415926,写出计算半径为r的圆周长cirfer(r)的宏定义_。,4,数据类型:对某些具有共同特点的数据集合的总称,数据类型,指针类型空类型,数组结构联合枚举,单精度型双精度,整型实型字符,基本类型,构造类型,各种数据在内存的存储方式(书写形式)、数的表示范围,一、数据类型,5,1、基本类型基本类型指整型、实型和字符型(主要是int,float,double,char;还包括long,unsigned,short),(1)常量整型:不带小数点的数十进制同平时习惯八进制以0开始十六进制以0 x开始,各进制的互换(包括二进制),各类型所占的字节int2字节long4字节各类型的取值范围long类型常数后缀l或Lunsigned类型常数后缀u或U常用符号常量的含义(如NULL=0、EOF=-1),6,整型常数正确表示,以下选项中不正确的整型常量是_。A12LB-10C1,900D123U,各进制的互换,如果inti=16,j=23;执行printf(%x-%o,i,j)后输出为A.10-23B.10-27C.16-23D.16-27,答案:C,1610-1016,2310-278,答案:B,十进制-n进制:除n取余,n进制-十进制:,7,实型:带小数点的数基本型:同习惯指数型:科学记数法10E,各类型所占的字节float4字节double8字节,各类型的取值范围,各类型的有效位67位1516位,实型常数正确表示,以下选项中不正确的实型常量是_。A0.23E01B2.3e-1C1E3.2D2.3e0,答案:C,实型有效位,下列程序段执行后d值为_.voidmain()intb=0 x12345678;printf(%xn,b);,输出45678,8,字符型:单个字符或转义符单个字符或数字,定义变量char占1字节,字符与字符串的区别字符数据与整数数据互换运算,大小写字母转换大小c1+a-A;小大c1-(a-A)字符数字与数值数字转换字符数值字符-0;反之数值+0,以下选项中不正确的字符常量是_。AnB1CaD101,答案:C,用下列for循环将数字字符逆序输出即从(9到0),其语句为for(i=0;I成员名,对于以下的变量定义,表达式_不符合C语言语法。structnodeintlen;char*pk;x=2,right,*p=A、p-pkB、*p.pkC、*p-pkD、*x.pk,答案B,.-运算级优先于*p.pk*(p.pk)p是指针,因此错误,21,下列程序的输出结果是_。voidmain()structstintx,y;a4=10,20,30,40,50,60,70,80;structst*p=a;printf(%d,p+-x);printf(%d,+p-y);printf(%dn,(a+3)-x);,结构的指针指向结构数组,答案10,41,70,p+-x:p-x;p+p-y:+(p-y),22,指针与一维数组的关系inta100,*p;p=a;元素地址while(skk=tk)k+;,等价于void(char*s,char*t)while(_);,答案*s+=*t+,下列程序运行后,将输出_。inta=1,2,3,4,5,6,7,8,9,10,*p;main()inti;p=,答案6789,特别注意:a=1,2,3,4,5,6,7,8,9,10,p0,23,若有定义“inta34,*p=”,则对数组元素aij(0=i3,0s,答案wo,s,二级指针、指针数组与字符串,*p+1,p+:,设char*pt4,*p;p=pt;并设指针数组pt的每个元素指向各自的字符串二级指针p+ivoidmain()char*str=one;printf(%s,%cn,f(str)+1,*f(str)+1);,two,f(str),two,f(str)+1,*f(str)-tt+1-u,答案wo,u,函数返回指针,29,二、运算及流程控制,1、基本运算运算符的功能运算符的优先级、结合性和目数特别注意/、%、复合赋值、自增自减,若变量已定义并赋值,表达式_不符合语法。A.A*b/cB.3.14%2C.2,bD.a/b/c,答案:B,下列运算符中,优先级最高是_。A-B+Ci=3/2+7/2=5;j=45%11+(78)?14:21)=14);后变量i,j的值为_。A.i=0j=1B.i=1j=1C.i=0j=2D.i=1j=2,答案:A,31,表达式A+B的类型为(),AcharBintCdoubleDvoid,高doublefloatlongunsignedunsignedshort低intchar,short,32,两个关系符之间要用逻辑符连接,表示“xyz”的C表达式是_。,答案:xy判别c不是大写字母的表达式为:,答案:cZ|cb设a=mb+nm1的整数,nb的整数a/b*b+a%b=(mb+n)b/b+(mb+n)b%b=mb+n=a,答案:D,34,逻辑表达式从左到右的顺序计算运算符两侧的操作数,一旦已经能明确答案了,剩余计算就不再做了,已知inti=1,j;chara=a;执行j=!aa+=a-=a*a;printf(a=%d,a);,a+=(a=a-a*a)a+=(a=12-144)a+=(a=-132)a=a+(-132)=-132-132a=-264,答案:a=-264,35,3、语句表达式语句、空语句、复合语句;简单控制语句break、continue、return选择控制语句if、switch重复控制语句for、while、dowhile函数语句,(1)条件语句if(表达式)语句1else语句2表达式是任意表达式,但0xy是无意义ifelse的匹配原则:按近者匹配,条件语句与条件表达式表达式1?表达式2:表达式3互换,36,当inta=1,b=2,c=4,d=3时,执行下面一段程序后,x为_。if(ab)if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;elsex=6;elsex=7;A、1B、2C、3D、6,if(ab)if(cd)x=1;elseif(ac)if(b0)y=y+1;elsey=y+y;A.20B.11C.9D.0,答案:A,a=0表示:对a充0表达式的值为0,37,将下段程序用赋值语句等价表示_.,if(x0)y=1;elseif(x=0)y=0;elsey=1;,条件表达式与if语句互换,答案y=x0)?-1:(x=0?0:1),38,(2)switch语句switch(表达式),表达式是可以整型表达式、字符表达式、枚举数据case后是常数,选择某分支执行,只要不遇到break一直到结束与条件语句的互换,下列程序段的输出结果是。intk=1,s=0;switch(k)case1:s+=10;case2:s+=20;break;default:s+=30;printf(“%d”,s);,答案:30,39,(3)循环语句while、dowhile、for的各自意义、区别、互换break、continue出现在循环体的意义循环嵌套,for循环for(s=0,i=0;i10;,s+=i,i+);语句,请用while循环等价表示_。,答案:s=0,i=0;while(i10)s+=i;i+;,循环语法,inti=0,s=0,a10;while(i10)s+=ai+;等价于inti,s,a10;for(_);,答案:i=0,s=0;i10;s+=ai+,40,下列程序段执行后s值为_.inti=1,s=0;doif(!(i%2)continue;s+=i;while(+i10);A)0B)45C)25D)以上均不是,i!(i%2)continues=s+i(i=i+1)1010s=0+1i=210121i=310130s=1+3i=410141i=50a:从02550共循环256次所以共做b+;256次b=257,42,下列程序的输出结果是_。#includevoidmain()intx,k;x=12;for(k=0;x!=0;x=x+2)+k;printf(“k=%d,x=%dn”,k,x);,答案k=32762,x=0,按ANSICint为4字节32位,取值范围-3276832767x=12x=12+2=14x=14+2=16.x=32766+2=-32768(32766+1=011111111111111132767+1=1000000000000000-32768的补码=1000000000000000),x=-32768+2=-32766.x=-2+2=0则k的值即为循环次数计算x正值循环次数:(32766-12)/2=16377x负值循环次数:32768/2=16384x=32766到x=-327681次k=16377+16384+1=32762,43,用for循环打印012012012;for(i=1;i=9;i+)printf(%2d,_);,循环打印,i输出102132,(i-1)%3,将26个英文字母按aAbBcCzZ依次打印;for(i=0;i26;i+)printf(%c%c,_);,a+i,A+i,44,循环控制,inti,s,a10;for(i=0,s=0;i10;s+=ai+)if(ai输出对象的个数,多余格式符按零值输出若格式符的个数输出对象的个数,多余输出对象无用,46,设变量定义为“inta,b;”,执行下列语句时,输入_,则a和b的值都是10。scanf(a=%d,b=%d,charc,s20;当输入序列为123ab45efg时,执行语句scanf(%d%*c%c%s,123,b,45efgB.123,a,b45efgC.12,3,ab45efgD.scanf语句有错,执行语句printf(_,A);将得到出错信息。A%dB%oC%xD%f,输出对象与格式控制符类型匹配,答案:D,答案:A,48,输出打印结果_voidmain()inta=1;longb=a*0 x12345678;printf(%xn,b);,在TC(ANSIC)为2个字节,只能表示4位16进制数所以%x输出4位16进制数,故输出低字节的4位5678%lx输出4位16进制数,改用%lx,输出12345678,长整型(%ld)可以输出整型数,反之有问题,输出5678,若格式符的个数u,答案wo,u,函数返回指针,55,2、变量、函数的作用域,变量作用域局部变量函数内部定义的变量,在本函数范围内有效全局变量函数外部定义的变量,其有效域为从定义变量的位置起到本源程序文件结束。当外部变量与内部变量同名时,在局部变量的有效域内外部变量不起作用。,函数作用域函数从定义点起到源程序结束。若使用超出函数作用域须声明extern类型名函数名()被调用的函数类型是int类型可以缺省声明,存储类别auto、static、register、extern带static与不带static变量赋值的区别,56,C语言中,形参的缺省的存储类说明是_。A、autoB、staticC、registerD、extern,答案A,变量的存储类,以下程序的输出结果是_。#includeintz;voidp(int*x,inty)+*x;y-;z=*x+y+z;printf(%d,%d,%d#,*x,y,z);voidmain()intx=1,y=5,z=9;p(,变量的作用域,p(-2,4,6#,printf(%d,%d,%d#,x,y,z);-2,5,9#,注:z全局变量初值为0,全局,局部,57,执行完下列语句段后,其输出为:#includeintf(intm)staticintk=3;k+;returnk+m;voidmain()ints;s=f(3);printf(%d,%dn,s,f(s);,intk-static变量,s=f(3):k=4return(k+m)=7此时k=4(static变量)f(s)=f(7):k=5return(k+m)=12此时k=5(static变量),答案:7,12,static变量,58,下列程序的输出结果是_.#includeints;intf(intm)staticintk=0;for(;k3*1+2=5f(6,5,f(3,2,1)-6*3*1+2+5=25,下列语句先定义一个宏MAX2用于求两个数的最大值,然后应用该宏将a,b,c三个数的最大值输出。inta,b,c;#defineMAX2(x,y)_printf(“%dn”,_);,答案:(xy?x:y)MAX2(MAX2(a,b),c),63,执行以下代码后,将输出_。#defineFORwhile(x-);intx=3,y=0;FORy+;printf(x=%d,y=%d,x,y);,宏定义引起语句结构变换,宏替换后intx=3,y=0;while(x-);/*注意最后的;*/y+;printf(x=%d,y=%d,x,y);,答案x=-1,y=1,64,下列程序的输出是_.#include#defineP(a)printf(a=%dn,(int)(a)#defineP1(a)P(a);putchar(n);#defineP2(a,b)P(a);P1(b);voidmain()intx=1;for(;x字位右移printf(%dn,a(b2);,b210=128=1010210102=102a=0108=10002100010=10102=10,答案:10,表达式(42)的值是_,答案:-17,4=100210001010,1a=1+1=2,答案a=2,b=1,若变量已正确定义并赋值,表达式-k+等价于_。A-(k+)B(-k)+C-(k+1)D-(+k),答案A,72,2.逗号表达式与自增自减下列程序段的输出结果_inta=0,b=0;inti,j=0;i=(j+,j+);printf(i=%d,j=%dn,i,j);,答案i=1,j=2注:第一个j+先做第二个j+在整个式子之后再做,3.条件表达式与自增自减下列程序段的输出结果_inta,b;a=15;b=12;b=(a-=b+)?a/5:a+%5;printf(a=%d,b=%dn,a,b);,答案a=15,b=4注:a-和b+在(a=b)?完成后就做a+在整个式子之后再做,73,4.结构体与自增自减对于以下结构定义:structintlen;char*str;*p;+p-str中的+加在A)指针str上B)指针p上C)str所指的内容上D)表达式语法有错,答案A运算优先+(p-str),5.指针与自增自减,若变量已正确定义并且指针p已经指向某个变量x,则(*p)+相当于_。A、p+B、x+C、*(p+)D、that=0;for(i=0;ithat)that=this;returnthat;voidmain()inta=4,-3,5,-2,-1,2,6,-2;printf(“%dn”,f(a,8);,11,算法:this=0;i=0,1,2,n-1for(j=i;jthat)that=this;i=0,数组a0an-1,累加取大值i=1,数组a1an-1,累加取大值i=n-1数组an-1,累加取大值,aj4-35-2-126-2this=0416(that)43511(that)9this=0164351

温馨提示

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

评论

0/150

提交评论