1、float calculate (float x,float y,float *sub);添加函数原型声明main ()float a,b;float add_reasult, sub_result;scanf (“%f,%f”,a,b);add_result=calculate(a,b,&sub_result);printf( “a*a+b*b=%d,a*a-b*b=%dn”,add_result,sub_result);float calculate (float x,float y,float *sub) 添加函数类型float *temp; 应该直接定义为变量float temp;su
2、b=a*a-b*b ; *sub=a*a-b*b;temp = a*a+b*b;return *temp; return temp(2) 统计N 个字符中大写字母和数字字符的个数 #include #define N 5Count(char *str,int *result); 添加函数声明 main () char stringN80; char i; int Capital_Count=0,Num_Count=0;需要初始化为0 for(i=0;iN;i+)scanf( “%s”,&stringi) ; 去掉&符 for(I=0;I=A& strI=Z) Temp+;0|strI9) *r
3、esult+; return temp; 四 程序填空 10分(答案参考书中p8586)(1)利用公式 sin x=x-x/3!+x x=0.5,n=20 #includevoid main(void)char str80=”ABCdabcdfgabc”;char *p;p=my_strrstr(str,”abc”);printf(“%s n”,p);p=my_strrstr(str,” “);printf(“%sn”,p);char *my_strrstr(char *s1,char*s2)char *last;char *current;_; if(_) last=current=_;Wh
4、ile(_); last=current;current=_;return last;五写输出结果(20分) (1)void fun(int*,int);void main() int a=5,6,7,8,i; fun(a,4);4; printf(%dn,ai);void fun(int *b,int n) int i; bi=i*2; return; 246(2) int i,j,max; int row=0,column=0; int a33=1,2,3,2,-3,4,9,4,7; max=a00;3; for(j=0;jmax) max=aij; row=i+1; column=j+1
5、; printf(max=%d,row=%d,column=%dn,max,row,column);(书中例题5.5,p123)max=9,row=3,column=1(3)int n=1;void func(); static int x=5; int y; y=n;main:x=%d,y=%d,n=%dn,x,y,n); func();void func() static int x=4; int y=10; x=x+2; n=n+2; y=y+n;func:x=5,y=1,n=1x=6,y=13,n=3x=5,y=1,n=3 (4)struct person char name20; i
6、nt count; struct person leader3=li,0,zhangwang,0; char name20,m,n; for(m=1;m7;m+) scanf(%s,name); for(n=0;nn+) if (!strcmp(name,leadern.name) leadern.count+; break;n); for(m=0;m %s:,leaderm.name,leaderm.count);当程序运行时,键入情况如下:LiWangLeiZhang写出程序的输出结果。(基本上是书中例题)Li:Zhang:1Wang: (5) char *name=capital,ind
7、exlargesmall int a,b,n=4; char *temp; for(a=0;an-1;a+) for(b=a+1;b0) temp=namea; namea=nameb; nameb=temp ; 在此之前是书中的例题7.19%sn,namea+a); 输出时应该能够识别指针及偏移情况capitalndexrgell六、 编写程序 (35分)(1) 求一元二次方程ax+bx+c=0的根,实系数a,b,c从终端输入,只考虑两个不同实根和两个相同的实根 (9分)(书中例题3.4,p6667)math.h float a,b,c; float x1,x2; float x3,x4;
8、float m;input the numbers:a,b,c scanf(%f%f%f,&a,&b,&c); if(a=0)the input is error! return; m=b*b-4*a*c; if(m x1=(-b+sqrt(m)/(2*a); x2=(-b-sqrt(m)/(2*a);x1:%.2f x2:%.2fn,x1,x2); else if(m=0) x1=x2=(-b+sqrt(m)/(2*a);x1=x2=%.2fn,x1); else x3=-b/(2*a); x4=sqrt(m)/(2*a);x1=%.2f+%.2fin,x3,x4);x2=%.2f-%.2f
9、in(2)编写一个函数,求s=a+aa+aaa+-+aaaaaaaaa-a,其中a是一个数字,例如2+22+222+2222(此时n=4)。主函数a和n的输入,调用所函数和输出所求的 累加和;编写的函数完成计算。 (9分)注意:不得使用全局变量,注意程序结构(书中习题3:4。16)long Cal(long a,long n); long sn=0; long a,n;please input a n:%d%dn); sn = Cal(a,n);a+aa+aaa+.+aa.a=%ldnn,sn);long int Cal(long a,long n) long sn=0,m=0; m=m*10
10、+a; sn+=m; return sn;(3)从十个字符串中找出所要的某个字符串,若能找到则把他删除,然后输出新字符串;若未找到则输出“”can not fond”. (9分) char s1080; char s280; int i,j; int num=0;please enter 10 string:10; gets(si);please enter s2 string: gets(s2); if(strcmp(si,s2)=0) for(j=i;9-num; strcpy(sj,sj+1); i-; num+;10-num; puts(si);(4)一个班有N个同学,修5门课从键盘输
11、入他们的性名、学号、性别和成绩。 1)按平均成绩从高到底打印全班的成绩单。 2)求第三门课的平均分 3)找出平均分在90以上或全部功课在85以上的女生。要求:输入、输出、计算、排序和查找分别用函数实现,主函数只是调用这些函数。不得使用全局变量。#define N 5struct Student int number; int sex; float score5; float aver;void Input(struct Student *stu);void Average(struct Student *stu,float *aver);void Sort(struct Student *st
12、u);void Search(struct Student *stu,float score); struct Student stuN; float score=85.0; float aver3; Input(stu); Sort(stu); Average(stu,&aver3);average3 is %.2fn,aver3); Search(stu,score);void Input(struct Student *stu) float aver=0; aver=0;please enter name: gets(stui.name);please enter number sex:stui.number,&stui.sex);please enter score(5):5; scanf(%fstui.scorej); aver +=stui.scorej; stui.aver = aver/5; getchar();void Sort(struct Student *stu) struct Student temp;N-1; for(j=i+1; if(stui.aver90 score85n flag = flag&(stui.scorejscore); if(stui.aver90.0&flag) printf(nn
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2