原来准备暑假到寒假期间更新一些关于c++还有QT的一些基础使用,以及单片机的基础内容,因为个人原因没有更新,正好这段时间重新温习一下C语言,就把一些基础的题目写完上传,新手可以照着练练手。
题一:
显示出正整数m的所有因子及因子的个数?
#include"math.h"
void main()
{
int data=0, i,k;
printf("input number:");
scanf("%d",&i);
for (k = 1; k < sqrt(i); k++)
{
if (!(i % k))
{
printf("%d %d\n", k, i / k);
data += 2;
}
}
printf("一共%d公因数",data);
}
题二:
显示出正整数m和n的最大公约数?
#include"math.h"
void main()
{
int i, j, k,max=NULL;
printf("input number:");
scanf("%d%d", &i, &j);
if (i > j)
{
for (k = 1; k <= j; k++)
{
if (!(i%k) && !(j%k))
{
max = k;
if (k > max)
{
max = k;
}
}
}
}
else
{
for (k = 1; k <= i; k++)
{
if (!(i%k) && !(j%k))
{
max = k;
if (k > max)
{
max = k;
}
}
}
}
printf("max = %d",max);
}
题三:
打印所有水仙花数?
#include"math.h"
void main()
{
int ge, shi, bai,i;
for (i = 100; i < 1000; i++)
{
ge = i % 10;
shi = (i / 10) % 10;
bai = i / 100;
if (i == (ge*ge*ge + shi * shi*shi + bai * bai*bai))
{
printf("%d\n",i);
}
}
}
题四:
百元买百鸡(100元钱买100只鸡),公鸡每只5元,母鸡每只3元,小鸡1元3只,可买公鸡、母鸡、小鸡各几只,有几种买法。
#include "stdio.h"
void main()
{
int man, she, yong,data=0;
for (man = 0; man < 20; man++)
{
printf("");
for (she = 0; she < 33; she++)
{
for (yong = 0; yong < 300; yong += 3)
{
if (((15*man + 9 * she + yong) == 300) && ((man + she + yong) == 100))
{
printf("公鸡%d 母鸡 %d 小鸡%d\n", man, she, yong);
data++;
}
}
}
}
printf("一共%d种买法",data);
}
题五:
…有一条长阶梯 若每步跨2阶,则最后剩余1阶;。若每步跨3阶,则最后剩2阶;。若每步跨4阶,则最后剩3阶;。若每步跨5阶,则最后剩4阶 若每步跨6阶,则最后剩5阶;若每跨7阶,最后才正好一阶不剩 请问,这条阶梯最少共有多少阶?
#include "stdio.h"
void main()
{
int i;
for (i = 1;; i++)
{
if ((i % 2 == 1) && (i % 3 == 2) && (i % 4 == 3) && (i % 5 == 4) && (i % 6 == 5) && (i % 7 == 0))
{
printf("阶层为 = %d", i);
break;
}
}
}
题六:
找出以下疑案的作案人已知该案涉及6个嫌疑人A、B、C、D、E、F,并且:
(1)A、B至少有一人作案。
(2)A、E、F这3人中至少有2人参与作案。(3)A、D不可能是同案犯。
(4)B、C或同时作案,或与本案无关。(5)C、D中有且仅有一人作案。
(6)如果D没有作案,则E也不可能参与作案。
void main()
{ //作案为1 不做案为0;
int a, b, c, d, e, f;
for (a = 0; a <= 1; a++)
{
for (b = 0; b <= 1; b++)
{
for (c = 0; c <= 1; c++)
{
for (d = 0; d <= 1; d++)
{
for (e = 0; e <= 1; e++)
{
for (f = 0; f <= 1; f++)
{
if (6 ==(a || b)+ (!(a && d))+ ((a && e) || (a && f) || (e && f)) + ((b && c) || (!b && !c)) + ((c && !d) || (d && !c)) + (d || (!e)))
{
}
}
}
}
}
}
}
}
题七:
找出 1-1024之间全部素数
#include"math.h"
void main()
{
int i, j;
for (i = 1; i <= 1024; i++)
{
for (j = 2; j <= sqrt(i); j++)
{
if(i%j == 0)
{
break;
}
else {
}
}
if (j > sqrt(i))
{
printf("%d是素数\n",i);
}
else
{
//printf("%d不是素数\n", i);
}
}
}
产生一定范围随机数的通用表示公式
要取得[a,b)的随机整数,使用(rand() % (b-a))+ a;
要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a;
要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1;
通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。
要取得a到b之间的随机整数,另一种表示:a + (int)b * rand() / (RAND_MAX + 1)。
要取得0~1之间的浮点数,可以使用rand() / double(RAND_MAX)。
题八:
使用冒泡排序法选择任意十个数由小到大排序。
#include"stdio.h"
#include"time.h"
#include"stdlib.h"
void Bubble_Sorting(int data[], int len);
void random_data(int data[], int len);
void random_data(int data[], int len)
{
int i;
for (i = 0; i < len; i++)
{
data[i] = rand() % (100 - 0 + 1) + 0;
}
}
void Bubble_Sorting(int data[], int len)
{
int i,k,data_;
for (i = 0; i < len; i++)
{
for (k = 0; k < len - i-1; k++)
{
if (data[k] > data[k + 1])
{
data_ = data[k + 1];
data[k + 1] = data[k];
data[k] = data_;
}
}
}
}
void show_data(int data[], int len)
{
int i;
printf("输出数据:");
for (i = 0; i < len; i++)
{
printf("%3d",data[i]);
}
printf("\n");
}
void main()
{
int data[10];
srand((unsigned int)(time(NULL)));
random_data(data,10);
show_data(data,10);
Bubble_Sorting(data, 10);
show_data(data, 10);
}
题九:
使用选择排序法选择任意十个数由小到大排序。
void Select_sort(int data[], int len)
{
int i,j,data_;
for (i = 0; i < len - 1; i++)
{
for (j = i + 1;j < len; j++)
{
if (data[i] > data[j])
{
data_ = data[i];
data[i] = data[j];
data[j] = data_;
}
}
}
}
题十:
利用随机函数给出10*10字符赋值为大写字母并输出,统计各字母出现次数
#include"stdio.h"
#include"time.h"
#include"stdlib.h"
void random_data(char data[10][10], int len_x, int len_y);
void show_data(char data[10][10], int len_x, int len_y);
void Statistics_data(char data[10][10], int len_x, int len_y);
void random_data(char data[10][10],int len_x,int len_y)
{
int i, j;
for (i = 0; i < len_x; i++)
{
for (j = 0; j < len_y; j++)
{
data[i][j] = rand() % 26+65;
}
}
}
void show_data(char data[10][10], int len_x, int len_y)
{
int i, j;
printf("输出数据:");
printf("\n");
for (i = 0; i < len_x; i++)
{
for (j = 0; j < len_y; j++)
{
printf("%-3c", data[i][j]);
}
printf("\n");
}
printf("\n");
}
void Statistics_data(char data[10][10], int len_x, int len_y)
{
int i,j,k,flag=0,sum=0;
for(k = 65;k<=90;k++)
{
for (i = 0; i < len_x; i++)
{
for (j = 0; j < len_y; j++)
{
if (k == data[i][j])
{
flag++;
}
}
}
if (flag == 0)
{
}
else
{
printf("%c出现的次数为%d\n",k,flag);
flag = 0;
}
}
}
void main()
{
srand(time(NULL));
char data[10][10];
random_data(data,10,10);
show_data(data, 10, 10);
Statistics_data(data, 10, 10);
}