判断题
1-1 表达式 !x 等价于x != 1。F 应该为x!=0
1-2 运算符“+”不能作为单目运算符。 F 存在单目+ 例如+65,表示正的65
1-3 s(s-a)(s-b)(s-c) 是合法的C语言表达式。 F 记得一定一定要带*
1-4 表达式 !!6的值是6。F 是1呐
1-5 表达式 ~(~2<<1)的值是5。 T 2是0010,~2是1101,~2<<1是1010, ~(~2<<1)是0101,即5
1-6 表达式 !(x>0||y>0) 等价于!(x>0)&&!(y>0)。T 可联系摩根定律
1-7 若表达式sizeof(int)的值为4,则int类型数据可以表示的最大整数为2^31−1。 T
1-8 表达式 (z=0, (x=2)||(z=1),z) 的值是1。F 结果是0,第一个式子给z赋值为0,第二个式子是或语句,x赋值为2,此时或语句判断为真,所以不执行z=1,最终括号表达式输出最后一个式子的值0
1-9 C 语言的运算符只有单目运算符和双目运算符两种。F 醒醒,三目计算符也存在的啊
1-10 在所有的关系运算符(>=、>、==、!=、<=、<)中,优先级最低的运算符是“==、!=”。T 大小关系优先于相等关系
单选题
2-1 已知字符'c' 的ASCII码为99,语句printf ("%d,%c",'c','c'+1); 的输出为( )。
A.99,c B.99,100 C.99,d D.语句不合法
选择C
2-2 阅读以下程序段,如果从键盘上输入1234567<回车>,则程序的运行结果是( )。
int i,j;
scanf("%3d%2d",&i,&j);
printf("i = %d, j = %d\n",i,j);
A.i = 123, j = 4567 B.i = 1234, j = 567 C.i = 1, j = 2 D.i = 123, j = 45
选择D,记得Part1有原题
2-3 阅读以下程序段,如果从键盘上输入abc<回车>,则程序的运行结果是( )。
char ch;
scanf("%3c",&ch);
printf("%c",ch);
A.a B.b C.c D.语法出错
选择A,同上
2-4 已知字母A的ASCII码为十进制的65,下面程序段的输出是( )。
char ch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);
A.67,D B.B,C C.C,D D.不确定的值
选择A,同上
2-5 设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( )。
A.b=1.0/a; B.b=(float) (1/a); C.b=1/(float)a; D.b=1/(a*1.0);
选择B,结果为0
2-6 若" int n; float f=13.8; ",则执行"n=(int)f%3"后,n的值是( )。
A.1 B.4 C.4.333333 D.4.6
选择A,先执行(int)f=13,再13%3=1
2-7 下面( )表达式的值为4。
A.11/3 B.11.0/3 C.(float)11/3 D.(int)(11.0/3+0.5)
选择D,输出结果如下
2-8 若有定义int x=3, y=2和float a=2.5, b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是( )。
A.0 B. 2 C.1.5 D.1
选择D,(int)a=2,(int)b=3,2/3=0,(3+2)%2=1
2-9 计算变量x(x大于1)整数部分位数的表达式,可以写作( )。
A.(int)log10(x) B.log10(x) C.log10(x)+1 D.(int)log10(x)+1
选择D,常见的取整数位数的公式
2-10 C语言中,关系表达式和逻辑表达式的值是( )。
A.0 B.1 C.0 或 1 D.'T' 或 'F'
选择C
2-11 判断变量x、y中有且只有1个值为0的表达式为( )。
A.!(x*y)&&x+y B.(x*y)&&x+y C.x*y==0 D.x==0&&y!=0
选择A
2-12 若变量已经被正确定义,为表示“变量x和y都能被3整除”,应使用的C表达式是( )。
A.(x%3 != 0) || (y%3 != 0)
B.(x%3 != 0) && (y%3 != 0)
C.(x%3 == 0) || (y%3 == 0)
D.(x%3 == 0) && (y%3 == 0)
选择D
2-13 为表示“a和b都不等于0”,应使用的C语言表达式是()。
A.(a!=0) || (b!=0)
B.a || b
C.!(a=0)&&(b!=0)
D.a && b
选择D(这道题不知道为啥脑抽选了C,也许是把感叹号看到a后面了)
2-14 执行下面程序中的输出语句后,输出结果是( )。
int a;
printf("%d\n",(a=3*5,a*4,a+5));
A.65 B.20 C.15 D.10
选择B,第一个式子a=15,第二个式子没有对a赋值,若要赋值应为a=a*4,第三个式子计算得20
多选题
3-1
C语言里,下列选项正确的赋值语句是( )。
A.t += 1;
B.n1 = (n2 = (n3 = 0));
C.k = i = j;
D.a = b + c = 1;
选择ABC,D这个怎么看都是有问题的吧
填空题
4-1
写出下列关系表达式的运行结果。
已知:变量的定义和初始化如下
char ch = 'w';
int a = 2, b = 3, c = 1, d, x=10;
printf("%d", a > b == c);
0
printf("%d", d = a > b);
0
printf("%d", ch >'a' + 1);
1
printf("%d", d = a + b > c);
1
printf("%d", b – 1 == a != c);
0
printf("%d", 3 <= x <= 5);
1
4-2
写出下列逻辑表达式的运行结果。
已知:变量的定义和初始化如下
char ch = 'w';
int a = 2, b = 0, c = 0;
float x = 3.0;
printf("%d", a && b);
0
printf("%d", a || b && c);
1
printf("%d", !a && b);
0
printf("%d", a||3+10&&2);
1
printf("%d", !(x == 2));
1
printf("%d", !x == 2);
0
printf("%d", ch || b);
1
程序填空题
6-4 写出满足条件的关系表达式或逻辑表达式[5]
写出满足下列条件的C表达式。
① x 为零。 x==0
② x 和 y 不同时为零。x!=0||y!=0