C语言程序设计现代方法_第二版,CH11第十一章练习题(Exercises)

CH11_1

// (a)and(g)are right;
// 注意对于(h),由于i并非指针变量,因此不可对其做间接寻址操作;

CH11_2

// 结论:只有(e)(f)(i)是合法的;
// 注意两点:
// 1.赋值运算符两边的变量类型是否相同?
// 比如:(d),p为指向int的指针,而&p为指向 指向int的指针 的指针;
// 2.区分左值和右值?
// 比如:&p为右值,仅仅代表一个地址值,一个指针,为右值,不可放在赋值号左边;

CH11_3

void avg_sum(double a[], int n, double *avg, double *sum)
{
    int i;

    *sum = 0.0;
    for (i = 0; i < n; i++)
        *sum += a[i];
    *avg = *sum / n;
}

CH11_4

void swap(int* p, int* q)
{
    int t;
    t = *p;
    *p = *q;
    *q = t;
}

CH11_5

void split_time(long total_sec, int* hr, int* min, int* sec)
{
    *hr = total_sec / 3600;
    *min = total_sec % 3600 / 60;
    *sec = total_sec % 3600 % 60;
}

CH11_6

void find_two_largest(int a[], int n, int* largest, int* second_largest)
{
    if (a[0] > a[1]) {
        *largest = a[0];
        *second_largest = a[1];
    }
    else {
        *largest = a[1];
        *second_largest = a[0];
    }

    for (int i = 2; i < n; i++)
        if (a[i] > * largest) {
            *second_largest = *largest;
            *largest = a[i];
        }
        else if (a[i] > * second_largest)
            *second_largest = a[i];
}

CH11_7

void split_date(int day_of_year, int year, int* month, int* day)
{
	int i;
	int m[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };

	if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
		m[1]++;
	}

	for (i = 0; i < month - 1; i++) {
		day_of_year -= m[i];
		if (day_of_year <= 0) {
			break;
		}
	}

	*month = i + 1;
	*day = day_of_year + m[i];
}

CH11_8

int* find_largest(int a[], int n)
{
    int *max = &a[0];

    for (int i = 1; i < n; i++) {
        if (*max < a[i]) {
            *max = a[i];
        }
    }

    return max;
}
  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值