2002上半年程序员考试真题及答案-下午卷.doc
《2002上半年程序员考试真题及答案-下午卷.doc》由会员分享,可在线阅读,更多相关《2002上半年程序员考试真题及答案-下午卷.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2002上半年程序员考试真题及答案-下午卷试题一 阅读下列算法说明和算法,将应填入 (n) 处的字句写在答题纸的对应栏内。算法说明 为便于描述屏幕上每个像素的位置,在屏幕上建立平面直角坐标系。屏幕左上角的像素设为原点,水平向右方向设为x轴,垂直向下方向设为y轴。 设某种显示器的像素有128X128,即在每条水平线和每条垂直线上都有128个像素。这样,屏幕上的每个像素可用坐标(x,y)来描述其位置,其中x和y都是整数,0x127,0y127。 现用一维数组MAP来存储整个一屏显示的位图信息。数组的每个元素有16位二进位,其中每位对应一个像素,“1”表示该像素“亮”,“0”表示该像素“暗”。数组M
2、AP的各个元素与屏幕上的像素相对应后,其位置可排列如下: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)。这 一步的具体实现过程如下:
3、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)各位取
4、反,再将MAP(V)与BIT(K)进行逻辑 (5) 运算,并存入MAP(V)。 试题二 阅读下列函数说明和C代码,将应填入匹l处的字句写在答题纸的对应栏内。 函数21说明 函数strcat(char *si,char *s2)是将字符串s2连接在字符串si之后,构成一个首指 针为s1的字符串。 函数2.1 void strcat(char *sl,char *s2) while(*s1!=0) ; (1) : for( ; (2) ;s1+,s2+); 函数22说明 本函数输入n(1000)个整数到指定数组,求该数组中最大元素的值和此元素的下标,最大元素值以函数值返回,此元素的下标通过指针形参
5、带回调用处。 函数22 #include #define MAXLINE 1000 int maxindex(int a,int *index) int i,n; do printf(Please input nn); scanf(d,&n); while( (3) );/*保证输入的n在限定范围内*/ for(i=0 ; in ; i+) scanf(%d,&ai); *index=0; for(i=1 ; in ; i+) if( (4) ) *index=i; return (5) ; 试题三 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 函数31说明 函数in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2002 上半年 程序员 考试 答案 下午
限制150内