找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 75|回复: 0

检测点8-13

[复制链接]

620

主题

336

回帖

1057

积分

管理员

积分
1057
发表于 2026-3-7 19:40:21 | 显示全部楼层 |阅读模式
检测点8-13

1.常量表达式sizeof 0、2 + 3和'0' + 1的类型分别是什么?为什么?
答:
sizeof 0的类型是size_t,因为sizeof运算符的结果就是size_t类型的。
2 + 3的类型是int,因为这是两个int类型的数字相加;
'0' + 1的类型也是int,因为这也是两个int类型的数字相加。

2.将源文件c0815.c中的数组b改成变长数组,数组的元素数量和每个元素的值都来自用户输入。该程序的其他功能不变。
参考答案:
# include <stdio.h>
# include <stddef.h>

int sum_ints (size_t len, int (* pa) [len])
{
    int sum = 0;

    for (size_t x = 0; x < sizeof * pa / sizeof (* pa) [0]; x ++)
        sum += (* pa) [x];

    return sum;
}

int main (void)
{
    int a [] = {5, 6, 7, 8, 9,};
    printf ("%d\n", sum_ints (sizeof a / sizeof a [0], & a));        //S1

    int len;
    printf ("Number of elements:");
    scanf ("%d", & len);

    int b [len];

    printf ("Input %d numbers:", len);
    for (int x = 0; x < len; x ++)
        scanf ("%d", & b [x]);

    printf ("%d\n", sum_ints (sizeof b / sizeof b [0], & b));        //S2
}


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2026-3-30 17:53 , Processed in 0.231509 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表