【GO】结构体定义练习题

定义学生结构体

题目描述

定义结构体 Student,包含:

  • 姓名 Name string
  • 年龄 Age int
  • 成绩 Score float64

创建一名学生并打印信息。

输出示例

学生信息: {张三 19 92.5}

姓名:张三 年龄:19 成绩:92.5

实现代码

Go 复制代码
package main

import "fmt"

type Student struct {
	Name  string
	Age   int
	Score float64
}

func main() {
	stu := Student{
		Name:  "张三",
		Age:   19,
		Score: 92.5,
	}

	fmt.Println("学生信息:", stu)
	fmt.Printf("姓名:%s 年龄:%d 成绩:%.1f\n", stu.Name, stu.Age, stu.Score)
}

定义书籍结构体

题目描述

定义 Book 结构体:

  • 书名 Title
  • 作者 Author
  • 价格 Price
  • 页数 Pages

创建一本书并输出。

输出示例

图书信息: {Go语言程序设计 王老师 59.8 320}

实现代码

Go 复制代码
package main

import "fmt"

type Book struct {
	Title  string
	Author string
	Price  float64
	Pages  int
}

func main() {
	b := Book{
		Title:  "Go语言程序设计",
		Author: "王老师",
		Price:  59.8,
		Pages:  320,
	}

	fmt.Println("图书信息:", b)
}

定义用户账号结构体

题目描述

定义一个结构体 User,包含以下属性:

  • 用户名 Username
  • 年龄 Age
  • 是否会员 IsVip
  • 账号是否可用 IsActive

创建用户并输出状态。

输出示例

用户信息: {张三 21 true true}

用户名: 张三

年龄: 21

是否会员: true

账号是否可用: true

实现代码

Go 复制代码
package main

import "fmt"

type User struct {
	Username string
	Age      int
	IsVip    bool
	IsActive bool
}

func main() {
	user := User{
		Username: "张三",
		Age:      21,
		IsVip:    true,
		IsActive: true,
	}

	fmt.Println("用户信息:", user)
	fmt.Println("用户名:", user.Username)
	fmt.Println("年龄:", user.Age)
	fmt.Println("是否会员:", user.IsVip)
	fmt.Println("账号是否可用:", user.IsActive)
}

定义汽车结构体

题目描述

定义 Car 结构体,包含以下属性:

  • 品牌 Brand
  • 颜色 Color

使用结构体指针创建对象,并修改颜色,最后打印修改前后的信息。

输出示例

修改前: &{比亚迪 白色}

修改后: &{比亚迪 黑色}

实现代码

Go 复制代码
package main

import "fmt"

type Car struct {
	Brand string
	Color string
}

func main() {
	// 结构体指针创建对象
	car := &Car{
		Brand: "比亚迪",
		Color: "白色",
	}

	fmt.Println("修改前:", car)

	// 通过指针修改颜色
	car.Color = "黑色"

	fmt.Println("修改后:", car)
}

定义电话结构体

题目描述

定义 Phone 结构体,包含以下属性:

  • 品牌 Brand
  • 型号 Model
  • 价格 Price

使用结构体指针创建对象,修改价格后,打印修改前后的信息。

输出示例

修改前: &{Apple iPhone 15 5999}

修改后: &{Apple iPhone 15 5799}

实现代码

Go 复制代码
package main

import "fmt"

type Phone struct {
	Brand string
	Model string
	Price int
}

func main() {
	// 指针方式创建对象
	p := &Phone{
		Brand: "Apple",
		Model: "iPhone 15",
		Price: 5999,
	}

	fmt.Println("修改前:", p)

	// 通过指针修改字段
	p.Price = 5799

	fmt.Println("修改后:", p)
}
相关推荐
一条闲鱼_mytube3 小时前
【深入理解】HTTP/3 与 QUIC 协议:从原理到 Go 语言实战
网络协议·http·golang
麦德泽特3 小时前
基于 Go 语言的 Modbus 项目实战:构建高性能、可扩展的工业通信服务器
服务器·开发语言·golang·modbus·rtu
cch89183 小时前
ThinkPHP6.x全面升级:性能与功能双飞跃
开发语言·vue.js·后端·golang
yangyanping201083 小时前
Go语言学习之Go Gin 生产级 flag 启动命令模板
开发语言·学习·golang
漫漫求4 小时前
go的 kratos的http自定义(响应)信息
golang
cch89184 小时前
ThinkPHP3.x核心特性全解析
开发语言·后端·golang
Vfw3VsDKo14 小时前
Maui 实践:Go 接口以类型之名,给 runtime 传递方法参数
开发语言·后端·golang
不会写DN20 小时前
构建一个抗揍的 Go TCP 聊天服务:异常兜底与防御性编程实践
tcp/ip·golang·php
不会写DN1 天前
Go中如何跨语言实现传输? - GRPC
开发语言·qt·golang