2015年
此答案系学长自己做出来的答案,并非官方答案,有问题欢迎留言交流!由于答案不完整,大家也可以将自己做的以及相关想法写在留言栏里面,方便大家交流查阅,谢谢!
一、填空题
(1) 1
(2) test1.txt
(3) int FindMax(int x[N][M])
(4) max = FindMax(x);
(5) return max;
(6) printf(“%c”, a[i])
(7) 字符型
(8) 变量 a, b 的值互换
(9) c = 10 + 2 * ( n - 1 )
(10) age(n)
(11) 题目有误,s1 为字符串常量,常量的值是不能被改变的
(12) 3
二、程序改错题
10题.
(1) char * p_str;
(2) if ((p_str=(char *)malloc(100)) == NULL)
(3) free(p_str);
11题.
(4) void input(struct person * x);
(5) input(&y);
(6) void input(struct person * x)
12题.
(7) double result = 0;
(8) result += 1.0 / fac;
13题.
(9) int i;
(10) printf("*****\n");
三、分析程序题
14题:
功能:判断数组 a 和数组 b 对应位置是否相当,若相等,则结束;若不等,则输出 a 对应位置的元素。
运行结果:12 4 17 24 27
15题:
功能:将字符串两两之间进行比较,升序排列。
四、算法设计及编程题
编程题答案请参考陈宏松同学的博客,在此我们由衷地对他表示感谢!
http://www.chenhongsong.top/index.php/2019/11/16/2015/
2016年
一、单项选择题
- A
- C
- A
- A
- A
- D
- B
- A
- D
- B
二、判断题
- ×
- √
- ×
- √
- ×
- ×
- √
- √
- √
- ×
三、程序分析题
21题:
功能:对两个变量进行基本的四则运算,其中若除数为 0 或运算符不为 + ,- ,*,/ 中的一种,则结果为 0。
运行结果:
(1) 12 + 120 = 132
(2) 60 / 3 = 20
22题:
功能:对输入的 n 个数进行冒泡排序,顺序为由小到大升序排列。
运行结果:
13 27 32 38 49 55 61 76 86 87
23题:
题目有误,错在下面这行代码
str[i++] = str[i++] - 'a' + 'A'
大家应该能看懂具体是怎么回事~
功能:将字符串中小写字母转换成大写字母。
运行结果:Output: INTRODUCTION OF C++ LANGUAGE
四、程序设计题
编程题答案请参考陈宏松同学的博客,在此我们由衷地对他表示感谢!
http://www.chenhongsong.top/index.php/2019/11/16/2016%e3%80%8a807%e3%80%8b%e7%bc%96%e7%a8%8b/
2017年
一、单项选择题
- C
- A
- D
- A
- D
- A
- C
- B
- A
- D
二、判断题
- ×
- ×
- ×
- √
- ×
- ×
- ×
- √
- ×
- √
三、程序分析题
21题:
功能:将输入的三个数进行降序排列。
运行结果:67 56 48
22题:
题目中的
k1
和k2
写错了,分别对应的是score1
和score2
功能:输出每个人的名字和对应的总分。
运行结果:
name: Zhangwei total=170.000000
name: Wangfeng total=150.000000
23题:
功能:输入15个数存入一个二维数组中,输出这15个数中的最大值和对应的下标。
运行结果:a[2][1]=92
四、程序设计题
编程题答案请参考陈宏松同学的博客,在此我们由衷地对他表示感谢!
http://www.chenhongsong.top/index.php/2019/11/16/2017/
26题:结构体
描述和流程图略,代码如下:
#include <stdio.h>
int main(void)
{
struct student
{
char name[10];
float chinese;
float math;
float english;
}stu[4] = { "zhao", 97.5, 69.0, 78.0,
"qian", 80.0, 93.0, 87.5,
"sun", 75.0, 89.5, 68.5,
"li", 72.5, 68.5, 54.0};
int max_average_index = 0;
int i;
float temp, max_average;
for (i=0; i<4; i++)
{
temp = (stu[i].chinese + stu[i].math + stu[i].english) / 3.0;
if (i==0)
{
max_average = temp;
}
else
{
if (temp > max_average)
{
max_average = temp;
max_average_index = i;
}
}
}
printf("平均分最高的学生信息如下:\n");
printf("姓名:%s\t语文:%.1f\t数学:%.1f\t外语:%.1f\n", stu[max_average_index].name,
stu[max_average_index].chinese, stu[max_average_index].math, stu[max_average_index].english);
return 0;
}
2018年
一、单项选择题
- B
- C
- A
- D
- A
- D
- B
- C
- C
- B
二、判断题
√修改为×
,原因见评论- √
- √
- ×
- √
- ×
- ×
- ×
- ×
- ×
三、程序分析题
21题:
功能:对字符串的字母进行计数,并区分大小写。
运行结果:
K - 1
O - 1
T - 1
a - 2
e - 1
g - 1
h - 1
i - 2
m - 1
o - 1
p - 1
r - 2
s - 3
t - 2
上面的答案是错误的,正确答案如下(更新于2018年11月11日17:05:28)
功能:对字符串中的字母进行统计,不区分大小写,最终在输出计数结果时统一按照大写字母输出结果!
运行结果:
统计结果为:
A - 2
E - 1
G - 1
H - 1
I - 2
K - 1
M - 1
O - 2
P - 1
R - 2
S - 3
T - 3
22题:
功能:分别输出成绩最高与最低的学生的姓名与分数。
运行结果:
Max is: Wanghai, 93
Min is: Liuhong, 62
23题:
功能:将输入的正整数逆序输出。
运行结果:54321
四、程序设计题
编程题答案请参考陈宏松同学的博客,在此我们由衷地对他表示感谢!
http://www.chenhongsong.top/index.php/2019/11/16/2018/
25题:
#include<stdio.h>
#include<string.h>
#define N 100
struct person
{
char name[20];
char sex;
int age;
}per[N];
int main()
{
int i, count[6]={0};
printf("请输入100个人的姓名、性别和年龄:\n");
for(i=0;i<N;i++)
{
printf("请输入第 %d 个人的信息:\n", i+1);
gets(per[i].name);
per[i].sex = getchar();
scanf("%d", &per[i].age);
getchar(); // 接收多余的回车符
}
for(i=0; i<N; i++)
{
if(per[i].sex == 'M')
{
if(per[i].age>=0 && per[i].age<=29)
{
count[0]++;
}
else if(per[i].age>=30 && per[i].age<=59)
{
count[1]++;
}
else if(per[i].age>=60)
{
count[2]++;
}
}
else if(per[i].sex=='W')
{
if(per[i].age>=0 && per[i].age<=29)
{
count[3]++;
}
else if(per[i].age>=30 && per[i].age<=59)
{
count[4]++;
}
else if(per[i].age>=60)
{
count[5]++;
}
}
}
printf("男性0~29岁:%d人, 30~59岁:%d人, 60岁以上:%d人\n", count[0], count[1], count[2]);
printf("女性0~29岁:%d人, 30~59岁:%d人, 60岁以上:%d人\n", count[3], count[4], count[5]);
return 0;
}
26题:
此题的答案由一位不愿意透露姓名的好心人提供,让我们一起感谢他吧!
#include<stdio.h>
#include<string.h>
void sort(char a[],int len)
{
char b[100];
int m=0;
for(int i=0;i<len;i++)
{
if(a[i]<'0' || a[i]>'9')
{
b[m]=a[i];
m++;
}
}
for(int j=0;j<m;j++)
{
printf("%c",b[j]);
}
putchar('\n');
}
int main()
{
char a[100];
gets(a);
int len=strlen(a);
sort(a,len);
return 0;
}
2019年
一、单项选择题
- C
- D
- A
- C
- B
- C
- A
- D
- A
- B
二、判断题
- √
- ×
- ×
- √
- ×
√应该是 ×- √
- ×
- ×
- ×
三、程序分析题
21题:
略
22题:
判断字符串2是否为字符串1的子串,如果是则输出“yes”,否则输出“no”
23题:
略
四、程序设计题
编程题答案请参考陈宏松同学的博客,在此我们由衷地对他表示感谢!
http://www.chenhongsong.top/index.php/2019/11/16/2019%e3%80%8a807%e3%80%8b%e7%bc%96%e7%a8%8b/
24题:
略
25题:
#include <stdio.h>
#define N 3
int main(void)
{
struct student {
int num;
int math;
int c_language;
}stu[N];
int i, max_score, count;
for (i=0, max_score=0; i<N; i++)
{
scanf("%d%d%d", &stu[i].num, &stu[i].math, &stu[i].c_language);
if (max_score < stu[i].c_language)
max_score = stu[i].c_language;
}
printf("C语言分数最高的学生各项数据如下:\n");
for (i=0, count=0; i<N; i++)
{
if (max_score == stu[i].c_language)
{
printf("%d\t%d\t%d\n", stu[i].num, stu[i].math, stu[i].c_language);
count++;
}
}
printf("C语言分数最高的学生人数为:%d\n", count);
return 0;
}
26题:
略
2021年大题回忆版
从2020年开始,学校已不再公开真题,因此以下为热心网友提供的大题回忆版
一、阐述程序设计思想,画出程序流程图,不需要给出代码
- 设计一个函数fun,其作用为使数组中最大元素项与第一位互换,数组中最小元素项与最后一位互换。(使用指针实现)
- 现有两个递增有序链表L1与L2,P1、P2指向两链表头节点。利用两个链表的空间节点及指针P1、P2,构造出两列表合并后的有序递减序列L3。
二、阐述程序设计思想,画出主要流程,并给出代码
- 选择合适的数据结构保存十个工人信息(包括编号、姓名、工龄和工资)。使用冒泡算法将工人按照工龄从大到小排序,并输出排序后的结果。
- 有一个长度为10的字符串,输入一个字串,调用Find函数找出字符串中含有输入子串的个数,并在主函数输出结果。
- 现有ABC三个顺序表,要求在顺序表A中删除BC含有的元素后构建新的顺序表后输出。(结构体中的数据为int类型)
2022年大题回忆版
算法流程图:先叙述程序设计思想,再画出程序流程图,不需要给出代码。
-
选择排序
-
有很多集装箱,每箱重量不等,有一艘船,承重为C,如何可以装最多数量的箱子,不考虑容积,说明原因。
读程序描述功能
- 素数和合数判断
- 给出一维数组的12个数据,每个数字和第一个数比较大小,小于第一个数的得出的个数作为一个下标和第一个数交换(即,若有3个数小于第一个数则将a[3]和a[0]交换)
- 输入字符串形式的16进制数换算成10进制需判断输入是否合法
程序设计题:先叙述程序设计思想,再画出程序主要流程,然后写出程序代码
-
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。
-
A. 从1.txt中读出数据,计算大写字母,小写字母,数字和总的行数(最后一行没有换行符号)
B. 从1.txt中读出数据,将每行首字母改为大写,非首字母改为小写,写到2.txt中,并输出(输出显示符号空格等,2.txt中不显示符号空格) -
A. 根据员工的性别分别统计各部门男女员工的平均工资和平均年龄(员工信息包括:工号 姓名 性别 年龄 部门 工资)
B. 判断5000工资以上的男员工的平均年龄是否大于相应条件的女员工的平均年龄,输出结果要求为“true”或者“false”
此答案系学长自己做出来的答案,并非官方答案,有问题欢迎留言交流!由于答案不完整,大家也可以将自己做的以及相关想法写在留言栏里面,方便大家交流查阅,谢谢!