C程序设计

上传人:206****923 文档编号:43546225 上传时间:2018-06-06 格式:DOC 页数:12 大小:60KB
返回 下载 相关 举报
C程序设计_第1页
第1页 / 共12页
C程序设计_第2页
第2页 / 共12页
C程序设计_第3页
第3页 / 共12页
C程序设计_第4页
第4页 / 共12页
C程序设计_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《C程序设计》由会员分享,可在线阅读,更多相关《C程序设计(12页珍藏版)》请在金锄头文库上搜索。

1、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;aint GetArrMax(int A,int n)if(nmain()int day,x1,x2;day = 0;x1 = 1020;while(_x1!=0_)x2=_x1/2-2_;x1 = x2;day+;printf(“day = %dn“,d

2、ay);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 get

3、bits(unsigned short value, unsigned char x1,unsigned char x2) unsigned short temp = 0; temp = (tempx1) return temp; int main(void) unsigned a; unsigned char x1,x2; printf(“input a:“); scanf(“%o“,printf(“input start bit x1, and end bit x2:“); scanf(“%d,%d“,printf(“%dn“,getbits(a,x1-1,x2); system(“pau

4、se“); return 0; 4.求两个正整数 m 和 n 的最大公约数,要求采用非递归方法与递归方法分别实现(5 分) 。 5.输入一行文字,找出其中大写字母、小写字母、空格、数字及其他字符各有多少(7 分)?6.用指向指针的指针的方法对 5 个字符串排序并输出(8 分) 。 7.自定义字符型指针函数,实现任意两个字符串的连接,并返回连接之后的新字符串的首 地址(8 分) 。 8.数字螺旋方阵的形式如图一所示。请将螺旋方阵存放在 nxn 的二维数组中,并将其打印 输出,要求 n 由程序读入,数字螺旋方阵由程序自动生成(而非人为地初始化或赋值) (10 分) 9.现有 21 根火柴,两人轮流

5、取,每人每次可以取 1 至 4 根,不可多取,也不能不取,谁取 最后一根火柴谁输。请编写一个程序进行人机对弈,要求人先取,计算机后取,计算机一 方为“常胜将军” (10 分) 。 10.编写一个函数 alloc(n),用来在内存新开辟一个连续的空间(n 个字节) 。此函数的返回 值是一个指针,指向新开辟的连续空间的起始地址。再写一个函数 free(p),将地址 p 开始的 各单元释放(不能再被程序使用,除非再度开辟) 。 (10 分) 11.采用单链表来存储多项式的结构,并编写一个产生多项式链表的函数;基于多项式链表 结构,编写程序实现两个多项式相加的运算(10 分) 。 12.在一个旅馆中住

6、着六个不同国籍的人,他们分别来自美国、德国、英国、法国、俄罗斯 和意大利。他们的名字叫 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 语言程序,在程序中需给出清楚的注释,共计

7、 100 分) 。 1.编写两个函数,分别求两个数的最大公约数和最小公倍数,用主函数调用这两个函数输 出结果。 (8 分) 2.编写程序输出 1001000 内的可逆素数。可逆素数是指:一个素数将其各位数字的顺序倒 过来构成的饭序数也是素数。如 157 和 751 均为素数,它们是可逆素数。 (8 分) 3.有两个磁盘文件“A”和“B”,各存放若干个按升序排列的实数。写一个程序,将“A” 和“B”两个文件中的实数存放到新文件“C”中,且“C”中的实数仍然以升序排列。 (10 分) 4.将一个 5x5 的矩阵中最大的元素放在中心,4 个角分别放 4 个最小的元素(顺序为从左到 右,从上到下顺序依

8、次从小到大存放) ,编写一个函数实现之,用 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 个不等长的字

9、符串,用另一个函数 sort 对它们进行排序,然后 在主函数 main 中输出这 10 个已排好的字符串。要求用指针数组完成。 (10 分) 8.已知有两个单链表 A 和 B,其头指针分别为 HA 何 HB,编写一个函数从单链表 A 中删除 自第 i 个起的共 m 个元素,然后将它们插入到单链表 B 的第 j 个元素之前。 (10 分) 9.M 只猴子要选大王,选举方法如下:所用猴子按照 1.M 编号围坐一圈,从第 1 浩开始按 顺序 1,2,.,N(N#include main()char s20,str320;int i;for(i=0;i1_)0;i+);return i; (2)程序设

10、计题(要求用 C 语言实现,共 80 分) 1)已知两个单链表 A 与 B 分别表示两个集合,其元素递增排列,编写一个函数求出 A 和B 的交集 C,要求 C 同样以元素值递增的单链表形式存储(10 分) 。2)编一程序,检查你所使用的计算机系统的 C 编译系统在执行右移时时按照逻辑右移的原 则还是按照算术右移的原则?如果是逻辑右移,请编写一函数实现算术右移;如果是算术 右移,请编写一函数实现逻辑右移(10 分) 。3)设有一个数列,包含 10 个数,已按升序排列。现要求编写程序,把从指定位置开始的 n 个数按逆序重新排列并输出新的完整数列。进行逆序处理时要求使用指针方法。 (例如, 2、4、

11、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

12、分) 。 7)小张去旅游需要带一些物品,有 5 种物品供选择,每种物品的体积、重量、数量、价值 分别如下表所示:物品编号体积(cm3)重量(kg)数量(个)价值(元)130310425081053102102423583513020511现在限制总的体积最多为 500cm3,总的总量最多为 100kg,请问小张能带上的物品的最大 总价值是多少?要求采用递归编程实现(15 分) 。201220111、阅读程序题(每题 5 分,共 20 分) 1.当 a=1,b=3,c=5,d=4 时,执行完下面一段程序段后 x 的值是_if(amain()int a,b;for(a=1,b=1;a=20)bre

13、ak;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)*(j/i);for(i=1;i6;i+)for(j=1;j6;j+)printf(“%2d“,aij);printf(“n“); 4.以下程序的运行结果是_main()increment();increment();increment();increment()int x= 0;x+=1;printf(“%d“,x);2、程序设计题 1. 两个乒乓球队进行比赛,各出

14、 3 人,甲队为 A、B、C3 人,乙队为 X、Y、Z3 人,已抽签 决定了比赛名单。有人向队员打听比赛的名单,A 说他不和 X 比,C 说他不和 X、Z 比。编 写程序找出 3 对赛手的名单。 (10 分) 2. 请编程找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。 也可能没有鞍点。 (10 分) 3. 编写递归函数将一个整数 n 转换成字符串,例如输入 483,应该输出字符串“483” 。n 的位数不确定,可以是任意位数的整数。 (15 分) 4. 设 p 为指向一个字符串的指针,编写函数求出该字符串的长度。 (15 分)函数格式为: int length( char *p) 5. 已有 a、b 两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学 号升序排列。 (15 分) 6. 有两个磁盘文件“A”和“B”,各存放一行字母,要求把这两个文件中的信息合并(按 字母顺序排列) ,输出到一个新文件“C”中。 (15 分)20101设计程序完成如下功能:对任意 C 语言源程序文件,删除其中的注释,将连续多个空格 合并成一个空格(字符串常量中的空格除外) 。注:C 语言两种形式的注释都要处理。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号