内容正文:
山东省春季高考技能测试
C语言程序设计第十三套(答案版)
第 一 题 程序改错题
本题有3行代码错误,请考生找到错误代码行,将错误代码行号、修改后的该行程序代码填写到考试系统中对应的答题区域。
程序功能:从键盘输入一个正整数n,然后输出从1到n的所有奇数,统计并输出奇数的个数及平均值。
Program1.c代码(首行数字为行号)如下:
1 #include <stdio.h>
2 int main()
3 {
4 int n,i=1,count=0,sum=0;
5 printf("请输入一个正整数:");
6 scanf("%d",&n);
7 printf("1~%d之间的所有奇数为:",n);
8 do {
9 if(i%2 == 0)
10 {
11 printf("%d\t", i);
12 count++;
13 sum+=i;
14 }
15 i--;
16 } while (i<=n);
17 printf("
共%f个奇数,平均值为%f",count,sum/count);
18 return 0;
19 }
答案:(满分18分)
【1】错误行号:9
正确代码:if(i%2 != 0)
【2】错误行号:15
正确代码:i++;
【3】错误行号:17
正确代码:printf("
共%d个奇数,平均值为%f",count,(float)sum/count);
第 二 题 程序填空题
请考生将【序号】处所缺的多行程序代码填写到考试系统中对应的答题区域,实现程序功能。
程序功能:自定义函数fun(),求公式F=(n*n-m*m)/(n*n+m*m)的值,若F>0则返回结果,若F<=0则返回零。主函数从键盘输入2个实数,调用fun()函数,输出F的值。
Program2.c代码如下:
#include <stdio.h>
float fun(float x,float y){
【1】
}
int main(){
float n,m;
printf("输入2个实数:");
scanf("%f%f",&n,&m);
printf("计算结果等于%f
",fun(n,m));
return 0;
}
答案:(满分18分)
float numerator, denominator, f;
numerator = x * x - y * y;
denominator = x * x + y * y;
f = numerator / denominator;
if (f > 0) {
return f;
} else {
return 0;
}
第 三 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:请从键盘输入n个整数,统计并输出其中的正数、零和负数的个数。
答案:(满分28分)
程序代码:
#include <stdio.h>
int main() {
int n, num;
int positive = 0, zero = 0, negative = 0;
int i;
// 输入整数的个数
printf("请输入整数的个数n: ");
scanf("%d", &n);
// 输入n个整数并统计
printf("请输入%d个整数: ", n);
for (i = 0; i < n; i++) {
scanf("%d", &num);
if (num > 0) {
positive++;
} else if (num == 0) {
zero++;
} else {
negative++;
}
}
// 输出统计结果
printf("正数的个数: %d
", positive);
printf("零的个数: %d
", zero);
printf("负数的个数: %d
", negative);
return 0;
}
第 四 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:数组score中存储5名同学的综合测评成绩,score[5]={84.7,94,9,80,66,73.6}。请使用指针查找并输出综合测评的最高分和最低分。
答案:(满分36分)
程序代码:
#include <stdio.h>
int main() {
// 定义存储5名同学成绩的数组
float score[5] = {84.7, 94.9, 80, 66, 73.6};
// 定义指向数组的指针
float *p = score;
// 初始化最高分和最低分为数组第一个元素
float max = *p;
float min = *p;
int i;
// 通过指针遍历数组,查找最高分和最低分
for (i = 1; i < 5; i++) {
// 移动指针到下一个元素
p++;
// 比较并更新最高分
if (*p > max) {
max = *p;
}
// 比较并更新最低分
if (*p < min) {
min = *p;
}
}
// 输出结果
printf("最高分是: %.1f
", max);
printf("最低分是: %.1f
", min);
return 0;
}
5.综合素质(15分)
(1)考生全程无不当操作(如随意插拔设备、误触系统设置等)且能正确使用考试系统功能(如提交答案、标记题目等);5分
(2)按题目要求正确保存相关素材,规范答题;5分
(3)考生全程无任何违规行为(如交头接耳、携带违禁物品、偷看他人答案等);5分
【根据考生实际答题情况,即使无任何作答,只要参加考试并登录考试系统即有30分,因此大胆猜测软件专业技能考试数据库和C语言各有15分综合素质分,仅提供参考。阅卷时需按照卷面满分各科100分进行阅卷,阅卷结束后,根据需要自行补充30分综合素质分】
学科网(北京)股份有限公司原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
山东省春季高考技能测试
C语言程序设计第十三套(原卷版)
第 一 题 程序改错题
本题有3行代码错误,请考生找到错误代码行,将错误代码行号、修改后的该行程序代码填写到考试系统中对应的答题区域。
程序功能:从键盘输入一个正整数n,然后输出从1到n的所有奇数,统计并输出奇数的个数及平均值。
Program1.c代码(首行数字为行号)如下:
1 #include <stdio.h>
2 int main()
3 {
4 int n,i=1,count=0,sum=0;
5 printf("请输入一个正整数:");
6 scanf("%d",&n);
7 printf("1~%d之间的所有奇数为:",n);
8 do {
9 if(i%2 == 0)
10 {
11 printf("%d\t", i);
12 count++;
13 sum+=i;
14 }
15 i--;
16 } while (i<=n);
17 printf("
共%f个奇数,平均值为%f",count,sum/count);
18 return 0;
19 }
答案:
【1】错误行号:
正确代码:
【2】错误行号:
正确代码:
【3】错误行号:
正确代码:
第 二 题 程序填空题
请考生将【序号】处所缺的多行程序代码填写到考试系统中对应的答题区域,实现程序功能。
程序功能:自定义函数fun(),求公式F=(n*n-m*m)/(n*n+m*m)的值,若F>0则返回结果,若F<=0则返回零。主函数从键盘输入2个实数,调用fun()函数,输出F的值。
Program2.c代码如下:
#include <stdio.h>
float fun(float x,float y){
【1】
}
int main(){
float n,m;
printf("输入2个实数:");
scanf("%f%f",&n,&m);
printf("计算结果等于%f
",fun(n,m));
return 0;
}
答案:
【1】
第 三 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:请从键盘输入n个整数,统计并输出其中的正数、零和负数的个数。
答案:
程序代码:
第 四 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:数组score中存储5名同学的综合测评成绩,score[5]={84.7,94,9,80,66,73.6}。请使用指针查找并输出综合测评的最高分和最低分。
答案:
程序代码:
学科网(北京)股份有限公司
学科网(北京)股份有限公司原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
/*程序功能:从键盘输入一个正整数n,然后输出从1到n的所有奇数,统计并输出奇数的个数及平均值。
Program1.c代码(行首数字为行号)如下:*/
#include <stdio.h>
int main()
{
int n,i=1,count=0,sum=0;
printf("请输入一个正整数:");
scanf("%d",&n);
printf("1~%d之间的所有奇数为:",n);
do {
if(i%2 == 0)
{
printf("%d\t", i);
count++;
sum+=i;
}
i--;
} while (i<=n);
printf("
共%f个奇数,平均值为%f",count,sum/count);
return 0;
}
/*程序功能:自定义函数fun(),求公式F=(n*n-m*m)/(n*n+m*m)的值,若F>0则返回
结果,若F<=0则返回零。主函数从键盘输入2个实数,调用fun()函数,输出F的值。
Program2.c代码如下:*/
#include <stdio.h>
float fun(float x,float y){
【1】
}
int main(){
float n,m;
printf("输入2个实数:");
scanf("%f%f",&n,&m);
printf("计算结果等于%f
",fun(n,m));
return 0;
}
$$