文档介绍:软件设计师历年试题
算法
1990年下午试题五
阅读以下说明和流程图。答复以下问题 1 和 2。
有一个集合,集合中有n个元素,每个集合元素都是正整数,它们存放在一维数组A中,每个数组元素存放一个集合元素。对给定的整数total_;//生成下一步分解的和数和余数 r[k+1]=r[k]-a[k+1]; k ++; } } while(k>0);}
r[k]==0
a[k]==1
a[k]<r[k]?a[k]:r[k]
1993年下午试题七
int test_data[ ]={3,4,5};main(){ int i; for (i=0;i<sizeof (test_data)/sizeof(int);i++) { a[0]=test_data[i]; rd( test_data[i],1 ); printf( “\n__________\n\n〞 ); nd( test_data[i] ); printf( "\n_________\n\n" ); }}
1995年下午试题七
[程序说明]本程序用回溯算法来产生由0或1组成的2m个二进位串,使该串满足以下要求。视串为首尾相连的环,那么由m位二进制数字组成的2m个子序列,每个可能的子序列都互不相同。例如,如果m=3,在串 11101000首尾相连构成的环中,由3位二进制数字组成的每个可能的子序列都在环中恰好出现一次,它们依次是111,110,101,010,100,000,001,011(见图)。
1995年下午试题七
#define N l024#define M 10int b[N+M-1]
int equal( int k,int j,int m)//判断数组b中保存的串中是否有相等子串 { int i; for ( i=0;i<m;i++ ) if ( b[ k + i] __(1)__ ) return 0; return 1; }
b中k开始的m个字符是否与b中j开始的m个字符相等,一旦有不同,那么子串不等
!=b[j+i]
1995年下午试题七
int exchange ( int k, int m, int v)//将b中新参加的从k开始的子串的最后一个0或1变成1或0{ while ( b[ k + m - 1 ) == v ) //需回溯 { b[ k + m - 1]= ! v; __(2)__;} __(3)__=v; return k; //不回溯}
init ( int v){ int k; for( k = 0 ; k = N + M - 1; k++) b[k] = v;}
k--
b[k+m-1]
1995年下午试题七
main ( ){ int m,v,k,n,j; printf (“Enter m(1<m<10),v(v=0,v=1)\n〞); scanf (“%d%d ,&m,&v); //n赋值为2m,m为所求串长度,同时初始化b n = 0x01 << m; init(!v); k=0; //k:子串起始下标 while( __(4)__<n) //参加新子串,即k后移 for (j=0;j<k;j++) if (equal(k,j,m)) {k=exchange(k,m,v); j=__(5)__; } for(k=0;k<n;k++) print{("%d\n",b[k]);}
++k
-1
1996年下午试题三
阅读以下说明和 E-R 图,答复以下问题,讲解答写在答卷的对应栏内。【说明】 设有以下关于运动会管理系统的 E-R 图。图中矩形表示实体,圆表示属性,双圆表示关键字属性,菱形表示实体之间的关系。假定已通过以下 SQL 语言建立了根本表: CREATE TABLE ATHLETE (ANO CHAR(6) NOT NULL, ANAME CHAR(20), ASEX CHAR(1), ATEAM CHAR(20)); CREATE TABLE ITEM (INO CHAR(6) NOT NULL, INAME CHAR(20), ITIME CHAR(10), IPLACE CHAR(20)); CREATE TABLE GAMES (ANO CHAR(6) NO