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

2026-06-14
| 2份
| 13页
| 18人阅读
| 0人下载

资源信息

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

内容正文:

《C语言程序设计》 期末复习卷(十) 时间:90分钟 总分:100分 班级 姓名 学号 成绩 一.程序设计题(本大题共10小题,每小题10分,共100分) 1.编写程序对存储在string数组内的所有以字符‘a’开始并以字符‘e’结尾的单词做加密处理。加密规则:若单词长度为偶数个字符,则将组成单词的所有字母循环左移一次;否则循环右移一次。例如:单词able经循环左移一次后变为blea;单词abide经循环右移一次后变为eabid。 数组原数据:she is able to abide her. 加密后数据:she is blea to eabid her. #include <stdio.h> #include <ctype.h> void wordchange(char str[]) { int i,j,k,m; char c; for(i=0;str[i];i++) { for(j=i,k=i;isalpha(str[k]);k++); /*******space*******/ /*******space*******/ i=k; } } int main() { char string[80]="she is able to abide her."; puts(string); wordchange(string); puts(string); return 0; } 2.有一个字符串a为12345678,在第二个位置开始后面插入abcd,最终结果为12abcd345678 #include<stdio.h> #intclude<string.h> int main(){ char src_str[100]="12345678"; char new_str[]="abcd"; int addr=2; /*******space*******/ /*******space*******/ } 3.完成函数功能,接收两个整数x,y,求x^y次方。 #include <stdio.h> #intclude<string.h> float mypow(int x,int y){ /*******space*******/ /*******space*******/ } void main(){ int x,y; scanf("%d%d",&x,&y); printf("x^y次方=%f",mypow(x,y)); } 4.该程序实现的功能是:已知数列1,3,6,10,15,…… ,计算该数列的第n项 #include<stdio.h> #include<math.h> double fun(int n) { double u=0.0; /*******space*******/ /*******space*******/ } void main() { int n=0; double u=0.0; scanf("%d",&n); u=fun(n); printf("该数列的第n项为:%f",u); } 5.程序实现的功能是:输入字符串(不包含空格),删除其中的非数字字符后输出 #include<stdio.h> #include<string.h> void main() { char a[100],b[100]; int l,i,j; gets(a); l=strlen(a); j=0; /*******space*******/ /*******space*******/ b[j]='\0'; printf("去掉数字后的字符串为:"); puts(b); } 6.一个数列的头三个数是0,0,1,第四个数是前三个数之和,以后每个都是前三个数之和,输入一个整数,数列最后一个数刚好大于输入的整数,这个数字在数列的第几项? #include<stdio.h> int main() { int i,j,k,l,m,n; i=j=0; k=1; n=3; /*******space*******/ /*******space*******/ printf("%d ",n); } 7.输入一个小于等于10000的整数n,在[100,n]之间打印出各位数字和为5的所有整数的个数. #include<stdio.h> void main() { int sum,n,i,temp,k=0; scanf("%d",&n); /*******space*******/ /*******space*******/ printf("%d ",k); } 8.一个盒子中放有100个球,其中45个红的,25个白的,30个黑的,输入小于100的整数n,从中任取n个球,问共有多少种不同的颜色搭配。 #include<stdio.h> int main() { int i,j,k,l,n,s=0; scanf("%d",&n); /*******space*******/ /*******space*******/ printf("共有%d种搭配方式 ",s); return 0; } 9.请编写函数 fun,它的功能是:将s所指字符串中除了下标为偶数、同时 ASCII 值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在 t 所指的数组中 示例: 【请输入一个字符串: 】ABCDEFG123456 【筛选后的字符串为: 】246 #include<stdio.h> #include<string.h> void fun(char *s, char *t) { /*******space*******/ /*******space*******/ } int main() { char s[100]; char t[100]; printf("【请输入一个字符串: 】"); scanf("%99s", s); fun(s, t); if (t[0] == '\0') { printf("没有满足条件的字符串 "); } else { printf("【筛选后的字符串为: 】%s ", t); } return 0; } 10.编写函数 fun ,它的功能是:逐个比较p、q所指两个字符串对应位置中的字符,把ASCII 值大或相等的字符依次存放到c 所指数组中,形成一个新的字符串。 示例: 【请输入第一个字符串: 】aBCDeFgH 【请输入第二个字符串: 】ABcd 【生成的新字符串为: 】aBcdeFgH #include<stdio.h> #include<string.h> void fun(char *p, char *q, char *c) { /*******space*******/ /*******space*******/ } int main() { char a[100], b[100], c[100]; printf("【请输入第一个字符串: 】"); scanf("%99s", a); printf("【请输入第二个字符串: 】"); scanf("%99s", b); fun(a, b, c); printf("【生成的新字符串为: 】%s ", c); return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 《C语言程序设计》 期末复习卷(十) 时间:90分钟 总分:100分 班级 姓名 学号 成绩 一.程序设计题(本大题共10小题,每小题10分,共100分) 1.编写程序对存储在string数组内的所有以字符‘a’开始并以字符‘e’结尾的单词做加密处理。加密规则:若单词长度为偶数个字符,则将组成单词的所有字母循环左移一次;否则循环右移一次。例如:单词able经循环左移一次后变为blea;单词abide经循环右移一次后变为eabid。 数组原数据:she is able to abide her. 加密后数据:she is blea to eabid her. #include <stdio.h> #include <ctype.h> void wordchange(char str[]) { int i,j,k,m; char c; for(i=0;str[i];i++) { for(j=i,k=i;isalpha(str[k]);k++); /*******space*******/ if(str[j] == 'a' && str[k-1] == 'e'){ int len = k - j; if(len % 2 == 0){ c = str[j]; for(m=j;m<k-1;m++){ str[m]=str[m+1]; } str[k-1] = c; }else{ c = str[k-1]; for(m = k-1; m > j; m--){ str[m] = str[m-1]; } str[j] = c; } } /*******space*******/ i=k; } } int main() { char string[80]="she is able to abide her."; puts(string); wordchange(string); puts(string); return 0; } 2.有一个字符串a为12345678,在第二个位置开始后面插入abcd,最终结果为12abcd345678 #include <stdio.h> #intclude<string.h> int main(){ char src_str[100]="12345678"; char new_str[]="abcd"; int addr=2; /*******space*******/ int src_len = strlen(src_str); int new_len = strlen(new_str); for(int i = src_len; i >= addr; i--){ src_str[i + new_len] = src_str[i]; } for(int i = 0; i < new_len; i++){ src_str[addr + i] = new_str[i]; } printf("%s ", src_str); /*******space*******/ } 3.完成函数功能,接收两个整数x,y,求x^y次方。 #include <stdio.h> #intclude<string.h> float mypow(int x,int y){ /*******space*******/ float result = 1.0; int abs_y = y > 0 ? y : -y; for(int i = 0; i < abs_y; i++){ result *= x; } if(y < 0){ result = 1.0 / result; } return result; /*******space*******/ } void main(){ int x,y; scanf("%d%d",&x,&y); printf("x^y次方=%f",mypow(x,y)); } 4.该程序实现的功能是:已知数列1,3,6,10,15,…… ,计算该数列的第n项 #include<stdio.h> #include<math.h> double fun(int n) { double u=0.0; /*******space*******/ u = n * (n + 1) / 2.0; return u; /*******space*******/ } void main() { int n=0; double u=0.0; scanf("%d",&n); u=fun(n); printf("该数列的第n项为:%f",u); } 5.程序实现的功能是:输入字符串(不包含空格),删除其中的非数字字符后输出 #include<stdio.h> #include<string.h> void main() { char a[100],b[100]; int l,i,j; gets(a); l=strlen(a); j=0; /*******space*******/ for(i = 0; i < l; i++){ if(a[i] >= '0' && a[i] <= '9'){ b[j++] = a[i]; } } /*******space*******/ b[j]='\0'; printf("去掉数字后的字符串为:"); puts(b); } 6.一个数列的头三个数是0,0,1,第四个数是前三个数之和,以后每个都是前三个数之和,输入一个整数,数列最后一个数刚好大于输入的整数,这个数字在数列的第几项? #include<stdio.h> int main() { int i,j,k,l,m,n; i=j=0; k=1; n=3; /*******space*******/ int target; scanf("%d", &target); while(k <= target){ l = i + j + k; i = j; j = k; k = l; n++; } /*******space*******/ printf("%d ",n); } 7.输入一个小于等于10000的整数n,在[100,n]之间打印出各位数字和为5的所有整数的个数. #include<stdio.h> void main() { int n,i,temp,sum,k=0; scanf("%d",&n); /*******space*******/ for(i=100;i<=n;i++){ int sum=0; int temp=i; while(temp>0){ sum+=temp % 10; temp/=10; } if(sum == 5){ k++; } } /*******space*******/ printf("%d ",k); } 8.一个盒子中放有100个球,其中45个红的,25个白的,30个黑的,输入小于100的整数n,从中任取n个球,问共有多少种不同的颜色搭配。 #include<stdio.h> int main() { int i,j,k,l,n,s=0; scanf("%d",&n); /*******space*******/ for(i = 0; i <= 45; i++){ for(j = 0; j <= 25; j++){ for(k = 0; k <= 30; k++){ if(i + j + k == n) { s++; } } } } /*******space*******/ printf("共有%d种搭配方式 ",s); return 0; } 9.请编写函数 fun,它的功能是:将s所指字符串中除了下标为偶数、同时 ASCII 值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在 t 所指的数组中 示例: 【请输入一个字符串: 】ABCDEFG123456 【筛选后的字符串为: 】246 #include<stdio.h> #include<string.h> void fun(char *s, char *t) { /*******space*******/ int i, j = 0; for(i = 0; s[i] != '\0'; i++){ if(i % 2 == 0 && s[i] % 2 == 0){ t[j++] = s[i]; } } t[j] = '\0'; /*******space*******/ } int main() { char s[100]; char t[100]; printf("【请输入一个字符串: 】"); scanf("%99s", s); fun(s, t); if (t[0] == '\0') { printf("没有满足条件的字符串 "); } else { printf("【筛选后的字符串为: 】%s ", t); } return 0; } 10.编写函数 fun ,它的功能是:逐个比较p、q所指两个字符串对应位置中的字符,把ASCII 值大或相等的字符依次存放到c 所指数组中,形成一个新的字符串。 示例: 【请输入第一个字符串: 】aBCDeFgH 【请输入第二个字符串: 】ABcd 【生成的新字符串为: 】aBcdeFgH #include<stdio.h> #include<string.h> void fun(char *p, char *q, char *c) { /*******space*******/ int i = 0; while(p[i] != '\0' || q[i] != '\0'){ if(p[i] == '\0'){ c[i] = q[i]; } else if(q[i] == '\0'){ c[i] = p[i]; }else{ c[i] = (p[i] >= q[i]) ? p[i] : q[i]; } i++; } c[i] = '\0'; /*******space*******/ } int main() { char a[100], b[100], c[100]; printf("【请输入第一个字符串: 】"); scanf("%99s", a); printf("【请输入第二个字符串: 】"); scanf("%99s", b); fun(a, b, c); printf("【生成的新字符串为: 】%s ", c); return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

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