内容正文:
山东省春季高考技能测试
C语言程序设计第八套(答案版)
第 一 题 程序改错题
本题有3行代码错误,请考生找到错误代码行,将错误代码行号、修改后的该行程序代码填写到考试系统中对应的答题区域。
程序功能:从键盘连续输入多个正整数,然后输出其中百位为7的数,当输入0时退出程序。
Program1.c代码(首行数字为行号)如下:
1 #include <stdio.h>
2 int main()
3 {
4 long int num;
5 printf("请连续输入正整数,当输入0时退出程序:
");
6 scanf("%ld",num);
7 do
8 {
9 if(num%100/10==7)
10 {
11 printf("百位为7的数字是:%ld
",num);
12 }
13 scanf("%ld",&num);
14 } while(num==0);
15 return 0;
16 }
答案:(满分18分)
【1】错误行号:6
正确代码:scanf("%ld",num);
【2】错误行号:9
正确代码:if(num%100/10==7)
【3】错误行号:14
正确代码:} while(num==0);
第 二 题 程序填空题
请考生将【序号】处所缺的多行程序代码填写到考试系统中对应的答题区域,实现程序功能。
程序功能:输入任意个正数,计算它们的和并将结果保留2位小数输出,当输入数据小于或等于零时结束输入。
Program2.c代码如下:
#include <stdio.h>
int main()
{
float sum=0,n;
printf("请输入数据:");
while(1){
【1】
}
printf("这些数的和为:%.2f
",sum);
return 0;
}
答案:(满分18分)
scanf("%f", &n);
if(n <= 0) {
break;
}
sum += n;
第 三 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:期末考试结束后,老师让小明编写C程序处理学生成绩,要求输入5位同学的成绩,每位同学有3科成绩,将成绩存入一个5行3列的二维数组score中,计算并输出每位同学的平均分。请帮助小明完成编程任务。
答案:(满分28分)
程序代码:
#include <stdio.h>
int main() {
// 定义一个5行3列的二维数组存储成绩
float score[5][3];
// 定义变量存储每位同学的平均分
float average;
// 输入5位同学的3科成绩
printf("请输入5位同学的3科成绩(每行输入一位同学的3科成绩,用空格分隔):
");
for (int i = 0; i < 5; i++) {
printf("请输入第%d位同学的成绩:", i + 1);
scanf("%f %f %f", &score[i][0], &score[i][1], &score[i][2]);
}
// 计算并输出每位同学的平均分
printf("
每位同学的平均分如下:
");
for (int i = 0; i < 5; i++) {
// 计算平均分
average = (score[i][0] + score[i][1] + score[i][2]) / 3.0;
// 输出结果,保留一位小数
printf("第%d位同学的平均分:%.1f
", i + 1, average);
}
return 0;
}
第 四 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:给定字符串数组char str[]="In 1972,Dennis invented C at the age of 31.",在自定义函数digitcount()中统计该字符串内出现的数字字符的个数,并在主函数中输出。
答案:(满分36分)
程序代码:
#include <stdio.h>
#include <string.h>
// 自定义函数:统计字符串中数字字符的个数
int digitcount(char str[]) {
int count = 0;
int length = strlen(str); // 获取字符串长度
// 遍历字符串中的每个字符
for (int i = 0; i < length; i++) {
// 判断字符是否为数字('0'到'9'之间)
if (str[i] >= '0' && str[i] <= '9') {
count++; // 是数字则计数器加1
}
}
return count;
}
int main() {
char str[] = "In 1972,Dennis invented C at the age of 31.";
int num = digitcount(str); // 调用自定义函数统计数字个数
printf("字符串中数字字符的个数为:%d
", num);
return 0;
}
5.综合素质(15分)
(1)考生全程无不当操作(如随意插拔设备、误触系统设置等)且能正确使用考试系统功能(如提交答案、标记题目等);5分
(2)按题目要求正确保存相关素材,规范答题;5分
(3)考生全程无任何违规行为(如交头接耳、携带违禁物品、偷看他人答案等);5分
【根据考生实际答题情况,即使无任何作答,只要参加考试并登录考试系统即有30分,因此大胆猜测软件专业技能考试数据库和C语言各有15分综合素质分,仅提供参考。阅卷时需按照卷面满分各科100分进行阅卷,阅卷结束后,根据需要自行补充30分综合素质分】
学科网(北京)股份有限公司原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
山东省春季高考技能测试
C语言程序设计第八套(原卷版)
第 一 题 程序改错题
本题有3行代码错误,请考生找到错误代码行,将错误代码行号、修改后的该行程序代码填写到考试系统中对应的答题区域。
程序功能:从键盘连续输入多个正整数,然后输出其中百位为7的数,当输入0时退出程序。
Program1.c代码(首行数字为行号)如下:
1 #include <stdio.h>
2 int main()
3 {
4 long int num;
5 printf("请连续输入正整数,当输入0时退出程序:
");
6 scanf("%ld",num);
7 do
8 {
9 if(num%100/10==7)
10 {
11 printf("百位为7的数字是:%ld
",num);
12 }
13 scanf("%ld",&num);
14 } while(num==0);
15 return 0;
16 }
答案:
【1】错误行号:
正确代码:
【2】错误行号:
正确代码:
【3】错误行号:
正确代码:
第 二 题 程序填空题
请考生将【序号】处所缺的多行程序代码填写到考试系统中对应的答题区域,实现程序功能。
程序功能:输入任意个正数,计算它们的和并将结果保留2位小数输出,当输入数据小于或等于零时结束输入。
Program2.c代码如下:
#include <stdio.h>
int main()
{
float sum=0,n;
printf("请输入数据:");
while(1){
【1】
}
printf("这些数的和为:%.2f
",sum);
return 0;
}
答案:
【1】
第 三 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:期末考试结束后,老师让小明编写C程序处理学生成绩,要求输入5位同学的成绩,每位同学有3科成绩,将成绩存入一个5行3列的二维数组score中,计算并输出每位同学的平均分。请帮助小明完成编程任务。
答案:
程序代码:
第 四 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:给定字符串数组char str[]="In 1972,Dennis invented C at the age of 31.",在自定义函数digitcount()中统计该字符串内出现的数字字符的个数,并在主函数中输出。
答案:
程序代码:
学科网(北京)股份有限公司
学科网(北京)股份有限公司原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
/*程序功能:从键盘连续输入多个正整数,然后输出其中百位为7的数,当输入0时退出程序。
Program1.c代码(行首数字为行号)如下:*/
#include <stdio.h>
int main()
{
long int num;
printf("请连续输入正整数,当输入0时退出程序:
");
scanf("%ld",num);
do
{
if(num%100/10==7)
{
printf("百位为7的数字是:%ld
",num);
}
scanf("%ld",&num);
} while(num==0);
return 0;
}
/*程序功能:输入任意个正数,计算它们的和并将结果保留2位小数输出,当输
入数据小于或等于零时结束输入。
Program2.c代码如下:*/
#include <stdio.h>
int main()
{
float sum=0,n;
printf("请输入数据:");
while(1){
【1】
}
printf("这些数的和为:%.2f
",sum);
return 0;
}
$$