版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。3.1下面程序的功能是不用第三个变量,实现两个数的对调操作。#include<stdio.h>main()inta,b;scanf("%d%d&quo
2、t;,&a,&b);printf("a=%d,b=%dn",a,b);a=;b=;a=;printf("a=%d,b=%dn",a,b);)【3.2下面程序的功能是根据近似公式:兀2/6y1/12+1/22+1/32+求兀值。#include<math.h>doublepi(longn)doubles=0.0;longi;for(i=1;i<=n;i+)s=s+;return();)3.31下面的程序的功能是求一维数组中的最小元素。findmin(int*s,intt,int*k)intp;for(p=0,*k=p;p&
3、lt;t;p+)if(sp<s*k);)main()inta10,i,*k=&i;for(i=0;i<10;i+)scanf("%d",&ai);findmin(a,10,k);printf("%d,%dn",*k,a*k);)3,4下面程序的功能是计算1-3+5-7+-99+101main()inti,t=1,s=0;for(i=1;i<=101;i+=2)(;s=s+t;;)printf("%dn",s);)3,5有以下程序段:s=1.0;fdn"脸;k<=n;k+)s=s+1.0
4、/(k*(k+1);printf("%fn",s);填空完成下述程序,使之与上述程序的功能完全相同。s=0.0;;k=0;dos=s+d;;d=1.0/(k*(k+1);while();printf("%fn",s);3.6下面程序的功能是从键盘上输入若干学生的学习成绩,最低成绩,当输入为负数时结束输入。main()floatx,amax,amin;scanf("%f',&x);的值。统计并输出最高成绩和amax=x;amin=x;while()if(x>amax)amax=x;if()amin=x;scanf("
5、;%f',&x);)printf("namax=%fnamin=%fn",amax,amin);)3.7下面程序的功能是将形参x的值转换为二进制数,所得的二进制数放在一个一维数组中返回,二进制数的最低位放在下标为0的元素中。fun(intx,intb)intk=O,r;dor=x%;bk+=r;x/=;while(x);)3,8下面程序的功能是输出1到100之间每位数的乘积大于每位数的和的数。例如数字26,数位上数字的乘积12大于数字之和8omain()intn,k=1,s=0,m;for(n=1;n<=100;n+)k=1;s=0;;while()k
6、*=m%10;s+=m%10;;)if(k>s)printf("%d",n);)3,9下面程序的功能是统计用。至9之间的不同的数字组成的三位数的个数。main()intij,k,count=0;for(i=1;i<=9;i+)for(j=0;j<=9;j+)if()continue;elsefor(k=0;k<=9;k+)if()count+;printf("%d",count);)【3.10下面程序的功能是输出100以内的个位数为6、且能被3整除的所有数。main()inti.j;for(i=0;;i+)j=i*10+6;if(
7、)countinue;printf("%d",j);)3,11下面程序的功能是用辗转相除法求两个正整数m和n的最大公约数。hcf(intm,intn)intr;if(m<n)r=m;n=r;)r=m%n;while()m=n;n=r;r=m%n;);)3,12下面程序的功能是使用冒泡法对输入的10个浮点数从小到大进行排序。排好序的10个数分两行输出。程序如下:#include<stdio.h>main();intij;printf("lnput10numberspleasen");for(i=0;;i+)scanf("%f,&
8、amp;ai);printf("n");for(i=2;;i+)for(j=0;;j+)if()x=aj;;aj+1=x;)printf("Thesorted10numbers;n");for(i=0;;i+)if()printf("n");printf("%ft",ai);)printf("n");)3,13下面程序的功能是读入20个整数,统计非负数个数,并计算非负数之和。#include"stdio.h"main()inti,a20,s,count;s=count=0;f
9、or(i=0;i<20;i+)scanf("%d",);for(i=0;i<20;i+)if(ai<0);s+=ai;count+;)printf("s=%dtcount=%dn",s,count)s中的空格。s中所有的字符C删除。请选择填空。3,14下面程序的功能是删除字符串#include<stdio.h>main()char*s="Beijingligongdaxue"intij;for(i=j=0;si!='0'i+)if(si!=");else;sj尸'0
10、9;printf("%s",s);)3,15下面程序的功能是将字符串#include<stdio.h>main()chars80;intij;gets(s);for(i=j=0;si!='0'i+)if(si!='c');sj尸'0'puts(s);)3,16下面程序的功能是输出两个字符串中对应相等的字符。请选择填空。#include<stdio.h>charx="programming"chary="Fortran"main()inti=0;while(xi!=
11、'0'&&yi!='0')if(xi=yi)printf("%c",);elsei+;)3,17下面程序的功能是将字符串s中的每个字符按升序的规则插到数组a中,字符串a已排好序。#include<string.h>main()chara20="cehiknqtw"chars="fbla"inti,kj;for(k=0;sk!='0'k+)j=0;while(sk>=aj&&aj!='0')j+;for();aj=sk;)p
12、uts(a);)3,18下面程序的功能是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为"abcdefg”和"abceef',则输出为-1。#include<stdio.h>main()charstr1100,str2100,c;inti,s;printf("Enterstring1:");gets(strl);printf("Enterstring2:");gets(str2);i=0;while(str1i=str2i&&str
13、1i!=)i+;s=;printf("%dn",s);)【3.19下面的函数expand在将字符串s复制到字符串t时,将其中的换行符和制表符转换为可见的转义字符表示,即用rY表示换行符,用't'表示制表符。expand(chars,chart)inti.j;for(i=j=0;si!='0'i+)switch(si)case'n':t=;tj+='n'break;case't':t=;tj+=t;break;default:t=si;break;)tj=;)3,20下面的函数index(char
14、s,chart)检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则送回-1oindex(chars,chart)inti,j,k;for(i=0;si!='0'i+)for(j=i,k=0;&&sj=tk;j+,k+);if()return(i);)return(-1);)n3,21下面程序的功能是计算S=k!ok=0longfun(intn)inti;longs;for(i=1;i;i+)s*=i;return();)main()intk,n;longs;scanf("%d",&n);s=;for(k=
15、0;k<=n;k+)s+=;printf("%ldn",s);)3,22下面程序的功能是显示具有n个元素的数组s中的最大元素。#defineN20main()inti,aN;for(i=0;i<N;i+)scanf("%d",&ai);printf("%dn",);)fmax(ints,intn)intk,p;for(p=0,k=p;p<n;p+)if(sp>sk);return(k);)3,23下面程序的功能是由键盘输入n,求满足下述条件的x、y:nx和ny的末3位数字相同,且xy,x>y>
16、;n均为自然数,并使x+y为最小。#include<stdio.h>pow3(intn,intx)inti,last;for(last=1,i=1;i<=x;i+)last=;return(last);)main()intx,n,min,flag=1;scanf("%d",&n);for(min=2;flag;min+)for(x=1;x<min&&flag;x+)if(&&pow3(n,x)=pow3(n,min-x)printf("x=%d,y=%dn",x,min-x);;)3,24下
17、面的程序是用递归算法求a的平方根。求平方根的迭代公式如下:#include<math.h>doublemysqrt(doublea,doublexO)doublex1,y;x1二;if(fabs(x1-x0)>0.00001)y=mysqrt();elsey=x1;return(y);)main()doublex;printf("Enterx:");scanf("%lf',&x);printf("Thesqrtof%lf=%lfn",x,mysqrt(x,1.0)3,25以下程序是计算学生的年龄。已知第一位最小
18、的学生年龄为10岁,其余学生的年龄一个比一个大2岁,求第5个学生的年龄。#include<stdio.h>age(intn)intc;if(n=1)c=10;elsec=;return(c);)main()intn=5;printf("age:%dn",);)3,26下面的函数sum(intn)完成计算1n的累加和。sum(intn)if(n<=0)printf("dataerrorn");if(n=1);else;)3,27下面的函数是一个求阶乘的递归调用函数。facto(intn)if(n=1);elsereturn();)3,28
19、组合问题,由组合的基本性质可知:(1) C(m,n)=C(n-m,n)(2) C(m,n+1)=C(m,n)+C(m-1,n)公式(2)是一个递归公式,一直到满足C(1,n)=n为止。当n<2*m时,可先用公式(1)进行简化,填写程序中的空白,使程序可以正确运行。#include"stdio.h"main()intm,n;printf("lnputm,n=");scanf("%d%d",&m,&n);printf("Thecombinationnumbeersis%dn",combin(m,n
20、);)combin(intm,intn)intcom;if(n<2*m)m=n-m;if(m=0)com=1;elseif(m=1);else;return(com);)3,29下列函数是求一个字符串str的长度。?intstrlen(char*str)?if()return(0);?elsereturn();)3,30用递归实现将输入小于32768的整数按逆序输出。如输入12345,则输出54321o#include"stdio.h"main()intn;printf("Inputn:");scanf("%d",);r(n);
21、printf("n");)r(intm)printf("%d",);m=;if();)3,31输入n值,输出高度为n的等边三角形。例如当n=4时的图形如下:*#include<stdio.h>voidprt(charc,intn)if(n>0)printf("%c",c);;)main()inti,n;scanf("%d",&n);for(i=1;i<=n;i+);printf("n");)3,32下面的函数实现N层嵌套平方根的计算。doubley(doublex
22、,intn)if(n=0)return(0);elsereturn(sqrt(x+();)3.33函数revstr(s)将字符串s置逆,如输入的实参s为字符串"abcde",则返回时s为字符串"edcba”。递归程序如下:revstr(char*s)char*p=s,c;while(*p)p+;;if(s<p)c=*s;*s=*p;;revstr(s+1);;)如下是由非递归实现的revstr(s)函数:revstr(s)char*s;char*p=s,c;while(*p)p+;;while(s<p)c=*s;=*p;* p-=c;)3,34下面函数
23、用递归调用的方法,将str中存放的长度为n的字符串反转过来,例如原来是"ABCDE",反序为"EDCBA”。voidinvent(char*str,intn)chart;t=*str;*str=*(str+n-1);*(str+n-1)=t;if(n>2)invent(,n-2);else;)3,35从键盘上输入10个整数,程序按降序完成从大到小的排序。#include<stdio.h>intarray10;sort(int*p,int*q)int*max,*s;if()return;max=p;for(s=p+1;s<=q;s+)if(*
24、s>*max);swap();sort();swap(int*x,int*y)inttemp;temp=*x;* x=*y;* y=temp;)main()inti;printf("Enterdata:n");for(i=0;i<10;i+)scanf("%d",&arrayi);sort();printf("Output:");for(i=0;i<10;i+)printf("%d",arrayi);)3,36下面函数的功能是将一个整数存放到一个数组中。存放时按逆序存放。例如:483存放成"384"o#include<stdio.h>voidconvert(char*a,intn)inti;if(i=n/10)!=0)convert(,i);*a=;)charstr10=""main()intnumber;scanf("%d",&number);convert(str,number);puts(str);)3,37下面程序的功能是实现数组
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑项目施工现场管理人员安全管理绩效衡量表
- 2025中国太平洋人寿保险股份有限公司甘肃分公司招聘3人笔试历年难易错考点试卷带答案解析
- 心理咨询师心理干预与咨询服务KPI考核表
- 初中三年级数学《位似图形》教案
- 游戏策划师游戏设计质量与玩家满意度KPI考核表
- 建筑施工安全管理与规范方案
- 商洽2026年度品牌赞助合作项目5篇范文
- 培养阳光心态,乐享美好童年几年级主题班会课件
- 家庭安全防护系统性方案预案
- 关于2026年新员工培训计划确认函7篇
- 2025-2026学年广东省深圳市龙华区七年级(下)期末语文试卷
- 2026湖南娄底冷水江市事业单位公开选调工作人员35人参考题库附答案详解【模拟题】
- D-二聚体升高诊治与管理专家共识
- 5G与4G协同网络优化
- 中国股骨颈骨折诊疗指南(2025版)
- 《重点区域生态保护和修复工程建设投资估算指南(试行)》
- 油库安防施工方案(3篇)
- GB 16357-1996工业X射线探伤放射卫生防护标准
- SA8000-2014社会责任绩效委员会SPT组织架构、职责和定期检讨及评审会议记录
- 全套课件-水利工程管理信息技术
- 营运操作手册
评论
0/150
提交评论