- 第 1 题(单选题)
- 第 2 题(单选题)
- 第 3 题(单选题)
- 第 4 题(编程题)
- 第 5 题(编程题)
- 第 6 题(编程题)
题目名称:
下面代码的结果是:( )
#includeint main() { int i = 1; int ret = (++i)+(++i)+(++i); printf("ret = %dn", ret); return 0; }
题目内容:
A .10
B .12
C .9
D .程序错误
第 2 题(单选题)表达式(++i)+(++i)+(++i),只有操作符的优先级和结合性,没法确定唯一计算路径
所以这个表达式可能因为计算顺序的差异导致结果是不一致的,所以表达式是错误的表达式。
可以在VS和Linux gcc测试,结果可能有差异。
题目名称:
下面代码的结果是:
#includeint i; int main() { i--; if (i > sizeof(i)) { printf(">n"); } else { printf(" 题目内容:
A .>
B .<
C .不输出
D .程序有问题
第 3 题(单选题)C语言中,0为假,非0即为真。
全局变量,没有给初始值时,编译其会默认将其初始化为0。
i的初始值为0,i–结果-1,i为整形,sizeof(i)求i类型大小是4,按照此分析来看,结果应该选择B,但是sizeof的返回值类型实际为无符号整形,因此编译器会自动将左侧i自动转换为无符号整形的数据,-1对应的无符号整形是一个非常大的数字,超过4或者8,故实际应该选择A
题目名称:
关于表达式求值说法不正确的是:( )
题目内容:
A .表达式求值先看是否存在整形提升或算术转换,再进行计算
B .表达式真正计算的时候先看相邻操作符的优先级决定先算谁
C .相邻操作符的优先级相同的情况下,看操作符的结合性决定计算顺序
D .只要有了优先级和结合性,表达式就能求出唯一值
第 4 题(编程题)题目名称:
BC68-X形图案
题目内容:
BC68-X形图案
点击题目链接,做题
#include第 5 题(编程题)int main() { int n = 0; while (~scanf("%d", &n)) { for (int i = 0; i < n; i++) { for (int j = 0; j <= n; j++) { if (i + j == n - 1) printf("*"); else if(i == j) printf("*"); else { printf(" "); } } printf("n"); } } return 0; } 题目名称:
BC54-获得月份天数
题目内容:
BC54-获得月份天数
点击题目链接,做题
int main() { int y = 0; int m = 0; int days[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }; while (~scanf("%d %d", &y, &m)) { int day = days[m - 1]; if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) { if (m == 2) { day += 1; } } printf("%dn", day); } return 0; }第 6 题(编程题)题目名称:
BC51-三角形判断
题目内容:
BC51-三角形判断
点击题目链接,做题
int main() { int a = 0; int b = 0; int c = 0; while (~scanf("%d %d %d", &a, &b, &c)) { if ((a + b > c) && (a + c > b) && (c + b > a)) { if ((a == b && a != c) || (a == c && a != b) || (b == c && b != a)) { printf("Isosceles triangle!n"); } else if (a == b && b == c) { printf("Equilateral triangle!n"); } else { printf("Ordinary triangle!n"); } } else { printf("Not a triangle!n"); } } return 0; }



