Как объявить переменную a, являющуюся указателем на константный указатель типа T?
Как объявить переменную a, являющуюся указателем на константный указатель типа T?
Укажите строки, в которых содержатся ошибки:
void Test(const int **a) {
a = 0; // 1
*a = 0; // 2
**a = 0; // 3
}
Укажите строки, в которых содержатся ошибки:
void Test(const int **a) {
a = 0; // 1
*a = 0; // 2
**a = 0; // 3
}
Что выведет программа?
int a;
double b = 2;
a = 2 * (b * 5/2) / (5/2);
printf("%d", a);
Что выведет программа?
int a;
double b = 2;
a = 2 * (b * 5/2) / (5/2);
printf("%d", a);
Каким будет результат компиляции и выполнения следующего кода?
#include <stdio.h>
int main() {
int a = 3;
switch (a) {
default: {
int b = 0;
a = b;
break;
}
case 0: {
int b = 3;
a = b;
break;
}
}
printf("%d", a);
return 0;
}
Варианты ответов:
1) Код скомпилируется и напечатает число 0
2) Код скомпилируется и напечатает число 3
3) Код скомпилируется, но во время выполнения возникнет ошибка
4) Код не скомпилируется, так как default должен быть последней меткой в операторе switch
5) Код не скомпилируется, так как переменная b объявлена дважды
Каким будет результат компиляции и выполнения следующего кода?
#include <stdio.h>
int main() {
int a = 3;
switch (a) {
default: {
int b = 0;
a = b;
break;
}
case 0: {
int b = 3;
a = b;
break;
}
}
printf("%d", a);
return 0;
}
Варианты ответов:
1) Код скомпилируется и напечатает число 0
2) Код скомпилируется и напечатает число 3
3) Код скомпилируется, но во время выполнения возникнет ошибка
4) Код не скомпилируется, так как default должен быть последней меткой в операторе switch
5) Код не скомпилируется, так как переменная b объявлена дважды
Что означает следующее объявление?
typedef int (* A)( )
Варианты ответов:
1) Объявляется тип, который представляет собой указатель на переменную типа int
2) Объявляется тип, который представляет собой указатель на функцию, возвращающую значение типа int
3) Объявляется указатель на переменную A целого типа
4) Объявляется константный указатель на переменную A типа int
Что означает следующее объявление?
typedef int (* A)( )
Варианты ответов:
1) Объявляется тип, который представляет собой указатель на переменную типа int
2) Объявляется тип, который представляет собой указатель на функцию, возвращающую значение типа int
3) Объявляется указатель на переменную A целого типа
4) Объявляется константный указатель на переменную A типа int
Что произойдет, если попытаться скомпилировать и запустить следующую программу?
#include <stdio.h>
int main(int argc, char *argv[]) {
int a = 2;
switch(a) {
default:
printf("default");
break;
case 1:
printf("1");
break;
}
return 0;
}
Варианты ответов:
1) Произойдет ошибка компиляции
2) Произойдет ошибка времени выполнения
3) На экран будет выведено "default"
4) На экран будет выведено "1"
5) Программа будет успешно скомпилирована и ничего не выведет на экран
Что произойдет, если попытаться скомпилировать и запустить следующую программу?
#include <stdio.h>
int main(int argc, char *argv[]) {
int a = 2;
switch(a) {
default:
printf("default");
break;
case 1:
printf("1");
break;
}
return 0;
}
Варианты ответов:
1) Произойдет ошибка компиляции
2) Произойдет ошибка времени выполнения
3) На экран будет выведено "default"
4) На экран будет выведено "1"
5) Программа будет успешно скомпилирована и ничего не выведет на экран
Что будет напечатано?
printf("Что ?\n мешает/n вам работать \n");
1)
Что ?
мешает/n вам работать
2)
Что ? мешает вам работать
3)
Что ?
мешает
вам работать
4)
Что ? мешает/n вам работать
Что будет напечатано?
printf("Что ?\n мешает/n вам работать \n");
1)
Что ?
мешает/n вам работать
2)
Что ? мешает вам работать
3)
Что ?
мешает
вам работать
4)
Что ? мешает/n вам работать
Являются ли структуры (struct) и объединения (union) взаимозаменяемыми?
Являются ли структуры (struct) и объединения (union) взаимозаменяемыми?
Что будет выведено на консоль при выполнении?
<stdio.h>
int main()
{
int a, c = 0;
a = c++ + ++c;
printf(" %d %d ", a, c);
c += --a + a--;
printf(" %d %d ", a, c);
return 0;
}
Что будет выведено на консоль при выполнении?
<stdio.h>
int main()
{
int a, c = 0;
a = c++ + ++c;
printf(" %d %d ", a, c);
c += --a + a--;
printf(" %d %d ", a, c);
return 0;
}
Как объявить макрос, заменяющий SIZE на значение 5 на этапе прекомпиляции?
Как объявить макрос, заменяющий SIZE на значение 5 на этапе прекомпиляции?
Какие операции допустимы для указателей p1 и p2, объявленных как:
int *p1, *p2;
Какие операции допустимы для указателей p1 и p2, объявленных как:
int *p1, *p2;
Что выведет эта программа?
#include <stdio.h>
#define A(b) "" #b "" "c"
int main() {
printf("%s", A(a)A(A(a)));
return 0;
}
Варианты ответов:
1) возникнет ошибка во время выполнения
2) другой ответ
3) acacc
4) acA(a)c
5) она не скомпилируется
6) " #b "" "c
Что выведет эта программа?
#include <stdio.h>
#define A(b) "" #b "" "c"
int main() {
printf("%s", A(a)A(A(a)));
return 0;
}
Варианты ответов:
1) возникнет ошибка во время выполнения
2) другой ответ
3) acacc
4) acA(a)c
5) она не скомпилируется
6) " #b "" "c
Выберите все правильные утверждения для следующих типов:
1) const int *
2) int const *
3) int * const
Варианты ответов:
1) Первый тип означает константный указатель на объект типа int
2) Второй тип означает константный указатель на объект типа int
3) Третий тип означает константный указатель на константу типа int
4) Первый тип означает указатель на константу типа int
5) Третий тип идентичен второму
6) Все три типа идентичны
7) Второй тип идентичен первому
Выберите все правильные утверждения для следующих типов:
1) const int *
2) int const *
3) int * const
Варианты ответов:
1) Первый тип означает константный указатель на объект типа int
2) Второй тип означает константный указатель на объект типа int
3) Третий тип означает константный указатель на константу типа int
4) Первый тип означает указатель на константу типа int
5) Третий тип идентичен второму
6) Все три типа идентичны
7) Второй тип идентичен первому
Какие символы могут использоваться для комментариев?
Какие символы могут использоваться для комментариев?
-
-
-
-
Что произойдет в результате компиляции и выполнения данного кода?
#include <stdio.h>
void f() { printf("%d", 1); }
int main() {
void (*a)() = f; // 1
a(); // 2
return 0;
}
Что произойдет в результате компиляции и выполнения данного кода?
#include <stdio.h>
void f() { printf("%d", 1); }
int main() {
void (*a)() = f; // 1
a(); // 2
return 0;
}
Какой символ означает операцию взятия адреса?
Какой символ означает операцию взятия адреса?
Что будет выведено на экран?
#include <stdio.h>
void mystery(int a, int b) {
(!(a<b))?printf("First"):printf("Second");
}
int main() {
int a = 5, b = 4;
mystery(a, b);
return 0;
}
Что будет выведено на экран?
#include <stdio.h>
void mystery(int a, int b) {
(!(a<b))?printf("First"):printf("Second");
}
int main() {
int a = 5, b = 4;
mystery(a, b);
return 0;
}
В каких строчках кода содержатся ошибки?
struct A {
char a[]; // 1
};
struct B {
char a;
char b[]; // 2
};
struct C {
char a[]; // 3
char b;
};
int main() {
char a[]; // 4
return 0;
}
void test(char a[]) { // 5
}
В каких строчках кода содержатся ошибки?
struct A {
char a[]; // 1
};
struct B {
char a;
char b[]; // 2
};
struct C {
char a[]; // 3
char b;
};
int main() {
char a[]; // 4
return 0;
}
void test(char a[]) { // 5
}
Укажите корректный вариант объявления массива:
Укажите корректный вариант объявления массива:
Какие из следующих конструкций корректны?
1)
/* 1 */
int i = 0;
do {
i++;
} while (i < 10);
2)
/* 2 */
int i = 0;
while (i < 10) {
i++;
}
3)
/* 3 */
int i = 0;
do {
i++;
} do (i < 10);
4)
/* 4 */
int i = 0;
while(i < 10) {
i++;
} while (i < 10);
5)
/* 5 */
int i = 0;
do(i < 10) {
i++;
}
Какие из следующих конструкций корректны?
1)
/* 1 */
int i = 0;
do {
i++;
} while (i < 10);
2)
/* 2 */
int i = 0;
while (i < 10) {
i++;
}
3)
/* 3 */
int i = 0;
do {
i++;
} do (i < 10);
4)
/* 4 */
int i = 0;
while(i < 10) {
i++;
} while (i < 10);
5)
/* 5 */
int i = 0;
do(i < 10) {
i++;
}