Subiecte parţial 2 C & C++ semestrul 1 (2003-2004)

Dintre cele patru subiecte (pe trei grupe de studenti A, B, si C) de mai jos sunt obligatorii trei, la alegere.

1. Scrieti un program care sa preia un numar intreg de la tastatura, pe care sa-l scrie din nou la consola text in baza:

A) 3,

B) 5,

C) 7.

2. Īn cazul unei ierarhii de tip arbore scrieti rutine pentru:

A)   adaugarea unui nou nod

B)    stergerea unui nod

C)    schimbarea atributelor unui nod precizat prin nume.

3. Folosind biblioteca graphics scrieti un program care sa deseneze

A)   un cerc de raza, culoare si centru date

B)    un dreptunghi, de latime, inaltime si pozitie a intersectiei diagonalei date

C)    o elipsa de semiaxe, pozitie a centrului si culoare date

4. In contextul declaratiilor

typedef char * PString;
typedef struct TListItem * PListItem;
struct TListItem {
  PString Name;
  PListItem Next;
};

precizati ce fac urmatoarele rutine

A)

void rutA(PListItem lista){
  PListItem p=lista;int len=0;
  while (p!=NULL) {
    len++;printf("Item %3d: %s\n",len,p->Name);p=p->Next;
  }
  printf("\n");
  return;
}

B)

PListItem rutB(int index, PListItem lista){
  PListItem pr=NULL, p=lista;
  int len=lenList(lista),i=0;
  if(index<=len){
    while(i<index) {
    pr=p; p=p->Next; i++;
    }
  }
  return pr;
}

C)

PListItem rutC(PString s, PListItem next){
  PListItem p=NULL;int len=strlen(s);
  if(len!=0) {
    p=(PListItem)malloc(sizeof(TListItem));
    p->Name=NewStr(s);
    p->Next=next;
  }
return p;
}

se considera date rutinele :

PString NewStr(PString str);

si

int lenList(PListItem lista);

 

© Cornel Mironel Niculae, 2003-2004

22-Jan-2004