哈尔滨工业大学计算机专业课 复试 2016HITCS机试试题及答案含部分解析(3)

本站小编 免费考研网/2020-02-22


#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;

}


相关话题/哈尔滨工业大学 计算机

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19
  • 哈尔滨工业大学计算机专业课 复试 2015HITCS
    /* * Theme:2015HIT复试机试试题、答案及部分解析 * Author:HITCS * Modify:Biechuyangwang(心理咨询木木) * Remark:如有疑问2018HIT群里提问或私聊,改错题不想写,有兴趣可以私聊 */ 试卷:2015-HITCS 单项选择(130分) 1. 设A,B为集合,使下列两式A\B=和(AB)\B=(A\B) ...
    本站小编 免费考研网 2020-02-22
  • 哈尔滨工业大学计算机专业课 复试 2016机试附加题
    原本没觉得会有多少人会看附加题,毕竟大佬不需要,跨考要了也没用。 但是事实是很多私聊我要附加题,由于确实没去AC,就索性没有回各位。 现在有时间了,把附加题AC了一下,放在blog上,有人反映404,应该是审核还没通过 所以写了这个文档作为统一回复。 最后一点,求求各位女装大佬或女大佬别加我好友,问问题 ...
    本站小编 免费考研网 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-06
  • 2018云南大学计算机程序设计904回忆考研试题
    本站小编 免费考研网 2020-01-31
  • 电子科技大学计算机820考研经验贴
    本人2019年考研,初试分数386,初试加复试总分815、总排名第二。目前电科计算机科学与技术专业机器智能与模式识别方向研一在读。 本科是电科机电学院(上课时学过C语言),可以说基本是零基础跨考。从18年3月份决定跨考到最后成功上岸,一路以来走过不少弯路,也逐步在曲折中摸索出一些经验。 一 整体时间规划 对于 ...
    本站小编 免费考研网 2020-01-29
  • 2020哈尔滨工业大学计算机考研试题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-14
  • 2020哈尔滨工业大学通信803复试经验分享
    【复试笔试167分学姐分享哈工大通信803复试经验从初试经验,考试时感受,现在写到复试经验了,这一路走来胜利就在眼前了,筒子们冲啊!】 复试概述 复试分笔试200和面试150。面试一共分四轮,第一轮自我介绍,第二轮英语面,第三轮专业知识面,第四轮数学建模题,分数比例大概是30:40:40:40。面试分 ...
    本站小编 以梦为马xue 2020-01-13
  • 2020大连海事大学计算机真题回忆
    判断题多了一道prim,剩下的题型基本没变,变化的有递归调用函数那块,个人觉得今年程序写的递归输出栈的结果,没有要返回函数。可能我想的不对,自己注意理解吧。 复习方向avl成功失败,树的节点问题,哈希表,最后一道大题,把lb的所有节点逆插到la的第k个节点,程序要会用头插法尾插法。 ...
    本站小编 免费考研网 2020-01-12
  • 2020福州大学计算机863数据结构与程序设计真题
    作者: 皮卡丘砍木桩 时间: 2019-12-23 00:06 标题: 2020福大计算机863数据结构与程序设计真题整理 2020年的考研终于落幕了,我今年报考的是福大计算机专硕(今年都叫电子信息了,底下有三个方向,计算机技术、软件工程、人工智能)回想起来这一年还是蛮多感慨的,平时也经常来逛考研帮,感谢考研帮上的学长学姐,特别是 ...
    本站小编 考研帮 2020-01-10