1、2006年信息学院C 语言程序设计答案一、110 二、1、2.0 2、1 3、11 4、10 5、35三、1、答:#includevoid swap(int *,int*) ;void main()int a,b,c;scanf(“%d,%d,%d” ,&a,&b,&c) ;if(a#include#define N 5char *process(char p80,int,char*) ;main()char stringN80,*pmax,pmin80;char i;for(i=0;i0)pmax=pi;for(i=1;i=1e-6 3 (-1)*s 4 1/n*s 5 4*pi 6 cha
2、r *pro_str(char *) ;或者 # include 7 pro_str(str) 8 s 9 *s ! =0 10 strcpy(s,s+1) 11 temp五、1、答:输出结果:364964答:输出结果:1952、答:输出结果:main:n=0func:n=0,x=1,y=0func:n=1,x=1,y=0main:n=03、答:输出结果:a=124a=456chr=a4、答:输出结果:capitalndexrgell5、六、1、答:方法一(if 嵌套)#include“stdio.h”void main()int score;char grade;printf(“npleas
3、einput a student score:” ) ;scanf(“%f” ,&score) ;f(score100|score=90)grade=A;else if(score=80)grade=B;elseif(score=70)grade=C;else if(score=60)grade=D;else grade=E;printf(“nthestudent grade:%c” ,grade) ;方法二:switch 语句#include“stdio.h”void main()int g,s;char ch;printf(“ninputa student grade:” ) ;scanf
4、(“%d” ,&g) ;s=g/10;if(s10)printf(“ninputerror!“) ;else switch (s) case 10:case 9:ch=A ; break;case 8:ch=B ; break;case 7:ch=C ; break;case 6:ch=D ; break;default: ch=E ;printf(“nthestudent scort:%c” ,ch) ;2、答:# include void squ(int ,int,int *,int *) ;void main()int a,b,squsum,squmar;printf(“nplease
5、input data a and b:” ) ;scanf(“%d,%d” ,&a,&b) ;squ(a,b,&squsum,&squmar) ;printf(“squaresum=%d,squaremargin=%dn”,squsum,squmar) ;void squ(int a,intb,int *squ1,int *squ2)*squ1=a*a+b*b;*squ2=a*a-b*b;3、答:#include#includechar *deletestr(char *,char*) ;/删除指定字符串void main()char str80,dstr80,*p;printf(“nplea
6、se input a string:” ) ;gets(str) ;printf(“nplease input a delete string:” ) ;gets(dstr) ;p=deletestr(str,dstr) ;printf(“nthe string after deleted:” ) ;puts(p) ;char *deletestr(char *s1,char *s2) /删除指定字符串int len;len=strlen(s2) ;char *s=s1,temp80;if(s2 = NULL)/如果 s2为空,直接输出 sreturn s;elsewhile(*s1!= 0)
7、strncpy(temp,s1,len) ;templen =0;if(!strcmp(temp,s2) )strcpy(s1,s1+len) ;elses1+;return s;4、答:#include#include#define N 5struct studentchar name80;int num;int sex;/男生为 1,女生为 0float score5;float ave; /平均成绩;void input(student *,int) ;/输入void output(student *,int) ;/输出void sort(student *,int) ;/按平均分排序v
8、oid getstuave(student *,int) ;/求第三门课男生的平均分void search(student *,int) ;/求平均成绩在 50分以上或全部功课在 60分以下的女生void main()student stuN;input(stu,N) ;/输入sort(stu,N) ;/按平均分排序output(stu,N) ;/输出getstuave(stu,N) ;/求第三门课男生的平均分search(stu,N) ;/求平均成绩在 50分以上或全部功课在 60分以下的女生void input(student *stud,int n) /输入int i,j;for(i=0
9、;istudj.ave)t=studi;studi=studj;studj=t;void getstuave(student *stud,int n)/求第三门课男生的平均分int i,j=0;float score1N,ave1=0;for(i=0;i=60)flag=1;if(studi.sex=0&(studi.avefloat caculatetotalfee(int num) ;void main()float fee; /总货款int num; /购货数量scanf(“%d” ,&num) ;fee=caculatetotalfee(num) ;printf(“%fn” ,fee)
10、 ;float caculatetotalfee(int num)float fee;/总货款float basefee=65; /商品价格float discount;/折扣if(num=50)discount=0.6;else if(num=30)discount=0.8;else if(num=20)discount=0.85;else if(num=10)discount=0.9;elsediscount=1;fee=basefee*discount*num;return fee;2、答:#include #include float caculate(float a) ;void m
11、ain()float a;/待计算的数float result;/计算结果scanf(“%f” ,&a) ;result=caculate(a) ;printf(“%fn” ,result) ;float caculate(float a)float x,y;x=a;doy=x;x=(y+a/y)/2;while(abs(x-y)1e-6) ;return x;3、答:#include int strappearcount(char *parentstr,char *childstr) ;void main()int count;char parentstr20;char childstr3;
12、scanf(“%s%s” ,parentstr,childstr) ;count=strappearcount(parentstr,childstr) ;printf(“%dn” ,count) ;int strappearcount(char *parentstr,char *childstr)int i,j;int count;for(i=0,count=0;*(parentstr+i)!=0;i+)for(j=0;*(childstr+j)!=0 ;j+)if(*(childstr+j)!=*(parentstr+i+j) )break;if(*(childstr+j)=0 )count
13、+;return count;4、答:#include #include int input(char p1020) ;void sort(char p1020,int flag) ;void output(char p1020) ;void main()char p1020;int flag;flag=input(p) ;sort(p,flag) ;output(p) ;int input(char p1020)int i;int flag;char f10 ;for(i=0;i10;i+)printf(“input the number %dstring:n“,i) ;gets(pi) ;
14、printf(“Input the flag:n” ) ;gets(f) ;flag=atoi(f) ;return flag;void sort(char p1020,int flag)char temp20;int i,j,k;long value10;long tempvalue;if(!flag)for(i=0;i10;i+)valuei=atol(pi) ;for(i=0;i9;i+)for(j=i+1;j10;j+)if(valuejvaluei)tempvalue=valuej;valuej=valuei;valuei=tempvalue;for(i=0;i10;i+)ltoa(valuei,pi,10) ;elsefor(i=0;i9;i+)for(j=i+1;j10;j+)if(strcmp(pj,pi)0)strcpy(temp,pj) ;strcpy(pj,pi) ;strcpy(pi,temp) ;void output(char p1020)int i;for(i=0;i10;i+)printf(“%sn” ,pi) ;