ImageVerifierCode 换一换
格式:DOCX , 页数:44 ,大小:55.01KB ,
资源ID:4519027      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4519027.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(C语言程序设计原莉习题答案.docx)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

C语言程序设计原莉习题答案.docx

1、C语言程序设计习题与参考答案 第I章c语言程序设计基础 思考与练习 一、填空题 1、C程序是由构成的,一个C程序中至少包含。 2、C程序的注释是由和所界定的文字信息组成的。 3、开发一个C程序要经过编辑、、和运行4个环节。 4、C语言中,头文件的扩展名是。 5、C语言源程序的扩展名;经过编译后,生成文件的后缀是:经过连接后,生成文件的扩展名是o 二、简答题 1、简述C语言程序的运行步骤。 2、软件编程中的可读性原那么一般包括那些内容? 3、什么是算法?算法的特点有哪些? 4、参照本章例题,编写一个C程序,输出以下内容。 ***********************

2、 Hello, world! ************************************************** 5、写出算法。圆的半径,求周长和面积。 第1章思考与练习参考答案 一、填空题 1、函数、一个主函数main() 2、/*、*/ 3、编译、连接 A .求x, y, z最大值C .求x, y, z中间值 6、有如下程序段B.求x, y,z最小值 D.求x, y,z平均值 int a=!4,b=15,x;char c='A'; x=(a&&b)&&(c<,B');执行该程序段后,x的值

3、为。 A.ture B .false C . 0 D . 17、以下程序的输出结果是。 main(){ int a=O,i=l; switch ⑴{ case 0: case 3:a+=2;case 1: case 2:a+=3;default:a+=5; Iprintf(”%d\n”,a); } 二、写出以下程序的运行结果 #include "stdio.h" main() {in〔i,j; i=j=2; if(i==l) if(i==2) primf(”%d",i=i+j); else printf(”%d”,i); 2、下面程序的输出结果是。 #

4、includc "stdio.h" main() (intiX=3;switch(iX) { case 1: case 2:printf("iX<3\n"); case 3:printf("iX=3\n"); case 4: case 5:printf("iX>3\n"); default:printf("iXunknow\n");} } 3、下面程序的输出结果是 main() (charchT='w',ch A='m,,chB='d\chC=,x,,chM; chM=(chT>ch A)?chT:ch A; chM=(chM>chB)?chM:chB chM=(c

5、hM>chC)?chM:chC; printf("c%",chM); } 三、编程 1、小明去参加一个同学的生日聚会,同学的家长规定18岁以上的才可以饮酒,所 以需要编一程序根据输入的年龄打印一张饮酒卷,使的能饮酒的同学可•以获取饮酒卷。 2、根据指定月份,打印该月份所属的季节。3,4,5春季;6,7,8夏季;9,10,11秋 季;12, 1,2冬季。 3、根据用户输入显示对应的星期时间(charfl),如果“星期一”,显示“干煽豆角”如果 “星期二",显示“醋溜土豆”如果“星期三”,显示“红烧狮子头"如果“星期四”,显示“油炸 花生米”如果“星期五”,显示“蒜蓉扇贝”如果“星期六

6、显示“东北乱炖”如果“星期日”, 显示“大盘鸡"。 第4章思考与练习参考答案 一、1、D 2、C 3、C 4、B 5、A 6、D 7> B »、 1、2 2、Ix=3 Ix>3 lx unknow 3、x 1 #include"stdio.h"void main( /*main 函数 */ { intil;/*定义整型变量*/ printf("请输入你的年龄:); scanf(”%d”,&il); if(il>=18)/*判断函数*/ printfC1恭喜你获得饮酒券!”); 1 2、 #includcint main()

7、 { int month;scanf("%d",&month); if(month <= 5 && month >= 3) printf("春\n”);else if(month <= 8 && month >= 6)printf("夏\n”); else if(month <= 11 && month >= 9)printf("秋\n”); else printf("冬\n”); return 0;} 方法二: #include Intmain(){ lntmonlh=0; printf(“请输入月份:\n”); scanf_s(n%d",&month);

8、 switch(month){ case 1: casc2: case3:printf(“ 春");break; case4: casc5: case6:printff‘ 夏勺;break; casc7: case8: casc9:printR“ 秋");brcak; case 10: case 11: case 12:printf("冬");break; default:! printf("输入错误"); } } rcturnO; I 3、 #include voidmain() { stringweck; printfC请输

9、入星期几:, scanf(M%c",&week);switch ( week) case ”星期一”: prinlf("干煽豆角”); break; case ”星期二”: printf( ””醋溜土豆”); break; case ”星期三": printfC,红烧狮子头, break; case ”星期四”: printfC,油炸花生米, break; case ”星期五": printf("蒜蓉扇贝"); break; case ”星期六": printfC '东北乱炖”); break; case ”星期日“: print"盘鸡”); brea

10、k; default: printf("您输入错误”) }} 第5章 循环结构程序设计及其应用思考与练习 一、选择题int iNum=O; while(iNum<=2) printf("%d",iNum); A. 2B. 3C.死循环,无限个0 D.有语法错2、下面程序的运行结果是。 #include"stdio.h"void main() { int iNum=0; while(iNum<=2) { iNum++; printf("%d\n",iNum); A. 1 B. 1 C. I D. 1 2 2 2 3 3 4

11、 3、以下程序段iNum—1; do{ iNum=iNum*iNum;while(!iNum); A.是死循环B.循环执行2次 C.循环执行一次D.有语法错误4、假设i为整型变量,那么以下循环执行次数是o for(i=2;i==0;)printf(,,%d,,,i); A.无限次 B. 0次C. 1次D. 2次5、以下正确的描述是o A. continue语句的作用是结束整个循环的执行 B. 只能在循环体内和switch语句体内使用break语句 C. 在循环体内使用break语句或continue语句的作用相同 D. 从多层循环嵌套中退出时,只能使用got。语句二、填空

12、题 1、下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。填空使程 序完整。 int iNum=O,chLetter;chLetter=getchar(); whil e( ) (if() iNum++; chLetter=getchar(); }2、下面程序段的运行结果是。 i=l;iSum=3;do{iSurn+=i++; if(iSum%7==0) continue; else ++i; }whilc(iSum<15);prinlf("%d",i); 三、编程题1、计算1一100的所有偶数之和和所有奇数之和。 2、计算n! o3、编写程序打

13、印出数字1一10,但其中不包括4和7,在4或7时跳过不输出(用break 还是continue?分别尝试一下,写出两者的区别)。 4、猴子吃桃问题:猴了第一天摘下假设干个桃子,当即吃了一半,还不瘾,又多吃了一个第 二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一 半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 5、百钱百鸡问题。公鸡:5元:母鸡:3元;小鸡:3只1元,100元钱刚好买100只鸡, 假设每种鸡都必须买,求公鸡、母鸡、小鸡各有几只?输出所有的购买方案。 6、将1980至2008年间的所有闰年打印输出。 第5章思考与练

14、习参考答案一、选择题 1、D 2、C 3、C 4、C 5、B二、填空题 1、chLetter!='\O' chLetter>=* 1' && chLetter<=,9,2、8 三、编程题1、计算1 一 10()的所有偶数之和和所有奇数之和。 #include "stdio.h"void main() { int k, iSuml, iSum2: k=l : iSuml=0; iSum2=0 while(k<= 100) { if(k%2==0)iSuml=iSuml+k; elseiSum2=iSuni2+k; k++; } printf("\n 偶数和是:%d,奇数

15、和是:%d”,iSuml, iSum2);} 2、计算n!。 #include "stdio.h"void main() {int k, iSum,n: k=l ; iSum =1 ; scanf<"%d”,&n); while(k<= n) {iSum= iSum*k: k++;) printf("\n the sum is %d"» iSum);}3、编写程序打印出数字1一10,但其中不包括4和7,在4或7时跳过不输出(用break 还是continue?分别尝试一下,写出两者的区别)。 #include "stdio.h"int isDaff(int iNum);

16、void main(){ int i; for(i=l;i<=10; i++)If(i!=4||i!=7) printf("%d ", i); 4、.h 5、.c、.obj、.exc 二、简答题 1、简述C语言程序的运行步骤。 答:(1)编辑C程序源文件; (2) 编译,将编辑好的源程序文件翻译成二进制目标代码文件“*.obj”; (3) 连接,将编译生成的各个日标程序模块和系统或第三方提供的库函数连接 在一起,生成可以脱离开发环境、直接在操作系统下运行的可执行文件“*.exe”; (4) 运行程序。如果运行出错,这说明程序处理的逻辑存在问题,需要再次回到编辑 环境针对程

17、序出现的逻辑错误进一步检查、修改源程序,重复编辑-编译一连接一运行的过 程,直到取得预期结果为止。 2、软件编程中的可读性原那么一般包括那些内容? 答:1.编程规范概要 (1) 程序结构清晰,简单易懂,单个函数的程序行数不得超过100行。 (2) 打算干什么,要简单,直截了当,代码精简,防止垃圾程序。 (3) 尽量使用标准库函数和公共函数。 (4) 不要随意定义全局变量,尽量使用局部变量。 (5) 使用括号以防止二义性。 2.可读性要求 (1) 可读性第一,效率第二。 (2) 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。 (3) 常量定义(define

18、)有相应说明。 (4) 处理过程的每个阶段都有相关注释说明。 (5) 利用缩进来显示程序的逻辑结构,缩进量一致,可以以Tab键为单位。 (6) 循环、分支层次不要超过五层。 (7) 适当的使用注释,注释可以与语句在同一行,也可以在上行。 4、猴子吃桃问题:猴子第一天摘下假设干个桃子,当即吃了一半,还不瘾,又多吃了一个第 二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一 半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 #include "stdio.h"void main() { int k, iSum; k=l ; i

19、Sum =1: while(k<10) { iSum=(iSum+l)*2;k++; } printf("%d", iSum);} 5、百钱百鸡问题。公鸡:5元;母鸡:3元;小鸡:3只I元,10()元钱刚好买100只鸡, 假设每种鸡都必须买,求公鸡、母鸡、小鸡各有几只?输出所有的购买方案。 #include "stdio.h"void main() { int i,j: for(i=1;i<20;i++) for(j=l;j<33;j++){if((i*5+j*3+( 100-i-j)/3)== 100) Printf(“公鸡:%d 母鸡:%d 小鸡:%d ”,ij,10

20、0-i・j)} }6、将1980至2008年间的所有闰年打印输出。 #include "stdio.h"int isDaff(int iNum); void main() int i; for (i= 1980; i<=20()8; i++)If((i%4==0&&i%100!=0)||(i%400==0)) printf(M%d ", i); I} 第6章数组 思考与练习 1. 读io个整数存入数组,找出其中最大值和最小值。 2. 将-•个数组逆序输出。 3. 设计一个程序,输出以下矩阵1 23 456789 4. 求一个三行三列矩阵对角线和。 5. 求100到

21、999之间的所有水仙花数。(水仙花数:一个n位数,它的每个位上 的n次蓦的和,等于这个数本身,如:153、370)o 6. 用筛选法求100以内的素数(素数是除了 1和自己以外,不能被其他整数整除的 整数。)。 7. —个打印杨辉三角的案例来加深对数组的理解。杨辉三角的前1()行样式如下所 /Ko1 1 1 I 2 1 I 3 3 1 1 4 6 4 1 1 5 10 10 5 1 I 6 15 20 156 1 7 21 35 35 21 7 1 I 8 28 56 70 56 28 8 1 1

22、 9 36 84 126 126 84 36 9 第6章思考与练习参考答案#include #dcfinc SIZE 10void niain() { int x[SIZE],i,max,niin;prinlf("Enler 10 inlegers:\n"); for(i=0;ix[i]) min=x[i]; }prin

23、lfCMaximum value is %d\n”,max); printf("Minimurn value is %d\n",rnin); }/*将•个数组逆序输出。*/ #include "stdio.h"#include "conio.h" #dcfinc N 5main() ( int a[N]={9,6,5,4,l },i,temp;printf("\n original array:\n"); fbr(i=0;i

24、printf("\n sorted array:\n"); for(i=0;imain() { static inta[3][3]={{1,2,3},{4,5,6},{7,8,9}); int i,j;printf("output a:\rT); for(i=0;i<3;i++){for(j=0;j<3;j++) printf(”%3d”,a[i][j]); printf(”\n”);} }main() {float a[3][3],sum=O; int i,j;pr

25、intf("please input rectangle element:"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%f',&a[i]|j]);for(i=0;i<3;i++) sum=sum+a|i][i];printf("duijiaoxian he is %6.2f",sum); I#inckide #include int i,g,s,b; int sum = 0; for(i= 100:i< 1000:i++) (g = i%10;// 个位 s = i/!0%10;// 十位b

26、 i/100;// 百位 //sum = g*g*g+s*s*s+b*b*b;sum = pow(g,3)+pow(s,3)+pow(b,3); // pow(a,b) a 为底数,b 为 指数 if(sum==i){ printfC冰仙花数:%d\n”,i); return 0: }^include #define SIZE l(X)main() { int a[SIZE+l],ij;for(i=2;ivl00;i++) a[i]=i; for(i=2;i

27、a[i]==O) a|j]=O; printf("\n");j=O; for(i=2;i<=100;i++){ if(a[i]!=O) {printf(”%4d”,a[i]);j++;} if(j==10){j=0; printf(”虹');} 2. #include #includevoid niain() ( ini i, j, n = 0; intarr[101[l0] = { 1 };//定义一个10行10列的二维数组,初始化为1 while (n < 1 || n > 10) 〃此while循环控制用户只能输入n = 10 {p

28、rintf(u请输入n的值:\n”); scanf("%d”, &n); } for(i=l;i

29、\ arr[i][j]);prinlf(侦'); } systcm("pausc°);第7章函数 思考与练习 一、选择题 1、在c语言的函数中,以下说法正确是 A.必须有形参B.形参必须是变量名 C.可以有也可以没形参 D.数组名不能作形参2、数组名作为实参传递给函数时,传递的是。 A. 该数组长度 B.该数组的元素个数C.该数组首地址D.该数组中各个元素的值 3、以下函数定义正确的选项是ointfhSum(int iNuml,int iNum2) B. intfnsum(int iNuml,iNum2) C. intfnsum(iNuml,iNum2) D. in

30、tfnsum(int iNuml;int iNum2)4、简单变量做实参时,它和对应形参之间的数据传递方式为 A. 地址传递B.单向值传递由实参传给形参,再由形参传回给实参 D. 由用户指定传递方式5、C语言允许函数值类型默认定义,此时该函数值隐含的类型是_ A. float B.intC. long D. double6、以下说法正确的选项是o A. 定义函数时,形参类型说明可以放在函数体内函数能嵌套定义 B. return后边的值不能为表达式如果函数值的类型与返回值的类型不一致,以函数类型为准。 7、如果未指定局部变量类型,其隐含的存储类别为oA.自动(auto) B.静态(s

31、tatic) C.外部(extern)D.寄存器(register)8、以下表达中不正确的选项是。 A.在不同的函数中可以使用相同名字的变量函数中的形式参数是局部变量 B. 在一个函数内定义的变量只在本函数范围内有效在一个函数内的复合语句中定义的变量在本函数范围内有效 二、填空题1、以卜函数是求最大值的函数,请补充完整以卜程序。 include "sldio.h" main (){ int iNuml ,iNum2, iMax; scanf("%d,%d”,&iNuml,&iNum2);iMax=; printf("%d",iMax);} fnMax (int iNuml, i

32、nt iNum2){ if(iNuml>iNum2) return iNuml;else ;}2、以下程序的运行结果是 int iNuml=5;int iNum2=7;main() { int iNuml =4,iNum2=5,iSuni: iSum=fnPlus(iNum 1 ,iNum2);printf("A+B=%d\n,,,iSum); fnPlus(in( iNuml,int iNum2) {inliSum; iSum=iNuml+iNum2; retuni(iSum); } 3、以下程序的运行结果。 #includc "stdio.h" inlfnFun(

33、) (staticintiNum=l; iNum=iNum+2; rcturniNum; } main() (printf("%d\n",fnFun()+fnFun()); } 三、编程题 1、编写函数求 1 + 1 / 2+1 / 3+1 / 4++I / n 的值。 2、使用函数,利用遍历数组找出全班同学成绩的最高分。 3、使用递归方法,求Fibonacci数列的第N项。 第7章思考与练习参考答案 一、选择题 1、C 2、C 3、A 4、B5、B 6、D 7、A 8、D 二、填空题 1、intfnMax(int iNuml,int iNum2); fnMa

34、x(iNuml,iNuni2) return iNuml; 2、A+B=4 3、8 三、编程题 1 编写函数求 1 + 1 / 2+1 / 3+1 / 4++l/n 的值。 include "sldio.h" doublcdSum(int n); void main() { ini n;scanf("%d”, &n); printf("the result is %.2f\n'\ dSum(n)); } doubledSum(int n) { ini i;doubicdRcsult = 0; for (i=l; i<=n; i++){ dResult += 1

35、0 / i;} relunidResult; I 2、使用函数,利用遍历数组找出全班同学成绩的最高分。 #includc #define SIZE 5 (8)保持各种运算的标准形式,通过括号防止运算符的二义性。 3、什么是算法?算法的特点有哪些? 答:算法(Algorithm)是对特定问题求解方法与步骤的描述,是程序求解问题的核心 内容。 算法的特点:有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出。 4、参照本章例题,编写一个C程序,输出以下内容。 #include "stdio.h" void main() printf(”****

36、\n') printf("Hello, world! \nH); printf(”**************************************************\n'')・ 5、写出算法。圆的半径,求周长和面积。 算法: (1) 定义3个变量fR、fL> fS分别存储圆的半径、周长和面积。 (2) 输入圆的半径fR的值。 (3) 分别计算圆的周长和面积,fL=2*3.14*fR, fS=3.14*1R*fR。 (4) 输出fL和fS。 第2章 基本数据及其运算

37、思考与练习 一、选择题 1、下面表达错误的选项是。 A. C程序中,各种括号应成对出现 A. C程序中,赋值号的左边不可以是表达式 floacfMax(float fScore[], intiSize); void main() { floatfScorc[SIZE] = {()}; int i = 0; floatfRcsult = 0; for (i = 0; i < SIZE; i++){ scanf("%r\ &fScore[i]);} printf("the max score is %.2f\n”, fMax(fScore, SIZE)); getch()

38、 } floatfMax(float fScore[], intiSizc) ( int i = 0; intfValue = fScorefOJ; for (i = 1; i fValuc){ fValuc = fScorefi]; return fValue; 3、使用递归方法,求Fibonacci数列的第N项。 ^include int f(int a)〃函数f的定义 ( int i; if(a==l ){return 0; }if( a== 2 ){ return 1;

39、} else if(a >= 3){for(i = 1 ; i < a ;i++){ return (f(a-l)+f(a-2));//函数 f 的递归调用 void main() { int n; printf("input a numbcr:\n"); scanfT%d”,&n);〃函数f的调用 第8章结构体、共用体和枚举类型 思考与练习 一、选择题 1、设有以下结构体定义: struct student) charchNamc[8]; intiAge; charchScx; }stStaff; 那么下面的表达不正确的选项是o A. struct是定义结

40、构体类型的关键字B, struct student是用户定义的结构体 类型stStaff是用户定义的结构体类型名 D. chName、iAge和chSex都是结构 体成员名 2、在第(1)小题中定义的结构体变量stStaff,那么系统分配的内存空间字节数是 O A. 8B. 10 C. 11 D. 3 3、设有以下结构体定义: struct student) charchName[8]; intiAge; charchScx; )stStaffl3]; 对结构体变景成员的正确引用是。 A、scanR"%d", &stStaH'.iAge) B. scanl'("%s",

41、stStaff[O].iAge)C. scanR"%s", stStaff) C. scanR"%s", stStaff) D. scanf("%d”,&iAgc) 二、填空题 1、引用结构体变量中成员的一般形式是。: 2、假设有以下结构体类型说明和数组的初始化: structstTest(intiNum; charchLetter[6]; }stAlpha[2] = { 2, “abcde”,4, “EDCB”}; 那么执行语句 printf ( " %s, %c \n“, &stAlpha[0].chLetter[2], stAlpha[l].ch[2]); 后

42、的输出结果是:。 3、以下程序的执行结果是:。 fnChange(s(ruct test stHuman); struct test{ inliAge; charchSex; (stStaff = { 18,'M' }; fnChange(struct test stHuman) { stHuman. iAge = 20 ; stHuman. chScx = 'F'; } void main() { fnChange(stStaff); printf ("%d, %c \n ", stStaff.iAgc, stStaff. chScx);第8章思考与练习参考答案

43、一、1、C 2、A 3、B1、结构体变量:名.成员名 2、cde,C3、I8,M 第9章指针 思考与练习 1. 编写一个函数,将-个3*4的二维数组矩阵转置。用指向数组的指针实现。 2. 编写一个程序统计候选人得票数。设有4名候选人,以输入候选人人名方式模拟 唱票,最后输出每个候选人的得票数。计算得票数的过程用函数实现。 3. 指针作为函数参数,实现两个数值交换。 4. 利用指针查找数列中的最大值和最小值在窗体上输入10个整数,自动查找这些数 中的最大值和最小值,并显示在窗体上。 5. 用函数指针来实现对函数的调用,返回两个整数中的最大值。 6. 编写一个函数,其功能是从一个

44、字符指针数组中寻找指定的一个字符串,假设找到 返回1 ,否那么就返回0。 7. 编写函数,将一个字符串的指定字符全部删除。要求函数的原型可声明为: void fnDelChar(char *str, char ch); 其中,参数sir为要删除字符的字符串,ch为要删除的字符。 第9章思考与练习参考答案1. #include void func(int(*pa)[4],int (*pb)[3]jnt x, int y){ int i, j; 〃输出pa指向的二维数组的元素 for (i = 0; i v x; i++) (for(j=0;jvy;j++)

45、 {printf("%d\t", pa[i][j]); pb[j][i] = pa[i][j];// 矩阵转置printf(o\n"); } printf("\n\n"); for (i = 0; i < y; i++) {for(j = 0;j

46、 } } return 0;} 2. #include "string.h"struct person/*定义结构体类型*/ { char chName[15]; int iCount;}; void fnCount(struct person *pStr)/*计算每个人的票数 int i,j; char chName[l51; printf("\n Input name \n"); for(i=l;i<=10;i++)scanf("%s",chName); for(j=0;j〈4;j++)if(strcmp(chName, (pStr+j)->chName)==O) (

47、pStr+j)->iCount++; )} void fnData_put(struct person *pStr) /*输出每个候选人及票数*/( int j; printf("\n result:"); for(j=0;j<4;j++,) printf("\n%s=%d ",(pStr+j) ->chName, (pStr+j) ->iCount);} void niain()( struct person stLeader[4]={ {"Li",0),{"Wang",0},{"Zhang",0},{"Shen",0}}; fnCount(stLeader); fnDa

48、ta_put(stLcadcr);} 3. #include void swap(int * a, int * b) //函数参数为指针类型 ( int temp; temp=*a; *a=*b; *b=temp;) void main() int a=IO, b=20; printfC1调用函数前变量a和b的值为:%d %d \n”, a, b); swap(&a, &b);printfC*调用函数后变最a和b的值为:%d %d \n”, a, b); 4. #include void fnMax_min(int n.int *max

49、int *min) int *p; *max = *min = *a;for(p = a+1 ;pva+n;p++) if(*p>*max) *max = *p;else if(*pv*min) *min = *p; return;} void main(){ int i,a[10],max,min;printfC请输入10个整数:”); for(i=0;i<10:i++) scanf("%d”,&a[i]); fnMax_min(a, 1 (),&max、&min); printf("最大数是 %d\n'\max); printf("最小数是 %d\n”,niin);) 5

50、 int max(int a, int b);int main()( int x, y, max Vai;int (*pmax)(ini, int) = max; printf("Input two numbers:"); scanf("%d %d", &x, &y); max Vai = (*pmax)(x, y); printf("Max value: %d\n", max Vai); getchar(); getchar();/*初始化最大值、最小值*/ /*最大值*//*最小值*/ /*输入数组元素*/ /*返回最大值和最小值*7/*输出最大值*/ /*输出最小值*/

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服