C语言程序设计(第3版 张磊编著)参考答案
更新时间:2024-04-09 06:16:01 阅读量: 综合文库 文档下载
第三章
二. 1.
#include
#include
y=3*x*x-6*x+7; } printf(\的值为:%f\} 3.
#include void main() { int a=0; printf(\请输入一个整数:\ scanf(\ if(a%3==0&&a%5==0) { printf(\该数既能被3整除又能被5整除\ } else { printf(\该数不能被3整除同时又能被5整除\ } } 5. void main() { int i=0; printf(\请输入一个整数:\ scanf(\ switch(i) { case 1:printf(\星期一\case 2:printf(\星期二\case 3:printf(\星期三\case 4:printf(\星期四\case 5:printf(\星期五\case 6:printf(\星期六\case 7:printf(\星期天\ default:printf(\输入数据不合法\\n\ } } 6. #include printf(\请以空格隔开输入a b c 的值:\scanf(\dt=b*b-4*a*c; if(dt<0) { printf(\无解\} else if(dt==0) { printf(\有唯一解为:%f\\n\} else { printf(\为:%f x2为:%f\\n\ } } 7. void main() { char ch; scanf(\ if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z') { printf(\这是字母:%c\} else if(ch>='0'&&ch<='9') { printf(\这是数字:%c\ } else { printf(\这是空白\ } } 8. void main() { int n=0,i=1; printf(\输入n:\ scanf(\ int sum=1; loop:sum=sum*i; if(i void main() { int num = 0,temp=0,a=1; int i = 0;//位数 printf(\输入一个整数:\ scanf(\ temp=num; printf(\逆序输出为:\ do { i++; a=a*10; printf(\ num = num /10; }while(num > 0); printf(\位数:%d\\n\ printf(\ printf(\分别打印每一位数:\ while(i>0) { a=a/10; printf(\ temp=temp-temp/a*a; i--; } } 一.选择题 1~8:C C C A 二.程序分析题 1. n%4!=0 2. 100 3. 1 三. 1. void main() { int m=0,n=0,sum=1; 第四章 A C CA 4. 1 int i=0; printf(\请以空格输入m n\ scanf(\ for(i=1;i<=m+n;i++) { sum=i*sum; } printf(\} 2. void main() { int i=0; for(i=1;i<=100;i++) { if(i%7!=0) printf(\ } } 3. void main() { int s=0,n=0,i=0; while(s<=1000) { s=n+s; n++; } n--; s=s-n; printf(\的值为:%d n的值为:%d\} 4. void main() { float a[20],temp=0; int i=0; for(i=0;i<20;i++) { scanf(\} temp=a[0]; for(i=0;i<20;i++) { if(temp printf(\最大值为:%f\} 5. void main() { char str[100]={0}; int i; printf(\ gets(str); for(i=0;str[i]!=0;i++) if(str[i]!='a' && str[i]!='A' && str[i]!='f' && str[i]!='5' && str[i]!='#') printf(\ printf(\ } 6. 图案一 void main() { int i=4,j=0; for(i=0;i<=4;i++)//控制输出的循环次数 { for(j=0;j<4-i;j++)//控制每行输出多少个空格 { printf(\ } for(j=0;j<2*i-1;j++)//控制每行输出多少个* printf(\ printf(\} for(i=3;i>0;i--) { for(j=4;j>i;j--) { printf(\ } for(j=0;j<2*i-1;j++) printf(\ printf(\ } } 图案二: void main() { int i=0,n=5,j=0; for(i=5;i>0;i--) { for(j=0;j<2*i-2;j++) { printf(\ } for(j=5-i+1;j>0;j--) { printf(\ printf(\ } printf(\ } } 7. void main() { int i=0,a,b,c; for(i=100;i<1000;i++) { a=i/100; b=i0/10; c=i; if(a*a*a+b*b*b+c*c*c==i) printf(\ } } 8. void main() { double a=100; int i=0; while(a>1) { a=a/2.0; i++; } printf(\ } 9. void main() { int a=1,b=2,c=5,sum=0; for (int i=0; i<=100; i++) { for (int j=0; j<=50; j++) { for (int k=0; k<=20; k++) { if (a*i+b*j+c*k==100) { sum+=1; printf(\个一分,%d个2分,%d个5分\\n\ } } } } printf(\共%d种换法\ } 10. #include double h1=100.0,h2; int i; h2=h1; for(i=1;i<=10;i++) { printf(\第 %d 次落地反弹高度:\\n\ //第X次落地后反弹高度 h2=h2/2; printf(\ printf(\第 %d 次落地经过的路程\\n\ //第x次落地时经过的路程 printf(\ h1=h1+(h2*2); } } 11. main() { double sum=0,n=1; int i; for(i=1;i<=64;i++) { sum=sum+n; n=2*n; } printf(\} 12. void main() { //char * stateName[] = {\站\站\站\站\站\站\站\站\站\站\站\站\站\站\站\ char stateName[][15] = {\站\站\站\站\站\站\站\站\站\站\站\站\站\站\站\ int i,j,count=0; for(i=0;i<15;i++) for(j=0;j<15;j++) if(i!=j) { count++; printf(\序号= 从 %s 到 %s\\n\ } printf(\共 = 种票\\n\} 13. float fun(int n) { float S=0,p=0; int i; for(i=1;i<=n;i++) { p+=i; S+=1/p; } return S; } void main() { int n; float S; printf(\请输入 N:\ scanf(\ S=fun(n); printf(\结果为 %f\\n\} 一.选择题: 1.~3 B D B 二.程序分析题 1. k=p 2. Str[i]!=’\\0’ ; 三.编程题 1. #include 第五章 str[i]>=97; i++; 3. 3 4. b[j][i]=a[i][j] for(i=0;i<10;i++) { a=a+b; if(a%2==0) c[j++]=a; b=a+b; if(b%2==0) c[j++]=b; } c[j]='\\0'; for(i=0;i #include void inverse(int a[],int n) { int i,j,t; for(i = 0, j = n - 1; i < j; ++i, --j) { t = a[i]; a[i] = a[j]; a[j] = t; } } void main() { int i, a[6]={1,5,7,13,15,19},n=6; inverse(a,n); for(i=0;i #include for (i=1;i<6;i++) { t=aver-n[i]; if(t>=0 && t #include #include char a[5][81]={0}; int counter=0,i,j; printf(\请输入5段英文。\\n\ for(i=0;i<5;i++) gets(a[i]); for(i=0;i<5;i++) { for(j=0;j float m; m=counter*0.5; printf(\可以获得的稿费为:%.2f元\\n\} 6. void main() { int a[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; int b[2][10]; int i=0,j,n=0,k=0; for(j=0;j<20;j++) { if(a[j]%2==0) { b[0][n]=a[j]; n++; } else { b[1][k]=a[j]; k++; } } for(i=0;i<2;i++) { for(j=0;j<10;j++) { printf(\ \ } } } 7. #include } else if(c==' ') { if(f) s++; b=1; f=0; } else { b=0; } } if(f) s++; printf(\ return 0; } 8. #include {char a[5][10],b[100]; int i; for (i=0;i<5;i++) scanf(\ b[0]='\\0'; for (i=0;i<5;i++) { if(i>0)strcat(b,\ } printf(\} 9. void main() { int a[4][5],b[4][5],c[4][5],i,j; /*输入,数组a赋初值*/ for(i=0;i<4;i++) for(j=0;j<5;j++) scanf(\ /*输入,数组a赋初值*/ for(i=0;i<4;i++) for(j=0;j<5;j++) scanf(\ /*生成新数组c*/ for(i=0;i<4;i++) for(j=0;j<5;j++) { if((a[i][j]%2==0)&&(b[i][j]%2==0)) c[i][j]=a[i][j]-b[i][j]; else c[i][j]=a[i][j]+b[i][j]; } /*输出数组c*/ for(i=0;i<4;i++) { for(j=0;j<5;j++) printf(\ printf(\ } } 10. #include } } s2[i]=s1[i]; s2[i]='\\0'; puts(s1); puts(s2); 第六章答案 8.C 9.C 一,选择题 1.C 2.A 3.D 4.B 5.C 6.D 7.D 二,编程分析题: 1. 输出结果: 5 10 15 20 2. 输出结果: x = 1 Y = 1 x = 1 Y = 1 x = 1 Y = 1 3. 输出结果:程序有错 4. 输出结果:result: 0 三,编程题 1 .设计一个将公制长度(cm)转换为英制长度(英寸)的函数,在主函数中输入公制长 度,然后输出英制长 #include \void esc(double c) { printf(\} int main() { } double c; printf(\请输入长度:\scanf(\esc(c); return 0; 2. #include float ss = 0; ss=3.14*(d/2)*(d/2)+3.14*(d/2)*sqrt(h*h+(d/2)*(d/2)); return ss; } float v(float h,float d) { float vv = 0; vv=(1.0/3.0)*3.14*(d/2)*(d/2)*h; return vv; } void main() { float d; float h; printf(\请输入直径:\ scanf(\ printf(\请输入高:\ scanf(\ printf(\圆锥的表面积为:%f\ printf(\圆锥的体积为:%f\\n\} (注:没有密度,求不出质量) 3. #include for (i=0;i main() { char y[]=\printf(\return 0; } 4.按照如下公式,设计一个求π得近似值的函数:π/2≈1+1/3+1/3*2/5+1/3*2/5*3/7... #include {static double p=1; p=p*i/(i+i+1); return p; } int main() { int i; double pi=1; for(i=1;i<=1000;i++) pi+=f(i); printf(\ return 0; } 5.设计一个函数,计算下面表达式前n项中偶数项的和:1*2*3+2*3*4+... #include } int main() { int n; printf(\ scanf(\ printf(\偶数项和是:%d\\n\} 6. #include int gongyue(int m,int n) { int r; if(m==n) return m; else while((r=m%n)!=0) { m=n; n=r; } return n; } int gongbei(int m,int n) { if(m==n) return m; else return m*n/gongyue(m,n); } void main() { int a,b,i; printf(\ scanf(\ printf(\最大公约数是:%d\\n\ printf(\最小公倍数是:%d\\n\ } 7. #include long result; if(n==0 || n==1){ result = 1; }else{ result = factorial(n-1) * n; // 递归调用 } return result; } void main() { int n; printf(\请输入一个奇数:\ scanf(\ printf(\结果是:%d\\n\} 8. #include float b(float arr[],int n); void main() { float a[50]; int i,n=0; printf(\输入你的数组长度和数组的值:\ scanf(\ for(i=0;i float b(float arr[],int n) { float sum=0,c; int i; if(n==0) return(0); for(i=0;i c=sum/n; return(c); } 一.选择题: 1.~10:B C A B D C B C B B 二.程序分析题 1. 6789 2. 6789 3. 2008 三.编程题 1. #include void swap(int *p,int *q) { int t; t=*p; *p=*q; *q=t; } void main() { int a,b,*p; scanf(\ swap(&a,&b); 第七章4.2 5. t ,one 6. 0 7. 统计字符串长度 printf(\} 2. void main() { int i,j,k,*p1,*p2,*p3,t; printf(\请输入 i,j,k: \ scanf(\ printf(\交换前: i=%d j=%d,k=%d\\n\ p1=&i; p2=&j; p3=&k; //p1指向i,p2指向j, p3指向k t=*p3; *p3=*p2;*p2=*p1,*p1=t; //通过指针间接访问i,j,k并实现交换 printf(\交换后: i=%d j=%d k=%d\\n\ } 3. #include p3=p; } printf(\ return 0; } 4. #include int fun(char*s1,char*s2) { char *p = NULL; char *p2 = NULL; for(p = s1,p2 = s2 + strlen(s2) - 1;*p != *p2; p++,p2--); if(*p == '\\0') return printf(\ else return printf(\ } void main() { char a[100],b[200]; gets(a); gets(b); fun(a,b); } 5. #include for(j=0;j printf(\与之前的数重复请重新输入\\n\ i=i-1; } p++; } } } 6. #include int a[n],b[n],*p=a,*q=b,i; for (i=0;i return 0; } 7. #include int cmp(const void *a, const void *b) { return *(char*)a - *(char*)b; // 这里记住一定要用排序的元素类型的指针做强制装换并且再取指针指向的值。 } int main() { char s[] = \ qsort(s, strlen(s), 1, cmp); printf(\ return 0; } 8. #include printf(\输入数列:\for(i=0;i<20;i++) scanf(\ printf(\输入起始位置和需要逆序的数量:\scanf(\p=a; printf(\原数列为:\\n\ for(i=0;i<20;i++) printf(\ fun(p,m,n); printf(\变换后的数列为:\\n\ for(i=0;i<20;i++) printf(\} int *fun(int *p,int m,int n) { int i,j,k; for(i=m-1,j=m+n-2;j>i;i++,j--) { k=*(p+i) ; *(p+i) = *(p+j); *(p+j) =k; } return p; } 9. #include int length=0; for(;*p!='\\0';p++) length++; return length; } int main() { char a[80]={0}; printf(\请输入一个字符串:\ gets(a); printf(\输入字符串的长度为:%d\\n\ return 0; } 10. #include char a; char *Delete(char *p, int i) { int lengh = 0, j = 0; char * b = p; while(*p != '\\0')//求出字符串的长度,lengh中存放字符串的长度用于比较 { p++; lengh++; } p = b;//因为p移动到最后的位置,将其重新定位到开始位置 if(i > lengh || i < 1)//判断i是否大于零并小于字符串的长度,如果不合理就返回 { return NULL; } a = *( p + i -1);//用全局变量保存要删除的字符 for(j = i - 1; j < lengh; ++j)//调整字符串,让后面的字母依次替换前面的,包括'\\0'; { *(p + j) = *(p + j + 1); } return &a;// 返回a的地址 } int main() { char a[40], *b; int i; printf(\请输入字符串\\n\scanf(\ printf(\请输入你要删除第几个字符\\n\scanf(\b = Delete( a, i); if(b == NULL) { printf(\删除失败\\n\} else { printf(\删除的字符是 %c \\n\} printf(\输出删除后的字符串 return 0; } 声明:本答案是个人编写,仅供参考,错误之处,还望指出改正 (广西工学院xxx班)
正在阅读:
巴伦11-18
高师资格认证心理学复习资料第十二章高等学校教师心理08-10
个人中英文简历模板305-17
建设规划许可证延期申请书09-02
《学生成绩管理系统》可行性报告书10-23
浅析乡土史在历史课堂教学中的运用06-02
基于FPGA智能窗控制系统 - 图文06-04
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 张磊
- 编著
- 程序设计
- 答案
- 语言
- 参考
- 2015年湖南省张家界市中考化学试卷(word解析版)解析
- 湖南建筑环境与设备工程中级职称考试复习题
- 古代诗词名句精选100句
- 中级会计实务(2015) VIP押题(3)
- 江苏开放大学政治学基础第一次
- SWE50动功能液压挖掘机工作装置设计液压系统设计 - 图文
- 宾语从句讲解及练习(附答案)张梦杰
- 路基专项施工方案11
- 仪器仪表技术要求及参数
- 双闭环直流调速系统
- 17.小小说两篇
- XX烟草专卖局涉嫌犯罪案件自查报告
- 药科分析化学期末考试卷
- 生化题目整理版
- 综排Top30东亚研究硕士项目(世毕盟留学)
- 货检员实作试题答案1 - 图文
- 探索研究自主学习能力培养策略 实践提高学生自主学习能力
- LED积分球测试流程
- 浙江乡土旅游章节练习题(第五、六章)
- 外科学复习指导习题及答案