《明解C语言》笔记及课后习题答案 【第十二章】

这篇博客详细记录了《明解C语言》第十二章的学习笔记,涵盖练习12-1至12-5的解答。文章介绍了结构体的概念,包括结构体名字、成员、.运算符和->运算符的使用,以及结构体成员的初始化方法。此外,还讨论了typedef在结构体类型名中的应用和返回结构体的函数处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

练习12-1

/*---编写显示对象takao各成员地址的程序。---*/ 

#include <stdio.h>

#define NAME_LEN  64

struct student {
	char name[NAME_LEN];
	int height;
	float weight;
	long schols;
}; 

int main (void) 
{
	struct student takao = {"Takao", 173, 86.2};
	
	printf("姓名 = %p\n",	&takao.name);
	printf("姓名 = %d\n",	&takao.name);
	printf("身高 = %d\n",	&takao.height);
	printf("体重 = %d\n",	&takao.weight);
	printf("奖学金 = %d\n", &takao.schols);
	
	return 0;
}


练习12-2

/*---改写程序,声明时不为其赋初始值,而且各成员的值从键盘输入。---*/

#include <stdio.h>

#define NAME_LEN 64 

typedef struct student {
	char name[NAME_LEN];
	int height;
	float weight;
	long schols; 
} Student;

void hiroko (Student *std)
{
	if (std->height < 180) std->height = 180;
	if (std->weight > 80) std->weight = 80;
}

int main(void)
{
	Student sanaka;
	
	scanf("%s %d %f %ld", &sanaka.name, &sanaka.height, &sanaka.weight, &sanaka.schols);
	
	printf("姓名 = %s\n身高 = %d\n体重 = %.1f\n奖学金 = %ld\n", sanaka.name, sanaka.height, sanaka.weight, sanaka.schols);
	
	return 0;
}


练习12-3

/*---从键盘输入int型,long型和double型的值,将这些值作为xyz结构体的成员,返回该结构体的值。---*/

#include <stdio.h>

struct xyz {
	int a;
	double b;
	long c;
};

struct xyz scan_xyz(int a, double b, long c) {
	struct xyz
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值