作者:王旋
出版社:电子工业出版社
格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT
课课通C语言(计算机类)(附测试卷)试读:
“课课通”普通高校对口升学系列学习指导丛书主 编 王 旋 副主编 董小莉 李 静 侯 娟内容简介本书是江苏省中等职业学校(三年)计算机类专业普通高校单独招生教学配套用书,是依据江苏省教育考试院2010年颁布的《江苏省普通高校对口单独招生计算机专业综合理论考试大纲》第二部分《C语言》的要求编写的。本书由C语言基础知识、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、字符数组与字符串、函数和文件等八章组成。每章按学习内容分若干小节,每小节均按学习目标、内容提要、例题解析、巩固练习四个环节展开。同时,配有单元测试卷与学科综合测试卷。
本书除可作为江苏省中等职业学校计算机专业对口单招复习用书外,也可作为其他中职计算机专业学生加强和完善C语言理论的自学用书,还可以作为高校学生计算机二级C语言考试复习用书。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。版权页图书在版编目(CIP)数据课课通C语言:计算机类/王旋主编. —北京:电子工业出版社,2013.9(“课课通”普通高校对口升学系列学习指导丛书)ISBN 978-7-121-21381-6Ⅰ.①课… Ⅱ.①王… Ⅲ.①C语言—程序设计—中等专业学校—升学参考资料 Ⅳ.①G634.673中国版本图书馆CIP数据核字(2013)第209485号策划编辑:张 凌 陶 亮责任编辑:郝黎明 文字编辑:裴 杰印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路173信箱 邮编:100036开 本:787×1 092 1/16 印张:14 字数:243.2千字印 次:2013年9月第1次印刷定 价:38.00元
凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888。
质量投诉请发邮件至zlts@phei.com.cn,盗版侵权举报请发邮件至dbqq@phei.com.cn。
服务热线:(010)88258888。前 言
江苏省教育考试院2010年最新颁布的《江苏省普通高校对口单独招生计算机专业综合理论考试大纲》和《江苏省普通高校对口单招计算机类专业技能考试标准》中明确规定,《C语言》在理论考试部分所占分值为60分,技能考试部分所占分值为80分,两项合计140分,而且,该部分考试时,能体现较大的区分度。因此,学好《C语言》对于学生达到专业综合理论和专业技能考纲要求非常重要。然而,在实际的对口单招教学中,我们很难找到在内容的覆盖面和知识的深度上与考纲要求相匹配的教材与教辅资料,这给教学工作带来了许多不便。本书的编写初衷正是致力于解决这一问题,给广大的有志于通过普通高校对口升学进入大学深造的莘莘学子们提供学习上的便利,搭建一个强有力的平台。
本书在编写时,力求体现以下特色:
1.依据考纲要求,强化单招特色 本书的编写完全依据对口单招高考的要求,有别于一般中等职业教育的专业教材和教辅材料,强调对程序的结构理解,突出程序算法的指导。
2.针对考试特点,兼顾理论与技能 本书在编写过程中,在着重理论复习指导的同时,强调《C语言》技能考核的内容:专门将字符数组和字符串的内容单独列出一章,突出这部分内容的地位,同时加强函数部分及文件部分的内容。
3.对应考纲内容,形成理论体系 按照够用、必需的原则,对应考纳要求进行内容的组织,使相关知识形成了较完整的体系,解决了目前中等职业教育相关教材知识不够系统、不够完整的问题。
4.结合单招实际,方便教学组织 本书的编写人员长期从事单招教学与研究工作,我们立足单招学生的实际基础水平与认知能力特点,结合单招高考的目标要求,精心组织内容,循序渐进,多角度地帮助学生理解知识,着力培养学生的知识应用能力。相信无论是对于老师的教学还是学生的学习,都会有一定的帮助与促进作用。
本书由C语言基础知识、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、字符数组与字符串、函数和文件等八章组成。每章按学习内容分若干小节,每小节均按学习目标、内容提要、例题解析、巩固练习四个环节展开:“学习目标”是对考纲要求的分解和细化,并有机整合了知识目标与能力目标;“内容提要”是对学习重点、难点内容的归纳与提炼,对高考中可能超纲的内容,作出一些延伸和补充;“例题解析”是围绕重点学习目标设置典型例题,而且大部分是历年高考题或江苏各大市高考模拟题,通过对问题的解析,提炼解决方法与思路,提高学生的解题能力;“巩固练习”着眼于目标达成,强化能力训练,并按高考题的范式编制。
同时,为便于教学质量检测,每章均配有测试卷,另外还配有两套学科综合测试卷及参考答案。
本书由王旋老师担任主编,并编写了第6、7、8章。董小莉、李静和侯娟老师担任副主编,董小莉老师编写了第5章,李静老师编写了第2、4章,候娟老师编写了第1、3章。在本书的编写过程中,我们参考了部分专业书籍,获得了一些单招资深专家的指导和建议,在此,谨对这些资料的原作者以及指导、帮助本书编写的同志们一并表示衷心的感谢!
限于编者水平有限,加之时间仓促,本书难免存在不妥与疏漏,恳请广大读者批评指正。编者2013年6月第1章 C语言基础知识考纲要求
✧ 了解编程语言的发展史和特点。
✧ 了解编程语言的种类及适用范围。
✧ 掌握程序结构的main函数。
✧ 理解头文件、数据说明、函数的开始和结束标志。
✧ 掌握源程序的书写格式。
✧ 理解C语言的风格。1.1 C语言的基本结构
学习目标
1.了解C语言的发展史。
2.理解C语言的基本结构。
3.能够正确书写源程序。
内容提要
一、C语言的发展史
C语言是在20世纪70年代初问世的。1978年由美国电话电报公司(AT&T) 贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE ”一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C 语言,后来由(American Nati-onal Standards Institute)在此基础上制定了一个C 语言标准,于1983年发表,通常称之为ANSIC。
二、C语言的特点
C语言之所以发展迅速,且成为最受欢迎的语言之一,主要是因为它具有强大的功能,许多著名的系统软件,例如UNIX/Linux、Windows都是由C语言编写的。
归纳起来,C语言具有下列特点:(1)语言简洁、紧凑,使用方便、灵活。(2)运算符丰富。共有34种。C语言把括号、赋值、逗号等都作为运算符处理。从而使C语言的运算类型极为丰富,可以实现其他高级语言难以实现的运算。(3)数据结构类型丰富。(4)具有结构化的控制语句。(5)语法限制不太严格,程序设计自由度大。(6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此有人把它称为中级语言。(7)生成目标代码质量高,程序执行效率高。(8)与汇编语言相比,用C语言写的程序可移植性好。
三、C语言的基本结构
下面我们通过一个简单的C程序实例,初步了解C语言的基本构成。
在屏幕上输出一行信息“这是第1个简单的C程序”。(1)C程序是由函数构成的。一个C源程序至少且仅包含一个main函数,也可以包含一个main函数和若干个其他函数。(2)一个函数由两部分组成:函数的首部和函数体两个部分。(3)一个C程序总是从main函数开始执行的,不论main函数在整个程序中的位置如何。(4)C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上,C程序没有行号。(5)每个语句和数据声明的最后必须有一个分号。(6)C语言本身没有输入/输出语句,输入和输出的操作是由库函数scanf和printf函数等来完成的。(7)可以用/*……*/(或//)对C程序中的任何部分做注释。1.2 程序的运行环境
学习目标
1.理解C程序的设计步骤。
2.掌握Visual C++ 6.0集成开发环境。
内容提要
一、C程序的设计步骤
在前面我们看到的用C语言编写的程序是源程序,计算机须用编译程序把C源程序翻译成目标程序,再与系统的数据库以及其他目标程序连接起来,形成可执行的目标程序。
写好一个程序后,要经过这样几个步骤:上机输入与编辑源程序→对源程序进行编译→与库函数连接→运行目标程序。例如,编辑后得到一个源程序文件a.c,然后在进行编译时再将源程序文件a.c输入,经过编译得到目标文件a.obj,再将目标程序文件a.obj输入内存,与系统提供的库函数等连接,得到可执行的目标程序a.exe,最后把a.exe调入内存并使之运行,如图1-2-1所示。图1-2-1
二、Visual C++ 6.0 集成环境
1.C语言的编译环境。
为了编译、连接和运行C程序,必须要有相应的编译系统,常用的有Turbo C2.0、Turbo C++3.0、Visual C++等。20世纪90年代,Turbo C2.0用得比较多,但Turbo C2.0是用于DOS的环境,在进入Turbo C继承环境后,不能用鼠标进行操作,主要通过键盘选择菜单,操作上不方便。有的人改用Turbo C++3.0,它具有方便、直观和易用的界面,虽然它也是DOS环境下的集成环境,但是它可以用鼠标操作菜单,因此在Windows环境下使用也很方便。进来,不少人用Visual C++对C程序进行编译。Visual C++6.0既可以对C++程序进行编译,也可以对C程序进行编译。本书的程序调试采用Visual C++6.0程序。
2.Visual C++ 6.0(VC++6.0)开发环境
在Windows开始菜单中单击“所有程序”/Microsoft Visual Studio 6.0/ Microsoft Visual C++ 6.0即可启动VC++ 6.0环境,如图1-2-2所示。图1-2-2
窗口标题栏下是主菜单,为方便操作,VC++ 6.0集成环境中提供了多种工具栏,常用的是标准工具栏和编译工具栏,如图1-2-3所示。图1-2-3
编写C程序的一般步骤为:建立工程文件→建立源程序文件→编辑源程序→编译源程序→程序调试→运行程序。
例题解析【例1-2-1】 编写程序计算a与b的和sum,设a=123,b=345。
解题分析 本题主要考查Visual C++ 6.0 软件的使用。
答案
1.单击“文件”→“新建”菜单命令,在弹出的“新建”对话框中选择“工程”选项卡,在工程选项卡中选择“Win32 Console Application”,并在右边的位置填写工程名和选择存放工程的位置,再单击“确定”按钮,在弹出的窗口中选“一个空工程”再单击“确定”按钮,如图1-2-4所示。图1-2-4
2.单击“文件”→“新建”菜单命令,在弹出的“新建”窗口中选择“文件”选项卡,在文件选项卡中选择“C++Source File”,注意在写文件名时一定要加.c后缀,如图1-2-5所示。图1-2-5
3.在弹出的窗口中编写程序。
4.单击工具栏上的编译按钮,或者使用快捷键【Ctrl+F7】进行编译,编译后生成目标文件,并查看编译的过程中是否会出现语法错误。
5.单击工具栏上的连接按钮,或者使用快捷键【F7】进行连接,连接后生成可执行的exe文件,这时也需要查看在连接过程中是否有警告和错误出现。
6.再运行程序并且查看运行的结果是否正确,这时可以单击工具栏上的运行按钮,或者使用快捷键【F5】键来运行程序并且查看结果。
巩固练习
在Visual C++ 6.0环境中,设计一个简单的C程序。第2章 顺序结构程序设计考纲要求
✧ 理解C语言运算符的种类、运算优先级、结合性。
✧ 理解不同类型数据间的转换与运算。
✧ 掌握C语言表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式)和求值规则。
✧ 掌握表达式语句、空语句、复合语句。
✧ 掌握输入/输出函数。2.1 运算符及表达式
学习目标
1.理解C语言运算符的种类、运算优先级、结合性。
2.理解不同类型数据间的转换与运算。
3.掌握C表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式)和求值规则。
4.掌握表达式语句、空语句、复合语句。
内容提要
一、算术运算符和算术表达式
C语言运算符是表示各种数据操作的符号。运算符是数据运算的规则。不同的运算符具有不同的运算规则,本章我们主要介绍以下几类C语言的运算符。
• 算术(自增/自减)运算符:(+,-,*,/,%、++、--)
• 关系运算符:(>,<,>=,<=,!=,==)
• 逻辑运算符:(!,&&,||)
• 赋值运算符:(=)
• 条件运算符:(?:)
• 逗号运算符:(,)
• 强制类型转换运算符:(类型名称)如:(int),(double)
1.算术运算符
除法运算符记为“/”,当除号两边都为整数时,结果依然为整数,其值采用向0取整。
如:2/3=0,3/2=1,2/3.0=0.666667,3/2.0=1.5。
求余运算符记为“%”,要求求余运算两边都为整数,运算结果符号与前数保持一致。
如:5%3=2,-5%3=-2,5%(-3)=2,-5%(-3)= -2。
自加运算符记为“++”,其功能是使变量的值自加1。
自减运算符记为“--”,其功能是使变量的值自减1。
自加、自减运算符均为单目运算,都具有右结合性。
注意 符号在前,先变化后应用,符号在后,先应用后变化,同一个变量多次自增自减注意方向自右向左。
如
程序运行结果为:
因为自加、自减运算符均为单目运算,都具有右结合性,故i---j中自减运算符属于i(i--),因符号在后,故先应用printf("%d \n",i-j),再变化i--。程序第4行可理解分成3步执行:第1步++i;第2步printf("%d,%d \n",i,j);第3步j--。程序第6行属于同一个变量多次自增自减,方向自右向左。可理解分成3步执行:第1步i--,此时符号在后,先输出i,即1;第2步++i,此时符号在前,先变,i变成2,再输出i,即2,第3步:执行第1步中i--,i变成1。
2.算术表达式优先级
算数运算符中++、--优先级最高,其次是*、/、%,最后是+、-。
3.强制类型转换运算符
其一般形式为:
其功能是把表达式的运算结果强制转换成类型说明符所表示的类型,当强制类型转换符为int时,其值向0取整。
如:( int )(3.6)=3,( int ) (-3.6)=-3。
二、赋值运算符和赋值表达式
1.赋值运算符
一般形式为:
如a=c+b读作将表达式c+b的值赋给变量a。
赋值运算的运算过程是先计算“=”右边表达式的值再赋给“=”左边的变量。赋值运算符的结合性是从右向左。因此a=b=c=5;可理解为a=(b=(c=5))。
2.复合的赋值运算符
在赋值符“=”之前加上其他双目运算符可构成复合赋值符,如+=,-=,*=,/=,%=等。
一般形式为:
等价于:变量=变量 运算符 (表达式)
例如:
a+=4 等价于 a=a+4
a*=b+2 等价于 a=a*(b+2)
x%=z 等价于 x=x%z
三、逗号运算符和逗号表达式
一般格式:
逗号运算符的功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。
逗号表达式一般形式中的表达式1和表达式2也可以是逗号表达式。
如:表达式1,(表达式2,表达式3),形成了嵌套情形。因此可以把逗号表达式扩展为:表达式1,表达式2,…,表达式n,整个逗号表达式的值等于表达式n的值。但运算顺序从左到右。
如:
程序运行结果为:x=2,y=3,z=2
x=5,y=4,z=2
注意 第4行程序z=x,y中逗号表达式是x,y,而第7行y=(y=z,2*y)中逗号表达式是y=z,2*y,先算表达式1的值,即y=z,再算2*y。
四、关系运算符和关系表达式
关系运算:对两个量进行“比较运算”,返回逻辑值。在C语言中“真”用“1”表示,“假”用“0”表示,但除了“0”以外其他都为“真”。
关系运算符:<、<=、>、>=、= =、!=
如:c>a+b 等价于 c>(a+b),而a==b<c 等价于 a==(b<c)
五、逻辑运算符和逻辑表达式
逻辑运算符: ! (非):非假为真,非真为假。口诀:真假颠倒。
&&(与):两边都为真时为真,其余为假。口诀:有假出假
| |(或):两边都为假时为假,其余为真。口诀:有真出真。
运算符优先级:
六、条件运算符与条件表达式(1)条件运算符:?:(2)条件表达式:表达式1?表达式2:表达式3(3)执行过程:
先求表达式1的值,若其为真(非0)时,则求表达式2的值,且整个条件表达式的值等于表达式2的值;若表达式1为假(0)时,则求表达式3的值,且整个条件表达式的值等于表达式3的值。(4)优先级:条件运算符高于赋值运算符,低于算术运算、关系运算。(5)结合性:右结合。
如:a>b?a:c>d?c:d等价于:a>b?a:(c>d?c:d)
例:已知两个数,求最大数?
例题解析【例2-1-1】 阅读下列程序并写出程序运行结果。
解题分析 自加、自减运算符均为单目运算,都具有右结合性。当符号在前,先变化后应用,当符号在后,先应用后变化,同一个变量多次自增自减应注意方向自右向左。
答案
a=0,i=1
a=2,i=4
a=10,i=7
a=24,i=10【例4-1-2】 已知int a=7,b=3;则:表达式运算后a的值各为多少。
a+=a
a*=1+3
a /=a+a
b%=(b%=2)
a+=a*=a-=3
解题分析 变量双目运算符= 表达式 等价于:变量=变量 运算符 (表达式)
注意赋值运算符的结合性是从右向左。
a+=a 等价于 a=a+a
a*=1+3 等价于 a=a*(1+3)
a/=a+a 等价于 a=a/(a+a)
b%=(b%=2) 等价于 b=b%(b=b%2)
a+=a*=a-=3 等价于a=a+(a=a*(a=a-3))
答案
14
28
0
0
3 2
学习目标
一、单项选择题
1.7%2的值是( )。
A.3.5
B.3
C.1
D.5
2.在以下各项的运算符中,要求运算数必须是整形的运算符是( )。
A.*
B./
C.%
D.++
3.设int a=15,b=2; int c=16;表达式b*c%a的值是( )。
A.1
B.2
C.3
D.4
4.变量均是整型,且num=sum=7;则执行表达式 sum++;++num;sum+=num++;后,sum的值是( )。
A.17
B.18
C.15
D.16
5.若有以下定义:int x=7,k=9;则x*=(k%5)的表达式是( )。
A.14
B.28
C.7
D.0
6.'A'>='A'的值是( )。
A.0
B.1
C.假
D.3
7.设a=0,b=4,c=5;则执行表达式!(a+b)+c-1&&b+c/2的值为( )。
A.6.5
B.1
C.2
D.0
8.若m=2,x=3,y=5,z=6,则执行下面语句后的m的值是( )。
m=(m<x)?m:x;
m=(m>y)?m:y;
m=(m<z)?m:z;
A.3
B.4
C.5
D.6
9.已知int x=1,y;执行以下语句:y=x--;y+=x++;后,变量x,y的值分别是( )。
A.2 1
B.1 2
C.4 3
D.1 1
10.已知定义:int a=11,b=6;则表达式为a%=b+2的值是( )。
A.3
B.5
C.7
D.8
二、填空题
11.计算a,b的平方差,表达式应写成________________。
12.设int a=2,b=3,则执行a=b/2+3;语句后,a的值是________________。
13.逗号表达式2+1,0,8的值是________________。
14.设float a=1,b=5;则执行a=b/2+3;语句后,a的值是________________。
三、程序阅读题
15.
该程序运行后的结果为________________________
16.
该程序运行后的结果为____________________
四、编程题
17.键盘输入3个整数,求和输出。
18.假设x是一个3位数,写出将m的个位,十位,百位反序而成的三位数(例如:345反序为543)。2.2 格式化输入、输出语句
学习目标
1.理解输入函数和输出函数在C程序中的作用。
2.熟练掌握printf函数和scanf函数的具体使用方法。
3.理解格式化输入和格式化输出的格式。
内容提要
一、格式化输出
在前面的章节中,我们已经遇到过printf函数(格式化输出函数)和scanf函数(格式化输入函数),其关键字最后一个字母f即为“格式”(format)之意。printf函数的功能是按用户指定的格式,把指定的数据显示到显示器屏幕上,而scanf函数的功能是将用户从终端输入的数据输入到程序中。
1.printf的一般格式
例如:printf("%d,%c",a,b);(1)格式控制字符串
包括两部分,格式说明和普通字符。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如%d:整型输出,%c:字符型输出。普通字符是需要原样输出的字符。(2)输出表列
输出表列中给出了各个输出项,可以是变量,也可以是表达式,但格式字符串和各输出项要求两者在数量和类型上一一对应。
如格式化输出
程序运行结果为:
88 89
x,y
a=88,b=y
printf格式说明字符见表2-2-1。表2-2-1 printf格式说明字符
试读结束[说明:试读内容隐藏了图片]