二级 · 选择:哪句指针写法会出错
读程序,回答问题: #include <stdio.h> int main(void) { int a[5] = {1, 2, 3, 4, 5}; int *p = a; char s[] = &quo
二级 · 程序设计:子串出现了几次
函数 fun 的功能:统计字符串 t 在 s 中出现的次数,重叠的也算。例如输入 asdasasdfgasd asd,输出: 3 main 已经写好,不要改动,只在 fun 的花括号里写代码。
作品:你的生日是回文日吗
20211202 正着读、倒着读都一样,叫「回文日」。输入 k 和 k 个 8 位日期,逐个判断,最后统计。例如输入: 2 20200202 20231013 输出: 20200202 回文日 20231013 普通日 共 1 个回文日 i
结构体:把几项信息打包成一张卡片
结构体变量 s:几个成员打包成一张卡片,用「.」取其中一格 name id score 小林 2024001 92 s.name s.id s.score 一门课有课程名、学分、成绩好几项。C 语言可以用结构体把它们打包成一个新类型: #i
typedef 写法:改一张学生卡
二级题里最常见的是把定义和 typedef 写在一起,结构体本身可以不起名字: typedef struct { char name[20]; int id; int score; } STU; /
母题:读入一张成绩卡算总分
成绩卡 STU 有姓名、三门课(高数 math、英语 eng、C 语言 c)和总分 total 五个成员。 输入一个同学的「姓名 高数 英语 C语言」,把总分算出来存进 s.total,输出姓名和总分。例如输入 小林 92 85 78,输出
变式 1:成绩卡上哪门最好
还是这张成绩卡。输入「姓名 高数 英语 C语言」,输出这位同学成绩最高的那门课(三门都不一样高)。例如输入 小林 92 85 78,输出: 小林 最好的是 高数 程序只比了高数和英语,漏掉了 C 语言。
变式 2:两张成绩卡比总分
同宿舍的两个同学比期中总分。输入两行,每行「姓名 高数 英语 C语言」,输出总分高的那位的名字和总分;一样高就输出 平手。例如输入: 小林 92 85 78 阿杰 80 90 88 输出: 阿杰 258 程序读了两张卡片,但比较那一段只写了
变式 3:两张成绩卡整张交换
输入两个同学的成绩卡,按总分从高到低输出两行「姓名 总分」(总分不会一样)。例如输入: 小林 92 85 78 阿杰 80 90 88 输出: 阿杰 258 小林 255 同一类型的结构体变量可以整体赋值:t = a; 会把 a 的每个成员
变式 4:卡片里套着生日卡片
成员也可以是另一个结构体:学生卡 PERSON 里有一个 DATE 类型的成员 birth(生日)。取生日的月份要连用两个点:s.birth.month。 今天是 2026 年 10 月 13 日。输入「姓名 出生年 月 日」,输出姓名和周