Q:

Why does this C++ code-snippet segmentation fault?

#include <iostream>
using namespace std;

int recur(int x) {
    1 and recur(--x);
    cout << x;
    return x;
}

int main() {
    recur(10);
    return 0;
}

A:

Thats an infinite recursion. So it will seg fault when it runs out of stack space.

A:

1 and recur(--x);

is equivalent to
recur(--x);

Clearly you are making infinite recursive calls which leads to stack overflow followed by segmentation fault.
I guess you meant 
  x and recur(--x);

which makes the recursive call only when x is non-zero.

