您的当前位置:首页正文

10个经典的C语言面试基础算法及代码(2)

2021-08-01 来源:爱站旅游
导读10个经典的C语言面试基础算法及代码(2)
10个经典的C语言面试基础算法及代码(2)

10个经典的C语言面试基础算法及代码 5、简单的加减乘除计算器 源代码:

/* Source code to create a simple calculator for addition, subtraction, multiplication and division using switch...case statement in C programming. */

# include int main() { char o;

float num1,num2;

printf(\"Enter operator either + or - or * or divide : \"); scanf(\"%c\

printf(\"Enter two operands: \"); scanf(\"%f%f\switch(o) { case '+':

printf(\"%.1f + %.1f = %.1f\break; case '-':

printf(\"%.1f - %.1f = %.1f\break; case '*':

printf(\"%.1f * %.1f = %.1f\break; case '/':

printf(\"%.1f / %.1f = %.1f\break;

default:

/* If operator is other than +, -, * or /, error message is shown */

printf(\"Error! operator is not correct\"); break; } return 0; }

结果输出:

Enter operator either + or - or * or divide : - Enter two operands: 3.4 8.4

3.4 - 8.4 = -5.0

6、检查一个数能不能表示成两个质数之和 源代码: #include int prime(int n); int main() {

int n, i, flag=0;

printf(\"Enter a positive integer: \"); scanf(\"%d\for(i=2; i<=n/2; ++i) {

if (prime(i)!=0) {

if ( prime(n-i)!=0) {

printf(\"%d = %d + %d \flag=1;

} } }

if (flag==0)

printf(\"%d can't be expressed as sum of two prime numbers.\

return 0; }

int prime(int n) /* Function to check prime number */ {

int i, flag=1;

for(i=2; i<=n/2; ++i) if(n%i==0) flag=0; return flag; }

结果输出:

Enter a positive integer: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17

7、用递归的方式颠倒字符串 源代码:

/* Example to reverse a sentence entered by user without using strings. */

#include void Reverse(); int main() {

printf(\"Enter a sentence: \"); Reverse(); return 0; }

void Reverse() { char c;

scanf(\"%c\if( c != ' ') {

Reverse(); printf(\"%c\} }

结果输出:

Enter a sentence: margorp emosewa awesome program

8、实现二进制与十进制之间的相互转换

/* C programming source code to convert either binary to decimal or decimal to binary according to data entered by user. */

#include #include

int binary_decimal(int n); int decimal_binary(int n); int main() { int n; char c;

printf(\"Instructions: \");

printf(\"1. Enter alphabet 'd' to convert binary to decimal. \"); printf(\"2. Enter alphabet 'b' to convert decimal to binary. \"); scanf(\"%c\if (c =='d' || c == 'D') {

printf(\"Enter a binary number: \"); scanf(\"%d\

printf(\"%d in binary = %d in decimal\}

if (c =='b' || c == 'B') {

printf(\"Enter a decimal number: \"); scanf(\"%d\

printf(\"%d in decimal = %d in binary\} return 0; }

int decimal_binary(int n) /* Function to convert decimal to binary.*/

{

int rem, i=1, binary=0; while (n!=0) {

rem=n%2; n/=2;

binary+=rem*i; i*=10; }

return binary; }

int binary_decimal(int n) /* Function to convert binary to decimal.*/

{

int decimal=0, i=0, rem; while (n!=0) {

rem = n%10; n/=10;

decimal += rem*pow(2,i); ++i; }

return decimal; }

结果输出:

9、使用多维数组实现两个矩阵的相加 源代码: #include int main(){

int r,c,a[100][100],b[100][100],sum[100][100],i,j; printf(\"Enter number of rows (between 1 and 100): \"); scanf(\"%d\

printf(\"Enter number of columns (between 1 and 100): \"); scanf(\"%d\

printf(\" Enter elements of 1st matrix: \");

/* Storing elements of first matrix entered by user. */ for(i=0;iprintf(\"Enter element a%d%d: \scanf(\"%d\j]);

}

/* Storing elements of second matrix entered by user. */ printf(\"Enter elements of 2nd matrix: \"); for(i=0;iprintf(\"Enter element a%d%d: \scanf(\"%d\j]); }

/*Adding Two matrices */ for(i=0;i/* Displaying the resultant sum matrix. */ printf(\" Sum of two matrix is: \"); for(i=0;iprintf(\"%d \j]); if(j==c-1) printf(\" \"); } return 0; }

结果输出: 10、矩阵转置 源代码: #include int main() {

int a[10][10], trans[10][10], r, c, i, j;

printf(\"Enter rows and column of matrix: \"); scanf(\"%d %d\

/* Storing element of matrix entered by user in array a[][]. */ printf(\" Enter elements of matrix: \"); for(i=0; iprintf(\"Enter elements a%d%d: \scanf(\"%d\j]); }

/* Displaying the matrix a[][] */ printf(\" Entered Matrix: \"); for(i=0; iprintf(\"%d \j]); if(j==c-1) printf(\" \"); }

/* Finding transpose of matrix a[][] and storing it in array trans[][]. */

for(i=0; itrans[j][i]=a[i][j]; }

/* Displaying the transpose,i.e, Displaying array trans[][]. */ printf(\" Transpose of Matrix: \"); for(i=0; ifor(j=0; jprintf(\"%d \j]); if(j==r-1) printf(\" \"); } return 0; }

结果输出:

【10个经典的C语言面试基础算法及代码】

因篇幅问题不能全部显示,请点此查看更多更全内容