ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:31.81KB ,
资源ID:2942901      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2942901.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言作业2.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言作业2.docx

1、C语言作业2H1:计算通用产品代码(UPC)的校验位(选作)许多年来,货物生产商都会把超市售卖的每件商品上放置一个条码。这种被称为通用产品代码(Universal Product Code,缩写UPC)的条码可以识别生产商和产品。超市可以通过扫描产品上的条码来确定支付此项商品的费用。每一个条码由十二位数字构成,通常这些数字会显示在条码下面。例如,包装为26盎司的Morton牌碘化盐所用条码下的数字是:0 24600 01003 0第一个数字表示商品的种类(0表示大部分的食品杂货,2表示需要称量的货品,3表示药品或和健康相关的商品,而5表示优惠券)。接下来的一组五位数字用来识别生产商。而第二组五

2、位数字则用来区分产品类型(其中包括包装尺寸)。最后一位数字是“校验位”,它可以帮助鉴别先前数字中的错误。如果条码扫描出现错误,那么前十一位数字和最后一位数字可能会不一致,而超市扫描机也会拒绝整个条码。下面是一种计算校验位的方法:首先把第一位、第三位、第五位、第七位、第九位和第十一位数字相加。然后把第二位、第四位、第六位、第八位和第十位数字相加。接着把第一次加法结果乘以3后再加上第二次加法的结果。随后,再把上述结果减去1。减法后的结果除以10取余数。最后,用9减去上一步骤中得到的余数。现在以Morton碘盐为例,第一组数字的加法是0+4+0+0+0+3=7,而第二组数字的加法是2+6+0+1+0

3、=9。把第一组加法值乘以3后再加上第二组加法值得到的结果是30。再减去1,结果变为29。再把这个值除以10取余数为9。9在减去余数结果9,最终值为0输入每次输入三行数据,第一行是UPC的第一位数字,第二行是UPC的第一组五位数字,第三行是UPC的第二组五位数字。输出UPC的校验位测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. 0 2. 24600 3. 01003以文本方式显示 1. 01秒 64M 0 解法:#includemain() int a,b,c,q,e,f,g,h,i,j,k,m,n,p,x,y,z;scanf(%1d,&a);scanf(%1d%1d

4、%1d%1d%1d,&b,&c,&q,&e,&f);scanf(%1d%1d%1d%1d%1d,&g,&h,&i,&j,&k);x=a+c+e+g+i+k;y=b+q+f+h+j;m=x*3+y;n=m-1;z=n%10;p=9-z;printf(%dn,p);H2:数制转换(选作)成绩: 5 / 折扣: 0.8我们通常使用的都是十进制的数字,但其实在生活中也经常会使用其它进制。 这个题目会给你两个不同的数字,它们不属于同一进制,要求你计算出当它们分别处于何种进制之中时,两个数字相等。譬如 12 和 5 ,在十进制下它们是不等的,但若 12 使用 3 进制而 5 使用六进制或十进制时,它们的值

5、就是相等的。因此只要选择合适的进制, 12 和 5 就可以是相等的。 程序的输入是两个数字 M 和 N( 其十进制的值不超过 1000000000) ,它们的进制在 236 之间。对于十以下的数字,用 09 表示,而十以上的数字,则使用大写的 AZ 表示。 求出分别在 236 哪种进制下 M 和 N 相等。若相等则输出相应的进制,若不等则输出错误信息。当然了,对于多种可能成立的情况,找出符合要求的进制最小的一组就行了。信息的格式见测试用例。测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. 125以文本方式显示 1. 12(base3)=5(base6)1秒 64M 0

6、 测试用例 2以文本方式显示 1. 123456以文本方式显示 1. 123isnotequalto456inanybase2.361秒 64M 0 测试用例 3以文本方式显示 1. 10A以文本方式显示 1. 10(base10)=A(base11)1秒 64M 0 测试用例 4以文本方式显示 1. 12456以文本方式显示 1. 12isnotequalto456inanybase2.361秒 64M 0 #define N 50 #includestring.h #includestdio.h main() char aN,bN,dN,eN,d0N; int i,j,o,r,g,h,w,

7、t,l,k,max1,max2; double pN,qN=0,uN,vN=0,cN,fN,m,n;for(i=0;iN;i+) scanf(%c,&ai); if(ai=x20) l=i; break; gets(d); if(d0!=x20)k=strlen(d);goto C;if(d0=x20)strcpy(d0,d);g=strlen(d0);for(i=0;d0i=x20;i+);j=i;for(i=0;ig-j;i+) di=d0i+j;k=g-j; C:for(i=0;il;i+) bi=al-i-1; if(bi=x30) ci=bi-0; if(bi=x41) ci=bi-

8、7; for(i=0;ik;i+) ei=dk-i-1; if(ei=x30) fi=ei-0; if(ei=x41) fi=ei-7; max1=c0; for(i=1;il;i+) if(max1ci) max1=ci; if(max1=0) max1=1;max2=f0; for(i=1;ik;i+) if(max2fi) max2=fi; if(max2=0) max2=1; for(i=max1+1;i=36;i+)for(j=0;jl;j+) m=cj; for(g=0;gj;g+) m=m*i; qi=qi+m; for(i=max2+1;i=36;i+)for(j=0;jk;j

9、+) n=fj; for(g=0;gj;g+) n=n*i; vi=vi+n; for(g=max1+1;g=36;g+) for(h=max2+1;h=36;h+) if(qg=vh) w=g,t=h; goto out; for(i=0;il;i+) printf(%c,ai);printf( is not equal to );for(i=0;ik;i+) printf(%c,di);printf( in any base 2.36n);goto outs; out:for(i=0;il;i+) printf(%c,ai); printf( (base %d) = ,w); for(i=

10、0;ik;i+) printf(%c,di); printf( (base %d)n,t); outs:; 16. 空心字符菱形成绩: 5 / 折扣: 0.8输入: 菱型起始字母和菱形的高度。输出: 参看测试用例,打印空心的由字符组成的菱形。测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. C4以文本方式显示 1. C 2. DD 3. EE 4. FF 5. EE 6. DD 7. C1秒 64M 0 #include void main() char letter; int i,j,k,l,n; scanf(%c %d,&letter,&n); for(i=0;i

11、n;i+) if(i=0) for(j=0;j0) for(j=0;jn-1-i;j+)printf( ); printf(%c,letter+i); for(j=0;j=0;i-) if(i=0) for(j=0;j0) for(j=0;jn-1-i;j+)printf( ); printf(%c,letter+i); for(j=0;j2*i-1;j+)printf( ); printf(%c,letter+i); printf(n);17. 数字菱形成绩: 5 / 折扣: 0.8这是非信息类今年出的题目,大家来看看,你会做吗?输入 n 的值,输出如下例( n=4 )所示的数字菱形。 4

12、434 43234 4321234 43234 434 4 输入: n 输出: 数字菱形 友情提示:同学们总结一下打印星号组成的实心图形程序的编程思路:第一步,打印星号组成的正方形;第二步,改变每行星号的个数,打印每行星号数量不一样的图形;如果是空心图形,每行第一个和最后一个位置输出星号,其他位置输出空格。现在我们练习输出变化的字符,在打印星号图形的基础上,原来输出*号的位置,将printf(*);改为printf(%2d,x);当然,原来输出一个*号的地方只占一个字符的位置,现在都要改为2个字符的位置,如果输出的是数字且多于2个,则要是%3d或%4d了。x是多少呢?则要寻找其规律,就是该输出位置与所在行列的关系。注意给出的测试用例,输出的数字是左对齐啊。不用数组就可以完成。 测试输入期待的输出时间限制内存限制额外进程测试用例 3以文本方式显示 1. 3以文本方式显示 1. 3 2. 323 3. 32123 4. 323 5. 3无限制 64M 0 测试用例 1以文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1