c语言 实验编程题 计算整数和,C语言程序设计实验与习题答案.doc

22.程序填空.程序填空(1)以下程序的功能是计算1~50之间能被7整除的整数之和。#includevoidmain(){intisum=0for(i=150i++)if(i%7==0)sum+=iprintf(sum=%d\nsum)}(2)下面程序接收来自键盘的输入,直到输入+Z(值为-1)键为止。这些字符被原样输出,但若有连续一个以上的空格时只输出一个空格。请填空。#includevoidmain(){charcxcharfront=’’while((cx=getchar())!=’\n’){if(cx!=’’)putchar(cx)if(cx==’’)if(front!=’’)putchar(cx)front=cx}}33..程序改错程序改错(1)下列程序的功能是求1+3+5+…99的和。#includevoidmain(){intsi★ints=0ii=1while(i=1e-6){pi=pi+tn=n+2s=-st=sn}pi=pi4printf(pi=%10.6f\npi)}方法(2)次数控制#include#includemain(){intslongtimesfloatntpit=1pi=0n=1.0s=1for(times=1times=1e-6){pi=pi+tn=n+2s=-st=sn}pi=pi4printf(pi=%10.6f\npi)}方法(2)次数控制#include#includemain(){intslongtimesfloatntpit=1pi=0n=1.0s=1for(times=1times1e-6i++){t=(double)ie+=t}printf(e=%f\ne)}2.⑴①a[10]=x②break③a[k]=x附:算法简析main(){intxijk感觉似乎j定义了没什么作用inta[11]={8182838485868788898}printf(请输入需要插入的一个整数:)scanf(%dx)a[10]=x把x放到数据串最末位置for(i=0i=0j--)4.⑴#include#includeintisprime(intx){intk=sqrt(x)for(k1k--)if(x%k==0)return0returnx}voidsort(inta[]intx){intiktfor(i=0ihigh)printf(\nThisdatacan’tbefoundinthedatabase!)else{printf(\nThisdataisintheposition%dmid)gotoxy(7+3(mid+1)-223)putchar(25)}}voidinsert(inta[]intn){intxkiprintf(\nPLeaseadatatobeinserted:)scanf(%dx)a[n]=xfor(i=0i=ap--)p=ap--)if(p%2==0)sum++★if(p%2==0)if(p%2==0)sum++sum++printf(共有%d个偶数sum)}2.程序填空.程序填空(1)以下程序的功能是利用指针找出3个整数中的最小数。#includevoidmain(){intp1p2p3minxyzp1=xp2=yp3=zprintf(″pleasethreeinteger:″)scanf(″%d%d%d″p1p2p3)①min=p1if(p1p2)②min=p2if(minp3)③min=p3printf(″min=%d\n″min)}(2)以下程序利用指向函数的指针实现函数调用,完成可选择的加减乘除运算。#include定义函数addintadd(intxinty){printf(%d+%d=xy)returnx+y}定义函数subintsub(intxinty){printf(%d-%d=xy)returnx-y}定义函数multintmult(intxinty){printf(%d%d=xy)returnxy}定义函数devintdev(intxinty){printf(%d%d=xy)returnxy}voidmain(){int(funp)(intint)charopintxyprintf(Pleaseintputtheexpressiona+(-)b:\n)scanf(%dx)scanf(%cop)scanf(%dy)①(op)switch{case+:funp=②breakaddcase-:funp=subbreakcase:funp=multbreakcase:funp=devbreakdefault:printf(Operatorisillegal\n)}printf(%d\n③(xy))funp}3.程序改错.程序改错(1)以下程序的功能是:输入3个整数,按由小到大的顺序输出。#includevoidmain(){inti1i2i3intp1p2p3voidswap(intint)★voidswap(intint)printf(Pleaseenterthreeinteger:\n)scanf(%d%d%di1i2i3)★scanf(%d%d%di1i2i3)p1=i1p2=i2p3=i3★p1=i1p2=i2p3=i3if(i1i2)swap(p1p2)if(i1i3)swap(p1p3)if(i2i3)swap(p2p3)printf(paixuhoudeshu:%d%d%d\ni1i2i3)}voidswap(intpintq){inttt=pp=qq=t}(2)下列程序的功能是利用自定义函数计算一无符号整数各位数字的乘积。#includeunsignedf(unsignednum){unsigneds=1pp=s★p=sdo{s=s(num%10)num=10}while(num)returnp}voidmain(){unsignedxpprintf(x=:\n)scanf(%dx)p=f(x)printf(%dp)★printf(%dp)}4.设计性实验.设计性实验(1)编程一函数,其功能是求一个长正整数各位数字之和。要求使用指针函数实现结果的返回。在主函数中进行测试。例如在主函数中输入348762,输出结果应为为30即3+4+8+7+6+2的和。方法一:利用指向函数的指针方法一:利用指向函数的指针intsum(longn)利用递归求和{unsignedlongxif(n10)x=nelsex=sum(n10)+n%10return(x)}voidmain(){longxint(f)(long)f=sumscanf(%ldx)printf(%df(x))}方法二:利用指针函数方法二:利用指针函数仿照第仿照第3)题改错()题改错(2))#includeunsignedf(longnum){unsigneds=0pp=sdo{s=s+(num%10)num=10}while(num)returnp}voidmain(){unsignedplongxprintf(x=:\n)scanf(%ldx)p=f(x)printf(%dp)}(2)编程一函数求两个整数的最大公约数,要求使用指针函数实现结果的返回。在主函数中调用此函数进行测试。两个整数由键盘输入。方法一:利用指向函数的指针方法一:利用指向函数的指针intmcf(intaintb){inttempwhile(b){temp=a%ba=bb=temp}returna}voidmain(){intxyint(f)(intint)f=mcfscanf(%d%dxy)printf(%df(xy))}方法二:利用指针函数方法二:利用指针函数仿照第仿照第3)题改错()题改错(2))intmcf(intaintb){inttempwhile(b){temp=a%ba=bb=temp}returna}voidmain(){intxypscanf(%d%dxy)p=mcf(xy)printf(%dp)}

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值