1、c语言经典习题与解答本学期程序设计基础课程实行上机考核,现将考核有关事项通知如下:(1)考核时间:本学期最后一次上机时间为机试。(2)考核内容:主要是算法设计与实现。考题来自本学期布置的作业、例题及一些补充的题目。(3)考试形式:机试前进入机房时,每人随机抽取一道题(同一个组的同学保证不抽到同一题),然后上机编程,调试通过后报告监考人员审核,审核通过后将源程序拷贝到监考人员U盘上,然后可以离开机房。源程序文件明必须是“学号姓名.cpp”,如“2012216827王梓丞.cpp”。(4)考试要求:机试时考试规则同课堂考试一致,不允许带书、纸张等。不能携带任何可用计算机处理的软件或数据(不允许任何
2、私人携带的U盘、磁盘或计算器) ,不能携带任何类型的通讯工具,包括无线电接收器、移动电话。(5)考试成绩:本次机试成绩将在程序设计基础课程成绩中占25%的比重。(6)其它有关事项由主考教师和监考人员负责处理。附:考试题集1.学校曾经组织一次“程序设计大奖赛”,规定本学期序设计”课程的成绩可以因为在大奖赛上获奖而加5分,总分不超过100分。编程序“程,输入某同学的考试成绩,回答是否在竞赛中获奖,计算并输出该某同学的程序设计课成绩 。#includestdio.hint mark;char m;void main()printf(请输入卷面成绩:,mark);scanf(%d,&mark);get
3、char();printf(请输入是否获奖,是y,否n:);m=getchar(); if(m=y) mark=mark+5; if(mark100) mark=100;printf(你的最后成绩:%dn,mark);2.编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。(提示:对2月要考虑是否闰年,闰年年份要么能被4整除且不能被100整除,要么能被400整除,除此之外都不是闰年)。#includestdio.hint year,month;int days(int year,int month)int k;if(year%4=0)&(year%100!=0)|(year%400
4、=0) if(month=2) k=1; if(month=4|month=6|month=9|month=11) k=2; if(month=1|month=3|month=5|month=7|month=8|month=10|month=12) k=3;else if(month=2) k=4; if(month=4|month=6|month=9|month=11) k=5; if(month=1|month=3|month=5|month=7|month=8|month=10|month=12) k=6;switch(k) case 1:printf(29daysn);break; c
5、ase 2:printf(30daysn);break; case 3:printf(31daysn);break; case 4:printf(28daysn);break; case 5:printf(30daysn);break; case 6:printf(31daysn);break;return 0;void main()printf(please input the year and month:,year,month);scanf(%d%d,&year,&month);days(year,month);3.求一元二次方程ax2+bx+c=0的根。(要考虑a、b、c三个系数不同的
6、取值)#include #include void main() float a,b,c,delta; printf(input the three coefficients of the equation(A,B,C): ); scanf(%f%f%f,&a,&b,&c); if(a!=0) delta=b*b-4*a*c; if(delta0) printf(x1=%f ,x2=%fn,(-b+sqrt(delta)/(2*a),(-b-sqrt(delta)/(2*a); else if(delta=0) printf(x1=x2=%fn,-b/(2*a); else printf(x1
7、=%f+%fi , x2=%f-%fin,-b/(2*a),sqrt(-delta)/(2*a),-b/(2*a),sqrt(-delta)/(2*a) ); else if(b!=0) printf(x=%fn,-c/b); else if(c=0) printf(0=0!n); else printf(%f=0n,c); getchar();getchar();4.学校曾经组织一次“程序设计大奖赛”,规定本学期“程序设计”课程的成绩可以根据大奖赛的成绩适度加分。加分规则是:参赛者加5分,三等奖加15分,二等奖加20分,一等奖加30分,总分不超过100分。编程序,输入某同学的考试成绩,回答在
8、竞赛中获奖等级,计算并输出该某同学的程序设计课成绩 。#include int win;int mark;void main(void) printf(输入你的考试成绩:); scanf(%d,&mark); printf(请选择你参加程序设计大奖赛情况n); printf(0:未参赛,1:参赛,2:三等奖,3:二等奖,4:一等奖):); scanf(%d,&win); switch ( win ) case 0 :break ; case 1 :mark=mark+5;break ; case 2 :mark=mark+15;break ; case 3 :mark=mark+20;brea
9、k ; case 4 :mark=mark+30;break ; if ( mark100 ) mark = 100 ; printf(你的最后成绩是:%dn,mark); getchar();getchar();5.高速公路每公里的收费标准按不同种类汽车如下: 小汽车( car ) 0.50 元 卡车( truck ) 1.00 元 大客车( bus ) 1.50 元 编程序,为某高速公路收费站计算各种车辆的收费额。#include stdio.henum tsort car , truck , bus sort ; int i ; float mileage, price ; void m
10、ain ( ) printf ( please choose ( 0.car 1.truck 2.bus ): ) ; scanf (%d, & i ) ; switch ( i ) case 0 : sort = car ; break ; case 1 : sort = truck ; break ; case 2 : sort = bus; printf ( please input mileage : ) ; scanf ( %f,&mileage ) ; switch ( sort ) case car : price = 0.50 ; break ; case truck : pr
11、ice = 1.00 ; break ; case bus : price = 1.50; printf( cost= %.2fn, price*mileage ); getchar();getchar(); 6.设计一个模拟单步计算器的程序,设该计算器只能作加、减、乘、除运算。用户输入形如 m#n的算式,其中m、n为运算数,#为运算符。(需考虑运算符不合法,及除数为0的情况)#include stdio.hvoid main() float a,b; char w; printf(pleace input e#e:); scanf(%f,&a); scanf(%c,&w); scanf(%f
12、,&b); switch(w) case +: a=a+b; break; case -: a=a-b; break; case *: a=a*b; break; case /: a=a/b; printf(%.2f n,a); getchar();getchar();7.编写程序,输入一个4位自然数n,判断n是否是降序数。降序数是指对于n=d1d2dk有: d1d2dk#include stdio.hvoid main() int number,a,b,c,d; printf(please input a number:,number); scanf(%d,&number); a=numbe
13、r/1000; b=(number/100)%10; c=(number%100)/10; d=number%10; if(a=b)&(b=c)&(c=d) printf(这个数是降序数); else printf(这个数不是降序数); getchar();getchar();8.编写程序,输入一个5位自然数n,判断n是否对称数。对称数是指正序和反序读都相等的整数,如96769为对称数。#includestdio.hbool judge(int number) int i,j; j=0; while(numberj+1!=0) j+; i=0; while(ij) if(numberi!=nu
14、mberj) return false; i+;j-; return true;main()int i,number5;bool flag;printf(please a number:);for(i=0;i=4;i+) scanf(%d,&numberi);flag=judge(number);if(flag=true) printf(y);else printf(n);getchar();getchar();9.编写程序,判断给定的3位数是否为Armstrong数。Armstrong数是指其值等于它每位数字立方和的数,如153就是一个Armstrong数。#includestdio.h#includemath.hint number,a,b,c;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1