/****************************************
*
* C/C++ vaja X_1
*
* utrjevanje /1
*
*/
1. Naloga
Dana je deklaracija :
struct NehomogenaSestavljena {
int a,b,c;
char d,e,f;
};
Kakšen je pomen zgornje deklaracije :
a) podatkovni tip,
Rešitev:
Pomen zgornje deklaracije, kot podatkovni tip je pravilna, vendar nimamo potem nobene spremenljivke tega tipa.
b) sprememnljivka.
Rešitev:
Pomen zgornje deklaracije, kot spremenljivka ne pride v poštev, ker nimamo deklarirane spremenljivke za podano strukturo.
2. Naloga
Deklarirajte strukturo, ki bo vsebovala podatkovni element (polje) celoštevilskega in
podatkovni element (polje) neceloštevilskega tipa. Dopišite program, ki bo inicializiral
sprememnljivko narejenega tipa in izpisal njene vrednosti.
Rešitev:
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
int main(void){
struct neki{
int a;
float f;} n;
clrscr();
n.a=3343;
n.f=434.43;
cout<<n.a<<n.f;
getch();
return 0;
}
3. Naloga
Deklarirajte podatkovne tipe :
a) nepredznačeno NceloStevilo
b) tabelo zankov velikosti 32
c) realno število
Rešitev:
a) struct NceloStevilo {
unigned float f;
}n1;
b) struct tabela {
char tab[31];
} t1;
c) struct ralnostevilo{
float f;
} f1;
4. Naloga
Dana je deklaracija :
struct xyz{
unsigned int a;
char c[32];
} a, tab[22];
a) Kaj predstavljata deklaraciji 'a' in 'tab[22]' ?
Rešitev:
A predstavlja spremenljivko tipa xyz, tab[22] pa predstavlja tabelo z 23 znaki tipa xyz.
b) Inicializirajte 'a' in 'tab' z naključnimi vrednostmi.
Rešitev:
a.a=3456;
tab[22].c[32]='A';
c) Katera od naslednjih deklaracij sprememnljivke je enaka deklaraciji 'a' ?
c1) struct xyz b1;
c2) xyz b1;
c3) typedef xyz b1;
c4) typedef b1 struct xyz;
Rešitev:
c1 in c3
d) Napišite C/C++ program, ki bo preštel število črk 'A' in 'a' v 'tab[22]', če je
ta inicializirana kot v nalogi 4b) .
Rešitev:
????
5. Naloga
Katere od naslednjih predstavljajo deklaracijo funkcije in katere prototipa funkcije (
vnaprejšnje deklaracije) :
a) void a();
b) int *vneki(){return null;}
c) void afna(){}
d) int a(int,char,int);
Rešitev:
Funkcije predstavljajo nasljedne deklaracije: a in c
Prototip funkcije pa b in d
6. Naloga
Ugotovite, če je naslednja deklaracija pravilna, popravite v nasprotenem primeru :
int funkcija()
int b=33;
int c=c+2*b;
funkcija=c;
}
Rešitev:
Int funkcija() {
Int b=33;
Int c=c+2*b;
Return(c);
}
7. Naloga
Napišimo funkcijo, ki vrača vrednost vsote podanih parametrov :
int vsota(int a,b){
vsota=a+b;
return vsota;
}
Odpravite napake in usposobite funkcijo za delovanje.
Napišite tudi klic zgornje funkcije.
Rešitev:
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
int vsota(int a, int b){
return(a+b);
}
int main (void){
clrscr();
vsota(4,6);
cout<<vsota;
getch();
}
8. Naloga
Dana sta podprograma :
void nekaj1(){
printf("v prvi\n");
nekaj2();
}
void nekaj2(){
printf("....v drugi\n");
}
in glavna funkcija C-jevskega programa :
void main(){
nekaj1();
}
Ugotovite, zakaj program ne deluje in ga popravite tako, da se bo lahko izvedel.
Rešitev:
#include<stdio.h>
#include<iostream.h>
void nekaj2(){
printf("....v drugi\n");
}
void nekaj1(){
printf("v prvi\n");
nekaj2();
}
void main(){
nekaj1();
}
9. Naloga
Zaželeli smo napisati program, z vsebovanima podprogramoma, ki kličeta drug drugega.
Napisali smo naslednje :
void nekaj1(){
i++;
printf("v prvi\n"); Kaj je potrebno v programu postoriti, da se
if (i<10) bo program izvedel ?
nekaj2();
}
void nekaj2(){
i++;
printf("....v drugi\n");
if (i<10)
nekaj1();
}
void main(){
int i=0;
nekaj1();
}
Rešitev:
#include<stdio.h>
#include<iostream.h>
void nekaj2(){
int i;
i++;
printf("....v drugi\n");
if (i<10)
nekaj1();
}
void nekaj1(){
i++;
printf("v prvi\n");
if (i<10)
nekaj2();
}
void main(){
int i=0;
nekaj1();
}