1、程序设计基础课程设计实验报告第1_1题算法描述:比较两个文本文件并打印出它们第一个不相同的行(文件每行字符数不多于80)。源程序:No1_1.c#include#include#includeint main()FILE*fp1=NULL;FILE*fp2=NULL;char str1100,str2100;fp1=fopen(a.txt,r);fp2=fopen(b.txt,r);while(!feof(fp1)&!feof(fp2)fgets(str1,100,fp1); fgets(str2,100,fp2); if(strlen(str1)!=strlen(str2) printf(a
2、snb:%sn,str1,str2); break; else if(strcmp(str1,str2)!=0) printf(a:%snb:%sn,str1,str2); break; fclose(fp1); fclose(fp2); return 0;测试数据:输入:a,b文本文件 输出:如图第2_2题算法描述: 统计一个英文文本文件中26个英文字母出现次数并按英文字母序输出统计结果,查找并替换此英文文本文件中某字符串。源程序:No2_2.c#include#include#include#includeint main() FILE *fp,*np;int n,i;int j =
3、0;char c,str1000,a1000,b1000,A26;if(fp = fopen(1.txt,r) = NULL)printf(wrongn);exit(0);if(np = fopen(2.txt,w) = NULL) printf(wrongn);exit(0); for(i = 0; i 26; i +)Ai = 0;while(!feof(fp) if(isalpha(c = fgetc(fp) c = tolower(c); Ac-a +; printf(各字母个数:n);for(i = 0; i 26; i +)printf(%c-%d ,a + i,Ai);print
4、f(nn请输入要查找的字符串:);rewind(fp);gets(a);printf(n请输入要将其替换为:);gets(b);n = strlen(a);while(!feof(fp)fseek(fp,j,0); j +; fgets(str,n+1,fp); if(strcmp(str,a) = 0) strcpy(str,b); fputs(str,np); j = j - 1 + n; elsefputc(str0,np);printf(n请到2.txt文件查看n);fclose(fp);fclose(np);return 0;测试数据:输入:Hello 输出:world第3_1题算法
5、描述:将输入的2进制字符串转换为10进制数输出。源程序:No3_1.c#include#includeint main()char a100;gets(a);int n,i,sum=0,m=1;n=strlen(a);for(i=0;in;i+)sum=sum+(an-i-1-0)*m;m*=2;printf(%dn,sum);return 0;测试数据:输入:123 输出:11第5_1题算法描述:程序自动生成一个位于99内的随机数,要求用户猜这个数。用户输入一个数后,程序有三种应答:too big,too small,you win。源程序:No5_1.c#include#include#i
6、ncludeint main()int a,i,b;srand(time(NULL);a=rand()%100;for(i=0;ia)printf(too bign);if(ba)printf(too smalln);return 0;测试数据:输入:20 25 30 35 40 80 输出:too small too small too small too small too small too big第5_2题算法描述:产生一组随机数,要求每个数字不能重复。源程序:No5_2.c#include#include#includeint main()int *a,n,i,j;scanf(%d,
7、n);a = (int *)calloc(n,sizeof(int);srand(time(NULL);for(i=0;in;i+)loop:ai=rand()%n+1;for(j=0;ji;j+)if(ai = aj)goto loop;printf(%d ,ai);free(a);return 0;测试数据:输入:8 输出:6 2 1 5 3 4 第5_3题算法描述:已知2000年1月1日为星期六,输入任一年的年份后,打印该年的年历。源程序:No5_3.c#includeint main()int i,j,k,year,result;int day = 31,28,31,30,31,30
8、31,31,30,31,30,31;char month1210 = 一月n,二月n,三月n,四月n,五月n,六月n,七月n,八月n,九月n,十月n,十一月n,十二月n;scanf(%d,&year);if(year%4 = 0 & year%100 != 0) | (year%400 = 0)day1+;result = (35 + year + year/4 - year/100 + year/400)%7;for(i = 0; i 12; i+)printf(n%sn,monthi);printf( 日 一 二 三 四 五 六n);for(k = 0; k result; k+)printf( );for(j = 1; j = 7)printf(n);result %= 7;printf(n); 测试数据:输入:2015 输出:如图课程设计小结1. 算法是程序的灵魂,好的算法让程序更加简洁。2. 要想完成复杂的程序,必须要有扎实的基础和充分的耐心。