c语言面试题

1、编一个判别质数的函数,如果是质数,函数的返回值是1,否则为0。

#include <stdio.h>
int fun(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0) 
return 0;
return 1;
}
int main()
{
int n;
scanf("%d",&n);
if(fun(n))
printf("%d是素数\n",n);
else
printf("%d不是素数\n",n);
return 0;
}

2、编写一个函数,输入两个正数,输出最大公约数和最小公倍数

#include <stdio.h>
int main()
{	
	int p,r,n,m,temp;
	printf("请输入两个正整数:");
	scanf("%d,%d",&n,&m);
	if(n<m)
		{ temp=n;n=m;m=temp;}
	p=n*m;
	while(m!=0)
	{
		r=n%m;
		n=m;
		m=r;
	}
	printf("最大公约数为:%d\n",n);
	printf("最小公倍数为:%d\n",p/n);
	return 0;
}

3、一张一元纸币兑换成一分、两房和五分的硬币,假定每一种至少一枚,编程序计算共有多少种方法并打印每种兑换方法

#include<stdio.h>
main()
{
    int i,j;
    int sum=0;
    for(i=0;i<=50;i++)
    for(j=0;j<=20;j++)
    if(100-2*i-5*j>=0)
    {
        printf("1分%3d张  2分%3d张   5分%3d张",100-2*i-5*j,i,j);
        sum++;
        if(sum%2==0)
            printf("\n");

    }
    printf("\n%d\n",sum);
    return 0;
}

4、编程序求以下表达式的值:1-2+3-4+……+m

int Sum = 0 ;

for (int i = 0 ; i < Num + 1 ; i++)

{

if((i%2) == 1)

{

Sum += i ;

}

else

{

Sum = Sum - I ;

}

}

5、一列数的规则如下:1、1、2、3、5、8、13、21、34……,求第三十位数是多少,请编程序用递归法实现

 class Program
    {
        static void Main(string[] args)             
        {
              Console.WriteLine(Foot(3));
              Console.ReadKey();
        }
        public static int Foot(int i)
        {
            if (i <= 0)
            {
                Console.WriteLine("abc");
                return 0;
            }
                
            else if (i > 0 && i <= 2)
            {
                Console.WriteLine("abc");
                return 1;
            }
               
            else
            {
                Console.WriteLine("abc");
                return Foot(i - 1) + Foot(i - 2);
            }
                
 
        }
 
    }

6、编写一个函数,在屏幕上打印出下列图形

#

###

#####

#######

#########

###########

#############

###############

#include <stdio.h>
void xing(int a,int b)//a为*数量,b为行长度
{
	int i;
	for(i=1;i<=((b-a)/2);i++)
		printf(" ");
	for(i=1;i<=a;i++)
		printf("*");
	for(i=1;i<=((b-a)/2);i++)
		printf(" ");
	printf("\n");
}
int main()
{
    int a,i;
	scanf("%d",&a);
	if(a%2==0)
	{
		printf("error\n");
		return 0;
	}
	if(a<=0||a>=80)
	{
		printf("error\n");
		return 0;
	}
	for (i=1;i<=a;i+=2)
		xing(i,a);
	return 0;
}

7、编写一个函数,在屏幕上打印出下列乘法表

1*1=1

1*2=2     2*2=4

1*3=3     2*3=6    3*3=9

1*4=4     2*4=8    3*4=12  4*4=16

1*5=5     2*5=10  3*5=15  4*5=20  5*5=25

1*6=6     2*6=12  3*6=18  4*6=24  5*6=30  6*6=36

1*7=7     2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49

1*8=8     2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64

1*9=9    2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

#include<stdio.h>
int main() {
	int i,j;
	for(i=1; i<=9; i++) {
		for(j=1; j<=i; j++)
			printf("%d*%d=%2d  ",i,j,i*j);

		printf("\n");
	}
	return 0;
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值