原本没觉得会有多少人会看附加题,毕竟大佬不需要,跨考要了也没用。
但是事实是很多私聊我要附加题,由于确实没去AC,就索性没有回各位。
现在有时间了,把附加题AC了一下,放在blog上,有人反映404,应该是审核还没通过
所以写了这个文档作为统一回复。
最后一点,求求各位女装大佬或女大佬别加我好友,问问题@我或者临时会话就行了。
上次那个谁谁谁就不点名了(说话好好说,别嗲嗲的),搞得我回去就是跪键盘。。。宝宝心里苦啊。。。
试卷:2016-HITCS
附加改错题(20分)
1.(10分)下面程序的功能是:从键盘读入某门课程的成绩,然后根据输入选项将其排序,输入1则按升序排序,输入2则降序排序;最后输出排序结果。下面程序中存在比较隐蔽的错误,请通过分析和调试程序,发现并改正程序中的错误。
#include <stdio.h>
#include <stdlib.h>
#define N 20
int ReadScore(int score[]);
void PrintScore(int score[], int n);
void SelectionSort(int score[], int n, int (*compare)(int a, int b));
void Swap(int *x, int *y);
int Ascending(int a, int b);
int Descending(int a, int b);
int main()
{
int score[N],n;
int order;
n = ReadScore(score);
printf("Total students are %d\n",n);
printf("Enter 1 to sort in ascending order\n");
printf("Enter 2 to sort in descending order\n");
scanf("%d",&order);
if(order == 1)
{
SelectionSort(score, n, Ascending);
printf("Data items in asending order\n");
}
else
{
SelectionSort(score, n, Descending);
printf("Data items in descending order\n");
}
PrintScore(score, n);
return 0;
}
/*读入成绩以负数结束,返回实际输入的成绩个数*/
int ReadScore(int score[])
{
int i=-1;
printf("Input score:\n");
do
{
i++;
scanf("%d",score[i]);
}while (score[i]>=0);
return i;
}
void PrintScore(int score[], int n)
{
int i;
for(i=0; i<n; i++)
printf("%4d",score[i]);
printf("\n");
}
void SelectionSort(int score[], int n, int *compare(int a, int b))
{
int i, j, k;
for(i=0; i<n-1;i++)
{
k = i;
for(j = i+1; j< n; j++)
{
if((*compare)(score[i],score[k]))
{
k = j;
}
}
if(k!= i)
{
Swap(score[i],score[k]);
}
}
}
int Ascending(int a, int b)
{
return a < b;
}
int Descending(int a, int b)
{
return a > b;
}
void Swap(int *x, int *y)
{
int * temp;
*temp = *x;
*x = *y;
*y = *temp;
}
注意:
(1)请将修改正确后的完整源程序拷贝粘贴到答题区内。
(2)对于没有错误的语句,请不要修改。
(3)当且仅当错误全部改正,且程序运行结果调试正确,才给加10分,部分正确不得分。
(4)改错时不能改变程序原有的意图,也不要改变代码的输入输出格式。
运行示例:
Input score:
98 97 88 78 99 57 -1
Total students are 6
Enter 1 to sort in ascending order
Enter 2 to sort in descending order
2
Data items in descending order
99 98 97 88 78 57
1
格式化代码 运行
修改的地方都使用红色标记了
#include <stdio.h>
#include <stdlib.h>
#define N 20
int ReadScore(int score[]);
void PrintScore(int score[], int n);
void SelectionSort(int score[], int n, int (*compare)(int a, int b));
void Swap(int *x, int *y);
int Ascending(int a, int b);
int Descending(int a, int b);
int main()
{
int score[N],n;
int order;
n = ReadScore(score);
printf("Total students are %d\n",n);
printf("Enter 1 to sort in ascending order\n");
printf("Enter 2 to sort in descending order\n");
scanf("%d",&order);
if(order == 1)
{
SelectionSort(score, n, Ascending);
printf("Data items in asending order\n");
}
else
{
SelectionSort(score, n, Descending);
printf("Data items in descending order\n");
}
PrintScore(score, n);
return 0;
}
/*读入成绩以负数结束,返回实际输入的成绩个数*/
int ReadScore(int score[])
{
int i=-1;
printf("Input score:\n");
do
{
i++;
scanf("%d",&score[i]);
}while (score[i]>=0);
return i;
}
void PrintScore(int score[], int n)
{
int i;
for(i=0; i<n; i++)
printf("%4d",score[i]);
printf("\n");
}
void SelectionSort(int score[], int n, int (*compare)(int a, int b))
{
int i, j, k;
for(i=0; i<n-1;i++)
{
k = i;
for(j = i+1; j< n; j++)
{
if((*compare)(score[j],score[k]))
{
k = j;
}
}
if(k!= i)
{
Swap(&score[i],&score[k]);
}
}
}
int Ascending(int a, int b)
{
return a < b;
}
int Descending(int a, int b)
{
return a > b;
}
void Swap(int *x, int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
2.(10分)创建动态链表并打印链表内容。要求通过键盘读入学生的学号和分数,当输入的学号为0时表示链表创建结束,并将读入的学生学号和成绩打印输出。下面程序中存在比较隐蔽的错误,请通过分析和调试程序,发现并改正程序中的错误。
#include <stdio.h>
struct node
{
long num;
float score;
struct node *next;
}
int main()
{
struct node *head, *p, *q;
head = (struct node*)malloc(sizeof(struct node));
p = (struct node*)malloc(sizeof(struct node));
q = p;
head->next = p;
scanf("%ld%f", p->num, p->score );
while (p->num != 0)
{
q = (struct node*)malloc(sizeof(struct node));
p->next = q;
scanf("%ld%f", p->num, p->score);
}
p = head->next;
do
{
printf("%ld%.2f", p->num, p->score);
p = p->next;
}
while ( p->next == NULL );
free(p);
return 0;
}
注意:
(1)请将修改正确后的完整源程序拷贝粘贴到答题区内。
(2)对于没有错误的语句,请不要修改。
(3)当且仅当错误全部改正,且程序运行结果调试正确,才给加10分,部分正确不得分。
(4)改错时不能改变程序原有的意图,也不要改变代码的输入输出格式。
运行示例:
150301 65.5
150302 78
150303 87
150304 98.5
0 0
150301 65.50
150302 78.00
150303 87.00
150304 98.50
1
格式化代码 运行
修改的地方都使用红色标记了
#include <stdio.h>
#include<stdlib.h>
struct node
{
long num;
float score;
struct node *next;
};
int main()
{
struct node *head, *p, *q;
head = (struct node*)malloc(sizeof(struct node));
p = (struct node*)malloc(sizeof(struct node));
q = p;
head->next = p;
scanf("%ld%f", &(p->num), &(p->score) );
while (p->num != 0)
{
p = (struct node*)malloc(sizeof(struct node));
q->next = p;
scanf("%ld%f", &(p->num), &(p->score) );
q=p;
}
p->next=NULL;
p = head->next;
while(p->next)
{
printf("%ld %.2f\n", p->num, p->score);
p = p->next;
}
free(p);
return 0;
}
哈尔滨工业大学计算机专业课 复试 2016机试附加题
本站小编 免费考研网/2020-02-22
相关话题/哈尔滨工业大学 计算机
哈尔滨工业大学应用经济学原理849经验分享
19考研我的总分412分,本部国贸初试第一,已录取。我的各科成绩比较平均,没有特别突出的,也没有拉后腿的,70+,70+,130,130+。每一科我都认真复习,因为我觉得无论哪一科都是可以拉开差距的,一科差5分,四科就能差20分。事实证明我的想法是正确的,有的同学在复习时把大部分经历放在数学上,结果英语没到60单科没过线, ...专业课考研经验 本站小编 免费考研网 2020-02-20哈尔滨工业大学2014年808理论力学考试试题
专业课考研资料 本站小编 免费考研网 2020-02-19重庆大学零基础生物跨考计算机初试复试经验
之前在王道论坛上发表过这篇帖子,但是担心用考研帮的同学没有看过我的经验贴,故特意将此贴重新发表在考研帮,希望能为考研的同学做出一点微薄的贡献,也是一个已经经过考研的学子对学弟学妹的鼓舞,望大家不断坚持,不断奋斗,做更好的自己! 2018零基础生物跨考计算机初试、复试经验: 考研到现在为止 ...考研复试经验 本站小编 免费考研网 2020-02-18北京邮电大学21计算机考研经验分享!
作者: 北邮学长66 时间: 2020-2-12 13:55 北邮有四个学院属于计算机类,分为两大类,一类是考专业课803,另一类是考专业课807。803包括四门课,807包括两门课(803/807是我们专业课的代码)。 考803的有计算机学院、网络技术研究院、网络空间安全学院,这三个学院的学硕和专硕初试考的一模一样,复试都是笔试、机试和面试 ...专业课考研经验 本站小编 免费考研网 2020-02-12东北大学计算机2017-2019考研真题
东北大学2017年真题 C语言程序设计部分(75分) 一、简答题,每题5分。 1.将一个指针指向一个数组,举例写出如何表示数组中的元素(至少3种) 2.试说明什么是指针,哪些是指针,哪些不是,怎么样使用指针,请举例说明。 3.为什么要声明函数?哪些函数不需要声明,哪些函数需要说明,请举例说明。 二、给出程序运行结 ...专业课考研资料 本站小编 免费考研网 2020-02-08电子科技大学计算机考研复试经验贴
成都电子科大计算机人工智能方向研究生在读,真人现身说法,看看复试时怎么让老师被你牵着走!先例子后总结,如果有用欢迎点评论区留言哦! 复试时候,由于我是跨考,所以面试前贼紧张我们当时的面试是先问一个专业课问题,然后你自我介绍之后老师进行自由提问,时间是15min就左右。 因为我报考得是成 ...考研复试经验 本站小编 免费考研网 2020-02-062018云南大学计算机程序设计904回忆考研试题
专业课考研资料 本站小编 免费考研网 2020-01-31电子科技大学计算机820考研经验贴
本人2019年考研,初试分数386,初试加复试总分815、总排名第二。目前电科计算机科学与技术专业机器智能与模式识别方向研一在读。 本科是电科机电学院(上课时学过C语言),可以说基本是零基础跨考。从18年3月份决定跨考到最后成功上岸,一路以来走过不少弯路,也逐步在曲折中摸索出一些经验。 一 整体时间规划 对于 ...专业课考研经验 本站小编 免费考研网 2020-01-292020哈尔滨工业大学计算机考研试题854计算机基础
2020 哈尔滨工业大学 854 真题回忆版 第 I 部分 计算机系统与基础 一、选择题(10 道题,每道 1 分) 1.objdump 反编译的程序中,有个常数1024(RIP),请问是什么。 A 局部变量 B 局部静态变变量 C 全局变量 D 都不是 2 linux 内核的编码方式采用编码 A unicode B ASCII C utf-8 D utf-32 3 ...专业课考研资料 本站小编 免费考研网 2020-01-15苏州大学计算机考研初试经验分享
作者: jvjv 时间: 2020-1-11 10:12 标题: 苏大计算机考研初试经验分享,干货 大三上学期末决定考研,然后就开始选学校了,根据我的经验选学校一定要早点看,因为到后期没有时间了,都在忙着考研复习。机缘巧合下,我的一个亲戚推荐我看一下苏州大学,哈哈,苏大的地理位置很好,还是211,计算机专业也很强,所以我就开 ...专业课考研经验 本站小编 考研帮 2020-01-142020哈尔滨工业大学通信803复试经验分享
【复试笔试167分学姐分享哈工大通信803复试经验从初试经验,考试时感受,现在写到复试经验了,这一路走来胜利就在眼前了,筒子们冲啊!】 复试概述 复试分笔试200和面试150。面试一共分四轮,第一轮自我介绍,第二轮英语面,第三轮专业知识面,第四轮数学建模题,分数比例大概是30:40:40:40。面试分 ...专业课考研经验 本站小编 以梦为马xue 2020-01-132020大连海事大学计算机真题回忆
判断题多了一道prim,剩下的题型基本没变,变化的有递归调用函数那块,个人觉得今年程序写的递归输出栈的结果,没有要返回函数。可能我想的不对,自己注意理解吧。 复习方向avl成功失败,树的节点问题,哈希表,最后一道大题,把lb的所有节点逆插到la的第k个节点,程序要会用头插法尾插法。 ...专业课考研资料 本站小编 免费考研网 2020-01-122020福州大学计算机863数据结构与程序设计真题
作者: 皮卡丘砍木桩 时间: 2019-12-23 00:06 标题: 2020福大计算机863数据结构与程序设计真题整理 2020年的考研终于落幕了,我今年报考的是福大计算机专硕(今年都叫电子信息了,底下有三个方向,计算机技术、软件工程、人工智能)回想起来这一年还是蛮多感慨的,平时也经常来逛考研帮,感谢考研帮上的学长学姐,特别是 ...专业课考研资料 本站小编 考研帮 2020-01-102020哈尔滨工业大学821材料科学基础考研大题
固态相变特点 铁碳相图中渗碳体的存在形式 晶界特性 何为加工硬化,塑性变形对组织结构的影响 第二类回火脆性,产生原因和消除方法 三种残余应力以及消除办法 多相合金塑形变形的影响因素和强化机制 铸锭组织及其形成机制 两个20分大题 纯金属和固溶体形核和长大的异同点 马氏体和贝氏体的异同点 ...专业课考研资料 本站小编 免费考研网 2020-01-10北京航空航天大学961计算机基础综合考研经验
作者: 巨魔小李 时间: 2019-12-24 17:33 标题: 北航961考研经验 2020考研结束了,半年的煎熬也结束了 最终估分英语70+数学110+政治60+专业课大概120+ 估的比较保守 结合历年的情况 应该是有学上 先来介绍自己的情况 就读于一所大概是全国理科top的211 报考北京航空航天大学计算机学院 刚刚结束考研 趁着记忆深刻 ...专业课考研经验 本站小编 考研帮 2020-01-06