程序员案例分析每日一练(2024)

中公网 2024年01月22日 09:12:41

      试题一

      阅读下列程序或函数说明和 C 代码,将应填入__(n)__处的字句写在答题纸的对应栏内。

      [函数1.1说明]

      函数strcmp()是比较两个字符串 s 和 t 的大小。若 s < t 函数返回负数;若 s = t 函数返回0;若 s > t,函数返回正数。

      [函数1.1]

      int strcmp(char *s,char *t)

      { while ( *s && *t && __(1)__){

      s++;t++ ;

      }

      return __(2)__;

      }

      [程序1.2说明]

      在 n 行 n 列的矩阵中,每行都有最大的数,本程序求这 n 个最大数中的最小一个

      [程序1.2]

      #include〈stdio.h〉

      #define N 100int a[N][N];

      void main()

      { int row ,col ,max ,min ,n;

      /*输入合法 n (〈100 ),和输入 m ×n 个整数到数组 a 的代码略*/

      for ( row = 0;row < n;row++) {

      for ( max = a[row][0],col = l ;col < n;col++)

      if (__(3)__) max = a[row][col];

      if (__(4)__) min = max;

      else if(__(5)__) min = max;

      }

      printf ("The min of max numbers is %dn",min);

      }

      试题二

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

      [程序2说明]

      本程序中的函数 first_insert() 的功能是在已知链表的首表元之前插入一个指定值的表元;函数 reverse_copy() 的功能是按已知链表复制出一个新链表,但新链表的表元链接顺序与已知链表的表元链接顺序相反;函数 print_link() 用来输出链表中各表元的值;函数 free_link()用来释放链表全部表元空间。

      [程序2〕

      #include〈stdip.h〉

      #include〈malloc.h〉

      typedef struct node{ int val;

      struct node *next;} NODE;

      void first_insert( NODE **p,int v)

      { NODE *q = (NODE *) malloc( sizeof(NODE));

      q -> 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 ("%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 <= 10 ; i++ )

      first ( &link1,i );

      link2 = revere_ copy(link1);

      print_link(link1);freeJink(linkl);

      print_link(link2);free_link(link2);

      }

      答案解析