【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)
}
相关推荐
名字还没想好☜12 小时前
Go context.AfterFunc 实战(Go 1.21):context 一取消就自动跑清理,告别手写 goroutine 监听 Done
后端·golang·go
web守墓人12 小时前
【goed/ui】自定义组件设计思想篇
linux·windows·ui·golang
chenqianghqu2 天前
go语言SDK升级到1.27更新调试
golang
ttwuai2 天前
Go开源后台管理系统推荐:怎么先排除 Fork、镜像和同名项目?
golang
参.商.3 天前
【Day 53】76. 最小覆盖子串
leetcode·golang
传奇开心果编程3 天前
【Go入门练中学】第2课:条件与循环
后端·学习·golang
传奇开心果编程3 天前
【Go入门练中学】第1课:从零开始
后端·学习·golang
报错小能手3 天前
GO语言接口 泛型 错误处理
golang
蓝宝石的傻话4 天前
MiBee Eye 蜂眼:把闲置的 Linux 小板做成一台能进国标平台的摄像头
golang·rust
我不会起名字3224 天前
万字总结Golang入门项目
数据结构·经验分享·算法·golang·项目实战·复盘