Page 75 - MATINF Nr. 4
P. 75

˘
            PROBLEME DE INFORMATICA PENTRU EXAMENE                                                         75


                  din ¸sir, ca ˆın exemplul de mai jos. Un cuvˆant a este un sufix pentru cuvˆantul b dac˘a exist˘a
                  un cuvˆant c de lungime mai mare sau egal˘a cu 0, astfel ˆıncˆat prin alipirea cuvˆantului a la
                  sfˆar¸situl cuvˆantului c se obt¸ine cuvˆantul b.                                   (10p.)
                  Exemplu: pentru ¸sirul:     este   un amurg      de poveste ¸si soarele     apune peste
                  creste, se va afi¸sa:   este    un amurg      de   ¸si soarele  apune       creste
               3. Pe prima linie a fi¸sierului bac.in se g˘asesc numere naturale separate prin cˆate un spat¸iu.
                  Ele formeaz˘a mai multe ¸siruri cresc˘atoare de numere naturale, sfˆar¸situl fiec˘arui ¸sir fiind
                  marcat de valoarea -1 (care nu face parte din ¸sir). S¸tiind c˘a valorile numerelor din ¸siruri
                  nu dep˘a¸sesc, ˆın valoare absolut˘a, valoarea 10000 ¸si c˘a ˆın total sunt 2000 de numere, scriet¸i
                  un program care s˘a afi¸seze numerele comune tuturor ¸sirurilor, ˆın ordinea cresc˘atoare a
                  valorilor lor.
                  De exemplu, dac˘a fi¸sierul cont¸ine: 2 3 3 4 5 8 9 -1 2 4 5 8 11 -1 2 3 5 8 12 -1,
                  atunci se va afi¸sa 2 5 8.
                    a) Scriet¸i programul C/C++ corespunz˘ator.                                        (8p.)
                    b) Descriet¸iˆın limbaj natural o metod˘a eficient˘a de rezolvare ca timp de executare. (2p.)




                                                        Testul 2


                                                                                  Doru Anastasiu Popescu    2


                Limbajul C/C++

                SUBIECTUL I (20 de puncte)

                Pentru fiecare dintre itemii de la 1 la 5, scriet¸i pe foaia de examen litera cores-
            punz˘atoare r˘aspunsului corect.

               1. O expresie C/C++ care are valoarea diferit˘a de 0 este:                              (4p.)

                    a) ’v’<’V’                                      c) ’d’==’e’-1
                    b) 10%2==4%3                                    d) 113%11==100%10

               2. Se consider˘a funct , ia f, definit˘a ˆın dreapta.                                    (4p.)

                  Indicat¸i ce se afi¸seaz˘a dup˘a execut , ia        int f(int a, int b)
                  instruct , iunii  C/C++         urm˘atoare:        {
                  printf("%d",f(75,30)+f(10,30)+f(24,24));             if(a<b) f(a,b-a);
                  respectiv                                            if(b<a) f(a-b,b);
                  cout<<f(75,30)+f(10,30)+f(24,24);                    return a;
                                                                     }
                  a) 40      b) 39      c) 37      d) 49
               3. Utilizˆand metoda backtracking, se genereaz˘a toate toate numerele de 4 cifre ˆın ordine
                  lexicografic˘a formate numai din cifre impare distincte. Primele 4 numere generate sunt:
                  1357, 1359, 1537, 1539. A cincea solut , ie este:                                    (4p.)

                    a) 1533                 b) 1573                 c) 3579                 d) 1597
               4. Num˘arul maxim de componente conexe ale unui graf neorientat cu 100 de noduri s , i 45 de
                  muchii este:                                                                         (4p.)
               2
                Conf. univ. dr., Universitatea din Pites , ti, dopopan@yahoo.com
   70   71   72   73   74   75   76   77   78   79   80