最新C程序设计文档格式.docx

上传人:b****5 文档编号:15819688 上传时间:2022-11-16 格式:DOCX 页数:13 大小:23.08KB
下载 相关 举报
最新C程序设计文档格式.docx_第1页
第1页 / 共13页
最新C程序设计文档格式.docx_第2页
第2页 / 共13页
最新C程序设计文档格式.docx_第3页
第3页 / 共13页
最新C程序设计文档格式.docx_第4页
第4页 / 共13页
最新C程序设计文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

最新C程序设计文档格式.docx

《最新C程序设计文档格式.docx》由会员分享,可在线阅读,更多相关《最新C程序设计文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

最新C程序设计文档格式.docx

{

if((a!

=b)&

&

(a!

=c)&

(b!

=c))

{

i++;

printf("

a:

%d,b:

%d,c:

%d\n"

a,b,c);

}

}

}

}

printf("

Sumofthenumbers:

i);

system("

pause"

);

return0;

}

2.已知A[n]为整数数组,试写出实现下列算法的递归算法:

A)求数组的最大整数。

B)求n个整数的和。

C)求n个整数的平均值。

intGetArrMax(intA[],intn)

if(n<

0)

return0;

elseif(n==1)

returnA[n-1];

else

return((A[n-1]<

GetArrMax(A,n-1))?

GetArrMax(A,n-1):

A[n-1]);

intGetArrSum(intA[],intn)

returnA[n-1]+GetArrSum(A,n-1);

intGetArrAve(intA[],intn)

return(A[n-1]+GetArrAve(A,n-1))/2;

intB[10]={0};

for(inti=0;

i<

10;

i++)

B[i]=1;

intMax=GetArrMax(B,10);

intSum=GetArrSum(B,10);

intAve=GetArrAve(B,10);

3.设ha和hb分别是两个非递减有序单链表的表头结点指针,试设计一个算法,将这两个有序链表合并成一个非递增有序的单链表。

要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的存储空间。

表中允许有重复数据。

4.用指向指针的方法对10个字符串排序并输出。

5.编写一个函数getbits,从一个16位的单元中取出某几位(即该几位保留原值,其余位为0)。

函数调用形式为:

getbits(value,n1,n2),value为该16位数的值,n1为欲取出的起始位,n2为欲取出的结束位。

例如:

getbits(0101675,5,8)表示对八进制打印出来。

注意,应当将这几位数右移到最右端,然后用八进制形式输出。

6.魔术师表演节目,她将红桃和黑桃全部迭在一起,牌面朝下放在手中,对观众说:

最上面一张是黑桃A,翻开后放在桌上。

以后,从上至下每数两张全依次放在最底下,第三张给观众看,便是黑桃2,放在桌上后再数两张依次放在最底下,第三张给观众看,是黑桃3。

如此下去,观众看到放在桌上上牌的顺序是:

黑桃A2345678910JQK

红桃A2345678910JQK

问魔术师手中牌的原始顺序是什么(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.

2015

1、程序阅读题(每题3分,共6分)

(1)

#defineproduct(x)(x*x)

intmain()

inti=3,j,k;

j=product(i++);

k=product(++i);

j=%d,k=%d"

j,k);

以上程序运行结果:

_j=9,k=25_____

(2)有1020个西瓜,第一天卖了一半多两个,以后每天卖剩下的一半多两个,下面的程序统计卖完所需的天数。

请填空:

stdio.h>

main()

intday,x1,x2;

day=0;

x1=1020;

while(_x1!

=0__)

x2=_x1/2-2___;

x1=x2;

day++;

day=%d\n"

day);

2、程序设计题(写出完整的C语言程序,在程序中必须给出清楚的注释,12题共计94分)。

1.写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个(3分)。

#defineMIN((a),(b))(a)>

(b)?

(b):

(a)

2编写函数将a、b的值进行交换,要求不适用任何中间变量(4分)。

Swp(a,b)

a=a^b;

b=a^b;

3.编写函数getbits从一个16位的单元中取出以x1开始至x2结束的某几位,起始位与结束位都从左向右计算。

同时编写主函数调用getbits进行验证(6分)。

unsignedshortgetbits(unsignedshortvalue,unsignedcharx1,unsignedcharx2)

unsignedshorttemp=~0;

temp=(temp>

>

x1)&

(temp<

<

(16-x2));

temp=value&

temp;

temp=temp>

(16-x2);

returntemp;

intmain(void)

unsigneda;

unsignedcharx1,x2;

inputa:

"

scanf("

%o"

&

a);

inputstartbitx1,andendbitx2:

%d,%d"

x1,&

x2);

%d\n"

getbits(a,x1-1,x2));

}

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开始的各单元释放(不能再被程序使用,除非再度开辟)。

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.编写程序输出100~1000内的可逆素数。

可逆素数是指:

一个素数将其各位数字的顺序倒过来构成的饭序数也是素数。

如157和751均为素数,它们是可逆素数。

3.有两个磁盘文件“A”和“B”,各存放若干个按升序排列的实数。

写一个程序,将“A”和“B”两个文件中的实数存放到新文件“C”中,且“C”中的实数仍然以升序排列。

4.将一个5x5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放),编写一个函数实现之,用main函数调用。

5.用递归法将一个整数N转换成字符串,例如输入483,应输出字符串“483”。

N的位数不确定,可以是任意位数的整数。

6.设有一个unsignedlong型整数,现要分别将其前2个字节和后2个字节作为2个unsignedin型整数输出(设一个int型数据占2个字节),编写一个函数partition实现上述要求。

要求在主函数输入该long型整数,在函数partition中输出结果。

7.在主函数main中输入10个不等长的字符串,用另一个函数sort对它们进行排序,然后在主函数main中输出这10个已排好的字符串。

要求用指针数组完成。

8.已知有两个单链表A和B,其头指针分别为HA何HB,编写一个函数从单链表A中删除自第i个起的共m个元素,然后将它们插入到单链表B的第j个元素之前。

9.M只猴子要选大王,选举方法如下:

所用猴子按照1...M编号围坐一圈,从第1浩开始按顺序1,2,...,N(N<

M)报数,凡报到N的猴子退出到圈外,再从下一个猴子开始继续1,2,...,N报数,报到N的猴子退出,如此循环,直到圈内只剩下一只猴子时,这只猴子就是大王。

给定M和最后一个出圈者的编号S,求最小的N?

10.有A、B、C、D、E五人,每人额头上都贴了一张黑或白的纸,五人对坐。

每人都可以看到其它人额头上的纸的颜色。

五人相互观察后,

A说:

“我看见有三人额头上贴的是白纸

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

当前位置:首页 > 医药卫生 > 基础医学

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

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