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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(完整版C教材习题答案18章.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

完整版C教材习题答案18章.docx

1、完整版C教材习题答案18章第一章 C语言概述二、运行程序写结果123x=50m=100,n=50,p=5000* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *第二章 数据类型、表达式及运算一、简答题1、2、3、4567略08923.8e-3.141)char c1;int a1;2)int a,b;float x,y;3)char a,b;4)char i;(不能与关键字同)5)int a,b;6)int a,b,c;7)int a;float x,y;(变量不能同名)1)5 62)9 103)11 12

2、二、运行程序写结果123456714,14a=20,b=10*p1=20,*p2=10c=4girlx1=11x2=1x3= -8049,158,:,72三、改错题1、main() int a=6,b=8;/变量间逗号分隔 int c; c=a*b; printf(%d,c);2、main() float f=7.12; char c=c;/字符常量为字符变量赋值 printf(%dn,(int)f%3);/强制转换f,是被除数为整数 printf(%c,c);第三章 顺序结构程序设计一、选择题12345678910DABADC二、运行程序写结果12345671092,0 3,04213,14

3、10404465 D a1040203010402030 三、编程题1. 编写程序,实现输入任意一个小字符,输出对应的大写字母。2. 编写程序,从键盘上获取任意圆半径,输出该圆的面积和对应的球体体积,要求保留两位小数。第四章 选择结构程序设计一、选择题1234BCCB二、运行程序写结果1234562 1 17 521,0,05 51 7 0789102,0 3,-12OK!NO!ERROR!31三、编程题1输入圆的半径r和一个整型数k,当k=1时,计算圆的面积;但k=2时,计算圆的周长;当k=3时,既要求求圆面积也要求出圆的面积。编程实现以上功能。2编写程序代码实现分段函数的计算。3编一程序,

4、对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为A;8089分为B; 7079分为C; 6069分为D;60分以下为E。方法一:采用if多分支语句实现#include main() int score; char ch; printf(请输入一个百分制分数:); scanf(%d,&score); if(score100 | score=90) ch=A; else if(score=80) ch=B; else if(score=70) ch=C; else if(score=60) ch=D; else ch=E; printf(五分制成绩为%c。n,ch);方法二:采用s

5、witch语句实现#include main() int score; char ch; printf(请输入一个百分制分数:); scanf(%d,&score); if(score100 | score0) printf(非法输入!n); return 0; switch(score/10) case 10: case 9: ch=A; break; case 8: ch=B; break; case 7: ch=C; break; case 6: ch=D; break; default: ch=E; break; printf(五分制成绩为%c。n,ch);4.输入三角形的三条边长度,

6、判断是否能够构成合理的三角形,如果可以则输出三角形的面积,否则给出相应的提示。#includemain() float a,b,c,l,s; printf(请输入三角形三条边:); scanf(%f,%f,%f,&a,&b,&c); if(a+bc & b+ca & c+ab) l=(a+b+c)/2; s=sqrt(l*(l-a)*(l-b)*(l-c); printf(三角形面积为:%.2fn,s); else printf(您输入的三条边无法构成一个合法的三角形。n);第五章 循环结构程序设计一、选择题1234CDAB二、运行程序写结果1234568#*#*#MYM13138712789

7、10s=6617三、编程题1.编写程序实现计算1+1/2!+1/3!+1/n!。#includemain() float s=0; int i,j,n,t; printf(请输入n的值:); scanf(%d,&n); for(i=1;i=n;i+) t=1; for(j=1;j=i;j+) t*=j; s+=1.0/t; printf(%.2fn,s);2.输出100以内所有能被13和17整除的数。#includemain() int i; for(i=1;i=100;i+) if(i%13=0 | i%17=0) printf(%4d,i);3整元换零钱问题。把5元兑换成1角,2角,5角的

8、硬币,一共有多少种换法,编写求解此问题。#includemain() int i,j,k,n=0;/i,j,k分别代表5角,2角,1角硬币的个数,n用于统计兑换硬币的种数 for(i=0;i=20;i+) for(j=0;j=50;j+) for(k=0;k=100;k+) if(i*5+j*2+k*1=50) printf(5角:%d个t2角:%d个t1角:%d个n,i,j,k); n+; printf(5元换成1角,2角,5角硬币的方法共%d种。n,n);4.计算#includemain() int k; float rel1=0,rel2=0,rel3=0; for(k=1;k=50;k

9、+) rel1+=1.0/(k+3); for(k=1;k=20;k+) rel2+=1.0/(k*k); for(k=5;k=10;k+) rel3+=1.0/(k*k*k); printf(计算结果是:%.2f,rel1+rel2+rel3);5. 编写程序实现对输入的10个整数进行降序排序输出。#include#define N 10main() int i,j,t,aN; printf(请输入%d个整数:n,N); for(i=0;iN;i+) scanf(%d,&ai); for(i=0;iN-1;i+) for(j=i+1;jaj) t=ai; ai=aj; aj=t; for(i

10、=0;iN;i+) printf(%5d,ai);6. 编写程序实现功能:从键盘上输入若干个学生的成绩,统计并输出最高成绩、最低成绩和平均成绩,当输入-1号是结束输入。#includemain() int i=0; float score,sum=0,max=0,min=0; printf(请输入第%d个整数:,i+1); scanf(%d,&score); if(score0) max=score; min=score; i+; else max=0; min=0; printf(最高成绩为:%.2f,最低成绩为:%.2f,平均成绩为:%.2fn,0,0,0); return; while(

11、score0) sum+=score; if(scoremax) max=score; if(scoremin) min=score; printf(请输入第%d个整数:,i+1); scanf(%d,&score); i+ printf(最高成绩为:%.2f,最低成绩为:%.2f,平均成绩为:%.2fn,max,min,sum/(i-1);19820926第六章 数组和指针一、选择题1234567891011BCBCCDAD(C?)BCB二、运行程序写结果12345k=2a=3b=21987 16385三、编写程序代码1. 编写程序,将输入的任意字符串中包含的所有数字字符删除,并输出。#in

12、clude#define N 80main() char s1N,s2N,i=0,j=0; printf(请输入一个字符串:n,s1); scanf(%s,s1); while(s1i!=0) if(s1i=9 | s1i=0) s2j=s1i; j+; i+; s2j=0; printf(该字符串删除数字字符后结果值为:%sn,s2);2. 编写程序,对输入的字符串中字母,数字,及其它字符统计个数。#include#define N 80main() char sN,i=0,k1=0,k2=0,k3=0; /k1表示数字个数,k2表示字母个数,k3表示其他字符个数 printf(请输入一个字

13、符串:n,s); scanf(%s,s); while(si!=0) if(si=0 & si=a & si=A & si=Z ) k2+; else k3+; i+; printf(数字字符个数:%d,字母个数:%d,其他字符个数:%dn,k1,k2,k3);3. 编写程序,实现矩阵的转置。#include#define N 3#define M 4main() int aNM,bMN,i,j; printf(请输入一个%d行%d列矩阵:n,N,M); for(i=0;iN;i+) for(j=0;jM;j+) scanf(%d,&aij); for(i=0;iN;i+) for(j=0;j

14、M;j+) bji=aij; printf(该矩阵转置后的结果为:n); for(i=0;iM;i+) for(j=0;jN;j+) printf(%5d,bij); printf(n); 4. 使用指针数组,编写一个程序实现输入的月份号,输出月份号对应的英文名。借用数组存储月份的英文单词。#includemain() int i; printf(请输入112之间的一个整数:); scanf(%d,&i); switch(i) case 1:printf(%d月对应的英文单词是:%sn,i,January); break; case 2:printf(%d月对应的英文单词是:%sn,i,Feb

15、ruary); break; case 3:printf(%d月对应的英文单词是:%sn,i,March); break; case 4:printf(%d月对应的英文单词是:%sn,i,April); break; case 5:printf(%d月对应的英文单词是:%sn,i,May); break; case 6:printf(%d月对应的英文单词是:%sn,i,June); break; case 7:printf(%d月对应的英文单词是:%sn,i,July); break; case 8:printf(%d月对应的英文单词是:%sn,i,August); break; case 9

16、:printf(%d月对应的英文单词是:%sn,i,September); break; case 10:printf(%d月对应的英文单词是:%sn,i,October); break; case 11:printf(%d月对应的英文单词是:%sn,i,November); break; case 12:printf(%d月对应的英文单词是:%sn,i,December); break; default: printf(输入错误!n); 5. 请编写程序,将M行N列的二维数组中的数据,按先行后列的顺序依次存放到一维数组中并对一维数组中内容输出。#include#define M 2#defi

17、ne N 3main() int aMN,bM*N,i,j; printf(请输入一个%d行%d列矩阵:n,M,N); for(i=0;iM;i+) for(j=0;jN;j+) scanf(%d,&aij); for(i=0;iM;i+) for(j=0;jN;j+) bi*N+j=aij; printf(转为一维数组后的结果为:n); for(i=0;iM*N;i+) printf(%5d,bi); printf(n);6. 假定输入的字符串中只包含字母和*号。请编程序代码,实现以下功能:删除字符串中前导和尾部的*号,串中字母之间的*号都不删除,再将结果串输出。#include#defin

18、e N 80main() char sN,s1N,i=0,j=0,k=0; printf(请输入一个字符串:n,s); gets(s); while(si!=0) i+; i-; while(si=*) i-; while(sj=*) j+; while(j=i) s1k=sj; k+; j+; s1k=0; printf(该字符串删除前导和后导字符后结果值为:n); puts(s1);第七章 函数与指针一、运行程序写结果12345610,20,40,405,25-7 3 5 7 1021353553k=13二、编程题1.已知圆的半径为R,求它的面积。#include#define PI 3.

19、14float area(float r) float s; s=PI*r*r; return s;main() float r; scanf(%f,&r); printf(%.2fn,area(r);2.编写一个函数,输出三个数中的最大值。#include#define N 3/该程序可以扩展,求三个数中最大值,则N定义为3,求5个数中最大值则N定义为5.以此类推,只把定义处的数更改即可int max(int a) int i,j,itmp; for(i=0;iN-1;i+) for(j=i+1;jN;j+) if(aiaj) itmp=aj; return itmp;main() int

20、aN,i; for(i=0;iN;i+) scanf(%d,&ai); printf(%d, max(a); 3.编写一个函数,将一个任意三位数n逆序输出,即若n=456,则输出654。#includevoid invert(int n2) int n1; while(n2!=0) n1=n2%10; n2=n2/10; printf(%d,n1); main() int n; scanf(%d,&n); invert(n);4.编写比较两个字符串是否相等的函数。#includeint compare(char s1, char s2) int i; for(i=0;) if (s1is2i)

21、 return 1; else if (s1i0) printf(第一个字符串长); else printf(第二个字符串长); 5.编写求字符串长的函数。#include int strlength(char str) int len = 0; char *p=str; while(0 != *p+) len+; return len; main() char str20; gets(str); printf(The length is %dn,strlength(str);6.编写一个函数判定一个数是否是素数,在主函数中调用该函数,输入一个整数,输出是否是素数的信息。#include vo

22、id isprime(int m) int i; for (i=2;i=m) printf(yes!); else printf(no!);main() int n; scanf(%d,&n); isprime(n);7. 用指针写一个删除字符串中空格的函数。#include #include void delspace(char str) char *p; for(p=str;*p;p+) /将testmac数组首地址附给p,当p所指字符为0时,停止循环 if(*p= )/若字符变量是空格,则以p+1所指地址后面的字符串拷贝到p所指地址 strcpy(p,p+1); main() char

23、str20; gets(str);/从键盘输入一个字符串 delspace(str); puts(str);8. 用指针写合并连个字符串的函数。#include void fun(char* dest, char* s1, char* s2) while (*dest+=*s1+); dest-; while (*dest+=*s2+);main() char str180, str280,dest255; gets(str1); gets(str2); fun(dest,str1,str2); printf(%sn,dest);9. 输入15个正整数,放在a数组中,要求:奇数放在a数组前部,偶数放在a数组后部。再分别对奇数和偶数排序。#include void sort(int *p,int n) int t; int i,j,k; for(i=0;in-1;i+) k=i; for(j=i+1;j*(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1