题目内容:某班有10名同学,建立学生结构体类型,包括学号、姓名、3门课程的成绩,编写程序,读入已准备好的文本文件student1.txt,为结构体数组变量赋值,计算每名学生的平均成绩及名次。结果输出到屏幕的同时保存到student2.txt文件中。将源程序作为答案提交,程序运行后将生成的student2.txt文件作为附件上传。 (该作业不计入课程总成绩。student1.txt已提供,直接从附件下载)。

题目内容:某班有10名同学,建立学生结构体类型,包括学号、姓名、3门课程的成绩,编写程序,读入已准备好的文本文件student1.txt,为结构体数组变量赋值,计算每名学生的平均成绩及名次。结果输出到屏幕的同时保存到student2.txt文件中。将源程序作为答案提交,程序运行后将生成的student2.txt文件作为附件上传。 (该作业不计入课程总成绩。student1.txt已提供,直接从附件下载)。


参考答案和解析
人际纪律

相关考题:

定义一个结构体类型保存学生的信息,包括学号,姓名,性别,成绩,定义一构体类型的变量并进行赋值。

查询选修课程号为“101”课程得分最高的同学,正确的SQL语句是 ______。A.SELECT 学生.学号,姓名FROM 学生,选课WHERE 学生.学号=选课.学号 AND 课程号=“101” AND 成绩>=ALL (SELECT 成绩 FROM 选课)B.SELECT 学生.学号,姓名FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 成绩>=ALL(SELECT 成绩 FROM 选课 WHERE 课程号=“101”)C.SELECT 学生. 学号,姓名 FROM 学生,选课 WHERE 学生. 学号=选课.学号 AND 成绩>=ANY (SELECT 成绩 FROM 选课 WHERE 选课号=“101”)D.SELECT 学生.学号,姓名 FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 课程号=“101”AND 成绩>= ALL(SELECT 成绩 FROM 选课 WHERE课程号=“101”)

利用SQL派生一个包含“课程名称”、“姓名”和“成绩”的视图,要求按“课程名称”升序排序,正确的语句是( )。A.CREATE VIEW view1 AS; (SELECT课程.课程名称,学生.姓名,成绩.成绩; FROM课程INNER JOIN成绩; INNER JOIN学生: ON成绩.学号=学生.学号; ON课程.课程编号=成绩.课程编号; GROUP BY课程名称)B.CREATE VIEW view1 AS; (SELECT课程.课程名称,学生.姓名,成绩.成绩; FROM课程INNER JOIN成绩; INNER JOIN学生: ON成绩.学号=学生.学号; ON课程.课程编号=成绩.课程编号; ORDER BY课程名称)C.CREATE VIEW view1 AS; SELECT课程.课程名称,学生.姓名,成绩.成绩; FROM课程INNER JOIN成绩; INNER JOIN学生: ON成绩.学号=学生.学号; ON课程.课程编号=成绩.课程编号; GROUP BY课程名称D.CREATE VIEW view1 AS; SELECT课程.课程名称,学生.姓名,成绩.成绩; FROM课程INNER JOIN成绩; INNER JOIN学生; ON成绩.学号=学生.学号; ON课程.课程编号=成绩.课程编号; ORDER BY课程名称

编写程序“cx.prg”,用SQL语句查询“school”数据库中参加了课程编号为“0002”的学生的“学号”“姓名”“课程编号”和“成绩”。 (2)在"schoo1,,数据库中统计每门课程考试的平均成绩,并将结果(课程编号、课程名称、平均成绩)放在表“result”中。

检索每门课程的最高分,要求得到的信息包括课程名称、姓名和最高分,正确的SQL语句是( )。A.SELECT 课程.课程名称,学生.姓名,MAX(成绩) AS 最高分; FROM 成绩,课程,学生; WHERE 成绩.课程编号=课程.课程编号; AND 成绩.学号=学生.学号; GROUP BY 课程编号B.SELECT 课程.课程名称,学生.姓名,MAX(成绩) AS 最高分; FROM 成绩,课程,学生; WHERE 成绩.课程编号=课程.课程编号; AND 成绩.学号=学生.学号; GROUP BY 课程.课程编号C.SELECT 课程.课程名称,学生.姓名,MAX(成绩) AS 最高分; FROM 成绩,课程,学生; WHERE 成绩.课程编号=课程.课程编号; AND 成绩.学号=学生.学号; ORDER BY 课程.课程编号D.SELECT 课程.课程名称=学生.姓名,MAX(成绩) AS 最高分; FROM 成绩,课程,学生; WHERE 成绩.课程编号=课程.课程编号; AND 成绩.学号=学生.学号; ORDER BY 课程.课程编号

查询所有选修了“计算机网络”的学生成绩,结果显示该学生的“姓名”、“系名”和“数据库原理”的“成绩”,并按成绩由高到低的顺序排列,下列语句中正确的是 ( )。A.SELECT学生.姓名,学生.系名,成绩.成绩FROM学生,课程,成绩; FOR学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称="计算机网络"; ORDER BY成绩.成绩DESCB.SELECT 学生.姓名.学生.系名.成绩.成绩JOIN学生,课程,成绩; ON学生.学号=成绩.学号; ON课程.课程编号=成绩.课程编号; AND课程.课程名称="计算机网络"; ORDER BY成绩.成绩DESCC.SELECT学生.姓名,学生.系名,成绩.成绩 FROM 学生,课程,成绩; WHERE学生.学号=成绩.学号; OR课程.课程编号=成绩.课程编号; OR课程.课程名称="计算机网络"; ORDER BY 成绩.成绩 DESCD.SELECT 学生.姓名,学生.系名,成绩.成绩FROM学生,课程,成绩; WHERE 学生.学号=成绩.学号; AND 课程.课程编号=成绩.课程编号; AND 课程.课程名称="计算机网络"; ORDER BY成绩.成绩 DESC

在已打开数据库的情况下,利用SQL派生一个包含姓名、课程名称和成绩字段的xsview视图,正确的语句是( )。A.CREATE VIEW xsview AS; SELECT 学生.姓名,课程.课程名称,成绩,成绩; FROM 学生 INNER JOIN 成绩; INNER JOIN 课程; WHERE 成绩.课程编号=课程.课程编号; AND 学生.学号=成绩.学号B.CREATE VIEW xsview AS; (SELECT 学生.姓名,课程.课程名称,成绩.成绩; FROM 学生 INNER JOIN 成绩; INNER JOIN 课程; ON 成绩.课程编号=课程.课程编号; ON 学生.学号=成绩.学号)C.CREATE VIEW xsview AS; SELECT 学生.姓名,课程.课程名称,成绩.成绩; WHERE 学生 INNER JOIN 成绩; INNER JOIN 课程; ON 成绩.课程编号=课程.课程编号; ON 学生.学号=成绩.学号D.CREATE VIEW xsview AS; SELECT 学生.姓名,课程.课程名称,成绩.成绩; FROM 学生 INNER JOIN 成绩; INNER JOIN 课程; ON 成绩.课程编号=课程.课程编号; ON 学生.学号=成绩.学号

设学生表和成绩表的结构分别为(学号,姓名,所在系)和(学号,课程名,成绩),如果希望按分数降序查询出“英语系中选修了计算机课程的学生姓名和成绩”,则对应的SQL语句是()。A. SELECT姓名,成绩FROM学生表,成绩表WHERE所在系一‘英语系’AND课程名=‘计算机’AND学生表.学号=课程表,学号B. SELECT姓名,成绩FROM学生表,成绩表WHERE所在系=‘英语系’AND课程名=‘计算机’AND学生表.学号=课程表.学号ORDER BY成绩ASCC. SELECT姓名,成绩FROM学生表,成绩表WHERE所在系=‘英语系’AND课程名=计算机’AND学生表。学号=课程表。学号ORDER BY成绩D. SELECT姓名,成绩FROM学生表,成绩表WHERE所在系=‘英语系’AND课程名=‘计算机’AND学生表.学号一课程表.学号ORDER BY成绩DESC

用SQL语句查询课程成绩在60分以上的学生姓名,并将结果按姓名降序存入表文件res.dbf中。(2)编写my.prg程序,实现的功能:先为“学生成绩”表增加一个“学生平均成绩”字段,类型为 N(6,2),根据“学生选课”表统计每个学生的平均成绩,并写入“学生成绩”表新的字段中。

阅读以下应用程序说明和C程序,将C程序段中(1)~(7)空缺处的语句填写完整。【说明】以下【C程序】的功能是,逐一从指定课程成绩文件中读入学生的考号和成绩,对同一学生汇总他(她)的总成绩,并按如图6-14所示格式输出名次(按总成绩由高到底的顺序)、总成绩、同一名次的学生人数、同一名次学生的学号(按学号由小到大的顺序)。该应用程序约定学生学习课程不超过30种,课程成绩文件的第1个数字就是课程号。统计过程中,同一课程号的成绩文件不能重复输入。该应用程序采用链表结构存储学生的相关信息,链表中的每个表元对应一位学生。在数据输入过程中,形成一个按学号从小到大顺序链接的有序链表。当数据输入结束后,程序按总成绩从高到低,学号从小到大的顺序对链表排序。最后程序按指定格式输出链表中的信息。【C程序】include<stdio.h>define M 30define NLEN 10typedef struct node {int cur_s; /* 最近输入成绩的科目*/Char no[NLEN];int score;struct node *next;} NODE;int s[M], sp, ss, i, mark, order, C;FILE *fp; NODE *h, *U, *V, *p;Char fname[80], no[NLEN], ans;main(){ for(h = NULL, sp = 0; ;){ printf("输入科目成绩文件名(输入aaaa表示强行结束)。 \n");while(1){ scanf("%s", fname);if (strcmp(fname, "aaaa") == 0)break;if ((fp = fopen(fname, "r")) == NULL)printf("不能打开文件%s, 请重新输入科目文件名。 \n", fname);elsebreak;}if (strcmp(fname, "aaaa") == 0) break;fscanf(fp, "%d", ss); /* 输入科目号 */s[sp]=s;for (i=0; s[i] ! = ss; 1++);if ( (1) ){ printf("该科目的成绩已输入,请输入别的科目成绩文件。\n");continue;}sp++;while (fscanf(fp, "%s%d", no, mark) == 2){ /* 在链表中寻找最近输入的学号 */for(v = h; v != NULL strcmp(v-> no, no)<0; u=v, v= v-> next);if (v !=NULL strcmp(v->no, nb) == 0){ /* 该生已有成绩 */if (V->cur_s != ss){ /* 该生的当前科目成绩是第一次输入 */v->score += mark; /* 累计总成绩 */v->cur_s = ss;} /* 同一科目成绩重复输入,后输入成绩被忽略 */}else{ p = (NODE *)malloc(sizeof(NODE)); /* 一位新的学生 */strcpy(p->no,no);p->score = mark;p->cur_s = ss;p-> next = v;

在关系Student(学号,姓名,系名,课程号,成绩)中,查询至少选修了四门课程的学生学号、姓名及平均成绩的SElECT语句应该是:SELECT学号,姓名,AVC((254))AS平均成绩FROM StudentCROUP BY学号HAVING (255)A.成绩B.姓名C.系名D.课程号

下面程序段定义了学生成绩的记录类型,由学号、姓名和三门课程成绩组成。若对某个学生的各个数据项进行赋值,下列程序段中正确的是( )。A.B.C.D.

查询所有选修了“计算机基础”的学生的“计算机基础”成绩,要求得到的信息包括学生姓名和成绩,并按成绩由高到低的顺序排列,下列语句正确的是A.SELECT学生.姓名,成绩.成绩FROM学生,成绩; WHERE学生.学号=成绩.学号; AND课程.课程名称=‘计算机基础’; ORDER BY成绩.成绩DESCB.SELECT学生.姓名,成绩.成绩FROM课程,成绩; WHERE AND课程.课程编号=成绩.课程编号; AND课程.课程名称=‘计算机基础’; ORDER BY成绩.成绩DESCC.SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=‘计算机基础’; GROUP BY成绩.成绩DESCD.SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=‘计算机基础’; ORDER BY成绩.成绩DESC

使用如下三个数据库表: 学生(学号C(8),姓名C(8),性别C(2),班级C(8)) 课程(课程编号C(8),课程名称C(20)) 成绩(学号C(8),课程编号C(8),成绩N(5,1)) 查询所有选修了“高等数学”的学生的“相关”成绩,要求信息中包括学生姓名和成绩,并按成绩由低到高的顺序排列,下列语句正确的是( )。A. SELECT学生.姓名,成绩.成绩FROM学生,成绩; WHERE学生.学号=成绩.学号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASCB. SELECT学生.姓名,成绩.成绩FROM课程,成绩; WHERE AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASCC. SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; GROUP BY成绩.成绩ASCD. SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC

设学生表S、课程表C和学生选课表SC的结构如下:S(学号,姓名,年龄,系别)C(课程号,课程名)SC(学号,课程号,成绩)查询学生姓名及所选修课程的课程号和成绩,实现此功能的SELECT语句是______。A.SELECTS.姓名,SC课程号,SC成绩FROM S WHERE S.学号=SC.学号B.SELECTS.姓名,SC课程号,SC成绩FROM SC WHERE S.学号=SC.成绩C.SELECTS.姓名,SC课程号,SC成绩FROMS,SC WHERE S.学号=SC.学号D.SELECTS.姓名,SC课程号,SC成绩FROM S,SC

第下列各题中使用如下数据表。 “学生”表:学号C(8),姓名C(8),性别c(2),系名(6) “课程”表:课程编号C(4),课程名称c(12),开课系名C(10) “成绩”表:学号c(8),课程编号c(4),成绩N(6,2) 检索每门课程的最高分,要求得到的信息包括课程名称、姓名和最高分,正确的SQL语句是( )。A.SELECT课程.课程名称,学生.姓名,MAX(成绩). As最高分 FROM成绩,课程,学生 WHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.学号 GROUP BY课程编号B.SELECT课程.课程名称,学生.姓名,MAX(成绩) AS最高分 FROM成绩,课程,学生 wHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.学号 GROUP BY课程.课程编号C.SELECT课程.课程名称,学生.姓名.MAX(成绩) AS.最高分 FROM成绩,课程,学生 WHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.学号 ORDER BY课程.课程编号D.SELECT课程.课程名称,学生.姓名.MAX(成绩) AS最高分 FROM成绩,课程,学生 WHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.!学号 ORDER BY课程.课程编号

补充程序Ccon0110.C,该程序的功能是计算三个学生的总成绩和平均成绩,其中三个学生的成绩存储在一个结构体数组中。

当前目录下有“学生”表和“成绩”表两个文件,要求查找同时选修了“课程名称”为“计算机”和“英语”的学生姓名,下列SQL语句的空白处应填入的语句为( )。SELECT姓名FROM学生,成绩;WHERE学生.学号=成绩.学号;AND课程名称=”计算机”;AND姓名__;(SELECT姓名FROM学生,成绩;WHERE学生.学号=成绩.学号;AND课程名称=”英语”)

已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。注意:部分源程序存在文件PROGl.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的莅括号中填入你编写的若干语句。

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.C中。不得增行或删行,也不得更改程序的结构!

查询选修课程号为“101”的课程得分最高的同学,正确的SQL语句是( )。A.SELECT学生.学号,姓名FROM学生,选课 WHERE学生.学号=选课.学号 AND课程号=”101”AND成绩=A11(SELECT成绩FROM选课)B.SELECT学生.学号,姓名FROM学生,选课 WHERE学生.学号=选课.学号 AND成绩=A11(SELECT成绩FROM选课 WHERE课程号=”101”)C.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号 AND成绩:=:A11(SELECT成绩FROM选课 WHERE课程号=”101”)D.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号一选课.学号AND 课程号一”101”AND成绩=A11(SELECT成绩FROM选课WHERE课程号一”101”)

计算刘明同学选修的所有课程的平均成绩,正确的SQL语句是A.SELECTAVG(成绩)FROM选课WHERE姓名="刘明"B.SELECTAVG(成绩)FROM学生,选课WHERE姓名="刘明"C.SELECTAVG(成绩)FROM学生,选课WHERE学生.姓名="刘明"D.SELECTAVG(成绩)FROM学生,选课WHERE学生.学号=选课.学号AND姓名="刘明"

查询选修课程号为"101"课程得分最高的同学,正确的SQL语句是A.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号 AND课程号="101”AND成绩>=ALL(SELECT成绩FROM选课)B.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号;选课.学号 AND成绩>=ALL(SELECT成绩FROM选课WHERE课程号="101")C.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号二选课.学号 AND成绩>=ANY(SELECT成绩FROM选课WHERE课程号="101")D.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND课程号="101" AND成绩>=ALL(SELECT成绩FROM选课WHERE课程号 ="101")

设学生表和课程表的结构分别为(学号,姓名)和(学号,课程号,成绩),如果希望查询出“成绩大于90分的学生姓名”,则对应的SQL语句是()。ASELECT 姓名 FROM 学生表 WHERE 学生表.学号=课程表.学号 AND 课程表.成绩90BSELECT 姓名 FROM 课程表 WHERE学生表.学号=课程表.学号 AND 课程表.成绩90CSELECT 姓名 FROM 学生表,课程表 WHERE 学生表.学号=课程表.学号 OR 课程表.成绩90DSELECT 姓名 FROM 学生表,课程表 WHERE 学生表.学号=课程表.学号 AND 课程表.成绩90

设学生成绩表的结构为(学号、课程号、成绩),程序运行界面如图1所示。进入界面后,用户首先选择学号(Combo1)、课程号(Combo2),姓名(Text1)和课程名(Text2)从数据库中自动读入;然后,用户输入对应的成绩(Text3),点击“确认”按钮后,将结果插入到学生成绩表中。请补充完成下列程序代码。

单选题查询选修课程号为“101”课程得分最高的同学,正确的SQL语句是(  )。ASELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND课程号=101AND成绩=ALL(SELECT成绩FROM选课)BSELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND成绩=ALL(SELECT成绩FROM选课WHERE课程号=101)CSELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND成绩=ANY(SELECT成绩FROM选课WHERE课程号=101)DSELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND课程号=101AND成绩=(SELECT成绩FROM选课WHERE课程号=101)

单选题设学生表和课程表的结构分别为(学号,姓名)和(学号,课程号,成绩),如果希望查询出“成绩大于90分的学生姓名”,则对应的SQL语句是()。ASELECT 姓名 FROM 学生表 WHERE 学生表.学号=课程表.学号 AND 课程表.成绩90BSELECT 姓名 FROM 课程表 WHERE学生表.学号=课程表.学号 AND 课程表.成绩90CSELECT 姓名 FROM 学生表,课程表 WHERE 学生表.学号=课程表.学号 OR 课程表.成绩90DSELECT 姓名 FROM 学生表,课程表 WHERE 学生表.学号=课程表.学号 AND 课程表.成绩90

单选题要查询出学号为2008001001所有选取修课程的成绩,正确的是()。ASELECT学号,姓名,课程代码,总评成绩FROM学生,成绩ON学生.学号=成绩.学号WHERE学号=’2008001001’BSELECT学号,姓名,课程代码,总评成绩FROM学生INNER JOIN成绩WHERE学生.学号=成绩.学号AND学号=’2008001001’CSELECT学号,姓名,课程代码,总评成绩FROM学生LEFT OUTER JOIN成绩ON学生.学号=成绩.学号WHERE学号=’2008001001’DSELECT学号,姓名,课程代码,总评成绩FROM学生,成绩WHERE学生.学号=成绩.学号AND学号=’2008001001’