内容正文:
山东省春季高考技能测试
C语言程序设计第十七套(答案版)
第 一 题 程序改错题
本题有3行代码错误,请考生找到错误代码行,将错误代码行号、修改后的该行程序代码填写到考试系统中对应的答题区域。
程序功能:输入10个互不相同的整数,输出该10个数中的最小值及其序号。
Program1.c代码(首行数字为行号)如下:
1 #include <stdio.h>
2 int main()
3 {
4 int a[10],*p,*q;
5 printf("请输入10个互不相同的整数:
");
6 for(p=a;p<=a+9;p++)
7 scanf("%d",&p);
8 for(q=a,p=a+1;p<=a+9;p++)
9 {
10 if(p<q)
11 q=p;
12 }
13 printf("最小值为:%d,它是第%d个数
",*q,q-a);
14 return 0;
15 }
答案:(满分18分)
【1】错误行号:7
正确代码:scanf("%d",p);
【2】错误行号:10
正确代码:if(*p < *q)
【3】错误行号:13
正确代码:printf("最小值为:%d,它是第%d个数
",*q,q-a+1);
第 二 题 程序填空题
请考生将【序号】处所缺的多行程序代码填写到考试系统中对应的答题区域,实现程序功能。
程序功能:输入一个字符串(少于12个字符),以回车符为结束,统计其中数字字符的个数,并将最后一个数字字符转换成相对应的数字输出(如:字符'5'转换为数字5输出)。
Program2.c代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
char a[12],i;
int s=0,num=0;
printf("请输入一个字符串:
");
gets(a);
for(i=0;i<strlen(a);i++)//注:库函数strlen()功能为计算字符串长度
{
【1】
}
printf("该字符串中共有%d个数字字符,
最后一个数字字符转换为相应数字为%d
',num,s);
return 0;
}
答案:(满分18分)
// 判断当前字符是否为数字
if(a[i] >= '0' && a[i] <= '9')
{
num++; // 数字字符个数加1
last_digit = a[i] - '0'; // 转换为对应的数字并更新最后一个数字
}
第 三 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:从键盘输入三角形的三条整数边长,编程判断是否能构成直角三角形,如果能则计算该直角三角形的面积(结果保留两位小数);如果不能则输出“不能构成直角三角形”。
答案:(满分28分)
程序代码:
#include <stdio.h>
#include <math.h>
int main() {
int a, b, c;
int temp;
float area;
// 输入三角形的三条边长
printf("请输入三角形的三条整数边长: ");
scanf("%d %d %d", &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 * a + b * b == c * c) {
// 计算面积(直角边乘积的一半)
area = (a * b) / 2.0;
printf("该三角形是直角三角形,面积为: %.2f
", area);
} else {
printf("不能构成直角三角形
");
}
return 0;
}
第 四 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:自定义函数fun(),其功能为求取从1开始的前n项奇数的和;在主函数中输入正整数n并调用该自定义函数,求表达式1+3+5+7+...前n项的和。
答案:(满分36分)
程序代码:
#include <stdio.h>
// 自定义函数:计算从1开始的前n项奇数的和
int fun(int n) {
int sum = 0;
int i;
// 前n项奇数可以表示为1, 3, 5, ..., 2n-1
for (i = 0; i < n; i++) {
sum += 2 * i + 1; // 第i+1项奇数为2i+1
}
return sum;
}
int main() {
int n, result;
printf("请输入一个正整数n: ");
scanf("%d", &n);
// 调用自定义函数计算前n项奇数的和
result = fun(n);
printf("前%d项奇数的和为: %d
", n, result);
return 0;
}
5.综合素质(15分)
(1)考生全程无不当操作(如随意插拔设备、误触系统设置等)且能正确使用考试系统功能(如提交答案、标记题目等);5分
(2)按题目要求正确保存相关素材,规范答题;5分
(3)考生全程无任何违规行为(如交头接耳、携带违禁物品、偷看他人答案等);5分
【根据考生实际答题情况,即使无任何作答,只要参加考试并登录考试系统即有30分,因此大胆猜测软件专业技能考试数据库和C语言各有15分综合素质分,仅提供参考。阅卷时需按照卷面满分各科100分进行阅卷,阅卷结束后,根据需要自行补充30分综合素质分】
学科网(北京)股份有限公司原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
山东省春季高考技能测试
C语言程序设计第十七套(原卷版)
第 一 题 程序改错题
本题有3行代码错误,请考生找到错误代码行,将错误代码行号、修改后的该行程序代码填写到考试系统中对应的答题区域。
程序功能:输入10个互不相同的整数,输出该10个数中的最小值及其序号。
Program1.c代码(首行数字为行号)如下:
1 #include <stdio.h>
2 int main()
3 {
4 int a[10],*p,*q;
5 printf("请输入10个互不相同的整数:
");
6 for(p=a;p<=a+9;p++)
7 scanf("%d",&p);
8 for(q=a,p=a+1;p<=a+9;p++)
9 {
10 if(p<q)
11 q=p;
12 }
13 printf("最小值为:%d,它是第%d个数
",*q,q-a);
14 return 0;
15 }
答案:
【1】错误行号:
正确代码:
【2】错误行号:
正确代码:
【3】错误行号:
正确代码:
第 二 题 程序填空题
请考生将【序号】处所缺的多行程序代码填写到考试系统中对应的答题区域,实现程序功能。
程序功能:输入一个字符串(少于12个字符),以回车符为结束,统计其中数字字符的个数,并将最后一个数字字符转换成相对应的数字输出(如:字符'5'转换为数字5输出)。
Program2.c代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
char a[12],i;
int s=0,num=0;
printf("请输入一个字符串:
");
gets(a);
for(i=0;i<strlen(a);i++)//注:库函数strlen()功能为计算字符串长度
{
【1】
}
printf("该字符串中共有%d个数字字符,
最后一个数字字符转换为相应数字为%d
',num,s);
return 0;
}
答案:
【1】
第 三 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:从键盘输入三角形的三条整数边长,编程判断是否能构成直角三角形,如果能则计算该直角三角形的面积(结果保留两位小数);如果不能则输出“不能构成直角三角形”。
答案:
程序代码:
第 四 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:自定义函数fun(),其功能为求取从1开始的前n项奇数的和;在主函数中输入正整数n并调用该自定义函数,求表达式1+3+5+7+...前n项的和。
答案:
程序代码:
学科网(北京)股份有限公司
学科网(北京)股份有限公司原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
/*程序功能:输入10个互不相同的整数,输出该10个数中的最小值及其序号。
Program1.c代码(行首数字为行号)如下:*/
#include <stdio.h>
int main()
{
int a[10],*p,*q;
printf("请输入10个互不相同的整数:
");
for(p=a;p<=a+9;p++)
scanf("%d",&p);
for(q=a,p=a+1;p<=a+9;p++)
{
if(p<q)
q=p;
}
printf("最小值为:%d,它是第%d个数
",*q,q-a);
return 0;
}
/*程序功能:输入一个字符串(少于12个字符),以回车符为结束,统计其中数字字符的个数,并将
最后一个数字字符转换成相对应的数字输出(如:字符'5'转换为数字5输出)。
Program2.c代码如下:*/
#include<stdio.h>
#include<string.h>
int main()
{
char a[12],i;
int s=0,num=0;
printf("请输入一个字符串:
");
gets(a);
for(i=0;i<strlen(a);i++)//注:库函数strlen()功能为计算字符串长度
{
【1】
}
printf("该字符串中共有%d个数字字符,
最后一个数字字符转换为相应数字为%d
',num,s);
return 0;
}
$$