热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c语言编程题怎么练,C语言编程菜鸟练习100题(4150)

【练习41】字符串翻转0.题目:字符串翻转1.分析:学习递归思想和方法。2.程序:方法一:#includevoidrever

【练习41】字符串翻转

0. 题目:

字符串翻转

1. 分析:

学习递归思想和方法。

2. 程序:

方法一:

#include

void reverseSentence();

int main()

{

printf("输入一个字符串(非中文): ");

reverseSentence();

return 0;

}

void reverseSentence()

{

char c;

scanf("%c", &c);

if( c != '\n')

{

reverseSentence();

printf("%c",c);

}

}

【 解析】 这个程序非常简单巧妙:通过递归方法,不断读入当前的字符,直到字符串结束(读到回车符),然后逐次输出最近读入的字符,实现输出翻转的字符串。

方法二 :

#include

#include

int main()

{

char cInput[40];

printf("请输入字符串:");

scanf("%[^\n]s",cInput);

int j=strlen(cInput);

printf("strlen = %d\n",j);

do{

printf("%c",cInput[j-1]);

j--;

} while(j);

return 0;

}

【 解析】 这个程序更容易理解。注意 scanf()会在遇到的第一个空白字符空格(blank)、制表符(tab)或者换行符(newline)处停止读取,使用 scanf("%[^\n]s",cInput) 可以设置只有在读入回车符时才终止读取。

3. 输入输出:

输入一个字符串(非中文): Hello world!

!dlrow olleH

【练习42】计算数组元素的平均值

0. 题目:

计算数组元素平均值

1. 分析:

使用 for 循环。

2. 程序:

#include

int main() {

int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};

int sum, loop;

float avg;

sum = avg = 0;

for(loop &#61; 0; loop <10; loop&#43;&#43;) {

sum &#43;&#61; array[loop];

}

avg &#61; (float)sum / loop;

printf("平均值为 %.2f", avg);

return 0;

}

3. 输入输出&#xff1a;

平均值为 4.50

【练习43】输出数组

0. 题目&#xff1a;

输出数组

1. 分析&#xff1a;

使用 for 循环输出数组。

2. 程序&#xff1a;

#include

int main() {

int array[10] &#61; {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};

int loop;

for(loop &#61; 0; loop <10; loop&#43;&#43;)

{

printf("%d ", array[loop]);

}

return 0;

}

3. 输入输出&#xff1a;

1 2 3 4 5 6 7 8 9 0

【练习44】计算数组元素之和

0. 题目&#xff1a;

计算数组元素之和

1. 分析&#xff1a;

使用 for 循环。

2. 程序&#xff1a;

#include

int main() {

int array[10] &#61; {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};

int sum&#61;0, loop;

for(loop &#61; 9; loop >&#61; 0; loop--)

{

sum &#61; sum &#43; array[loop];

}

printf("数组元素的和为&#xff1a;%d", sum);

return 0;

}

3. 输入输出&#xff1a;

数组元素的和为&#xff1a;45

【练习45】查找数组元素中的最大值

0. 题目&#xff1a;

查找数组元素中的最大值

1. 分析&#xff1a;

使用 for 循环。

2. 程序&#xff1a;

方法一&#xff1a;

#include

int main() {

int array[10] &#61; {3,2,1,4,7,6,5,8,0,9};

int loop, largest;

largest &#61; array[0];

for(loop&#61;1; loop<10; loop&#43;&#43;)

{

if( largest

largest &#61; array[loop];

}

printf("数组的最大值为 %d", largest);

return 0;

}

方法二&#xff1a;

#include

int main() {

int array[] &#61; {3,2,1,4,7,6,5,8,0,9};

int loop, largest;

for(loop&#61;0; loop<10; loop&#43;&#43;)

largest&#61;(array[loop] > largest)? array[loop] : largest;

printf("数组的最大值为 %d", largest);

return 0;

}

3. 输入输出&#xff1a;

数组的最大值为 9

4. 解析&#xff1a;

条件运算符&#xff1f;: 是三元运算符&#xff0c;语法为&#xff1a;条件表达式&#xff1f;表达式1&#xff1a;表达式2。该操作首先求出条件表达式的值(bool类型)&#xff0c;true 执行表达式1&#xff0c;flase 执行表达式2。

【练习46】查找数组元素中的最小值

0. 题目&#xff1a;

查找数组元素中的最小值

1. 分析&#xff1a;

使用 for 循环。

2. 程序&#xff1a;

#include

int main() {

int loop, nLen, nSmallest;

int array[] &#61; {3,2,1,4,7,6,5,8,0,9};

nLen &#61; sizeof(array)/sizeof(array[0]);

nSmallest &#61; array[0];

for(loop &#61; 1; loop

{

if(nSmallest > array[loop])

nSmallest &#61; array[loop];

}

printf("数组的最小值为 %d", nSmallest);

return 0;

}

3. 输入输出&#xff1a;

数组的最小值为 0

4. 解析&#xff1a;

使用关键字 sizeof 获取数组长度&#xff1a;用 sizeof 可以获得数据类型或变量在内存中所占的字节数&#xff0c;也可以获得整个数组在内存中所占的字节数。因为数组中元素的类型相同&#xff0c;在内存中所占的字节数也相同&#xff0c;所以数组总的字节数除以一个元素所占的字节数就是数组的长度。数组 array 是 int 型&#xff0c;每个元素占 4 字节&#xff0c;长度为 10 的数组在内存中所占的字节数就是 40。

【练习47】数组拆分

0. 题目&#xff1a;

将一个数组拆分为两个数组&#xff0c;一个为奇数数组&#xff0c;一个为偶数数组。

1. 分析&#xff1a;

使用 if...else...条件分支结构。

2. 程序&#xff1a;

#include

int main() {

int array[10] &#61; { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

int even[10], odd[10];

int loop, e, d;

e &#61; d &#61; 0;

for(loop &#61; 0; loop <10; loop&#43;&#43;)

{

if(array[loop]%2 &#61;&#61; 0)

{

even[e] &#61; array[loop];

e&#43;&#43;;

}

else

{

odd[d] &#61; array[loop];

d&#43;&#43;;

}

}

printf(" 原始数组 --> ");

for(loop &#61; 0; loop <10; loop&#43;&#43;)

printf(" %d", array[loop]);

printf("\n 偶数 --> ");

for(loop &#61; 0; loop

printf(" %d", even[loop]);

printf("\n 奇数 --> ");

for(loop &#61; 0; loop

printf(" %d", odd[loop]);

return 0;

}

3. 输入输出&#xff1a;

原始数组 --> 0 1 2 3 4 5 6 7 8 9

偶数 --> 0 2 4 6 8

奇数 --> 1 3 5 7 9

【练习48】数组拷贝

0. 题目&#xff1a;

将一个数组复制给另外一个数组

1. 分析&#xff1a;

数组复制属于值传递&#xff0c;复制的数组具有新的地址&#xff0c;复制后原数组与新数组的变化互不影响。

2. 程序&#xff1a;

#include

int main() {

int original[10] &#61; {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};

int copied[10];

int loop;

for(loop &#61; 0; loop <10; loop&#43;&#43;)

{

copied[loop] &#61; original[loop];

}

printf("原数组 -> 拷贝数组 \n");

for(loop &#61; 0; loop <10; loop&#43;&#43;)

{

printf("%2d\t%2d\n", original[loop], copied[loop]);

}

return 0;

}

3. 输入输出&#xff1a;

原数组 -> 拷贝数组

1 1

2 2

3 3

4 4

5 5

6 6

7 7

8 8

9 9

0 0

【练习49】计算标准偏差

0. 题目&#xff1a;

计算数组元素之和

1. 分析&#xff1a;

标准差(Standard Deviation)也称为标准偏差&#xff0c;反映一个数据集的离散程度。

2. 程序&#xff1a;

#include

#include

float calSD(float data[],int nLen);

int main()

{

int i,nLen;

float data[100];

printf("请输入数组长度: ");

scanf("%d", &nLen);

for(i&#61;0; i

{

printf("输入第 %d 个元素: ", i&#43;1);

scanf("%f", &data[i]);

}

printf("\n标准偏差 &#61; %.6f", calSD(data,nLen));

return 0;

}

float calSD(float data[],int nLen)

{

int i;

float sum, mean, standardDeviation;

sum &#61; 0.0;

for(i&#61;0; i

sum &#43;&#61; data[i];

mean &#61; sum/nLen;

standardDeviation &#61; 0.0;

for(i&#61;0; i

standardDeviation &#43;&#61; pow(data[i] - mean, 2);

standardDeviation /&#61; nLen;

return sqrt(standardDeviation);

}

3. 输入输出&#xff1a;

请输入数组长度: 10

输入第 1 个元素: 1

输入第 2 个元素: 2

输入第 3 个元素: 3

输入第 4 个元素: 4

输入第 5 个元素: 5

输入第 6 个元素: 6

输入第 7 个元素: 7

输入第 8 个元素: 8

输入第 9 个元素: 9

输入第 10 个元素: 10

标准偏差 &#61; 2.872281

【练习50】两个矩阵相加

0. 题目&#xff1a;

使用多维数组将两个矩阵相加。

1. 分析&#xff1a;

练习使用 for 循环嵌套&#xff0c;多维数组的表达。

2. 程序&#xff1a;

#include

int main()

{

int rows, cols, a[100][100], b[100][100], sum[100][100], i, j;

printf("输入行数 ( 1 ~ 100): ");

scanf("%d", &rows);

printf("输入列数 ( 1 ~ 100): ");

scanf("%d", &cols);

printf("\n输入第一个数组的元素:\n");

for(i&#61;0; i

for(j&#61;0; j

{

printf("输入元素 a%d%d: ",i&#43;1,j&#43;1);

scanf("%d",&a[i][j]);

}

printf("输入第二个数组的元素:\n");

for(i&#61;0; i

for(j&#61;0; j

{

printf("输入元素 b%d%d: ",i&#43;1, j&#43;1);

scanf("%d", &b[i][j]);

}

// 相加

for(i&#61;0;i

for(j&#61;0;j

sum[i][j] &#61; a[i][j] &#43; b[i][j];

// 显示结果

printf("\n二个数组相加结果: \n\n");

for(i&#61;0;i

{

for(j&#61;0;j

printf("%d\t",sum[i][j]);

printf("\n\n");

}

return 0;

}

3. 输入输出&#xff1a;

输入行数 ( 1 ~ 100): 2

输入列数 ( 1 ~ 100): 3

输入第一个数组的元素:

输入元素 a11: 2

输入元素 a12: 3

输入元素 a13: 4

输入元素 a21: 5

输入元素 a22: 2

输入元素 a23: 3

输入第二个数组的元素:

输入元素 b11: -4

输入元素 b12: 5

输入元素 b13: 3

输入元素 b21: 5

输入元素 b22: 6

输入元素 b23: 3

二个数组相加结果:

-2 8 7

10 8 6

版权说明&#xff1a;

题目和例程 源于 菜鸟教程&#xff0c;作者重新编写了程序、注释和算例&#xff0c;并增加了难点分析。

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点&#xff0c;不代表本站立场&#xff0c;所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章&#xff0c;希望广大程序员努力学习&#xff0c;让我们用科技改变世界。

[C语言编程 菜鸟练习100题(41-50)]http://www.zyiz.net/tech/detail-159554.html



推荐阅读
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文介绍了在Windows系统上使用C语言命令行参数启动程序并传递参数的方法,包括接收参数程序的代码和bat文件的编写方法,同时给出了程序运行的结果。 ... [详细]
  • c语言基础编写,c语言 基础
    本文目录一览:1、C语言如何编写?2、如何编写 ... [详细]
  • C语言的经典程序有哪些
    本篇内容介绍了“C语言的经典程序有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了基于c语言的mcs51单片机定时器计数器的应用教程,包括定时器的设置和计数方法,以及中断函数的使用。同时介绍了定时器应用的举例,包括定时器中断函数的编写和频率值的计算方法。主函数中设置了T0模式和T1计数的初值,并开启了T0和T1的中断,最后启动了CPU中断。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • C++中的三角函数计算及其应用
    本文介绍了C++中的三角函数的计算方法和应用,包括计算余弦、正弦、正切值以及反三角函数求对应的弧度制角度的示例代码。代码中使用了C++的数学库和命名空间,通过赋值和输出语句实现了三角函数的计算和结果显示。通过学习本文,读者可以了解到C++中三角函数的基本用法和应用场景。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
author-avatar
星宿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有