期末复习卷《C语言程序设计》(上海科学普及出版社)(六)

2026-05-25
| 2份
| 12页
| 40人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 题集-专项训练
知识点 数据类型和简单程序设计,分支结构,循环结构,数组,函数
使用场景 同步教学-期末
学年 2026-2027
地区(省份) 湖北省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 195 KB
发布时间 2026-05-25
更新时间 2026-05-25
作者 源栈
品牌系列 学易金卷·期末模拟卷
审核时间 2026-05-25
下载链接 https://m.zxxk.com/soft/58032548.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

《C语言程序设计》 期末复习卷(六) 时间:90分钟 总分:100分 班级 姓名 学号 成绩 一.程序设计题(本大题共10小题,每小题10分,共100分) 1.编写程序,利用基姆拉尔森公式计算日期为该年的第几天,例如输入年月日(如2026-5-12),输出该日是星期几。基姆拉尔森公式:W=(d+2*m+3*(m+1)/5+ y+y/4-y/100+y/400)%7,注意:当m=1或2时要当做上一年的13、14月进行计算。 #include<stdio.h> int main(){ int y,m,d,w; scanf("%d%d%d",&y,&m,&d); /*******space*******/ if(m == 1 || m == 2) { m += 12; y--; } w = (d + 2*m + 3*(m+1)/5 + y + y/4 - y/100 + y/400) % 7; /*******space*******/ char *week[] = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; printf("%s ", week[w]); return 0; } 2.输入一个奇数n,打印由*组成的菱形。例如:n=5时输出: * * * * * * * * * * * * * #include<stdio.h> int main(){ int n,i,j; scanf("%d",&n); /*******space*******/ for(i = 0; i < n/2 + 1; i++){ for(j = 0; j < n/2 - i; j++){ printf(" "); } for(j = 0; j < 2*i + 1; j++){ printf("* "); } printf(" "); } for(i = n/2 - 1; i >= 0; i--){ for(j = 0; j < n/2 - i; j++){ printf(" "); } for(j = 0; j < 2*i + 1; j++){ printf("* "); } printf(" "); } /*******space*******/ return 0; } 3.编写程序使用埃拉托色尼筛选法输出100以内的所有素数 #include<stdio.h>int main(){ int isPrime[101]; int i, j; /*******space*******/ for(i = 2; i <= 100; i++){ isPrime[i]=1; } for(i = 2; i * i <= 100; i++) { if(isPrime[i]){ for(j = i * i; j <= 100; j += i){ isPrime[j] = 0; } } } for(i = 2; i<=100;i++){ if(isPrime[i]){ printf("%d ", i); } } printf(" "); /*******space*******/ return 0; } 4.编写程序,输入一个正整数n,输出该数的所有因子(不包括1和它本身)。例如输入n=12 → 输出2 3 4 6 #include<stdio.h> int main(){ int n, i; scanf("%d", &n); printf("%d的因子有:", n); /*******space*******/ for(i = 2; i < n; i++){ if(n % i == 0){ printf("%d ", i); } } printf(" "); /*******space*******/ return 0; } 5.编写程序凯撒密码加密,将字符串中的每个大写字母向后移动3位,A→D, B→E, ..., Z→C。其他字符不变。 #include<stdio.h> void caesarEncrypt(char s[]){ int i = 0; /*******space*******/ while(s[i] != '\0'){ if(s[i] >= 'A' && s[i] <= 'Z'){ s[i] = (s[i] - 'A' + 3) % 26 + 'A'; } i++; } /*******space*******/ } int main(){ char s[] = "HELLO WORLD"; caesarEncrypt(s); printf("加密后:%s ", s); return 0; } 6.编写程序,比较两个字符串s1和s2,若相等返回0,s1 > s2返回正数,s1 < s2返回负数。 #include<stdio.h> int strCompare(char s1[], char s2[]){ int i = 0; /*******space*******/ while(s1[i] != '\0' && s2[i] != '\0'){ if(s1[i] != s2[i]){ return s1[i] - s2[i]; } i++; } return s1[i] - s2[i]; /*******space*******/ } int main(){ char s1[] = "abc", s2[] = "abd"; int result = strCompare(s1, s2); printf("比较结果:%d ", result); return 0; } 7.编写程序,利用结构体输入n个学生的姓名和成绩,输出平均分以及最高分学生的信息。 #include<stdio.h> struct student{ char name[20]; int score; }; int main(){ struct student stu[100]; int n, i; int sum = 0, maxScore = 0, maxIndex = 0; /*******space*******/ printf("请输入学生人数:"); scanf("%d", &n); for(i = 0; i < n; i++) { printf("请输入第%d个学生的姓名和成绩:", i+1); scanf("%s%d", stu[i].name, &stu[i].score); sum += stu[i].score; if(stu[i].score > maxScore){ maxScore = stu[i].score; maxIndex = i; } } printf("平均分:%.2f ", (float)sum / n); printf("最高分学生:%s %d ", stu[maxIndex].name, stu[maxIndex].score); /*******space*******/ return 0; } 8.编写程序,在已按升序排列的数组a中查找目标值x,找到则返回下标,否则返回-1。 #include<stdio.h> int binarySearch(int a[], int n, int x){ int left=0,right=n-1,mid; /*******space*******/ while(left <= right){ mid = (left + right) / 2; if(a[mid] == x){ return mid; } else if(a[mid] < x){ left = mid + 1; } else{ right = mid - 1; } } /*******space*******/ return -1; } int main(){ int a[] = {1, 3, 5, 7, 9, 11}; int x = 7; int index = binarySearch(a, 6, x); printf("%d的下标是:%d ", x, index); return 0; } 9.编写程序,输入10个整数,将数组中所有奇数移到数组左边,偶数移到右边。#include<stdio.h> int main(){ int a[10], i, j, temp; for(i = 0; i < 10; i++) scanf("%d", &a[i]); /*******space*******/ i = 0; j = 9; while(i < j){ while(i < j && a[i] % 2 == 1) i++; while(i < j && a[j] % 2 == 0) j--; if(i < j){ temp = a[i]; a[i] = a[j]; a[j] = temp; i++; j--; } } /*******space*******/ for(i = 0; i < 10; i++) printf("%d ", a[i]); return 0; } 10.输入一个字符,判断它是否为元音字母(a,e,i,o,u,不区分大小写) #include<stdio.h> #include<ctype.h> int main(){ char ch; scanf("%c", &ch); ch = tolower(ch); /*******space*******/ if(ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') { printf("%c是元音字母 ", ch); }else{ printf("%c不是元音字母 ", ch); } /*******space*******/ return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 《C语言程序设计》 期末复习卷(六) 时间:90分钟 总分:100分 班级 姓名 学号 成绩 一.程序设计题(本大题共10小题,每小题10分,共100分) 1.编写程序,利用基姆拉尔森公式计算日期为该年的第几天,例如输入年月日(如2026-5-12),输出该日是星期几。基姆拉尔森公式:W=(d+2*m+3*(m+1)/5+ y+y/4-y/100+y/400)%7,注意:当m=1或2时要当做上一年的13、14月进行计算。 #include<stdio.h> int main(){ int y,m,d,w; scanf("%d%d%d",&y,&m,&d); /*******space*******/ /*******space*******/ char *week[] = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; printf("%s ", week[w]); return 0; } 2.输入一个奇数n,打印由*组成的菱形。例如:n=5时输出: * * * * * * * * * * * * * #include<stdio.h> int main(){ Int n,i,j; scanf("%d",&n); /*******space*******/ /*******space*******/ return 0; } 3.编写程序使用埃拉托色尼筛选法输出100以内的所有素数 #include<stdio.h>int main(){ int isPrime[101]; int i, j; /*******space*******/ /*******space*******/ return 0; } 4.编写程序,输入一个正整数n,输出该数的所有因子(不包括1和它本身)。例如输入n=12 → 输出2 3 4 6 #include<stdio.h> int main(){ int n, i; scanf("%d", &n); printf("%d的因子有:", n); /*******space*******/ /*******space*******/ return 0; } 5.编写程序凯撒密码加密,将字符串中的每个大写字母向后移动3位,A→D, B→E, ..., Z→C。其他字符不变。 #include<stdio.h> void caesarEncrypt(char s[]){ int i = 0; /*******space*******/ /*******space*******/ } int main(){ char s[] = "HELLO WORLD"; caesarEncrypt(s); printf("加密后:%s ", s); return 0; } 6.编写程序,比较两个字符串s1和s2,若相等返回0,s1 > s2返回正数,s1 < s2返回负数。 #include<stdio.h> int strCompare(char s1[], char s2[]){ int i = 0; /*******space*******/ /*******space*******/ } int main(){ char s1[] = "abc", s2[] = "abd"; int result = strCompare(s1, s2); printf("比较结果:%d ", result); return 0; } 7.编写程序,利用结构体输入n个学生的姓名和成绩,输出平均分以及最高分学生的信息。 #include<stdio.h> struct student{ char name[20]; int score; }; int main(){ struct student stu[100]; int n, i; int sum = 0, maxScore = 0, maxIndex = 0; /*******space*******/ /*******space*******/ return 0; } 8.编写程序,在已按升序排列的数组a中查找目标值x,找到则返回下标,否则返回-1。 #include<stdio.h> int binarySearch(int a[], int n, int x){ int left=0,right=n-1,mid; /*******space*******/ /*******space*******/ return -1; } int main(){ int a[] = {1, 3, 5, 7, 9, 11}; int x = 7; int index = binarySearch(a, 6, x); printf("%d的下标是:%d ", x, index); return 0; } 9.编写程序,输入10个整数,将数组中所有奇数移到数组左边,偶数移到右边。#include<stdio.h> int main(){ int a[10], i, j, temp; for(i = 0; i < 10; i++) scanf("%d", &a[i]); /*******space*******/ /*******space*******/ for(i = 0; i < 10; i++) printf("%d ", a[i]); return 0; } 10.输入一个字符,判断它是否为元音字母(a,e,i,o,u,不区分大小写) #include<stdio.h> #include<ctype.h> int main(){ char ch; scanf("%c", &ch); ch = tolower(ch); /*******space*******/ /*******space*******/ return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

期末复习卷《C语言程序设计》(上海科学普及出版社)(六)
1
期末复习卷《C语言程序设计》(上海科学普及出版社)(六)
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。