内容正文:
山东省春季高考技能测试
C语言程序设计第四套(原卷版)
第 一 题 程序改错题
本题有3行代码错误,请考生找到错误代码行,将错误代码行号、修改后的该行程序代码填写到考试系统中对应的答题区域。
程序功能:从键盘输入两个整数m、n,按由大到小的顺序输出。
Program1.c代码(首行数字为行号)如下:
1 #include <stdio.h>
2 int main()
3 {
4 int m,n,*p,*p1,*p2;
5 printf("请给入两个整数:
");
6 scanf("%d%d",m,n);
7 p1=&m;
8 p2=n;
9 if(p1<p2)
10 {
11 p=p1;
12 p1=p2;
13 p2=p;
14 }
15 printf("%d %d
",*p1,*p2);
16 return 0;
17 }
答案:
【1】错误行号:
正确代码:
【2】错误行号:
正确代码:
【3】错误行号:
正确代码:
第 二 题 程序填空题
请考生将【序号】处所缺的多行程序代码填写到考试系统中对应的答题区域,实现程序功能。
程序功能:从键盘输入一个正整数n,求1到n的阶乘的和(n的阶乘:n!=1*2*3*......*n)。例如输入3,则计算过程是:1!+2!+3!=9,输出计算结构sum=9。
Program2.c代码如下:
#include <stdio.h>
int main()
{
int i,n,temp=1,sum=0;
printf("请输入一个正整数n:
")
scanf("%d",&n);
【1】
printf("sum=%d
",sum);
return 0;
}
答案:
【1】
第 三 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:从键盘输入三条线段的长度,若三条线段首尾相接不能构成三角形(任意两条线段长度之和大于第三条线段长度才能构成三角形)则提示“输入错误”;若能构成三角形,则判断是否是直角三角形,并输出判断结果。
答案:
程序代码:
第 四 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:自定义函数max3(),返回三个整数中最大的数。主函数从键盘输入三个整数,调用该自定义函数,输出其中最大数。
答案:
程序代码:
学科网(北京)股份有限公司
学科网(北京)股份有限公司原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
#include <stdio.h>
int main()
{
int m,n,*p,*p1,*p2;
printf("请给入两个整数:
");
scanf("%d%d",m,n);
p1=&m;
p2=n;
if(p1<p2)
{
p=p1;
p1=p2;
p2=p;
}
printf("%d %d
",*p1,*p2);
return 0;
}
/*从键盘输入一个正整教n,求1到n的阶乘的和(n的阶乘:n!=1*2*3*..*n)。
例如输入3,则计算过程是:1!+2!+3!=9,输出计算结果sum=9。 */
#include <stdio.h>
int main()
{
int i,n,temp=1,sum=0;
printf("请输入一个正整数n:
")
scanf("%d",&n);
【1】
printf("sum=%d
",sum);
return 0;
}
$$
山东省春季高考技能测试
C语言程序设计第四套(答案版)
第 一 题 程序改错题
本题有3行代码错误,请考生找到错误代码行,将错误代码行号、修改后的该行程序代码填写到考试系统中对应的答题区域。
程序功能:从键盘输入两个整数m、n,按由大到小的顺序输出。
Program1.c代码(首行数字为行号)如下:
1 #include <stdio.h>
2 int main()
3 {
4 int m,n,*p,*p1,*p2;
5 printf("请给入两个整数:
");
6 scanf("%d%d",m,n);
7 p1=&m;
8 p2=n;
9 if(p1<p2)
10 {
11 p=p1;
12 p1=p2;
13 p2=p;
14 }
15 printf("%d %d
",*p1,*p2);
16 return 0;
17 }
答案:(满分18分)
【1】错误行号:6
正确代码:scanf("%d%d", &m, &n);
【2】错误行号:8
正确代码:p2 = &n;
【3】错误行号:9
正确代码:if (*p1 < *p2)
第 二 题 程序填空题
请考生将【序号】处所缺的多行程序代码填写到考试系统中对应的答题区域,实现程序功能。
程序功能:从键盘输入一个正整数n,求1到n的阶乘的和(n的阶乘:n!=1*2*3*......*n)。例如输入3,则计算过程是:1!+2!+3!=9,输出计算结构sum=9。
Program2.c代码如下:
#include <stdio.h>
int main()
{
int i,n,temp=1,sum=0;
printf("请输入一个正整数n:
")
scanf("%d",&n);
【1】
printf("sum=%d
",sum);
return 0;
}
答案:(满分18分)
for (i=1; i<=n; i++)
{
temp *= i;
sum += temp;
}
第 三 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:从键盘输入三条线段的长度,若三条线段首尾相接不能构成三角形(任意两条线段长度之和大于第三条线段长度才能构成三角形)则提示“输入错误”;若能构成三角形,则判断是否是直角三角形,并输出判断结果。
答案:(满分28分)
程序代码:
#include <stdio.h>
int main() {
float a, b, c;
float temp;
printf("请输入三条线段的长度:");
scanf("%f%f%f", &a, &b, &c);
// 排序三条边,方便后续判断(确保a <= b <= c)
if (a > b) {
temp = a;
a = b;
b = temp;
}
if (b > c) {
temp = b;
b = c;
c = temp;
}
if (a > b) {
temp = a;
a = b;
b = temp;
}
// 判断能否构成三角形
if (a + b <= c) {
printf("输入错误
");
} else {
// 判断是否为直角三角形(勾股定理:a² + b² ≈ c²,考虑浮点数精度误差)
if (a*a + b*b > c*c - 1e-6 && a*a + b*b < c*c + 1e-6) {
printf("是直角三角形
");
} else {
printf("是三角形,但不是直角三角形
");
}
}
return 0;
}
第 四 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:自定义函数max3(),返回三个整数中最大的数。主函数从键盘输入三个整数,调用该自定义函数,输出其中最大数。
答案:(满分36分)
程序代码:
#include <stdio.h>
// 自定义函数max3,返回三个整数中的最大值
int max3(int a, int b, int c) {
int max = a; // 假设a是最大值
if (b > max) {
max = b; // 若b更大,则更新最大值为b
}
if (c > max) {
max = c; // 若c更大,则更新最大值为c
}
return max;
}
int main() {
int num1, num2, num3, maximum;
printf("请输入三个整数: ");
scanf("%d %d %d", &num1, &num2, &num3);
// 调用自定义函数max3获取最大值
maximum = max3(num1, num2, num3);
printf("三个数中的最大值是: %d
", maximum);
return 0;
}
5.综合素质(15分)
(1)考生全程无不当操作(如随意插拔设备、误触系统设置等)且能正确使用考试系统功能(如提交答案、标记题目等);5分
(2)按题目要求正确保存相关素材,规范答题;5分
(3)考生全程无任何违规行为(如交头接耳、携带违禁物品、偷看他人答案等);5分
【根据考生实际答题情况,即使无任何作答,只要参加考试并登录考试系统即有30分,因此大胆猜测软件专业技能考试数据库和C语言各有15分综合素质分,仅提供参考。阅卷时需按照卷面满分各科100分进行阅卷,阅卷结束后,根据需要自行补充30分综合素质分】
学科网(北京)股份有限公司原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$