1. Напишете какво точно ще изведе програмата:
#include <stdio.h>
typedef struct { int num; char name[20]; } inf;
int main(int argc, char *argv[]){
char m[]="samsxdcfv",*p=m; int x,y;
char *ar[]= {"sabcKesen","ksdefNercev","ksghiiphop"};
inf st[] = {{12,"esabce"}, {17,"refLe"},{211,"rghiji"},{23,"qsmriKap"}};
x=0x35;y=0xD;x<<=1;y>>=1;printf("1:%x %x\n",x,y);
x=0x33;y=3 ;printf("2:%x %x %x\n",x|y,x&y,x^y);
x=0xE; y=8;printf("3:%x\n", x&(~y));
printf("4: %c %c %s\n", *(m+1), *m+2, m+1);
printf ("5: %c %s\n", p[1],p+1);
printf ("6: %s %s \n", *(ar+1), *ar+2);
printf("7: %c %c\n", **(ar+1), *(*ar+2));
printf("8: %d %s \n",st[3].num, st[1].name+1);
printf("9: %d %s \n",(st+2)->num,st->name+1);
printf("10:%c %c %c\n",*(st->name),*((st+1)->name),*(st->name+1));
return 0;
}
Отговори на част 1.
Всеки отговор трябва да бъде обоснован:
1:6a 6 | 0x35 -> 0011
0101 , след преместване едно наляво 0110 1010 0xD -> 0000 1101 , след преместване едно надясно 0000 0110 |
2:33 3 30 |
|
&
^ 0011 0011 0011 0011 0011 0011 0000 0011 0000 0011 0000 0011 0011 0011 0000 0011 0011 0000 |
3:6 |
y
~y x&(~y) 0000 1000 1111 0111 0000 1110 1111 0111 0000 0110 |
4: a u amsxdcfv | вторият символ на
стринга първият символ увеличен с 2 указател към вторият символ |
5: a amsxdcfv | вторият символ на
стринга указател към вторият символ |
6: ksdefNercev bcKesen | масив от указатели
насочени към стрингове вторият елемент на масива - указател към втория стринг първият елемент на масива - указател към 1 стринг преместен 2 позиции |
7: k b | символът сочен от
вторият елемент на масива символът сочен от първият елемент на масива преместен 2 позиции |
8: 23 efLe | полето num на
четвъртата структура указател към вторията символ на полето name на втората структура |
9: 211 sabce | полето num сочено
от st+2 ( указател към третата структура) указател към втория символ на полето name на първата структура |
10:e r s | първият
символ на полето name сочено от указател към първата структура първият символ на полето name сочено от указател към втората структура вторият символ на полето name сочено от указател към първата структура |