- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2002年程序试卷(下).doc
2002年程序试卷(下)
试题一
阅读下列算法说明和算法,将应填入 (n) 处的字句写在答题纸的对应栏内。
[算法说明]
为便于描述屏幕上每个像素的位置,在屏幕上建立平面直角坐标系。屏幕左上角的像素设为原点,水平向右方向设为x轴,垂直向下方向设为y轴。
设某种显示器的像素有128X128,即在每条水平线和每条垂直线上都有128个像素。这样,屏幕上的每个像素可用坐标(x,y)来描述其位置,其中x和y都是整数,0≤x≤127,0≤y≤127。
现用一维数组MAP来存储整个一屏显示的位图信息。数组的每个元素有16位二进位,其中每位对应一个像素,“1”表示该像素“亮”,“0”表示该像素“暗”。数组MAP的各个元素与屏幕上的像素相对应后,其位置可排列如下:
MAP(0),MAP(1),……,MAP(7)
MAP(8),MAP(9),……,MAP(15)
……
MAP(1016),MAP(1017),……,MAP(1023)
下述算法可根据用户要求,将指定坐标(x,y)上的像素置为“亮”或“暗”。
在该算法中,变量X,Y,V,S,K都是16位无符号的二进制整数。数组BIT中的每个
元素BIT(K)(K=0,…,15)的值是左起第K位为1,其余位均为0的16位无符号二进制整
数,即BIT(K)的值为2l5-k。
[算法]
第1步根据用户指定像素的位置坐标(x,y),算出该像素的位置所属的数组元素MAP(V)。这
一步的具体实现过程如下:
1、将x送变量X,将y送变量Y;
2、将Y左移 (1) 位,仍存入变量Y;
3、将X右移 (2) 位,并存入变量S;
4、计算Y+S,存入变量V,得到像素的位置所属的数组元素MAP(V)。
第2步算出指定像素在MAP(V)中所对应的位置K(K=0,…,15)。这一步的具体实现过程如下:
将变量X与二进制数 (3) 进行逻辑乘运算,并存入变量K。
第3步根据用户要求将数组元素MAP(V)左起第K位设置为”1”或”0”。这一步的具体实现过程
如下: ,
1、为在指定像素置“亮”,应将MAP(V)与BIT(K)进行逻辑 (4) 运算,并存入MAP(V)。
2、为在指定像素置“暗”, 应先将BIT(K)各位取反,再将MAP(V)与BIT(K)进行逻辑 (5) 运算,并存入MAP(V)。
试题二
阅读下列函数说明和C代码,将应填入—匹l处的字句写在答题纸的对应栏内。
[函数2.1说明]
函数strcat(char *si,char *s2)是将字符串s2连接在字符串si之后,构成一个首指
针为s1的字符串。
[函数2.1]
void strcat(char *sl,char *s2)
{ while(*s1!=\0) ;
(1) :
for( ; (2) ;s1++,s2++);
}
[函数2.2说明] .
本函数输入n(1000)个整数到指定数组,求该数组中最大元素的值和此元素的下标,最大元素值以函数值返回,此元素的下标通过指针形参带回调用处。
[函数2.2]
#includestdio.h
#define MAXLINE 1000
int maxindex(int a[],int *index)
{ int i,n;
do {
printf(Please input n\n);
scanf(%d,n);
}while( (3) );/*保证输入的n在限定范围内*/
for(i=0 ; in ; i++)
scanf(%d,a[i]);
*index=0;
for(i=1 ; in ; i++)
if( (4) ) *index=i;
return (5) ;
}试题三
阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
[函数3.1说明]
函数insert_sort(int a[],int count)是用直接插入排序法对指定数组的前count个元素从小到大排序。
直接插入排序法的基本思想是:将整个数组(count个元素)看成是由有序的(a[0],…,a[i-1])和无序的(a[i],…,a[Count-1))两个部分组成;初始时i等于1,每趟排序时将无序部分中的第一个元素a[i]插入到有序部分中的恰当位置,共需进行count-1趟,最终
您可能关注的文档
最近下载
- (高清版)DB15∕T 3765—2024 草地碳汇监测与核算技术规程.pdf VIP
- 施工员(市政)模拟考试题(附答案).doc VIP
- 化疗后骨髓抑制护理课件.pptx VIP
- 饲料企业从业人员法规考核试题300道带答案与解析!绝对验证过的!.pdf VIP
- 挫折与心理防御.ppt VIP
- 《离子反应第一课时》说课稿全国高中化学说课一等奖.docx VIP
- 市政工程毕业论文12篇.doc VIP
- 消防控制室值班人员培训PPT课件 消防控制室工作人员培训 消防控制室操作员培训材料.pptx VIP
- 教育科学研究方法课题研究报告.pptx VIP
- 教育科学研究规划课题研究报告.pptx VIP
文档评论(0)