软考程序员考试模拟试卷下午题(二)

程序员 责任编辑:小狐狸 2016-06-13

添加老师微信

备考咨询

加我微信

摘要:下面是由希赛软考学院软考程序员考试模拟试卷下午题 ,供给大家参考。

       下面是由希赛软考网软考程序员考试模拟试卷下午题 ,供给大家参考。


       >>>点击进入软考程序员考试模拟试卷下午题在线测试


   试题四

   阅读以下说明和C语言程序,将应填入___(n)___处的字句写在答题纸的对应栏内。

   [说明]

   本程序对某电码文(原文)进行加密形成密码文,其加密算法如下

   假定原文为C1,C2,C3,…,Cn加密后形成的密文为S1,S2,S3,…,Sn,首先读入正整数key(key>1)作为加密钥匙,并将密文字符位置按顺时针方向连成一个环,如下图所示:

图片1.png

   加密时从S1位置起顺时针计数,当数到第key个字符位置时,将原文中的字符放入该密文字符位置中,同时从环中除去该字符位置;接着从环中下一个字符位置起继续计数,当再次数到第key个字符位置时,将原文中字符C2放入其中,并从环中除去该字符位置;依次类推,直至n个原文字符全部放入密文环中。由此产生的S1S2...Sn即为原文的密文。

   例如,当Key=3时,原文:thisisadecodingsystem的密文为:

   aotgnhediysdimietsncss

   当Key=4时,该原文的密文为:

   ssdtydhtegiasiscnmeion

   #include

   #include

   typedefstructnode

   {charch;

   structnode*forward;/*Linktonextnode.*/

   structnode*backward;/*Linktopreviousnode.*/

   }CODE;

   intstrlen(char*s)

   {intlen=0;

   while(*s++!='\0')

   len++;

   return(len);

   }

   char*decode(char*old,intkey)

   {char*New;intlength,count,i;

   CODE*loop,*p;

   length=strlen(old);

   loop=(CODE*)malloc(length*sizeof(CODE));

   for(i=1;i

   {loop[i].forward=&loop[i+1];

   ___(1)___

   }

   loop[0].backward=&loop[length-1];

   loop[0].forward=&loop[1];

   loop[length-1].forward=loop;

   ___(2)___

   for(p=loop,i=0;i

   {for(count=1;count

   p=p->forward;

   ___(3)___

   p->backward->forward=p->forward;

   p->forward->backward=p->backward;

   ___(4)___

   }

   New=(char*)malloc((length+1)*sizeof(char));

   for(i=0;i

   ___(5)___

   New[length]='\0';

   return(New);

   }

   voidmain()

   {charold[256];

   intkey,num=0;

   printf("\nPleaseinputthetelegraph:\n");

   while(num<255&&(old[num++]=getchar())!='\n');

   old[(num==255)?num:num-1]='\0';

   do

   {printf("\nPleaseinputKey(Key>1):");

   scanf("%d",&key);

   }while(key<=1);

   printf("\nThedecodeoftelegraph:'%s'is:\n'%s'\n",old,decode(old,key));

   }

   试题五

   阅读以下说明及VisualBasic程序代码,将应填入___(n)___处的字句写在答题纸的对应栏内。

   [说明]

   本程序实现如下功能:首先,单击“生成”按钮,生成一个由10个随机大写字母组成的字符串,并在文本框中显示。然后,单击“排序”按钮,将此随机字符串中的各个字母按递增顺序添加到列表框中。

   程序运行界面如下:

图片2.png

   [程序]

   AsString

   PrivateSubget_Click()

   DimiAsInteger

   Randomize

   Fori=1To10

   str1=Trim(str1)&Chr(Int(___(1)___))

   Next

   Text1.Text=str1

   EndSub

   PrivateSubsort_Click()

   DimiAsInteger

   DimjAsInteger

   Fori=1To26

   j=___(2)___

   DoWhilej>0

   ___(3)___

   j=j-1

   Loop

   Next

   EndSub

   PrivateFunctionsearch(str1AsString,str2AsString)AsInteger

   Dimint1AsInteger,int2AsInteger

   int1=1

   Do

   int1=___(4)___

   Ifint1=0ThenExitDo

   int2=int2+1

   int1=int1+1

   Loop

   search=___(5)___

   EndFunction(

   试题六

   阅读以下说明和C++程序,将应填入___(n)___处的字句写在答题纸的对应栏内。

   [说明]

   字符串在程序设计中扮演着重要角色。现需要设计字符串基类string,包含设置字符串、返回字符串长度及内容等功能。另有一个具有编辑功能的串类edit_string,派生于string,在其中设置一个光标,使其能支持在光标处的插入、删除操作。

   [程序]

   #include

   #include

   #include

   classstring

   {

   intlength;

   char*data;

   public:

   intget_length(){returnlength;}

   char*get_data(){returndata;}

   ~string(){deletedata;}

   intset_data(intin_length,char*in_data);

   intset_data(char*data);

   voidprint(){cout<

   };

   classedit_string:publicstring

   {

   intcursor;

   public:

   intget_cursor(){returncursor;}

   voidmove_cursor(intdis){cursor=dis;}

   intadd_data(string*new_data);

   voiddelete_data(intnum);

   };

   intstring::set_data(intin_length,char*in_data)

   {

   length=in_length;

   if(!data)

   deletedata;

   ___(1)___

   strcpy(data,in_data);

   returnlength;

   }

   intstring::set_data(char*in_data)

   {

   ___(2)___

   if(!data)

   deletedata;

   ___(1)___

   strcpy(data,in_data);

   returnlength;

   }

   intedit_string::add_data(string*new_data)

   {

   intn,k,m;

   char*cp,*pt;

   n=new_data->get_length();

   pt=new_data->get_data();

   cp=this->get_data();

   m=this->get_length();

   char*news=newchar[n+m+1];

   for(inti=0;i

   news[i]=cp[i];

   k=i;

   for(intj=0;j

   news[i]=pt[j];

   cursor=i;

   for(j=k;j

   ___(3)___

   news[i]='\0';

   ___(4)___

   deletenews;

   returncursor;

   }

   voidedit_string::delete_data(intnum)

   {

   intm;

   char*cp;

   cp=this->get_data();

   m=this->get_length();

   for(inti=cursor;i

   ___(5)___

   cp[i]='\0';

   }


       希赛软考网,拥有十四年软考培训经验,希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库软考历年真题)、软考培训教材软考视频教程,多样的培训方式包括在线辅导面授、和,使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,,软考平均通过率在全国。

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取