Sunteți pe pagina 1din 4

Test sem 2 cl 12 FR

1. Ce se va afisa in urma executarii programului urmator:

#include <iostream>
using namespace std;
int main()
{   cout<<"ora de"<<endl<<"informatica";
return 0;
}

a) ora deinformatica                b) ora de                c) ora de informatica                d) informatica


                                                informatica

2. In timpul executarii programului urmator, se introduc succesiv valorile 9 si 5. Ce


valori se vor afisa dupa executare?

#include <iostream>
using namespace std;
int main()
{ int a; cin>>a; cout<<a<<" ";
cout<<a<<endl; cin>>a; cout<<a; }

a) 9 9                b) 5 5                c) 9 9 5                d) 5 5                e) 9


    5                       9                                                    5                    5

3. Ce valori au fost introduse de la tastatura in timpul executarii programului


urmator, daca valorile afisate, la final, sunt: 20 5 4?

#include <iostream>
using namespace std;
int main()
{ int a,b; cin>>a>>a>>b;
cout<<b*a<<" "<<b<<" "<<a; }

a) 4 3 5                b) 5 4 4                c) 4 5 5                d) 3 4 5

4. Ce valoare se afiseaza in urma executarii programului urmator, daca se introduce


de la tastatura 806 si apoi se apasa tasta Enter?

#include <iostream>
using namespace std;
int main()
{ char a; cin>>a; cout<<a }

a) 0                 b) 806                 c) 8                 d) 6

5. Se considera urmatoarea secventa repetitiva:


i=0;
while (i+j<=10)   {
        i=i+1;
        j=j-2;
     }

Valoarea minima posibila pentru care variabila j astfel incat instructiunea repetitiva de mai sus
sa nu se execute la infinit(necontrolat) este:

a) 1                 b) 5                 c) 6                 d) 17                 e) 10                 f) 2

6. Ce se va afisa pe ecran in urma executarii urmatoarei secvente de instructiuni,


stiind ca pentru variabila x au fost citite valorile 23, 25, 345, 892 si 3456 ?

for (i=1; i<=5; i++)   {


        cin>>x;
        if (i%2==0) cout<<x%10;
                else cout<<(x/10)%10;
}

a) 3 2 5 9 5                b) 3 5 5 9 2                c) 2 5 5 9 5                d) 2 5 5 2 5                e) 2 5 4 2 5

7. Ce se va afisa la executarea urmatoarelor instructiuni?

p=1;
do {
     p*=2;
     cout<<p;
} while (p%10!=6);

a) 2 4 8 6                 b) 2486                 c) 2 4 8 16                 d) 24816


Teza sem 2 cl 12 FR
1. Să se determine ce tipăreşte următoarea instrucţiune :
unsigned n=100; printf("%04x",n);
a) 0100 b) 100
c) 0064 c) A10
2. Ce face secvenţa ?
float n=16;
printf("%x",n+1);
a) afişează numărul în baza 16
b) dă eroare de compilare deoarece nu am folosit o variabilă la scriere
c) chiar dacă nu este semnalată nici o eroare la compilare, nu se afişează valoarea dorită, deoarece nu am folosit un specificator de format adecvat
3. Fie declaraţiile :int n;long double x;char s[100];
Care din secvenţele următoare sunt corecte pentru citirea variabilelor ?
a) scanf("%i %s %lg",&n,&s,&x);
b) scanf("%d %s %Lg",&n,&s,&x);
c) scanf("%d %s %Lg",&n,s,&x);
d) scanf("%d %c %lf",&n,&s,&x);
e) scanf("%d %",&n,&s,&x);
4. Fie declaraţia : char s [20];
Care din secvenţele de mai jos citesc corect un şir de caractere s ?
a) scanf("%c",s);
b) scanf("%c",&s);
c) scanf("%s",s);
d) scanf("%s",&s);
e) scanf("%",s);
f) scanf("",s);
5. Fie declaraţia : char str[80];
Care din următoarele secvenţe vor face citirea unui şir de maxim 80 caractere care să nu conţină caracterul "." ?
a) scanf("%[.]s",str);
b) scanf("%[A.]s",str);
c) scanf("%80[A.]s",str);
d) scanf("%80[A.]c",str);
e) scanf("%80[.A]s",str);
6. Fie expresia a<b&&a<c. Să se verificeafirmaţiile următoare :
a) expre sia este incorectă sintactic
b) este corectă şi este echivalentă
cu : (a<b)&&(a<c)
c) este corectă şi este echivalentă
cu expresia : a<(b&&a)<c
7. Să se verifice utilizarea căror operaţii estepermisă :
a) a-=b; b) -a=b;
c) -a=-b; d) a<<=2;

8. Fie o expresie care conţine operatoriaritmetici, relaţionali şi de atribuire şi nu conţineparanteze. Să se precizeze, care va fi ordineade
evaluare a operatorilor ?
a) de atribuire, relaţionali, aritmetici
b) aritmetici,relaţionali, de atribuire
c) de atribuire, aritmetici, relaţionali

9. Care din următoarele afirmaţii sunt adevărate ?


a) operatorii pe biţi au ordinea de evaluare înaintea operatorilor logici
b) operatorii de atribuire compusă au o precedenţa mai mică decât operatorul de atribuire simplă
c) operatorii relaţionali au o precedenţă mai mare decât operatorii logici
d) toţi operatorii relaţionali au acelaşi nivel de prioritate
10. Fie declaraţia : int i,x,y; Să se verifice care expresii sunt corecte :
a) (i+1)++ b) i+++ 1 c) --x+y d) ++i++ e) &x+1 f) &(x+1) g) -x&1
11.Precizaţi de câte ori se va afişa valoarea 1 în timpul execuţiei programului următor, dacă a=3,b=4 şi x=5. #include<stdio.h> void main()
{
int a,b,x;
scanf("%d%d%d",7a,&b,&x); if(!((x<=a)&&(x>=b)))
putchar('1');
if(!(x<=a||x>=b))
putchar('1');
if(!(x<=a)&&!(x>=b))
putchar('1');
if(!(x<=a)||!(x>=b))
putchar('1');
}
a) nici o dată b) o dată
c) de două ori d) de trei ori
e) de patru ori
12. Dacă în timpul execuţiei programului de mai jos n va primi valoarea 232213, care vor fi în final valorile variabilelor f1 , f2 şi f3 ?
#include<stdio.h> void main()
{
long n;
unsigned int f1,f2,f3,c; scanf("%ld",&n);
f1=f2=f3=0; do{
c=n%10; n=n/10;
switch(c) {
case 1: { f1++; break; } case 2: { f2++; break; } case 3: { f3++; break; }
}
}while(n!=0);
printf("%u %u %u",f1,f2,f3);
}
a) f1=1,f2=1,f3=1 b) f1=1,f2=2,f3=2
c) f1=1,f2=2,f3=3 d) f1=2,f2=1,f3=3 e) f1=3,f2=2,f3=1
13.Pentru n=7, care dintre secvenţele de program de mai jos trebuie executată astfel încât, la finele execuţiei, valoarea variabilei p să fie 48 ?
a) p=1; i=2;
while(i<=n) { p*=i;i+=2;}
b) p=1; i=1;
while(i<n/2){i++;p=p*(2*i+1); }
c) p=1; i=1;
while(i<=n/2) {p=p*(2*i);i++; }
d) p=1; i=0;
while(i<n) { i+=2;p*=i; }
e) nici una dintre secvenţele
anterioare
14. Precizaţi care dintre următoarele secvenţe de instrucţiuni atribuie variabilei întregi x valoarea n2, cu n număr natural.
a) x=1;
for(j=1;j<3;j++) x*=n;
b) x=1;
for(j=1;j<=n;j++) x*=2;
c) x=1; j=0;
while(j<2) x*=n;
d) x=1; j=0;
do{ x*=n;}while(j<2);
e) x=n*n;
15. Precizaţi care dintre următoarele secvenţe de instrucţiuni atribuie variabilei întregi x valoarea 10n, cu n număr natural.
a) x=10; for(j=1;j<=n;j++)x*=i;
b) x=1;
for(j=n;j>0;j--) x*=10;
c) x=1; j=1;
do{ x*=10; }while(j<n);
d) x=1; j=0;
while(j<=n) { x*=i;}
e) nici una dintre variantele
anterioare
16 Deduceţi ce valoare se va afişa în urma execuţiei secvenţei de program de mai jos, dacă valorile variabilei x citite de la tastatură sunt în
ordine 3,2,4,3,5,10,20,0.
scanf("%d",&x);
nr=0;
do{
scanf("%d",&x);
if(x==2*y) nr++; }while(x!=0); printf("%d",nr);
a) 0 b) 1 c) 2 d) 3 e) 4
17. Care dintre următoarele secvenţe de înstrucţiuni atribuie variabilei întregi u valoarea primei cifre a numărului natural reprezentat de
variabila x ?
a) u=x; while(u>=10) u=u%10;
b) while(x>=10) x=x/10; u=x;
c) u=x/10;
d) u=x%10;
e) nici una din variantele anterioare
18. Care dintre următoarele secvenţe deinstrucţiuni atribuie variabilei întregi u valoarea ultimei cifre a numărului natural reprezentat devariabila
x?
a) while(x>=10) x=x/10; u=x;
b) u=x; while(u>=10) u=u%10;
c) u=x%10;
d) u=x/10;
e) toate variantele anterioare
19. Fie secvenţa de program următoare, încare ok este o variabilă de tipul int, iar x esteun număr natural.
ok=0;
for(j=2;j<x;j++)
if(x%j==0) ok=1; printf("%d",ok);
Secvenţa afişează 1 dacă:
a) numărul x are cel puţin un divizor propriu
b) numărul x nu are nici-un divizor propriu
c) toate numerele naturale mai mici ca n, fără 0 şi 1, sunt divizori proprii ai lui x

S-ar putea să vă placă și