《专题训练程序员考试练习题及答案(近两年考题)》由会员分享,可在线阅读,更多相关《专题训练程序员考试练习题及答案(近两年考题)(8页珍藏版)》请在金锄头文库上搜索。
1、温故而知新,下笔如有神近年程序员考试专项习题训练及答案试题一阅读下列程序或函数说明和 C 代码,将应填入_(n)_处的字句写在答题纸的对应栏内。函数1.1说明函数strcmp()是比较两个字符串 s 和 t 的大小。若 s t,函数返回正数。函数1.1int strcmp(char *s,char *t) while ( *s & *t & _(1)_) s+;t+ ; return _(2)_;程序1.2说明在 n 行 n 列的矩阵中,每行都有最大的数,本程序求这 n 个最大数中的最小一个程序1.2#includestdio.h#define N 100int aNN;void main()
2、 int row ,col ,max ,min ,n; /*输入合法 n (100 ),和输入 m n 个整数到数组 a 的代码略*/ for ( row = 0;row n;row+) for ( max = arow0,col = l ;col va1 = v;_(1)_; *p = _(2)_;NODE *reverse_copy(NODE *p) NODE *u; for( u = NULL ; p ; p = p -next ) first_insert(_(3)_); return u;void print_link( NODE *p ) for( ;_(4)_) printf (
3、%dt , p - val); printf(n);void free_link(NODE*p) NODE *u; while( p != NULL) u=p-next;free( p );_(5)_;void main() NODE *link1 , *link2;int i ;linkl = NULL ;for( i = 1;i fsiz) _(1)_ ; fread( buf , 1 , siz , fin ) ; fwrite( buf , 1 , siz , fout ); fsiz = _(2)_; int dofile( FILE *fin , FileInfo *inp ) l
4、ong offset ; FILE *fout ; if ( ( fout = fopen( inp -fname , wb ) ) = NULL) printf ( 创建文件错误: %sn , inp -fname ); return 1 ; offset = _(3)_ ; /*保留合并文件读/写位置*/ fseek( _(4)_) ; /*定位于被恢复文件首*/ copyfile( fin , fout , inp -length ) ; fclose( fout ) ; printf( n-文件名: %n 文件长: %1d.n , inp -fname , inp -length );
5、 _(5)_; /*恢复合并文件读/写位置*/ return 0 ;int main( int argc ,char *argv ) FileInfo finfo ; char fname256 ; FILE *fcmbn; if (argc 2) 或全部 ( argc = 2 )原始文件*/ fread( &finfo , 1 , sizeof( FileInfo ) , fCmbn ) ; if ( finfo.length = 0 ) break ; if ( argc 2 & strcmp( finfo.fname , argv2 ) ) continue ; if ( dofile(
6、 fcmbn , &finfo ) != 0 ) break ; fclose( fcmbn ) ; return 0 ;试题四阅读下列程序说明和C代码,将应填入_(n)_处的字句写在答题纸的对应栏内。程序4说明设一个环上有编号为 0n-1 的 n 粒不同颜色的珠子(每粒珠子颜色用字母表示, n 粒珠子颜色由输入的字符串表示)。以环上某两粒珠子间为断点,从断点一方按顺时针方向取走连续同色的珠子,又从断点另一方按逆时针方向对剩下珠子取走连续同色的珠子,两者之和为该断点可取走珠子的粒数。移动断点,能取走的珠子数不尽相同。本程序找出可以取走最多的珠子数及断点的位置。程序中用双向链表存储字符串。例如,编号为0-9的10粒珠子颜色的字符串为“aaabbbadcc,对应链表为: 若在2号与3号珠子间为断点,共可取走6粒珠子,且为取走的珠子数最多。程序4#includestdio.h#includestring.h#includem