[新]C语言期末复习,经典练习题+知识点总结+模拟考题。三位一体,完胜c语言!!!!{考期必备神器} 下载本文

}

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=\a.age=18; /* 对结点成员进行赋值 */

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(\ge);

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

29 / 30

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,利用公式

计算π的近似值,当某一项的值小于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); }

30 / 30