[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷26及答案与解析.doc
《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷26及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷26及答案与解析.doc(16页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 26 及答案与解析 1 阅读以下技术说明、流程图和 C程序,根据要求回答问题 1和问题 2。 【说明】 如图 6-13所示的程序流程图描述了对 8位二进制整数求补的算法。该算法的计算过程如下:从二进制数的低位 (最右位 )开始,依次向高位逐位查看,直到首次遇到“1”时,停止查看。然后,对该 “1”位左面的更高位 (如果存在的话 ),逐位求反,所得的结果就是对原二进制数求补的结果。例如:对二进制整数 10010110求补的结果时 01101010。 设 8位二进制整数中的各位,从低位到 高位,依次存放在整型数组 BIT的 BIT1 BIT8中。
2、例如,二进制整数 10010110存放在数组 BIT后,则有 BIT1=0, BIT2=1, , BIT7=0, BIT8=1。若流程图中存在空操作,则用NOP表示。 以下待修改的【 C程序】完成的功能是:对于给定的 1个长正整数,从其个位数开始,每隔一位取 1个数字 (即取其个位、百位和万位等数字 ),形成 1个新的整数并输出。例如,将该程序修改正确后,运行时若输入 “9753186420”,则输出的整数为“73840”。 【 C程序】 行号 C代码 01 #include stdio.h 02 int main() 03 long n,num; 04 int i; 05 do 06 pri
3、ntf(“请输入一个正整数 :“); 07 scanf(“%1d“,n); 08 while(n =0); 09 k = 1; 10 for (i=1;n =0;i+) 11 if (i%2=1) 12 num = num + (n%10)*k; 13 k = k*10; 14 15 n = n/10; 16 17 printf(“新数据为 : %dn“,num); 18 return 0; 19 1 请将图 6-13流程图中 (1) (5)空缺处的内容补充完整。其中, (1)空缺处按 “循环变量名:循环初值,增量,循环终值 ”格式描述。 2 待修改的【 C程序】中存在 3个错误,请指出各个错
4、误所在的行号,并给出相应的修改意见。 3 阅读下列函数说明和 C代码,将应填入 (n)处的字句写在对应栏内。 【说明 2.1】 L为一个带头结点的循环链表。函数 deletenode(LinkList L, int c)的功能是删除 L中数据域 data的值大于 c的所有结点,并由这些结点组建成一个新的带头结点的循环链表,其头指针作为函数的返回值。 【函数 2.1】 LinkList deletenode(LinkList L, int c) LinkList Lc,p,pre; pre=L; p=(1); Lc=(LinkList)malloc(sizeof(ListNode) ); Lc-
5、 next=Lc while(p!=L) if(p- data c) (2); (3); Lc- next=p; p=pre- next; else pre=p; p=pre- next; return Lc; 【说明 2.2】 递归函数 dec_to_k_2(int n, int k)的功能是将十进制正整数 n转换成 k 2k9)进制数,并打印。 【函数 2.2】 dec_to_k_2(int n, int k) /*将十进制正整数 n转换成 k(2k9)进制数 */ if(n!=0) dec_to_k_2(4),k); printf(“%d“,(5); 4 阅读下列函数说明和 C代码,将应
6、填 入 (n)处的字句写在对应栏内。 假设以带头结点的单循环链表作非递减有序线性表的存储结构。函数deleteklist(LinkList head)的功能是删除表中所有数值相同的多余元素,并释放结点空间。 例如:链表初始元素为: (7, 10, 10, 21, 30, 42, 42, 42, 51, 70) 经算法操作后变为: (7, 10, 21, 30, 42, 51, 70) 【函数 3.1】 void deleteklist(LinkList head) LinkNode * p, * q; p=head- next; while(p!=head) q=p- next; while(
7、1) (2); free(q); q=p- next; p=p- next; 【说明 3.2】 已知一棵完全二叉树存放于一个一维数组 Tn中, Tn中存放的是各结点的值。下面的程序的功能是:从 T0开始顺序读出各结点的值,建立该二叉树的二叉链表表示。 【函数 3.2】 #include istream.h typedef struct node int data; stuct node leftChild, rightchild; BintreeNode; typedef BintreeNode * BinaryTree; void ConstrncTree(int T, int n, int
8、 i, BintreeNode * /*置根指针为空 */ else ptr=-(BTNode * )malloc(sizeof(BTNode) ) ptr- data=Ti; ConstrucTree(T,n,2, i+1, (4); ConstrucTree(T,n,(5),ptr- rightchild); main(void) /*根据顺序存储结构建立二叉链表 */ Binarytree bitree;int n; printf(“please enter the number of node: n%s“ ;n); int* A = (int *) malloc(n * sizeof(
9、int); for(int i=0;i n;i+)scanf(“ %d,A+i); /*从键盘输入结点值 */ for(int i=0;i n;i+)printf(“ %d“,Ai); ConstructTree(A, n,0, bitree); 5 阅读以下说明和 C代码,将应填入 (n)处的字句写在对应栏内。 【说明】 该程序的功能是从文件 IN.DAT中读取一篇英文文章存入到字符串数组 xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进 行倒排。最后把已处理的字符串 (应不含标点符号 )仍按行重新存入字符串数组 xx中,最后把结果 xx输出到文件 OUT6.DAT中。 例如:原文
10、: You He Me I am a student 结果: Me He You student a am I 原始数据文件存放的格式是:每行的宽度均小于 80个字符,含标点符号和空格。 【函数】 #include string.h #include conio.h #include ctype.h #include stdio.h char xx50 80; int maxline=0; /*文章的总行数 */ int ReaaDat(void); void WriteDat(void); void StrOL(void) char * p1, * p2,t80; int i; for(i=
11、0;i maxline;i+) p1=xxi;t0=0; while(*p1)p1+; while(p1 =xxi) while(!isalpha(*p1) p2=p1; while(1)p1-; if(p1=xxi) if(isalpha(*p1)p1-; else if(!isalpha(*(p1+1)break; p2+; (2); strcat(t, p1+1); strcat(t,“ “); strcpy(xxi,t); void main( ) if(3) printf(“数据文件 in.dat不能打开 !n007“ ); return; StroL(); writeDat();
12、getch(); int ReadDat(void) FILE * fp; int i =0; char * p; if(fp=fopen(“e:ain.dat“,“ r“ )=NULL)return 1; while(fgets(xxi,80,fp)!=NULL) p=strchr(xxi,n) if(p)*p=0; i+; maxline=(4) fclose(fp); return 0; void WriteDat(void) FILE * fp; int i; fp=fopen(“e:aout6,dat“,“w“); for(i=0;i (5);i+) printf(“%sn“,xxi
13、); fprintf(fp,“%sn“,xxi) fclose(fp) 6 阅读以下应用说明及 Visual Basic程序代码,将应填入 (n)处的字句写在对应栏内。【应用说明 5.1】 本应用程序的窗体中有一个下拉式列表框 (名称为 Combo1)和两个文本框 (名称分别为 Txt1和 Txt2)。运行时,用户从 Combo1的列表中进行选择,程序就会将选中条目的内容以及编号 (从 0开始 )分别在文本框 Txt1和 Txt2中显示出来。 【程序代码 5.1】 Private Sub Combo1_Click() Txt1.Text = Combo1. (1) Txt2.Text = Co
14、mbo1. (2) End Sub (注:可供 (2)处选择的选项: List, Index, Listlndex, ListCount, Number) 【应用说明 5.2】 本应用程序的运行窗口如图 2所示。开发该应用的部分程序代码如下: 【程序代码 5.2】 Private Sub CmbOp_Click() Dim Dataln As Double,DataOut as Double Dataln=(3) Select Case (4) Case “取整数部分 “ DataOut =Int(Dataln) Case “求平方根 “ If Dataln 0 Then MagBox “负数
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 初级 程序员 下午 应用技术 模拟 26 答案 解析 DOC
