20201216-成信大-C语言程序设计-20201学期《C语言程序设计B》平时自主学习-结构体部分程序设计题

20201216-成信大-C语言程序设计-20201学期《C语言程序设计B》平时自主学习-结构体部分程序设计题-补充

P782

在这里插入图片描述

修改前的代码:

#include <stdio.h>

/* User Code Begin(考生可在本行后添加代码,例如全局变量的定义、函数原型声明等,行数不限) */



/* User Code End(考生添加代码结束) */

int main(void)
{
	int high;  /* high记录平均分最高的学生的序号,具体使用参考后面的代码 */

	/* User Code Begin(考生可在本行后添加代码,行数不限) */



	/* User Code End(考生添加代码结束) */

	printf("\nThe Highest is %s(%d)\nscore1=%.2f  score2=%.2f  score3=%.2f  score4=%.2f  aver=%.2f\n",
		myClass[high].name, myClass[high].num,
		myClass[high].score1, myClass[high].score2, myClass[high].score3, myClass[high].score4, myClass[high].aver);

	return 0;
}

/* User Code Begin(考生在此后根据设计需要完成程序的其它部分,行数不限) */

修改后提交的代码:

#include <stdio.h>

/* User Code Begin(考生可在本行后添加代码,例如全局变量的定义、函数原型声明等,行数不限) */
// 学号、姓名(最长19字节)、四门课的成绩 平均成绩
//      myClass[high].name, myClass[high].num,
// 		myClass[high].score1, myClass[high].score2, myClass[high].score3, myClass[high].score4, myClass[high].aver
typedef struct student
{
    int num;
    char name[20];
    float score1;
    float score2;
    float score3;
    float score4;
    float aver;
} SCORE;

void inputStudent(SCORE *pStu, int n);
int getHighAverStudent(SCORE *pStu, int n);

/* User Code End(考生添加代码结束) */

int main(void)
{
	int high;  /* high记录平均分最高的学生的序号,具体使用参考后面的代码 */

	/* User Code Begin(考生可在本行后添加代码,行数不限) */
    SCORE myClass[5];
    inputStudent(myClass, 5);
    high = getHighAverStudent(myClass, 5);
    /* User Code End(考生添加代码结束) */

	printf("\nThe Highest is %s(%d)\nscore1=%.2f  score2=%.2f  score3=%.2f  score4=%.2f  aver=%.2f\n",
		myClass[high].name, myClass[high].num,
		myClass[high].score1, myClass[high].score2, myClass[high].score3, myClass[high].score4, myClass[high].aver);

	return 0;
}

/* User Code Begin(考生在此后根据设计需要完成程序的其它部分,行数不限) */
void inputStudent(SCORE *pStu, int n)
{
    int i;
    printf("Please input students  info:Num Name score1 score2 score3 score4\n");
    for ( i = 0; i < n; i++)
    {
        printf("%d:", i + 1);
        scanf("%d %s %f %f %f %f", &pStu[i].num, pStu[i].name,
              &pStu[i].score1, &pStu[i].score2, &pStu[i].score3, &pStu[i].score4);
        pStu[i].aver = (pStu[i].score1 + pStu[i].score2 + pStu[i].score3 + pStu[i].score4) / 4.0f;
    }
}
int getHighAverStudent(SCORE *pStu, int n)
{
    int i, pos = 0;
    for ( i = 0; i < n; i++)
    {
        if (pStu[i].aver>pStu[pos].aver)
        {
            pos = i;
        }        
    }
    return pos;
}

P801

在这里插入图片描述

修改前的代码:

#include <stdio.h>

struct student
{
	int  num;
	char name[20];
	float score1, score2, score3;
	float aver;
};

void Input(struct student *pStu, int n);
int Highest(struct student *pStu, int n);

int main(void)
{
	int high;  /* high记录平均分最高的学生的序号,具体使用参考后面的代码 */
	struct student myClass[5];

	/* 本部分代码功能建议:调用相应的函数完成数据输入和统计 */
	/* User Code Begin(Limit: lines<=2, lineLen<=50, 考生可在本行后添加代码、最多2行、行长<=50字符) */


	/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */

	printf("\nThe Highest is %s(%d)\nscore1=%.2f  score2=%.2f  score3=%.2f  aver=%.2f\n",
		myClass[high].name, myClass[high].num,
		myClass[high].score1, myClass[high].score2, myClass[high].score3, myClass[high].aver);

	return 0;
}

/* 输入N个学生的信息并计算平均分 */
void Input(struct student *pStu, int n)
{
	int i;
	struct student tmpStu;

	printf("Please input students  info:Num Name score1 score2 score3\n");
	for (i=0; i<n; i++)
	{
		printf("%d:", i+1);
		scanf("%d%s%f%f%f", &tmpStu.num, tmpStu.name,
			&tmpStu.score1, &tmpStu.score2, &tmpStu.score3);
		pStu[i] = tmpStu;
		pStu[i].aver = (pStu[i].score1 + pStu[i].score2 + pStu[i].score3) / 3.0f;
	}
}

/* 找出并通过函数值返回最高平均分学生的序号 */
int Highest(struct student *pStu, int n)
{
	int i, pos = 0;

	/* User Code Begin(考生可在本行后添加代码,行数不限) */
	

	
	/* User Code End(考生添加代码结束) */

	return pos;
}

修改后提交的代码:

#include <stdio.h>

struct student
{
	int  num;
	char name[20];
	float score1, score2, score3;
	float aver;
};

void Input(struct student *pStu, int n);
int Highest(struct student *pStu, int n);

int main(void)
{
	int high;  /* high记录平均分最高的学生的序号,具体使用参考后面的代码 */
	struct student myClass[5];

	/* 本部分代码功能建议:调用相应的函数完成数据输入和统计 */
	/* User Code Begin(Limit: lines<=2, lineLen<=50, 考生可在本行后添加代码、最多2行、行长<=50字符) */
    Input(myClass, 5);
    high =  Highest(myClass, 5);
    /* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */

	printf("\nThe Highest is %s(%d)\nscore1=%.2f  score2=%.2f  score3=%.2f  aver=%.2f\n",
		myClass[high].name, myClass[high].num,
		myClass[high].score1, myClass[high].score2, myClass[high].score3, myClass[high].aver);

	return 0;
}

/* 输入N个学生的信息并计算平均分 */
void Input(struct student *pStu, int n)
{
	int i;
	struct student tmpStu;

	printf("Please input students  info:Num Name score1 score2 score3\n");
	for (i=0; i<n; i++)
	{
		printf("%d:", i+1);
		scanf("%d%s%f%f%f", &tmpStu.num, tmpStu.name,
			&tmpStu.score1, &tmpStu.score2, &tmpStu.score3);
		pStu[i] = tmpStu;
		pStu[i].aver = (pStu[i].score1 + pStu[i].score2 + pStu[i].score3) / 3.0f;
	}
}

/* 找出并通过函数值返回最高平均分学生的序号 */
int Highest(struct student *pStu, int n)
{
	int i, pos = 0;

	/* User Code Begin(考生可在本行后添加代码,行数不限) */
	for ( i = 0; i < n; i++)
    {
        if (pStu[i].aver > pStu[pos].aver)
        {
            pos = i;
        }        
    }	
	/* User Code End(考生添加代码结束) */

	return pos;
}

P807

在这里插入图片描述

修改前的代码:

#include <stdio.h>

/* User Code Begin(考生可在本行后添加代码,定义程序中使用的数据类型SCORE,行数不限) */



/* User Code End(考生添加代码结束) */

void Input(SCORE *pStu, int n);
int Highest(SCORE *pStu, int n);

int main(void)
{
	int high;  /* high记录平均分最高的学生的序号,具体使用参考后面的代码 */
	SCORE myClass[5];

	/* 本部分代码功能建议:调用相应的函数完成数据输入和统计 */
	/* User Code Begin(Limit: lines<=2, lineLen<=50, 考生可在本行后添加代码、最多2行、行长<=50字符) */

	
	/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */

	printf("\nThe Highest is %s(%d)\nscore1=%.2f  score2=%.2f  score3=%.2f  aver=%.2f\n",
		myClass[high].name, myClass[high].num,
		myClass[high].score1, myClass[high].score2, myClass[high].score3, myClass[high].aver);

	return 0;
}

/* 输入N个学生的信息并计算平均分 */
void Input(SCORE *pStu, int n)
{
	int i;
	SCORE tmpStu;

	printf("Please input students  info:Num Name score1 score2 score3\n");
	for (i=0; i<n; i++)
	{
		printf("%d:", i+1);
		scanf("%d%s%f%f%f", &tmpStu.num, tmpStu.name,
			&tmpStu.score1, &tmpStu.score2, &tmpStu.score3);
		pStu[i] = tmpStu;
		pStu[i].aver = (pStu[i].score1 + pStu[i].score2 + pStu[i].score3) / 3.0f;
	}
}

/* 找出并通过函数值返回最高平均分学生的序号 */
int Highest(SCORE *pStu, int n)
{
	int i, pos = 0;

	/* User Code Begin(考生可在本行后添加代码,行数不限) */

	
	
	/* User Code End(考生添加代码结束) */

	return pos;
}

修改后提交的代码:

#include <stdio.h>

/* User Code Begin(考生可在本行后添加代码,定义程序中使用的数据类型SCORE,行数不限) */
typedef struct student
{
    // myClass[high].name, myClass[high].num,
	// myClass[high].score1, myClass[high].score2, myClass[high].score3, myClass[high].aver
    int num;
    char name[20];
    float score1;
    float score2;
    float score3;
    float aver;
} SCORE;

/* User Code End(考生添加代码结束) */

void Input(SCORE *pStu, int n);
int Highest(SCORE *pStu, int n);

int main(void)
{
	int high;  /* high记录平均分最高的学生的序号,具体使用参考后面的代码 */
	SCORE myClass[5];

	/* 本部分代码功能建议:调用相应的函数完成数据输入和统计 */
	/* User Code Begin(Limit: lines<=2, lineLen<=50, 考生可在本行后添加代码、最多2行、行长<=50字符) */
    Input(myClass, 5);
	high = Highest(myClass, 5);
	/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */

	printf("\nThe Highest is %s(%d)\nscore1=%.2f  score2=%.2f  score3=%.2f  aver=%.2f\n",
		myClass[high].name, myClass[high].num,
		myClass[high].score1, myClass[high].score2, myClass[high].score3, myClass[high].aver);

	return 0;
}

/* 输入N个学生的信息并计算平均分 */
void Input(SCORE *pStu, int n)
{
	int i;
	SCORE tmpStu;

	printf("Please input students  info:Num Name score1 score2 score3\n");
	for (i=0; i<n; i++)
	{
		printf("%d:", i+1);
		scanf("%d%s%f%f%f", &tmpStu.num, tmpStu.name,
			&tmpStu.score1, &tmpStu.score2, &tmpStu.score3);
		pStu[i] = tmpStu;
		pStu[i].aver = (pStu[i].score1 + pStu[i].score2 + pStu[i].score3) / 3.0f;
	}
}

/* 找出并通过函数值返回最高平均分学生的序号 */
int Highest(SCORE *pStu, int n)
{
	int i, pos = 0;

	/* User Code Begin(考生可在本行后添加代码,行数不限) */
    for ( i = 0; i < n; i++)
    {
        if (pStu[i].aver>pStu[pos].aver)
        {
            pos = i;
        }        
    }	
	/* User Code End(考生添加代码结束) */

	return pos;
}

P832

在这里插入图片描述

修改前的代码:

#include <stdio.h>
#include <string.h>

/* User Code Begin(考生可在本行后添加代码,例如结构体类型的定义、函数原型声明等,行数不限) */








/* User Code End(考生添加代码结束) */

int main(void)
{
	STUD sTranscript[] = { {1001, "张三丰", 69.5, 61.5, 91.5},  {1002, "李云龙", 92.5, 67.5, 81.5}, 
		{1003, "郭 靖",  79.5, 67.5, 86.5 },  {1004, "苗翠花", 83.0, 75.5, 84.0}, 
		{1005, "张无忌", 65.5, 81.5, 71.0} };
	STUD *stu;
	char name[16];
	
	printf("请输入你要查找的学生姓名: ");
	gets(name);

	stu = FindByName(sTranscript, 5, name);  //调用函数查找信息
	if (stu)
	{
		printf("\n查找的学生信息为: ");
		printf("%d %s %.1f %.1f %.1f\n", stu->iNum, stu->cName, stu->fCh, stu->fMath, stu->fEng);
	}
	else
	{
		printf("\n你要查找的学生不存在!\n");
	}

	return 0;
}

/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */

修改后提交的代码:

#include <stdio.h>
#include <string.h>

/* User Code Begin(考生可在本行后添加代码,例如结构体类型的定义、函数原型声明等,行数不限) */
typedef struct student      // 定义学生结构体,并给出需要的别名
{
    //%d %s %.1f %.1f %.1f
    //stu->iNum, stu->cName, stu->fCh, stu->fMath, stu->fEng
    int iNum;
    char cName[16];
    float fCh;
    float fMath;
    float fEng;
} STUD;

// 声明功能函数
STUD* FindByName(STUD sTranscript[], int n, char name[]);


/* User Code End(考生添加代码结束) */

int main(void)
{
	STUD sTranscript[] = { {1001, "张三丰", 69.5, 61.5, 91.5},  {1002, "李云龙", 92.5, 67.5, 81.5}, 
		{1003, "郭 靖",  79.5, 67.5, 86.5 },  {1004, "苗翠花", 83.0, 75.5, 84.0}, 
		{1005, "张无忌", 65.5, 81.5, 71.0} };
	STUD *stu;
	char name[16];
	
	printf("请输入你要查找的学生姓名: ");
	gets(name);

	stu = FindByName(sTranscript, 5, name);  //调用函数查找信息
	if (stu)
	{
		printf("\n查找的学生信息为: ");
		printf("%d %s %.1f %.1f %.1f\n", stu->iNum, stu->cName, stu->fCh, stu->fMath, stu->fEng);
	}
	else
	{
		printf("\n你要查找的学生不存在!\n");
	}

	return 0;
}

/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
// 实现功能函数
STUD* FindByName(STUD sTranscript[], int n, char name[])
{
    STUD *stu = NULL;
    int i;
    for ( i = 0; i < n; i++)
    {
        if(strcmp(name,sTranscript[i].cName) == 0)  // 字符串比较,即按姓名查找
        {
            stu = &sTranscript[i];                  // 返回该数组元素的地址,即该学生的地址
            break;
        }
    }
    return stu;
}
### 回答1: 您好,我是AI语言助手,以下是对您的回复: 20201022-成信大-c语言程序设计-20201学期c语言程序设计b》是一门面向大学生的C语言程序设计课程,主要教授C语言的基础知识和编程技巧,包括数据类型、运算符、流程控制语句、函数、指针、数组、结构体等内容。通过本课程的学习,学生可以掌握C语言的基本语法和编程思想,提高编程能力和解决问的能力,为以后的编程学习和工作打下坚实的基础。 ### 回答2: 20201学期的《c语言程序设计b》是一个深入学习C语言的课程,教授的是C语言的高级应用。在本次课程中,学生将会进一步学习C语言的语法、程序设计思路以及具体的编码实践。 首先,学生将会学习C语言中的函数、指针、结构体、联合体、枚举等高级概念。这些概念是C语言面向对象编程中至关重要的概念,也是学生在日后编写复杂程序时所必须了解的内容。此外,在学习这些概念的同时,学生还将学习如何使用宏定义和预编译指令来进一步优化程序性能。 其次,学生将会进行具体的编码实践,包括基于C语言的数据结构设计和实现、字符串处理、文件操作、网络编程等等。这些项目和实践将会提供给学生大量的机会来将所学的概念应用到具体的场景中,帮助学生更深入地理解C语言的应用。 此外,学生还将参加课堂讨论、代码评审等活动,通过这些活动来提高自己的编程能力、代码质量和团队协作能力。教师也将会给学生提供详细的反馈,帮助他们改善自己的问和提高自己的能力。 总之,《c语言程序设计b》是一门非常重要的课程,对于学生日后从事计算机编程工作具有非常重要的意义。通过学习这门课程,学生将会大幅提高自己的编程能力、透彻理解C语言并将其应用到实际工作中。 ### 回答3: 成信大-20201学期c语言程序设计b》是一门针对深入学习C语言的高级课程,内容涵盖了高级数据结构、算法设计、动态内存分配、文件操作等等。 在这门课程中,学生将通过实践和理论学习,掌握C语言的高级编程技巧和策略。课程的重点之一是高级数据结构,包括链表、树、哈希表、图等等,学生将深入理解数据结构的实现和应用。 除此之外,课程还将涉及算法设计和分析,学生将学习如何设计出高效的算法,并进行时间和空间复杂度分析。动态内存分配和文件操作也是这门课程的重点,这些技术对于C语言程序设计来说非常重要。 学生在课程中还将开展实践项目,以实现理论学习。通过项目实践,学生将在实际中应用学到的技术,发现其中存在的问并解决。 总之,成信大-20201学期c语言程序设计b》是一门非常高级的、面向深度学习的课程。通过系统学习和实践的方式,学生将深入掌握C语言的高级编程技巧。这门课程对于想要深入学习C语言的学生来说是非常重要的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值