[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷7及答案与解析.doc
《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷7及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷7及答案与解析.doc(11页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 7及答案与解析 1 阅读下列算法说明和算法,将应填入 (n)处的字句写在对应栏内。 【算法说明】 为便于描述屏幕上每个像素的位置,在屏幕上建立平面直角坐标系。屏幕左上角的像素设为原点,水平向右方向设为 X轴,垂直向下方向设为 Y轴。 设某种显示器的像素为 128128,即在每条水平线和每条垂直线上都有 128个像素。这样,屏幕上的每个像素可用坐标 (x, y)来描述其位置,其中 x和 y都是整数, 0x127, 0y127。 现用一维数组 MAP来 存储整个一屏显示的位图信息。数组的每个元素有 16位二进位,其中每位对应一个像素, “1”表示
2、该像素 “亮 ”, “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)的值为 2
3、15-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”。
4、这一步的具体实现过程如下: 1为把指定像素置 “亮 ”,应将 MAP(V)与 BIT(K)进行逻辑 (4)运算,并存入MAP(V)。 2为把指定像素置 “暗 ”,应先将 BIT(K)各位取反,再将 MAP(V)与 BIT(K)进行逻辑 (5)运算,并存入 MAP(V)。 2 阅 读以下说明和 C代码,将应填入 (n)处的字句写在对应栏内。 【说明】 函数 MultibaseOutput(long n, int B)的功能是:将一个无符号十进制整数 n转换成 B(2B16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把 B进制数从栈中输出。有关栈操作的诸函数功能见相应函数中
5、的注释。 C代码中的符号常量及栈的类型定义如下: #define MAXSIZE 32 typedef struct int * elem; /*栈的存储区 */ int max; /*栈的容量,即栈中最多能存放的元素个数 */ int top; /*栈顶指针 */ Stack; 【代码】 int InitStack(Stack * S,int n) /*创建容量为 n的空栈 */ S - elem = (int*) malloc(n*sizeof(int); if(S - elem = NULL) return-1 S- max=n;(1)=0;return 0; int Push (Sta
6、ck * s,int item) /*将整数 item压入栈顶 */ if(S- top=S- max)printf(“Stack is full! n“);return-1; (2)= item; return 0 int StackEmpty(Stack S) return(! S. top)? 1:0; /*判断栈是否为空 */ int Pop(Stack * S) /*栈顶元素出栈 */ if(! S- top) printf(“Pop an empty stack! n“) ;return -1; return (3); void MultibaseOutput(long n,int
7、 B) int m;Stack S if (InitStack( return; do if( Push( return; n=(5); while(n!=0); while(!StackEmpty(S) /*输出 B进制的数 */ m = Pop( if(m 10) printf(“%d“,m) ;/*小于 10,输出数字 */ else printf(“%c“,m+55); /*大于或等于 10,输出相应的字符 */ printf( “n“) ; 3 阅读下列函数说明和 C代码,将应填入 (n)处的字句写在对应栏内。【说明】 函数 void rcr(int a, int n, int k)
8、的功能是:将数组 a中的元素 s0 9n-1循环向右平移 k个位置。 为了达到总移动次数不超过 n的要求,每个元素都必须只经过一次移动到达目标位置。在函数 rcr中用如下算法实现:首先备份 a0的值,然后计算应移动到 a0的元素的下标 p,并将 aP的值移至 a0;接着计算 应移动到 ap的元素的下标 q,并将 aq的值移至 ap;依次类推,直到将 a0的备份值移到正确位置。 若此时移动到位的元素个数已经为 n,则结束;否则,再备份 a1的值,然后计算应移动到 a1的元素的下标 p,并将 ap的值移至 91;接着计算应移动到 ap的元素的下标 q,并将 aq的值移至 ap;依次类推,直到将 a
9、1的备份值移到正确位置。 若此时移动到位的元素个数已经为 n,则结束;否则,从 a2开始,重复上述过程,直至将所有的元素都移动到目标位置时为止。 例如,数组 a中的 6个元素 如图 1(a)所示,循环向右平移两个位置后元素的排列情况如图 1(b)所示。 void rcr( int a ,int n,int k) int i,j,t,temp,count; count =0; /*记录移动元素的次数 */ k=k%n; if(1) /*若 k是 n的倍数 ,则元素无须移动 ;否则 ,每个元素都要移动 */ i=0 while(count n) j=i;t=i; temp =a1; /*备份 ai
10、的值 */ /*移动相关元素,直到计算出ai应移动到的目标位置 */ while(j=(2)! =i) at=aj; t=(3); count+; (4)= temp;count +; (5); 4 阅读下面的要求,在 _填入适当的语句。 要求执行该段程序后能弹出一个对话框,对话框中有 “确定 ”和 “取消 ”按钮,以及一个带问号的图标,并要求第一个按钮为默认按钮。 Private Sub Form_Load() MsgBox“要重新输入吗 ?“_, “询问 “ End Sub 5 阅读下列函数说明和 C代码,将应填入 (n)处的字句写在对应栏内。 【说明】 以下程序的功能是:从键盘上输入一个
11、字符串,把该字符串中的小写字母转换为大写字母,输出到文件 test.txt中,然后从该文件读出字符串并显示出来。 【程序】 #include stdio. h main( ) FILE * fp; char str100; int i=0; if(fp=fopen(“text.txt“(1) =NULL) printf(“cant open this file. n“) ;exit(0) ; printf(“ input astring: n“ ); gest(str); while( stri ) if(stri =a fputc(stri,(3); i+; fclose(fp); fp=f
12、open(“ test.txt“,(4); fgets(str, 100, fp); printf(“%sn“ ,str); (5); 6 阅读以下说明及 Visual Basic程序代码,将应填入 (n)处的字句写在对应栏内。【说明】 在窗体上设计两个文本框和两个标签,标签上显示: “摄氏温度: ”和 “华氏温度: ”,文本框一个用于输入摄氏温度数,一个用于输出对应的华氏温度。摄氏温度与华氏温度的转换公式为: c=(5/9)(f-32) 要求:对 输入的摄氏温度数有检查功能,以拒绝接收非数字字符。运行界面如图所示。 【 Visual Basic代码】 Private Sub Commandl
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 初级 程序员 下午 应用技术 模拟 答案 解析 DOC
