概述
C语言相关的其他练习题链接:
【C语言】c语言练习题【1】
【C语言】c语言练习题【2】
【C语言】c语言练习题【3】
【C语言】c语言练习题【4】
【C语言】c语言练习题【整数算法训练】
【C语言】c语言练习题【递归和栈编程训练】
【C语言】c语言练习题【字符串训练】
【C语言】c语言练习题【指针和链表训练】
目录
1.求a和b的最大公约数
2.求100~200间的所有素数,每行打印5个素数
3.将整数转换为10进制、2进制、16进制的数字串
4.整数数组的冒泡排序(从小到大)
5.计算字符串中的单词数。
1.求a和b的最大公约数
gcd(a ,b)= gcd(b, a%b)
例:gcd(36,24) =gcd(24, 12 ) =gcd(12, 0 )
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Ivan Version:0.1 Date:
Description:求a和b的最大公约数
gcd(a ,b)= gcd(b, a%b)
例:gcd(36,24) =gcd(24, 12 ) =gcd(12, 0 )(9)
Funcion List:
*****************************************************/
#include <stdio.h>
int gcd(int a, int b)
//跳过,一般从主函数看起
{
int x, y, i;
if (a > b)
//先找到两个数中较大的那个,作为除数
{
y = b;
x = a;
}
else
{
y = a;
x = b;
}
while (1)
{
if (x % y == 0)
//若余数不为0,则y还不是最大公约数
{
break;
}
i = x % y;
//余数赋值给y
x = y;
//两个数中较小的值y赋值给x
y = i;
//循环,直到余数为0,则y就是最大公约数
}
return y;
}
int main()
{
int a, b;
int i;
scanf("%d%d", &a, &b);
i = gcd(a,b);
//得到最大公约数
printf("最大公约数 = %dn", i);
return 0;
}
2.求100~200间的所有素数,每行打印5个素数
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Ivan Version:0.1 Date:
Description:求100~200间的所有素数,每行打印5个素数(11)
Funcion List:
*****************************************************/
#include <stdio.h>
int main()
{
int i, j, k = 0;
int s1[100];
for (i = 100; i <= 200; i++)
{
for (j = 2; j <= i; j++)
//两个for循环,第一个循环是100-200每一个数,第二个循环是判断该数是否是素数
{
if (i == j)
{
s1[k++] = i;
//若是就放入数组
}
if (i % j == 0)
{
break;
//若不是就退出,换下一个数
}
}
}
i = 0, j = 1;
while (k != 0)
{
printf("%d ",s1[i]);
//输出素数
if (j % 5 == 0)
{
printf("n");
//每五个一行
}
i++;
j++;
k--;
//k:总共有k个素数
}
printf("n");
return 0;
}
3.将整数转换为10进制、2进制、16进制的数字串
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Ivan Version:0.1 Date:
Description:将整数转换为10进制、2进制、16进制的数字串(12)
Funcion List:
*****************************************************/
#include <stdio.h>
void two(int n);
void ten(int n);
void sixteen(int n);
int main()
{
int n;
scanf("%d", &n);
two(n);
ten(n);
sixteen(n);
return 0;
}
void two(int n)
{
int i = 0;
int s1[100];
while(n != 0)
{
s1[i] = n % 2;
n = n / 2;
i++;
}
for(i = i - 1; i >= 0; i--)
{
printf("%d", s1[i]);
if(i % 4 == 0)
{
printf(" ");
}
}
printf("n");
}
void ten(int n)
{
int i = 0;
int s1[100];
while(n != 0)
{
s1[i] = n % 10;
n = n / 10;
i++;
}
for(i = i -1; i >= 0; i--)
{
printf("%d",s1[i]);
}
printf("n");
}
void sixteen(int n)
{
int i = 0, j;
char s1[100];
while(n != 0)
{
switch(n % 16)
//十六进制的余数,在>=10时,变为A-F可以用switch,其余相似
{
case 0:s1[i] = '0';break;
case 1:s1[i] = '1';break;
case 2:s1[i] = '2';break;
case 3:s1[i] = '3';break;
case 4:s1[i] = '4';break;
case 5:s1[i] = '5';break;
case 6:s1[i] = '6';break;
case 7:s1[i] = '7';break;
case 8:s1[i] = '8';break;
case 9:s1[i] = '9';break;
case 10:s1[i] = 'A';break;
case 11:s1[i] = 'B';break;
case 12:s1[i] = 'C';break;
case 13:s1[i] = 'D';break;
case 14:s1[i] = 'E';break;
case 15:s1[i] = 'F';break;
}
n = n / 16;
i++;
}
4.整数数组的冒泡排序(从小到大)
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Ivan Version:0.1 Date:
Description:整数数组的冒泡排序(从小到大)(13)
Funcion List:
*****************************************************/
#include <stdio.h>
#define N 5
int main()
{
int i, j, t;
int a[10];
for (i = 0; i < N; i++)
{
scanf("%d", &a[i]);
}
for (i = 0; i < N - 1 ; i++)
{
for (j = 0; j < N - 1 - i; j++)
//冒泡排序,两个循环,每一次都把最大的数移到最上面,重复移N-1次,完成N个数排序
{
if (a[j + 1] < a[j])
{
t = a[j + 1];
a[j + 1] = a[j];
a[j] = t;
}
}
}
for (i = 0; i < 5; i++)
{
printf("%dn", a[i]);
}
return 0;
}
5.计算字符串中的单词数。
单词:由空格分开的连续字母数字串。
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Ivan Version:0.1 Date:
Description:计算字符串中的单词数。
单词:由空格分开的连续字母数字串。
Funcion List:
*****************************************************/
#include <stdio.h>
int count_string(char *string)
{
int sum = 0;
char *p = NULL;
p = string;
while(*p != 'n')
{
if((*p >= '0' && *p <= '9') || (*p >= 'a' && *p <= 'z'))
{
sum++;
while((*p >= '0' && *p <= '9') || (*p >= 'a' && *p <= 'z'))
{
p++;
}
}
p++;
}
return sum;
}
int main()
{
char string[1024] = "0010 hello world hello c 10086 ! n";
int sum = 0;
sum = count_string(string);
printf("count = %dn",sum);
return 0;
}
最后
以上就是强健过客为你收集整理的【C语言】C语言练习题【1】(适合初学者)的全部内容,希望文章能够帮你解决【C语言】C语言练习题【1】(适合初学者)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复