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

2026-06-14
| 2份
| 12页
| 11人阅读
| 0人下载

资源信息

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

内容正文:

《C语言程序设计》 期末复习卷(七) 时间:90分钟 总分:100分 班级 姓名 学号 成绩 一.程序设计题(本大题共10小题,每小题10分,共100分) 1.给定一个整数数组nums和一个整数目标值target,请找出该数组中和为目标值target的两个整数,并返回他们在该数组中的下标 #include<stdio.h> void twoSum(int *nums, int numsSize, int target, int *result) { /*******space*******/ /*******space*******/ } int main(){ int nums[]={2,7,11,15}; int target=9; int result[2]; int size = sizeof(nums) / sizeof(nums[0]); twoSum(nums, size, target, result); printf("[%d, %d] ", result[0], result[1]); return 0; } 2.编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串"" #include<stdio.h> #include<string.h> char* longestCommonPrefix(char** strs, int strsSize){ /*******space*******/ /*******space*******/ } int main(){ char* strs1[] = {"flower", "flow", "flight"}; int size1 = 3; printf("最长公共前缀: \"%s\" ",longestCommonPrefix(strs1, size1)); char* strs2[] = {"dog", "racecar", "car"}; int size2 = 3; printf("最长公共前缀: \"%s\" ", longestCommonPrefix(strs2, size2)); return 0; } 3.编写程序输入一个秒数,将其转换为HH:MM:SS形式的格式并输出 #include<stdio.h> int main() { int sec,h,m,s; scanf("%d",&sec); /*******space*******/ /*******space*******/ printf("%02d:%02d:%02d ", h, m, s); return 0; } 4.给定一个整数数组a,向其中输入20个整数,判断找出出现次数大于3次的元素 #include<stdio.h> int main(){ int a[20],n,i,candidate,count = 0; scanf("%d", &n); for(i=0;i<n;i++) scanf("%d", &a[i]); /*******space*******/ /*******space*******/ printf("%d ", candidate); return 0; } 5.输入一串字符串,该字符串中包含()、[]、{}等字符,判断字符串中的括号()、[]、{}是否匹配,并输出结果 #include <stdio.h> int main(){ char s[200], stack[200]; int top = -1,i; gets(s); /*******space*******/ /*******space*******/ if (top == -1) printf("YES "); else printf("NO "); return 0; } 6.输入一串字符串,删除字符串中重复出现的字符(只保留第一次出现的字符),例如"abcaabcd" → "abcd" #include<stdio.h> #include<string.h> void remove_duplicates(char s[]) { /*******space*******/ /*******space*******/ } int main(){ char s[100]; gets(s); remove_duplicates(s); puts(s); return 0; } 7.输入一个十进制正整数,将其转换成二进制字符串并输出 #include<stdio.h> void dec2bin(int n, char bin[]){ /*******space*******/ /*******space*******/ } int main(){ int n; char bin[100]; scanf("%d",&n); dec2bin(n,bin); puts(bin); return 0; } 8.输入两个升序排列的数组,要求输出它们的交集(不重复) #include<stdio.h> int main(){ int a[5], b[5],n,m,i=0,j=0; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); scanf("%d",&m); for(i=0;i<m;i++) scanf("%d", &b[i]); i = 0; j = 0; /*******space*******/ /*******space*******/ return 0; } 9.输入n个整数,判断它们是否能构成等差数列。能则输出"YES",否则输出 "NO" #include<stdio.h> int main(){ int n,a[100],i,diff; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &a[i]); /*******space*******/ /*******space*******/ return 0; } 10.输入一个字符串,将字符串中每个单词的字母顺序反转,单词之间保持原顺序 #include<stdio.h> #include<string.h> void reverse_words(char s[]) { /*******space*******/ /*******space*******/ } int main(){ char s[100] = "hello world"; reverse_words(s); puts(s); return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 《C语言程序设计》 期末复习卷(七) 时间:90分钟 总分:100分 班级 姓名 学号 成绩 一.程序设计题(本大题共10小题,每小题10分,共100分) 1.给定一个整数数组nums和一个整数目标值target,请找出该数组中和为目标值target的两个整数,并返回他们在该数组中的下标 #include<stdio.h> void twoSum(int *nums, int numsSize, int target, int *result) { /*******space*******/ for(int i = 0; i < numsSize - 1; i++){ for(int j = i + 1; j < numsSize; j++){ if(nums[i] + nums[j] == target){ result[0] = i; result[1] = j; return; } } } /*******space*******/ } int main(){ int nums[]={2,7,11,15}; int target=9; int result[2]; int size = sizeof(nums) / sizeof(nums[0]); twoSum(nums, size, target, result); printf("[%d, %d] ", result[0], result[1]); return 0; } 2.编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串"" #include<stdio.h> #include<string.h> char* longestCommonPrefix(char** strs, int strsSize){ /*******space*******/ if(strsSize == 0) return ""; static char result[1000]; int i, j; for(j = 0; strs[0][j] != '\0'; j++){ char current = strs[0][j]; for(i = 1; i < strsSize; i++){ if(strs[i][j] == '\0' || strs[i][j] != current){ result[j] = '\0'; return result; } } result[j] = current; } result[j] = '\0'; return result; /*******space*******/ } int main(){ char* strs1[] = {"flower", "flow", "flight"}; int size1 = 3; printf("最长公共前缀: \"%s\" ",longestCommonPrefix(strs1, size1)); char* strs2[] = {"dog", "racecar", "car"}; int size2 = 3; printf("最长公共前缀: \"%s\" ", longestCommonPrefix(strs2, size2)); return 0; } 3.编写程序输入一个秒数,将其转换为HH:MM:SS形式的格式并输出 #include<stdio.h> int main() { int sec,h,m,s; scanf("%d",&sec); /*******space*******/ h = sec / 3600; m = (sec % 3600) / 60; s = sec % 60; /*******space*******/ printf("%02d:%02d:%02d ", h, m, s); return 0; } 4.给定一个整数数组a,向其中输入20个整数,判断找出出现次数大于3次的元素 #include<stdio.h> int main(){ int a[20],n,i,candidate,count = 0; scanf("%d", &n); for(i=0;i<n;i++) scanf("%d", &a[i]); /*******space*******/ for(i = 0; i < n; i++){ int freq = 0; for(int j = 0; j < n; j++){ if(a[j] == a[i]) freq++; } if(freq > 3){ candidate = a[i]; count++; break; } } /*******space*******/ printf("%d ", candidate); return 0; } 5.输入一串字符串,该字符串中包含()、[]、{}等字符,判断字符串中的括号()、[]、{}是否匹配,并输出结果 #include <stdio.h> int main(){ char s[200], stack[200]; int top = -1,i; gets(s); /*******space*******/ for(i = 0; s[i] != '\0'; i++){ if(s[i] == '(' || s[i] == '[' || s[i] == '{'){ stack[++top] = s[i]; } else if(s[i] == ')'){ if(top >= 0 && stack[top] == '(') top--; else{ top = 0; break; } } else if(s[i] == ']'){ if(top >= 0 && stack[top] == '[') top--; else { top = 0; break; } } else if(s[i] == '}') { if(top >= 0 && stack[top] == '{') top--; else { top = 0; break; } } } /*******space*******/ if (top == -1) printf("YES "); else printf("NO "); return 0; } 6.输入一串字符串,删除字符串中重复出现的字符(只保留第一次出现的字符),例如"abcaabcd" → "abcd" #include<stdio.h> #include<string.h> void remove_duplicates(char s[]) { /*******space*******/ int len = strlen(s); if(len == 0) return; int index = 1; for(int i = 1; i<len;i++){ int j; for(j = 0;j<index;j++){ if(s[i] == s[j]) break; } if(j == index){ s[index++] = s[i]; } } s[index] = '\0'; /*******space*******/ } int main(){ char s[100]; gets(s); remove_duplicates(s); puts(s); return 0; } 7.输入一个十进制正整数,将其转换成二进制字符串并输出 #include<stdio.h> void dec2bin(int n, char bin[]){ /*******space*******/ if(n == 0){ bin[0] = '0'; bin[1] = '\0'; return; } int index = 0; char temp[100]; while(n > 0){ temp[index++] = (n % 2) + '0'; n /= 2; } for(int i = 0; i < index; i++) { bin[i] = temp[index - 1 - i]; } bin[index] = '\0'; /*******space*******/ } int main(){ int n; char bin[100]; scanf("%d",&n); dec2bin(n,bin); puts(bin); return 0; } 8.输入两个升序排列的数组,要求输出它们的交集(不重复) #include<stdio.h> int main(){ int a[5], b[5],n,m,i=0,j=0; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); scanf("%d",&m); for(i=0;i<m;i++) scanf("%d", &b[i]); i = 0; j = 0; /*******space*******/ int first = 1; while(i < n && j < m){ if(a[i] < b[j]) i++; else if(a[i] > b[j]) j++; else{ if(first){ printf("%d", a[i]); first = 0; }else{ printf(" %d", a[i]); } i++;j++; while(i<n&& a[i]==a[i-1]) i++; while(j<m&&b[j]==b[j-1]) j++; } } printf(" "); /*******space*******/ return 0; } 9.输入n个整数,判断它们是否能构成等差数列。能则输出"YES",否则输出 "NO" #include<stdio.h> int main(){ int n,a[100],i,diff; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &a[i]); /*******space*******/ if(n <= 2){ printf("YES "); return 0; } diff = a[1] - a[0]; for(i=2;i<n;i++){ if(a[i]-a[i-1]!=diff){ printf("NO "); return 0; } } printf("YES "); /*******space*******/ return 0; } 10.输入一个字符串,将字符串中每个单词的字母顺序反转,单词之间保持原顺序 #include<stdio.h> #include<string.h> void reverse_words(char s[]) { /*******space*******/ int len = strlen(s); int start = 0; for(int i = 0; i <= len; i++){ if(s[i]==' '||s[i]=='\0'){ int end=i-1; while(start < end){ char temp = s[start]; s[start] = s[end]; s[end] = temp; start++; end--; } start = i + 1; } } /*******space*******/ } int main(){ char s[100] = "hello world"; reverse_words(s); puts(s); return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

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