《C语言程序设计》(高教版)山东省(春季高考)软件与应用技术 高频考点冲刺卷(九)

2026-02-24
| 2份
| 33页
| 72人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 C语言程序设计高教版(第五版)全一册
年级 高一
章节 第2章 基本数据类型与简单程序设计,第4章 循环结构程序设计,第7章 结构体和共用体
类型 题集-专项训练
知识点 数据类型和简单程序设计,分支结构,循环结构,数组,函数
使用场景 中职复习
学年 2026-2027
地区(省份) 山东省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 284 KB
发布时间 2026-02-24
更新时间 2026-02-24
作者 xkw_063129603
品牌系列 学易金卷·阶段检测模拟卷
审核时间 2026-02-24
下载链接 https://m.zxxk.com/soft/56536557.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:本冲刺卷严格依据山东省软件与应用技术类高考考纲编写,依托《编程语言基础—C语言》(高教版第五版),聚焦高三考生冲刺需求,助力高效提分。内容上深度覆盖考纲掌握、理解层级考点,既系统梳理构建知识框架,又强化应用能力训练;同时结合近五年高考真题,精准把握高频考点、命题趋势与题型特点,确保贴合高考方向。 山东省软件与应用技术类 《C语言程序设计》高教版第五版 高频考点冲刺卷(九)解析版 时间:60分钟 总分:100分 班级 姓名 学号 成绩 一、单选题(共25小题,每题2分,共50分) 1. 下列关于C语言程序开发过程的描述中,正确的是( ) A. 编写源程序 → 编译 → 连接 → 运行 B. 编写源程序 → 连接 → 编译 → 运行 C. 编译 → 编写源程序 → 连接 → 运行 D. 编写源程序 → 运行 → 编译 → 连接 答案:A 解析:运行C程序的完整步骤:编写源程序 → 编译 → 连接 → 运行。 2. 智能手环监测用户睡眠时,需要存储深度睡眠时长(精确到毫秒),最适合的数据类型是( ) A. int B. float C. double D. char 答案:C 解析:double类型精度更高,适合存储需要精确到毫秒的时间数据。 3. 以下关于常量和变量的描述中,错误的是( ) A. 在程序运行过程中,变量的值可以改变 B. 使用const关键字定义的常量在程序运行期间不能改变 C. #define定义的符号常量有类型检查 D. 常量在定义时必须初始化 答案:C 解析:#define定义的符号常量没有类型检查,const定义的常量有类型检查。 4. 以下赋值语句中,正确的是( ) A. x + y = 10; B. 3 = x; C. int x = 10, y = x * 2; D.int x = y = z = 0; 答案:C 解析:不能给常量和表达式赋值,A、B不对;变量要先定义后使用,D选项不对。 5. 设计一个简单的体温登记程序,要求输入姓名和体温,以下输入语句正确的是( ) A. scanf("%s %f", name, &temperature); B. scanf("%s %d", name, temperature); C. scanf("%c %f", name, &temperature); D. scanf("%s %f", &name, &temperature); 答案:A 解析:姓名需要用字符串(%s)输入,浮点数需要&取地址符 6. 某电商平台对一单商品进行最终金额结算。已知该商品原价为 price 元,平台满减优惠为 discount 元,运费为 shipping 元。此外,该订单满足一项运费减免条件,即:如果商品优惠后的价格不低于 50 元,则免运费,否则需支付运费。 以下哪个选项能够正确且简洁地表示该订单的最终支付金额( ) A. price - discount + shipping B. price - discount - shipping C. (price - discount >= 50) ? (price - discount) : (price - discount + shipping) D. price - (discount + shipping) 答案:C 解析:题目中运费是否收取取决于优惠后的价格是否达到 50 元,这属于条件判断。 7. 判断健康码状态:体温temperature正常(<37.3)且行程码status为0(安全)才能进入,则表达式为( ) A. temperature < 37.3 && status == 0 B. temperature < 37.3 || status == 0 C. temperature < 37.3 && status = 0 D. temperature < 37.3 || status = 0 答案:A 解析:体温正常和行程码为0 需要同时满足,所以需要用&&。 8. 共享单车计费规则:前30分钟1.5元,之后每15分钟0.5元。设骑行时间t(分钟),费用cost计算代码段正确的是( ) A. if(t <= 30) cost = 1.5; else cost = 1.5 + 0.5 * t / 15; B. if(t <= 30) cost = 1.5; else cost = 1.5 + 0.5 * (t - 30 / 15); C. if(t < 30) cost = 1.5; else cost = 0.5 * ((t - 30) / 15); D. if(t <= 30) cost = 1.5; else cost = 1.5 + 0.5 * ((t - 30) / 15); 答案:D 解析:收费分为两段,小于30分钟,和大于30分钟的情况,所以用if语句。之后的每15分钟0.5元,所以要扣除前30分钟的时间。 9. 根据学生成绩等级计算成绩点:A-4.0, B-3.0, C-2.0, D-1.0, F-0.0,正确的是( ) A. switch(grade) { case 'A': gpa = 4.0; break; case 'B': gpa = 3.0; break; case 'C': gpa = 2.0; break; case 'D': gpa = 1.0; break; default: gpa = 0.0; } B. switch(grade) { case "A": gpa = 4.0; case "B": gpa = 3.0; case "C": gpa = 2.0; case "D": gpa = 1.0; default: gpa = 0.0; } C. switch(grade) { case A: gpa = 4.0; break; case B: gpa = 3.0; break; case C: gpa = 2.0; break; case D: gpa = 1.0; break; default: gpa = 0.0; } D. switch(grade) { case 'A': gpa = 4.0; case 'B': gpa = 3.0; case 'C': gpa = 2.0; case 'D': gpa = 1.0; default: gpa = 0.0; } 答案:A 解析:switch语句要求:case标号后的表达式是整型数(包括字符型)或是整型常量表达式。不能使用变量作为case标号,每个case常量表达式的值必须互不相同。所以B、C选项不对。D选项中没有加break,不符合题意。 10.智能家居系统监测室内温度,当温度超过30度时持续报警,代码正确的是( ) A. while(temperature > 30) { printf("温度过高! "); temperature--; // 假设温度会下降 } B. while(temperature > 30); { printf("温度过高! "); } C. while(temperature > 30) printf("温度过高! "); D. while(temperature < 30) { printf("温度过高! "); } 答案:C 解析:A选项不能实现持续报警,B选项表达式后边不能有“;”,D选项的表达式是温度低于30度时报警。 11.线上考试系统要求至少完成一道题才能交卷,对此编程代码正确的是( ) A. do { printf("请完成至少一道题 "); finished = check_finished(); } while(finished == 0); B. do printf("请完成至少一道题 "); finished = check_finished(); while(finished == 0); C. while(finished == 0) do { printf("请完成至少一道题 "); finished = check_finished(); } D. do { printf("请完成至少一道题 "); finished = check_finished(); } while(finished = 0); 答案:D 解析:B选项中do...while循环的格式不对,没有加{};B选项的格式不对,while(finished==0)应在右‘}’后边;D选项表达式应为关系表达式finished==0。 12. 以下程序为统计一周7天的步数总和,代码正确的是( ) A. for(i = 0; i <= 7; i++) { total += steps[i]; } B. for(i = 1; i < 7; i++) { total += steps[i]; } C. for(i = 0; i < 7; i++) { total += steps[i]; } D. for(i = 1; i <= 7; i++) { total -= steps[i]; } 答案:C 解析:数组下标从0开始,i<7正好遍历7个元素,所以C选项是正确的。D选项中total -= steps[i];不对。 13. 在有序数组中查找某个值,找到后立即退出循环,正确的是( ) A. for(i = 0; i < n; i++) { if(arr[i] == target) continue; } B. for(i = 0; i < n; i++) { if(arr[i] == target) break; } C. for(i = 0; i < n; i++) { if(arr[i] == target) return; } D. for(i = 0; i < n; i++) { if(arr[i] == target) exit(0); } 答案:B 解析:在C语言中结束循环的语句是break语句。 14. 下面程序功能为统计数组中正数的个数,遇到负数跳过,正确的是( ) A. for(i = 0; i < n; i++) { if(arr[i] <= 0) break; count++; } B. for(i = 0; i < n; i++) { if(arr[i] <= 0) continue; count++; } C. for(i = 0; i < n; i++) { if(arr[i] <= 0) return; count++; } D. for(i = 0; i < n; i++) { if(arr[i] > 0) continue; count++; } 答案:B 解析:continue跳过当前循环的剩余部分,继续下一次循环 15. 设j为int型变量,则下面for循环语句的执行结果是( )。 for (j = 10; j > 3; j --) {if (j % 3)j--; --j; --j; printf ("%d ", j); } A.6 3 B.7 4 C.6 2 D.7 3 答案:B 解析:第一轮循环(初始 j=10):条件 j > 3成立,进入循环体。if (j % 3):10 % 3 = 1(真),执行j--,此时j = 9。执行--j,j = 8。执行--j,j = 7。输出j:7。循环体结束,执行for的j--,j = 6。第二轮循环(当前 j=6):条件j > 3成立,进入循环体。if (j % 3):6 % 3 = 0(假),不执行 j--,j仍为 6。执行 --j,j = 5。执行 --j,j = 4。输出 j:4。循环体结束,执行 for 的 j--,j = 3。第三轮循环(当前 j=3):条件 j > 3 不成立,循环结束。最终输出:7 4 16. 以下关于一维数组的描述中,正确的是( ) A. int arr[]; 是合法的数组声明 B. int arr[5] = {1,2,3,4,5,6}; 是合法的初始化 C. 数组下标从1开始 D. 数组名代表数组的首地址 答案:D 解析:数组下标从0开始,定义数组时不进行初始话时需要指明数组的长度,数组初始化的赋值个数不能超过数组长度。 17.定义一个3行4列的二维数组以下正确的是( ) A. int scores[3][4]; B. int scores[3,4]; C. int scores[4][3]; D. int scores(3)(4); 答案:A 解析:B、C格式不对,C选项是4行3列。 18. 要存储身份证号码(18位数字加1位校验码),以下定义正确的是( ) A. char id[18]; B. char id[19]; C. char id[20]; D. char id[] = "身份证号码"; 答案:B 解析:身份证号属于字符串,字符串存储时需要考虑’\0’,题干中要求加1位校验码,所以数组定义至少为20。 19.对以下程序,正确的说法是( ) #include<stdio.h> sub (char x,char y) {int z; z=x%y; return z; } main() { int g=5,h=3,k; k=sub(g,h); printf("%d ",k); } A. 实参与其对应的形参类型不一致,程序不能运行 B. 被调函数缺少数据类型说明,程序不能运行 C. 主函数中缺少对被调函数的说明语句,程序不能运行 D. 程序中没有错误,可以正常运行 答案:D 解析:程序定义了一个返回类型默认为int的函数sub,形参为char类型,主函数调用时传递int类型的实参,会进行隐式类型转换。函数定义在main之前,无需额外声明。 20. 请阅读程序: #include <stdio.h> f(int b[], int n) { int i, r=1; for(i=0; i<=n; i++) r=r*b[i]; return r; } main() {int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf("%d ",x); } 上面程序的输出结果是( ) A. 720 B. 120 C. 24 D. 6 答案:B 解析:调用f(a,3)计算a[0]到a[3]的乘积,即2*3*4*5 = 120,并将结果赋值给x,最后输出x的值。输出结果:120。 21. 若函数调用时用数组名作为函数参数,以下叙述中,不正确的是( ) A. 实参与其对应的形参共占用同一段存储空间 B. 实参将其地址传递给形参,结果等同于实现了参数之间的双向值传递 C. 实参与其对应的形参分别占用不同的存储空间 D. 在调用函数中必须说明数组的大小,但在被调函数中可以使用不定尺寸数组 答案:C 解析:A正确。数组名作为参数时传递的是数组首地址,形参通过该地址访问实参数组,二者共享同一段存储空间。B正确。传递地址使得被调函数能修改实参数组的内容,实现了类似双向传递的效果。C 错误。实参数组与形参(指针)共享数组存储空间,并不是“分别占用不同的存储空间”。D 正确。主调函数中定义数组需指定大小,而被调函数的形参数组可以不指定大小。 22.以下叙述中,不正确的是( ) A. 使用static float a定义的外部变量存放在内存中的静态存储区 B. 使用float b定义的外部变量存放在内存中的动态存储区 C. 使用static float c定义的内部变量存放在内存中的静态存储区 D. 使用float d定义的内部变量存放在内存中的动态存储区 答案:B 解析:在C语言中,变量的存储类别决定了其存储位置: 外部变量(即全局变量) 总是存储在静态存储区,无论是否用 static 修饰。static 修饰全局变量时,仅改变其作用域,不改变存储位置。 23.以下程序的输出结果是( ) #include <stdio.h> int a,b; void fun() { a=100;b=200;} main() {int a=5,b=7; fun(); printf("%d %d ",a,b); } A. 100200 B. 57 C. 200100 D. 75 答案:B 解析:main函数中定义了局部变量a=5和b=7。调用fun()函数,该函数将全局变量a和b分别修改为 100 和 200。但main函数中打印的是局部变量a和b,它们的值并未被fun()改变。 24. 设有以下说明语句: struct stu { int a; float b; } stutype; 则下面的叙述不正确的是( )。 A.struct 是结构体类型的关键字 B.struct stu 是用户定义的结构体类型 C.stutype 是用户定义的结构体类型名 D.a和b都是结构体成员名 答案:C 解析:stutype 是用户定义的结构体变量名。 25. 以下关于指针的描述,正确的是( ) A. 指针变量存储的是变量的值 B. int *p; *p = 10; 是安全的 C. 指针的类型必须与所指变量的类型一致 D. 指针可以指向任意内存地址而不受限制 答案:C 解析:A错误。指针变量存储的是内存地址,而不是变量的值。B错误。指针 p未初始化,其值是未知的(野指针)。直接对 *p 赋值会导致未定义行为,可能引发程序崩溃。C正确。C语言要求指针类型与其指向的数据类型一致。D错误。指针只能指向程序有权访问的内存地址。随意指向系统保护区域或非法地址会导致访问违规。 二、简答题(共3小题,每题5分,共15分) 1. 阅读以下程序,写出运行结果(智能家居温度控制系统): #include <stdio.h> main() { int temperature[] = {25, 26, 28, 30, 29, 27, 26}; int i, count = 0; float sum = 0; for(i = 0; i < 7; i++) { sum += temperature[i]; if(temperature[i] > 28) { printf("第%d天温度过高: %d℃ ", i+1, temperature[i]); count++; } } printf("平均温度: %.1f℃ ", sum/7); printf("超过28℃的天数: %d ", count); } 答案: 第4天温度过高: 30℃ 第5天温度过高: 29℃ 平均温度: 27.3℃ 超过28℃的天数: 2 2. 下列程序执行后的输出结果是( )。 #include<stdio.h> void func1(int i); void func2(int i); char st[]="hello,friend!"; void func1(int i) { printf("%c",st[i]); if(i<3) {i+=2;func2(i);} } void func2(int i) { printf("%c",st[i]); if(i<3) { i+=2;func1(i); } } main() { int i=0; func1(i); printf(" "); } 答案:hlo 3. 阅读下面程序,写出运行结果。 #include<stdio.h> int sub (int *a,int n,int k); main() { int x=0; sub(&x,8,1); printf("%d ",x); } sub(int *a,int n,int k) { if(k<=n) sub(a,n/2,2*k); *a+=k; } 答案:7 三、案例分析题(共3小题,每题5分,共15分) 1. 以下程序功能:根据重量和距离计算快递费用。100公里以内10元,500公里以内每公里加收0.5元,500公里以上每公里加收0.8元。首重5公斤按距离收取快递费用,续重每公斤加收1.2元。请找出程序中的错误并改正。 #include <stdio.h> #define BASE_PRICE 10.0 #define RATE 0.5 float calculate_fee(float weight, int distance); main() { float weight; int distance; float fee; printf("请输入包裹重量(kg): "); scanf("%f", weight); printf("请输入距离(km): "); scanf("%d", &distance); fee = calculate_fee(weight, distance); printf("快递费用: %.2f元 ", fee); } float calculate_fee(float w, int d) { float fee; if (d < 100) { fee = BASE_PRICE; } else if (d >= 100 && d < 500) { fee = BASE_PRICE + (d - 100) * RATE; } else { fee = BASE_PRICE + 400 * RATE + (d - 500) *0.5 * 0.8; } if (w > 5) { fee = fee+(w-5)* 1.2; } return w; } 答案: ①scanf("%f", weight);应改为scanf("%f", &weight); ②fee = BASE_PRICE + 400 * RATE + (d - 500) *0.5 * 0.8;应改为fee = BASE_PRICE + 400 * RATE + (d - 500) * 0.8; ③return w;应改为return fee; 2. 以下程序功能:根据骑行时间计算共享单车的骑行费用。前30分钟收费1.5元,30分钟以上每15分钟(不到15分钟的按15分钟计算)收费1元。请将程序补充完整。 #include <stdio.h> main() { int minutes; float cost = 0; printf("请输入骑行时间(分钟): "); scanf("%d", &minutes); if (minutes <= 30) { cost = 1.5; } else { int extra_units = ① ; cost = ② ; } printf("骑行%d分钟,费用为: %.2f元 ", minutes, cost); } 答案:① (minutes - 30 + 14) / 15 ②1.5+extra_units*1 3. 程序功能:从键盘上输入两个正整数x,y,求它们的最大公约数。请将程序补充完整。 例如:如果从键盘上输入24,36, 程序的输出应为:max is : 12. #include <stdio.h> main() { int x,y,t,i; printf("Please enter two numbers:"); scanf("%d%d",&x,&y); if(x<y) {t = x; ① ; y= t;} t = x%y; while(t) { x = y; y=t; t = x%y; } printf("max is :%d ", ② ); } 答案: ①x=y ②y 四、综合应用题(共2小题,每题10分,共20分) 1.编写一个程序,根据用户的体温和行程码状态判断是否可以进入公共场所。 要求: ① 输入体温(浮点数)和行程码状态(0表示安全,1表示有风险) ② 判断规则:体温<37.3且行程码状态为0,可以进入;否则不能进入 ③ 输出相应的提示信息 答案: 参考程序: #include <stdio.h> int main() { float temperature; int travel_code; printf("请输入体温(℃): "); scanf("%f", &temperature); printf("请输入行程码状态(0-安全, 1-有风险): "); scanf("%d", &travel_code); if(temperature < 37.3 && travel_code == 0) { printf("体温正常,行程码安全,可以进入! "); } else { printf("抱歉,不能进入。原因: "); if(temperature >= 37.3) { printf("- 体温异常(%.1f℃≥37.3℃) ", temperature); } if(travel_code != 0) { printf("- 行程码有风险 "); } } } 2. 中国有句俗语叫“三天打鱼两天晒网”。张三从2025年1月1日起开始“三天打鱼两天晒网”,问张三在以后的某一天中是“打鱼”还是“晒网”。 参考程序: #include <stdio.h> int isLeapYear(int year); int daysInMonth(int year, int month); int calculateDays(int year, int month, int day); void checkActivity(int totalDays); main() { int year, month, day; printf("请输入日期(年 月 日,用空格分隔):"); scanf("%d %d %d", &year, &month, &day); // 计算从2025年1月1日到输入日期的天数 int totalDays = calculateDays(year, month, day); // 检查日期是否有效(应为2025年1月1日或之后) if (totalDays < 0) { printf("请输入2025年1月1日或之后的日期! "); return 1; } checkActivity(totalDays); } // 判断是否为闰年 int isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } // 获取某年某月的天数 int daysInMonth(int year, int month) { int days; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 4: case 6: case 9: case 11: days = 30; break; case 2: days = isLeapYear(year) ? 29 : 28; break; default: days = 0; // 无效月份 } return days; } // 计算从2025年1月1日到指定日期的总天数 int calculateDays(int year, int month, int day) { int totalDays = 0; int i; // 检查日期有效性 if (year < 2025) { return -1; // 日期在2025年之前 } if (year == 2025 && month == 1 && day == 1) { return 0; // 正好是2025年1月1日 } // 检查日期是否合法 if (month < 1 || month > 12 || day < 1 || day > daysInMonth(year, month)) { return -1; // 无效日期 } // 计算整年的天数 for (i = 2025; i < year; i++) { totalDays += isLeapYear(i) ? 366 : 365; } // 计算当年的天数(从1月1日到指定日期的前一天) for (i = 1; i < month; i++) { totalDays += daysInMonth(year, i); } // 加上当月的天数(减去1,因为我们是从2025年1月1日开始算的) totalDays += day - 1; return totalDays; } // 根据总天数判断是打鱼还是晒网 void checkActivity(int totalDays) { // 计算在周期中的位置(5天一个周期) int position = totalDays % 5; // 判断:前3天打鱼,后2天晒网 if (position < 3) { printf("这一天是:打鱼 "); } else { printf("这一天是:晒网 "); } printf("从2025年1月1日开始,已经过了 %d 天 ", totalDays); printf("在5天周期中的第 %d 天(0表示第一天) ", position + 1); } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 编写说明:本冲刺卷严格依据山东省软件与应用技术类高考考纲编写,依托《编程语言基础—C语言》(高教版第五版),聚焦高三考生冲刺需求,助力高效提分。内容上深度覆盖考纲掌握、理解层级考点,既系统梳理构建知识框架,又强化应用能力训练;同时结合近五年高考真题,精准把握高频考点、命题趋势与题型特点,确保贴合高考方向。 山东省软件与应用技术类 《C语言程序设计》高教版第五版 高频考点冲刺卷(九)原卷版 时间:60分钟 总分:100分 班级 姓名 学号 成绩 一、单选题(共25小题,每题2分,共50分) 1. 下列关于C语言程序开发过程的描述中,正确的是( ) A. 编写源程序 → 编译 → 连接 → 运行 B. 编写源程序 → 连接 → 编译 → 运行 C. 编译 → 编写源程序 → 连接 → 运行 D. 编写源程序 → 运行 → 编译 → 连接 2. 智能手环监测用户睡眠时,需要存储深度睡眠时长(精确到毫秒),最适合的数据类型是( ) A. int B. float C. double D. char 3. 以下关于常量和变量的描述中,错误的是( ) A. 在程序运行过程中,变量的值可以改变 B. 使用const关键字定义的常量在程序运行期间不能改变 C. #define定义的符号常量有类型检查 D. 常量在定义时必须初始化 4. 以下赋值语句中,正确的是( ) A. x + y = 10; B. 3 = x; C. int x = 10, y = x * 2; D.int x = y = z = 0; 5. 设计一个简单的体温登记程序,要求输入姓名和体温,以下输入语句正确的是( ) A. scanf("%s %f", name, &temperature); B. scanf("%s %d", name, temperature); C. scanf("%c %f", name, &temperature); D. scanf("%s %f", &name, &temperature); 6. 某电商平台对一单商品进行最终金额结算。已知该商品原价为 price 元,平台满减优惠为 discount 元,运费为 shipping 元。此外,该订单满足一项运费减免条件,即:如果商品优惠后的价格不低于 50 元,则免运费,否则需支付运费。 以下哪个选项能够正确且简洁地表示该订单的最终支付金额( ) A. price - discount + shipping B. price - discount - shipping C. (price - discount >= 50) ? (price - discount) : (price - discount + shipping) D. price - (discount + shipping) 7. 判断健康码状态:体温temperature正常(<37.3)且行程码status为0(安全)才能进入,则表达式为( ) A. temperature < 37.3 && status == 0 B. temperature < 37.3 || status == 0 C. temperature < 37.3 && status = 0 D. temperature < 37.3 || status = 0 8. 共享单车计费规则:前30分钟1.5元,之后每15分钟0.5元。设骑行时间t(分钟),费用cost计算代码段正确的是( ) A. if(t <= 30) cost = 1.5; else cost = 1.5 + 0.5 * t / 15; B. if(t <= 30) cost = 1.5; else cost = 1.5 + 0.5 * (t - 30 / 15); C. if(t < 30) cost = 1.5; else cost = 0.5 * ((t - 30) / 15); D. if(t <= 30) cost = 1.5; else cost = 1.5 + 0.5 * ((t - 30) / 15); 9. 根据学生成绩等级计算成绩点:A-4.0, B-3.0, C-2.0, D-1.0, F-0.0,正确的是( ) A. switch(grade) { case 'A': gpa = 4.0; break; case 'B': gpa = 3.0; break; case 'C': gpa = 2.0; break; case 'D': gpa = 1.0; break; default: gpa = 0.0; } B. switch(grade) { case "A": gpa = 4.0; case "B": gpa = 3.0; case "C": gpa = 2.0; case "D": gpa = 1.0; default: gpa = 0.0; } C. switch(grade) { case A: gpa = 4.0; break; case B: gpa = 3.0; break; case C: gpa = 2.0; break; case D: gpa = 1.0; break; default: gpa = 0.0; } D. switch(grade) { case 'A': gpa = 4.0; case 'B': gpa = 3.0; case 'C': gpa = 2.0; case 'D': gpa = 1.0; default: gpa = 0.0; } 10.智能家居系统监测室内温度,当温度超过30度时持续报警,代码正确的是( ) A. while(temperature > 30) { printf("温度过高! "); temperature--; // 假设温度会下降 } B. while(temperature > 30); { printf("温度过高! "); } C. while(temperature > 30) printf("温度过高! "); D. while(temperature < 30) { printf("温度过高! "); } 11.线上考试系统要求至少完成一道题才能交卷,对此编程代码正确的是( ) A. do { printf("请完成至少一道题 "); finished = check_finished(); } while(finished == 0); B. do printf("请完成至少一道题 "); finished = check_finished(); while(finished == 0); C. while(finished == 0) do { printf("请完成至少一道题 "); finished = check_finished(); } D. do { printf("请完成至少一道题 "); finished = check_finished(); } while(finished = 0); 12. 以下程序为统计一周7天的步数总和,代码正确的是( ) A. for(i = 0; i <= 7; i++) { total += steps[i]; } B. for(i = 1; i < 7; i++) { total += steps[i]; } C. for(i = 0; i < 7; i++) { total += steps[i]; } D. for(i = 1; i <= 7; i++) { total -= steps[i]; } 13. 在有序数组中查找某个值,找到后立即退出循环,正确的是( ) A. for(i = 0; i < n; i++) { if(arr[i] == target) continue; } B. for(i = 0; i < n; i++) { if(arr[i] == target) break; } C. for(i = 0; i < n; i++) { if(arr[i] == target) return; } D. for(i = 0; i < n; i++) { if(arr[i] == target) exit(0); } 14. 下面程序功能为统计数组中正数的个数,遇到负数跳过,正确的是( ) A. for(i = 0; i < n; i++) { if(arr[i] <= 0) break; count++; } B. for(i = 0; i < n; i++) { if(arr[i] <= 0) continue; count++; } C. for(i = 0; i < n; i++) { if(arr[i] <= 0) return; count++; } D. for(i = 0; i < n; i++) { if(arr[i] > 0) continue; count++; } 15. 设j为int型变量,则下面for循环语句的执行结果是( )。 for (j = 10; j > 3; j --) {if (j % 3)j--; --j; --j; printf ("%d ", j); } A.6 3 B.7 4 C.6 2 D.7 3 16. 以下关于一维数组的描述中,正确的是( ) A. int arr[]; 是合法的数组声明 B. int arr[5] = {1,2,3,4,5,6}; 是合法的初始化 C. 数组下标从1开始 D. 数组名代表数组的首地址 17.定义一个3行4列的二维数组以下正确的是( ) A. int scores[3][4]; B. int scores[3,4]; C. int scores[4][3]; D. int scores(3)(4); 18. 要存储身份证号码(18位数字加1位校验码),以下定义正确的是( ) A. char id[18]; B. char id[19]; C. char id[20]; D. char id[] = "身份证号码"; 19.对以下程序,正确的说法是( ) #include<stdio.h> sub (char x,char y) {int z; z=x%y; return z; } main() { int g=5,h=3,k; k=sub(g,h); printf("%d ",k); } A. 实参与其对应的形参类型不一致,程序不能运行 B. 被调函数缺少数据类型说明,程序不能运行 C. 主函数中缺少对被调函数的说明语句,程序不能运行 D. 程序中没有错误,可以正常运行 20. 请阅读程序: #include <stdio.h> f(int b[], int n) { int i, r=1; for(i=0; i<=n; i++) r=r*b[i]; return r; } main() {int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf("%d ",x); } 上面程序的输出结果是( ) A. 720 B. 120 C. 24 D. 6 21. 若函数调用时用数组名作为函数参数,以下叙述中,不正确的是( ) A. 实参与其对应的形参共占用同一段存储空间 B. 实参将其地址传递给形参,结果等同于实现了参数之间的双向值传递 C. 实参与其对应的形参分别占用不同的存储空间 D. 在调用函数中必须说明数组的大小,但在被调函数中可以使用不定尺寸数组 22.以下叙述中,不正确的是( ) A. 使用static float a定义的外部变量存放在内存中的静态存储区 B. 使用float b定义的外部变量存放在内存中的动态存储区 C. 使用static float c定义的内部变量存放在内存中的静态存储区 D. 使用float d定义的内部变量存放在内存中的动态存储区 23.以下程序的输出结果是( ) #include <stdio.h> int a,b; void fun() { a=100;b=200;} main() {int a=5,b=7; fun(); printf("%d %d ",a,b); } A. 100200 B. 57 C. 200100 D. 75 24. 设有以下说明语句: struct stu { int a; float b; } stutype; 则下面的叙述不正确的是( )。 A.struct 是结构体类型的关键字 B.struct stu 是用户定义的结构体类型 C.stutype 是用户定义的结构体类型名 D.a和b都是结构体成员名 25. 以下关于指针的描述,正确的是( ) A. 指针变量存储的是变量的值 B. int *p; *p = 10; 是安全的 C. 指针的类型必须与所指变量的类型一致 D. 指针可以指向任意内存地址而不受限制 二、简答题(共3小题,每题5分,共15分) 1. 阅读以下程序,写出运行结果(智能家居温度控制系统): #include <stdio.h> main() { int temperature[] = {25, 26, 28, 30, 29, 27, 26}; int i, count = 0; float sum = 0; for(i = 0; i < 7; i++) { sum += temperature[i]; if(temperature[i] > 28) { printf("第%d天温度过高: %d℃ ", i+1, temperature[i]); count++; } } printf("平均温度: %.1f℃ ", sum/7); printf("超过28℃的天数: %d ", count); } 2. 下列程序执行后的输出结果是( )。 #include<stdio.h> void func1(int i); void func2(int i); char st[]="hello,friend!"; void func1(int i) { printf("%c",st[i]); if(i<3) {i+=2;func2(i);} } void func2(int i) { printf("%c",st[i]); if(i<3) { i+=2;func1(i); } } main() { int i=0; func1(i); printf(" "); } 3. 阅读下面程序,写出运行结果。 #include<stdio.h> int sub (int *a,int n,int k); main() { int x=0; sub(&x,8,1); printf("%d ",x); } sub(int *a,int n,int k) { if(k<=n) sub(a,n/2,2*k); *a+=k; } 三、案例分析题(共3小题,每题5分,共15分) 1. 以下程序功能:根据重量和距离计算快递费用。100公里以内10元,500公里以内每公里加收0.5元,500公里以上每公里加收0.8元。首重5公斤按距离收取快递费用,续重每公斤加收1.2元。请找出程序中的错误并改正。 #include <stdio.h> #define BASE_PRICE 10.0 #define RATE 0.5 float calculate_fee(float weight, int distance); main() { float weight; int distance; float fee; printf("请输入包裹重量(kg): "); scanf("%f", weight); printf("请输入距离(km): "); scanf("%d", &distance); fee = calculate_fee(weight, distance); printf("快递费用: %.2f元 ", fee); } float calculate_fee(float w, int d) { float fee; if (d < 100) { fee = BASE_PRICE; } else if (d >= 100 && d < 500) { fee = BASE_PRICE + (d - 100) * RATE; } else { fee = BASE_PRICE + 400 * RATE + (d - 500) *0.5 * 0.8; } if (w > 5) { fee = fee+(w-5)* 1.2; } return w; } 2. 以下程序功能:根据骑行时间计算共享单车的骑行费用。前30分钟收费1.5元,30分钟以上每15分钟(不到15分钟的按15分钟计算)收费1元。请将程序补充完整。 #include <stdio.h> main() { int minutes; float cost = 0; printf("请输入骑行时间(分钟): "); scanf("%d", &minutes); if (minutes <= 30) { cost = 1.5; } else { int extra_units = ① ; cost = ② ; } printf("骑行%d分钟,费用为: %.2f元 ", minutes, cost); } 3. 程序功能:从键盘上输入两个正整数x,y,求它们的最大公约数。请将程序补充完整。 例如:如果从键盘上输入24,36, 程序的输出应为:max is : 12. #include <stdio.h> main() { int x,y,t,i; printf("Please enter two numbers:"); scanf("%d%d",&x,&y); if(x<y) {t = x; ① ; y= t;} t = x%y; while(t) { x = y; y=t; t = x%y; } printf("max is :%d ", ② ); } 四、综合应用题(共2小题,每题10分,共20分) 1.编写一个程序,根据用户的体温和行程码状态判断是否可以进入公共场所。 要求: ① 输入体温(浮点数)和行程码状态(0表示安全,1表示有风险) ② 判断规则:体温<37.3且行程码状态为0,可以进入;否则不能进入 ③ 输出相应的提示信息 2. 中国有句俗语叫“三天打鱼两天晒网”。张三从2025年1月1日起开始“三天打鱼两天晒网”,问张三在以后的某一天中是“打鱼”还是“晒网”。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

《C语言程序设计》(高教版)山东省(春季高考)软件与应用技术 高频考点冲刺卷(九)
1
《C语言程序设计》(高教版)山东省(春季高考)软件与应用技术 高频考点冲刺卷(九)
2
《C语言程序设计》(高教版)山东省(春季高考)软件与应用技术 高频考点冲刺卷(九)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。