











































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Esempi e output di vari programmi in Linguaggio C, come input/output di variabili, condizioni if, funzioni e strutture dati. tratto da un corso universitario di Informatica Generale.
Tipologia: Esercizi
1 / 51
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!












































1
/ stampa.c /
/ Primo programma in C: Stampa un messaggio a video /
#include <stdio.h>
void main ()
{ / Inizio del main /
printf( "Questa e' la prima stampa" );
/ funzione di stampa /
/ Fine del main /
Output di stampa.c:
Questa e’ la prima stampa
/ stampa2.c /
/ Stampa due messaggi a video /
#include <stdio.h>
void main ()
/ Inizio del main /
printf( "Questa e' la prima stampa\n" );
printf(
"Questa e' la seconda stampa\n" );
/ caratteri escape*
\n ritorno a capo
\t tabulatore
\ backslash
" virgolette
' apice
\b backspace/*
} / Fine del main /
Output di stampa2.c:
Questa e’ la prima stampa
Questa e’ la seconda stampa
2
/ Nome programma: arearet1.c /
/ programma che calcola l'area di un rettangolo. /
/ Uso di costanti intere /
#include <stdio.h>
void main ()
/ Inizio del main /
int base,altezza,area;
/ tipo funzione byte intervallo*
void nullo 0 nessuno
char carattere 1 -128, +
int intero 2 -32768,+3 2767
float virgola mobile 4 3.4E-38, 3.4E+
double virgola mobile 8 1.7E-308, 1.7E+
base = 4;
altezza = 3;
area = base * altezza;
printf( "L'area del rettangolo di " );
printf(
"base=%d e altezza=%d e': %d\n" ,base,altezza,area);
/ Codici di formato per la printf*
Codice Variabile
%d intera
%c carattere
%f float
*%lf double /
} / Fine del main /
Output di arearet1.c:
L'area del rettangolo di base=4 e altezza=3 e': 12
4
/ Nome programma : areatri.c /
/ Calcolo dell'area di un triangolo con /
/ input /
#include <stdio.h>
void main ()
/ Inizio del main /
int base,altezza;
float area;
printf(
"Inserire: base altezza\n" );
scanf( "%d %d" ,&base,&altezza);
/ modo 1:*
area = base * altezza / 2.0;/*
/ modo che utilizza il cast (* tipo *): /
area = ( float )base * altezza / 2;
/ priorità operazioni matematiche*
() massima
-(unario)
+, - minima
printf( "L'area del triangolo di base" );
printf(
" %d e alt. %d e' %f\n" ,base,altezza,area);
/ Fine del main /
Output 1 di areatri.c:
Inserire: base altezza
L'area del triangolo di base=5 e alt.=4 e' 10.
Output 2 di areatri.c:
Inserire: base altezza
input dell’utente
L'area del triangolo di base=5 e alt.=4 e' 7.
5
/ Nome programma : tipi.c /
/ I tipi fondamentali /
/ int, float, double, char /
#include <stdio.h>
void main ()
int a;
float c;
double d;
char e;
char f[10];
printf( "Inserisci un int\n" );
scanf( "%d" ,&a);
printf(
"Hai inserito l'int %d\n\n" ,a);
printf( "Inserisci un float\n" );
scanf( "%f" ,&c);
printf(
"Hai inserito il float %f\n\n" ,c);
printf( "Inserisci un double\n" );
scanf(
"%lf" ,&d);
printf(
"Hai inserito il double %lf\n\n" ,d);
/ La variabile carattere puo' essere assegnata tramite una*
costante carattere: e='A';
oppure tramite una costante numerica codice ASCII): e=65;
in tal senso una variabile carattere puo' essere utilizzata
come un intero di un solo byte. La stampa o la lettura
(mediante le funzioni scanf e printf)prevede come formattatore
*%c /
printf(
"Inserisci un carattere\n" );
scanf( "\n%c" ,&e);
printf(
"Hai inserito il carattere %d\n\n" ,e);
/ Quando si vuole stampare o leggere (mediante le funzioni*
printf e
*scanf) una stringa si usa come formattatore %s /
printf( "Inserisci una stringa (max 10 lettere)\n" );
scanf( "%s" ,&f);
printf(
"Hai inserito la stringa %s\n\n" ,f);
7
/ Nome programma : uso_cast.c /
/ In questo programma si introduce l'uso dell'operatore /
/ unario "cast". Formato: (nome del tipo) espressione /
/ "espressione" viene convertita nel tipo specificato /
#include <stdio.h>
#include <math.h>
void main ()
int num_int;
double ris;
num_int = 15;
/ per convertire num_int in un double prima di passarlo a sqrt /
ris = sqrt( (
double ) num_int );
printf( "ris = %f \n" ,ris);
/ nota : num_int rimane inalterato /
printf( "num_int = %d \n" ,num_int);
Output di uso_cast.c:
ris = 3.
num_int = 15
8
/ Nome programma: if0.c /
/ if-else /
/ if (condizione) istruzioni1;*
*else istruzioni2; N.B.: l'else e' opzionale /
#include <stdio.h>
void main ()
int a,b;
printf( "Inserire: a b\n" );
scanf(
"%d %d" ,&a,&b);
if (a > b)
printf(
"Lo scarto (if) e' %d\n" ,a-b);
/dipende dall'if/**
else / equivale ai casi b > a oppure b == a /
printf( "Lo scarto (else) e' %d\n" ,b-a);/dipende da else/**
printf(
"a=%d e b=%d\n" ,a,b);
/ Non dipende da if ne' da else/**
} / Fine del main /
Output 1 di if0.c:
Inserire: a b
input dell’utente
Lo scarto (if) e' 2
a=5 e b=
Output 2 di if0.c:
Inserire: a b
input dell’utente
Lo scarto (else) e' 7
a=5 e b=
Output 3 di if0.c:
Inserire: a b
input dell’utente
Lo scarto (else) e' 0
a=7 e b=
10
if ( x > 8 )
{
printf( "Prima istruzione di stampa dipendente dalla cond. x>8 \n" );
printf( "Seconda istruzione di stampa dipendente dalla cond.x>8 \n" );
}
else
{
printf( "Prima istruzione nell'else di if (x>8) \n" );
printf( "Seconda istruzione nell'else di if (x>8) \n" );
}
if ( x < 8 )
{
printf( "Prima istruzione di stampa dipendente dalla cond. x<8 \n" );
printf( "Seconda istruzione di stampa dipendente dalla cond.x<8 \n" );
}
else
{
printf( "Prima istruzione nell'else di if (x<8) \n" );
printf( "Seconda istruzione nell'else di if (x<8) \n" );
}
}
Output di if1.c:
Istruzione di stampa dipendente dalla condizione x>
Istruzione di stampa indipendente dalla condizione x>
Istruzione di stampa indipendente dalla condizione x<
Prima istruzione di stampa dipendente dalla cond. x>
Seconda istruzione di stampa dipendente dalla cond.x>
else relativo a if (x>7)
Prima istruzione di stampa dipendente dalla cond. x<
Seconda istruzione di stampa dipendente dalla cond.x<
Prima istruzione nell'else di if (x>8)
Seconda istruzione nell'else di if (x>8)
Prima istruzione di stampa dipendente dalla cond. x<
Seconda istruzione di stampa dipendente dalla cond.x<
11
/ Nome programma : if2.c /
/ if annidati /
#include <stdio.h>
void main ()
int x,y;
printf( "Introduci un intero x=" );
scanf(
"%d" ,&x);
printf( "Introduci un intero y=" );
scanf(
"%d" ,&y);
printf(
"\n******************** CASO 1 ********************\n" );
/ Nel caso di "if" innestati, l'else a chi viene associato ??? /
/ ogni else viene associato all'if piu' interno che ne e' privo/**
if ( x > 5 )
if ( x > y )
printf(
"%d > %d\n" ,x,y);
else
printf( "Sono nell'else di if ( x > y )\n" );
printf( "\n******************** CASO 2 ********************\n" );
if ( x > 5 )
if ( x > y )
printf(
"%d > %d\n" ,x,y);
else
printf(
"Sono nell'else di if ( x > 5 ) \n" );
Output 1 di if2.c:
Introduci un intero x=
Sono nell’else di ( x > 5 )
13
/ Nome programma: equaz2.c /
/ Il seguente programma chiede all'operatore 3 numeri reali /
/ a, b, e c /
/ e calcola le eventuali radici dell'equazione di secondo grado/**
#include <stdio.h>
#include <math.h> / header file delle funzioni matematiche /
void main ()
float a,b,c; /coefficienti dell'equazione /
double delta,x1,x2;
/delta ed eventuali radici dell'equazione/**
printf( "Primo coefficiente a = " );
scanf(
"%f" ,&a);
printf(
"Secondo coefficiente b = " );
scanf( "%f" ,&b);
printf(
"Terzo coefficiente c = " );
scanf( "%f" ,&c);
if (a == 0.0)
printf ( "L'equazione in esame non e' di secondo grado\n" );
else
delta = b * b - 4 * a * c;
if (delta < 0.0)
printf ( "L'equazione non ammette soluzioni reali !\n" );
else
x1 = (-b-sqrt(delta))/ (2a);*
printf(
"\nLa prima radice e' x1 = %f\n" ,x1);
x2 = (-b+sqrt(delta))/ (2a);*
printf( "La seconda radice e' x2 = %f\n" ,x2);
Output 1 di equaz2.c:
Primo coefficiente a = 1
Secondo coefficiente b = -
1, -5 e 6 sono inseriti in input
La prima radice e' x1 = 2.
La seconda radice e' x2 = 3.
14
Output 2 di equaz2.c:
Primo coefficiente a = 0
Secondo coefficiente b = -
0, -5 e 6 sono inseriti in input
L'equazione in esame non e' di secondo grado
Output 3 di equaz2.c:
Primo coefficiente a = 2
Secondo coefficiente b = 4
0, -5 e 6 sono inseriti in input
L'equazione non ammette soluzioni reali!
16
/ Nome programma : incrdecr.c /
/ Operatori di incremento e di decremento in notazione /
/ postfissa e prefissa /
#include <stdio.h>
void main ()
int c,c_iniz,c_fin;
c=4;
c++;
printf(
"c=%d\n" ,c);
c=4;
++c;
printf(
"c=%d\n" ,c);
c_iniz=0;
c_fin = c_iniz++;
printf( "c_fin=%d c_iniz=%d (notazione postfissa)\n" ,c_fin, c_iniz);
c_iniz=0;
c_fin = ++c_iniz;
printf( "c_fin=%d c_iniz=%d (notazione prefissa)\n" ,c_fin, c_iniz);
Output di incrdecr.c:
c=
c=
c_fin=0 c_iniz=1 (notazione postfissa)
c_fin=1 c_iniz=1 (notazione prefissa)
17
/ Nome Programma : maxfor1.c /
/ Questo programma chiede in input n numeri interi /
/ e ne trova il valore del piu' grande e la sua /
/ posizione all'interno del vettore /
/ (se ci fossero piu' massimi, troverebbe il primo) /
/ Il costrutto del FOR e' : for (espr_1; espr_2; espr_3)*
istruzioni;
espr_1 viene utilizzata come INIZIALIZZAZIONE
espr_2 viene utilizzata come CONDIZIONE
espr_3 viene utilizzata come INCREMENTO
Ognuna delle 3 parti puo' essere tralasciata.
I punti e virgola devono essere presenti./*
#include <stdio.h>
void main ()
int i;
int max, pos_max;
int num[10];
printf(
"Introduci 10 numeri interi\n\n" );
for (i=0; i<10; i=i+1)
printf(
"num[%d]=" ,i);
scanf( "%d" ,&num[i]);
max=num[0];
pos_max=0;
for (i=1; i<10; i=i+1)
if (max<num[i])
max=num[i];
pos_max=i;
printf(
"\n" );
printf("Il massimo e' %d ",max);
printf("sulla componente numero %d\n", pos_max);
19
/ Nome programma : maxfor2.c /
/ Questo programma chiede in input n numeri interi /
/ e ne trova il valore del piu' grande e la sua /
/ posizione all'interno del vettore /
/ (se ci fossero piu' massimi, troverebbe l'ultimo) /
/ Uso delle COSTANTI SIMBOLICHE e del costrutto FOR /
/ #define NOME testo da sostituire /
#include <stdio.h>
/ I numeri espliciti non forniscono alcuna informazione al lettore/**
/ Non e' semplice effettuare una modifica al programma /
#define DIMENSIONE 10
void main ()
int i;
int max, pos_max;
int num[DIMENSIONE];
printf(
"Introduci %d numeri interi\n\n" ,DIMENSIONE);
for (i=0; i<DIMENSIONE; i++)
printf(
"num[%d]=" ,i);
scanf( "%d" ,&num[i]);
max=num[0];
pos_max=0;
for (i=1; i<DIMENSIONE; i++)
if (max<=num[i])
max=num[i];
pos_max=i;
printf("\nIl massimo e' %d ",max);
printf("sulla componente numero %d\n", pos_max);
20
Output di maxfor2.c:
N.B.: Se si inserissero come dati di input 3 (num[0])
17 (num[1])
21 (num[2])
157 (num[3])
-7 (num[4])
189 (num[5])
237 (num[6])
117 (num[7])
237 (num[8])
107 (num[9])
Il massimo e' 237 sulla componente numero 8