当前位置:首页 > 程序员考试大纲+2008年真题
long a,b,c;
struct fact *x,*y;
x=(struct fact *)malloc(sizeof(struct fact)*n);
x->m=1;
x->n=1;
for( a=1,b=1,i=2;i<=n;i++)
{
___(4)___
a=b;
b=c;
(x+(i-1))->m=a;
(x+(i-1))->n=b; }
___(5)___
printf(\
for(y=x+1;y
printf(\
printf(\
free(x); }
void main()
{
int n;
printf(\
scanf(\
make(n); }
试题四(15分,每空3分)(欢迎访问软件考试网www.hbsoft.net)
阅读以下说明和C语言程序,将应填入___(n)___处的字句写在答题纸的对应栏内。
[说明]
本程序对某电码文(原文)进行加密形成密码文,其加密算法如下
假定原文为C1,C2,C3,?,Cn加密后形成的密文为S1,S2,S3,?,Sn,首先读入正整数key(key>1)作为加密钥匙,并将密文字符位置按顺时针方向连成一个环,如下图所示:
加密时从 S1 位置起顺时针计数,当数到第 key 个字符位置时,将原文中的字符放入该密文字符位置中,同时从环中除去该字符位置;接着从环中下一个字符位置起继续计数,当再次数到第 key 个字符位置时,将原文中字符 C2 放入其中,并从环中除去该字符位置;依次类推,直至 n 个原文字符全部放入密文环中。由此产生的 S1S2...Sn 即为原文的密文。
例如,当 Key=3 时,原文:this is a decoding system 的密文为:
aotgnhedi ys d imietsnc ss
当Key=4时,该原文的密文为:
ssdtyd htegiasiscnm e ion #include
#include
typedef struct node
{ char ch;
struct node *forward; /* Link to next node. */
struct node *backward;/* Link to previous node.*/
} CODE;
int strlen(char *s)
{ int len = 0;
while (*s++ != '\\0' )
len++;
return( len );
}
char *decode(char *old,int key)
{ char *New; int length,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);
}
void main()
{ char old[256]; int key , num=0;
printf(\
while ( num<255 && ( old[num++] = getchar()) != '\\n' );
old [ (num==255)?num:num-1] = '\\0'; do
{ printf( \
scanf(\
共分享92篇相关文档