C语言 编程题

news/2024/11/17 0:54:58/

C语言学习!

        1.小明上课需要走n阶台阶,他每次可以选择走一阶或者走两阶,他一共有多少种走法?

输入描述:输入包含一个整数n(1 ≤ n ≤30)

输出描述:输出一个整数,即小明可以走的方法数。

代码示例:

#include <stdio.h>int fig(int n)
{if (n <= 2){return n;}else{return fig(n - 1) + fig(n - 2);}
}int main()
{int n = 0;scanf("%d", &n);//输入int ret = fig(n);//计算printf("%d\n", ret);//输出return 0;
}

运行结果:

2
2
10
89

        2.有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变。

数据范围:序列长度和序列中的值都满足 1 ≤ n ≤ 50

输入描述:

  • 第一行输入一个整数(1 ≤ n ≤ 50)。
  • 第二行输入N个整数,输入用空格分隔的N个整数。
  • 第三行输入想要进行删除的一个整数。

输出描述:输出为一行,删除指定数字之后的序列。

代码示例:

#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);//接收n个数字int arr[50] = { 0 };int i = 0;for (i = 0; i < n; i++){scanf("%d", &arr[i]);}int del = 0;scanf("%d", &del);//接收删除的数据int j = 0;//j作为下标锁定的位置,用来存放不删除的数据for (i = 0; i < n; i++){if (arr[i] != del){arr[j++] = arr[i];}}for (i = 0; i < j; i++)//输出{printf("%d ", arr[i]);}return 0;
}

运行结果:

6
5 7 6 9 5 8
5
7 6 9 8

        3.输出n个成绩,换行输出n个成绩中最高分和最低分的差。

输入描述:

  • 两行。第一行为n,表示n个成绩,不会大于10000.
  • 第二行为n个成绩(整数表示,范围0~100),以空格隔开。

输出描述:一行,输出n个成绩中最高分数和最低分数的差。

代码示例:

#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);int arr[10000] = { 0 };int i = 0;for (i = 0; i < n; i++)//输入{scanf("%d", &arr[i]);}int max = 0;int mix = 100;for (i = 0; i < n; i++)//比较出最大值和最小值{if (arr[i] < mix){mix = arr[i];}if (arr[i] > max){max = arr[i];}}printf("%d", max - mix);//输出return 0;
}

运行结果:

6
66 88 60 87 99 80
39

        4.字母大小写转换,有一个字符,判断它是否为大写字母,如果是,将它转换成小写字母;反之则转换为大写字母。

输入描述:多组输入,每一行输入一个字母。

输出描述:针对每组输入,输出单独占一行,输出字母的对应形式。

代码示例1:

#include <stdio.h>
int main()
{char n = 0;while(scanf("%c", &n)==1){if (n >= 'a' && n <= 'z'){printf("%c\n", n - 32);}else if (n >= 'A' && n <= 'Z'){printf("%c\n", n + 32);}}return 0;
}

运行结果:

a
A
G
g
f
F
H
h

代码示例2:

#include <ctype.h>
#include <stdio.h>
int main()
{char n = 0;while(scanf("%c", &n)!=EOF){if (islower(n))//islower函数判断是否是小写字母,是返回1{printf("%c\n", toupper(n));//toupper函数可将小写字母转大写}else if (isupper(n))//isupper函数判断是否是大写字母,是返回1{printf("%c\n", tolower(n));//tolower函数可将大写字母转小写}}return 0;
}

运行结果:

a
A
b
B
G
g
T
t

分析:scanf函数读取成功时,返回读取的数据个数;读取失败时,返回EOF。


        5.判断输入的字符是不是字母。

输入描述:多组输入,每一行输入一个字符。

输出描述:针对每组输入,输出但独占一行,判断输入字符是否为字母,输出内容详见输出样例。

输出样例:

a
a is an alphabet.
*
* is not an alphabet.

代码示例1:

#include <stdio.h>
int main()
{char ch = 0;while (scanf("%c", &ch) == 1){if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')){printf("%c is an alphabet.\n", ch);}else{printf("%c is not an alphabet.\n", ch);}getchar( );//用于处理输入字符末尾的\n}return 0;
}

运行结果:

5
5 is not an alphabet.
D
D is an alphabet.
a
a is an alphabet.
*
* is not an alphabet.

分析:

        getchar( );用于处理输入字符末尾的\n

代码示例2:

#include <stdio.h>
int main()
{char ch = 0;while (scanf(" %c", &ch) == 1)//%c前面加空格,是为了跳过下一个字符之前的所有空白字符\n{if (isalpha(ch))// isalpha函数用于判断是否为字母,是输出1.{printf("%c is an alphabet.\n", ch);}else{printf("%c is not an alphabet.\n", ch);}}return 0;
}

运行结果:

#
# is not an alphabet.
G
G is an alphabet.
c
c is an alphabet.
9
9 is not an alphabet.

分析:

        scanf中%c前面加空格,是为了跳过下一个字符之前的所有空白字符\n

        isalpha函数用于判断是否为字母,是输出1.


        6.变种水仙花数:把任意的数字从中间拆分成两个数字,如1461可拆分为1和461;14和61;146和1,若所有拆分后的乘积之和等于自身则是一个水仙花数。

1461=1*461 + 14*61 + 146*1

求出5位数中的所有水仙花数。

代码示例:

#include <stdio.h>
#include <math.h>int main()
{int i = 0;for (i = 10000; i < 99999; i++){int j = 0;int sum = 0;for (j = 1; j <= 4; j++){int k = (int)pow(10, j);sum += (i / k) * (i % k);}if (sum == i){printf("%d ", i);}}return 0;
}

运行结果:

14610 16420 23610 34420 65500


http://www.ppmy.cn/news/1263316.html

相关文章

CGAL的3D简单网格数据结构

由具有多个曲面面片的多面体曲面生成的多域四面体网格。将显示完整的三角剖分&#xff0c;包括属于或不属于网格复合体、曲面面片和特征边的单元。 1、网格复合体、 此软件包致力于三维单纯形网格数据结构的表示。 一个3D单纯形复杂体由点、线段、三角形、四面体及其相应的组合…

java面试题-Dubbo和openFeign怎么选择,优劣

远离八股文&#xff0c;面试大白话&#xff0c;通俗且易懂 看完后试着用自己的话复述出来。有问题请指出&#xff0c;有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来&#xff0c;大家一起解决。 java面试题汇总-目录-持续更新中 面试官&#xff1a;你在…

CCC联盟数字车钥匙(十)——UWB安全性

本节介绍CCC联盟UWB数字钥匙相关&#xff08;适用和强制&#xff09;安全性要求。设备OEM应使用NFC作为后备机制&#xff0c;以防UWB和BLE模块的操作受到干扰。UWB中基于加扰时间戳序列&#xff08;STS&#xff09;避免了被中继的可能&#xff0c;进而保障了安全测距。 22.1 加…

VUE ui工程创建

打开vue 界面服务 cmd命令&#xff0c;输入vue ui&#xff0c;可以直接在浏览器输入&#xff1a;http://localhost:8000/ 注意&#xff1a;运行的时候不能关闭cmd窗口&#xff0c;不然就停止服务了 创建vue工程 在仪表盘里点击自定义&#xff0c;添加“运行任务”控件&#x…

大三上实训内容

项目一&#xff1a;爬取天气预报数据 【内容】 在中国天气网(http://www.weather.com.cn)中输入城市的名称&#xff0c;例如输入信阳&#xff0c;进入http://www.weather.com.cn/weather1d/101180601.shtml#input 的网页显示信阳的天气预报&#xff0c;其中101180601是信阳的…

通信协议 远程调用RPC

1.通讯协议 所有的HDFS通讯协议都是建立在TCP/IP协议之上。 客户端通过一个可配置的TCP端口连接到Namenode&#xff0c;通过ClientProtocol协议与Namenode交 互。而Datanode使用DatanodeProtocol协议与Namenode交互。 一个远程过程调用(RPC)模型被抽象出来封装ClientProtoc…

自动驾驶技术的发展

自动驾驶技术是指利用计算机、传感器和先进的算法来实现车辆自主行驶的技术。随着科技的迅速发展&#xff0c;自动驾驶技术已成为汽车行业的热点和未来的趋势。它不仅可以提升交通安全&#xff0c;减少交通事故&#xff0c;还可以提高交通效率&#xff0c;减少能源消耗&#xf…

【已解决】SpringBoot Maven 打包失败:class lombok.javac.apt.LombokProcessor 错误

文章目录 出错原因解决办法总结 最新项目部署的时候&#xff0c;出现了一个maven打包失败的问题&#xff0c;主要是lombok这个组件出的问题&#xff0c;具体的错误信息如下&#xff1a; 我的lombok版本如下&#xff1a; <dependency><groupId>org.projectlombok&l…