c语言表现一些简单的图片,初学的c语言一些简单的练习题(自我练习)

1.打印99乘法表

#include

int main(){

int i, j;

for (i = 1; i <= 9; i++){

for (j = 1; j <= i; j++){

printf("%d*%d=%d\t", j, i, i*j);

if (i == j){

printf("\n");

}

}

}

system("pause");

return 0;

}

以上是实现99乘法表的打印,用了2个for语句循环很容易实现。

2.打印100-200之间的素数

#include

#include

int main()

{

int i, j;

int m;

for (i = 101; i <= 200; i = i + 2){

m = 0;

for (j = 2; j < sqrt(i); j++)

{

if (i%j == 0)

{

m = 1;

break;

}

}

if (m == 0)

printf("%d是素数\n", i);

}

system("pause");

return 0;}

在素数的求取过程中用到了sqrt()这个库函数,在使用sqrt()这个函数之前必须加上#include这个头文件才能使用,在c语言中有很多的库函数需要我们积累,这会在我们在实现某些功能时提供方便。

另外在程序编写时要注意程序的优化,我们不仅仅要把程序的功能实现,还需要使这个程序最简单,最效率。

3.1000-2000闰年打印

#include

int main(){

int i;

for (i = 1000; i <= 2000; i++)

{

if (i % 4 == 0 && i % 100 != 0||i%400==0)

{

printf("%-5d",i);

}

}

system("pause");

return 0;

}闰年的求取过程中最重要的就是掌握满足闰年的条件。

3.2个数的交换

#include

int main()

{ int i = 10;

int j = 20;

int m = 0;

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

m = i;

i = j;

j = m;

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

system("pause");

return 0;

}在2个数的交换过程中用了一个用来保护的中间变量。

这个问题还可以不用中间变量 具体如下

#include

int main()

{

int i = 10;

int j = 20;

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

i = i^j;

j = i^j;

i = i^j;

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

system("pause");

return 0;

}其中用了一个异或,2个数异或之后产生的值就好比密码一样,可以在把原值找回来,从而达到交换的目的。

4.写一个函数返回参数二进制中 1 的个数:

#include

int count_one_bits(unsigned int x);

int main()

{

int a,b;

scanf_s("%d", &a);

b=count_one_bits(a);

printf("%d",b);

system("pause");

return 0;

}

int count_one_bits(unsigned int x)

{

int count=0;

while (x)

{

count += x % 2;

x = x / 2;

}

return count;

}其中用了一个while循环使x的值又移即x/2,从而使x的值一直驱于0,从而跳出循环,在又移的过程对x进行取余,从而求出用二进制表示形式。

在此过程中需要注意的是数的左移右移,在数的左移时不管逻辑左移还是算术左移后边补得都是0,但是在右移过程中就不同了,在逻辑右移中左边都加0,但在算术右移时左边添加的东西和符号位有关,添加的就是符号位,而取逻辑还是算术和编译器有关,所以在上题中就要注意有符号和和无符号的右移。

5.10个数中找最大值#define _CRT_SECURE_NO_WARNINGS

#include

int main()

{

int i;

int a[10] = {0};

printf("请输入10个数");

for (i = 0; i < 10; i++)

{

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

}

int max = a[0];

for (i = 1; i <=9; i++)

{

if (max < a[i])

{

max = a[i];

}

}

printf("max=%d", max);

system("pause");

return 0;

}其中用了一个一维数组,注意一维数组的赋初值与一维数组的输入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值