例题21:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少

#include <stdio.h>int main(void)
{int i;int x = 1;for(i=9 ; i>0 ; i--){x = (x + 1) * 2;}printf("第一天摘了%d个桃子\n", x);return 0;
}

例题22:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定
比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出
三队赛手的名单

#include <stdio.h>int main(void)
{char i, j, k;  //a,b,c的对手for(i='x' ; i<='z' ; i++){for(j='x' ; j<='z' ; j++){if(i != j){for(k='x' ; k<='z' ; k++){if(j != k && i != k){if(i != 'x' && k != 'x' && k != 'z'){printf("a-vs-%c\nb-vs-%c\nc-vs-%c\n", i, j, k);}}}}}}return 0;
}

例题23:打印出如下图案(菱形)
   *
  ***
 *****
*******
 *****
  ***
   *

#include <stdio.h>int main(void)
{int i, j, k;for(i=0 ; i<7 ; i++)  {if(i < 4)    //上面四层{for(j=0 ; j<3-i ; j++){printf(" ");}for(k=0 ; k<(2*i)+1 ; k++){printf("*");}}else    //下面三层{for(j=0 ; j<i-3 ; j++){printf(" ");}for(k=-1 ; k<(6-i)*2 ; k++){printf("*");}}printf("\n");}return 0;
}

例题24:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和

#include <stdio.h>int main(void)
{int i, n, t;float a = 2.0, b = 1.0;float l, s = 0.0;printf("请输入项数:");scanf("%d", &n);for(i=0 ; i<n ; i++){l = a / b;s = s + l;t = a;    //下一项的分母是上一项的分子a = a + b;    //下一项的分子是上一项分子和分母的和b = t;}printf("结果为%0.3f\n", s);return 0;
}

例题25:求1+2!+3!+...+20!的和

#include <stdio.h>int main(void)
{int i, n;int l = 1;int a = 1;int s = 0;printf("请输入项数:");scanf("%d", &n);for(i=0 ; i<n ; i++){l = l * a;    //每项的值s = s + l;    //总和a++;}for(i=0 ; i<n ; i++){if(i != n-1){printf("%d!+", i+1);}else{printf("%d!=%d\n", i+1, s);}}return 0;
}

例题26:利用递归方法求5!

#include <stdio.h>int fac(int x);    //阶乘函数int main(void)
{int n, s;printf("请输入阶乘位数:");scanf("%d", &n);s = fac(n);printf("%d!=%d\n", n, s);return 0;
}int fac(int x)
{int y;if(x == 1){y = 1;}else{y = x*fac(x-1);}return y;
}

例题27:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来

#include <stdio.h>
#include <conio.h>void digui(int n);int main(void)
{int i = 5;printf("请输入字符:");digui(i);printf("\n");getch();return 0;
}void digui(int n)
{char next;if(n <= 1){next = getchar();printf("\0");putchar(next);}else{next = getchar();    //从最后一个字符开始读digui(n-1);putchar(next);}
}

例题28:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
问第一个人,他说是10岁。请问第五个人多大?

#include <stdio.h>int digui(int x);int main(void)
{int n, s;printf("请问您想要知道第一个人的岁数?\n");scanf("%d", &n);s = digui(n);printf("第%d个人的年龄为%d岁\n", n, s);return 0;
}int digui(int x)
{int y;if(x <= 1){y = 10;}else{y = 2 + digui(x-1);}return y;
}

例题29:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字

#include <stdio.h>
#include <math.h>int main(void)
{int x, y, i, j, n;int m = 0;int a[5];printf("请输入五位以下的正整数:");scanf("%d", &x);while((x/100000) > 0){printf("输入有误!\n");printf("请输入五位以下的正整数:");scanf("%d", &x);}y = x;for(i=4 ; i>=0 ; i--){int b;b = pow(10, i);a[i] = y/b;    //得到最前一位的值y = y - (a[i]*b);    //减去上一位数的值,继续参与循环if(m == 0)    //状态判断,从最高位开始,出现大于0的数值时进行记录并改变状态{if(a[i] > 0){n = i+1;m = 1;}}}printf("数字%d是%d位数\n", x, n);printf("该数字从右到左依次为:");for(j=0 ; j<n ; j++){printf("%d", a[j]);}printf("\n");return 0;
}

例题30:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同

#include <stdio.h>
#include <math.h>int main(void)
{int x, y, i;int a[5];printf("请输入五位数:");scanf("%d", &x);while((x/10000) < 1 || (x/10000) > 9){printf("输入有误!\n");printf("请输入五位数:");scanf("%d", &x);}y = x;for(i=4 ; i>=0 ; i--){int b;b = pow(10, i);a[i] = y / b;y = y - (a[i]*b);}if(a[0] == a[4] && a[1] == a[3]){printf("数%d是回文数\n", x);}else{printf("数%d不是回文数\n", x);}return 0;
}

例题31:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母

#include <stdio.h>int main(void)
{char r;printf("please input the week number:");r = getchar();if(r == 'm' || r == 'M'){printf("It's Monday!\n");}else if(r == 'w' || r == 'W'){printf("It's Wednesday!\n");}else if(r == 't' || r == 'T'){r = getchar();if(r == 'u' || r == 'U'){printf("It's Tuesday!\n");}else{printf("It's Thursday!\n");}}else if(r == 's' || r == 'S'){r = getchar();if(r == 'a' || r == 'A'){printf("It's Saturday!\n");}else{printf("It's Sunday!\n");}}else{printf("It's Friday!\n");}return 0;
}

例题32:Press any key to change color, do you want to try it. Please hurry up!

#include <stdio.h>
#include <stdlib.h>int main(void)
{int color=0;char a[16];for(color=0 ; color<8 ; color++){sprintf(a, "color 0%d", color);       //设置文本的背景颜色system(a);printf("This is color %d\r\n", color);}return 0;
}

例题33:学习gotoxy()与clrscr()函数     //tc编译器内有,vc以及其他编译器需要使用其他函数来创建或替代该函数

#include <stdio.h>
#include <windows.h>void gotoxy(int x, int y);int main(void)
{printf("即将清屏!\n");getch();system("cls");gotoxy(35, 12);cputs("Hello world!\n");getch();return 0;
}void gotoxy(int x, int y)
{COORD pos = {x, y};HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);        //获取标准输出设备句柄SetConsoleCursorPosition(hOut, pos);        //两个参数分别是指定哪个窗体,具体位置
}

例题34:练习函数调用

#include <stdio.h>void print(int x);int main(void)
{int a;printf("请输入输出次数:");scanf("%d", &a);print(a);return 0;
}void print(int x)
{int i;for(i=0 ; i<x ; i++){printf("When there is a will, there is a way!\n");}
}

例题35:设置文本颜色

#include <stdio.h>
#include <stdlib.h>int main(void)
{int x;char a[16];printf("请输入文本颜色代码(1-蓝,2-绿,4-红,6-黄,7-白):");scanf("%d", &x);sprintf(a, "color 0%d", x);system(a);printf("Hello world!\n");return 0;
}

例题36:求100之内的素数

#include <stdio.h>void prime(int x);int n = 0;int main(void)
{int a, i;printf("请输入数字上限:");scanf("%d", &a);printf("%d以内的素数分别为:", a);for(i=2 ; i<=a ; i++){prime(i);}printf("\n共有%d个素数\n", n);return 0;
}void prime(int x)
{int j, k = 1;for(j=2 ; j<x ; j++){if(x%j == 0){k = 0;}}if(k == 1){     printf("%3d", x);n++;}
}

例题37:对10个数进行排序

#include <stdio.h>void sort(int a[]);void print(int a[]);int main(void)
{int a[10];int i;for(i=0 ; i<10 ; i++){printf("请输入第%d位数:", i+1);scanf("%d", &a[i]);}printf("原数组顺序:");print(a);sort(a);printf("排序后数组顺序:");print(a);return 0;
}void sort(int a[])
{int i, j, temp;for(i=0 ; i<10 ; i++){for(j=i+1 ; j<10 ; j++){if(a[i] > a[j]){temp = a[i];a[i] = a[j];a[j] = temp;}}}
}void print(int a[])
{int i;for(i=0 ; i<10 ; i++){printf("%3d", a[i]);}printf("\n");
}

例题38:求一个3*3矩阵对角线元素之和

#include <stdio.h>int main(void)
{int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};int i, j, k;int s = 0;for(i=0 ; i<3 ; i++){for(j=0 ; j<3 ; j++){k = i + j;if(k%2 == 0){s = s + a[i][j];}}}printf("此3*3数组的对角线元素之和为%d\n", s);return 0;
}

例题39:有一个已经排好序的数组,现输入一个数,要求按原来的规律将它插入数组中

#include <stdio.h>void print(int a[]);int main(void)
{int a[10] = {1,2,4,5,6,7,8,9,10,12}; int i, x, temp;printf("原数组顺序:");print(a);printf("请输入一个数:");scanf("%d", &x);for(i=0 ; i<10 ; i++){if(x < a[i]){temp = a[i];a[i] = x;x = temp;}}printf("插入数字%d后数组顺序:", x);print(a);return 0;
}void print(int a[])
{int i;for(i=0 ; i<10 ; i++){printf("%4d", a[i]);}printf("\n");
}

例题40:将一个数组逆序输出

#include <stdio.h>int main(void)
{int a[10] = {0,1,2,3,4,5,6,7,8,9};int i;printf("原数组顺序:");for(i=0 ; i<10 ; i++){printf("%2d", a[i]);}printf("\n");printf("逆顺序数组:");for(i=9 ; i>=0 ; i--){printf("%2d", a[i]);}printf("\n");return 0;
}

C语言例题100道(21~40)相关推荐

  1. C语言例题100道(1~20)

    例题1:有1.2.3.4这4个数字,能组成多少个互不相同且无重复数字的三位数,都是多少? #include <stdio.h>int main(void) {int i, j, k;int ...

  2. C语言——经典200道实例【基础例题100道——进阶例题100道】

    目录: ===============================基础例题100道=============================== 1.输出 "Hello, World!& ...

  3. C语言经典例题100道(没错,就是你要找的那个)

    C语言经典例题100道(没错,就是你要找的那个) 希望可以帮助到你,加油!!! [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位 ...

  4. C语言经典例题100道

    程序[8] 题目: 题目:输出9*9口诀. 程序分析:分行与列考虑,共 9 行 9 列,i 控制行,j 控制列. 众所周知,在看到编程题目前,最重要的就是先构思,要有思维,然后把自己的思维在脑中构成一 ...

  5. C语言经典例题100道(求找水仙花数字)

    程序[13] 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身.例如:153是一个"水仙花数" ...

  6. C语言经典例题100道(辗转相除求最大公约数和最小公倍数)

    程序[16] 题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 程序分析: (1)最小公倍数=输入的两个数之积除于它们的最大公约数,关键是求出最大公约数: (2)求最大公约数用辗转相除法(又名 ...

  7. C语言经典例题100道(求素数最全的方法在这里!!!)

    程序[12] 题目:判断 101 到 200 之间的素数. 程序分析:判断素数的方法:用一个数分别去除 2 到 sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数. 看到这里,我们很清楚 ...

  8. C语言练习题100道

    最近有人给我要联系C语言的一些例题,从网上找了一写,顺便写到这里 [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的 ...

  9. Python例题100道

    题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? count = 0 for i in range(1, 5):for j in range(1, 5):for ...

最新文章

  1. 如何确认11.2 RAC Grid Infrastructure的时区
  2. weblogic服务器保存图片失败解决办法
  3. ClassPathScanningCandidateComponentProvider 扫描给定包及其子包的类
  4. 实例解析linux内核I2C体系结构(2)
  5. 写文章最难写的是标题
  6. 7-34 点赞 (20 分)
  7. 文字 竖排居中_微信朋友圈文字如何设置居中居右?
  8. seo从入门到精通_新手学习SEO一个月能学会吗?
  9. java 怎么调用clojure_如何从Java调用Clojure宏?
  10. python查看方法作用_python中有帮助函数吗
  11. 编写高质量java代码_编写高质量的Java代码
  12. ue4渲染速度太慢_UE4实时渲染,不用合成。第一部完全UE4渲染动画片是这样炼成的~...
  13. Visual studio的中英文切换
  14. 施柏阁保时捷设计酒店全球陆续开设15家酒店;汉庭新品旗舰店在武汉街道口商圈亮相;开元酒店用国潮赋能中高端品牌 | 全球旅报...
  15. 详解VMware Workstation 12 安装虚拟机
  16. c++builder 6.0中OnCliked= fun实现的原理
  17. 函数u=(x,y,z)在点P处延方向向量n的方向导数的计算
  18. Android 蓝牙 ble 随机地址深层次分析
  19. unity 如何创建六边形地图
  20. 智能手机低价成潮,vivo为何执念高端?

热门文章

  1. ubuntu18.04下设置软件开机自启动
  2. 解决java.net.UnknownHostException: XXXX: 未知的名称或服务 at java.net.Inet6AddressI
  3. 机器学习学习笔记-西瓜书
  4. 易盾sdk引起项目的整体耗时问题?
  5. 简要讨论Python对拼多多关键字搜索、拼多多商品详情页封装API接口对于电商爆款的作用
  6. Mac上有哪些冷门但却逆天的软件?
  7. Leetcode周赛285
  8. 抛物线中四边形面积最大值_函数中动点与四边形面积最大值
  9. 灰度图像的形态学处理
  10. 两片74161实现60进制_74LS161设计60进制计数器-数电课程设计