欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    《C语言程序设计》习题及参考答案.docx

    • 资源ID:1694884       资源大小:73.60KB        全文页数:32页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《C语言程序设计》习题及参考答案.docx

    C雷程序Ut计材#«8*包括各单元:随堂练习本章自测-.随堂练习r复练习in1.根据上述示例模仿编程,输入正方形的边长,计算其面机。inc1.ude<stdio.h>voidmain()i11ta,s;数据准!驾,边长a,面枳SPrintfe1请输入正方形的边长:”);scanf("%d"a);数据耕入s=a*a;数据计算Printfr该正方形的面积为:%d.11".s);)青练习1-21 .下面哪线标识符属F合法的用户自定义标识符:Main、void、一num、my$、a*»N4、3m、a2答:合法的用户自定义标识符是:Main,.num,N42 .结合【例1.2】指出程.序代码中所用到的标识符哪些是关次字,哪些是预定义标识符.哪些是用户自定义标识符.答:美腿字:void,int假定义标识符:inc1.ude、main,printf.sca11f用户自定义标识符:a、b、c3 .分析【例1.2中函数的结构,包括函数百部(函数返回值类型、函数名、形式参数、南数体语句说明语句、可执行语句)。答:函数百部:Voidmain(),其中函数返回侑类型为VOi或函数名为mam、形式参数无;的数体语句;)内的语句为由软体,其中:说明语句为Ingb工;,其余为可执行语句【Rt套练习1311 .在VC+6.0环境中完成【例1.2】程序开发过程。(略)2 .伐阅【例1.2】所对应的工程文件夹.了解相关文件的含义.工程文件夹中:.CPP:用C/C+语言编写的源代码文件.,DSP:VC开发环境生成的工程文件.YC4及以前版本使用项K文件来定义工程.项目文件,文本格式.DSW:YC开发环境生成的Workspace文件,用来把多个工程组织到一个常。rkSpace中。工作区文件,与.dsp差不多。.NCB:NCB是“NoCompi1.eBrowser"的缩写.其中存放了供C1.assVicw,WizardBarComponentGaI1.ery使用的信息,由VC开发环境自动生成.无编译浏览文件.当自动完成功能出问题时可以删除此文件。编洋工程后会自动生成,,OPT:VC开发环境自动生成的用来存放BorkSrxicc中各种选项的文件.工程关于开发环境的参数文件.如工具条位置信息等.DEBUG文件夹中:.OBJ;源文件编译后生成的目标文件,是模块的:迸制中间文件,,EXE:可执行文件。(注:蓝色字体为重点了解。)二.本章自测本单元中,核心内容有C语言程序框架结构、程序的构成和程序开发过程.通过本单元的学习,我的应该知道:1 .C语才程序及基本的程序框架由两部分构成,分别是:(1) 编译侦处理(2) 函数组2 .C程序最大的特点就是所行的程序都是用函数来装配的,函数是构成C青言程序的基本单位,函数包括主函数、库函数和自定义函数.函数的般结构形式为:因数一同值类型曲数2(形式公数)曲数首部(说明语句:一体可执行语句;3 .标识符是用来标识程序中的某个刻象名字的字符序列。C语言把标识符分为决,I1.P关键字、预定义标识符、用户自定义标识符.对于用户自定义标识符的命名CiH古规定:(1)所有的用户标识符必须先定义后使用:(2)用户标识符山字母(A-Z.a-z)、数字(09)、下划线“”组成,并且首字符不加是数字:(3)区分大小写:(4)不能用关键字作为用户自定义标识符,通常不使用预定义标识符作为用户自定义标识符”4 .理论上讲,程序开发过程分为四个步骤,分别为:(1) ¾一程片(2) 编译源村字.生成目标界序(3) 连接目标程序及其相关模块,生成可执行文件(4) 运行可执行文件5 .简单描述使用VC+6.0开发应用程序的步骤;如图所示:Hvo6Q开发程序的步M总之,通过本单元的学习,应该掌握C语言程序柩架结构和程序开发过程,还要时C语言程序设计的知识脉络有一定的了解。一.随堂练习tmupgzu1.判断下列附Ift表示正确与否?(带下划线的不正确)(1) 整型常麻:32768、037、0g1.,0x4f,OxAH(2) 浮点型常依:.124、3.0、Ie3、23E1.5(3) 字符型常属:胃、,1016S,'x21,2 .字符串常h:“Howaregu?n"的字符串长度为0个字节,它占用的存储空间为上个字节.3 ."d:windowsinfo.txt"在C语;程/设计时应描述为"d:windowsinfo.1.xt-D4 .在编程处理物理力学相关运算时,常将取力加速度G定义为符号常W.其定义语句可描述为:OdefineG9.8,堂练习2-211 .完成本单元【引例】中的问题。f1.oata,b,c,s,area;2,卜列变廉定义中合法的是:(以下定义语句均不合法)( 1) 1.ongdo=0xfd;<2)intma×=min=0;(3)doub1.ef,inta;<4)charch="A"IRt直修习2-31 .完成本单元【引例】中问题(2),Winc1.ude<math.h>s=(a+t>+c)2;area=sqrt(s(s-a),(s-b)*(s-c)2 .有定义语句:CharChd写出将变量Ch变为小笃字母的表达式:Ch=Ch+32;。【看堂峰习2-41 .试分析本单元【引例】的数据结构和实现算法,并绘制算法流程图,1. >数据结构:三角形的三个边长ahc,中的三个S和面枳area,均为浮点里。2. )实现算法:以顺序结构为例.根掘题目要求,其口法表示如下:步骤1:输入三个边长a、b、c(ft;步骤2:根据公式计算出S的值.然后根据公式计算出三角形面枳area:步骤3:谕出计算结果.(3)算法流程图:二,本章自测本单元中,核心内容有C语言中基本的数据类型、常盘和变盘、运算符和表达式以及算法的概念,通过本单元的学习,我们应该知道:3. C语言中报基本的数据类型有:/型、字符中、浮点型,4. C程序中使用的常量按照表现形式可分为H接常量和符号常1ft。(1)直接常尔D整型常依,有十进制、A进制和十六进制三种描述方式,其中,八进制的前置符号标志为。,十六进制的前况符号标志为OX或OX,2)浮点型常JkI十进制小数和指数两种描述方式,指数形式的符号标一是e或E,3)字符型常家,是用单班引号括起来的单一字符.对些特殊字符和控制字符用的形式丧示.4)字符串常量,是用双盘引号括起来的一串字符序列.字符用的结束标志为'O'.(2)符号常fit符号常盘是使用某个符号代表的常fib符号常量使用编译预处理中的宏定义命令定义。5. C程序中使用变1%必须先定义后使用.变量定义后,系统会根据变属的类型分配相应的存储空间,6. Ci普音有丰富的运算符,其中尊术运算符包括+、-、,/.%.运算符中的一仅用于整数间的运算:赋值运算符包括“十和相应的复合赋值运符3、.*=./=.赋值运算的含义足将右1«的表达式的计算结果赋值给“左侧的变量,这与数学中“=”的含义不同,衢鬟注意.5,由运算符和数据构成衣达式,若表达式中各数据的类型不同,则存在类型自动转换问题,必要时也可以使用强制类鞭转换.6 .时于面向过程的程序设计来说,程序=数据结构+算法.7 .在C语言中,对于每,个程序设计单元可采用结构化程序设计方法,有=种桩本的程序结构,分别为:地序、选择和街环.通过本单元的学习,应该掌树C语言程序设计所需要的域本知识,为后续内容的学习打卜坚实的基础.一.随堂练习【吆练习311.下面程序功能为:输入一个A-Z之间的字母,怆出与之左右相邻的两个字母,根蛎注择信息将程序填写完整(iiS:冲目要求输入AZ之间的字母,即不包含A和Z)#inc1.ude<stdio.h>voidmain()charch;ch=-har<):数拉:准招词川getchar检入个字母并飙他给5DutCharch1.1.:词用WtCharO输出.Ch左相邻的字母DtKchjrkhCk调用WtCharOfft出与ch右M1.邻的字母练习3-21 .输出提示语“请输入银行卡密码;”的语句可描述为Pr1.nm"谙输入银行卡密码:可,2 .分析下列程序输出希果.ttinc1.ude<stdo.h>voidmain()(inta6S.b97;doub1.em三3.141S9;printf(,'-%dn%c-%dn,a.axb.b);printf("a三%06d,b三%6d,¾b);pri11tf("a=%d,a=%oza=%×n".a.a.a);printf("m=%1.f.1111;printf("m三%4JH,zm);printf("m=%06.31.f.nwjn);输出结果如下:A-65a-97a-000065,b-97.a=65a=101a=41m=3.141590.m-3.142.m=03.142.Pressanykeytocontinue,IRt堂练习331 .分别按照int、doub1.e和Char类里给变Qa,b,c输入数值的谱句可描述为:SCanfe%d%>f%c”gaNbc;2 .根据要求给出数据输入方法,<1>有语句SCanfra=%d,b=%d,&a,&b);.要使a(ft为2.b值为3,则正确的输入方法是:a2.bW2)有帖入语句SCanfr%d%c,&m,&n);,为使m值为6,n值为字母y则正确的输入方法是:6v二.本章自测本单元中,核心内容是顺序程序结构程序设计中标准输入输出底函数的使用,通过本单元的学习,我们应该知道:I.C诺吉提供了标准输入输出库函数用于实现数据将入输出操作其对应的头文件为stdio.h2,单字符输入和输出函数分别为RetcharO和PUteha山3 .格式化输入和输出函数分别为can")和Printfa.4 .格式化输出函数有两种调用格式:(1) Printf字符,常收”);(2) Printfe格式控制字符用,输山J列衣;5 .格式化输入/输出中,格式控制符由%开头,常用的格式控制符有:桃型int格式符_2幺1、f1.oat浮点型格式符里3d。UbIe浮点型格式符_201_、字符型格式符c:对于浮点型格式可以用皿1形式的附加格式说明小数的窕度和小数位数.6 .格式化输入中的输入项为地址列表,对变限取地址的运算符为&-通过本总元的学习,应对顺序结构程序设计的特点和设计思路有所了解.同时曳点学会单字符输入函数getchar(),总字符输出函数PUtChar()、格式化输出函数Printf()和格式化谕入的数SCanf()的正确使用.一.随堂练习【随堂练习4-11 .当a=3,b=2,c=1.M,判断例4-1中条件发达式的假?<1)a>b三三c其(2)a三b<c(3)a<=b*c假2 .当r的优为3时,判断下列条件我达式的值,<1)r»»3真(2)r=4真(3)O<r<1.其3 .整型变埴n为偶数的关系表达式为1堂练习4-211 .判断字符变JaCh的值为大写字母的逻辑表达式为:ch>='A'&&ch<='Z'.2 .判断某一年份是否为闰年,闰年是符合以下条件的年份:能被4整除但不能被100整除.或者能被400整除。若用整型变Iftyear表示年份,则闺年的龙辑判断表达式为:yearI=Oyear1.OO!=0Iyear100:=0<.看堂练习431 .以下程序段的运行结果是x=2O,=2O,intx«10,y=20;if(x<Y>=y:y=;printf("*1.,y*%d",x,y);2 .以下程序段的功能是计灯个整数的绝对值.将程序补充完整.intn;stanf(*dM.&n;i"nvt)n-n;Primfri整数的绝对值dn);r*直薛习4-411 .以下程序可判断指定的年份是否为闰年,补充完整,i11tcar,f;f是W邱的标志位,VriIr表示年份scant(*%dvyear);IfWear%4=0&&year%CoOko1.1.year%400=0)Fe1.sef«Q:if(J三1.)Printfr%d年是闰年"year);e1.seprintff%d年不是行|年.",yar);2 .以下程序用于判断输入的字符是否为字母,补充完整,然后将程序改写成仅,对ife1.se的形式”charch;ch*gecchar();if(ChX:火&&5<)Printf1.xC是字母Och);e1.seIf(Ch>'&&-)Printf("是字/"rch);Hscprintfi1.e不足字,丸”;改成一对ife1.se的形式:charch;chge<char();iffW&&chv|IChf&&ch<*)Wintf1.fc是字母。M.ch);ebepr1.ntf(uc不足字母.",ch);随堂练习4-51.将【随堂练习4-4中第1题的3至.6行程序使用条件运算符描述:f=(Vear%4=0&&vear%Q01.=01.Ivear400=0Rr0:【女练习4-61.输入17之间的任懑数字,输出其时应的星期几的英文,如输入5,程序输出Fnday,.若输入17以外的数字,则提示输入错误.参考程序代码如下:inc1.ude<stdio.h>voidmain()Intm;Pr1.ntf("说输入1-7任意数字:");scanf("%d"m);swtch(m)case1:PrintfrMonday");break;case2:PrintfrTUe$day");break;case3:printf("Wednesday");break;case4:printf("Thursday");break;case5printf("Frida")break;case6:PrintfrSatUrdaV");break;case7:printfCSunday");break;defau1.t:Printfr输入错误!");)二.本章自测在选择结构程序设计中,条件判断表达式和选择结构实现语句是两个核心内容。通过本单元的学习,我们应该知道:1 .条件判断表达式由关系运尊符及其表达式、逻辑运徵符及其表达式构成,其中:(1) 关系运算符有:、=、V=、!=、=(2) 逻辑运算符有:&&、II.!2 .选择结构实现语句有三种方式:(1) 单分支许选择结构,般格式为:if(表达式)!诺句:)(2)双分支if-e1.se选择结构,一般格式为:if(表达式)(语句he1.se(语句2;)(3)多分支SWitCh选择结构.一般格式为:switch(表达式)(case常Iit友达式I:I语句序列I:)break:case常负我达式2:I语句序列2:J1.brCakease常玳表达式n:I语句序列n:Ibreak;Jdefau1.t:诰句序列t+kI3 .在应用选择结构时,应注意以下向期:(1)在if嵌套语句中,要弄清e1.se与If的匹配关系,书写If语句嵌套时股采用缩进的阶拂式写法,在实际编程中,为了表明编程者的总图,也常常通过“来频制If和e1.se的配对关系.(2) SWitCh语句中,“表达式”和“常一表达式”的类型只能是整型或字符型数据,且“常J1.t发达式”只能由常属构成,通过“衣达式”与“常敏表达式”之间的对等关系构造出多分支选择结构.(3)在某些多分支选择结构程序设计中,既可使用if-e1.se语句实现,也可以使用SWitCh谱句实现,switch谱句与if语句的不同之处在于:switch谱句仅能判断一种逻辑关系,即“我达式”和指定“常量表达式”的值是否相等,而不能进行大于.小于某一个值的判断.不能表达区间数据的概念:if语句可以计算和判断各种表达式.所以SWitCh语句不能完全替代if语句。总之,通过本单元的学习应该掌娓C谱吉选择结构程序设计的思路和谱句的基本用法.«5«一.随堂练习M直镰习511 .利用WhiIe语句计算自然数序列1,2,3,,n的和,n的伯在程序执行时输入.inc1.ude<stdio.h>voidmain()intrsm=O,i=1.;Printfr请输入11的值:。;scanf(d-n);whi1.e(i<=n)sum+=i;i+*;)Printf("自然数序列1到%d的和为:%d.n,n,sum);2 .利用WhiIe语句计算1.-n中的奇数之和及情数之和.Ainc1.ude<stdio.h>voidmain()intn,eve11=0,odd=0,i三1.;Prinw请输入n的一门;scanf("%d"11);whi1.e(i<=n)if(i%2=0)eve+=i;e1.seodd*三i;I+;Pr1.na"自然数序列1到%d的奇数和为d,偶数和为:d.r,n,odd,even);IRt直练习5-21 .利用do-wi1.e语计算1.-n中的奇数之和及偶数句和.#inc1.ude<stdio.h>voidmain()intnreven=Orodd三OJ三1.;Primf请输入n的曲);SCanf(M%d,&n);doif(i%2=三0)even+=i;e1.seodd*"i;i+;wi1.e(i<=n);PrIntfr自然数序列1到%d的奇数和为%d,隅数和为:d,n,n,odd,even);)2 .利用do-whi1.e语句计算1.÷1.2÷1.3÷.*1.n.Iiinc1.ude<stdio.h>voidmain()int11J=1;doub1.es=0;Printf请输入n的值:年scanf(',%d"n);dos÷三1.0i;I*+;wi1.e(i<=);Pr1.ntf("计算结果为:21.f.n”,s);rm直练习5-31 .利用for语句计算1中的奇数之和及偶数之和.inc1.ude<stdio.h>voidmain()(intn,even=0,odd=0,i=1.;PrIntf("请输入n的值;");scanf(%d*11);for(1.=1.;i<=n;1.+)if(i%2=0)even+=i;e1.seodd+=i;Printf自然数序列1到d的奇数和为d,例数和为:dM,n,odd,even);2 .利用for语句计鲸Minc1.ude<stdio.h>voidmain()i11tn,=1.;doub1.es三0;Printf请输入n的位门;$canf(M%d",&n);for(i=1.;i<=n;i*)s*三1.0i;pritf('if豫结果r%.21.f.n"zs);.本章自测在本单元中,如何理斛循环的本质、如何分析循环的三个要素以及如何描述循环结构语句是核心内容,通过本单元的学习,我们应该知道:1 .循环的本质是将程序员从大量重红编写相同代码的工作中解放出来,减少程序源代码的存储富间,提高程序的质收,提高程序编写的工作效率,但计第机执行程序的工作业并没有M少。2 .循环结构的:要素包括:(1)环变质初伯(2)循环控制条件发达式(3)循环体3 .循环结构描述谓句有1种:whi1.edo-whi1.e和for.其中whi1.e和do-whi1.e的区别在于不管俄环条件足”成立,do-whi1.e44环穆i先执行-次一环体,所以dowhi1.e环的循环体至少执行一次.而Whi1.e砧环的耳环体对能次都不执行。4 .循环结构控制语句break的作用是:结束V环:循环结构控制语句COntinUe的作用是:提前结束本次循环.5 .在一辐环结构语句中又包含了一个循环结构语句称之为句环的嵌,程序执行时,外层循环每执行次,内层循环就要完整的执行完,直至内层循环执行结束,再开始执行下一次外层循环.学习完本通元,应该掌握Cifi吉循环结构程序设计的思路和基本语句的用法.至此.我们就学完了结构化程序设计中的种基本结构:顺序、选择和循环.一.随堂练习【随堂练习6-11 .完成【引例】中的曲目(1).f1.oatscore40;2 .有数组定义doub1.ep.数组中每个元素占用字节,於个数组占用旦字节_E_可以代表数组在内存中存放的首地址。IRI堂练习6-21.将【例6-3】中的一维数组中各元素的值逆序输出.Minc1.ude<stdio.h>voidmain()inta10=04,23A57A9;for(iti=9;i>=0;i-)printf(,%4dXi);r堂练习以3】1 .判断如下二维数组的定义方式是否正确?(1) f1.oatb(10(10;正确(2) WdefineN20正确ints(N(N;(3) Intn=20;i11tarrayn(10;不正确(4) doub1.ea4,5j;不正确IRt复练习6-411.将一个二维数祖行和列的元素互换,存到另一个二维数组中,即知阵的咕置,,inc1.ude<stdio.h>voidmain()inta23,b31121;inti,j;Printf("原矩阵为:n");for(1.=0j1.<2;1+)forG=0;j<3;j*+)<scanf("%d"a(i)U);t>U11)=i1.Ub)Prinm"传跣后的矩阵为:n");for(j=0;j<3;j+)for(i=0;i<2;i+)p11ntf%4d",b(j(i);putchar(,n');)【随直球习6-51 .输入两个字符申Str1.和str2,比较后将较大的字符申存在Str1.中,将较小的存在str2中。inc1.ude<stdo.h>Ainc1.ude<string.h>voidmain()charstr1.(2O),str2(2Otr(2O1.;Prinm"请输入一个字符串:");gets(str1.);Printfr请再输入一个字符中力;gets(str2);if(strcmp(str1.,str2)<0)strcpy(str,str1.);strcpy(str1.,str2);StrCPV(Str2,Str);)Printf("较大的字符串为:%s.ntr1.);Printfr较小的字符串为:%s.n",st;)二.本章自测在本单元中,如何定义一维、:维数组、如何操作数组以及如何利用字符数组处理字符申是核心内容,通过本的元的学习,我们应该知道:1 .数组是祖相同类型的有序数据的集合。数组要先定义后使用,可以在定义时初始化,i个数祖元素相芍于同类型的变依,使用数组名和下标来唯隋定数组中的元素,2 .维数组定义的一般格式为:类型标识符数组名整型常射发达式1;,对已定义好的维数组C编译系统会分配连续的存储空间,代表数组在内存中存放的首地址.维数组的引用方法为:地,名【下标1.其中下标从1.开始.3 .:维数组定义的侬格式为:类型标识符数组81蜒咂常设表达式11I整型常量达-21;时于已定义好的二维数组C编部系统会分配连续的存储空间,将:维数组元素按1.依次存储.:维数组元素的访问涉及第一维和第二维两个下标.其引用方法为:数组知下标IM下标21、4 .字符数处足组字符型数据的有序集合,其中诲个数组元案的值都是字符.C语曲用字符数祖实现字符串变吊:,字符串以作为结束标志。字符串的输入Ur以通过AetsU、$canf()函数实现,一符申的输出可以通过puts。、Pnntfo南数实现.常见的字符小操作旅函数有:一字符-长度的"den()、字符小亚制tf1.¾strcpy(字符小连接StraW、字符,比较函¾S“CmP().这"库函数的定义都在头文件SEnR.h中.常见的字符库函数的定义都在头文件CtYpe.h中.5 .数组的操作通常离不开循环结构.在使用循环结构操作数组时应注意下标的变化规律.通过本单元的学习,应该掌握C诏吉中对于数组这一构造数据类型的使用方法和操作方法.一.随堂练习堂薛习7-11 .完成【引例】中的问SS(2)。以Per1.meter为函数名,写出,计豫矩形周长”自定义函数的程序代码。itpemeter(inta,Intb)return2*a*2*b;2 .自定义函数even,其功能为判断一个整数是否为偶数.inteven(itn)if(n%2=0)return1;e1.sereturn0;堡练习7-21对【随堂练习7-1自定义函数even进行声明。inteven(intn);或Inteve(int);【匾堂练习7-31 .在主函数中输入一个整数,通过调用【随堂练习7-1】自定义函数even判断该数的奇偶性.#indude<stdio.h>inteven(intn)(if(n%2=O)return1;e1.sereturn0;intmain()Intn;PrIntfr请输入个整数:");scanf("%d*n>1.f(even(n)Prtntfr该整数为偶数An。;e1.sePrintfr该整数为奇数11);2 .编程解决单元六实训指导一)中的第二88,输入IO个学生的成绩.求出平均成绩.并将低于平均成场的分数显示出来。共中“求平均成ar用自定义函数average来实现.力inc1.ude<stdio.h>f1.oataverage(f1.oatJ,int);voidmain()f1.oatscore(10J,ave;inti;Printfr请输入10个学生成绩:”);ave=average(scorez10);Primfr'考试平均分为:,2f.r,ave);Pnmfr低于平均分的成然有:");for(1.=0;i<10;i+)if(scorei<ave)printfC%7.2f",score(iJ);f1.oataverage(f1.oats(,intn)inti;f1.oatave=0;for(i=0;i<n;i+)(scanf(*%f"siD;ave+=si;)returnave/10;)【堂练习7-41,用带参数的宏定义表示圆的面租。WdefineP1.3.14"defines(r)P1.*(r)*(r)2.用语参数的宏定义及示自然数之和(公式).Wdefines(n)(1*()()2二,本章自测在本单元中,如何使用自定义函数是核心内容.通过本单元的学习我们应该知道:1 .函数是构成C程序的基本单位,函数的使用为模块化程序设计奠定了基础。从用户使用的角度,函数分为餐函数、自定义函数两种。2 .库函数的使用包括头文件包含和一函数调用两个环节:用户自定义函数的使用包括函数声明、函数定义和函数调用三个环节。3 .从函数的外观形式看,函数分为有陟函数、无参函数两种,当主调函数调用无史函数时,不需要向这些函数传递参数:当主调数调用有卷不数时,需要传递参数.4 .用户自定义函数的般形式为:函数返网依类型函数Z(形式参数列衣函数仃解(函数体:)其中第一行称为南教竹都.大括号“0”括起来的部分称为对千有返回值的函数,一数体中要包括return语句.5 .函数首都也称为函数原里,用函数原型声明函数时,形参名可以省略不写,而只n形卷的类型,但形参的&1.和必须与函数首部保持一致。6 .函数要先声明,然后才能使用,函数声明在程序中的位置行以下几种情况:(1)函数一明写在主调函数的外部,这时的函数声明为全局声明.2函数声明写在主调函数的说明语句中,这时的函数*明为同部声明,(3函数的定义出现在主调函数之前,则函数声明可以省略.7 .函数的调用形大为:函数名(实际参数列表).若调用无参函数,则实参为空:若调用有参函数,则在()内写出与形参类型、数一一致的实参.对于有参图数,函数调用过程中存在着参数传递的同跑.参数传递有两种情况其一为值传递,其二为地址传递.8,函数在函数体中出现了对自身调用的语句.句称为函数递归调用.使用递归方法解决问题的关键是如何找出递打关系,以及找H!速客词用的终止条件.9 .带拿宏定义的般形式为:Itdefine宏Z(形乙列衣)字符*,通常用带参数的宏定义代替简单公式型画数。10 .函数的存储类型行StatiC和extern两种.卫迪Ij1.型函数称为“外部函数二可以被其他编译单位中的函数两用:statict函数中为“内部函数”.只能被本编译单位的函数调用.11 .程序中变址的使用范用称为变盘的作用域.每个变fit都行自己的作用域.按照作用域的葩阳可分为两种:同部变瞅和全局变做.12 .变量的存储方式可分为“动态存储”和“冷鱼存储一两种.,动态存储变埴包括auto和reRie”两种类一型:,态存储变量:包括StatiC和extern两种类型。的态存储变量若没有初始化,则我认初始值为_Q_StatiC类型变附的假具有继承性,即本次调用的初值是上次调用结束时变最的值.一.随堂练习8-111 .ffdoub1.es;,定义一个指向变一$的指针变向q.doub1.e*q=&s;或doub1.eq;q=&s;2 .完成【引例1】.【引例1】有一个整型变量a,如何知遒该变量的存储地址?如何通过指针变法对a进行操作?(D变景a的存储地址:&a(2)通过指针变球对a进行操作:定义指针变Iftp指向a,int3&a;,然后可通过P访问并操作变砥a.3 .编程验证【例8-1】和【例&2】中指付变收的值是否与所指向变。的地址相P1.(1)验证【例8-1】:printf("%d,%d,an,p);观察输出的两个位是否相同.(2)验证【例8-2】:printf("%d,%dstr,cp);观察输出的两个值是否相回【堂练习8-21 .试分析如下程序,价看是否能实现【例&5】所要求的功能?Rmciude<stdo.h>voidatM(ini*p.int*pb.int*psum)I4psum=*p+*pb;voidmuin<)Iinia,b.s;scanfC'%d%.dab):add(&a.&b.&s);Prim1.rs=%ds);I答:能够实现.IRt直练习8-3完成【引例2】,引例2一维数组是占用连续存i空间的数据如何通过指针变盘对这段内存空间进行探作?答;定义指针变圻并指向数殂首地址,然后就可以利用指针变以访问并操作了。【堂练习X】下面函数的功能是:计算一个字符串的实际长度.将程序补充完整.intstr1.en(chars)(i11t1.enO;/定义计数:S变fttWhi1.Ms=AOr1.<Ieni;$*;1return(Ien);)IRt直练习8-5下面函数的功能是:花取第n个数组元素的地址.将程序补充完整.imgct*jd(intpJntn>指WP指向教祖首地址(retur(p»n-1.k)本章自测在本单元中,对指针的理解,以及利用指针访问不同形式的数据是核心内容,通过本单元的学习,我们应该知道:6 .内存地址就称为指针C沿方允许用个变以来存放指针,这种变所称为指针变而指针变量的(就是某个内存单元的地址.7 .定义指骨变fit的一般格式为:类型标识符指针变及名.其中:<1>"指针变*名”前面的.表示该变显是指针变Ik不能省略.<2)“类型标识符"表示谡指"变量所指向的变砒的数据类配。(3)当一个指针变量已确定指向某类型的变量时,不能再指向另一种类个的变o3 .指针变扇被赋值后即可引用,引用指针变量的一般方法为:指针变星:名。4 .指针和数组行存密切的关系,任何通过控制数俎下标实现的对数组的探作,都可用指针来实现,要通过指计操作数组,首先要建立指针变破与数组之间的关系,然后才能通过指针变武访问数组元素.若有语句段:inta10;intp;Pf则对于数组元素的访问方式7j-a111.,"p+i)、P1.i1.对数组元素地址的发水方式布a+i、M、&a(i1.5.数组名代表数组的首地址,利用函数处理维数组数据时,函数之间的参数传递为垓组首地址.将数嵬的首地址作为实参传递给函数的形参以后.实参数组和形参数组其实是同一段内存中的数据.6,字符串是存放在某存储M域的甘字符序列,可通过字符数用和字符指计两种方式操作字符邪.7,函数返回值可以是地址(指针类型).返回值为地址的函数定义形式为:类型标识符函数名(【形卷列衣1);,通过本单元的学习,应明确地址和指针的关系,掌握使用指计访问内存数据的基本方法.-.随堂练习【而堂练习9-1为【例9.2】1)中的结构变量a,b输入各成员值,交换a和b的数据后输出。结构类型关犍字以及结构名称编号姓名笔试成绩面试成绩总成缄定义两个结构变依a和b定义中何变量tWindude<stdio.h>structjob_examunsignednum;charname10;intexama;intexamb;inttota1.;;voidman()structjob-eama

    注意事项

    本文(《C语言程序设计》习题及参考答案.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开