test_st(новый) / test_tabl
.doc
1.Объявите t как 10-елементный массив указателей на функцию с пустым списком параметров, возвращающую long. 2.Какое значение будет присвоено переменной x? int a = 2; int b = 3; int x = sizeof("abc") + (a&b); 3.Функция f определение как: void f(int *x) { *x = *x > 0 ? 1 : -1; } Какое значение будет присвоено переменной y? int a = -2; int b = 4; f(&a); f(&b); int y = a+b; 4.Какое значение будет иметь x после выполнения следующей программы: int arr[5]; int *p = arr; while (p < arr+5) *p++ = 1; int x = 0; for (p = arr; p < arr+5; p++) x += *p; 5.Что будет на выходе следующей программы: int a = 2; int b = 3; printf("%d%d%s%d",a,++b,"2",a/3); 6.Функции f и g определены следующим образом: int f() { return 2; } int g() { return 6; } Какое значение будет присвоено переменной x? typedef int (*FPTR)(); FPTR p = NULL; int x; if (p) p = &f; else p = &g; x = (*p)(); 7.Функция f определена следующим образом: void f(int *p) { static int i = 0; i += 3; *p = i; } Чему будет равно значение переменной x после выполнения следующих инструкций: int x; f(&x); f(&x); 8.Следующая функция была написана для того, чтобы удалить список, на который указывает переменная head. Здесь все правильно? #include <stdlib.h> struct list { struct list *next; } *head = NULL; void freeup() { struct list *p; for (p = head; p; p = p->next) free(p); } 9.Корректно ли нижеследующее присваивание в Cи? Если нет объясните почему. Иначе напишите фрагмент программы, где это присваивание корректно используется. a[-3] = -5;
|
10.Что будет на выходе программы #include <stdio.h> char *days[] = { "Mon" "Tue" "Wed" "Thu" "Fri" "Sat" "Sun" }; int size = sizeof(days)/sizeof(char *); void main() { int k; for (k = 0; k < size; k++) { printf("%d-%s",k+1, days[k]); } } 11. Программы первая и/или вторая работоспособны? Если нет, поясните. Если программа первая и/или вторая работоспособны, то опишите ограничения в использовании каждой из программ, если такие имеются. #include <stdio.h> #define MAX 10 char buff [MAX]; /* Первая */ void main() { fgets(buff, MAX, stdin); // (*) printf ("%s",buff); } /* Вторая */ void main() { gets(buff); // (**) printf ("%s",buff); } 12.Какие из операторов a), b), c), d), e) неправильные и почему? void main(void) { int *px, *pxx; { static int x; int xx; px = &x; //a) pxx = &xx;//b) } { static double x; *px = 6; //c) *pxx = 7; //d) px = &x; // e) } } 13.Определить значение переменной res в следующей программе. Если в программе есть ошибка в описании переменных, которую обнаружит компилятор С, то исправьте ее. void main() { struct {struct{int a;}*b}a; a.b->a=5; int res = a.b->a == 5; } 14.Корректна ли нижеследующая программа? Если нет – объясните почему? struct tag_SomeStruct { int x; double y; } main() { struct tag_SomeStruct x, y; /* .... */ return x = y.x; } |