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

第7章习题

[复制链接]

620

主题

336

回帖

1057

积分

管理员

积分
1057
发表于 2026-3-7 19:27:30 | 显示全部楼层 |阅读模式
第7章章习题

1.以下类型中,属于对象类型的是 ACDE ;属于函数类型的是 B
A.char                                B.main函数                C._Bool
D.signed int        E.指针

2.若* E是合法的表达式,则该表达式的结果不可能是 A
A.值                                B.左值                                C.代表一个对象
D.代表E(的值)所指向的那个对象

3.在表达式& E中,E必须是 B ,如果E的类型是int,则& E的结果类型是 C
A.值                                B.左值或者函数指示符
C.指向int的指针        D.int

3.fsum函数的返回类型为void,它有两个形参n和s。形参n的类型是指向unsigned char的指针,形参s的类型是指向int的指针。fsum函数的作用是从形参n所指向的对象的值开始,一直累加到1000,并将累加结果存入形参s所指向的对象。
(1)请给出fsum函数的定义,也就是编写这个函数。
仅供参考:
# include <stdio.h>


void fsum (unsigned char * n, int * s)
{
    for (int x = * n; x <= 1000; x ++)
        * s += x;        //或者 * s = * s + x;
}

(2)写一个完整的程序来测试fsum函数。
仅供参考:
# include <stdio.h>


void fsum (unsigned char * n, int * s)
{
    for (int x = * n; x <= 1000; x ++)
        * s += x;
}


int main (void)
{
    unsigned char c = 1;
    int sum = 0;
    fsum (& c, & sum);
    printf ("%d\n", sum);
}


5.fpmax函数的返回类型是void,它有三个形参p、a和b且它们的类型都是指向int的指针。该函数的作用是:比较形参a和b所指向的对象,看哪个对象的值较大,然后用形参p所指向的对象去指向那个值较大的对象。
(1)请给出fpmax函数的定义,也就是编写这个函数。要求编写两个版本,一个不使用条件表达式,一个使用条件表达式;
参考答案:
void fpmax (int * a, int * b, int * * p)
{
    if (* a > * b) * p = a;
    else * p = b;
}


void fpmax (int * a, int * b, int * * p)
{
    * p = * a > * b ?  a : b;
}

(2)写一个完整的程序来测试fpmax函数。
参考答案:
# include <stdio.h>


void fpmax (int * a, int * b, int * * p)
{
    if (* a > * b) * p = a;
    else * p = b;
}


int main (void)
{
    int m = 10086, n = 65533, * pm = & m;
    fpmax (& m, & n, & pm);
    printf ("%d,%d,%d\n", m, n, * pm);
}


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

本版积分规则

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

GMT+8, 2026-3-30 16:11 , Processed in 0.241625 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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