题目:输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示. #include <stdio.h> void fun(int a, int p1, int v) { int i; int temp; printf("The result:"); int k = 32; if (a < 0) { a = -a; k--; printf("1"); } for (i = k; i >= 1; i--) { if (i % 4 == 0) { printf(" "); } if (i == (32 - p1 + 1)) { printf("%d", v); } else { temp = (a >> (i - 1)) & 1; printf("%c", (temp == 1) ? '1' : '0'); } } printf("\n"); } int main() { int a; int p1, p2; printf("Please enter a number:"); scanf("%d", &a); printf("Enter p1(p1,p2<32) and v(0|1):"); scanf("%d%d", &p1, &p2); fun(a, p1, p2); return 0; }