1、程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。*/ math.hint m,i,k,h=0,leap=1; for(m=101;m=200;m+) k=sqrt(m+1); for(i=2;=k; if(m%i=0) leap=0;break; if(leap) /*内循环结束后,leap依然为1,则m是素数*/ printf(%-4d,m);h+; if(h%10=0) leap=1;nThe total is %d,h);4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=123.编程 找出1000以内的
2、所有完数。static int k10; int i,j,n,s; for(j=2;1000; n=-1; s=j; for(i=1;j; if(j%i)=0) n+; s=s-i; kn=i; if(s=0)%d is a wanshu: ,j); for(i=0;n;%d,ki);%dn,kn);5、/*下面程序的功能是将一个44的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,请在空白处完善程序。 int a44,b44,i,j; /*a存放原始数组数据,b存放旋转后数组数据*/input 16 numbers:/*输入一组数据存放到数组a中,然后
3、旋转存放到b数组中*/4; for(j=0; scanf(%d,&aij); b3-ji=aij;array b: for(j=0;%6d,bij);6、/*编程打印直角杨辉三角形*/int i,j,a66;=5; aii=1;ai0=1; for(j=1;=i-1; aij=ai-1j+ai-1j-1; for(j=0;=i;%4d,aij);7、/*通过键盘输入3名学生4门课程的成绩,分别求每个学生的平均成绩和每门课程的平均成绩。要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车 其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。
4、#include stdlib.h float a45,sum1,sum2; int i,j;3; scanf(%f sum1=0; sum1+=aij; ai4=sum1/4;5; sum2=0; sum2+=aij; a3j=sum2/3;%6.2f8、/*完善程序,实现将输入的字符串反序输出,如输入windows 输出swodniw。string.h char c200,c1; int i,j,k;Enter a string:%s,c); k=strlen(c); for (i=0,j=k-1;k/2;i+,j-) c1=ci;ci=cj;cj=c1;%sn 指针法:void inve
5、rt(char *s)int i,j,k; char t; k=strlen(s); for(i=0,j=k-1; t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; FILE *fp;char str200,*p,i,j;if(fp=fopen(p9_2.out,w)=NULL) printf(cannot open the filen exit(0);input str:gets(str); printf(“n%s”,str);fprintf(fp,“%s”,str);invert(str);fprintf(fp,“n%s”,str); fclose(fp);9、/*下面
6、程序的功能是从字符数组s中删除存放在c中的字符。 char s80,c; int j,k;nEnter a string: gets(s);nEnter a character: c=getchar( ); for(j=k=0;sj!= 0; if(sj!=c) sk+=sj; sk= n%s,s);10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小 排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/#includexk) k=j; if(k!=i) t=xi; xi=xk; xk=t;void main()FI
7、LE *fp; int *p,i,a10; fp=fopen(p9_1.out p=a;printf(Input 10 numbers:,p+);p=a;sort(p,10);for(;px) ai+1=ai; i-; /*将比x大的数往后移动一个位置*/ a+i=x; j+; /*插入x后元素总个数增加*/=j;i+) printf(%8d,ai);12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*
8、/replace(char *s,char c1,char c2) while(*s!=) if (*s=c1) *s=c2; s+; char str100,a,b; if(fp=fopen(p10_2.out)=NULL) gets(str);Enter a&b:%c,%ca,&b);,str);fprintf(fp,replace(str,a,b);The new string is-%snfclose(fp);13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置,不存在则返回-1。char s16=thisischar s25=is,search(s1,s2);
9、system(int search(char s1,char s2)int i=0,j,len=strlen(s2);while(s1i) for(j=0;len; if(s1i+j!=s2j) break; if(j=len)return i; else i+;return -1;14、/*用指针变量输出结构体数组元素。struct studentint num; char *name;char sex;int age;stu5=1001,lihua,F,18,1002,liuxingM,19,1003,huangke,19,1004,fengshou,19,1005,Wangming,18
10、;int i;struct student *ps;Num tNametttSextAgetn/*用指针变量输出结构体数组元素。for(ps=stu;psnum,ps-name,ps-sex,ps-age);/*用数组下标法输出结构体数组元素学号和年龄。%dt%dtn,stui.num,stui.age);15、/*建立一个有三个结点的简单链表:#define NULL 0char *name;int age ;struct student *next;struct student a,b,c,*head,*p;a.num=1001; a.name= a.age=18; /* 对结点成员进行赋
11、值 */b.num=1002; b.name= b.age=19;c.num=1003; c.name= c.age=18;head=&a; /* 建立链表,a为头结点 */a.next=&b;b.next=&c;c.next=NULL;p=head; /* 输出链表 */do%5d,%s,%3dn,p-num,p-name,p-p=p-next;while(p!=NULL);16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。 char s100; int i,j,n;输入字符串: n=strlen(s); for(i=0,j=n-1; if(s
12、i!=sj) break; if(i=j) printf(是回文串n else printf(不是回文串n17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/void fun(int a,int n)int i,j,t;=n-1;i; if(ajaj+1) t=aj;aj=aj+1;aj+1=t;int a10=12,45,7,8,96,4,10,48,2,46,n=10,i;FILE *f;if(f=fopen(myf2.out)=NULL)open file myf2.out failed!fun(a,10); fprintf(f,fclose(f);18、编写函数countpi,利用公式计算的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。double countpi(double eps) /*eps为允许误差*/ int m=1; double temp=1.0,s=0; while(temp=eps) s+=temp; temp=temp*m/(2*m+1); m+; return(2*s); double eps=1e-5,pi;p7_3.out pi= countpi(eps);pi=%lfn,pi);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1