10个经典的C语言面试基础算法及代码Word格式.docx
《10个经典的C语言面试基础算法及代码Word格式.docx》由会员分享,可在线阅读,更多相关《10个经典的C语言面试基础算法及代码Word格式.docx(20页珍藏版)》请在冰点文库上搜索。
n)
{
display=t1+t2;
t1=t2;
t2=display;
++count;
%d+"
display);
}
return0;
}
结果输出:
10
0+1+1+2+3+5+8+13+21+34+
也可以使用下面的源代码:
/*DisplayingFibonacciseriesuptocertainnumberenteredbyuser.*/
intt1=0,t2=1,display=0,num;
Enteraninteger:
num);
while(display<
num)
200
0+1+1+2+3+5+8+13+21+34+55+89+144+
2、回文检查
源代码:
/*Cprogramtocheckwhetheranumberispalindromeornot*/
intn,reverse=0,rem,temp;
&
temp=n;
while(temp!
=0)
rem=temp%10;
reverse=reverse*10+rem;
temp/=10;
}
/*Checkingifnumberenteredbyuserandit'
sreversenumberisequal.*/
if(reverse==n)
%disapalindrome."
n);
else
%disnotapalindrome."
12321
12321isapalindrome.
3、质数检查
注:
1既不是质数也不是合数。
/*Cprogramtocheckwhetheranumberisprimeornot.*/
intn,i,flag=0;
Enterapositiveinteger:
for(i=2;
i<
=n/2;
++i)
if(n%i==0)
flag=1;
break;
if(flag==0)
%disaprimenumber."
%disnotaprimenumber."
29
29isaprimenumber.
4、打印金字塔和三角形
使用
*
建立三角形
*
**
***
****
*****
inti,j,rows;
Enterthenumberofrows:
rows);
for(i=1;
=rows;
for(j=1;
j<
=i;
++j)
*"
\n"
如下图所示使用数字打印半金字塔。
1
12
123
1234
12345
%d"
j);
用*打印半金字塔
***
for(i=rows;
i>
=1;
--i)
用*打印金字塔
*
***
*****
*******
*********
inti,space,rows,k=0;
for(space=1;
space<
=rows-i;
++space)
while(k!
=2*i-1)
++k;
k=0;
用*打印倒金字塔
#include<
introws,i,j,space;
Enternumberofrows:
for(space=0;
rows-i;
for(j=i;
=2*i-1;
for(j=0;
i-1;
5、简单的加减乘除计算器
/*Sourcecodetocreateasimplecalculatorforaddition,subtraction,multiplicationanddivisionusingswitch...casestatementinCprogramming.*/
#include<
charo;
floatnum1,num2;
Enteroperatoreither+or-or*ordivide:
%c"
o);
Entertwooperands:
%f%f"
num1,&
num2);
switch(o){
case'
+'
:
%.1f+%.1f=%.1f"
num1,num2,num1+num2);
-'
%.1f-%.1f=%.1f"
num1,num2,num1-num2);
*'
%.1f*%.1f=%.1f"
num1,num2,num1*num2);
/'
%.1f/%.1f=%.1f"
num1,num2,num1/num2);
default:
/*Ifoperatorisotherthan+,-,*or/,errormessageisshown*/
Error!
operatorisnotcorrect"
-
3.4
8.4
3.4-8.4=-5.0
6、检查一个数能不能表示成两个质数之和
intprime(intn);
i<
++i)
if(prime(i)!
if(prime(n-i)!
%d=%d+%d\n"
n,i,n-i);
%dcan'
tbeexpressedassumoftwoprimenumbers."
intprime(intn)/*Functiontocheckprimenumber*/
inti,flag=1;
flag=0;
returnflag;
34
34=3+31
34=5+29
34=11+23
34=17+17
7、用递归的方式颠倒字符串
/*Exampletoreverseasentenceenteredbyuserwithoutusingstrings.*/
voidReverse();
Enterasentence:
Reverse();
voidReverse()
charc;
c);
if(c!
='
\n'
)
c);
margorpemosewa
awesomeprogram
8、实现二进制与十进制之间的相互转换
/*Cprogrammingsourcecodetoconverteitherbinarytodecimalordecimaltobinaryaccordingtodataenteredbyuser.*/
math.h>
intbinary_decimal(intn);
intdecimal_binary(intn);
intn;
Instructions:
1.Enteralphabet'
d'
toconvertbinarytodecimal.\n"
2.Enteralphabet'
b'
toconvertdecimaltobinary.\n"
if(c=='
||c=='
D'
Enterabinarynumber:
%dinbinary=%dindecimal"
n,binary_decimal(n));
B'
Enteradecimalnumber:
%dindecimal=%dinbinary"
n,decimal_binary(n));
intdecimal_binary(intn)/*Functiontoconvertdecimaltobinary.*/
intrem,i=1,binary=0;
while(n!
rem=n%2;
n/=2;
binary+=rem*i;
i*=10;
returnbinary;
intbinary_decimal(intn)/*Functiontoconvertbinarytodecimal.*/
intdecimal=0,i=0,rem;
rem=n%10;
n/=10;
decimal+=rem*pow(2,i);
++i;
returndecimal;
9、使用多维数组实现两个矩阵的相加
intmain(){
intr,c,a[100][100],b[100][100],sum[100][100],i,j;
Enternumberofrows(between1and100):
r);
Enternumberofcolumns(between1and100):
\nEnterelementsof1stmatrix:
/*Storingelementsoffirstmatrixenteredbyuser.*/
for(i=0;
r;
c;
Enterelementa%d%d:
i+1,j+1);
a[i][j]);
/*Storingelementsofsecondmatrixenteredbyuser.*/
Enterelementsof2ndmatrix:
b[i][j]);
/*AddingTwomatrices*/
sum[i][j]=a[i][j]+b[i][j];
/*Displayingtheresultantsummatrix.*/
\nSumoftwomatrixis:
\n\n"
sum[i][j]);
if(j==c-1)
\n\n"
10、矩阵转置
inta[10][10],trans[10][10],r,c,i,j;
Enterrowsandcolumnofmatrix:
%d%d"
r,&
/*Storingelementofmatrixenteredbyuserinarraya[][].*/
\nEnterelementsofmatrix:
j<
++j)
Enterelementsa%d%d:
/*Displayingthematrixa[][]*/
\nEnteredMatrix:
\n"
a[i][j]);
/*Findingtransposeofmatrixa[][]andstoringitinarraytrans[][].*/
trans[j][i]=a[i][j];
/*Displayingthetranspose,i.e,Displayingarraytrans[][].*/
\nTransposeofMatrix:
trans[i][j]);
if(j==r-1)