c语言蓝信杯.docx

上传人:laozhun 文档编号:2384800 上传时间:2023-02-17 格式:DOCX 页数:5 大小:21.71KB
返回 下载 相关 举报
c语言蓝信杯.docx_第1页
第1页 / 共5页
c语言蓝信杯.docx_第2页
第2页 / 共5页
c语言蓝信杯.docx_第3页
第3页 / 共5页
c语言蓝信杯.docx_第4页
第4页 / 共5页
c语言蓝信杯.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《c语言蓝信杯.docx》由会员分享,可在线阅读,更多相关《c语言蓝信杯.docx(5页珍藏版)》请在三一办公上搜索。

1、2011 模拟 c语言 高职窗体顶端一 、以下是简答题:1、代码填空形如:“abccba”,“abcba”的串称为回文串,下列代码判断一个串是否为回文串。请补充空白的部分。 char buf = abcde11edcba;int x = 1; for(int i=0; istrlen(buf)/2; i+)if(bufi!=bufstrlen(buf)-i-1)x = 0;break;printf(%sn, x ? 是:否);(3分)2、代码填空下列代码把一个二进制的串转换为整数。请填写缺少的语句;char* p = 1010110001100;int n = 0;for(int i=0;ib

2、) swap(&a, &b);if(bc) swap(&b, &c);if(ab) swap(&a,&b);int m = b;(4分)代码填空下面函数的目的是求出某个日期是该年度的第几天。试完善之。如果传入:year=1980,month=1, day=1则返回 1如果传入:year=1980,month=2, day=1则返回 32int getDayOfYear(int year, int month, int day)int days13= 0,31,28,31,30,31,30,31,31,30,31,30,310,31,29,31,30,31,30,31,31,30,31,30,3

3、1;int flag =(year%4=0 & year%100!=0) | year%400 = 0 ? 1 : 0;int sum = day ;for(int i=0;imonth;i+)sum += daysflagi;return sum;(8分)5、代码填空计算3个A,2个B可以组成多少种排列的问题(如:AAABB, AABBA)是组合数学的研究领域。但有些情况下,也可以利用计算机计算速度快的特点通过巧妙的推理来解决问题。下列的程序计算了m个A,n个B可以组合成多少个不同排列的问题。请完善它。int f(int m, int n)if(m=0 | n=0) return 1;ret

4、urn _;(9分)代码填空(a+b)的n次幂的展开式中各项的系数很有规律,对于n=2,3,4时分别是:1 2 1, 1 3 3 1,1 4 6 4 1。这些系数构成了著名的杨辉三角形: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1下列的程序给出了计算第m层的第n个系数的计算方法,试完善之(m,n都从0算起)。int f(int m, int n)if(m=0) return 1;if(n=0 | n=m) return 1;return f(m-1, n-1)+f(m-1, n); (12分)7、程序设计从键盘输入一个整数(120)则以该数字为矩阵的

5、大小,把1,2,3n*n 的数字按照顺时针螺旋的形式填入其中。例如:输入数字2,则程序输出:1 24 3输入数字3,则程序输出:1 2 38 9 47 6 5输入数字4, 则程序输出:1 2 3 412 13 14 511 16 15 610 9 8 7(16分)#include stdio.h #define N 20main() int n,i,j,k=1; int aNN; memset(a ,0,sizeof(a); printf(input one integer(120):); scanf(%d,&n); if(1=n&n=20) ai=0j=0=k; while(kn*n) wh

6、ile(j+1n&!aij+1) ai+j=+k; while(i+1=0&!aij-1) ai-j=+k; while(i-1=0&!ai-1j) a-ij=+k; for(i=0;in;i+) for(j=0;jn;j+) printf(%dt,aij); printf(n); else printf(input erorr!); getch();8、程序设计从键盘输入一个日期,格式为yyyy-M-d要求计算该日期与1949年10月1日距离多少天例如:用户输入了:1949-10-2程序输出:1用户输入了:1949-11-1程序输出:31(12分)9、程序设计当你输入信用卡号码的时候,有没有

7、担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。该校验的过程:1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。3、将奇数位总和加上偶数位总和,结果应该可以被10整除。例如,卡号是:5432123456788881则奇数、偶数位(用红色标出)分布:5432123456788881奇数位和=35偶数位乘以2(有些要减去9)的结果:1 6 2 6 1 5 7 7,求和=35。最后35+35=70 可以被10整除,认

8、定校验通过。请编写一个程序,从键盘输入卡号,然后判断是否校验通过。通过显示:“成功”,否则显示“失败”。比如,用户输入:356827027232780程序输出:成功(12分)#include #include #include void main() int sumJiShu=0,sumOuShu=0,sum=0,t=0,f=1,i; char kh20; printf(Please input card numbers:n); gets(kh); for(i = 0;khi!=0;i+) t=atoi(khstrlen(kh)-1-i); if(f=1) sumJiShu+=t; f=-f;

9、 else if(t4) sumOuShu+=t*2-9; f=-f; else sumOuShu+=t; f=-f; sum=sumJiShu+sumOuShu; if(sum%10=0) printf(Yesn); else printf(NOn);getch();10、程序设计任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456。求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,则前边补0)。如此往复,数字会落入某个循环圈(称为数字黑洞)。比如,刚才的数字会落入:82962, 75933, 63954, 61974 这个循环圈。请编写程序,找到5位数所有可能的循环圈,并输出,每个循环圈占1行。其中5位数全都相同则循环圈为 0,这个可以不考虑。循环圈的输出格式仿照:82962, 75933, 63954, 61974其中数字的先后顺序可以不考虑。(20分)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号