C语言习题课--12级期末考试题专讲.ppt

上传人:本田雅阁 文档编号:3479394 上传时间:2019-09-01 格式:PPT 页数:29 大小:910.52KB
返回 下载 相关 举报
C语言习题课--12级期末考试题专讲.ppt_第1页
第1页 / 共29页
C语言习题课--12级期末考试题专讲.ppt_第2页
第2页 / 共29页
C语言习题课--12级期末考试题专讲.ppt_第3页
第3页 / 共29页
C语言习题课--12级期末考试题专讲.ppt_第4页
第4页 / 共29页
C语言习题课--12级期末考试题专讲.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《C语言习题课--12级期末考试题专讲.ppt》由会员分享,可在线阅读,更多相关《C语言习题课--12级期末考试题专讲.ppt(29页珍藏版)》请在三一文库上搜索。

1、C语言12级期末考题讲解,2019/9/1,2019/9/1,1,http:/ 某学校植树节开展植树活动,已知树苗有m株,参加植树的同学有n人(且mn),请问每位同学平均可以植树几株?还有几株剩余? Input 输入两个整数m和n,分别表示树苗的数量和学生的人数(mn) Output 输出每位同学平均植树的数量及剩余的树苗数量。 Sample Input 163 32 Sample Output 5 3,2019/9/1,3,1植树问题:code,#include main() int m,n; scanf(“%d“, ,m/b:求商 m%n:求余数,2019/9/1,4,2工资问题,Desc

2、ription 某工厂规定一个工人正常工作时间为每个月160小时。若一个工人本月工作时间不超过160小时,则每小时工资为20元。若本月工作时间超出160小时,超出部分可算作加班时间,加班时间每小时30元。输入该工人当月的工作时间,请计算并输出该工人当月的工资。. Input 输入一个正整数n,表示该工人当月工作n个小时。 Output 输出一个整数,单独占一行,表示该工人当月的工资。 Sample Input 170 Sample Output 3500,2019/9/1,5,2工资问题code,#include main() int n; scanf(“%d“, ,2019/9/1,6,3回

3、文数,Description “回文数”是一个正读和反读都一样的数,编程判断一个5位数n是否是一个回文数。 Input 输入一个整数n,10000=n=99999 Output 判断n是否是一个回文数,如果是,输出yes,否则输出no Sample Input 15751 Sample Output yes,2019/9/1,7,3回文数:code,#include main() int n; scanf(“%d“, ,2019/9/1,8,4分数数列求和,Description 输入一个正整数,计算1 - 1/4 + 1/7 - 1/10 + 1/13的前n项之和,输出时保留2位小数。 In

4、put 输入正整数n,表示项数。 Output 输出前n项之和,保留2位小数。 Sample Input 3 Sample Output 0.89,2019/9/1,9,4分数数列求和:code,#include #include #include main() int i,n; double number=1.0; scanf(“%d“, ,2019/9/1,10,5画箭,Description 在冷兵器时代,弓箭是最可怕的致命武器。弓由弹性的弓臂和有韧性的弓弦构成;箭包括箭头、箭杆和箭羽。现在,我们想要用字符串表示箭,箭羽用+表示,箭杆的长度用减号的个数表示,比如”+-”,这是一个长度为3

5、,向右射的箭。”-+”,这是一个长度为2,向左射的箭。 Input 输入一个非零整数n,-100=n=100,正数表示向右射的箭,负数表述向左 Output 按描述输出箭的形状 Sample Input -2 Sample Output -+,2019/9/1,11,5画箭code,int i,n; scanf(“%d“, ,2019/9/1,12,6各位数字和,Description 从键盘任意输入一个整数n,编程计算n的每一位数字相加之和(忽略整数前的正负号)。例如,输入n为-1234,则有1+2+3+4=10,输出10。 要求定义并使用函数DigitSum()求n的各位数字和,其余功能在

6、main()函数中实现。 int DigitSum(int n) /函数返回n的各位数字之和 Input 输入一个int范围内的正整数n。 Output 输出一个整数,为n的各位数字之和。 Sample Input 2345111 Sample Output 17,2019/9/1,13,6各位数字和:code,#include #include #include main() int number=0,n; scanf(“%d“, ,将此处代码提取出来,按题目要求封装成函数DigitSum,2019/9/1,14,7最勤奋的学生,Description 鉴于晚自习迟到早退现象比较严重,计算机

7、学院出台一个鼓励政策,记下每位同学到达和离开自习室的时间,然后根据上晚自习的时间的长短评选出每个班当天最勤奋的学生,第二天张榜表扬。现有计科1班某天晚自习的签到记录,请选出计科1班该天最勤奋的学生。 Input 第一行输入n。表示一共有n个记录(n = 100 )。接下来n行,每行三个数据,分别是姓名,到达时间和离开时间(姓名长度不超过20)。姓名不含空格,且不会有相同姓名出现。 Output 自习时间最长的姓名。 Sample Input 3 Jim 6:22 9:22 Lucy 8:00 9:45 Kate 6:45 9:30 Sample Output Jim,2019/9/1,15,7

8、最勤奋的学生:code,#define N 100 typedef struct stu char name20; int startH; int startM; int endH; int endM; int priority; STU;,2019/9/1,16,7最勤奋的学生:code,int i,n,temp=0,stunumber=0; /temp临时变量,记录学生自习的最长时间(分钟为单位) stunumber记录最长自习时间的学生编号 STU sN; scanf(“%d“,2019/9/1,17,8多种进制数的排序,Description 有n个数字串,这n个数字串的进制可能不同,

9、每个数字串的进制由数字k指定,k=2且k=10, 如,k=2,则数字串1101表示一个二进制数,转化为10进制数为13将这n个数转化为十进制,然后按从小到大的顺序输出。 Input 首先输入整数n(1=n=10),然后是n行,每行包含一个整数k和一个数字串,用空格隔开,该数字串表示一个k进制数。所有输入均为非负数。输入的所有整数均在int范围内。 Output 按从小到大的顺序输出这n个数对应的十进制数。,2019/9/1,18,多种进制数的排序,Sample Input 4 2 1101 3 22121 8 276 10 134 Sample Output 13 134 190 232 Hi

10、nt 提示:将这四个数转化为10进制数分别是:13 232 190 134,故排序后为:13 134 190 232,2019/9/1,19,8多种进制数的排序:code,#include #include typedef struct system /进制 int basenumber;/基数 int digit;/数字 SYS; int change(int bnumber,int digit); int powint(int bnumber,int digit); void bubble(int a,int n);,2019/9/1,20,8多种进制数的排序:code,int main(

11、) int i,n,a10; SYS s10; scanf(“%d“, ,2019/9/1,21,8多种进制数的排序:code,int change(int bnumber,int digit)/转换函数 int dec=0; int i=0; while(digit0) dec+=(digit%10)*powint(bnumber,i); digit/=10; i+; return dec; ,Math中自带的pow()函数,返回值为double型,2019/9/1,22,8多种进制数的排序:code,int powint(int bnumber,int n) int j,temp=1; f

12、or(j=0;jn;j+) temp*=bnumber; return temp; ,2019/9/1,23,void bubble(int a,int n) int i,j,temp=0; for(i=0;iaj+1) temp = aj; aj = aj+1; aj+1 = temp; for(i=0;in-1;i+) printf(“%d “,ai); printf(“%d“,an-1); ,8多种进制数的排序:code,分两次打印输出。最后一个数后面没有空格,2019/9/1,24,8多种进制数的排序:code,2019/9/1,25,补充:矩阵边界和(指针专题),题目描述 给定一个m

13、行n列的二维矩阵,求其四周边元素和。1=m、n=100000,可能是1行100000列,也可能是10000行50列,但保证矩阵元素不多于500000。你可能不能预定义数组的大小了,你要学会使用动态内存分配哦。你可以动态申请m*n个内存单元,然后用一维数组来存储二维数组,二维数组元素aij对应一维数组ai*n+j,i、j均从0开始。 输入 输入第一行是m和n,然后是一个m行n列的矩阵。 输出 输出一个整数,表示矩阵所有边界元素的和。 样例输入 3 4 1 2 3 4 5 6 7 8 9 5 4 6 样例输出 47,2019/9/1,26,code,#include #include main()

14、 int m,n; int i,j; int *p=NULL; int sum=0; scanf(“%d %d“, ,2019/9/1,27,for(i=0;im;i+) for(j=0;jn;j+) if(i=0|j=0|i=m-1|j=n-1) sum+= pi*n+j; printf(“%d“,sum); free(p);,1174: 矩阵转置(指针专题),题目描述 给定一个m行n列的二维矩阵,输出其转置矩阵。1=m、n=100000,可能是1行100000列,也可能是10000行50列。你可能不能预定义数组的大小了,你要学会使用动态内存分配哦。 输入 输入第一行是m和n,然后是一个m行n列的矩阵。 输出 输出转置后的矩阵,2019/9/1,28,样例输入 3 4 1 2 3 4 5 6 7 8 9 5 4 6 样例输出 1 5 9 2 6 5 3 7 4 4 8 6,code,for(j=0;jn;j+)/列 for(i=0;im;i+)/行 printf(“%d “,pi*n+j); printf(“n“); ,2019/9/1,29,每列最后一个也有一个空格,想想怎么解决 ?,if(i=m-1) printf(“%d”,pi*n+j; else printf(“%d “,pi*n+j);,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1