江苏省C语言考试第一课时.doc_第1页
江苏省C语言考试第一课时.doc_第2页
江苏省C语言考试第一课时.doc_第3页
江苏省C语言考试第一课时.doc_第4页
江苏省C语言考试第一课时.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

第一次课 C语言基础课时:4 第一部分 C语言程序的结构试题分析: 从近两年(2010至2011年)的真题中可以看出,本部分内容考概念较多,一般在选择题中出2题,对应的题号为11和12题,对C语言程序的基本概念的了解要求。重点内容:1.1 C语言构成,main函数和其他函数C语言由若干函数构成,其中必须有一个main函数,C语言程序的执行是以main函数开始,又以main函数结束,其他函数可以被main函数调用,但是其他函数不可以单独编译执行。函数构成:(1)函数体说明部分:包括函数名、函数类型、函数参数名和形式参数类型(2)函数主体部分:包括变量定义和语句执行部分1.2 头文件、数据说明,函数的开始和结束标志及程序中的注释格式:#include 头文件可以是C语言中现成的标准库文件,也可以是自定义的库文件,比如C语言中的系统函数都放在相应的头文件中。比如stdio.h包含了有关输入(scanf)输出(printf)语句的函数。C语言中,以main函数开始,也以main函数结束。C语言中的注释用/*/表示,注释的内容不参与C语言的编译。1.3 源程序的书写格式#include函数名(参数) 变量定义部分; 语句执行部分;main() 变量定义部分; 语句执行部分;举例:#include main() int i,j,sum; scanf(“%d%d”,&i,&j); printf(“%d%d”,i,j); C语言书写格式自由,一行可以写几个语句,一个语句可以写在多行上,当一个语句写在多行上,换行时要在上一行尾加符号“_”。每个语句都要加结束符号“;”,这些符号都是英文状态下的符号。1.4 C语言的风格1、缩进:C语言程序要像锯齿一样,该缩进的要缩进,也是为了增加程序可读性。2、大括号位置:大括号是为了使得某个语句块不被分开执行,位置要对应起来,增加程序可读性。3、命名:变量、函数等命名时尽量做到见名知意,增加程序可读性。4、函数:编写函数时要说明函数功能,并尽量控制函数变量个数,增加程序可读性。5、注释:一个良好的程序必须有注释,是为了增加程序的可读性。真题解析(2010-2011):一、选择题(1)以下叙述中错误的是( )(2011年9月选择题11题) A)C语言编写的函数源程序,其文件名后缀可以是.C B)C语言编写的函数都可以作为一个独立的源程序文件 C)C语言编写的每个函数都可以进行独立的编译并执行 D)一个C语言程序只能有一个主函数答案:C解析:(2)以下选项中关于程序模块化得叙述错误的是( )(2011年9月选择题12题)A)把程序分成若干相对独立的模块可便于编码和调试B)把程序分成若干相对独立,功能单一的模块,可便于重复使用这些模块C)可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序 D)可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序答案:C解析:(3)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是( )(2011年3月选择题11题) A)C语言程序仅可以编译执行 B)C语言程序仅可以解释执行 C)C语言程序既可以编译执行又可以解释执行 D)以上说法都不对答案:C解析:(4)以下叙述中错误的是( )(2011年3月选择题12题) A)C语言的可执行程序是由一系列机器指令构成的 B)用C语言编写的源程序不能直接在计算机上运行 C)通过编译得到的二进制目标程序需要连接才可以运行 D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件答案:D解析:(5)以下关于结构化程序设计的叙述中正确的是( )(2010年9月选择题11题)A)一个结构化程序必须同时由顺序、分支、循环三种结构组成B)结构化程序使用goto语句会很便捷C)在C语言中,程序的模块化是利用函数实现的D)由三种基本结构构成的程序只能解决小规模的问题答案:C解析:(6)以下关于简单程序设计的步骤和顺序的说法中正确的是( )(2010年9月选择题12题)A)确定算法后,整理并写出文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构答案:B解析:(7)以下叙述正确的是( )(2010年3月选择题11题)A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x)C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可以作为单独文件形式存在答案:B解析:(8)以下关于C语言的叙述中正确的是( )(2010年3月选择题12题)A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以再使用之前的任何位置进行定义C)在C语言算术的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示答案:B解析:第二部分 数据类型及其运算试题分析: 重点内容:2.1 C的数据类型(基本类型、构造类型、指针类型、无值类型)1 基本类型int:整型数据,占2个字节空间float:单精度实数double:双精度实数char:字符型数据以上为常用的数据类型,C语言中没有逻辑型2 常量:在程序中固定不变的量。分为整型常量,实型常量及字符型常量。整型常量:十进制、八进制(0开头)、十六进制(0x开头)实型常量:当中指数表示是常考(1.0E-5,表示1.0乘10的5次方)E后面必须为整型字符型常量:用单引号表示,如字符c,表示成c字符串常量:用双引号表示,如字符串abcd,表示成”abcd”符号常量:这是一个特殊常量,用字符表示。#define PI 3.14159(声明PI为符号常量)3 变量:在程序执行中能够改变的量。变量命名规则:只能由字母、数字和下划线组成,首字符必须是字母或下划线(常在选择题中考察)变量声明:变量类型 变量名;举例:int a; /声明一个整型变量aint a,b; /声明两个整型变量,分别是a和bchar s; /声明字符型变量2.2 C运算符的种类、运算符优先级和结合性1 算术运算符:+、-、*、/、%/:当两边都为整型时,属于求整数(即商),10/3=3;当一边是实数时,则正常除法,1.0/2=0.5%:求余运算符。10%3=12 关系运算符:、=、=、!=:关系运算符里的等于=:赋值号两者有区别,而且经常用=来代替=使得考题复杂,考生要加以区别。3 逻辑运算符:!(非)、&(与)、|(或)(三者运算级别由高到低)短路现象:&:当&前表达式值为0时,则&后表达式不再执行;|:当|前表达式值为1时,则|后表达式不再执行。举例:a=0,b=0,c=1,d=1,执行如下语句后a、b、c、d值分别是多少?a+&b+ /a=1,b=0(执行a+后,由于a+为0,则不执行b+)c+|d+ /c=2,d=1(执行c+后,由于c+为1,则不执行d+)4 基本赋值运算符:=由于赋值运算符级别比较低(只有逗号比赋值运算符低),可以进行相应赋值操作,结合性为自由向左(a=b=c=4的含义是先给c赋4,再给b赋4,最后给a赋4)。5 复合赋值运算符:+=、-=、*=、/=、%= a*=b+c; /等价a=a*(b+c);6 条件运算符:三目运算符,相当于后面要讲的if-else语句,格式为: 条件? 表达式1:表达式2 如果条件为1(非0)时,执行表达式1的值;如果条件为0时,执行表达式2的值。7 逗号运算符 “,”8 自增+、自减- 9关于运算符优先级算术运算符关系运算符逻辑运算符赋值运算符逗号运算符2.3 不同数据类型间的转换与运算1 显示转换格式:(类型标识符)(表达式)举例:(int)(x+y) /将x+y的结果转换成int型注意:前者括号不能省,后者如果只有一个量可以省括号,否则,也不可以省。(float)x/y /将x强制转换成float型后,在进行/运算2 隐式转换第一种:不同数据类型混合运算时,会自动转换成一个类型,转换规则:double、float、long、unsinged、int、char和short(高到低),按照低到高转换。举例:int a=10;double b=3.14;则表达式A+a+b数据类型为double第二种:已定义好变量类型,给变量赋其他类型值时会自动转换成该变量类型值。举例:int a;a=2.1; /此时a为22.4 C表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则1 赋值表达式2 算术表达式3 关系表达式4 逻辑表达式5 条件表达式6 逗号表达式真题解析:一、选择题(1)以下选项中关于C语言常量的叙述错误的是( )(2011年9月选择题13题)A)所谓常量,是指在程序运行过程中,其值不能被改变的量 B)常量分为整型常量、实型常量、字符常量和字符串常量 C)常量可分为数值型常量和非数值型常量D)经常被使用的变量可定义成常量答案:D解析:变量与常量的区别,变量是指在程序运行过程中被改变的量,一般是不可以转换成常量,所以,选择D。(2)若有定义语句:int a=10;double b=3.14;,则表达式A+a+b值得类型是( )(2011年9月选择题14题) A.char B.int C.double D.float答案:C解析:本题考查不同数据类型运算,本题涉及字符型、整型和双精度类型,将最终转换成占字节空间最大的数据,本题double占16个字节空间,所以,结果以double类型表示。(3)如有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y,则z的值为( )(2011年9月选择题15题) A.1.9 B.1 C.2 D.2.4答案:B解析:首先知道/运算符的使用,当/两边都为整型变量时,则相当于求两数的商,x/y=1,所以,z=0.9+x/y;中z为1.9,又因为z为整型(int)变量,所以,自动将z值变为执行1,这考查隐式数据类型转换。还有显式类型转换,考生可以去复习下。(4)若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1k2)&(k2=k2k1)后,k1和k2的值分别为( )(2011年9月选择题17题) A. 0和1 B.0和20 C.10和1 D. 10和20答案:B解析:本题考&短路现象,当&前的表达式值为0时,&后表达式不再执行,由于k1=k1k2,使得k1=0,且表达式值为0,不再执行&后表达式k2=k2k1,本题考生会因为不知道短路现象误选A。另外,还要记住另一个短路逻辑运算符,即|。(5)以下选项中不能用作C程序合法常量的是( )(2011年3月选择题13题)A)1,234 B)123C)123 D)x7G答案:A解析:在表示超过千位数时不需要加逗号,所以A项错误,B项的123表示一个字符,用八进制表示,C项表示整数123,D项表示字符串,共占两个字节。( )(2011年3月选择题15题)(6))以下选项中可用作C程序合法实数的是A).1e0 B)3.0e0.2C)E9 D)9.12E答案:A解析:本题考查实数科学计数法,利用指数表示实数,其中E表示10为底的指数,例如,2.1E3相当于2.1*103,注意:E前面和后面必须有数,且E后面必须为整数(可以为负数),这样可以排除B、C、D三个选项,A项相当于0.1*100。(7)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是( )(2011年3月选择题15题)A)a=(b=4)=3; B)a=b=c+1;C)a=(b=4)+c; D)a=1+(b=c=4);答案:A解析:本题考查赋值表达式,A选项中由于先执行b=4,导致将3赋给4,这是不合法的,即不能给常量赋值。另外,在赋值时,赋值号左边只能是一个变量,而不可以是两个变量或表达式,即a+b=1;是错误的。(8)有以下程序#include main() int x=011;printf(%dn”,+x);程序运行后的输出结果是( )(2011年3月选择题18题)A)12 B)11 C)10 D)9答案:C解析:本题考查八进制表示和自增运算符,正常以0开头的整型表示八进制,以0和x开头的表示十六进制,本题011是八进制,而要输出的是%d十进制,所以,先将011转换成八进制,即011(8)=1*81+1*80=9,执行printf(%dn”,+x);时,将9自增1,即变成10输出。思考:printf(%dn”,x+);输出结果为多少?(9)有以下定义:int a; long b; double x,y;则以下选项中正确的表达式是( )(2010年9月选择题14题)A)a%(int)(x-y)B)a=x!=y;C)(a*y)%bD)y=x+y=x答案:B解析:本题考查赋值表达式及%的应用,选项A中,如果x=y,则导致%的后面是0,不符合除法中除数不为零的规定;B选项中,由于!=的优先级高于=,所以,先判断x与y是否相等,如果相等则a=1,不相等a=0;C选项中由于y为double,所以a*y为double,而%前后不能为double;D选项中,将x赋给x+y,不符合赋值表达式要求。可以延伸到“/”运算符的使用。(10)以下选项中能表示合法常量的是( )(2010年9月选择题15题)A)整数:1,200B)实数:1.5E2.0C )字符斜杠:D)字符串:007答案:D解析:本题考查常量表示,整数过千时不需要加逗号,这个多次考过,1200即可;选项B中,科学计数法中E后面必须是整型,所以错误;选项C中,正常用来表示转义符,如果要得到字符斜杠(),必须是;D正确。(11)表达式a+=a-=a=9的值是( )(2010年9月选择题16题)A)9B)_9C)18D)0答案:D解析:本题考查复合运算符:+=、-=、*=、/=、%=等等,记住是自右向左的顺序,所以先执行a=9,再执行a-=a即a=a-a=9-9=0,最后在执行a+=a即a=a+a=0+0=0。复合运算符使用必须掌握。(12)以下C语言用户标示符中,不合法的是( )(2010年3月选择题13题)A)_1 B)AaBc C)a_b D)ab答案:D解析:本题考查表示符命名规则,表示符必须由字符、数字或下划线组成,且第一个字符必须是字母或下划线。其他符号可以出现在表示符里,比如本题的D项。(13)若有定义:double a=22;int i=0,k=18;则不符合C语言规定的赋值语句是( )(2010年3月选择题14题)A)a=a+,i+ B)i=(a+k)=(i+k) C)i=a%11 D)i=!a答案:C解析:本题考查赋值语句,A选项中,是逗号运算符和赋值语句结合,a变成23,i变成1;B选项中是将关系运算结果=赋给i,i的值为0;C选项中由于a是double,而%前面不可以有double,所以错误;D项中先执行!a(为0)再将0赋给i。(14)以下关于C语言数据类型使用的叙述中错误的是:( )(2010年3月选择题16题)A、若要准确无误的表示自然数,应使用整数类型。B、若要保存带有多位小数的数据,应使用双精度类型。C、若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型。D、若只处理“真”和“假”两种逻辑值,应使用逻辑类型。答案:D解析:本题考查数据类型,整型也可以表示逻辑值,0代表“假”,非0代表“真”。(15)若a是数值类型,则逻辑表达式(a=1)|(a!=1)的值是:( )(2010年3月选择题17题)A、1 B、0 C、2 D、不知道a的值,不能确定答案:A解析:本题考查逻辑运算符|,本题易误选D,实际上,当a=1时,|左边为1,右边为0,1|0结果为1;当a!=1时,|左边为0,右边为1,0|1结果为1。这种考法不多见,但要掌握。另外,要掌握|的短路

温馨提示

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

评论

0/150

提交评论