{
struct student *p1,*p2,*p; int i,j,k; k=n;
for(j=0;j for(i=0,p=p1=head,p2=head->next; i if(p1->score < p2->score) { if(p==head&&i==0) { p1->next=p2->next; p2->next=p1; head=p2; p=p2; } else { p1->next=p2->next; p2->next=p1; p->next=p2; p=p2; } } else p=p1; return(head); } void print(struct student *head) { int k, i=1; k=n; k=k*0.8; while(head!=NULL) { if(i<=k)printf(\合格(pass)\\n\ else printf(\不合格(fail)\\n\ head=head->next; i++; } } void main() { struct student *p; p=sort(creat()); print(p); } 运行结果: Test2 1. 编写一个程序计算下列不等式:1+1/2+1/3++1/n>limit所需级数的项数。其中limit是提 出的要满足的条件,而所求的是项数n。(例如,当输入limit的值为5时,n的值为83),要求程序存入test21.c。 设计思路: 调试结果:#include\void main() { int limit; float a=0,n,i; printf(\请输入limit的值\\n\ scanf(\for(i=1;;i++) { a=a+1/i; n=i; if(a>limit)break; } printf(\ } 设计思路:循环的使用,scanf函数的运用,for语句的运用。 运行结果: 2. 下列程序是一个二维数组行和列的元素互换,存到另一个二维数组中。请输入并完善程 序。要求程序存入test22.c。 #include int i,j,arr1[2][3]={{2,4,6},{1,3,5}},arr2[3][2]; printf(“Array arr1:\\n”); for(i=0;i<2;i++) { } printf(“Array arr2:\\n”); for(i=0;i<3;i++) { } for(j=0;j<2; printf(“\\n”); for(j=0;j< { 3 ;j++) printf(“]”,arr1[i][j]); arr2[j][i] =arr1[i][j]; } printf(“\\n”); j++ ) printf(“]”,arr2[i][j]); } 设计思路:数组元素的转换,for语句的运用,函数的调运,以及对循环的使用。 运行结果: 3. 下列程序的功能是输入一个字符串并将其中从左到右第一个最大的字符与最后一个字符 交换。如:“imaastudent123”,交换后为“imaast3dent12u”。请输入并改正程序中带* 的行中的错误,使它能够正确的输出结果。要求程序存入test23.c。 #include { char s[80],max; gets(s); max=s[0]; int i,k; * * k=0; * for(i=0;s[i]!=’\\0’;i++) if(s[i]> s[0]) max=s[i],k=i; if(k!=i-1) s[k]=s[i-1]; s[i-1]=max; puts(s); } 设计思路:字符串的输入和输出,循环的使用,数组的使用。 运行结果: 4. 编程实现:找出100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100 以内)的个数cnt、每个满足条件的I值以及这些I之和sum。 设计思路: 调试结果:#include int i,sum=0,j,cnt=0; for(i=3;i<=90;i++) { for(j=2;j<=i;j++) } if(i%j==0 || (i+4)%j==0 || (i+10)%j==0) break; if(i==j){ sum=sum+i; cnt++; printf(\ } }printf(\ 运行结果:
相关推荐: