【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)
}
相关推荐
会编程的土豆2 小时前
洛谷题单 入门1 顺序结构(go语言)
开发语言·后端·golang·洛谷
jieyucx2 小时前
Go 语言 switch 条件语句详解
开发语言·c++·golang
初心未改HD2 小时前
Go语言defer机制深度解析
开发语言·golang
不甘先生5 小时前
Go 包引用架构指南:从 internal 隔离到破解循环依赖的实战手册
架构·golang
初心未改HD6 小时前
Go语言接口与nil深度解析
开发语言·golang
Achou.Wang6 小时前
go语言并发编程
java·开发语言·golang
jieyucx6 小时前
Go 语言函数入门:定义、参数、返回值
c++·算法·golang·入门·函数
XMYX-06 小时前
20 - Go 互斥锁:Mutex 与并发安全
开发语言·golang
geovindu7 小时前
go: Observer Pattern
开发语言·观察者模式·设计模式·golang
会编程的土豆7 小时前
从 C/C++ 视角快速上手 Go 语言:核心差异与避坑指南
c语言·开发语言·c++·后端·golang