C语言程序设计(谭浩强)第八章详细课后答案
更新时间:2024-04-25 11:44:02 阅读量: 综合文库 文档下载
#if 0 //8.1 #include
int Common_divisor(int a,int b); int Common_mutiple(int m,int n); int result_1,result_2; int number_1,number_2;
printf(\ scanf(\ result_1 = Common_divisor(number_1,number_2); result_2 = Common_mutiple(number_1,number_2);
printf(\最大公约数:%d\\n最小公倍数:%d\\n\}
int Common_divisor(int a,int b) {
int r = 1; while(r != 0) { if(a>b)
{
r = a%b;
a = b; b = r; if(r == 0) {
return a;
break; }
} else {
r = b%a;
b = a; if(r == 0) {
return b;
break; } a = r;
} }
}
int Common_mutiple(int m,int n) {
int Common_divisor(int a,int b);
int temp = 0,result = 0;
temp = Common_divisor(m,n); } #endif
#if 0 //8.2 #include
float result_1 =0.0,result_2 = 0.0; void main() {
void Funvtion_1(float a,float b,float temp); result = (m*n)/temp; return result;
void Function_2(float a,float b); float a,b,c; float temp;
printf(\ scanf(\ temp = b*b-4*a*c; if(temp > 0) {
Funvtion_1(a,b,temp);
printf(\
}
else if(temp < 0) {
printf(\此函数没有根!\\n\ } else {
Function_2(a,b);
printf(\
} }
void Funvtion_1(float a,float b,float temp) {
result_1 = (-b+temp)/(2*a);
}
result_2 = (-b-temp)/(2*a);
void Function_2(float a,float b) {
result_1 = (-b)/(2*a); } #endif
#if 0 //8.3 #include
void Prime(int n); int m;
printf(\ scanf(\ Prime(m); }
void Prime(int n)
{
int i = 0 ,k; k = (int)sqrt(n); for(i = 2; i <= k;i++) {
if(n%i == 0) { break; }
} if(i > k) {
printf(\ } else {
printf(\ } } #endif #if 0
#include
void Function(int b[3][3]); int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; int i,j;
// int d[3][3];
int k = sizeof(a[2])/sizeof(int); //列数 int n = sizeof(a)/sizeof(int); for(i = 0; i < n/k;i++) {
for(j = 0;j < k;j++) {
printf(\ }
printf(\ }
Function(a);
for(i = 0; i < k;i++) {
for(j = 0;j < n/k;j++) {
printf(\ }
printf(\ }
void Function(int b[3][3]) { }
int i = 0,j = 0; } #endif
int k = sizeof(b[3])/sizeof(int); int n = sizeof(b)/sizeof(int); for(i = 0;i < k ;++i) {
for(j = 0;j < k; ++j) } {
c[j][i] = b[i][j]; }
#if 0
#include
void Function(char a[100],char b[100]); char a[100]; extern int b[100]; int n = sizeof(a); printf(\ gets(a); Function(a,b); }
void Function(char a[],char b[]) {
int i = 0;
int n = sizeof(a)/sizeof(char); int m = strlen(a); for(i = 0; i < m;i++)
{
b[i] = a[m-1-i]; }
//printf(\ //puts(b); } #endif
#if 0 //8.6 #include
char a[20]; char b[10];
printf(\ gets(a);
printf(\ for(i = 0;i < m;i++) {
putchar(b[i]);
}
gets(b); strcat(a,b); puts(a); } #endif
#if 0 //8.6 #include
void Connect(char a[],char b[]);
char b[10];
printf(\ gets(a);
printf(\ gets(b);
Connect(a,b);
// puts(a); printf(\
}
void Connect(char a[],char b[]) {
int i = 0; int j = 0;
while(a[i] != '\\0') { i++; }
while(b[j] != '\\0') {
a[i++] = b[j++]; }
// a[i] = '\\0'; } #endif #if 0//8.7 #include
#include
void Research_vowel(char a[]); char a[50];
printf(\ gets(a);
Research_vowel(a); puts(b); }
void Research_vowel(char a[]) {
int i = 0,j = 0; for(; i < strlen(a);i++) {
if(a[i] == 'a'|| a[i] == 'e' || a[i] == 'i' || a[i] == 'o' || a[i] == 'u') {
b[j] = a[i];
j++;
} }
} #endif #if 0//8.8 #include
void Divide(int n); }
void Divide(int n) int n = 0,i = 0;
printf(\scanf(\Divide(n); for(;i<4;i++) {
printf(\}
printf(\
{
int i = 0,c = 0,b = 0,m = 1000; } #endif #if 0//8.9 #include
void Research_number(char a[]); while(m >= 1) {
c = n/m; b = n%m; m = m/10; a[i] = c; n = b; i++; }
char a[50]; int i = 0;
printf(\ gets(a);
/*for(;i printf(\ }*/ puts(a); puts(\ Research_number(a); printf(\字母个数是:%d,数字个数是:%d,空格个数是:它:%d\\n\} void Research_number(char a[]) { int i = 0; for(i = 0;i if((a[i] >= 'a' && a[i] <= 'z') || (a[i] >= 'A' && a[i] <= 'Z')) { %d,其 } } m++; } else if(a[i] > 47 && a[i] < 58) { n++; } else if(a[i] == 32) { r++; } else { l++; } #endif #if 0 //8.10 #include void main() { void Array(char a[]); char b[20]; printf(\ gets(b); printf(\ Array(b); } void Array(char a[]) { int i = 0,place = 0,point = 0,length = 1; //point表示最长单词的开始位置 place表示最长单词最后的一个位置 int max = 0,j = 0; int flag = 0; //为0 时是空格 为1时是单词 max = length; for(i = 0;i<=strlen(a);i++) { if(a[i] != ' ' && a[i] != '\\0') { if(0 == flag) { j = i; flag = 1; } else length++; //这个题让我做的非常的难过的复习 } else { flag = 0; if(max < length) { max = length; point = j; place = i; } length = 1; } } for(i = point;i <= place;i++) 以后要好好 } /* { printf(\} printf(\ int judge_words(char b[20]) { int i = 0,flag = 1; for(i = 0;i < strlen(b); i++) }*/ { if((a[i] >= 'a' && a[i] <= 'z') || (a[i] >= 'A' && a[i] <= 'Z')) } { flag = 1; } else { flag = 0; } #endif #if 0 //8.11 #include void bubbling(char a[]); char a[10]; printf(\ gets(a); bubbling(a); puts(a); } void bubbling(char a[]) { int i = 0,j = 0; char temp; for(i = 0;i for( j = 0;j } } { if(a[j] > a[j+1]) } { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } #endif #if 0 //8.12 #include float Function(float x); float x = 1.5,x1 = 0.0; x1 = Function(x); printf(\} float Function(float x) { float x1; float y,y1; while(fabs(y1)>=1e-6) { x = x1; y1 = x*x*x+2*x*x+3*x+4; y = 3*x*x+4*x+3; x1 = x - (y1/y); } return x1; } #endif #if 0//8.13 #include float p(float x,int n); float x = 0.0,result = 0.0; int n = 0; printf(\ scanf(\ result = p(x,n); printf(\} float p(float x,int n) { float y = 0.0; if(n == 0) { y = 0; } else if(n == 1) { y = x; } else { y = ((2*n-1)*x-p(x,n-1)-(n-1)*p(x,n-2))/n; } } return y; #endif #if 0//8.14 #include float* EStudent_aver(float scores[10][5]); float* EClass_aver(float scores[10][5]); float Maxscore(float scores[10][5]); float variance(float scores[10][5]); float scores[10][5] = {{76,43,46,73,46},{34,67,89,32,47},{31,68,73,16,87},{31,67,31,37,63},{16,37,61,67,86}, {31,34,60,49,29},{89,89,87,87,98},{97,34,89,42,89},{45,67,34,18,64},{ 32,16,87,42,15}}; float *Student_aver,*Class_aver,Student_max = 0.0,aver_variance = 0.0; int i = 0,j = 0,k = 0; /* char Student_name[] = {\Xiaoming Ligang Xiaotao Zhangsan Xiaoqiang CBC Baixu Gongcheng BOBO \ char score_name[] = {\ Math English Chemitry WuLi\ printf(\ for(i = 0;i < strlen(score_name);i++) { printf(\} puts(\ for(i = 0;i < strlen(Student_name);i++) { printf(\if(Student_name[i] == 32) { for(j = 0;j < 5;j++) { printf(\ %.0f\\t\ } k++; puts(\ } }*/ /* printf(\ for(i = 0; i < 10;i++) { for(j = 0;j < 5;j++) { printf(\ %.0f\\t\ } puts(\ }*/ // float scores[10][5]; printf(\ course1 course2 course5\\n\ for(i = 0;i < 10;i++) { printf(\ for(j = 0;j < 5;j++) { printf(\ } puts(\ course3 course4 } Student_aver = EStudent_aver(scores); Class_aver = EClass_aver(scores); Student_max = Maxscore(scores); aver_variance = variance(scores); printf(\ for(i = 0;i < 10;i++) { printf(\ \ } printf(\ for(i = 0 ;i < 5;i++) { printf(\ \ } printf(\ printf(\Max Score:\\n %.2f course%d\\n\ printf(\} float * EStudent_aver(float scores[10][5]) Name: No.%d , Course: %.2f\\n\ { static float aver[10],sum = 0.0; } float* EClass_aver(float scores[10][5]) { static float aver_1[5],sum = 0.0; int i = 0,j = 0; for(j = 0;j<5;j++) { for(i = 0;i<10;i++) int i = 0,j = 0; for(i = 0;i < 10;i++) { for(j = 0; j < 5; j++) } return aver; { sum += scores[i][j]; } aver[i] = sum/5; sum = 0; { sum +=scores[i][j]; } float Maxscore(float scores[10][5]) { int i = 0,j = 0; float max = scores[0][0]; for(i = 0;i < 10;i++) { for(j = 0;j < 5;j++) { if(max < scores[i][j]) { max = scores[i][j]; r = i + 1; l = j + 1; } return aver_1; } aver_1[j] = sum/10; sum = 0; } } } } return max; float variance(float scores[10][5]) { float* EStudent_aver(float scores[10][5]); float s = 0.0; float sum_1 = 0.0,sum_2 = 0.0; float number_1 = 0.0,number_2 = 0.0; float* student_aver; int i = 0,j = 0; student_aver = EStudent_aver(scores); for(i = 0;i<10;i++) { sum_1 += student_aver[i]*student_aver[i]; sum_2 += student_aver[i]; } number_1 = sum_1/10; number_2 = (sum_2/10)*(sum_2/10); } s = number_1 - number_2; return s; #endif #if 0 //测试 static #include static i = 0; i++; } void f2() { j = 0; j++; } void main() { int k = 0; for(k = 0;k < 10;k++) { f1(); f2(); } } #endif #if 0//8.16 #include void Change(int n); int m = 0; printf(\ scanf(\ // printf(\ Change(m); } void Change(int n) { //int m; } #endif #if 0//8.17 #include void Function(int n); printf(\十进制是: %d\\n\ int m; printf(\scanf(\ Function(m); } void Function(int n) { int i; /* if(n!=0) { ch[i] = n; temp = n/10; } #endif #if 0 //今天是今年的多少天 } else { ch[i] = 0; } return ch;*/ i = n/10; if(i != 0) { Function(i); } putchar(n+'0'); putchar(32); i++; Function(temp); #include int i = 1,d = 0,sum = 0; int year,month,day; printf(\scanf(\sum = day; for(;i switch(i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: d = 31; break; case 2: if(year@0 == 0 || year%4 == 0 && year0!=0) { d = 29; } else { d = 28; } break; case 4: } #endif #if 0 //8.15 #include case 11: d = 30;break; } sum += d; } printf(\ #define N 10 void main() { void Enter_massage(char staff_name[N][10],int staff_number[N]); void Sort(char staff_name[N][10],int staff_number[N]); int middle_search(int staff_number[N],int number); int number,temp = 0; char staff_name[N][10]; int staff_number[N]; Enter_massage(staff_name,staff_number);//输入信息 Sort(staff_name,staff_number); printf(\scanf(\ temp = middle_search(staff_number,number); } void Enter_massage(char staff_name[N][10],int staff_number[N]) { int i; for(i = 0;i < N;i++) printf(\printf(\ : %s\\n\ { printf(\ scanf(\ fflush(stdin); printf(\ } void Sort(char staff_name[N][10],int staff_number[N]) { int i,j; int temp1; char temp[N][10]; for(i = 0;i < N - 1; i++) { for(j = 0;j < N - 1 - i; j++) { if(staff_number[j]>staff_number[j+1]) { gets(staff_name[i]); } temp1 = staff_number[j]; strcpy(temp[j],staff_name[j]); staff_number[j] = staff_number[j+1]; strcpy(staff_name[j],staff_name[j+1]); staff_number[j+1] = temp1; } strcpy(staff_name[j+1],temp[j]); } /*if(staff_number[i] temp1 = staff_number[i]; staff_number[i] = staff_number[i+1]; staff_number[i+1] = temp1; } */ } int middle_search(int staff_number[N],int number) //折半查找法! } for(i = 0;i < N;i++) { printf(\ } printf(\ { int min = 0,high = 0,mid = 0; int i = 0; min = 0; high = N - 1; while(min <= high) { mid = (min+high)/2; } if(staff_number[mid] > number) { high = mid - 1; } else if(staff_number[mid] < number) { min = mid + 1; } else { return mid; } } #endif /*fasdfa the world hello int flag=0; flag=1;//letter flag=0;//space*/ #if 0 //有问题 输出的是不对的! 为什么指针值temp+1的值不是指向的name[1]这一行的首地址 而是++后指向的是name[0]下一列的地址呢? #include char name[5][10]; char temp[5][10]; int i = 0; // temp = &name[0]; } #endif #if 0 //看不懂的程序 8.15 #define N 10 find(a,b) int a[],b[]; { int i,j,s,t,c[N][2]; for(i=0;i for(i = 0;i < 5;i++) { gets(name[i]); } for(i = 0;i < 5;i++) { //puts(name[i]); } puts(temp[i]); strcpy(temp[i],name[i]); c[i][1]=a[i];c[i][1]=i; } for(i=0;i for(j=0;j if(c[i][0]>c[i+1][0]) { t=c[i][0]; c[i][0]=c[i+1][0]; c[i+1][0]=t; s=c[i][1]; c[i][1]=c[i+1][1]; c[i+1][1]=s; } for(i=0;i b[i]=c[i][1]; return; } lookfor(h,k) int h[],k; { int i,j; for(i=0;i if(h[i]-k==0) j=i; return j; } main() { int number[N],x[N],i,j,u,p; char name[N][20]; for(i=0;i gets(name[i]); scanf(\ } scanf(\ find(number,x); u=lookfor(number,p); for(i=0;i printf(\ puts(name[x[i]]); } puts(name[x[u]]); } #endif #if 1 //16进制转换成10进制 #include extern int sum; int convert(char str[],int n); char str[N]; int s = 0,n = 0; puts(\gets(str); n = strlen(str); s = convert(str,n); if(1 == flag) { printf(\} else { printf(\ } } int convert(char str[],int n) { int i,j = 0; int sum = 0; for(i = n - 1;i > -1;i--,j++) { if(str[i] > 47 && str[i] < 58) { sum = sum + (str[i] - 48) * (int)pow(16,j); } else if(str[i] > 64 && str[i] < 71) { sum = sum + (str[i] - 55)* (int)pow(16,j); } else if(str[i] > 96 && str[i] < 103) { sum = sum + (str[i] - 87) * (int)pow(16,j); } } } else { flag = 0; } return sum; #endif #if 0 #include printf(\} #endif
正在阅读:
加氢事故汇编12-25
开展安全大反思个人心得体会08-01
武大《GPS原理及其应用》2006-2007 第二学期GPS考试试卷标准答案 A 卷03-11
lllustrator图文考题及答案05-22
安徽省烈士褒扬信息管理系统方案1.1版10-25
神经内科常用药大全01-11
A一定用的上的音乐术语03-08
一年级班主任家访记录11-23
- 冀教版版五年级科学下册复习资料
- 微生物学复习提纲
- 2013—2014学年小学第二学期教研组工作总结
- 国有土地转让委托服务合同协议范本模板
- 我的固废说明书
- 企业管理诊断报告格式
- 东鼎雅苑施工组织设计
- 谈谈如何做好基层党支部书记工作
- 浮梁县环保局市级文明单位创建工作汇报
- 管理学基础知识
- 大学物理实验报告23 - PN结温度传感器特性1
- 计算机网络实践
- 酒桌上这四种情况下要坐牢,千万别不当回事……
- 国家康居示范工程建设技术要点
- 中国贴布行业市场调查研究报告(目录) - 图文
- 新课标下如何在高中物理教学中培养学生的创新能力初探
- 营养师冬季养生食谱每日一练(7月4日)
- 关注江西2017年第3期药品质量公告
- 建设海绵城市专题习题汇总
- 10万吨年环保净水剂建设项目报告书(2).pdf - 图文
- 浩强
- 课后
- 程序设计
- 答案
- 语言
- 详细
- 网络安全培训考试题库(附答案)
- 工程部经理竞聘演讲稿
- 事业部管理规章制度 文档
- 清华斯维尔使用注意事项
- VOIP电话设计方案全解
- 北京大学09级普通化学期末考试题(1)
- RBA内部审核和管理评审(全套资料) - 图文
- 09年1月分工作总结
- 火法炼铜工艺过程中的危险、有害因素辨识与分析
- 高中函数性质总结
- 行政法试题及答案65
- 招 标 文 件- 中国科学院
- 2018部编新人教版小学三年级语文上册 11 一块奶酪 公开课教学设
- 投资回购履约担保合同定
- 名师推荐:八年级上期末作文指导汇编(根据各单元知识点)
- 植物生物学教学大纲(生物技术)
- 智能小区物业安防管理设计研究方案
- 重庆红色之旅心得体会
- 奥鹏西工大16春《工程造价》在线作业
- 白衣观音大士灵感神咒注音