




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 程序设计基础课程设计实验报告班级:1403011姓名:陈玉洪学号选题目: 1_1, 1_3 , 1_4, 2_1, 2_3, 3_1, 3_3 , 4_1 , 5_1 .第1_1题算法描述:设计一个复数类型,输入实部和虚部生成一个复数,可进行两个复数求和、求差、求积运算。源程序:no1_1.c#include<stdio.h>int main() float a1,a2,b1,b2,a,b; char c1; scanf("%f+%fi",&a1,&b1);while(1) c1=getchar() if(c1=
2、9;n')break; scanf("%f+%fi",&a2,&b2); if(c1='+')a=a1+a2; b=b1+b2; if(c1='-')a=a1-a2; b=b1-b2; if(c1='*')a=a1*a2-b1*b2;b=a1*b2+a2*b1; a1=a;b1=b;printf("%f+%fi",a,b);return 0; 测试数据: 第1_3题算法描述:假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,实际的长整数m表示为:m=ak×
3、;10k-1+ak-1×10k-2+.+a2×101+a1×100其中a0保存该长整数的位数。实现长整数除普通整数。源程序:no1_1.c#include<stdio.h>#include<ctype.h> int count(int x)int i;for(i=0;x>0;x/=10)i+;return i; int main()int n,mun,t,x,i,j,a100,b100;char c; printf("m = "); for(i=1;(c=getchar()!='n'i+) ai=c
4、-'0' i-; a0=i; for(j=1;j<=a0/2;j+,i-) t=aj; aj=ai; ai=t; printf("n = "); scanf("%d",&n); x=count(n); for(mun=0,j=a0;j>a0-x;j-) mun*=10; mun+=aj; if(mun/n!=0) b0=a0-x+1; for(i=b0;i>=1;i-) bi=mun/n; mun%=n; mun=mun*10+ai-1; else b0=a0-x; mun=mun*10+aa0-x; for(i
5、=b0;i>=1;i-) bi=mun/n; mun=mun%n; mun=mun*10+ai-1; printf("m/n = "); for(i=b0;i>0;i-) printf("%d*10%d",bi,i-1); if(i>1) printf("+"); putchar('n'); return 0; 测试数据: 第1_4题算法描述:根据输入的数字N,计算N以内(包括N)数据链并统计数据链末尾数字是1的数据个数。例如N=44,则数字链为:44->32->13->10->
6、;1,其规则为:4*4+4*4=32,3*3+2*2=13,1*1+3*3=10,1*1+0*0=1。源程序:no1_4.c#include<stdio.h>int fenjie(int x)int t,num=0;for(t=0;x>0;x/=10)t=x%10;num+=t*t;return num;int main()int j,x, i,m,count=0;for(j=0;j<5;j+) scanf("%d",&x); if(x>=10) break; else printf("error! input againn&
7、quot;);if(j=5) printf("too much error end!n");if(j<5) for(i=x;i>=10;i-)m=i;for(;m>=10;) m=fenjie(m);if(m=1)count+; printf("%d",count);return 0;测试数据:第2_1题算法描述:用文件保存一段英文文本。(1) 统计各字母在文本中出现的次数(区分大小写),并按英文字母序输出统计结果。(2) 查找并替换文本中的某字符串,将替换后的文本存入另一个文源程序:no2_1.c#include<stdio.h
8、> #include<string.h>int main() FILE *fp,*fq,*fw;int i, j=0,a1000=0;char c,b100100='0',e100='0',d100='0'fq=fopen("put.txt","w");fp=fopen("get.txt","r");fw=fopen("get.txt","r");if(fp=NULL|fw=NULL) printf("
9、;cann't open it "); else for(;(c=fgetc(fp)!=EOF;) ac+; for(i='A'i<='z'i+) if(ai!=0) printf("%c : %dn",i,ai); scanf("%s",e); scanf("%s",d); for(i=0;i+) for(j=0;j+) bij=fgetc(fw); if(bij=' '|bij='n'|bij=EOF) break; if(bij=EOF) b
10、reak; bij='0' if(strcmp(bi,e)=0) fprintf(fq,"%s ",d); else fprintf(fq,"%s ",bi); fclose(fp); fclose(fq); fclose(fw); return 0; 测试数据:第2_3题算法描述:现有两个文本文件file1.txt和file2.txt。file1中第一列为姓名,第二列为英语成绩;file2中第一列为姓名,第二列为数学成绩。通过程序关联file2中与file1对应的姓名生成file3.txt文件。file3.txt文件第一列为姓名,第二列
11、为英语成绩,第三列为数学成绩,第四列为平均成绩。 file1.txt file2.txt file3.txtBob 90David 80George 84Jack 64 Jim 95George 74David 82Paul 70Jack 70Bob 86 Bob 90 86 88David 80 82 81George 84 74 79Jack 64 70 67源程序:no2_3.c#include<stdio.h>#include<string.h>int main() struct chji char name20; int x; ; struct zongchj
12、i char name20; int y,z,t; ;chji f1='0',0,f2='0',0;zongchji f3='0',0,0,; int n=0,m=0,t,min; FILE *fp, *fq,*fw; fp=fopen("file1.txt","r"); fw=fopen("file3.txt","a"); if(fp=NULL|fw=NULL) printf("cann't open itn"); for(;fscanf
13、(fp,"%d",&f1.x)!=EOF;) fscanf(fp,"%s",); fscanf(fp,"%d",&f1.x); fq=fopen("file2.txt","r"); if(fq=NULL) printf("cann't open itn"); for(;fscanf(fq,"%d",&f2.x)!=EOF;) fscanf(fq,"%s",); fscanf(f
14、q,"%d",&f2.x); if(strcmp(, )=0) f3.t=(f1.x+f2.x)/2; f3.y=f1.x; f3.z=f2.x; strcpy(,); fprintf(fw,"%s %d %d %dn",,f3.y,f3.z,f3.t); fclose(fq); fclose(fp);fclose(fw);return 0;测试数据:第3_1题算法描述:用字符数组保存一个英文句子。(1) 删除该英文句子的前导空格、后导空格、句中多余空格(单词之间只留一个空格)
15、。(2) 统计句中某单词出现的次数。(3) 查找并替换某单词。源程序: no3_1.c#include<stdio.h>#include<string.h>void move(char a)int i,j;for(i=0;ai!='0'i+)ai=ai+1;int main()char line1000='0',word100100='0',c,mun250='0',change50='0'int i,j,n,count=0,find=1;for(i=0;(c=getchar()!='
16、;n'i+)linei=c; linei='0'for(;line0!=' ') if(line0=' ')move(line); while(find) find=0; for(i=1;linei!='0'i+)if(linei=' ')if(linei-1=' ')j=i; for(;linej!='0'j+) linej=linej+1; find=1; if(linei='0')if(linei-1=' ' ) linei-1='
17、;0'printf("you want count word:n");scanf("%s",mun0); i=0;for(j=0;linei!='0'j+) for(n=0;linei!=' 'i+,n+) wordjn=linei; i+; for(i=0;i<j;i+) if(strcmp(mun0,wordi)=0) count+; printf("%s: %dn",mun0,count);printf("you want to change:n");scanf(
18、"%s",change); printf("to: "); scanf("%s",mun1);for(i=0;i<j-1;i+)if(strcmp(change,wordi)=0)printf("%s ",mun1);else printf("%s ",wordi);return 0; 数据测试第3_3题算法描述:文本文件num1.txt和num2.txt中各有一组用空格分隔的整数,将num1.txt和num2.txt联合排序,并将结果保存在num3.txt中。num1.txt: 20 1
19、5 25 0 3 100 120 6 14num2.txt: 125 63 1233 2 10 17 133 99 1 num3.txt 0 1 2 3 6 10 14 15 17 20 25 63 99 100 120 125 133 1233 源程序: no3_3.c#include<stdio.h>int main() FILE *fp,*fq,*fw; int a100=0,b100=0,i,n,j,t,find=1;fp=fopen("num1.txt","r"); fq=fopen("num2.txt",&qu
20、ot;r"); fw=fopen("num3.txt","w"); if(fp=NULL|fq=NULL|fw=NULL) printf("cann't open it"); for(i=0;(fscanf(fp,"%d",&ai)!=EOF;i+); for(;(fscanf(fq,"%d",&ai)!=EOF;i+); n=i; while(find) find=0; for(i=0;i<n-1;i+) if(ai>ai+1) find=1; t
21、=ai; ai=ai+1; ai+1=t; for(j=0;j<n;j+) fprintf(fw,"%d ",aj); fclose(fp); fclose(fq); fclose(fw); return 0; 测试数据: 第4_1题算法描述:通讯录管理软件。通讯者信息包括:姓名、性别、手机、Email、地址。软件功能:添加、查询、删除、全部输出。 源程序no4_1.c#include<stdio.h>#include<string.h>int main() int i,j,n,m,mun,t; char nam20='0',l
22、ine200100='0',mn20='0' FILE *fp,*fp1,*fm; fp=fopen("tong.txt","r"); fm=fopen("tong1.txt","a"); if(fp=NULL|fp1=NULL|fm=NULL) printf("cann't open itn"); else printf("add:1, delete:2, find:3, output:4 esc:0n"); for(i=0;fsca
23、nf(fp,"%s",linei)!=EOF;i+) ; mun=i;for(;) scanf("%d",&m); if(m=1) printf("name xingbei phonen"); scanf("%s %s %s",&linemun,&linemun+1,&linemun+2); printf("email: "); scanf("%s",&linemun+3);printf("dress: "); sc
24、anf("%s",&linemun+4); mun+=5; if(m=2) printf("delete name: "); scanf("%s",&nam); for(j=0;j<mun;j+) if(strcmp(linej,nam)=0) for(t=0;t<5;t+) strcpy(linet+j,mn); if(m=3) n=10; printf("who do you find ?n"); printf("name: "); scanf("%s&
25、quot;,&nam); for(i=0;i<mun;i+) if(strcmp(linei,nam)=0) n=5; if(n<=5&&n>0) printf("%s ",linei); n-; if(n=0) break; if(n=10) printf("no findn"); if(m=4) printf("output:n"); for(i=0;i<mun;i+) if(strcmp(linei,mn)!=0) printf("%s ",linei); if
26、(i+1)%5=0) putchar('n'); if(m=0) break; for(i=0;i<mun;i+) if(strcmp(linei,mn)!=0) fprintf(fm,"%s ",linei); if(i+1)%5=0) fprintf(fm,"n"); fclose(fp); fclose(fm); return 0; 测试数据:第5_1题算法描述:程序自动生成一个位于9001000内的随机数,要求用户猜这个数。用户输入一个数后,程序有三种应答:too big,too small,you win源程序:no5_1.c#include<stdio.h>#include<stdlib.h>int main()int c,i=0,j,n,t,num,a100=0;printf("please input a start numbe : n"); scanf("%d",&t);srand(t);for(i=0;i<5;)c=rand();if(c>900 && c<1000)ai=c; i+;printf("input a number : 0 to 4&q
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机器设备租赁合同
- 酒店宴会厅租赁协议
- 2025年度金融公司合同保密协议模板
- 山西同文职业技术学院《医学信息收集与信息处理》2023-2024学年第一学期期末试卷
- 邵阳工业职业技术学院《电路原理B》2023-2024学年第二学期期末试卷
- 物流司机雇佣合同
- 吉林省长春市“BEST合作体”2025届高三第九次适应性考试英语试题含解析
- 佳木斯市东风区2024-2025学年五年级数学第二学期期末统考试题含答案
- 山东体育学院《网络文学》2023-2024学年第二学期期末试卷
- 四川省自贡市富顺县2024-2025学年第二学期初三年级一模考试数学试题试卷含解析
- 2025抖音财经内容生态报告
- 大数据时代的管理变革
- 中央空调年度维保计划及方案
- 叉车挂靠公司合同范本
- 2023-2024学年天津市中小学生mixly创意编程 第4课 聪明的按键-教学设计
- 团队领导力与冲突管理技能
- 2025年四川绵阳新投集团含所属公司招聘笔试参考题库含答案解析
- SA8000社会责任法律法规清单一览表
- 化学-辽宁省协作体2024-2025学年度高三上学期期末考试试题试题和答案
- 2025年文化产业投资入股保密协议模板3篇
- 《公司财务决算报表》课件
评论
0/150
提交评论