Контрольная работа на 30 вариантов с ответами.
Необходимо без помощи компьютера определить, что выдаст данная программа.
Каждая правильная выданная строчка оценивается в один условный бал.

Файлы: KN1.DAT - KN30.DAT - тексты вариантов
KN1.OTV - KN10.OTV - ответы
KNINSTR.HTM - данная инструкция

Пример:

    #include <stdio.h>
    #include <alloc.h>
    #include <math.h>
    #include <stdlib.h>
    #define debug
    #define stroka(t) printf(t "\n")
    #define pl a+x+b
    double fun1 (double b,double x,double a);
    int fun2 (int *a,int b); int fun3 (int a[],int b);
float r[7]={13.5e-1,14.6e1,19e2};int massiv1[]= {4,1,1,9,8,9,6,0,0} ;
int massiv2[]= {5,8,0,1,2,8,7,2,2} ;
void main (void)
{   int a=32765,aa,b=1, k=8,i1,j; int *w=(int*)malloc(5*sizeof(int));
       double i; char str1[10]; char s='r';char d[]="cd\\0efk\"j\0";
       b=1  ; printf("\n1) вариант %d",b);
#ifdef X
       printf(" a=%X",++a);
#else
       printf(" a=%d",a++);
#endif
i1=0;printf("\n2) %d%d%d%d%d%d",++i1,++i1,++i1,++i1,++i1,++i1);
printf("\n3) %X",-3 | 2);printf("%x",(0X5 , -2));
 for(i1=1;i1<4;i1++) for(j=i1+1;j<5;j++) if(massiv1[i1]> massiv1[j])
 {aa=massiv1[i1];massiv1[i1]=massiv1[j];massiv1[j]=aa;}
 printf("\n4)");for(i1=0;i1<9;i1++)printf("%c",massiv1[i1]+'a');
printf("\n5) 11=%x",b+10); printf(" %d", sizeof(int));
printf("\n6) %X %%X %d",22,13); for (i=4; i>=0; printf(" %g",i), i-=2);
for (j=0; j<5; j++)  w[j]=10*j;printf("\n7) %d", ++*w );printf(" %d", *++w);
       printf("\n8) %d ", sizeof(r[1]));
  switch ( s )
    { case 'b': case 'd':printf(" %d",b); case 'a':printf(" %c",s+3);
      case 'c':printf(" %d",b); break; default: printf("%c",s+1);
      case 'f':printf(" %d",b); break; case 'h': printf("%c",s+2);
    } printf("\n9) %s", d+2);
       (k<j)?printf(" k<j"):printf(" k>=j ");j=3;
printf("\n10)");do {printf(" %d",++j);} while (j<=5);
printf("  %g ", fun1(8,2,2));
 fun2(massiv1,9);printf("\n11)");
for (j=0;j<9;j++) printf("m[%d]=%d,",j,massiv1[j]);
{float x=3125,x1; do  { x1=x; x=4.* x1 / 5. +3125./(x1*x1*x1*x1)/5.; }
while(fabs(x-x1)>=1e-9);printf("\n12) %g ",x);}
printf("\n13) ");i1=2;j=2;for(i1=0;i1<1;i1++);for(j=2;j<3;j++);
printf("%d",j);printf("%d",i1);
printf("\n14)");fun3(massiv2,9);
for (j=0; j<8;j++) printf(" m[%d]=%d ",j,massiv2[j]);
printf("\n15)");stroka("Ленинград");
printf("16)");printf ("%d",__LINE__+i1);
printf("\n17)");printf("%d",!(random(45)<45) );
       i1=11; j=2; printf ("\n18) %d",i1 <= j);
       i1=1; j=3; printf ("\n19) %d",i1 <<= j);
       i1=6; j=15; printf ("\n20) %d",i1 /= j);printf("\n" );}
double fun1(double x,double b,double a) {  return(pl*10+5); }
int fun2(int *massiv1, int b){ int i; for (i=0;i<b;i++) massiv1[i]+=1;
return(massiv1[i]);}
int fun3(int *c, int b)
{  int j,m,k;do       { k=0; for(j=8;j>0;j--) if (c[j]<c[j-1])
{ k=1; m=c[j];c[j]=c[j-1]; c[j-1]=m;} }while(k);return(c[j]);}