典型的程序员面试题

1、一般赋值语句的概念和方法。求下程序输出:
#include<stdio.h>  
 
int main()  
{  
int x, y = 3, z = 4;  
x = (y = z);  
printf("x = %d\n", x);  x = 4;
 
x = (y == z);  
printf("x = %d\n", x);  x = 1
 
x = (y | z);  
printf("x = %d\n", x);  x = 7
 
x = (y || z);  
printf("x = %d\n", x);  x = 1
 
x = (y & z);  
printf("x = %d\n", x);  x = 0
 
x = (y && z);  
printf("x = %d\n", x);  x = 1
 
return 0;  
}  

2、i++和++i的区别 阅读代码写输出
#include <stdio.h>  
 
int main()  
{  
int i = 8;  
 
printf("i = %d\n", ++i);  i = 9
printf("i = %d\n", --i);  i = 8
printf("i = %d\n", i++);  i = 8
printf("i = %d\n", i--);  i = 9 
printf("i = %d\n", -i++); i = -8
printf("i = %d\n", -i--); i = -9
 
return 0;  
}  

3、有符号变量与无符号变量的值的转换 看程序写输出
#include <stdio.h>  
 
char getchar(int x, int y)  
{  
char c;  
unsigned int a = x;  
(a + y > 10 ) ? (c = 1):(c = 2);  
return c;  
}  
 
int main()  
{  
char c1 = getchar(7, 4);  
char c2 = getchar(7, 3);  
char c3 = getchar(7, -7);  
char c4 = getchar(7, -8);  
 
printf("c1 = %d\n", c1);  c1 = 1
printf("c2 = %d\n", c2);  c2 = 2
printf("c3 = %d\n", c3);  c3 = 2
printf("c4 = %d\n", c4);  c4 = 1  
 
return 0;  
}  


4、为什么标准头文件都有类似以下的结构?
1#ifndef _HEAD_H  
2#define _HEAD_H  
3#ifdef _cplusplus  
4extern "C" {  
5#endif  
6/*...*/  
7#ifdef _cplusplus  
8}  
9#endif  
10#endif /*_INCvxWorksh*/
1.2.10的作用是为了防止该头文件被重复引用
代码第3行的作用是表示当前使用的C++编译器
代码4 ~8 的extern“c”是C++编译器提供的与C++编译器提供的与C连接交换指定的符号,用来解决名字匹配的问题

5、#include <head.h>和#include “head.h”有什么区别?
<>表明这个文件是一个工程或标准头文件,查找过程会首先检查预定义的目录,我们可以通过设置搜索路径环境变量或者命令行选项来修改这些目录。
如果一个文件名用一对引号括起来则表明该文件是用户提供的头文件,查找该文件时将从当前文件目录中寻找文件,然后在标准位置寻找文件。


6、C语言中main函数执行完后还执行其他语句吗?


不执行


7、写出代码输出结果
#include <stdio.h>  
 
#define SQR(x)   (x*x)  
 
int main()  
{  
int a, b = 3;  
a = SQR(b+2);  
printf("a = %d\n", a);  
 
return 0;  
}  

a= 11
8、宏参数的连接 看代码,写输出
#include <stdio.h>  
 
#define STR(s)          #s  
#define CONS(a, b)      (int)(a##e##b)  
 
int main()  
{  
printf(STR(vck));  
printf("\n");  
printf("%d\n", CONS(2,3));  
 
return 0;  
}  
vck
2000

9、const使用时的注意点,指出下面程序中哪句话出现错误
1#include <stdio.h>  

3int main()  
4{  
5 const int x = 1;  
6 int b = 10;  
7 int c = 20;  
8  
9 const int* m = &b;  
10 int* const n = &b;  
11 const int* const s = &b;  
12  
13 x = 2;  
14  
15 m = &c;  
16 *m = 1;  
17  
18 n = &c;  
19 *n = 1;  
20  
21 s = &c;  
22 *s = 1;  
23  
24 return 0;  
25}  
13 16 18 21 出现了错误
10、使用sizeof计算普通变量所占空间大小  计算结果:(假设32位win)
char str[] = "hello";  
char *p = str;  
int n = 10;  
sizeof(str) = __6__;  
sizeof(p) = __4__;  
sizeof(n) = ___4_;  
void func(char str[100])  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值