fprintf(fp,\ } system(\
fclose(fp); }
11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/
main()
{ int a[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/ int x , i, j=6; /*j为元素个数*/ printf(\ scanf(\
a[0]=x;
i=j; /*从最后一个单元开始*/ while(a[i]>x)
{ a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/ a[++i]=x;
j++; /*插入x后元素总个数增加*/
for(i=1;i<=j;i++) printf(\ printf(\
}
12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/
#include
replace(char *s,char c1,char c2) { while(*s!='\\0') { if (*s==c1) *s=c2; s++; } } main()
{ FILE *fp;
char str[100],a,b;
if((fp=fopen(\ { printf(\ exit(0); } printf(\ gets(str);
printf(\ scanf(\printf(\fprintf(fp,\replace(str,a,b);
printf(\fprintf(fp,\
fclose(fp); }
13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置 ,不存在则返回-1。*/ main()
{char s1[6]=\printf(\system(\}
int search(char s1[],char s2[]) {int i=0,j,len=strlen(s2); while(s1[i]){ for(j=0;j=len)return i; else i++; }
return -1;
}
14、/*用指针变量输出结构体数组元素。*/ struct student {
int num; char *name; char sex;
int age;
}stu[5]={{1001,\shou\
main()
{int i;
struct student *ps;
printf(\ /*用指针变量输出结构体数组元素。*/ for(ps=stu;psprintf(\/*用数组下标法输出结构体数组元素学号和年龄。*/ for(i=0;i<5;i++)
printf(\}
15、/*建立一个有三个结点的简单链表:*/ #define NULL 0 struct student { int num; char *name; int age ;
struct student *next; };
void main()
{
struct student a,b,c,*head,*p;
a.num=1001; a.name=\ /* 对结点成员进行赋值 */ b.num=1002; b.name=\
c.num=1003; c.name=\
head=&a; /* 建立链表,a为头结点 */ a.next=&b; b.next=&c;
c.next=NULL;
p=head; /* 输出链表 */ do{
printf(\p=p->next;
}while(p!=NULL); }
16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/
#include #include #include main()
{ char s[100];
int i,j,n;
printf(\输入字符串:\\n\ gets(s);
n=strlen(s);
for(i=0,j=n-1;i if(i>=j) printf(\是回文串\\n\ else printf(\不是回文串\\n\
}
17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/
#include void fun(int a[],int n) {int i,j,t;
for(i=0;i<=n-1;i++) for(j=0;j
if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} }
main()
{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i; FILE *f;
if((f=fopen(\ printf(\fun(a,10);
for(i=0;i<10;i++) {printf(\ fprintf(f,\ } fclose(f); }
18、编写函数countpi,利用公式
?2?1?13?13?25?13?25?37?13?25?37?49??
计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
#include
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); } main()
{FILE *fp;
double eps=1e-5,pi;
if((fp=fopen(\ { printf(\ exit(0); }
pi= countpi(eps);
printf(\fprintf(fp,\fclose(fp); }