Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Esercizi Informatica A, Prove d'esame di Elementi di Informatica

Alcuni esercizi di programmazione in c presi dagli esami (per lo più anni 2018-2019) del corso di informatica A del polimi (gestionale), prof Distante

Tipologia: Prove d'esame

2018/2019
In offerta
30 Punti
Discount

Offerta a tempo limitato


Caricato il 06/10/2019

Matteo.Di_Fede
Matteo.Di_Fede 🇮🇹

4.6

(5)

20 documenti

1 / 5

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
FEBBRAIO
1 Scrivere un programma in linguaggio c che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi
terminata dal numero zero. Se l’utente immette un valore negativo questo viene chiesto nuovamente fino a che non viene immesso
un numero positivo o il numero zero. A ogni immissione di un numero corretto il programma emette un messaggio apposito se il
numero immesso sia o meno un quadrato perfetto. No funzione radice quadrata
#include <stdio.h>
int main (void)
{
int numeroimmesso
int esci=1
printf ("Inserire un numero positivo; premere zero per terminare l'immissione/n");
scanf ("%d", &numeroimmesso);
while (esci)
{
if (numeroimmesso=0)
esci=0;
else if (numeroimmesso<0)
printf ("il numero immesso è negativo, inserire nuovamente\n");
else if (numeroimmesso>0)
for (i=0,i<numeroimmesso, i++)
if ((i*i)==num)
printf ("Il numero immesso è un quadrato perfetto");
}
return 0;
}
3 Scrivere un programma in C che chiede all’utente di inserire al più 25 caratteri e visualizza il numero di vocali uguali in
posizione uguale. (si ipotizzi che non vengano immesse stringhe più lunghe e tutti caratteri minuscoli).
int main(void)
{
char stringa1[25], stringa2[25], ch;
int i, j, lung1, lung2, n;
printf("inserire prima stringa max 25 char \n");
scanf("%s", stringa1);
printf("inserire seconda stringa max 25 char \n");
scanf("%s", stringa2);
lung1 = strlen(stringa1);
lung2 = strlen(stringa2);
for (i = 0; i <= lung1 || i <= lung2; i++)
if (stringa1[i] == stringa2[i] && (stringa1[i] == 'a' || stringa1[i] == 'e' || stringa1[i] == 'o' || stringa1[i] == 'u' || stringa1[i] == 'i'))
printf("la vocale è %c\n", stringa1[i]);
return 0;
}
4 Scrivere una funzione che, data una lista di interi, crei una nuova lista: la lista degli elementi pari e la lista degli elementi
dispari. La testa di lista della lista originale (nome “testa”) è dichiarata come variabile globale. Si ponga attenzione a dove
dichiarare le teste delle due nuove liste (testa_pari, testa_dispari). Oltre alla funzione si scriva la definizione del tipo, e la parte di
dichiarazione delle teste
#include <stdio.h>
#include <string.h>
#include <malloc.h>
struct lista { int num; struct lista *next};
struct lista *testa;
struct lista *pari=NULL;
struct lista *dispari= NULL;
void paridispari (lista *testa)
{
int cont=0;
pf3
pf4
pf5
Discount

In offerta

Anteprima parziale del testo

Scarica Esercizi Informatica A e più Prove d'esame in PDF di Elementi di Informatica solo su Docsity!

FEBBRAIO

1 Scrivere un programma in linguaggio c che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi terminata dal numero zero. Se l’utente immette un valore negativo questo viene chiesto nuovamente fino a che non viene immesso un numero positivo o il numero zero. A ogni immissione di un numero corretto il programma emette un messaggio apposito se il numero immesso sia o meno un quadrato perfetto. No funzione radice quadrata

#include <stdio.h> int main (void) { int numeroimmesso int esci= printf ("Inserire un numero positivo; premere zero per terminare l'immissione/n"); scanf ("%d", &numeroimmesso); while (esci) { if (numeroimmesso=0) esci=0; else if (numeroimmesso<0) printf ("il numero immesso è negativo, inserire nuovamente\n"); else if (numeroimmesso>0) for (i=0,i<numeroimmesso, i++) if ((i*i)==num) printf ("Il numero immesso è un quadrato perfetto"); } return 0; }

3 Scrivere un programma in C che chiede all’utente di inserire al più 25 caratteri e visualizza il numero di vocali uguali in posizione uguale. (si ipotizzi che non vengano immesse stringhe più lunghe e tutti caratteri minuscoli).

int main(void) { char stringa1[25], stringa2[25], ch; int i, j, lung1, lung2, n; printf("inserire prima stringa max 25 char \n"); scanf("%s", stringa1); printf("inserire seconda stringa max 25 char \n"); scanf("%s", stringa2); lung1 = strlen(stringa1); lung2 = strlen(stringa2); for (i = 0; i <= lung1 || i <= lung2; i++) if (stringa1[i] == stringa2[i] && (stringa1[i] == 'a' || stringa1[i] == 'e' || stringa1[i] == 'o' || stringa1[i] == 'u' || stringa1[i] == 'i')) printf("la vocale è %c\n", stringa1[i]); return 0; }

4 Scrivere una funzione che, data una lista di interi, crei una nuova lista: la lista degli elementi pari e la lista degli elementi dispari. La testa di lista della lista originale (nome “testa”) è dichiarata come variabile globale. Si ponga attenzione a dove dichiarare le teste delle due nuove liste (testa_pari, testa_dispari). Oltre alla funzione si scriva la definizione del tipo, e la parte di dichiarazione delle teste

#include <stdio.h> #include <string.h> #include <malloc.h>

struct lista { int num; struct lista *next}; struct lista *testa; struct lista *pari=NULL; struct lista *dispari= NULL; void paridispari (lista *testa) { int cont=0;

struct lista temp ; while (testa!=NULL) { if ((testa->num %2)==0) { temp= (struct elemento *)malloc(sizeof(struct lista)); temp->num=testa->num; temp->next=pari; pari=temp; } else { temp= (struct elemento *)malloc(sizeof(struct lista)); temp->num=testa->num; temp->next=dispari; dispari=temp; } testa=testa->next; } return ; }

GENNAIO

1 Scrivere un programma in linguaggio c che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi postivi terminata dal numero zero. Se l’utente immette un valore negativo questo viene nuovamente chiesto fino a che non viene chiesto un numero positivo o il numero zero. Una volta terminata l’immissione il programma visualizza la media intera di tutti i numeri introdotti, zero escluso.

#include <stdio.h> int main (void) { int num, media=0, somma=0, cont=0; int esci=1; while (esci) { printf ("inserire un numero positivo\n"); scanf ("%d", &num); if (num=0) esci=o; else if (num<0) printf ("numero negativo"); else if (num>0) { cont++; somma=somma+num media=somma/cont } } if (media>0) printf ("la media è %d",media); return 0; }

5 Scrivere un programma per cui l’utente inserisce una temperatura in Celsius e questa viene visualizzata e convertita in Fahrenheit e Calvin. Se la temperatura inserita è minore dello zero assoluto, viene segnalato un errore. Se l’utente inserisce una temperatura inferiore allo zero assoluto il programma termina dopo la conversione altrimenti resta in attesa di una nuova temperatura da convertire.

#include <stdio.h> int main(void) { int gradi, kelvin, far; while(1) {

while (temp2!=NULL) { if (temp1->num==temp2->num) cont++; temp2=temp2->next; } temp1=temp1->next; } return cont; }

5 Scrivere un programma che chiede all’utente di inserire una sequenza di caratteri terminata dall’immissione del carattere * e li salva (carattere * escluso) sul file char.txt in ordine inverso all’immissione (per primo quello immesso più di recente). Si gestiscano eventuali errori nell’apertura del file.

#include <stdio.h> #include <string.h> #include <malloc.h>

int main (void) { FILE *fd; int i,fine=0; char c; int cont=0; struct elemento { char car; struct elemento *pun; }; struct elemento *testa= NULL; struct elemento *temp= NULL; printf ("inserire caratteri e termina con #\n");

while ((c=getchar())!='\n' ) { cont++; if (c=='#') fine=1; if(cont==1 && c!='#') { temp= (struct elemento *)malloc(sizeof(struct elemento)); temp->car=c; temp->pun=NULL; testa=temp; } else if (c!='#'){ temp= (struct elemento *)malloc(sizeof(struct elemento)); temp->car=c; temp->pun=testa; testa=temp; } } if (fine==0) { printf ("inserire caratteri e termina con #\n"); return 0; } temp=testa; fd=fopen("scrivi.txt", "w"); if( fd==NULL ) { perror("Errore in apertura del file"); return(1); } do { printf ("%c",temp->car); fprintf(fd, "%c", temp->car); temp=temp->pun; } while (temp!=NULL); fclose(fd); return(0);