/c_practice

c语言100道经典习题

Primary LanguageC

  1.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少
  

  2.业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,
    低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,
    可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,
    可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
    
    
  3.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
  
  
  4.输入某年某月某日,判断这一天是这一年的第几天?
  
  
  5.输入三个整数x, y, z,请把这三个数由小到大输出
  
  
  6.用* 号输出字母C的图案
  
  
  7.输出9 * 9口诀
  
  
  8.要求输出国际象棋棋盘
  
  
  9.打印楼梯,同时在楼梯上方打印两个笑脸
  
  
  10.典问题:有一对兔子,从出kc生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
    假如兔子都不死,问每个月的兔子总数为多少?
    
    
  11.判断101 - 200之间有多少个素数,并输出所有素数
  
  
  12.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,
  因为153 = 1的三次方+5的三次方+3的三次方
  
  
  13.将一个正整数分解质因数。例如:输入90, 打印出90 = 2 * 3 * 3 * 5
  
  
  14.利用条件运算符的嵌套来完成此题:学习成绩 >= 90分的同学用A表示,60 - 89分之间的用B表示,60分以下的用C表示。
  
  
  15.输入两个正整数m和n,求其最大公约数和最小公倍数
  
  
  16.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
  
  
  17.求s = a + aa + aaa + aaaa + aa...a的值,其中a是一个数字。例如2 + 22 + 222 + 2222 + 22222(此时共有5个数相加),几个数相加有键盘控制。
  
  
  18.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6 = 1+2+3.编程找出1000以内的所有完数。
  
  
  19.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
  
  
  20.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
    以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
    
    
  21.两个乒乓球队进行比赛,各出三人。甲队为a, b, c三人,乙队为x, y, z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。
    a说他不和x比,c说他不和x, z比,请编程序找出
    
    
  22.题目:打印出如下图案(菱形)
  
  
  23.有一分数序列:2 / 1,3 / 2,5 / 3,8 / 5,13 / 8,21 / 13...求出这个数列的前20项之和。
  
  
  24.求1 + 2!+ 3!+ ... + 20!的和
  
  
  25.利用递归方法求5!
  
  
  26.利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
  
  
  27.用递归完成最大公约数
  
  
  28.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。
    问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
    
    
  29.用递归求一个数组的最大值;
  
  
  30.一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字
  
  
  31.一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同
  
  
  32.输入一个字母判断是星期几,如首字符相同,判断第二个字母
  
  
  33.求一个3 * 3矩阵对角线元素之和
  
  
  34.打印出杨辉三角形(要求打印出10行如下图)
  
  
  35.输入3个数a, b, c,按大小顺序输出 利用指针方法
  
  
  36.输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
  
  
  37.二进制与十进制相互转换
  
  38.八进制与十进制相互转换
  
  39.八进制与二进制相互转
  
  40.使用结构体(struct)存储学生信息。
  
  41.十六进制转十进制
  
  42.给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
  
  43.利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC
  
  44.折半查找
  
  45.猜数字游戏
  
  46.递归和非递归分别实现求第n个斐波那契数。
  
  47.编写一个函数实现n^ k,使用递归实现
  
  48.写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1 + 7 + 2 + 9,它的和是19
  
  49.编写一个函数reverse_string(char* string)(递归实现) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中 的字符串操作函数
  
  50.递归和非递归分别实现strlen
  
  51.递归和非递归分别实现求n的阶乘
  
  52.递归方式实现打印一个整数的每一位
  
  53.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出9 * 9口诀表,输入12,输出12 * 12的乘法口诀表。
  
  54.汉诺塔(递归)
  
  55.国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,
    百钱买百鸡,问翁、母、雏各几何?
    
  56.如果一个渔夫从 2011 年 1 月 1 日开始每三天打一次渔,两天晒一次网,编程实现当输入 2011 1 月 1 日以后的任意一天,
    输出该渔夫是在打渔还是在晒网。
    
  57.创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。
    要求:自己设计函数的参数,返回值 
    
  58.实现strlen 
  
  59.实现strcmp 
  
  60.实现strcpy 
  
  61.实现strcat
  
  62.实现strchr() 
  
  63.实现strstr() 
  
  64.可变数组
  
  65.三字棋
  
  66.扫雷 
  
  67.快速排序 
  
  68.去重排序 
  
  69.二进制数中1的个数 
  
  70.获取二进制的偶数位和奇数位
  
  71.整数m与n二进制中有多少个bit位不同
  
  72.确定排名 
  
  73.谁是凶手
  
  74.翻转
  
  32位二进制
  
  75.不用(a+b)/2;求平均值 
  
  76.不是成对出现
  
  77.student a am i转换i am a student
  
  78.高精度加法
  
  79.杨氏矩阵
  
  80.使数组中奇数在偶数前 
  
  81.大小端的判断
  
  82.左旋字符串中的k个字符 
  
  83(69,70,74,75,76)优化 
  
  84.数字火柴 
  
  
  85.单链表练习
  
  86.将字符串中空格替换为%20 
  
  87.罗马数字 
  
  
  88.最长前缀
  
  89.删除数组中重复项
  
  90.移除元素 
  
  91.给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
    你可以假设数组中无重复元素。
    
  92.最大子序和 
  
  93.删除数组中>x且<y的元素,要求空间复杂度为O(1); 
  
  
  94.pow(x,y)实现 
  
  95.数组加一 
  
  96.线性表顺序存储
  
  97.带头节点的单链表
  
  98.一元多项式相加
  
  99.两个有序数组合并 
  
  100.oj两个数相加(仅实现函数)