ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:168KB ,
资源ID:507400      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-507400.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷7及答案与解析.doc)为本站会员(appealoxygen216)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷7及答案与解析.doc

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

13、_Click () Text1 = “ Text2 = “ Text1.Enabled = True Text2.Enabled = True Text1.SetFocus End Sub Private Sub Command2 Click () End End Sub Private Sub Form Load () Text1 = “ Text2 = “ Text1.Enabled = False Text2.Enabled = False End Sub Private Sub Textl_Change () Text2.Text = (1) End Sub Private Sub T

14、extl_KeyPress (KeyAscii As (2) ) If (3) Then If Chr ( KeyAscii ) “0“ Or (4) Then (5) End If End If End Sub 7 阅读以下说明及 Visual Basic程序代 码,将应填入 (n)处的字句写在对应栏内。 【说明】 以下程序为求行列式 X(5,5)的值 S。 【 Visual Basic代码】 Private Function col ( byval x ( 5,5 ) as integer ) as long dim fesult as long dim temp as long dim

15、I as integer dim j as integer dim k as imeger result = 0 for I = to 5 (1) for j = 1 to 5 if I+j 6 then k= ( 1+j ) mod 5 else k=1 endif temp=temp*x ( k,j ) (2) result=(3) (4) (5) End function 8 阅读以下说明和 C+ 程序,将应填入 (n)处的字句写在对 应栏内。 说明 试从含有 n个 int 型数的数组中删去若干个成分,使剩下的全部成分构成一个不减的子序列。设计算法和编写程序求出数组的不减子序列的长。 C

16、+ 程序 #include stdio.h #define N 100 int b=9,8,5,4,3,2,7,6,8,7,5,3,4,5,9,1; int a N; #define n sizeofb/sizeofb0 void main ( ) kit k,i,j; (1) (2) for (i=1;i n; i+ ) for ( j=k;(3); j-); (4); /*长为 j+1 的子序列的终元素存储在 aj+1*/ if (5)k+; /*最长不减子序列长 k 增 1*/ printf ( “K = %dn “,k ); 9 阅读以下说明和 Java 代码,将应填入 (n)处的字句

17、写在对应栏内。 说明 用输入 /输出写一个程序,让用户输入一些 姓名和电话号码。每一个姓名和号码将加在文件里。用户通过点 “Done”按钮来告诉系统整个列表已输入完毕。 如果用户输入完整的列表,程序将创建一个输出文件并显示或打印出来。格式如: 555,1212, Tom 123-456-7890, Peggy L.234-5678, Marc 234-5678, Ron 876-4321,Beth byte name=new byte lineLength; int i; try fos= new FileOutputStream (“phone. numbers“); catch (File

18、NotFoundException e) while (true) (1) (“Enter a name (enter done to quit)“); (2) (name); if (“done“. equalsIgnoteCase (new String (name,0, 0, 4) break; System.err.println (“Enter the phone number“); readLine (phone); for (int i=0; phone i!=0; i+) (3); fos.write (,); for (int i=0 (4); i+) fos. write

19、(name i); fos. write (n); fos. close(); private static void readLine (byte line ) throws IOException int i=0, b=0; while (i (5) linei= ( byte ) 0; 软件水平考试(初级)程序员下午(应用技术)模拟试卷 7答案与解析 1 【正确答案】 (1)3 (2)4 (3)1111 (4)或 (加 ) (5)与 (乘 ) 【试题解析】 (1)由于每一行像素占用 8个数组元素,所以第 y行的像素占用数组的第 8y到 8y+7号元素。于是 y需要乘以 8存入变量 Y,即

20、 左移 3位。 (2)x表示y行上的第 x列像素,因为每个数组元素表示 16个像素,所以需要将 x除以 16,得到所在数组元素位置,即右移 4位。 (3)X的后四位即表示像素在 MAP(V)中所对应的位置,因此取 x的后 4位送入 K即可。 (4)因为 0和 1与 1逻辑或的结果都是 1,而与 0逻辑或的结果不变。所以将 MAP(V)与 BIT(K)进行逻辑或 (加 ),即可将 MAP(V)指定位置 “1”。 (5)0和 1与 0逻辑与的结果都是 0,而与 1逻辑与的结果不变,所以将 MAP(V)与取反后的 BIT(K)进行逻辑与 (乘 ),即可将 MAP(V)指定位置 “0”。 2 【正确答

21、案】 (1)S- top (2)S- elemS- top+ (3)S- elem-S- top (4)n%B (5)n/B 【试题解析】 (1)此处初始化栈顶指针,即 S- top=0。 (2)此处语句是入栈操作,即先将入栈元素放入栈顶,然后修改栈顶指针。 (3)此处语句是出栈操作,即修改栈顶指针,然后弹出栈顶元素。 (4)此处语句求得将要入栈的数字,即用 n%B得到B进制下第一位数字。 (5)此处语句修改 n的大小以继续求得更高位的数字。 3 【正确答案】 (1)k或 k!=0 (2)(j-k+n)%n或 (t-k+n)%n (3)j (4)at或等价表达式 (5)i+或等价表达式 【试题

22、解析】 (1)判断 k执行 k=k%n后是否为 0,即是否是 n的倍数,应填入 k或 k!=0。 (2)j表示要移动到 at的元素的位置,于是 j和 t的关系为 j=(t-k+n)%n;当执行完 j=i, t=i后, j=t,于是此处可填入 (j-k+n)%n或 (t-k+n)%n。 (3)将 aj移动到 at后,需要将 t指向 j,即此处填入 j。 (4)将暂存在 temp中的值移动到 at中。即 此处填入 at或等价表达式。 (5)此处 while循环的递增条件,显然应该是 i+或其他等价表达式。 4 【正确答案】 VbOkCancel+VbQuestion+VbDefaultButton

23、l 【试题解析】 该题考查的是输出消息函数 MsgBox()的知识,要求考生熟练运用该函数中的参数。 在 Visual Basic程序设计中,输出消息函数 MsgBox()的格式是: Msgbox(提示 ,按钮 ,标题 ) “提示 ”项是必选项,是消息框中出现的文字说明,如该程序中的 “要重新输入吗 ?”字样。 “按钮 ”项是可选项。这个值可以决定消息框中按钮数目及形式、图标的样式以及默认按钮等内容。表 1列出了消息框上内容及符号常数的对应关系。5 【正确答案】 (1)W (2)stri-a+A (3)fp (4)r (5)fclose(fp) 【试题解析】 程序运行后,首先打开文件 test

24、.txt用于写入,因此 (1)空填 w。 程序从键盘读入字符串到变量 str中,对 str中每个字符,如是小写字母,则将其转换成大写字母。 (2)空是小写字母转换大写字母的操作。 (3)空是将 str中的字符写入 文件 text.txt中。 str中所有字符处理完后,关闭文件 test.txt(对应语句是 fclose (fp),然后重新以读方式打开,因此 (4)空填 r,将 test.txt中的内容读到 str中并显示输出后,关闭文件 test.txt,即 (5)空填 fclose(fp)。 6 【正确答案】 (1)5 * ( Val ( Text1.Text ) -32 )/9 (2) Integer (3) KeyAscii 8 (4) Chr(KeyAscii) “9“ (5) KeyAscii=0 7 【正确答案】 (1)temp=1 (2) next I (3) result+temp (4) next I (5) col=result 8 【正确答案】 (1)a1 =b0 (2) k=1 (3) j 1&aj bi (4)aj+1 bi (5) j k 9 【正确答案】 (1)System. err. println (2) readLine (3) fos. write(phonei) (4) namei!=0 (5) lineLength-1

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1