内容正文:
9.1与9.2节:结构体的定义、结构体在程序中的使用
一、单项选择题
1.下列关于 C 语言结构体的核心作用,描述正确的是( )
A. 结构体可以存储多个不同数据类型的成员,封装一组相关数据
B. 结构体内部只能存放相同类型的数据
C. 结构体变量整体可以直接参与加减乘除算术运算
D. 结构体定义完成后自动生成全局变量
2.定义结构体类型的标准语法开头关键字是()
A. union B. struct C. typedef D. enum
3.设有以下程序代码段,则该结构体变量 s1 的定义方式属于()
struct Student{
int id;
char name[20];};
struct Student s1;
A. 定义类型同时定义变量 B. 先定义结构体类型,后定义变量
C. 无名结构体直接定义变量 D. 嵌套结构体变量定义
4.结构体成员访问的基础运算符是()
A. * B. -> C. . D. &
5.执行语句struct Date{int y,m,d;} d1={2026,6,22};,该变量 d1 的定义方式为()
A. 先定义类型后定义变量 B. 定义类型的同时定义变量
C. 无名结构体变量 D. 嵌套结构体变量
6.下列结构体初始化代码语法完全合法的是()
A. struct Stu{int a;char b;} s={10,"k"};
B. struct Stu{int a;char b;} s={10,'m'};
C. struct Stu{int a;char b;} s=10,'c';
D. struct Stu{int a;char b;} s; s={5,'z'};
7.设有以下所示程序代码段,则输出 p1 的出生年份,正确写法是()
struct Date{int year;int month;int day;};
struct Person{
char name[10];
struct Date birth; }p1;
A. printf ("%d",p1.birth.year); B. printf ("%d",p1->birth.year);
C. printf ("%d",p1.year); D. printf ("%d",birth.year);
8.执行struct Book{char name[20];float price;} b;,想要手动给价格赋值 75.9,正确语句是()
A. b.price = 75.9; B. Book.price = 75.9;
C. b->price = 75.9; D. b = {,75.9};
9.下列操作对结构体变量合法的是()
A. 两个同类型结构体变量直接互相整体赋值 s2 = s1;
B. printf("%s",s1); 直接整体打印结构体变量
C. scanf("%d",s1); 直接整体读取结构体变量
D. s1 = s1 + s2; 两个结构体变量相加运算
10.关于嵌套结构体的定义顺序,说法正确的是()
A. 内层结构体必须提前完整定义,才能作为外层结构体的成员
B. 外层结构体可以先定义,内部再写未定义的结构体类型
C. 嵌套结构体不允许包含 int、char 基础类型成员
D. 嵌套结构体变量不能访问内层结构体的成员
二、填空题。
1.定义结构体类型必须使用的关键字是___________。
2.普通结构体变量访问内部成员时,使用的运算符是___________。
3.结构体初始化列表中,未提供初始值的尾部成员,系统会自动赋值为___________。
4.若结构体 A 内部包含已经定义好的结构体 B 作为成员,这种结构称为结构体___________。
5.C 语言不允许对结构体变量进行整体的scanf输入与_______输出,只能逐个成员操作。
6.结构体内部每一个数据项统称为结构体的___________。
7.执行struct Date{int y,m,d;} d={2026,9};,变量 d 中 d 成员的默认数值是___________。
8.设有以下定义,打印 man1 的出生月份完整语句:printf ("% d",________);
struct Date{int y;int m;int d;};
struct Man{char name[8];struct Date bir;} man1;
9.完成结构体完整类型定义的一对大括号结束之后,末尾必须追加________,否则编译器判定语法错误。
10.设有定义:struct Time{int h;int m;};struct Lesson{char name[10]; struct Time t;} les = {"Math", {8,30}};表达式 les.t.h * 60 + les.t.m 用来换算总分钟,最终数值是___________。
三、阅读程序题。
1.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Stu{
int a;
int b;
} s = {13, 6};
int main()
{
int r = s.a - s.b * 2;
printf("%d", r);
return 0;
}
2.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Date{
int year;
int mon;
};
struct User{
char name[10];
struct Date d;
} u = {"Tom", {2026, 9}};
int main()
{
printf("%d", u.d.year - u.d.mon);
return 0;
}
3.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Box{
int w;
int h;
};
int main()
{
struct Box b1 = {7, 3};
struct Box b2 = b1;
printf("%d", b2.w * b2.h);
return 0;
}
4.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Score{
int chi;
int mat;
int eng;
} s = {85, 92};
int main()
{
int all = s.chi + s.mat + s.eng;
printf("%d", all);
return 0;
}
5.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Point{
int x;
int y;
};
struct Square{
struct Point pt;
int len;
} sq = {{4,6}, 5};
int main()
{
int ans = sq.pt.x + sq.len;
printf("%d", ans);
return 0;
}
6.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct NumPair{
int a;
int b;
};
int main()
{
struct NumPair x = {30, 8};
struct NumPair y;
y = x;
printf("%d", y.a / y.b);
return 0;
}
7.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Birth{
int y;
int m;
int d;
};
struct Man{
struct Birth bir;
} man = {{2010, 5, 12}};
int main()
{
printf("%d", man.bir.y - man.bir.d);
return 0;
}
8.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Weight{
int kg;
int g;
} w = {2, 400};
int main()
{
int gram = w.kg * 1000 + w.g;
printf("%d", gram);
return 0;
}
9.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Meter{
int km;
int m;
};
struct Trip{
int id;
struct Meter dis;
};
int main()
{ int total;
struct Trip t1 = {10, {5, 120}};
struct Trip t2;
t2 = t1;
t2.dis.km = t2.dis.km + 3;
total = t2.dis.km * 1000 + t2.dis.m;
printf("%d", total);
return 0;
}
10.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Line{
int start;
int end;
};
struct Map{
int code;
struct Line l;
} mp = {9, {15, 22}};
int main()
{ int len1,len2;
struct Map mp2 = mp;
mp2.l.end -= 4;
len1 = mp.l.end - mp.l.start;
len2 = mp2.l.end - mp2.l.start;
printf("%d", len1 - len2);
return 0;
}
11.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Grade{
int chinese;
int math;
};
struct Student{
char name[10];
struct Grade score;
};
int main()
{
struct Student s = {"Leo", {76, 94}};
int total = s.score.chinese + s.score.math;
int res;
if(total >= 170)
res = total - 10;
else
res = total + 10;
printf("%d", res);
return 0;
}
12.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Meter{
int km;
int m;
};
int main()
{
struct Meter dis = {4, 160};
int all = dis.km * 1000 + dis.m;
int cnt = 0;
while(all > 500)
{
all -= 500;
cnt++;
}
printf("%d", cnt);
return 0;
}
13.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Point{
int x;
int y;
};
struct Square{
struct Point p;
int side;
};
int main()
{ int sum;
struct Square s1 = {{9, 2}, 7};
struct Square s2 = s1;
s2.p.x = s2.p.x - 3;
if(s2.p.x > s2.p.y)
sum = s2.p.x * s2.side;
else
sum = s2.p.y * s2.side;
printf("%d", sum);
return 0;
}
14.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Time{
int h;
int m;
};
struct Lesson{
struct Time start;
struct Time end;
};
int main()
{
struct Lesson les = {{8, 10}, {10, 25}};
int s = les.start.h * 60 + les.start.m;
int e = les.end.h * 60 + les.end.m;
int diff = e - s;
int ans;
if(diff > 120)
ans = diff / 10;
else
ans = diff % 10;
printf("%d", ans);
return 0;
}
15.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Coin{
int yuan;
int jiao;
};
int main()
{
struct Coin c1 = {19, 7};
struct Coin c2 = c1;
int val1 = c1.yuan * 10 + c1.jiao;
int val2 = c2.yuan * 10 + c2.jiao;
int res;
c2.yuan -= 4;
if(val1 > val2 * 2)
res = val1 - val2;
else
res = val1 + val2;
printf("%d", res);
return 0;
}
四、编程题。
1. 校园成绩评级程序:定义嵌套结构体:Grade 存储语文、数学;Student 包含姓名与 Grade 成员。手动初始化一名学生成绩,计算总分,使用 if 判断:总分≥175 输出 A 等级,160~174 输出 B,低于 160 输出 C,最后打印总分与评级。
2.里程累计扣除计算器:定义结构体 Meter 存储千米、米;初始化一段路程,换算总米数,while 循环不断减去 600 米,统计能完整扣除的次数,最后输出扣除次数与剩余里程。
3.商品折扣计价器:结构体 Goods 存放商品数量、单价;初始化商品数据,计算原价总价,if 判断总价是否超过 400,超过则打 75 折,否则原价输出,最终保留 1 位小数打印应付金额。
4.两点坐标区间差值计算:定义 Dot 结构体存放 x、y 坐标;定义 Rect 结构体包含两个 Dot 成员作为对角点。初始化矩形对角坐标,计算矩形宽、高,判断宽高是否相等,输出 “正方形” 或 “长方形”,同时输出周长。
5.时间差分钟统计工具:结构体 Time 存储时、分;Lesson 结构体包含开始、结束 Time。初始化课程起止时间,换算总分钟差值,若时长大于 90 分钟输出 “长课时”,否则输出 “短课时” 并打印总分钟数。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
9.1与9.2节:结构体的定义、结构体在程序中的使用
一、单项选择题
1.下列关于 C 语言结构体的核心作用,描述正确的是( )
A. 结构体可以存储多个不同数据类型的成员,封装一组相关数据
B. 结构体内部只能存放相同类型的数据
C. 结构体变量整体可以直接参与加减乘除算术运算
D. 结构体定义完成后自动生成全局变量
【答案】A
【解析】结构体核心作用是封装一组逻辑关联、类型可不同的数据;B 错,成员类型可不同;C 错,结构体整体不能直接运算,只能单独操作成员;D 错,仅定义类型不会生成变量。
2.定义结构体类型的标准语法开头关键字是( )
A. union B. struct C. typedef D. enum
【答案】B
【解析】struct 是结构体定义关键字;union 为共用体、enum 枚举、typedef 类型重命名。
3.设有以下程序代码段,则该结构体变量 s1 的定义方式属于( )
struct Student{
int id;
char name[20];};
struct Student s1;
A. 定义类型同时定义变量 B. 先定义结构体类型,后定义变量
C. 无名结构体直接定义变量 D. 嵌套结构体变量定义
【答案】B
【解析】先单独书写 struct Student 完成类型定义,下一行再定义变量 s1,属于先定义结构体类型,后定义变量。
4.结构体成员访问的基础运算符是( )
A. * B. -> C. . D. &
【答案】C
【解析】.圆点运算符用于普通结构体变量访问成员。
5.执行语句struct Date{int y,m,d;} d1={2026,6,22};,该变量 d1 的定义方式为( )
A. 先定义类型后定义变量 B. 定义类型的同时定义变量
C. 无名结构体变量 D. 嵌套结构体变量
【答案】B
【解析】大括号闭合结构体类型定义后,紧跟变量名d1,属于定义类型同时定义变量。
6.下列结构体初始化代码语法完全合法的是( )
A. struct Stu{int a;char b;} s={10,"k"};
B. struct Stu{int a;char b;} s={10,'m'};
C. struct Stu{int a;char b;} s=10,'c';
D. struct Stu{int a;char b;} s; s={5,'z'};
【答案】B
【解析】A 错误,char 成员不能赋值字符串;C 缺少大括号初始化包裹;D 不能在定义完成后整体大括号赋值。
7.设有以下所示程序代码段,则输出 p1 的出生年份,正确写法是( )
struct Date{int year;int month;int day;};
struct Person{
char name[10];
struct Date birth; }p1;
A. printf ("%d",p1.birth.year); B. printf ("%d",p1->birth.year);
C. printf ("%d",p1.year); D. printf ("%d",birth.year);
【答案】A
【解析】多层嵌套连续使用.访问成员;B 为指针用法,但此处类型不匹配;C 未逐层访问;D 缺少外层结构体变量。
8.执行struct Book{char name[20];float price;} b;,想要手动给价格赋值 75.9,正确语句是( )
A. b.price = 75.9; B. Book.price = 75.9;
C. b->price = 75.9; D. b = {,75.9};
【答案】A
【解析】普通结构体变量使用变量.成员赋值;B 类型名不能访问成员;C 为指针用法,此处类型不匹配;D 不能中途局部整体赋值。
9.下列操作对结构体变量合法的是( )
A. 两个同类型结构体变量直接互相整体赋值 s2 = s1;
B. printf("%s",s1); 直接整体打印结构体变量
C. scanf("%d",s1); 直接整体读取结构体变量
D. s1 = s1 + s2; 两个结构体变量相加运算
【答案】A
【解析】C 语言允许同类型结构体变量整体拷贝赋值;B、C 不支持整体输入输出;D 结构体不能直接算术运算。
10.关于嵌套结构体的定义顺序,说法正确的是( )
A. 内层结构体必须提前完整定义,才能作为外层结构体的成员
B. 外层结构体可以先定义,内部再写未定义的结构体类型
C. 嵌套结构体不允许包含 int、char 基础类型成员
D. 嵌套结构体变量不能访问内层结构体的成员
【答案】A
【解析】使用某结构体作为成员前,必须提前完成该结构体类型定义;B 语法报错;C 嵌套结构体可搭配基础类型;D 可通过连续.访问内层成员。
二、填空题。
1.定义结构体类型必须使用的关键字是___________。
【答案】struct
【解析】struct 是 C 语言结构体专属定义关键字。
2.普通结构体变量访问内部成员时,使用的运算符是___________。
【答案】.(圆点)
【解析】变量.成员名是普通结构体变量唯一成员访问符号。
3.结构体初始化列表中,未提供初始值的尾部成员,系统会自动赋值为___________。
【答案】0
【解析】全局 / 局部结构体初始化缺省成员统一置 0。
4.若结构体 A 内部包含已经定义好的结构体 B 作为成员,这种结构称为结构体___________。
【答案】嵌套
【解析】这是结构体嵌套的定义。
5.C 语言不允许对结构体变量进行整体的scanf输入与_______输出,只能逐个成员操作。
【答案】printf
【解析】结构体必须单独读写每一个成员,无法整体 I/O。
6.结构体内部每一个数据项统称为结构体的___________。
【答案】成员(域)
【解析】结构体由多个不同类型成员组合而成。
7.执行struct Date{int y,m,d;} d={2026,9};,变量 d 中 d 成员的默认数值是___________。
【答案】0
【解析】初始化仅给前两个成员赋值,末尾成员自动置 0。
8.设有以下定义,打印 man1 的出生月份完整语句:printf ("% d",________);
struct Date{int y;int m;int d;};
struct Man{char name[8];struct Date bir;} man1;
【答案】man1.bir.m
【解析】这属于结构体的嵌套定义,在引用时需要使用.运算符进行引用。
9.完成结构体完整类型定义的一对大括号结束之后,末尾必须追加________,否则编译器判定语法错误。
【答案】分号;
【解析】C 语言结构体语法强制要求每个成员末尾加分号,缺少分号不符合语法规则,编译直接报错。
10.设有定义:struct Time{int h;int m;};struct Lesson{char name[10]; struct Time t;} les = {"Math", {8,30}};表达式 les.t.h * 60 + les.t.m 用来换算总分钟,最终数值是___________。
【答案】510
【解析】小时 h=8,分钟 m=30;8×60=480,480+30=510。
三、阅读程序题。
1.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Stu{
int a;
int b;
} s = {13, 6};
int main()
{
int r = s.a - s.b * 2;
printf("%d", r);
return 0;
}
【答案】1
2.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Date{
int year;
int mon;
};
struct User{
char name[10];
struct Date d;
} u = {"Tom", {2026, 9}};
int main()
{
printf("%d", u.d.year - u.d.mon);
return 0;
}
【答案】2017
3.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Box{
int w;
int h;
};
int main()
{
struct Box b1 = {7, 3};
struct Box b2 = b1;
printf("%d", b2.w * b2.h);
return 0;
}
【答案】21
4.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Score{
int chi;
int mat;
int eng;
} s = {85, 92};
int main()
{
int all = s.chi + s.mat + s.eng;
printf("%d", all);
return 0;
}
【答案】177
5.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Point{
int x;
int y;
};
struct Square{
struct Point pt;
int len;
} sq = {{4,6}, 5};
int main()
{
int ans = sq.pt.x + sq.len;
printf("%d", ans);
return 0;
}
【答案】9
6.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct NumPair{
int a;
int b;
};
int main()
{
struct NumPair x = {30, 8};
struct NumPair y;
y = x;
printf("%d", y.a / y.b);
return 0;
}
【答案】3
7.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Birth{
int y;
int m;
int d;
};
struct Man{
struct Birth bir;
} man = {{2010, 5, 12}};
int main()
{
printf("%d", man.bir.y - man.bir.d);
return 0;
}
【答案】1998
8.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Weight{
int kg;
int g;
} w = {2, 400};
int main()
{
int gram = w.kg * 1000 + w.g;
printf("%d", gram);
return 0;
}
【答案】2400
9.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Meter{
int km;
int m;
};
struct Trip{
int id;
struct Meter dis;
};
int main()
{ int total;
struct Trip t1 = {10, {5, 120}};
struct Trip t2;
t2 = t1;
t2.dis.km = t2.dis.km + 3;
total = t2.dis.km * 1000 + t2.dis.m;
printf("%d", total);
return 0;
}
【答案】8120
10.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Line{
int start;
int end;
};
struct Map{
int code;
struct Line l;
} mp = {9, {15, 22}};
int main()
{ int len1,len2;
struct Map mp2 = mp;
mp2.l.end -= 4;
len1 = mp.l.end - mp.l.start;
len2 = mp2.l.end - mp2.l.start;
printf("%d", len1 - len2);
return 0;
}
【答案】4
11.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Grade{
int chinese;
int math;
};
struct Student{
char name[10];
struct Grade score;
};
int main()
{
struct Student s = {"Leo", {76, 94}};
int total = s.score.chinese + s.score.math;
int res;
if(total >= 170)
res = total - 10;
else
res = total + 10;
printf("%d", res);
return 0;
}
【答案】160
12.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Meter{
int km;
int m;
};
int main()
{
struct Meter dis = {4, 160};
int all = dis.km * 1000 + dis.m;
int cnt = 0;
while(all > 500)
{
all -= 500;
cnt++;
}
printf("%d", cnt);
return 0;
}
【答案】8
13.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Point{
int x;
int y;
};
struct Square{
struct Point p;
int side;
};
int main()
{ int sum;
struct Square s1 = {{9, 2}, 7};
struct Square s2 = s1;
s2.p.x = s2.p.x - 3;
if(s2.p.x > s2.p.y)
sum = s2.p.x * s2.side;
else
sum = s2.p.y * s2.side;
printf("%d", sum);
return 0;
}
【答案】42
14.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Time{
int h;
int m;
};
struct Lesson{
struct Time start;
struct Time end;
};
int main()
{
struct Lesson les = {{8, 10}, {10, 25}};
int s = les.start.h * 60 + les.start.m;
int e = les.end.h * 60 + les.end.m;
int diff = e - s;
int ans;
if(diff > 120)
ans = diff / 10;
else
ans = diff % 10;
printf("%d", ans);
return 0;
}
【答案】13
15.写出下列程序段的输出结果:________________。
#include <stdio.h>
struct Coin{
int yuan;
int jiao;
};
int main()
{
struct Coin c1 = {19, 7};
struct Coin c2 = c1;
int val1 = c1.yuan * 10 + c1.jiao;
int val2 = c2.yuan * 10 + c2.jiao;
int res;
c2.yuan -= 4;
if(val1 > val2 * 2)
res = val1 - val2;
else
res = val1 + val2;
printf("%d", res);
return 0;
}
【答案】394
四、编程题。
1. 校园成绩评级程序:定义嵌套结构体:Grade 存储语文、数学;Student 包含姓名与 Grade 成员。手动初始化一名学生成绩,计算总分,使用 if 判断:总分≥175 输出 A 等级,160~174 输出 B,低于 160 输出 C,最后打印总分与评级。
【参考代码】
#include <stdio.h>
struct Grade
{
int chinese;
int math;
};
struct Student
{
char name[20];
struct Grade score;
};
int main()
{
struct Student stu = {"ZhangWei", {88, 92}};
int total = stu.score.chinese + stu.score.math;
char level;
if(total >= 175)
level = 'A';
else if(total >= 160)
level = 'B';
else
level = 'C';
printf("学生:%s
总分:%d
评级:%c", stu.name, total, level);
return 0;
}
2.里程累计扣除计算器:定义结构体 Meter 存储千米、米;初始化一段路程,换算总米数,while 循环不断减去 600 米,统计能完整扣除的次数,最后输出扣除次数与剩余里程。
【参考代码】
#include <stdio.h>
struct Meter
{
int km;
int m;
};
int main()
{
struct Meter dis = {6, 350};
int all = dis.km * 1000 + dis.m;
int count = 0;
while(all >= 600)
{
all -= 600;
count++;
}
printf("可完整扣除600米次数:%d
剩余米数:%d", count, all);
return 0;
}
3.商品折扣计价器:结构体 Goods 存放商品数量、单价;初始化商品数据,计算原价总价,if 判断总价是否超过 400,超过则打 75 折,否则原价输出,最终保留 1 位小数打印应付金额。
【参考代码】
#include <stdio.h>
struct Goods
{
int num;
float price;
};
int main()
{
struct Goods shop = {14, 32.5};
float total = shop.num * shop.price;
float pay;
if(total > 400)
pay = total * 0.75;
else
pay = total;
printf("商品总价:%.1f", pay);
return 0;
}
4.两点坐标区间差值计算:定义 Dot 结构体存放 x、y 坐标;定义 Rect 结构体包含两个 Dot 成员作为对角点。初始化矩形对角坐标,计算矩形宽、高,判断宽高是否相等,输出 “正方形” 或 “长方形”,同时输出周长。
【参考代码】
#include <stdio.h>
struct Dot
{
int x;
int y;
};
struct Rect
{
struct Dot p1;
struct Dot p2;
};
int main()
{
struct Rect rt = {{5, 4}, {13, 11}};
int w = rt.p2.x - rt.p1.x;
int h = rt.p2.y - rt.p1.y;
int cir = (w + h) * 2;
printf("周长:%d
图形类型:", cir);
if(w == h)
printf("正方形");
else
printf("长方形");
return 0;
}
5.时间差分钟统计工具:结构体 Time 存储时、分;Lesson 结构体包含开始、结束 Time。初始化课程起止时间,换算总分钟差值,若时长大于 90 分钟输出 “长课时”,否则输出 “短课时” 并打印总分钟数。
【参考代码】
#include <stdio.h>
struct Time
{
int h;
int m;
};
struct Lesson
{
struct Time start;
struct Time end;
};
int main()
{
struct Lesson les = {{9, 15}, {11, 40}};
int s = les.start.h * 60 + les.start.m;
int e = les.end.h * 60 + les.end.m;
int diff = e - s;
printf("课程总时长:%d分钟
课时类型:", diff);
if(diff > 90)
printf("长课时");
else
printf("短课时");
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$