“cnki_zg_178”通过精心收集,向本站投稿了3篇c 面试编程问题,下面是小编整理后的c 面试编程问题,欢迎您阅读,希望对您有所帮助。

c 面试编程问题

篇1:c 面试编程问题

c 面试编程问题

1、输出和为一个给定整数的所有组合

例如 n=5

5=1+4;5=2+3(相加的数不能重复)

则输出

1,4;2,3,

#include

int main(void)

{

unsigned long int i,j,k;

printf(“please input the number\n”);

scanf(“%d”,&i);

if( i % 2 == 0)

j = i / 2;

else

j = i / 2 + 1;

printf(“The result is \n”);

for(k = 0; k < j; k++)

printf(“%d = %d + %d\n”,i,k,i - k);

return 0;

}

#include

void main

{

unsigned long int a,i=1;

scanf(“%d”,&a);

if(a%2==0)

{

for(i=1;i

printf(“%d”,a,a-i);

}

else

for(i=1;i<=a/2;i++)

printf(“ %d, %d”,i,a-i);

}

2、递规反向输出字符串的例子,可谓是反序的经典例程.

void inverse(char *p)

{

if( *p = = '\0' )

return;

inverse( p+1 );

printf( “%c”, *p );

}

int main(int argc, char *argv[])

{

inverse(“abc\0”);

return 0;

}

对 1 的另一种做法:

#include

void test(FILE *fread, FILE *fwrite)

{

char buf[1024] = {0};

if (!fgets(buf, sizeof(buf), fread))

return;

test( fread, fwrite );

fputs(buf, fwrite);

}

int main(int argc, char *argv[])

{

FILE *fr = NULL;

FILE *fw = NULL;

fr = fopen(“data”, “rb”);

fw = fopen(“dataout”, “wb”);

test(fr, fw);

fclose(fr);

fclose(fw);

return 0;

}

3、用递归算法判断数组 a[N]是否为一个递增数组,

递归的'方法,记录当前最大的,并且判断当前的是否比这个还大,大则继续,否则返回 false结束:

bool fun( int a[], int n )

{

c 面试编程问题(共3篇)if( n= =1 )

return true;

if( n= =2 )

return a[n-1] >= a[n-2];

return fun( a,n-1) && ( a[n-1] >= a[n-2] );

}

篇2:c语言面试编程题

c语言面试编程题

1、读文件 file1.txt 的'内容(例如):

12

34

56

输出到 file2.txt:

56

34

12

#include

#include

int main(void)

{

int MAX = 10;

int *a = (int *)malloc(MAX * sizeof(int));

int *b;

FILE *fp1;

FILE *fp2;

fp1 = fopen(“a.txt”,“r”);

if(fp1 == NULL)

{printf(“error1”);

exit(-1);

}

fp2 = fopen(“b.txt”,“w”);

if(fp2 == NULL)

{printf(“error2”);

exit(-1);

}

int i = 0;

int j = 0;

while(fscanf(fp1,“%d”,&a[i]) != EOF)

{

i++;

j++;

if(i >= MAX)

{

MAX = 2 * MAX;

b = (int*)realloc(a,MAX * sizeof(int));

if(b == NULL)

{

printf(“error3”);

exit(-1);

}

a = b;

}

}

for(;--j >= 0;)

fprintf(fp2,“%d\n”,a[j]);

fclose(fp1);

fclose(fp2);

return 0;

}

2、写一段程序,找出数组中第 k 大小的数,输出数所在的位置,例如{2,4,3,4,7}中,第一大的数是 7,位置在 4。第二大、第三大的数都是 4,位置在 1、3 随便输出哪一个均可。

函数接口为:int find_orderk(const int* narry,const int n,const int k)

要求算法复杂度不能是 O(n^2)

可以先用快速排序进行排序,其中用另外一个进行地址查找代码如下,在 VC++6.0 运行通过。

//快速排序

#include

usingnamespacestd;

intPartition (int*L,intlow,int high)

{

inttemp = L[low];

intpt = L[low];

while (low < high)

{

while (low < high && L[high] >= pt)

--high;

L[low] = L[high];

while (low < high && L[low] <= pt)

++low;

L[low] = temp;

}

L[low] = temp;

returnlow;

}

voidQSort (int*L,intlow,int high)

{

if (low < high)

{

intpl = Partition (L,low,high);

QSort (L,low,pl - 1);

QSort (L,pl + 1,high);

}

}

intmain ()

{

intnarry[100],addr[100];

intsum = 1,t;

cout << “Input number:” << endl;

cin >>t;

while (t != -1)

{

narry[sum] = t;

addr[sum - 1] = t;

sum++;

cin >>t;

}

sum -= 1;

QSort (narry,1,sum);

for (int i = 1; i <= sum;i++)

cout << narry[i] << '\t';

cout << endl;

intk;

cout << “Please input place you want:” << endl;

cin >>k;

intaa = 1;

intkk = 0;

for (;;)

{

if (aa == k)

break;

if (narry[kk] != narry[kk + 1])

{

aa += 1;

kk++;

}

}

cout << “The NO.” << k << “number is:” << narry[sum - kk] << endl;

cout << “And it's place is:” ;

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

{

if (addr[i] == narry[sum - kk])

cout << i << '\t';

}

return0;

}

篇3:面试题:10道C/C++编程问题和电机问题

C/C++编程问题:

1. 起泡法对数组元素进行排序的思路是什么?你还知道哪些排序方法?

2. 在编写程序之前,你是否是先画出程序的流程图了?谈谈流程图对你在编程时的帮助,试写出对一列数用选择排序法进行升序排序的程序流程图。

3. 在c/c++中,谈谈对continue 与break 的区别。

4. 在处理动态链表时常常需要哪些函数?它们各自的功用是什么?可以用其它方式替代吗?

5. 在数组的存储中,对于稀疏矩阵是怎么样存储的?常采用什么样的结构?

6. 编程时,内存的分配方式有哪几种?分别有什么特点?

7. 请你谈谈指针除了在数组方面的优点外,还有什么其他的优点?也请你谈谈如何将指针与数组结合使用,以便最大限度地利用它们各自的长处。

8. 为了提高程序的效率,在编写程序时应注意那几个方面?

9. 一个大型软件的开发,应该包括哪些基本环节?当把一个比较大的工程,分为若干个比较小的工程时,该如何确保这些小的工程之间的联系不被破坏?

10. 在你所编写的程序中,对程序的调试一般需经过哪几个步骤?

电机问题:

1. 请你用矩阵型式表达一个二端口Pi型高通网络的电流和电压关系. 如将此网络扩展成四端口型Pi高通网络, 它的电流和电压关系又是怎样的?

2. 当两根直线电线靠近但不接触时, 它们的相互位置应该怎样才能使它们间的互感最小? 为什么?

3. 共轭匹配的目的是什么? 为什么能达到此目的? 微波电路中, 共轭匹配时反射系数最小吗? 为什么?

4. 模拟电路: 一般分析和设计都是在频域进行, 时域分析有什么用? 怎样进行两域间的转换? 当电路的工作波长和尺寸大小达到什么样的关系时, 分立元件电路开始不时用了?

5. 线性电路的线性体现在哪儿? 在什么情况下电压的输入输出关系不变? 输入电压变化后, 输出功率线性变化吗?

6. 测量电压时, 测量仪器的内阻应该怎样? 测电流时又该怎样? 为什么? 电磁测量时对探头又有什么要求?

7. 微波技术与天线: S-, T-, 和 ABCD 参数及他们之间的定义和相互间的转换? 什么是微波电路的端口, 终端, 传输线阻抗和传输系数? 匹配的目的和形式? 天线的主要形式和指标有哪些? 激励源应放在天线的什么位置? 使?霉哪些这一方面的设计分析软迹浚

8. 数字电路: 信号的完整性在数字通信中非常重要.在电路的具体实现上, 就是信号的rising time 和decaying time. 与这些时域指标相应的频域指标是什么? 除了电路自身的rising time 和decaying time外, 还有哪些因素会影响信号的完整性?

9. EDA: 它与CAD有多少区别? 为什么现在业界通常将CAD, CAE等归入EDA? 用过哪些这方面的软件? 比如电路布线(LAYOUT)软件等. 谈谈它们的主要功能和优缺点.

10. 数字图象处理: 使用过哪些3维图像软件(比如AUTOCAD等)? 怎样才能有效地在繁琐的立体图象中选取你所需的元件/部件, 或检查它们间的联接? 设计过多层(三维集成)电路吗? 常用的电路设计软件有哪些? 在做三维电路时最大的问题是什么?

阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。