C语言典型例题.doc_第1页
C语言典型例题.doc_第2页
C语言典型例题.doc_第3页
C语言典型例题.doc_第4页
C语言典型例题.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

2.寻找特殊偶数成绩10开启时间2014年11月4日 星期二 08:00折扣0.8折扣时间2014年11月19日 星期三 08:00允许迟交否关闭时间2014年11月26日 星期三 08:00背景有一种特殊偶数,它每一位上的数字都两两不相同。我们现在需要找出四位数中某一区间内的这类偶数。输入所要寻找的四位偶数的范围。每组输入有两个数字:第一个数字是最小范围;第二个数字是最大范围。如果输入遇到0,输入结束。输出列出此范围内的所有特殊偶数,并且列出此范围内特殊偶数的个数。测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. 300030202. 604060903. 00以文本方式显示 1. 30123014301630182. counter=43. 60426048605260546058607260746078608260844. counter=101秒64M0测试用例 2以文本方式显示 1. 91012. 87-13. 00以文本方式显示 1. Error2. Error1秒64M0Code:#includeint main() int maxnum, minnum, n, g, s, b, q, count = 0; while(1) scanf(%d%d,&minnum,&maxnum); if(minnum = 0 & maxnum = 0) return 0; if(minnum 999 & minnum 999 & maxnum = minnum) for(n = minnum; n = maxnum; n+) if(n % 2 = 0) q = n / 1000; b = n % 1000 / 100; s = n % 100 / 10; g = n % 10; if(q != b & q != s & q != g & b != s & b != g & s != g) count+;printf(%d ,n); printf(n); printf(counter=%dn,count); count = 0; else printf(Errorn); return 0;3.求最小 m 值成绩10开启时间2014年11月4日 星期二 08:05折扣0.8折扣时间2014年11月19日 星期三 08:05允许迟交否关闭时间2014年11月26日 星期三 08:05求满足下列不等式的最小 m。 1 + 2 + 3 + 4 + . + m n例如:n=100,当 m =14 时,满足:1+2+3+4+.+13=91100。输入:n输出:m测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. 100以文本方式显示 1. 141秒64M0Code:#includeint main() int max, i = 0, sum = 0; scanf(%d,&max); while(sum max) i+; sum += i; printf(%dn,i);邮票组合成绩10开启时间2014年11月12日 星期三 06:20折扣0.8折扣时间2014年11月26日 星期三 06:20允许迟交否关闭时间2014年12月3日 星期三 06:20背景: 我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小面值邮票中的一张或几张的组合,可以满足不同邮件的不同的邮资。 现在,邮局有4种不同面值的邮票。在每个信封上最多能贴5张邮票,面值可相同,可不同。输入: 四种邮票的面值。输出: 用这四种面值组成的邮资最大的从1开始的一个连续的区间。说明: 如结果为10,则表明使用4张邮票可组合出1、2、3、4、5、6、7、8、9、10这些邮资。名词解释: 邮资:就是你寄东西需要花多少钱。 邮票面额:是由国家发行的具有固定价格的花纸片,被称为邮票。如果你寄东西,邮局称了重量,告诉你要240分。这样你就要贴邮票了。如果现在邮局的邮票有面值为80分、50分、20分和10分的四种,你就可以采用不同的组合得到240的邮资,例如:采用3张80分的可以凑出240分;或者24张10分的凑起来240分也可以。显然不同邮票的组合都可以得到同样一种邮资。测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. 141221以文本方式显示 1. Themaxis71.1秒64M0测试用例 2以文本方式显示 1. 13712以文本方式显示 1. Themaxis46.1秒64M0Code:#includeint main()int i5,t3126,n,n1,n2,n3,n4,temp = 0;i0 = 0;for(n = 1; n 5; n+)scanf(%d,&in);for(n = 0; n 3126; n+)tn = 0;for(n = 0; n 5; n+)for(n1 = 0; n1 5; n1+)for(n2 = 0; n2 5; n2+)for(n3 = 0; n3 5; n3+)for(n4 = 0; n4 5; n4+)ttemp = in + in1 + in2 + in3 + in4;temp+;for(n = 0; n 3124; n+)for(n1 = n; n1 tn1)temp = tn;tn = tn1;tn1 = temp;temp = 0;for(n = 0; n 3125; n+)if(tn tn + 1 )temp+;if(temp != tn + 1)break;printf(The max is %d.n,temp - 1);return 0;程序讲解示例:整数排排序成绩0开启时间2014年10月19日 星期日 03:15折扣0.8折扣时间2014年12月31日 星期三 03:15允许迟交否关闭时间2014年12月31日 星期三 03:15有一组整数,要将它们从小到大排序,去掉其中重复的数值。输入:第1行,输入整数N,表明接下来将有N(=100)个整数读入。第2N行,输入N个这个数。输出:排序后的整数(去掉重复的数值)例如:输入:3(回车)7 5 7(回车)输出:5 7(回车)测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. 32. 755以文本方式显示 1. 571秒64M0测试用例 2以文本方式显示 1. 52. 10022以文本方式显示 1. 0121秒64M0Code:#includeint main()int n, m, l, i100, temp;scanf(%d,&n);for(m = 0; m n; m+)scanf(%d,&im);for(m = 0; m n - 1; m+)for(l = m + 1; l il)temp = im;im = il;il = temp;printf(%d,i0);temp = i0;for(m = 1; m n; m+)if(temp im)printf( %d,im);temp = im;printf(n);临时题1.单词排序成绩10开启时间2014年11月27日 星期四 02:55折扣0.8折扣时间2014年12月10日 星期三 02:55允许迟交否关闭时间2014年12月17日 星期三 02:55输入 5 个单词,将它们按从大到小的顺序排列后输出。输入: 5个单词输出: 排序后的顺序测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. BASIC2. C+3. Pascal4. C5. Fortran以文本方式显示 1. Pascal2. Fortran3. C+4. C5. BASIC1秒64M0测试用例 2以文本方式显示 1. BASIC2. C+3. C4. Fortran5. Pascal以文本方式显示 1. Pascal2. Fortran3. C+4. C5. BASIC1秒64M0Code:#include#include int main()char s5100, t100;int i, n;for(i = 0; i 5; i+)scanf(%s,si);for(i = 0; i 4; i+)for(n = i + 1; n 5; n+)if(strcmp(si,sn) 0)strcpy(t,si);strcpy(si,sn);strcpy(sn,t);for(i = 0; i 5; i+)printf(%sn,si);return 0;2.寻找矩阵的鞍点成绩10开启时间2014年11月27日 星期四 03:00折扣0.8折扣时间2014年12月10日 星期三 03:00允许迟交否关闭时间2014年12月17日 星期三 03:00二维数组中的鞍点,即该位置上的元素是所在行上的最大值,是所在列上的最小值。二维数组也可能没有鞍点。输入一个二维数组的行数n,列数m,二维数组的诸元素值;输出数组的鞍点,以及鞍点所在的行列号。输入:第一行为矩阵的行数和列数,从第二行开始,为矩阵本身(假设输入的矩阵只有0和1个鞍点) 3 4 1 3 5 3 2 3 4 1 3 2 6 7输出: Point: a12 = 4 (下标从0开始)测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. 342. 13533. 23414. 3267以文本方式显示 1. Point:a12=41秒64M0测试用例 2以文本方式显示 1. 342. 12343. 84364. 9451以文本方式显示 1. NoPoint1秒64M0Code:#include#include int main()int i100100, m, n, x, y, temp, log = 0;scanf(%d%d,&m,&n);for(y = 0; y m; y+)for(x = 0; x n; x+)scanf(%d,&iyx);/将每行的最大值放入每行的最后; for(y = 0; y m; y+)temp = 0;for(x = 0; x temp)temp = iyx;iyn = temp;/将每列的最小值放入每列的最后for(x = 0; x n; x+)temp = 0x7fffffff;for(y = 0; y m; y+)if(iyx temp)temp = iyx;imx = temp;for(y = 0; y m; y+)for(x = 0; x n; x+)if(iyx = imx) & (iyx = iyn)printf(Point:a%d%d=%dn,y,x,iyx);log = 1;if(log = 0)printf(No Pointn);return 0;3.身份证的奥秘成绩10开启时间2014年11月27日 星期四 03:05折扣0.8折扣时间2014年12月10日 星期三 03:05允许迟交否关闭时间2014年12月17日 星期三 03:05背景18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999公民身份号码中做了明确的规定。 GB11643-1999公民身份号码为GB11643-1989社会保障号码的修订版,其中指出将原标准名称社会保障号码更名为公民身份号码,另外GB11643-1999公民身份号码从实施之日起代替GB11643-1989。GB11643-1999公民身份号码主要内容如下:一、范围该标准规定了公民身份号码的编码对象、号码的结构和表现形式,使每个编码对象获得一个唯一的、不变的法定号码。二、编码对象公民身份号码的编码对象是具有中华人民共和国国籍的公民。三、号码的结构和表示形式1、号码的结构公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。2、地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。3、出生日期码表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。4、顺序码表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。5、校验码(1)十七位数字本体码加权求和公式S = Sum(Ai * Wi), i = 0, . , 16 ,先对前17位数字的权求和Ai: 表示第i位置上的身份证号码数字值Wi: 表示第i位置上的加权因子Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2(2)计算模Y = mod(S, 11) Y = S % 11(3)通过模得到对应的校验码Y: 0 1 2 3 4 5 6 7 8 9 10校验码: 1 0 X 9 8 7 6 5 4 3 2四、举例如下:北京市朝阳区:东省汕头市: 44052418800101001415位的身份证号升级办法:15位的身份证号:dddddd yymmdd xx p18位的身份证号:dddddd yyyymmdd xx p yo 其中dddddd为地址码(省地县三级)o yyyymmdd yymmdd 为出生年月日o xx顺号类编码o p性别15 位的 yy 年升为 18 位后,变成 19yy年,但对于百岁以上老人, 则为 18yy 年,此时,他们的最后三位顺序码为996, 997, 998 或 999 来标记。输入输入n组身份证号码,第一行为个数,以后每行为身份证号码。输出如果输入的身份证号码为15位,则将其升级为18位后显示输出;否则判断其是否为合法身份证号,并逐行输出。测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. 42. 3506221979041303313. 11010519491231002X4. 1101054912310025. 110105491231996以文本方式显示 1. Invalid2. Valid3. 11010519491231002X4. 1101051849123199651秒64M0Code:#include#include int main()int n, i, m, j, sumt, y;char s10019, temp19, t;scanf(%d,&n);for(i = 0; i n; i+)scanf(%s,si);for(i = 0; i n; i+)m = 0;while(sim != 0)m+;if( m != 15 & m != 18)printf(Invalidn);if( m = 15)for(j = 0; j 5)temp6 = 1; temp7 = 8;elsetemp6 = 1; temp7 = 9;for(j = 6; j 16; j+)tempj + 2 = sij;strcpy(si,temp);sumt = (si0 - 0) * 7 + (si1- 0) * 9 + (si2 - 0) * 10 + (si3 - 0) * 5 + (si4 - 0) * 8 + (si5 - 0) * 4 + (si6-0) * 2 + (si7-0) * 1 + (si8-0) * 6 + (si9-0) * 3 + (si10-0) * 7 + (si11-0) * 9 + (si12-0) * 10 + (si13-0) * 5 + (si14-0)* 8 + (si15-0) * 4 + (si16-0) * 2;/sumt = atoi(si0) * 7 + atoi(si1) * 9 + atoi(si2) * 10 + atoi(si3) * 5 +atoi(si4) * 8 + atoi(si5) * 4 + atoi(si6) * 2 + atoi(si7) * 1 + atoi(si8) * 6 + atoi(si9) * 3 + atoi(si10) * 7 + atoi(si11) * 9 + atoi(si12) * 10 + atoi(si13) * 5 + atoi(si14)* 8 + atoi(si15) * 4 + atoi(si16) * 2;y = sumt % 11;switch (y)case 0: si17 = 1; break;case 1: si17 = 0; break;case 2: si17 = X; break;case 3: si17 = 9; break;case 4: si17 = 8; break;case 5: si17 = 7; break;case 6: si17 = 6; break;case 7: si17 = 5; break;case 8: si17 = 4; break;case 9: si17 = 3; break;case 10: si17 = 2; break;si18 = 0;printf(%sn,si);if(m = 18)sumt = (si0 - 0) * 7 + (si1- 0) * 9 + (si2 - 0) * 10 + (si3 - 0) * 5 + (si4 - 0) * 8 + (si5 - 0) * 4 + (si6-0) * 2 + (si7-0) * 1 + (si8-0) * 6 + (si9-0) * 3 + (si10-0) * 7 + (si11-0) * 9 + (si12-0) * 10 + (si13-0) * 5 + (si14-0)* 8 + (si15-0) * 4 + (si16-0) * 2;y = sumt % 11;switch (y)case 0: t = 1; break;case 1: t = 0; break;case 2: t = X; break;case 3: t = 9; break;case 4: t = 8; break;case 5: t = 7; break;case 6: t = 6; break;case 7: t = 5; break;case 8: t = 4; break;case 9: t = 3; break;case 10: t = 2; break;if(t = si17)printf(Validn);elseprintf(Invalidn);return 0;4.安全的密码(选做)成绩0开启时间2014年11月27日 星期四 03:10折扣0.8折扣时间2014年12月10日 星期三 03:10允许迟交否关闭时间2014年12月17日 星期三 03:10随着电子设备的广泛运用,密码也渐渐融入每个人的生活。保护好密码,不仅关系到个人隐私,更关系到个人的财产和安全。一个安全的密码,最好由大小写字母、数字或符号组成。包含越多种类的字符,其安全性就越高。同时密码还需要有一定的长度,通常至少要由六个以上的字符组成。并不是每个人都喜欢这样复杂的密码,很多人在设置密码的时候,喜欢使用自己的名字或者生日,但这是很大的安全隐患。任务林晓炜正在设计一个网络交易系统,为了保证用户的密码安全,他需要一个程序,判断用户自己设置的密码是否安全,如果不安全,则给出提示。现在他向你求助,请你帮忙设计一个程序来解决这个问题。应当按照以下的规则来判断密码是否安全:1. 如果密码长度小于 6 位,则不安全2. 如果组成密码的字符只有一类,则不安全3. 如果组成密码的字符有两类,则为中度安全4. 如果组成密码的字符有三类或以上,则为安全通常,可以认为数字、大写字母、小写字母和其它符号为四类不同的字符。输入输入的第一行是一个整数 N,表明后面有多少组密码。随后的 N 行输入包括 N 个密码,每个密码的长度均小于 20 个字符。输出针对每一个密码判断并输出它是否安全。对于不安全的密码输出 Not Safe,对于中度安全的密码输出 Medium Safe,对于安全的密码输出 Safe输入样例41234abcdefABC1231#c3Gh输出样例Not SafeNot SafeMediumSafe Safe测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. 102. abcDEF3. ABC4. qw5. 6. ABCDEFGHIJKLMNOPQRST7. 123456789012345678908. 1aB9. 1B10. aX11. qwe123%&ABC以文本方式显示 1. MediumSafe2. NotSafe3. NotSafe4. NotSafe5. NotSafe6. NotSafe7. Safe8. NotSafe9. Safe10. Safe1秒64M0Code:#include#include int main()int n, i, j, m, log1, log2, log3, log4;char s10021, t10;scanf(%d,&n);gets(t);for(i = 0; i n; i+)gets(si);for(i = 0; i n; i+)j = 0;while(sij != 0)j+;if(j = 0 & sij = a & sij = A & sij = 0 & sij = a & sij = A & sij = 3) printf(Safen);return 0;期中考试测试题2.回文数成绩10开启时间2014年11月20日 星期四 02:50折扣0.8折扣时间2014年12月4日 星期四 02:50允许迟交否关闭时间2014年12月11日 星期四 02:50输出所有不超过(取n256)的、其平方具有对称性质的正整数(也称为回文数)。如: 1*1=1;2*2=4;3*3=9;11*11=121测试输入期待的输出时间限制内存限制额外进程测试用例 1以文本方式显示 1. 3以文本方式显示 1. 12. 21秒64M0测试用例 2以文本方式显示 1. 25以文本方式显示 1. 12. 23. 34. 115. 226. 1秒64M0Code:#include int main() int n, m, square, i, temp, log; char s6; scanf(%d,&n); for(m = 1; m n; m+) i = 0; square = m * m; log = 1; while

温馨提示

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

评论

0/150

提交评论