C语言编程练习题绝对经典!
, 马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭
共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、
女人和小孩各有几人, 解方程组
编写程序,采用穷举法求出结果。
, 编写程序,根据以下公式求e的值。要求用两种方法计算:
111111 e,,,,,,,,,,,,,,11) for循环,计算前50项1!2!3!4!5!!n 2)while 循环,直至最后一项的值小于10-4
, 从键盘中输入一个数字(不限位数),用循环语句编程判断并输出这个数字的位数。
, 猴子吃桃子问题。猴子第一天摘下若干个桃,当即只一半,又多吃一个。第二天早上又将剩下
的一半吃掉一半,双多吃一个。以后每天早上都吃了前天剩下的一半零一个,到第10天早上
只剩下最后一个桃。问第一天摘了几个桃。 , 编程打印九九乘法表
, 青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(去掉一个最高分和
一个最低分)。 #include
void sort (int *); void init(int *); int main(void) {
int score[9]; int i,ave; int sum=0; init(score); sort(score); for(i=1;i<9;i++) {
sum=sum+score[i]; }
ave=sum/8;
printf(\去掉一个最高分,去掉一个最低分\\n选手最后得分为:%d\return 0; }
void sort (int *p) { int i,j,t; for(i=0;i<9;i++) for(j=i+1;j<10;j++) if(*(p+i)>*(p+j)) { t=*(p+i);
*(p+i)=*(p+j); *(p+j)=t; } }
void init( int *p) { int i;
for(i=0;i<10;i++)
{printf(\请输入评委所给出的分数:\scanf(\
, 从键盘中输入一个数字(可以包含小数点,其位数在60位以下,求其整数的有效位数,如输入
0123.456,返回值为整数有效位数为3) 1) 输入数据为浮点型,不用数组,不用字符串,只有变量的算术运算实现此功能。
2) 使用数组来进行编程。
#include
double num; int i; double f; int j=0;
printf(\请输入一个数:\scanf(\f=num;
for(i=1;f>10;i=i*10)
{ f=num/i; j++; }
printf(\数的位数为\\n%d\return 0; }
, 使用数组,编写一个十进制正整数转换为任意进制数的转换工具。 (大进制向小进制的转换。(方法是相除去余) 10进制327转八进制: 327/8 , 40 余数为7 40/8 , 5 余数为0
于是八进制数为507(第一位5是最后的商))
, 使用数组,编写一个任意进制正整数转换为十进制的转换工具。(以2,10进制互转为例,其
他请举一反三:
二进制数1101转十进制:
1×2的三次幂,1×2的二次幂,0×2的一次幂,1×2的零次幂,8,4,0,1,13)
, 10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12,2,8,22,16,4,10,6,
14,20。然后按下列规则调整,所有小孩同时把自己的糖果分一半给右边的小孩,糖块数变为
奇数的人,再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块。
, 编写一个函数,用以求x2-5x+4的值,x做为函数的形参,调用此函数,求: y1= 22-5×2+4
Y2=(x+15)2-5(x+15)+4 Y3=(sinx)2-5sinx+4
sinx 可以加载”math.h” 库函数后使用,函数说明为 double sin( double x)
, 编写一个函数,使给定的一个二维数组(N×N)行列互换(N>3)。
, 从键盘中输入一个不超过40个字符的字符串,再输入一个位数,删除对应 位数的字符,然后
输出删除指定字符后的字符串 要求:1) 用puts输出指示信息 2) 用gets接收字符串
, 如果有一个正整数从左、右来读都是一样的,则称为回文式数(简称回数);比如101,32123,
999都是回数。数学中有名的“回数猜想”之迷,至今未解决。
回数猜想: 任取一个数,再把它倒过来,并把这两个数相加,然后把这个和数再倒过来,与原和数相加,重复此过程,一定能获得一个回数。
例: 68 倒过来是 86 68+86= 154 154+541= 605 605+506=1111 (回数)