




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
20161、 程序设计(用C语言编程实现,并给出清楚的注释。共9题,100分)。1. 张老师有五本不同的新书,要借给A,B,C三位同学,若每人每次只能借一本,则可以有多少种不同的借法?(10分)#include int _tmain(int argc, _TCHAR* argv)int a,b,c,i=0;for(a=0;a5;a+)for(b=0;b5;b+)for(c=0;c5;c+)if(a!=b)&(a!=c)&(b!=c)i+;printf(a: %d,b: %d,c: %dn,a,b,c);printf(Sum of the numbers: %dn,i);system(pause);return 0;2. 已知An为整数数组,试写出实现下列算法的递归算法:A) 求数组的最大整数。B) 求n个整数的和。C) 求n个整数的平均值。(10分)#include int GetArrMax(int A,int n)if(n0)return 0;else if(n=1)return An-1;elsereturn (An-1GetArrMax(A,n-1)?GetArrMax(A,n-1):An-1);int GetArrSum(int A,int n)if(n0)return 0;else if(n=1)return An-1;return An-1+GetArrSum(A,n-1);int GetArrAve(int A,int n)if(n0)return 0;else if(n=1)return An-1;return (An-1+GetArrAve(A,n-1)/2;int _tmain(int argc, _TCHAR* argv)int B10=0;for(int i=0;i10;i+)Bi =1;int Max = GetArrMax(B,10);int Sum = GetArrSum(B,10);int Ave = GetArrAve(B,10);return 0;3. 设ha和hb分别是两个非递减有序单链表的表头结点指针,试设计一个算法,将这两个有序链表合并成一个非递增有序的单链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的存储空间。表中允许有重复数据。(10分)4. 用指向指针的方法对10个字符串排序并输出。(10分)5. 编写一个函数getbits,从一个16位的单元中取出某几位(即该几位保留原值,其余位为0)。函数调用形式为:getbits(value,n1,n2),value为该16位数的值,n1为欲取出的起始位,n2为欲取出的结束位。例如:getbits(0101675,5,8)表示对八进制打印出来。注意,应当将这几位数右移到最右端,然后用八进制形式输出。(10分)6. 魔术师表演节目,她将红桃和黑桃全部迭在一起,牌面朝下放在手中,对观众说:最上面一张是黑桃A,翻开后放在桌上。以后,从上至下每数两张全依次放在最底下,第三张给观众看,便是黑桃2,放在桌上后再数两张依次放在最底下,第三张给观众看,是黑桃3。如此下去,观众看到放在桌上上牌的顺序是:黑桃 A 2 3 4 5 6 7 8 9 10 J Q K红桃 A 2 3 4 5 6 7 8 9 10 J Q K问魔术师手中牌的原始顺序是什么(12分)?7. 编写一个算法,检查一个程序中的花括号、方括号是否配对,若能够全部配对则返回1,否则返回0.(12分)8. 编写一个函数,找出一个二维数组的鞍点,即该位置上的元素在该行最大,在该列上最小(也可能没有鞍点),并分析函数的时间的复杂度。(12分)9. 一个长方体P=(x,y,z)|0=x=L,0=y=W,0=z=H,大小为L*W*H。长方体表面有任意两点A(x1,y1,z1)和B(x2,y2,z2),A,B两点可由长方体表面的折线连接。求出A和B的最短距离(L,W,H和点的坐标都是整数,0=L,W,H=1000)。(14分)3. 20151、 程序阅读题(每题3分,共6分)(1)#define product(x) (x*x)int main()int i=3,j,k;j=product(i+);k=product(+i);printf(j=%d,k=%d,j,k);return 0;以上程序运行结果:_j=9,k=25_(2) 有1020个西瓜,第一天卖了一半多两个,以后每天卖剩下的一半多两个,下面的程序统计卖完所需的天数。请填空:#include main()int day,x1,x2;day = 0;x1 = 1020;while(_x1!=0_)x2=_x1/2-2_;x1 = x2;day+;printf(day = %dn,day);2、 程序设计题(写出完整的C语言程序,在程序中必须给出清楚的注释,12题共计94分)。1. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个(3分)。#define MIN(a),(b) (a)(b)?(b):(a)2编写函数将a、b的值进行交换,要求不适用任何中间变量(4分)。Swp(a,b) a=ab; b=ab; a=ab; 3. 编写函数getbits从一个16位的单元中取出以x1开始至x2结束的某几位,起始位与结束位都从左向右计算。同时编写主函数调用getbits进行验证(6分)。unsigned short getbits(unsigned short value, unsigned char x1,unsigned char x2)unsigned short temp = 0;temp = (tempx1)&(temp(16-x2);return temp;int main(void)unsigned a;unsigned char x1,x2;printf(input a:);scanf(%o,&a);printf(input start bit x1, and end bit x2:);scanf(%d,%d,&x1,&x2);printf(%dn,getbits(a,x1-1,x2);system(pause);return 0; 4. 求两个正整数m和n的最大公约数,要求采用非递归方法与递归方法分别实现(5分)。5. 输入一行文字,找出其中大写字母、小写字母、空格、数字及其他字符各有多少(7分)?6. 用指向指针的指针的方法对5个字符串排序并输出(8分)。7. 自定义字符型指针函数,实现任意两个字符串的连接,并返回连接之后的新字符串的首地址(8分)。8. 数字螺旋方阵的形式如图一所示。请将螺旋方阵存放在nxn的二维数组中,并将其打印输出,要求n由程序读入,数字螺旋方阵由程序自动生成(而非人为地初始化或赋值)(10分)9. 现有21根火柴,两人轮流取,每人每次可以取1至4根,不可多取,也不能不取,谁取最后一根火柴谁输。请编写一个程序进行人机对弈,要求人先取,计算机后取,计算机一方为“常胜将军”(10分)。10. 编写一个函数alloc(n),用来在内存新开辟一个连续的空间(n个字节)。此函数的返回值是一个指针,指向新开辟的连续空间的起始地址。再写一个函数free(p),将地址p开始的各单元释放(不能再被程序使用,除非再度开辟)。(10分)11. 采用单链表来存储多项式的结构,并编写一个产生多项式链表的函数;基于多项式链表结构,编写程序实现两个多项式相加的运算(10分)。12. 在一个旅馆中住着六个不同国籍的人,他们分别来自美国、德国、英国、法国、俄罗斯和意大利。他们的名字叫A、B、C、D、E和F。,名字的顺序与上面的国籍不一定互相对应的。现在已知:(1)A和美国人是医生。(2)E和俄罗斯人是教书。(3)C和德国人是技师。(4)B和F曾经当过兵,而德国人从未参过军。(5)法国人比A年龄大;意大利人比C年龄大。(6)B同美国人下周要去西安旅行,而C同法国人下周要去杭州度假。试问由上述已知条件,A、B、C、D、E和F各是哪国人(12分)?2014(1) 用C语言编程实现(写出完整的C语言程序,在程序中需给出清楚的注释,共计100分)。1. 编写两个函数,分别求两个数的最大公约数和最小公倍数,用主函数调用这两个函数输出结果。(8分)2. 编写程序输出1001000内的可逆素数。可逆素数是指:一个素数将其各位数字的顺序倒过来构成的饭序数也是素数。如157和751均为素数,它们是可逆素数。(8分)3. 有两个磁盘文件“A”和“B”,各存放若干个按升序排列的实数。写一个程序,将“A”和“B”两个文件中的实数存放到新文件“C”中,且“C”中的实数仍然以升序排列。(10分)4. 将一个5x5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放),编写一个函数实现之,用main函数调用。(10分)5. 用递归法将一个整数N转换成字符串,例如输入483,应输出字符串“483”。N的位数不确定,可以是任意位数的整数。(10分)6. 设有一个unsigned long 型整数,现要分别将其前2个字节和后2个字节作为2个unsigned in型整数输出(设一个int型数据占2个字节),编写一个函数partition实现上述要求。要求在主函数输入该long型整数,在函数partition中输出结果。(10分)7. 在主函数main中输入10个不等长的字符串,用另一个函数sort对它们进行排序,然后在主函数main中输出这10个已排好的字符串。要求用指针数组完成。(10分)8. 已知有两个单链表A和B,其头指针分别为HA何HB,编写一个函数从单链表A中删除自第i个起的共m个元素,然后将它们插入到单链表B的第j个元素之前。(10分)9. M只猴子要选大王,选举方法如下:所用猴子按照1.M编号围坐一圈,从第1浩开始按顺序1,2,.,N(NM)报数,凡报到N的猴子退出到圈外,再从下一个猴子开始继续1,2,.,N报数,报到N的猴子退出,如此循环,直到圈内只剩下一只猴子时,这只猴子就是大王。给定M和最后一个出圈者的编号S,求最小的N?(12分)10. 有A、B、C、D、E五人,每人额头上都贴了一张黑或白的纸,五人对坐。每人都可以看到其它人额头上的纸的颜色。五人相互观察后,A说:“我看见有三人额头上贴的是白纸,一人额头上贴的是黑纸。”B说:“我看见其它四人额头上贴的都是黑纸。”C说:“我看见一人额头上贴的是白纸,其它三人额头上贴的是黑纸。”D说:“我看见四人额头上贴的都是白纸。”E什么也没说。现在已知额头上贴黑纸的人说的都是谎话,额头上贴白纸的人说的都是实话。问这五人谁的额头是贴白纸,谁的额头是贴黑纸?用C语言编程实现。(12分)2013(1) 程序阅读题(每题5分,共20分)1. 当a=1、b=3、c=5、d=4时,执行以下程序段后x的值是_2_ if(ab)if(cd)x=1;elseif(ac)if(bd)x=2;else x=3;else x =6;else x=7;2. 下面程序的功能是在3个字符串中找出最小的。请填空。#include #include main()char s20,str320;int i;for(i=0;i3;i+)gets(stri);strcpy(s,(_);if(strcmp(str2,s)0) strcpy(_);printf(%sn,_);3. 以下程序运行的结果是_main()int a3=1,2,3,4,5,0,(*pa)3,i;pa=a;for(i=0;i3;i+)if(i1_)0;i+);return i;(2) 程序设计题(要求用C语言实现,共80分)1) 已知两个单链表A与B分别表示两个集合,其元素递增排列,编写一个函数求出A和B的交集C,要求C同样以元素值递增的单链表形式存储(10分)。2) 编一程序,检查你所使用的计算机系统的C编译系统在执行右移时时按照逻辑右移的原则还是按照算术右移的原则?如果是逻辑右移,请编写一函数实现算术右移;如果是算术右移,请编写一函数实现逻辑右移(10分)。3) 设有一个数列,包含10个数,已按升序排列。现要求编写程序,把从指定位置开始的n个数按逆序重新排列并输出新的完整数列。进行逆序处理时要求使用指针方法。(例如,2、4、6、8、10、12、14、16、18、20,若要求把从第4个数开始的5个数按逆序重新排列为2、4、6、16、14、12、10、8、18、20)(10分)4) 从3个红球、5个白球、6个黑球中任意取出8个球,且其中必须要有红球和白球。请编写程序,输出所有方案(10分)。5) 用条件编译的方法实现以下功能:输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如“a”变成“b”.,“y”变成“z”,而“z”变成“a”。其它字符不变)(10分)。6) 采用顺序结构存储串,编写一个函数,求串A和串B的一个最长公共子串(15分)。7) 小张去旅游需要带一些物品,有5种物品供选择,每种物品的体积、重量、数量、价值分别如下表所示:物品编号体积(cm3)重量(kg)数量(个)价值(元)130310425081053102102423583513020511现在限制总的体积最多为500cm3,总的总量最多为100kg,请问小张能带上的物品的最大总价值是多少?要求采用递归编程实现(15分)。201220111、 阅读程序题(每题5分,共20分)1. 当a=1,b=3,c=5,d=4时,执行完下面一段程序段后x的值是_if(ab)if(cd)x=1;elseif(ac)if(bd)x=2;else x=3;else x =6;else x=7;2. 下面程序的运行结果是_#include main()int a,b;for(a=1,b=1;a=20)break;if(b%3=1)b+=3;continue;b-=5printf(%dn,a);3. 下面程序的运行结果是_main()int a66,i,j;for(i=1;i6;i+)for(j=1;j6;j+)aij=(i/j)*(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高铁站安全知识培训课件
- 济南市2024-2025学年八年级下学期语文期末测试试卷
- 电费电价知识培训总结课件
- 电脑课件之家信息检索
- 高考小说主题探究课件
- 建设项目可研及勘察设计合同
- 道路工程合同
- 电网高级知识培训课件
- pet考试真题5及答案
- 四川省自贡市高新技术产业开发区六校2024-2025学年四年级上册期中考试科学试卷(含答案)
- 山东省环境卫生作业计价定额编制说明
- 飞机机型培训课件
- 中国声乐作品课件图片
- 静态爆破监测方案(3篇)
- 神经退行性疾病治疗药物讲课件
- 2025年全国新高考I卷高考全国一卷真题英语试卷(真题+答案)
- YC/T 593-2023打叶复烤加工服务能力评价办法
- 医美员工制度管理制度
- 大棚搭建用工合同范本
- T/CGAS 026.2-2023瓶装液化石油气管理规范第2部分:平台建设
- T/CCS 059-2023智能化煤矿运维技术架构与流程
评论
0/150
提交评论