Documente Academic
Documente Profesional
Documente Cultură
34:6.250000
d)printf(\n%-d:%-.3f,a,x);
34:6.250
e)printf(\n%d:%f,a,x);
34:6.250000
Raspuns corect: b)
30
R.I.17
Dac de la tastatur se introduce caracterul a, iar codurile literelor mici sunt successive, sunt
succesive, ncepand cu 97, ce afiseaz programul urmtor ?
#include <iostream.h>
#include<stdio.h>
void main ()
{
char c, p ;
p=getchar() ;
int n=p+259 ;
c=n;
putchar (c) ;
}
a)356
b)a
c)d
d)100
Soluie
Funciile getchar(), getch(), i getche() citesc un caracter i returneaz
caracterul citit.Deosebirile dintre cele trei funcii sunt urmtoarele:
Funcia getchar() preia caracterul numai dup apsarea tastei ENTER i l
afieaz pe ecran (vom spune c citirea se face fr ecou);
Funcia getche() preia caracterul far s mai atepte apsarea tastei ENTER, i l
afieaz (adic citirea se face fr ecou)
Funcia getch() preia caracterul fr s mai atepte confirmarea cu ENTER,
dar nu l afieaz.
Cu ajutorul funciei getchar se citete un caracter care se atribuie variabilei p
{p=getchar()}.S urmrim celelalte instruciuni pentru cazul in care am citi caracterul a.
int=p+259;
Operanzii care se adun sunt un caracter i un ntreg.Expresia nu este greit.n acest caz
acioneaz conversia implicit a caracterului ctre tipul int: caracterul din variabila p
(caracterul a) este nlocuit cu codul su ASCII.Vom obine n=97+259=356.Conversia sa
fcut fr pierdere de informaie.
c=n;
Variabilei c de tipul char i se atribuie numrul ntreg n.Aceast instruciune nu este greit,
avand loc conversia invers, de la ntreg la caracter.n urma acestei operaii se va produce o
pierdere de informaie, conversia avand loc n baza urmtoarei reguli:
se determinp valoarea restului mprtirii lui n la 256, iar valoare obinut este
interpretat ca fiind codificarea ASCII a unui caracter.De exemplu, numarul -159
va fi convertit in caracterul a, ca urmare a mparirii cu rest:
-159=---------1*256+97
n cazul reprezentrii ntregului pe doi octei, cu octeii inversai, plecand de la
egalitatea 356=256+100, putem concluziona c octetul din stanga va conine
valoarea 100, iar octetul din dreapta valoarea 256.Variabila c, fiind de tipul
char, are la dispoziie un singur octet pentru memorarea valorii sale.n
consecin, dintre cei doi octei ai valorii lui n, se va reine in c doar octetul din
R.I.18.
Ce valoare afieaza programul de mai jos?
#include <iostream.h>
void mai ()
{
int a=3, b=2, n=4,x;
x=(a<<n)+(a&b)+(n|b);
cout<<x;
}
a) 2
b) 8
c) 51
d) 56
S OLU I E
Limbajul C++ dispune de o serie de operatori pentru prelucrarea valorilor ntregi la
nivel de bit.Acetia sunt:
&I pe bii (conjuncie), | SAU pe bii (disjuncie);
^ SAU EXCLUSIV pe bii (disjuncie exclusiv);
~ negarea pe biti ;
<< deplasarea pe stanga pe bii: a<<n are ca effect deplasarea biilor lui a cu n
poziii la stanga; este echivalent cu a*2 la puterea n;
>> deplasarea la dreapta pe bii: a>>n are ca efect deplasarea bitilor lui a cu n
pozitii la dreapta; este echivalent cu a/2 la puterea n ;
n1 0 0 (SAU)
b0 1 0
_________
n|b1 1 0 6