收藏 分销(赏)

实验书第二部分同步习题集答案.doc

上传人:pc****0 文档编号:7777005 上传时间:2025-01-16 格式:DOC 页数:19 大小:67KB 下载积分:10 金币
下载 相关 举报
实验书第二部分同步习题集答案.doc_第1页
第1页 / 共19页
实验书第二部分同步习题集答案.doc_第2页
第2页 / 共19页


点击查看更多>>
资源描述
P115 第7章 数组参考答案 四、编程题 1. 参考程序: #include<stdio.h> main() { float a[30],sum=0,ave; int n=0,i,k=0; printf("please input score:"); for(i=0;i<30;i++) { scanf("%f",&a[i]); if(a[i]<0) break; n++; } for(i=0;i<n;i++) sum=sum+a[i]; ave=sum/n; printf("pinjunfenwei:%f\n",ave); for(i=0;i<n;i++) if(a[i]>ave) k++; printf("renshuwei:%d\n",k); } 2.数组逆序排列参考程序: #include <stdio.h> #define N 10 main( ) { int a[N], temp, i; for (i = 0 ; i < N; i++) { printf(“Please input NO %d:”, i+1); scanf(“%d”, &a[i]); } for (i = 0 ; i <= N/2 -1; i++) { temp = a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; } for (i = 0 ; i < N; i++) printf(“%3d”, a[i]); } 3.打印杨辉三角前十行参考程序: #include <stdio.h> #define N 10 main( ) { int a[N][N]; int i, j; for (i = 0 ; i < N; i++) { a[i][i] = 1; a[i][0] = 1; } for (i = 1 ; i < N; i++) for (j = 1 ; j <= i; j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for (i = 0 ; i < N; i++) { for (j = 0 ; j <= i; j++) printf("%5d", a[i][j]); printf("\n"); } } P123 第8章 函数参考答案 四、编程题 1. 参考程序:判断素数 #include<stdio.h> int prime(int x) { int i; int flag=1; for(i=2;i<x;i++) if (x%i ==0) { flag=0; break; } return(flag); } main() { int x, y; printf(“Please input x:”); scanf(“%d”, &x); y=prime(x); if (y==1) printf("%d is prime!", x); else printf("%d is not prime!", x); } 2、将数字字符转换成整数: #include <stdio.h> long fun(char str[]); main() { char datastring[10]; long data; printf("Please input data string:"); scanf("%s", datastring); data=fun(datastring); printf("output number:"); printf("%ld\n", data); } long fun(char str[]) { int i; long data; data=0; for(i=0;str[i]!='\0';i++) data=data*10+(str[i]-'0'); return data; } P140 第九章 编译预处理参考答案 P142 第十章 指针参考答案 四、编程题 1. void swap(int *p1,int *p2) {int temp; temp=*p1; *p1=*p2; *p2=temp; } main() int a,b,*p1=&a,*p2=&b; sacnf(“%d%d”,p1,p2); swap(p1,p2) printf(“%d,%d”,a,b); } 2.main() {float he(float ,float); float cha(float ,float); float ji(float ,float); float shang(float ,float); void process(float ,float ,float ( *fun)(float ,float)); float a,b; scanf(“%f,%f”,&a,&b); printf(“he=”); process(a,b,he); printf(“cha=”); process(a,b,cha); printf(“ji=”); process(a,b,ji); printf(“shang=”); process(a,b,shang); } float he(float x,float y) {return (x+y);} float cha(float x,float y) {return (x-y);} float ji(float x,float y) {return (x*y);} float shang(float x,float y) {return (x/y);} void process(float x,float y,float (*fun)(float ,float)) {float result; result=(*fun)(x,y); printf(“%f\n”,result); } 3. int fun(char *p) {char *f; f=p; while(*p!='\0') p++; return p-f; } main() {char s[100],*p; scanf("%s",s); p=s; printf("%d\n",fun(p)); } P153 第11章 结构体与共用体参考答案 四、编程题 1. 参考程序: #include <stdio.h> #define N 5 struct student { long num; char name[20]; float score[3]; }; void input(struct student w[], int n); void output(struct student w[], int n); main() { struct student st[N]; int n; printf("Please input the number of worker(<10):"); scanf("%d", &n); input(st, n); output(st, n); } void input(struct student w[], int n) { int i, j; float temp; for(i=0;i<n;i++) { printf("Please input NO %d\n", i+1); printf("Num:"); scanf("%ld",&w[i].num); getchar(); printf("name:"); gets(w[i].name); for (j=0; j < 3; j++) { printf(“Score[%d]=”, j); scanf("%f",& temp ); w[i].score[j] = temp; } } } void output(struct student w[], int n) { int i, j; for(i=0;i<n;i++) { printf("\nOutput NO %d\n",i+1); printf("Num:"); printf("%ld",w[i].num); printf("\nname:"); puts(w[i].name); printf("score:"); for (j=0; j < 3; j++) printf("%g ", w[i].score[j]); } } P164 第13章 文件参考答案 三、编程题 1. 参考程序:字符串打印 #include <stdio.h> main() { FILE *fp; char str[255]; int i ; if ((fp=fopen(“d:\\test.txt”,”r”))==NULL) { printf(“Open error!”); exit(0); } for (i=1;i<=7;i++) { fgets(str,255,fp); printf(“%s”, str); } fclose(fp); } 2、参考程序: #include <stdio.h> main(int argc , char *argv[]) { FILE *fp1,*fp2; if(argc!=3) { printf("you forgot to enter a filename\n"); exit(0); } if ((fp1=fopen(argv[1],”r”))==NULL) { printf(“Open argument1 file error!”); exit(0); } if ((fp2=fopen(argv[2],”a”))==NULL) { printf(“Open argument2 file error!”); exit(0); } while (!feof(fp1)) fputc(fgetc(fp1),fp2); fclose(fp1); fclose(fp2); } 3、将指定的文本文件中的小写字母改为大写字母。 #include <stdio.h> main() { FILE *fp; char filename[81]; char ch; long pos; printf("Please input filename:"); gets(filename); if ((fp=fopen(filename,"r+"))==NULL) { printf("Open error!"); exit(0); } pos=0; while (!feof(fp)) { fseek(fp,pos,0); ch=fgetc(fp); if (ch>='a' && ch<='z') { ch = ch -32; fseek(fp,pos,0); fputc(ch,fp); } pos++; } fclose(fp); } 4、将100~200之间的素数保存到A盘根目录的“test.txt”文本文件中。(每行存5个数,每个数占10列) include <stdio.h> main() { FILE *fp; char str[255]; int i, j, count; ; if ((fp=fopen("a:\\test.txt","w"))==NULL) { printf("Open error!"); exit(0); } count = 0; for ( i = 100;i<=200; i++) { for(j = 2; j <= i-1; j++) if (i % j == 0) break; if (j == i ) { count++; fprintf(fp,"%10d", i); if (count % 5 ==0 ) fprintf(fp,"%c", '\n'); } } fclose(fp); } 5、将平均成绩不及格的学生数据保存到A盘的根目录的文件“stud.dat”中。 #include <stdio.h> #define N 50 struct student { 0 long num; char name[20]; float score[3]; float average; }; void input(struct student w[], int n); void save(struct student w[], int n); main() { struct student st[N]; int n; printf("Please input the number of worker(<10):"); scanf("%d", &n); input(st, n); save(st, n); } void input(struct student w[], int n) { int i, j; float temp; for(i=0;i<n;i++) { printf("Please input NO %d\n", i+1); printf("Num:"); scanf("%ld",&w[i].num); getchar(); printf("name:"); gets(w[i].name); w[i].average = 0; for (j=0; j < 3; j++) { printf("Score[%d]=", j); scanf("%f",& temp ); w[i].score[j] = temp; w[i].average= w[i].average+ w[i].score[j]; } w[i].average = w[i].average / 3.0; } } void save(struct student w[], int n) { FILE *fp; int i; if ((fp=fopen("a:\\stud.dat","wb"))==NULL) { printf("Open error!"); exit(0); } for(i=0;i<n;i++) { if (w[i].average < 60) fwrite(&w[i],sizeof(struct student),1,fp); } fclose(fp); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服