电大《C语言知识学习程序设计》第1,2,3,4次作业任务及答案解析_第1页
电大《C语言知识学习程序设计》第1,2,3,4次作业任务及答案解析_第2页
电大《C语言知识学习程序设计》第1,2,3,4次作业任务及答案解析_第3页
电大《C语言知识学习程序设计》第1,2,3,4次作业任务及答案解析_第4页
电大《C语言知识学习程序设计》第1,2,3,4次作业任务及答案解析_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一次作业一、写出下列每个程序运行后的输出结果1. #include<stdio.h>voidmain()(intx=5;switch(2*x-3)(case4:printf("%d",x);case7:printf("%d",2*x+1);case10:printf("%d",3*x-1);break;default:printf("%s","default'n");printf("%sn","switchend.");2. #inc

2、lude<stdio.h>voidmain()(inti,s=0;for(i=1;i<=6;i+)s+=i*i;printf("s=%dn",s);3. #include<stdio.h>voidmain()(inti,s1=0,s2=0;for(i=0;i<10;i+)if(i%2)s1+=i;elses2+=i;printf("%d%dn",s1,s2);4. #include<stdio.h>voidmain()(intn=10,y=1;while(n-)y+;y+;printf("y=%d

3、n",y);5. #include<stdio.h>voidmain()intf,f1,f2,i;f1=f2=1;printf("%d%d",f1,f2);for(i=3;i<=10;i+)f=f1+printf("%d",f);if(i%5=0)printf("n");f1=f2;f2=f;printf("n");6. #include<stdio.h>#include<math.h>voidmain()inti,n;的平方根并取整for(n=2;n<=2

4、0;n+)inttemp=(int)sqrt(n);/sqrt(n)求出nfor(i=2;i<=temp;i+)if(n%i=0)break;if(i>temp)printf("%d",n);7. #include<stdio.h>#include<math.h>constintM=20;voidmain()inti,c2,c3,c5;c2=c3=c5=0;for(i=1;i<=M;i+)if(i%2=0)c2+;if(i%3=0)c3+;if(i%5=0)c5+;)printf("%d%d%dn",c2,c3,

5、c5);)8. #include<stdio.h>#include<math.h>constintM=20;voidmain()inti,s;for(i=1,s=0;i<15;i+)if(i%2=0|i%3=0)continue;printf("%d",i);s+=i;)printf("%dn",s);参考答案1、答案:1114switchend.2、答案:s=91.3、答案:2520.4、答案:y=21.5、答案:112358132134556、答案:2357111317197、答案:10648、答案:157111337第

6、二次作业一、根据下列每个题目要求编写程序a所指向的1.编写一个函数,函数头格式为"voidfun4(char*a,intb)”,分别求出由字符指针b的相应元素。字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组2.编写一个函数,函数头格式为"doubleMean(doubleaMN,intm,intn)”,要求返回维数组amn中所有元素的平均值,假定在计算过程是采用变量v存放平均值。3.编写一个递归函数“intFF(inta,intn)”,求出数组a中所有元素n个元素之积并返回。+1/n>5的最小n4.编写一个主函数,利用while循环,求出并显示满足不等式

7、1+1/2+1/3+值。5.编写一个主函数,求满足不等式22+42+n2<1000的最大n值,假定分别用i和s为取偶数值和累加值的变量,并限定使用do循环编程。参考答案:1、答案:#include<stdio.h>voidfun4(char*a,intb)doif(*a>='0'&&*a<='9')b*a-48+;while(*a+);/*voidmain()char*a="122333444499888”;intb10=0;fun4(a,b);for(inti=0;i<10;i+)printf(&q

8、uot;%d",bi);*/2、答案:#include<stdio.h>constintM=2,N=3;doubleMean(doubleaMN,intm,intn)doublev=0;for(inti=0;i<m;i+)for(intj=0;j<n;j+)v+=aij;returnv/(m*n);/*voidmain()doublea23=1,2,3,4,5,6;printf("%lfn",Mean(a,2,3);*/3、答案:#include<stdio.h>intFF(inta,intn)intmul=1;if(n=1)m

9、ul*=a0;elsemul=an-1*FF(a,n-1);returnmul;)/*voidmain()(inta6=1,2,3,4,5,6;printf("%dn",FF(a,6);*/4、答案:#include<stdio.h>voidmain()doublesum=0;intn=1;while(true)if(sum+1/(double)n>5)break;elsesum+=1/(double)n;n+;printf("%d,%lfn",n,sum);)5、答案:#include<stdio.h>voidmain()

10、ints=0,i=2;dos+=i*i;if(s+(i+2)*(i+2)>=1000)break;elsei+=2;while(true);printf("i=%d,s=%d",i,s);6、答案:#include<stdio.h>voidmain()ints=0,n;printf("请输入n的值:");scanf("%d",&n);for(inti=1;i<=n;i+)s=s*i;printf("n=%d,s=%d",n,s);)第三次作业一、写出下列每个程序运行后的输出结果1 .

11、程序代码:#include<stdio.h>voidSB(charch)switch(ch)case'A':case'a':printf("WW");break;case'B':case'b':printf("GG");break;case'C':case'c':printf("PP");break;default:printf("BB");break;voidmain()charal='b'

12、,a2='C',a3='f;SB(a1);SB(a2);SB(a3);SB('A');printf("n");)2 .程序代码:#include<stdio.h>#include<stdlib.h>doubleSD(inta,intb,charop)doublex;switch(op)case'+':x=a+b;break;case'-':x=a-b;break;case'*':x=a*b;break;case'/':if(b)x=(double)

13、a/b;elseexit(1);break;default:printf("运算符错!n");exit(1);)returnx;voidmain()intx=20,y=8;printf("%3.2lf",SD(x,y,'-');printf("%3.2lf",SD(x,y,'*');printf("%3.2lfn",SD(x+y,y,'/');)3 .程序代码:#include<stdio.h>voidWF(intx,inty)x=x+y;y=x+y;pr

14、intf("subs:x,y=%d,%dn",x,y);)voidmain()intx=18,y=23;printf("main:x,y=%d,%dn",x,y);WF(x,y);x=2*x;printf("main:x,y=%d,%dn",x,y);)4 .程序代码:#include<stdio.h>#include<string.h>voidfun(charss);voidmain()chars15="567891234"fun(s);printf("%sn",s);

15、voidfun(charss)inti,n=strlen(ss);for(i=0;i<n/2;i+)charc=ssi;ssi=ssn-1-i;ssn-1-i=c;5 .程序代码:#include<stdio.h>voidInsertSort(inta,intn)进彳fn-1次循环inti,j,x;for(i=1;i<n;i+)/x=ai;for(j=i-1;j>=0;j-)/为x顺序向前寻找合适的插入位置if(x>aj)aj+1=aj;elsebreak;aj+1=x;)voidmain()inti;inta6=20,15,32,47,36,28);Ins

16、ertSort(a,6);for(i=0;i<6;i+)printf("%d",ai);printf("n");)6.程序代码:#include<stdio.h>voidmain()inta8=3,5,7,9,11,13,15,17);inti,*p=a;for(i=0;i<8;i+)printf("%5d",*p+);if(i+1)%4=0)printf("n");#include<stdio.h>intLA(int*a,intn)inti,s=0;for(i=0;i<n

17、;i+)s+=ai;returns;voidmain()inta=5,10,15,20,25,30;intb=LA(a,4);intc=LA(a+2,3);printf("%d%dn",b,c);8.程序代码:#include<stdio.h>intLB(int*a,intn)inti,s=1;for(i=0;i<n;i+)s*=*a+;returns;inta=1,2,3,4,2,4,5,2);intb=LB(a,4)+LB(&a3,4);printf("b=%dn",b);)二、写出下列每个函数的功能1 .程序代码:intW

18、B(inta,intn,intx)inti;for(i=0;i<n;i+)if(ai=x)return1;return0;)2 .程序代码:intWC(inta,intn,intk)intc=0,i;for(i=0;i<n;i+)if(ai>=k)c+;returnc;#include<stdio.h>#include<stdlib.h>#include<time.h>constintN=10;intff(intx,inty)intz;printf("%d+%d=",x,y);scanf("%d",&

19、amp;z);if(x+y=z)return1;elsereturn0;)voidmain()inti,a,b,c=0;srand(time(0);/初始化随机数序列for(i=0;i<N;i+)之间的一个随机数a=rand()%20+1;/rand()函数产生032767b=rand()%20+1;c+=ff(a,b);)printf("得分:%dn",c*10);intfun6(intm,intn,intb)(if(m<b&&n<b)returnm*n;elseif(m%b=0&&n%b=0)returnb*fun6(m

20、/b,n/b,b);elsereturnfun6(m,n,+b);5 .程序代码:#include<stdio.h>#include<stdlib.h>voidLI(intn)int*a=malloc(n*sizeof(int);inti;for(i=0;i<n;i+)scanf("%d",a+i);for(i=n-1;i>=0;i-)printf("%d",*(a+i);printf("n");free(a);6 .程序代码:intLK(doublea,intn)doubles=0;inti,m=

21、0;for(i=0;i<n;i+)s+=ai;s/=n;for(i=0;i<n;i+)if(ai>=s)m+;returnm;参考答案:一、1、答案:运行结果:GGPPBBWW2、答案:运行结果:12.00160.003.503、答案:运行结果:main:x,y=18,23subs:x,y=41,64main:x,y=36,234、答案:运行结果:4321987655、运行结果:4736322820156、答案:运行结果:3579111315177、答案:运行结果:50608、答案:运行结果:b=184二、1、答案:在整型数组a的前n个元素中查找值为x的元素,找到返回1,找不

22、到返回0。2、答案:统计整型数组a的前n个元素中不小于k的元素个数并返回3、答案:程序随机产生10道20以内整数加法题,请用户回答。并统计得分,4、答案:调用fun6(m,n,2)求m和n的最小公倍数5、答案:读入n个整数,然后逆序输出6、答案:返回双精度数数组a的前n个元素中不小于平均值的元素个数。第四次作业一、写出下列每个程序运行后的输出结果1 .程序代码:#include<stdio.h>structWorkercharname15;/姓名intage;/年龄floatpay;/工资;voidmain()structWorkerx="wanghua",52

23、,2350;structWorkery,*p;y=x;p=&x;printf("%s%d%6.2fn",,y.age,y.pay);printf("%s%d%6.2fn",p->name,p->age+1,p->pay+20);2 .程序代码:#include<stdio.h>#include<string.h>structWorkercharname15;/姓名floatpay;/工资);voidmain()structWorkerx;char*t="liouting"i

24、ntd=38;floatf=493;strcpy(,t);x.age=d;x.pay=f;x.age+;x.pay*=2;printf("%s%d%6.2fn",,x.age,x.pay);)3.程序代码:#include<stdio.h>structWorkercharname15;/姓名intage;/年龄floatpay;/工资);intLess(structWorkerr1,structWorkerr2)if(r1.age<r2.age)return1;elsereturn0;voidmain()structWorkera4

25、="abc",25,420,"def",58,638,"ghi",49,560,"jkl",36,375;structWorkerx=a0;inti;for(i=1;i<4;i+)if(Less(x,ai)x=ai;printf("%s%d%6.2fn",,x.age,x.pay);二、写出下列每个函数的功能1.程序代码:structWorkercharname15;/姓名intage;/年龄floatpay;/工资;voidQA(structWorkera,intn)inti

26、;for(i=1;i<n;i+)scanf("%s%d%f",&,&ai.age,&ai.pay);2.程序代码:structStrNodecharname15;/字符串域structStrNode*next;/指针域);structStrNode*QB(intn)structStrNode*f,*p;if(n=0)returnNULL;f=malloc(sizeof(structStrNode);scanf("%s",f->name);p=f;while(-n)p=p->next=malloc(s

27、izeof(structStrNode);scanf("%s",p->name);)p->next=NULL;returnf;)3 .程序代码:structIntNode结点指针域structIntNode*next;/);structIntNode*FindMax(structIntNode*f)(structIntNode*p=f;if(!f)returnNULL;f=f->next;while(f)if(f->data<p->data)p=f;f=f->next;)returnp;)4 .*程序代码:structIntNodeintdata;/结点值域structIntNode*next;/结点指针域);intCount(structIntNode*f)intc=0;while(f)c+;f=f->next;)returnc;)5 .程序代码:structIntNodeintdata;/结点值域structIntNode*next;/结点指针域);structIntNode*Input(intn)structIntNode*f,*p;f=malloc(sizeof(structIntNode);if(n=0)returnNULL;f->next=N

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论