1.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void) {
int a, b, c, d; //先定义变量 a,b,c,d
a = 10; //给a赋值为10
b = a++;
//先将a存储的值赋值给b,a再进行自增运算,是前缀,所以先存储a的值为10,在进行+1运算,b的值为10,a的值为11
c = ++a;
//先执行a的后缀自增运算,先执行+1,在赋值,a的值加1,为12,在赋值给c,c的值为12
d = 10 * a++;
//先a进行自增运算,是前缀,所以先存储a的值为11,在进行+1运算,a的值为12,然后*10后赋值给d,d的值为120
printf("b ,c ,d: %d %d %d", b, c, d);//分别输出b,c,d的值,为10,12,120
return 0;
}
2.把0xff通过位运算清0,把0x80通过位运算置为1
3.输入一个字符,
如果是大写转换小写,
如果是小写转换大写,
如果是数字输出平方,
如果是特殊字符则直接输出
4
int main() {
unsigned int i = 10;
for (; i >= 0;) {
i -= 2;
printf("i = %d\n", i);
}
return 0;
错误。该程序会出现死循环,由于定义的变量I是无符号整形,而在循环语句中,i的初始值为10,每次循环进行步长为2的自减运算,i会变为负值继续运行程序,导致程序无限循环。
5
运行结果为11
6
6
运行结果为i=5,j=7
给i,j分别赋值为5 和9
然后执行三目运算,先执行判断,i和j的值知否相等,不等则为假,输出0,并对X进行判断,由于X的初始值未定义,则x=0,为真,值为1,则执行表达式i,所以输出I的值为5,j的值为9