C语言面试真题1
1.char *string1 = "12345"和char[5] string2="12345"的区别。
答:char *string1 定义了指针,指针指向字符串的地址。char[5] string2定义了一个数组,存储字符串。
2.用C语言中的指针编写字符串翻转函数。
//解法一 #include <stdio.h> #include <string.h> int main() { char a[20] = {0}, b[20] = {0}, *p1, *p2; printf("随意输入一个字符串:"); //memset(b, 0X00, sizeof(b)); gets(a); p1 = a; p2 = b + strlen(a) - 1; for( ; *p1 != '\0'; p1++, p2--) *p2 = *p1; *p2='\0'; printf("string a is: %s\n", a); printf("string b is: %s\n", b); return 0; } //解法二 #include <stdio.h> #include <string.h> #define MAXN 1000 void reverse(char* str) { char* p = str + strlen(str)-1; char temp; while(str<p) { temp=*p; *p--=*str; *str++=temp; } } int main() { char str[MAXN]; printf("请输入一个字符串:\n"); gets(str); reverse(str); printf("翻转后的字符串是:\n%s\n", str); return 0; }
3.当关键字static修饰一个变量的时候,它的意义是什么?如static var = 0;当关键字static修饰一个函数时,它的意义是什么?如static add(int a, int b);
答:①static修饰全局变量只初始化一次,防止在其他单元中被引用,修饰局部变量时只被初始化一次,下一次依据上一次结果值。②static函数在内存中只有一份,普通函数在每个调用中维持一份拷贝。
4.有个单向链表,如何找到其中的中间项。
答:快慢指针法,用search跟mid两个指针同时指向头节点,然后每次search指针移动2个单位,mid指针移动1个单位,当search指针到达表尾时,mid指针所指向的正是中间项了。因为由于search指针每次走2步,所以它所在的位置正是mid*2的位置,当search走了L步后,mid也就走了L/2步,正好是中间项,如此一来,只需要耗费O(L/2)的时间了。
int FindMid(Node **head) { Node *search,*mid; search = mid = *head; while(mid->next != NULL && search->next->next != NULL) { search = search->next->next; mid = mid->next; } return mid->key; }
5.编程题:用一个递归函数实现n的阶乘。
#include<stdio.h> int func(int n)/*递归函数*/ { int fac; if (n < 0) printf("n<0,data error!"); else if (n == 0 || n == 1) fac = 1; else fac = func(n - 1) * n; return fac; } int main() { int n, y; printf("请输入一个整数:\n"); scanf_s("%d", &n); y = func(n); printf("%d!=%d", n, y); return 0; }
7.列举无线通信技术,描述他们的优缺点。

Zig-Bee:Zig-Bee是基于IEEE802.15.4标准而建立的一种短距离、低功耗的无线通信技术。
蓝牙(Bluetooth):能够在10米的半径范围内实现点对点或一点对多点的无线数据和声音传输,其数据传输带宽可达1Mbps通讯介质为频率在2.402GHz到2.480GHz之间的电磁波。
无线宽带(Wi-Fi):它是一种基于802.11协议的无线局域网接入技术。(Wi-Fi)技术突出的优势在于它有较广的局域网覆盖范围,其覆盖半径可达100米左右,相比于蓝牙技术,(Wi-Fi)覆盖范围较广;传输速度非常快,其传输速度可以达到11mbps(802.11b)或者54mbps(802.11.a),适合高速数据传输的业务;无须布线,可以不受布线条件的限制,非常适合移动办公用户的需要。

浙公网安备 33010602011771号