10个经典的C语言面试基础算法及代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10个经典的C语言面试基础算法及代码
算法是一个程序和软件的灵魂,下面小编为大家整理了10个经典的C语言面试基础算法及代码,希望能帮到大家!
1、计算Fibonacci数列
Fibonacci数列又称斐波那契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21。
C语言实现的代码如下:
/* Displaying Fibonacci sequence up to nth term where n is entered by user. */
#include
int main()
{
int count, n, t1=0, t2=1, display=0;
printf(Enter number of terms: );
scanf(%d,n);
printf(Fibonacci Series: %d+%d+, t1, t2); /* Displaying first two terms */
count=2; /* count=2 because first two terms are already displayed. */
while (countn)
{
display=t1+t2;
t1=t2;
t2=display;
++count;
printf(%d+,display);
}
return 0;
}
结果输出:
Enter number of terms: 10
Fibonacci Series: 0+1+1+2+3+5+8+13+21+34+
也可以使用下面的源代码:
/* Displaying Fibonacci series up to certain number entered by user. */
#include
int main()
{
int t1=0, t2=1, display=0, num;
printf(Enter an integer: );
l }
结果输出:
Enter an integer: 200
Fibonacci Series: 0+1+1+2+3+5+8+13+21+34+55+89+144+
2、回文检查
源代码:
/* C program to check whether a number is palindrome or not */
#include
int main()
{
int n, reverse=0, rem,temp;
printf(Enter an integer: );
scanf(%d, n);
temp=n;
while(temp!=0)
{
rem=temp%10;
reverse=reverse*10+rem;
temp/=10;
}
/* Checking if number entered by user and its reverse number is equal. */
if(reverse==n)
printf(%d is a palindrome.,n);
else
printf(%d is not a palindrome.,n); return 0;
}
结果输出:
Enter an integer: 12321
12321 is a palindrome.
3、质数检查
注:1既不是质数也不是合l { flag=1;
break;
}
}
if (flag==0)
printf(%d is a prime number.,n); else
printf(%d is not a prime number.,n); return 0;
}
结果输出:
Enter a positive integer: 29
29 is a prime number.
4、打印金字塔和三角形
使用* 建立三角形
*
* *
* * *
* * * *
* * * * *
源代码:
#include
int main()
{
int i,j,rows;
printf(Enter the number of rows: ); scanf(%d,rows);
for(i=1;i=rows;++i)
{
for(j=1;j=i;++j)
{
printf(* );
}
printf();
}
return 0;
}
如下图所示使用数字打印半金字塔。1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
源代码:
#include
int main()
{
int i,j,rows;
printf(Enter the number of rows: ); scanf(%d,rows);
for(i=1;i=rows;++i)
{
for(j=1;j=i;++j)
{
printf(%d ,j);
}
printf();
}