C语言练手题(52个小练习)
Posted 林夕07
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言练手题(52个小练习)相关的知识,希望对你有一定的参考价值。
目录
- 前言
- 1、求100之内自然数中最大的能被17整除的数。
- 2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。
- 3、计算并输出200-400之间不能被3整除的整数的和 [200, 400)
- 4、从键盘输入10个数,统计非负数的个数,并计算非负数的和
- 5、求125之内自然数中偶数之和。
- 6、输入5个数,求和并输出。要求编写求和的函数。
- 7、编程计算1 * 2 * 3+3 * 4 * 5+5 * 6 * 7+...+99 * 100 * 101的值。
- 8、编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出。
- 9、编写程序,将一个一维数组的元素逆序存放并输出。例如,原顺序为1,2,3,4,5,逆序后为5,4,3,2,1。
- 10、求3行3列矩阵a[3][3]={1,2,3,4,5,6,7,8,9}非对角线上元素之和。
- 11、编程判断输入的整数的正负性和奇偶性。如果为正数,输出z;如果为负数,输出f;如果为偶数,输出o;如果为奇数,输出j
- 12、计算并输出1-200之间不能被5整除的整数的和。
- 13、从键盘输入n和a的值,计算a+aa+aaa+...+aa...a(n个a)的值。
- 14、输入5个数,求它们中最大值和平均值并输出。
- 15、输出所有200-400之间能被3整除且个位数字为6的整数。
- 16、编写程序,将用户输入的字符串中所有的字符a去掉,然后输出剩余的字符。
- 17、计算并输出200-400之间不能被7整除的整数的和。
- 18、计算并输出200-400之间不能被5整除的整数的和。
- 19、从键盘输入10个数,统计非正数的个数,并计算非正数的和。
- 20、输入一串字符,将其中的大写字母变成对应的小写字母并输出。
- 21、打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数。例如,153就是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。
- 22、一个皮球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求当它第10次落地时,共经过了多少米,第10次反弹多高?
- 23、输出所有0-200之间能被3整除且个位数字为6的整数。
- 24、输入一个正整数,输出它的阶乘。
- 25、编写程序,判断从键盘输入的字符中数字字符的个数、大写字母的个数、小写字母的个数及其它字符的个数,以*作为字符输入结束标志。
- 26、编写程序,使用循环结构输出下列图形:
- 27、输入一串字符,逆序输出。要求使用数组实现。
- 28、求1-1/2+1/3-1/4+...+1/99-1/100的值。
- 29、输入3个学生4门课的成绩{(60,70,65,75),(75,80,75,90),(95,75,90,65)},计算每个学生的总分和平均成绩并输出,结果保留一位小数。
- 30、求两个正整数的最大公约数。
- 31、求100之内自然数中奇数之和。
- 32、输出所有200-400之间能被3整除且个位数字为7的整数
- 33、编程计算1 * 2 * 3+4 * 5 * 6+...+97 * 98 * 99的值
- 34、输入n的值,计算并输出1 * 1+2 * 2+3 * 3+4 * 4+5 * 5+...+n * n的值。要求编写函数f求平方。
- 35、计算并输出1-200之间不能被3整除的整数的和。
- 36、输入一个华氏温度,输出摄氏温度,计算公式为c=5/9*(F-32)。要求结果保留两位小数。
- 37、输入任意三个数,按从大到小的顺序输出
- 38、用1元人民币兑换5分、2分、1分的硬币共50枚,每种硬币至少一枚,问共有多少种兑换方案?输出每一种方案中三种硬币的数量
- 39、从键盘输入圆的半径,计算并输出圆面积与周长,要求结果保留两位小数。
- 40、从键盘输入一个字符串,再输入两个正整数m和n,输出字符串中从m开始,连续n个字符。例如,输入abcdefg,2,3,输出bcd。
- 41、输入一个不多于5位的正整数,判断它是几位数,并逆序输出各位数字
- 42、输出Fibonacci数列的前40项
- 43、判断某一年是否是闰年
- 44、起泡法(选择法)对十个数排序
- 45、判断某个数是否为素数.
- 46、编程计算1!+2!+3!+…+10的值。
- 47、求以下数列前十五项的和:2/1,3/2,5/3,8/5,13/8,21/13…。
- 48、从键盘输入圆柱体高与底面半径,计算并输出圆柱体表面积与体积,要求结果保留两位小数。
- 49、从键盘输入一个十进制整型数据,计算并输出其各位上数字之和(忽略正负号)。例如,输入1234,输出10;输入-1234,输出10。
- 50、已知银行定期存款利率为r=2.25%,输入存款本金x、存款年数n,输出本利之和y=x(1+r)(1+r)...(1+r),共n个(1+r)。
- 51、编程判断输入的字符串是否为“回文”。所谓“回文”是指顺读和倒读都一样,如abcba。
- 52、编写程序,将用户输入的字符串中删除所有的数字,然后输出剩余的字符
前言
总题数量52道,其中有很多相似的题目,用于前期学习练手还是挺不错的哦。我提供的解法不一定是最优的,只是提供一种解法,不提供解法思路。如有错误请私聊或者评论联系我进行更正!
1、求100之内自然数中最大的能被17整除的数。
#include <stdio.h>
#define NUM 17
int main()
{
int tmp = 0;//用于存放最大的值
int i = 0;
for (i = 1; i < 100; i++)
{
if (0 == i % NUM)
{
tmp = i;
}
}
printf("100之内自然数中最大能被17整除的数为:%d\\n", tmp);
return 0;
}
2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。
#include <stdio.h>
int main()
{
int i = 0;//循环体的计数器
int j = 0;
int k = 0;
for(i = 0; i < 10; i++)
{
for(j = 0; j < 10; j++)
{
for(k = 0; k < 10; k++)
{
if(1333 == i * 100 + j * 10 + k + k * 100 + j * 10 + i)
{
printf("a = %d, b = %d, c = %d\\n", i, j, k);
}
}
}
}
return 0;
}
3、计算并输出200-400之间不能被3整除的整数的和 [200, 400)
#include <stdio.h>
int main()
{
int sum = 0;
int i = 0;
for (i = 200; i < 400; i++)
{
if (0 != i % 3)
{
sum += i;
//printf("i = %d\\n", i);
}
}
printf("[200,400)之间不能被3整除的整数之和为:%d\\n", sum);
return 0;
}
4、从键盘输入10个数,统计非负数的个数,并计算非负数的和
#include <stdio.h>
int main()
{
int number = 0;
int count = 0;
int sum = 0;
int i = 0;
printf("请输入十个整型数字:");
for (i = 0; i < 10; i++)
{
scanf("%d", &number);
if (number > 0)
{
count++;
sum += number;
}
}
printf("非负数的个数为:%d, 非负数的和为:%d\\n", count, sum);
return 0;
}
5、求125之内自然数中偶数之和。
#include <stdio.h>
#define NUM 125
int main()
{
int i = 0;
int sum = 0;
for (i = 1; i < NUM; i++)
{
if (0 == i % 2)
{
//printf("i = %d\\n", i);
sum += i;
}
}
printf("125之内的偶数之和为:%d\\n", sum);
return 0;
}
6、输入5个数,求和并输出。要求编写求和的函数。
#include <stdio.h>
#define COUNT 5
int sum();
int main()
{
int num = sum();
printf("和为:%d\\n", num);
return 0;
}
int sum()
{
int number = 0;
int i = 0;
int s = 0;
for (i = 0; i < COUNT; i++)
{
scanf("%d", &number);
s += number;
}
return s;
}
7、编程计算1 * 2 * 3+3 * 4 * 5+5 * 6 * 7+…+99 * 100 * 101的值。
#include <stdio.h>
int main()
{
int sum = 0;
int i = 0;
for (i = 1; i < 100; i += 2)
{
sum += i * (i + 1) * (i + 2);
}
printf("和为:%d\\n", sum);
return 0;
}
8、编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出。
#include <stdio.h>
int main()
{
char ch = ' ';
scanf("%c", &ch);
while('\\n' != ch)
{
if('a' == ch)
{
ch = '*';
}
printf("%c", ch);
scanf("%c", &ch);
}
printf("\\n");
return 0;
}
9、编写程序,将一个一维数组的元素逆序存放并输出。例如,原顺序为1,2,3,4,5,逆序后为5,4,3,2,1。
#include <stdio.h>
#include <stdlib.h>
#define SIZEMAX 5
int main()
{
int* n = (int*)malloc(sizeof(int) * SIZEMAX);
int i = 0;
for (i = 0; i < SIZEMAX; i++)
{
n[i] = i + 1;
}
//输出数组原始内容
printf("数组原始内容:");
for (i = 0; i < SIZEMAX; i++)
{
printf("%d ", n[i]);
}
//交换
for (i = 0; i < SIZEMAX / 2; i++)
{
int tmp = n[i];
n[i] = n[SIZEMAX - i - 1];
n[SIZEMAX - i - 1] = tmp;
}
//循环输出
printf("\\n数组被修改后的内容:");
for (i = 0; i < SIZEMAX; i++)
{
printf("%d ", n[i]);
}
printf("\\n");
return 0;
}
10、求3行3列矩阵a[3][3]={1,2,3,4,5,6,7,8,9}非对角线上元素之和。
#include <stdio.h>
int main()
{
int a[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
int sum = 0;
int i = 0;
int j = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
if (i != j && 3 != i + j + 1)
{
sum += a[i][j];
}
}
}
printf("非对角线之和为:%d\\n", sum);
return 0;
}
11、编程判断输入的整数的正负性和奇偶性。如果为正数,输出z;如果为负数,输出f;如果为偶数,输出o;如果为奇数,输出j
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
if(n > 0)
{
printf("z");
}
else
{
printf("f");
}
if(0 == n % 2)
{
printf("o");
}
else
{
printf("j");
}
printf("\\n");
return 0;
}
12、计算并输出1-200之间不能被5整除的整数的和。
#include <stdio.h>
int main()
{
int sum = 0;
int i = 0;
for (i = 1; i < 200; i++)
{
if (0 != i % 5)
{
sum += i;
}
}
printf("和为:%d\\n", sum);
return 0;
}
13、从键盘输入n和a的值,计算a+aa+aaa+…+aa…a(n个a)的值。
#include <stdio.h>
int main()
{
int n = 0;
int a = 0;
long int sum = 0;
int i = 0;
long int tmp = 0;
printf("请输入n的值:");
scanf("%d", &n);
printf("请输入a的值:");
scanf("%d", &a);
tmp = a;
for(i = 0; i < n; i++)
{
//printf("%d\\n", tmp);
sum += tmp;
tmp = tmp * 10 + a;
}
printf("结果为:%ld\\n", sum);
return 0;
}
14、输入5个数,求它们中最大值和平均值并输出。
#include <stdio.h>
#include <limits.h>
int main()
{
int max = INT_MIN;
double avg = 0;
int n[5];
int i = 0;
int sum = 0;
for (i = 0; i < 5; i++)
{
scanf("%d", &n[i]);
sum += n[i];
if (n[i] > max)
{
max = n[i];
}
}
avg = sum / 5.0;
printf("最大值为:%d,平均值为:%.2lf\\n", max, avg);
return 0;
}
15、输出所有200-400之间能被3整除且个位数字为6的整数。
#include <stdio.h>
int main()
{
int i = 0;
printf("能被3整除且尾数为6的数字有如下:\\n");
for (i = 200; i < 400; i++)
{
if (0 == i % 3 && 6 == i % 10)
{
printf("%d ", i);
}
}
printf("\\n");
return 0;
}
16、编写程序,将用户输入的字符串中所有的字符a去掉,然后输出剩余的字符。
#include <stdio.h>
int main()
{
char str[100];
char tmp[100];
int i = 0;
int j = 0;
fgets(str, 100, stdin);
while (str[i] != '\\n')
{
if ('a' != str[i])
{
tmp[j++] = str[i];
}
i++;
}
tmp[j] = '\\0';
fputs(tmp, stdout);
printf("\\n");
return 0;
}
17、计算并输出200-400之间不能被7整除的整数的和。
#include <stdio.h>
int main()
{
int i = 0;
int sum = 0;
for (i = 200; i < 400; i++)
{
if (0 <以上是关于C语言练手题(52个小练习)的主要内容,如果未能解决你的问题,请参考以下文章