Variante de bac
Varianta 7
Subiectul I
1.Variabilele x si y sunt intregi.Care dintre expresiile c/c++ de mai jos are valoarea 1 daca si numai daca numarul memorat in x este strict mai mare decat 0 si numarul memorat in y este strict mai mare decat 5?
a.x*y-5!=0 b.x*(y-5)!=0
c.x*(y-5)>=0 d.!(x*(y-5))<=0
2.Se considera algoritmul alaturat descris in pseudocod:
citeşte n (număr natural nenul)nr<-0
┌pentru a<-9,0,-1 execută
│ m<-n
│┌cât timp m≠0 şi m%10≠a execută
││ m<-[m/10]
│└■
│┌dacă m≠0 atunci
││ nr<-nr*10+m%10
│└■
└■
scrie nr
a)Scrieţi valoarea afişată, în urma executării algoritmului, dacă se citeşte pentru n valoarea 232493.
b)Scrieţi două valori naturale distincte care pot fi citite pentru n astfel încât, în urma executării algoritmului să se afişeze numărul 9654.
R:4569,45690.
c)Scrieţi în pseudocod un algoritm echivalent cu cel dat în care să se înlocuiască structura pentru...execută cu o structură repetitivă cu test final.
citeste n (numar natural nenul)
nr←0; a←9
┌repeta
│ m←n
│ ┌cat timp m≠0 şi m%10≠a executa
│ │ m←m/10
│ └■
│ ┌daca m≠0 atunci
│ │ nr←nr*10+m%10
│ └■
│ a←a-1
└pana cand a<0
scrie nr
d)Scrieţi programul C/C++ corespunzător algoritmului dat.
#include
#include
void main()
{int n,a,nr,m;
do
{cout<<"n="; cin>>n;
}
while(n<1)
nr=0;
for(a=9;a>=0;a--)
{m=n;
while(m!=0 && m%10!=a)
{ m=m/10;
}
if(m!=0)
nr=nr*10+m%10;
}
cout<
getch();}
Varianta 37
Subiectul I
1. Care este valoarea pe care trebuie sa o aibe initial variabila intreaga x pentru ca, in urma executarii secventei alaturate, sa se afiseze sirul de mai jos:
HHHHHH
while(x!=3)
{x=x-1;
cout<<"HH"; | printf("HH");
}
a. 0 b.4 c. 6 d.5
2.Se considera algoritmul alaturat descris in pseudocod:
citeşte n,k(numere naturale, k≤9)
nr<-0; p<-1
┌cât timp n≠ 0 execută
│ c<-n%10
│ nr<- nr+c*p
│ p <- p*10
│ ┌dacă c=k atunci
│ │ nr<-nr+c*p
│ │ p<-p*10
│ └■
│ n<- [n/10]
└■
n<-nr
scrie n
S-a notat cu x%y restul impartirii numarul natural x la numarul natural nenul y si cu [z] partea intreaga a numarului real z.
a) Scrieti numarul afisat daca se citesc valorile n=1232 si k=2.
R:122322.
b) Scrieti o pereche de valori care pot fi citite pentru variabilele n si k astfel incat, in urma executarii algoritmului, valoarea finala a variabilei n sa fie egala cu valoarea initiala a acesteia.
R:874 si 5.
c) Scrieti in pseudocod un algoritm echivalent cu cel dat, incat sa se inlocuiasca structura cat timp...executa cu o structura repetitiva de alt tip.
citeste n,k
nr← 0; p←1
┌ executa
│ c←n%10
│ nr←nr+c*p
│ p←p*10
│ ┌daca c=k atunci
│ │ nr←nr+c*p
│ │ p←p*10
│ └▀
│ n←n/10
└pana cand n←0
n←nr
scrie n
d) Scrieti programul c/c++ corespunzator algoritmului dat.
#include
#include
void main()
{int n, p, k, nr;
cout<<"n="; cin>>n;
cout<<"k="; cin>>k;
nr=0; p=1;
while(n!=0)
{c=n%10;
nr=nr+c*p;
p=p*10;
if(c= k)
{ nr=nr+c*p;
p=p*10;
}
n=n/10;
}
n=nr;
cout<
getch();}
Abonați-vă la:
Postări (Atom)