除书籍社区给出的题解外,其余为个人所解,仅供参考
第4章 表达式
练习题
- (a) 1 2
(b) 0
(c) 1
(d) 0 - 自c99以后,一样
- 空
- (a) 1
(b) -1
(c) -1
(d) 1 - 空
- (a) 3
(b) -3
(c) 3
(d) -3 - 不可行
- 正确
- (a) 63 8
(b) 3 2 1
(c) 2 -1 3
(d) 0 0 0 - (a) 12 12
(b) 3 4
(c) 2 8
(d) 6 9 - (a) 0 2
(b) 4 11 6
(c) 0 8 7
(d) 3 4 5 4 - (a) 6 16
(b) 6 -7
(c) 6 23
(d) 6 15 - ++i
- (a) ((a * b) - (c * d)) + e
(b) ((a / b) % c) / d
(c) (((- a) - b) + c) - (+d)
(d) ((a * (-b)) / c) - d - (a) i=3, j=2
(b) i=0, j=2
(c) i=1, j=2
(d) i=1, j=3
编程题
-
int n; printf("Enter a two-digit number: "); scanf("%d", &n); printf("The reversal is: %d%d\n", n % 10, n / 10);
-
int n; printf("Enter a three-digit number: "); scanf("%d", &n); printf("The reversal is: %d%d%d\n", n % 10, (n / 10) % 10, n / 100);
-
int i, j, k; printf("Enter a three-digit number: "); scanf("%d%d%d", &i, &j, &k); printf("The reversal is: %d%d%d\n", i, j, k);
-
int n; printf("Enter a number between 0 and 32767: "); scanf("%d", &n); printf("The reversal is: %d%d%d%d%d\n", n/4096%8, n/512%8, n/64%8, n/8%8, n%8);
-
unsigned long long upc; int d, i1, i2, i3, i4, i5, j1, j2, j3, j4, j5, first_sum, second_sum, total; printf("Enter the first 11 digits of a UPC: "); scanf("%llu", &upc); d = upc / 10000000000; i1 = upc / 1000000000 % 10; i2 = upc / 100000000 % 10; i3 = upc / 10000000 % 10; i4 = upc / 1000000 % 10; i5 = upc / 100000 % 10; j1 = upc / 10000 % 10; j2 = upc / 1000 % 10; j3 = upc / 100 % 10; j4 = upc / 10 % 10; j5 = upc % 10; first_sum = d + i2 + i4 + j1 + j3 + j5; second_sum = i1 + i3 + i5 + j2 + j4; total = 3 * first_sum + second_sum; printf("Check digit: %d\n", 9 - ((total - 1) % 10));
-
// 注意数据类型范围 unsigned long long int ean; int c1, c2, c3, d, i1, i2, i3, j1, j2, j3, j4, j5, first_sum, second_sum, total; printf("Enter the first 12 digits of a EAN: "); scanf("%llu", &ean); c1 = ean / 100000000000; c2 = ean / 10000000000 % 10; c3 = ean / 1000000000 % 10; d = ean / 100000000 % 10; i1 = ean / 10000000 % 10; i2 = ean / 1000000 % 10; i3 = ean / 100000 % 10; j1 = ean / 10000 % 10; j2 = ean / 1000 % 10; j3 = ean / 100 % 10; j4 = ean / 10 % 10; j5 = ean % 10; first_sum = c2 + d + i2 + j1 + j3 + j5; second_sum = c1 + c3 + i1 + i3 + j2 + j4; total = 3 * first_sum + second_sum; printf("Check digit: %d\n", 9 - ((total - 1) % 10));