Βοήθεια σε C/C++
Δημοσιεύτηκε: Δευ 25 Φεβ 2013, 10:28 am
Αν ξέρει κανείς C++ και μπορεί αν βοηθήσει
1. Έστω το παρακάτω απόσπασμα κώδικα στη γλώσσα προγραμματισμού C:
int i1, i2;
int *p1, *p2;
i1 = 5;
p1 = &i1;
i2 = *p1 / 2 + 10;
p2 = p1;
Τι θα τυπωθεί στην οθόνη μετά την εκτέλεση της παρακάτω εντολής:
printf("i1 = %i, i2 = %i, *p1 = %i, *p2 = %i\n", i1, i2, *p1, *p2);
Τεκμηριώστε την απάντησή σας.
2. H ακόλουθη συνάρτηση στη γλώσσα προγραμματισμού C λαμβάνει ως παράμετρο μια συμβολοσειρά ψηφίων (δηλ. αλφαριθμητικό που αποτελείται μόνο από τα ψηφία 0-9), τη μετατρέπει στον αντίστοιχο αριθμό στο δεκαδικό σύστημα αρίθμησης και επιστρέφει τον αριθμό αυτό. Συμπληρώστε τη συνάρτηση στο σημείο που συμβολίζεται με ??? ώστε να λειτουργεί σωστά.
int strToInt (char string[])
{
int i, intValue, result = 0;
for (i = 0; string >= '0' && string <= '9'; ++i)
{
intValue = string - '0';
result = ???
}
return result;
}
3. Η ακόλουθη συνάρτηση στη γλώσσα προγραμματισμού C αθροίζει τα στοιχεία ενός μονοδιάστατου πίνακα ακεραίων αριθμών και επιστρέφει το άθροισμά τους. Ο μονοδιάστατος πίνακας ακεραίων (array) καθώς και το μέγεθος του πίνακα (n) δίνονται ως παράμετροι στη συνάρτηση. Συμπληρώστε τη συνάρτηση στα δύο σημεία που συμβολίζονται με ??? ώστε να λειτουργεί σωστά.
int arraySum (int array[], int n)
{
int sum = 0, *ptr;
for (ptr = array; ???; ++ptr)
sum += ???
return sum;
}
4. Να γραφεί πρόγραμμα στη γλώσσα προγραμματισμού C, το οποίο:
• διαβάζει δύο ακέραιες τιμές και τις εκχωρεί σε δύο ακέραιες μεταβλητές.
• καλεί µια συνάρτηση τύπου void, η οποία δέχεται ως παραμέτρους τις δύο παραπάνω ακέραιες μεταβλητές και επιστρέφει στον πρώτο ακέραιο το γινόμενο των δύο ακεραίων και στο δεύτερο ακέραιο το πηλίκο της ακέραιας διαίρεσης των δύο ακεραίων.
• εμφανίζει στην οθόνη τις νέες τιμές των δύο ακέραιων μεταβλητών.
1. Έστω το παρακάτω απόσπασμα κώδικα στη γλώσσα προγραμματισμού C:
int i1, i2;
int *p1, *p2;
i1 = 5;
p1 = &i1;
i2 = *p1 / 2 + 10;
p2 = p1;
Τι θα τυπωθεί στην οθόνη μετά την εκτέλεση της παρακάτω εντολής:
printf("i1 = %i, i2 = %i, *p1 = %i, *p2 = %i\n", i1, i2, *p1, *p2);
Τεκμηριώστε την απάντησή σας.
2. H ακόλουθη συνάρτηση στη γλώσσα προγραμματισμού C λαμβάνει ως παράμετρο μια συμβολοσειρά ψηφίων (δηλ. αλφαριθμητικό που αποτελείται μόνο από τα ψηφία 0-9), τη μετατρέπει στον αντίστοιχο αριθμό στο δεκαδικό σύστημα αρίθμησης και επιστρέφει τον αριθμό αυτό. Συμπληρώστε τη συνάρτηση στο σημείο που συμβολίζεται με ??? ώστε να λειτουργεί σωστά.
int strToInt (char string[])
{
int i, intValue, result = 0;
for (i = 0; string >= '0' && string <= '9'; ++i)
{
intValue = string - '0';
result = ???
}
return result;
}
3. Η ακόλουθη συνάρτηση στη γλώσσα προγραμματισμού C αθροίζει τα στοιχεία ενός μονοδιάστατου πίνακα ακεραίων αριθμών και επιστρέφει το άθροισμά τους. Ο μονοδιάστατος πίνακας ακεραίων (array) καθώς και το μέγεθος του πίνακα (n) δίνονται ως παράμετροι στη συνάρτηση. Συμπληρώστε τη συνάρτηση στα δύο σημεία που συμβολίζονται με ??? ώστε να λειτουργεί σωστά.
int arraySum (int array[], int n)
{
int sum = 0, *ptr;
for (ptr = array; ???; ++ptr)
sum += ???
return sum;
}
4. Να γραφεί πρόγραμμα στη γλώσσα προγραμματισμού C, το οποίο:
• διαβάζει δύο ακέραιες τιμές και τις εκχωρεί σε δύο ακέραιες μεταβλητές.
• καλεί µια συνάρτηση τύπου void, η οποία δέχεται ως παραμέτρους τις δύο παραπάνω ακέραιες μεταβλητές και επιστρέφει στον πρώτο ακέραιο το γινόμενο των δύο ακεραίων και στο δεύτερο ακέραιο το πηλίκο της ακέραιας διαίρεσης των δύο ακεραίων.
• εμφανίζει στην οθόνη τις νέες τιμές των δύο ακέραιων μεταβλητών.