C语言程序设计习题库 1、 设圆半径r= 1、5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体 积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #i n clud e std i o h ma i n ; s canf _ h_);; Cl=2 大 3、 1 4 *r; S a =3、14*r*r; Sb = 4 大 S a; Va= 4 *3 大 r*r/ 3 ; Vb=S a *h ; prin t f ; 2、 输入一个华氏温度,要求输出摄氏温度。公式为 c=5 / 9 输出要求有文字说明,取位2小数。 # in c 1 ude stdio h main { f loa t F, c; sc a nf ; _____ c=5 大/9; printf ; 3、 有一函数:写一程序,输入x值,输出y值。 #include std i o h main { int x, y ; prin t f ; scan f ; if { /* x l */ y=x; p r intf ; } e 1 se i f ; } e 1 s e in t x, y ; s can f ; if { y= x ; } el s e if o { y=2 夫 x—1; } else { y=3*x-11; } p r i nt f ; } # i n c 1 u de 〃 s t d i o、h ” main int x , y; s can f ; if 。{ y=x; } else i f { y=2 大 x-1; } e Ise o ; } # include 〃stdio、h main in t x, y; scanf ; if { y=x; ) el s e i f ; } scanf ; if = 1 x〈10) { y=2 大 x—1;} e 1 se o { y=3 x- 1 1; } # in c lude s t dio h m a in int x, y; scan f ; if y=x ; e Ise if y=2 *x-l; else o y=3*x — 11 ; p r i ntf ; },y); 4、给定一个不多于5位得正整数,要求:①求它就是几位数 ②按逆序打印出各位数字。 例如原数为32 1,应输出12 3 o # i n elude stdio h) main { long int n um, m=0 ; int i =0; s c an f num); while { i++; /大统计长度大 / m=m*10+ n um%10; num =num/10; p r int f ; pri n tf ; 5、以下程序实现得功能:求三个数得最大值 #inc 1 u de s tdio h main ( int a, b,c,max; o s canf ; oif max= a ; oelse m a x=c; } els e m a x= b ; o e 1 se om a x = c ; pr i nt f ; #i n elude stdio h m a in { in t x, y, z, t = 0 ; o s c a nf ; i f o o { t = z ;z=y;y=t;} printf ; 6、输入两个正整数m与n,求其最大公 数与最小公倍数。 /*枚举法大/ #i n c 1 ude s t d io、h〉 m a in { long m r nr i=l, j,s; s c an f ; f o r { if s =i; i f j =m ; els e j =n ; fo r ; j + + ); print f ; # in c lude main ; i f o temp= b ; o else o temp= a ; f o r o { if k= i ; 0 } printf ; p=a*b/k; p r intf ; /*辗转相除大/ # in c 1 u de ma i n ; k = m n ?m: n ; j = m n ? n: m; d o ; p ri n t f ; /大反复减法大/ #inclu d e s td i o h) main ; k= m n ? m: n; j = m〉n ?n: m; do { p= k-j; if { k=j ; j=p; } else k= p ; }while ; print f ; 7、 输入一行字符,分别统计出其中英文字母、空格、数字与其她字符得个数。 #i n c 1 u dens t d io、h 〃 main ) ! = f n * ) { i f i ++; / /英文字母统计 else if j+ + ; //数字统计 els e if k++; //空格统计 els e 1++; pri n tf ; 8、 求S n=a+a a + a aa+???+aa???a a a 之值,其中a就是一个数字。例如:2 + 2 2+22 2+2 2 2 2+22 2 22 , n 由键盘输入。 # inclu d e s t d io、h main ; for { b = b* 1 0+a; sum = sum+b; pr i n tf ; 9、 打印出所有”水仙花数”,所谓”水仙花数”就是指一个三位数,其各位数字立方与等 于该本身。例如:1 5 3就是一个水仙花数,因为153 = 卜+53+33。 【程序1】 #inc 1 ude { int k; for { m=__ i n i/10%1 0 __ ; o k = i /10 0 ; if o pr i nt f ; 【程序2】 #i n c 1 u d e { a=_n% 1 0_; s+=a*a*a; n /=__ 1 0_ } — — i f print f i); } —— 10、 一个数如果恰好等于它得因子之与,这个数就称为”完数”.例如,6得因子为1、2、3, 而6=1+2+3,因此6就是”完数”。编程序找出1000之内得所有完数,并按下面格式输出其 因子: 6 ts fact o rs a r e 1 2 3 # i n clu d e main { in t a , i, m; for { for i f ) __m +=i__; if p r i n t f ; 11、利用:丸/ 4 = 1-1/3+1/5 —1/7+…、级数求兀得值,直到最后一项得绝对值小于1 0-6 为止。求绝对值得函数为fabs 0. # __ in c lu d e stdio h) ____ # i n clude math h) mai n { int i=l, f lag=l; doub 1 e s um=0 0, s ; do { s=__1、0/ __; sum+=s 大 flag; i + + ; —Hag二 } whi 1 e 〉1 e -6__ ); / ** / pr i ntf ; } — 1 1、有一分数序列:2/1, 3/2, 5/3, 求出这个数列得前2 0项之与。 #in c lude st d io、h #def i n e N 20 main { sum=sum+__ y/ x __; y = ____x+ y ; x = _y-x__; i++; p r i n t f ; 12、 一球从100米高度自由下落,每次落地后返回原高度得一半,再落下。求它在第10次落 地时共经过多少米?第1 0次反弹多高? #in c 1 ud e mai n { h*= 0、5 _; o s =_s+h 大 2_—; printf ; 13、 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下得桃子吃掉一半,又多吃一个.以后每天早上都吃了前一天剩下得一半 零一个.到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子. # i n c lud e s t d i o h # de fine N 1 0 main { in t i= 1 , s um= 1 ; while s um=__ 大 2_; prin t f ; 14、 用迭代法求.求平方根得迭代公式为: 要求前后两次求出得得差得绝对值少于0、000 0 1. # include s t dio h # in c 1 u de 〈math、h main { f lo a t xO, x 1 , a ; s can f ; xl=a/2; do / 2 __ ; } wh i le ; p rint f ; 15、 用牛顿迭代法求方程在1、5附近得根。 # i nclu d e stdi o h ) # inc 1 u d e __ math h) __ #d e f i ne f 2*x * x* x-4 大 x* x+3 * x — 6 main ; x = x — y/ ; } w h i le ) le一6); print f ; 16、 用二分法求方程在之间得根 # i nclude stdio h # include 〈math、h) # d efine f 2x * x*x-4 * x*x+3 * x—6 m a in { doubl e xl = —10, x2 = 10, x, y ; do /2 ; y=f ; if x l=x; else x 2 =x; } while 1 e -6); print f ; 17、以下程序得功能就是:输入一个百分制成绩,输出一个五级制成绩等级。例如输入75 , 输出Co请完成填空 # i n clu d e main { in t score; s canf ; switch ; —__ break___; case 6 : print f ; b r eak; o c as e 7 : printf ; bre a k; oca s e 8 : printf ;b r ea k ; c a se 9 : printf ; br e a k; __ defau 1 t _: p r i n t f ; }— — 18 该程序功能:对x=l,2,、、、,10,求f =x*x—5火x+s n 得最大值. # i ncl u de stdio h # i n clu d e 〈math、h) #d e fine f x* x — 5大x+s in void m a i n { int x; f1o at max; ____max= f __ ; for o __ if ) max= f __ ; p ri n t f ; 19、程序功能:输入整数a与b得值,若a2+b2±于100,则输出a2+b?百位以上得数字, 否则输出两数之与. #inc 1 u de { int a , b, s ; sc a n f ; s=__ a*a+b* b _ if 100) prin t f ; else printf ; 2 0、有1 0 2 0个西瓜,第一天卖一半多两个,以后每天卖剩下得一半多两个,以下程序统 计卖完所需得夭数。 #i n elude stdio h) ma i n { int day,xl,x2; d a y =0; xl = 1020; while 0__ ) { x 2=_ x 1/2 — 2__ ; x 1 =x2; d a y ++) p r i n t f ; 2 1、找出整数得所有因子 #inc 1 ude s t dio h mai n { int i, x ; scanf ; i =1; for { if printf ; i ++; 22、 统计用数字0-9可以组成多少个各位上得数字没有重复得3位偶数. # i n clude stdio h main { i nt n=0, i, j , k ; for for i f for i f n + + ; prin t f ; 23、 用1 00元换成1、2、5元得所有兑换方案. #incl u de main for /5_; if ; 1=1+1; if printf; 24、输出1-100之间满足每位数得乘积大于每位数得与得数 # i n c 1 u de stdi o h ) main { k = 1 ; s=0 ; __ m= n__ ; whil e p r i ntf ; 2 5、从3个红球、5个白球、6个黑球中任意取出8个球,且其中必须有白球,输出所有 可能得方案。 #incl u de s t di o h) ma i n for { k = 8 - i - j ; i f =0_) p r i ntf ; 26、以下程序得功能就是:判断一个四位数就是否满足这样得条件:它得9倍刚好就是它得 反序数.反序数就是指整数各个位上得数字逆序所形成得整数。请完成程序得填空。 #i n cl u de st d i o h) mai n { o i nt i, a, b, c, d, m; ofo r { oa=__ i 0 0b=i/10%10; oc= i /100% 1 0; od=i/lOOO; o om=—_ a *1000+b 大 100+c 大 10 + d_—; if __ b re a k_; 0 0 p r int f ; 27、以下程序完成两整数得交换。 # inc 1 ud e main { i nt a , b; P rintf ; s c a n f ; a=a+b ; __ b=a一b__ ; _—a = a-b_—; printf ; 2 8、以下程序得功能就是判断输入得年份就是否为闰年,若就是则输出-yes ,否则输 出”No〃。 #includ e main { int y ear ; scanf; i f pri n tf ; e Ise pr i ntf; 2 9、以下程序利用冒泡排序法对输入得10个数进行排序。 #incl u de s td i o h #def i ne N 10 vo i d m a i n s c anf ; p r in t f ; for fo r if { t=a [ i ] ; a [i] = a [ i +1]; a [ i +1] =t; p r i n tf ; for p r int f ; p r intf ; 30、用筛法求100之内得素数。筛法素数得思想就是:1、取最小得数2,并声明它就是素数, 同时筛去它及它得倍数。2、取未筛去数中最小得数,并声明它就是素数,同时筛去它及它得 倍数.3、重复步骤2至筛中无数,得到所有得素数. #inclu d e stdio h #de f ine M 100// 范围 # d efine N /2) / / 奇数得个数 void mai n { inti,j,a[N];g a [0 ] = 2;s f o r /大初始数组实现第一步筛选大/ a [ i ] + for /* 第二步筛选 i f for ja if /大倍数时置零筛去大/ a [ j ] = 0 ; p rin t f ; for { /* 显示得到素数大/ if { p r intf ; i f % 1 0== 0 ) /大十个数换行 大 /_a printf ;_a } _a } getc h ;_ ) 3 1、用选择法对10个整数从小到大排序。 #in c 1 ude st d io、h #de f in e N 1 0 main { int a [ N ] , i, j , k, t; f or scanf; fo r { k=—_ i _—; f 0 r i f k=_j_—; i f { t = a [k]; a[k] =a[i] ;a [i] = t; } for p r i n t f ; 32、求一个NXN矩阵主对角线元素、次对角线之与。 #define N 3 #include stdio h m a in { i nt i=0,j=0,a [n] [n] ,sl = 0, s 2 = 0; for for sc a n f ; f or f or s l+=a [ i ] [j]; / / 王对角线 if s2+=a [i] [j] ; //次对角线 p r i n t f ; 33、 巳有一个己排好得数组今输入一个数要求按原来排序得规律将它插入数组中. #defin e N 10 #includ e stdi o h main { in t i, t,a[N]= {l, 7, 8, 17,23, 24, 59, 6 2 , 1 0 1 ); s canf ; for { i f ____a[i]=a[i-1] —_; else bre a k; a [ i + 1 ] = __ t__ ; for pr i n t f ; 34、 将一个数组得值按逆序重新存放,例如,原来顺序为:8,6, 5, 4, lo要求改为:1, 4, 5, 6, 8o # i n c 1 ude # d efine N 1 1 main s c anf ; f or p rintf ; 35、 打印“魔方阵”,所谓魔方阵就是指这样得方阵,它得每一行、每一列与对角线之与均 相等.例如,三阶魔方阵为 8 1 6 3 5 7 4 9 2 要求打印出由1?IP得自然数构成得魔方阵。 # d e f i ne N 3 # i nc 1 u d e stdio h ma i n { int i,j, k, a [N] [n]; /大初始化魔方阵一置为0,作为有无数字得判断大/ for _a f or _a =—_ 0 __; sj=N/2; a [ 0 ] [j] =1; /*存放第一个数字大/ /* 存放 2n*n */M o r { i —//数存放前一数行数减1、列数加1 —_j +=1—; if {//到达右上角得位置 i=i + 2; j ; o } els e { if o i =_n — 1_; //上一数得行数为 0,下一数得行数为n -1 if N-l ). o J =0; //上一数得列 数为nT时,下一数得列数为0 s -} if { //若下一数得位置上已经有数字, //则下一数存到上一个数行数加1得位置 i = %N ; j= %N ; a [i] [j]= __k―; / / 填数 for { //输出魔方阵s printf ; f or pri n tf ;上 pri n tf ; 36、找出一个二位数组中得鞍点,即该位置上得元素在该行上最大,在该列上最小,也可能 没有鞍点。 # include s tdio h # de fine M 5 #define N 4 mai n { in t a [M] [N] , i , j , x , y, k, max, m i n; //x,y 分别就是用来记录鞍 点得位置 int flag=0; / /用于指示就是否存在鞍点 fo r for scanf ; f or if {y = k; __max = a[i] [ k ] _; } min = a [ i ] [y] ; x = i; //先默认第一个数就是最小值 f o r if a [k] [y] ) {x = k; __min=a[k] [y] ; } i f ; f 1 ag=l; if p r intf 不存在鞍点n 〃); 3 7、有个15数按由小到大顺序存放在一个数组中,输入一个数,要求用折半查找法找出该 数组中第几个元素得值。如果该数不在数组中,则打印出”无此数” #i n c 1 ude # define N 15 m a in ; 1 o w=0, high=N—1 ; scanf ; do /2 ; if bre a k ; else if 1 o w=__m i d+ 1__ ; else high=__ mid-1__ ; } while ; if p r intf 用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人所有【成交的100%】。原创力文档是网络服务平台方,若您的权利被侵害,侵权客服QQ:3005833200 电话:19940600175 欢迎举报,上传者QQ群:784321556


1.《c语言程序设计题库 C语言程序设计习题库的答案》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《c语言程序设计题库 C语言程序设计习题库的答案》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/jiaoyu/161213.html