|
发表于 2018-3-8 11:40:49
|
显示全部楼层
0.如果正,负号运算符的优先级低于加,减号运算符, 那么 -3 + 5 的值应该是多少?
答: -(3+5),先进行3+5的运算再取负值, 答案为-8;
1.请问下买你的程序会显示什么内容?
#include <stdio.h>
int main()
{
int a = 2, b = 1;
printf("%d\n", a / 'b');
return 0;
}
答:a / 'b' 为 a / 66 => 2 / 66, 为一个0.0n的小数, 输出为按整数输出, 整数位为零, 所以输出为0
2.如果不上机实验, 你知道下边的代码输出的是什么吗?
#include <stdio.h>
int main()
{
int a;
(a = 2) + 3 * 4;
printf("a = %d\n", a);
return 0;
}
答: 输出的是
a = 2
原因是:(a = 2) + 3 * 4; 这个语句中是把2的值赋给a
3.请写出下边表达式的值(如果结果为浮点数,请保留6位小数):
A.5 / 3
B.1 / 0
C.1.2 + 3
D.1.2 * 0
E.6.0 / 2
F.10 / 6.0
G. 3 / 5
答:
A.1
B.语法错误
C.4.2
D.0.0
E.3.0
F.1.33
G.0
4.下边代码中存在两处错误,请指出:
#include <stdio.h>
int main()
{
int a = (5 + 1.2) % 2; //右值为浮点数, 但是变量a是整型
printf("%d\n", a); //按照整型输出有问题
}
答: 详见注释
5.C语言其实在大部分情况下不用goto也能做的很好,请尝试将下列代码写成不带goto的版本
A.
if (size > 12)
{
goto a;
}
goto b;
a: cost = cost * 1.05;
flag = 2;
b: bill = cost * flag;
B.
if (ibex > 14)
{
goto a;
}
sheds = 2;
goto b;
a: sheds = 3;
b: help = 2 * sheds;
C.
readin: scanf("%d", &score);
if (score < 0)
{
goto stage2;
}
count++;
goto readin;
stage2: printf("count = %d\n", count);
答:
A.
if (size > 12) {
cost *= 1.05;
flag = 2;
}
bill = cost * flag;
B.
if (ibex > 14)
{
sheds = 3;
}
sheds = 2;
help = 2 * sheds;
C.
if (score < 0)
{
printf("count = %d\n", count);
}
count++;
scanf("%d", &score); |
|