“cnki_zg_178”通过精心收集,向本站投稿了3篇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 )
{
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等)? 怎样才能有效地在繁琐的立体图象中选取你所需的元件/部件, 或检查它们间的联接? 设计过多层(三维集成)电路吗? 常用的电路设计软件有哪些? 在做三维电路时最大的问题是什么?






