C语言题 请自行创建一个c语言头文件怎么写mine.h内容为“#define PI 3.1415”引用该c语言头文件怎么写计算半径为3的圆面积并输出

I; printf(&area=%6.2f\ncircumference=%6.2f\n&,area,circumference); } 2. 编写程序,输出下面结果,注意,双引号也要输出: “I'm a student!” #include &stdio.h& void main() { printf(&\&I\'m a student!\&\n&); } 3. 编写程序,输入一个小写字母,将其转换为大写字母输出。例如输入 b,则输出 B。提示: 小写字母和对应的大写字母的 ASCII 码值相差 32。 void main() { ch=getchar(); ch-=32; putchar(ch); //printf(&%c&,ch); } 4. 编写程序,输入一个华氏温度 f,输出其相应的摄氏温度 c。华氏温度和摄氏温度的转换公式为:c=5 (f ? 32) 9#include &stdio.h& void main() { float f,c; scanf(“%f”,&f); c=5.0*(f-32)/9; printf(“华氏温度%5.2f 转换为摄氏温度为:%5.2f\n”,f,c); } 第四章 三、编程题 1. 输入一个整数,判断这个整数是奇数还是偶数(提示:整数的奇偶性可以利用取余运算符% 判定)。 #include &stdio.h& void main() { scanf(&%d&,&a); if(a%2) printf(&奇数\n&); else printf(&偶数\n&); } 2. 编写程序,输入一个 24 小时制的时间,转换为 12 小时制时间后进行输出。以 13 点 15 分 为例,输入:13:15,则输出:下午 1:15。 #include &stdio.h& void main() { int hour, scanf(&%d:%d&,&hour,&minute); if (hour&12) hour=hour-12; printf(&%d:%d\n&,hour,minute); } 3. 输入年号,判断它是否是闰年(如果年号能被 400 整除,或能被 4 整除,而不能被 100 整 除,则是闰年,否则不是)。 void main() { scanf(&%d&,&year); if (year%400==0||(year%4==0&&year%100==0)) printf(&%d 是闰年\n&,year); else printf(&%d 不是闰年\n&,year); } 4. 输入一个字符,如果是大写字母则输出对应的小写字母,如果是小写字母则输出相应的大 写字母,如果都不是则原样输出。 #include &stdio.h& void main() { scanf(&%c&,&ch); if(ch&='a'&&ch&='z') ch-=32; else if(ch&='A'&&ch&='Z') ch+=32; printf(&\n%c\n&,ch); } 5. 设计一个简单的计算器程序,能输入整型运算数和基本运算符(+,-,*,/),输出计算 结果。例如:输入 2+6,输出 2+6=8。 #include&stdio.h& main() { float a,b, scanf(&%f%c%f&,&a,&op,&b); switch(op) { case'+': result=a+b; printf(&=%f&,result); case'-': result=a-b; printf(&=%f&,result); case'*': result=a*b; printf(&%f&,result); case'/': if(b==0.0) printf(&error!\n&); result=a/b; printf(&=%f&,result); default: printf(&error due to the illegal input!\n&); } } 第五章 三、编程题 1. 编写程序,显示 100~200 之间能被 7 除余 2 的所有整数。 #include &stdio.h& main() { for(i=100;i&=200;i++) { if(i%7==2) printf(&\t%d\t&,i); } } 2. 输入 n 个整数,求这 n 个整数中的最大数、最小数和偶数平均数,并输出。 #include &stdio.h& void main() { int i,n,data,max=0,min=0,even=0,evennumber=0; printf(&Please input the number of data:&); scanf(&%d&,&n); printf(&Please input the data:\n&); scanf(&%d&,&data); max= min= if (data%2==0) { even=even+ evennumber++; } for(i=1;i&n;i++) { scanf(&%d&,&data); if (data&max) max= else if (data&min) min= if (data%2==0) { even=even+ evennumber++; } } printf(&The max is %d\nThe min is %d\n The average of even is %5.2f\n&,max,min,(float)(even)/evennumber); } 3. 输入一串字符,以回车作为结束标志。统计并输出这串字符中大写字母、小写字母和数字 字符的个数。 #include &stdio.h& void main() { int upper=0,lower=0,number=0; while((letter=getchar())!='\n') { if (letter&='a'&&letter&='z') lower++; else if (letter&='A'&&letter&='Z') upper++; else if (letter&='0'&&letter&='9') number++; } printf(&the number of uppercase is:%d\n&,upper); printf(&the number of lowercase is:%d\n&,lower); printf(&the number of number is:%d\n&,number); } 4. 输出九九乘法表。 #include &stdio.h& void main() { int i,j; for(i=1;i&=9;i++) { for(j=1;j&=i;j++) printf(&%d*%d=%-3d &,i,j,i*j); printf(&\n&); } } 5. 编写程序,输出 3~1000 之间全部素数。 #include &stdio.h& #include &math.h& void main() { int k,data, for(data=3;data&=1000;data++) //外层循环,用来产生 2~1000 之间的整数 { tag=0; //tag 用于表示数 i 是否是素数,没有判断前先假定是素数for(k=2;k&=sqrt(data)&&!k++) //内层循环用来判断 data 是否有约数 { if (data%k==0) tag=1; } if (tag==1) printf(&%4d&,data); //如果 i 是素数,则输出 } } 6. 输入一个三位数,判断其是否是“水仙花数”。水仙花数是指 3 位数中的各位数字的立方 和等于这 3 位数本身。如 153=1*1*1+5*5*5+3*3*3。 #include&stdio.h& void main() { int S, a, b, printf(&请输入一个 3 位数:&); scanf(&%d&,&S); a=S/100; b=S%100/10; c=S%10; if(a*a*a+b*b*b+c*c*c==S) printf(&%d 是水仙花数。&,S); else printf(&%d 不是水仙花数。\n&,S); } 7. 编程求 Fibonacci 数列的前 40 个数。 该数列的生成方法是: 1=1,F2=1,Fn=Fn-1+Fn-2(n&=3) F (即 从第三个数起,每个数等于前 2 个数之和)。 方法 1: #include &stdio.h& void main() { int f0,f1,f2,n; f0=1; f1=1; printf(&Fibonacci 数列的前 40 个数是:%d\t%d\t&,f0,f1); for(n=2;n&40;n++) { f2=f0+f1; printf(&%d\t&,f2); f0=f1; f1=f2; } 方法 2: #include &stdio.h& void main() { int f[40],n; f[0]=1; f[1]=1; printf(&Fibonacci 数列的前 40 个数是:%d\t%d\t&,f[0],f[1]); for(n=2;n&40;n++) { f[n]=f[n-1]+f[n-2]; printf(&%d\t&,f[n]); } } 8. 一个穷人找到一个百万富翁,给他商讨一个换钱计划如下:我每天给你十万元,而你第一 天只需给我一元钱,第二天给我二元钱,第三天给我四元钱,……,即我每天都给你十万 元,你每天给我的钱都是前一天的两倍,直到满一个月(30 天)。百万富翁很高兴地接受 了这个换钱计划。请编写程序计算满一个月时,穷人给了富翁多少钱,而富翁又给了穷人 多少钱。 #include &stdio.h& void main() { long poor=100000,rich=1,i; for(i=2;i&=30;i++) { poor=poor+100000; rich=rich*2; } printf(&Money of poor giving rich is %ld\nMoney of rich giving poor is %ld\n&,poor,rich); } 9. 猴子吃桃问题。猴子第一天摘下若干桃子,立即吃了一半,不过瘾又多吃了一个。第二天 早上又将剩下的桃子吃了一半,又多吃了一个。以后的每天早上都是吃了前一天剩下的一 半加一个。 到第 10 天早上时只剩下一个桃子了。 编写程序, 求猴子第一天共摘了多少桃子。 /************************************************************************/ /*有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个*/ /* 到了第 10 天就只余下一个桃子。(C 语言实现) */ /*用多种方法实现求出原来这群猴子共摘了多少个桃子。 */ /************************************************************************/ /*运行环境:VC++6.0 */ /************************************************************************/ #include &stdio.h& main() { int i,j,k; /*j 是最后的桃子数,k 是中间变量,也是桃子总数*/ j = 1; for(i=9;i&0;i--) { k = (j + 1) * 2; j = } printf(&%total=%d\n&,k); }、 第六章 三.1. #include &stdio.h& #define n 10 void main() { int a[n],i,count1=0,count2=0,sum=0; for (i=0;i&n;i++) {scanf(&%d&,&a[i]); sum+=a[i]; if (a[i]&80) count1+=1; else if(a[i]&60) count2+=1; } ave=sum/n; printf(&%d 个优秀, %d 个不及格,平均分:%f。&,count1,count2,ave); } 2. #include &stdio.h& #define n 10 void main() { int a[n],i,j,k,max, for (i=0;i&n;i++) {scanf(&%d&,&a[i]); if (!i) {max=min=a[i]; j=k=i; } else {if (max&a[i]) {max=a[i]; j=i; } else if (min&a[i]) {min=a[i]; k=i; } } } printf(&最大值%d 在第%d 位,最小值%d 在第%d 位。&,max,j+1,min,k+1); } 3. #include &stdio.h& #include &string.h& void main() { char s[20], int i,n; printf(&请输入字符串:&); gets(s); n=strlen(s); for(i=0;i&n/2;i++) {ch=s[i]; s[i]=s[n-1-i]; s[n-1-i]= } printf(&逆序存放的字符串:&); puts(s); } 4. #include &stdio.h& #define N 10 void main() { int i,j,n,a[N+1]; printf(&请输入%d 个由小到大排列的整数:&,N); for(i=0;i&N;i++) scanf(&%d&,&a[i]); printf(&请输入要插入的数:&); scanf(&%d&,&n); for(i=0;i&N;i++) if(a[i]&n) {j=i; } if (i==N) j=i; for(i=N-1;i&=j;i--) a[i+1]=a[i]; a[j]=n; printf(&插入后的排列:&); for(i=0;i&=N;i++) printf(&%d &,a[i]); } 5. #include &stdio.h& #define N 3 void main() { int i,j,a[N][N],sum=0; printf(&请输入%d*%d 矩阵的元素:&,N,N); for(i=0;i&N;i++) for(j=0;j&N;j++) {scanf(&%d&,&a[i][j]); if(i==j) sum+=a[i][j]; } printf(&主对角线元素之和:%d。&,sum); } 6. #include &stdio.h& #include&math.h& void main() { int i,j, n,k=0, b[300]; for (i=1;i&300;i++) {n=int(sqrt(i)); for(j=2;j&=n;j++) {if(i%j==0) } if (j&n) {b[k]=i; k++; } } for(i=0;i&k;i++) printf(&%5d&,b[i]); } 7. #include &stdio.h& #define N 7 void main() { int i,j,k,a[N], printf(&请输入%d 个整数:&,N); for(i=0;i&N;i++) scanf(&%d&,&a[i]); for(i=0;i&N-1;i++) { k=i; temp=a[i]; for(j=i+1;j&N;j++) if(temp&a[j]) {k=j; temp=a[j]; } if (k!=i) {a[k]=a[i]; a[i]= } } printf(&排序后的数列:&); for(i=0;i&N;i++) printf(&%3d&,a[i]); } 8. #include &stdio.h& void main() { int i=0,count1=0,count2=0,count3=0; char s[20]; printf(&请输入字符串:&); gets(s); while(s[i]!='\0') { if(s[i]&='a'&&s[i]&='z'||s[i]&='A'&&s[i]&='Z') count1++; else if(s[i]&='0'&&s[i]&='9') count2++; else count3++; i++; } printf(&字符%d 个,数字%d 个,其他%d 个。&,count1,count2,count3); } 9. #include &stdio.h& #include &string.h& void main() {char s[20],int i=0; printf(&请输入字符串:&); gets(s); while(s[i]!='\0') {s[i]+=3; if (s[i]&'z') s[i]-=26; i++; } printf(&加密后:&); puts(s); } 10. #include &stdio.h& #include &string.h& void main() {char s1[20],s2[20];int i=0,j=0; printf(&请输入字符串 1:&); gets(s1); printf(&请输入字符串 2:&); gets(s2); while (s1[i]!='\0') i++; s1[i]=s2[j]; do {i++; j++; s1[i]=s2[j]; } while (s2[j]!='\0'); printf(&连接后:&); puts(s1); } 11. #include &stdio.h& #include &string.h& void main() {char s1[20],s2[20],s3[40];int i=0,j=0,k=0; printf(&请输入按字母序排列的字符串 1:&); gets(s1); printf(&请输入按字母序排列的字符串 2:&); gets(s2); while(s1[i]!='\0'&&s2[j]!='\0') {if (s1[i]&s2[j]) { s3[k]=s1[i]; k++;i++; } else { s3[k]=s2[j]; k++;j++; } } while(s1[i]!='\0') { s3[k]=s1[i]; k++;i++; } while(s2[j]!='\0') { s3[k]=s2[j]; k++;j++; } s3[k]='\0'; printf(&合并后的字符串:&); puts(s3); } 12. #include &stdio.h& void main() {int i,j,a[5][5]; for(i=0;i&5;i++) for(j=4;j&=0;j--) {if(j&=i) a[i][j]=1; else a[i][j]=a[i][j+1]+1; } for(i=0;i&5;i++) { for(j=0;j&5;j++) printf(&%3d&,a[i][j]); printf(&\n&); } } 13. #include &stdio.h& void main() {int i,j,a[8][8]; for(i=0;i&8;i++) for(j=0;j&8;j++) {if(j==i||(i+j)==7) a[i][j]=1; else a[i][j]=0; } for(i=0;i&8;i++) { for(j=0;j&8;j++) printf(&%3d&,a[i][j]); printf(&\n&); } } 14. #include &stdio.h& void main() {int i,j,sum,a[5][3]={20,30,26,30,20,25,25,50,20,46,15,10,35,15,12}; for(i=0;i&5;i++) {sum=0; for(j=0;j&3;j++) sum+=a[i][j]; switch (i) {case 0:printf(&第一个&); case 1:printf(&第二个&); case 2:printf(&第三个&); case 3:printf(&第四个&); case 4:printf(&第五个&); } printf(&企业的总产值是:%d 万元。\n&,sum); } for(j=0;j&3;j++) { sum=0; for(i=0;i&5;i++) sum+=a[i][j]; switch (j) {case 0:printf(&A&); case 1:printf(&B&); case 2:printf(&C&); } printf(&产品的总产值是:%d 万元。\n&,sum); } } 15. #include &stdio.h& #define N 5 void main() {int i,j,a[N][N],b[N]; printf(&请输入%d 个数:&,N); for(i=0;i&N;i++) scanf(&%d&,&b[i]); for(i=0;i&N;i++) {for(j=i;j&N;j++) a[i][j]=b[j-i]; for(j=0;j&i;j++) a[i][j]=a[j][i]; } for(i=0;i&N;i++) {for(j=0;j&N;j++) printf(&%3d&,a[i][j]); printf(&\n&); } } 16. #include &stdio.h& void main() {int i=0,j=0,m,n,a[20],b[20]; printf(&请输入数组 a 中的数据,以 0 结束:&); scanf(&%d&,&a[i]); while(a[i]!=0) { i++; scanf(&%d&,&a[i]); } printf(&请输入数组 b 中的数据,以 0 结束:&); scanf(&%d&,&b[j]); while(b[j]!=0) {j++; scanf(&%d&,&b[j]); } for(m=0;m&i;m++) for(n=0;n&j;n++) { if(a[m]==b[n]) printf(&%3d 在 a 中下标为%d,在 b 中下标为%d。&,a[m],m,n); } } 17. #include &stdio.h& void main() {int a[20][20],b[20][20],flag1[20][20],flag2[20][20],i,j,s,t,k,l,m,n; printf(&请输入数组 a 的一维长度:&); scanf(&%d&,&k); printf(&请输入数组 a 的二维长度:&); scanf(&%d&,&l); printf(&请输入数组 a 中的数据:&); for(i=0;i&k;i++) for(j=0;j&l;j++) scanf(&%d&,&a[i][j]); for(i=0;i&k;i++) { for(j=0;j&l;j++) { printf(&%3d&,a[i][j]); flag1[i][j]=1; } printf(&\n&); } printf(&请输入数组 b 的一维长度:&); scanf(&%d&,&m); printf(&请输入数组 b 的二维长度:&); scanf(&%d&,&n); printf(&请输入数组 b 中的数据:&); for(i=0;i&m;i++) for(j=0;j&n;j++) scanf(&%d&,&b[i][j]); for(i=0;i&m;i++) { for(j=0;j&n;j++) { printf(&%3d&,b[i][j]); flag2[i][j]=1; } printf(&\n&); } for(i=0;i&k;i++) for(j=0;j&l;j++) for(s=0;s&m;s++) for(t=0;t&n;t++) if(a[i][j]==b[s][t]) {flag1[i][j]=0; flag2[s][t]=0; } printf(&只在一个数组中存在的有:&); for(i=0;i&k;i++) for(j=0;j&l;j++) if(flag1[i][j]) printf(&%3d&,a[i][j]); for(i=0;i&m;i++) for(j=0;j&n;j++) if(flag2[i][j]) printf(&%3d&,b[i][j]); } 18. #include &stdio.h& void main() {int a[101],i,j,count=0; for(i=1;i&=100;i++) a[i]=1; for(i=2;i&=100;i++) for(j=i;j&=100;j++) if(j % i ==0) a[j]*=-1; for(i=1;i&=100;i++) if(a[i]==1) { count++; printf(&第%d 张正面朝上。\n&,i); } printf(&共有%d 张正面朝上。\n&,count); } 19. #include &stdio.h& void main() {int n,i,j,k,top,bottom,left,right,goup,godown,goleft,goright,a[20][20]; i=0;j=0;goright=1;goup=0;godown=0;goleft=0; printf(&请输入方阵的维数:&); scanf(&%d&,&n); top=-1;bottom=n;left=-1;right=n; for(k=1;k&=n*n;k++) { a[i][j]=k; if(goright) { if(j&right-1) j++; else {goright=0; godown=1; top++; i++; } } if(godown) { if(i&bottom-1) i++; else {godown=0; goleft=1; right--; j--; } } if(goleft) { if(j&left+1) j--; else {goleft=0; goup=1; bottom--; i--; } } if(goup) { if(i&top+1) i--; else {goup=0; goright=1; left++; j++; } } 第 8 章指针 三、编程题 1. #include &stdio.h& #define N 10 void main() { int i_val[N]; 课后习题参考答案 int *p; int i,j,val,k; for (i = 0 ; i & N ; i++) scanf(&%d&,i_val+i); p = &i_val[0]; printf(&排序前结果如下:\n&); for(i = 0 ; i & N; i++) printf(&%d\n&,*(p+i)); printf(&\n&); for( i = 0 ; i & N-1; i++) { k=i; for(j = i+1 ; j & N ; j++) if (p[j] & p[k]) k=j; if (k!=i) { val=p[i]; p[i]=p[k]; p[k]= } } printf(&排序后结果如下\n&); for(i = 0 ; i & N; i++) printf(&%d\n&,*(p+i)); printf(&\n&); } 2. #include &stdio.h& #define N 3 void main() { int i_val[N][N]={11,12,13,21,22,23,31,32,33}; int *p; int nSum=0; p = i_val[0]; printf(&求对角线元素之和&); for( i = 0 ; i & N; i++) { nSum += p[i*N+i]; nSum += p[(N-i-1)*N+i]; } if(N%2) nSum-=p[N/2*N+N/2]; printf(&结果如下:\n&); printf(&%d\n&,nSum); } 3. #include &stdio.h& #define N 5 void f(int val[] ,int size) { int min_index=0,max_index= 0; int i =0; for (i = 1 ; i & i ++) { if(val[i]&val[min_index]) min_index = if(val[i]&val[max_index]) max_index = } v = val[max_index]; val[max_index] = val[size-1]; val[size-1]= v = val[min_index]; val[min_index] = val[0]; val[0]= } void main() { int val[N]={91, 55 ,11, 44 , 33}; printf(&执行函数f之前\n&); for(i = 0 ; i & N; i++) printf(&%d\n&,*(val+i)); f(val,N); printf(&执行函数f之后\n&); for(i = 0 ; i & N; i++) printf(&%d\n&,*(val+i)); printf(&\n&); } 4. #include &stdio.h& #include &string.h& #define N 5 void strcpy2(char * src ,char *dest) { int i = 0; int len = strlen(src); for(i = 0 ; i & i++) { dest[i]= src[i]; dest[len+i]= src[i]; } dest[2*len]=0; } void main() { char a[1024],b[1024]; scanf(&%s&,a); strcpy2(a,b); printf(&%s\n&,b); }5. #include &stdio.h& #include &string.h& #define N 5 int ishuiwen(char * str) { int i = 0; int len = strlen(str); for(i = 0 ; i & len /2 ; i++) { if(str[i]!= str[len -1 -i] ) return 0; } return 1; } void main() { char a[100]; scanf(&%s&,a); if(ishuiwen(a)) printf(&yes\n&); else printf(&no\n&); printf(&\n&); } 第 9 章 习题答案 三、编程题 1.题目功能由函数 fun 实现,代码如下: struct stu //结构体定义 { struct stu * }; void fun(struct stu *head, struct stu *p0) { struct stu *p0, *p1, *p2; p1=head-& p2= while((p0-&score&p1-&score)&&(p1!=NULL)) {p2=p1; p1=p1-&} p0-&next=p2-& p2-&next=p0; } 2.题目功能由函数 fun 实现,源程序代码如下: #include &stdio.h& #define N 16 typedef struct { char num[10]; } STREC; int fun( STREC *p,STREC *q,int l, int h ) { int i,j=0; for(i=0;i&N;i++) //循环判断 if(p[i].s&=l&&p[i].s&=h) { q[j]=p[i]; j++; }//查找插入点 } main() { STREC s[N]={{&GA005&,85},{&GA003&,76},{&GA002&,69},{&GA004&,85}, {&GA001&,96},{&GA007&,72},{&GA008&,64},{&GA006&,87}, {&GA015&,85},{&GA013&,94},{&GA012&,64},{&GA014&,91}, {&GA011&,90},{&GA017&,64},{&GA018&,64},{&GA016&,72}}; STREC h[N],FILE * int i,j,n,low,heigh,t; printf(&Enter 2 integer number low & heigh : &); scanf(&%d%d&, &low,&heigh); if ( heigh& low ){ t=heigh=low=t; } n=fun( s,h,low,heigh ); printf(&The student's data between %d--%d :\n&,low,heigh); for(i=0;i&n; i++) printf(&%s %4d\n&,h[i].num,h[i].s); printf(&\n&); out = fopen(&K:\\k20\\\\out.dat&,&w&) ; n=fun( s,h,80,98 ); fprintf(out,&%d\n&,n); for(i=0;i&n-1;i++) for(j=i+1;j&n;j++) if(h[i].s&h[j].s) {tt=h[i] ;h[i]=h[j]; h[j]=} for(i=0;i&n; i++) fprintf(out,&%4d\n&,h[i].s); fprintf(out,&\n&); fclose(out); } 3.题目功能由函数 fun 实现,源程序代码如下: #include &stdio.h& #define N 8 typedef struct { char num[10]; double s[N]; } STREC; void fun(STREC *p) { double t=0.0; //初始化平均值 for(i=0;i&N;i++) t+=p-&s[i]; //求得总分 t/=N; //根据人数,求平均分 p-&ave=t;//将平均分赋值到记录ave成员中 } main() {STREC s={&GA005&,85.5,76,69.5,85,91,72,64.5,87.5}; void NONO ( ); fun( &s ); printf(&The %s's student data:\n&, s.num); for(i=0;i&N; i++) printf(&%4.1f\n&,s.s[i]); printf(&\nave=%7.3f\n&,s.ave); NONO();} void NONO() {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE * int i, STREC s[10] = { {&GA005&,85.5,76,69.5,85,91,72,64.5,87.5}, {&GA001&,82.5,66,76.5,76,89,76,46.5,78.5}, {&GA002&,72.5,56,66.5,66,79,68,46.5,58.5}, {&GA003&,92.5,76,86.5,86,99,86,56.5,88.5}, {&GA004&,82,66.5,46.5,56,76,75,76.5,63.5}, {&GA006&,75.5,74,71.5,85,81,79,64.5,71.5}, {&GA007&,92.5,61,72.5,84,79,75,66.5,72.5}, {&GA008&,72.5,86,73.5,80,69,63,76.5,53.5}, {&GA009&,66.5,71,74.5,70,61,82,86.5,58.5}, {&GA010&,76,66.5,75.5,60,76,71,96.5,93.5}, }; out = fopen(&K:\\k19\\\\out.dat&,&w&) ; for(i = 0 ; i & 10 ; i++) { fun(&s[i]) ; fprintf(out, &%7.3f\n&, s[i].ave) ; } fclose(out) ; } 4.题目功能由函数 fun 实现,源程序代码如下: #include &stdio.h& #include &string.h& #define N 16 typedef struct { char num[10]; } STREC; STREC fun( STREC *p, char *q ) { STREC for(i=0;i&N;i++) if(strcmp(p[i].num,q)==0) { t=p[i];} else {strcpy(t.num,&&); t.s=-1; } } main() { STREC s[N]={{&GA005&,85},{&GA003&,76},{&GA002&,69},{&GA004&,85}, {&GA001&,91},{&GA007&,72},{&GA008&,64},{&GA006&,87}, {&GA015&,85},{&GA013&,91},{&GA012&,64},{&GA014&,91}, {&GA011&,77},{&GA017&,64},{&GA018&,64},{&GA016&,72}}; STREC char m[10];FILE * printf(&The original data:\n&); for(i=0; i&N; i++) { if(i%4==0) printf(&\n&); printf(&%s %3d &,s[i].num,s[i].s); } printf(&\n\nEnter the number: &);gets(m); h=fun( s,m ); printf(&The data : &); printf(&\n%s %4d\n&,h.num,h.s); printf(&\n&); out = fopen(&K:\\k20\\\\out.dat&,&w&) ; h=fun(s,&GA013&); fprintf(out,&%s %4d\n&,h.num,h.s); fclose(out); } 5.题目功能由函数 fun 实现,代码如下: struct stu { struct stu * }; struct stu *fun(struct stu *a, struct stu *b) { struct stu *pa,*pb,* pa=a-& pb=b-& pc=a; while(pa!=null && pb!=null) if(pa-&data&=pb-&data) { pc-&next= pc= pa=pa-& //结构体定义 } else { pc-&next= pc= pb=pb-& } pc=pa?pa: } 第 10 章 习题答案 三、编程题 1. #include &stdio.h& #define S(x,y) x%y void main() { int t,a,b; printf(&input two numbers:\n &); scanf(&%d,%d&,&a,&b); t=S(a,b); printf(&%d\n&,t); } 2. #include &stdio.h& #define PR printf #define NL &\n& #define F &%5.3f& #define F1 F NL #define F2 F F NL void main() { float a,b; a=12.56; b=45.145; PR(F1,a); PR(F2,b); } 3. #include&stdio.h& #define MAX(a,b,c)(a&b?(a&c?a:c):(b&c?b:c)) int MAX1(int a,int b,int c) { if(a&b) max=a; else max=b; if(c&max) max=c; return (max); } void main() {int a,b,c,s,t; scanf(&%d,%d,%d&,&a,&b,&c); s=MAX(a,b,c); t=MAX1(a,b,c); printf(&%d,%d&,s,t);} 4. #define LETTER 1 main() { char str[20]=&C Language&,c; int i=0; while((c=str[i])!=’\0′) { i++; #if LETTER if(c&=’a'&&c&=’z') c=c-32; #else if(c&=’A'&&c&=’Z') c=c+32; #endif printf(&%c&,c); } } 三、编程题 1. #include&stdio.h& #include&stdlib.h& void main() { FILE * char ch,str[10][20]; int i,j; if((fp=fopen(&file1.txt&,&w&))==NULL) { printf(&open error\n&); exit(0); } printf(&Enter 10 string:\n&); for(i=0;i&10;i++) { while((ch= getchar( ) )!= '\n') fputc(ch ,fp); fputc(ch ,fp); } fclose( fp ); if((fp=fopen(&file1.txt&,&r&))==NULL) { printf(&open error\n&); exit(0); } for(i=0;i&10;i++) { j=0; while((ch= fgetc(fp))!= '\n') str[i][j++]= str[i][j]='\0'; puts(str[i]); } fclose( fp ); } 2. #include&stdio.h& #include&stdlib.h& void main() { FILE * int i,j; if((fp=fopen(&file2.txt&,&wb&))==NULL) { printf(&open error\n&); exit(0); } printf(&Enter 10 float:\n&); for(i=0;i&10;i++) { scanf(&%f&,&x); fprintf(fp,&%f &,x); /* 注意%f 后要加一空格,以隔开每个数据*/ } fclose( fp ); if((fp=fopen(&file2.txt&,&rb&))==NULL) { printf(&open error\n&); exit(0); } for(i=0;i&10;i++) { fscanf(fp,&%f&,&x); printf(&%f\n&,x); } fclose( fp ); }
c语言教程课后编程题答案[1]―汇集和整理大量word文档,专业文献,应用文书,考试资料,教学教材,办公文档,教程攻略,文档搜索下载下载,拥有海量中文文档库,关注高价值的实用信息,我们一直在努力,争取提供更多下载资源。

我要回帖

更多关于 c语言 bool 头文件 的文章

 

随机推荐