1、
int fun(int m)
{
static int temp=0;
temp+=m;
return temp;
}
void main()
{
int i=0;
int ret=0;
for(i=0; i<3; i++)
{
ret=fun(i);
}
printf(“%d \n”, ret);
}
请选择正确的输出结果: C
A.1
B.2
C.3
D.4
int x=5;
void main()
{
int s=10;
{
int x=2;
x+=s;
}
x+=s;
printf(“%d \n”, x);
}
请选择正确的输出结果: A
A.15
B.22
C.12
D.24
#define FUNC(x,y) (x>y)?’a’:’b’
int main()
{
unsigned int a=1;
char b=-1;
char c=0;
c=FUNC(a,b);
printf(“%c \n”, c);
return 0;
}
请选择正确的输出结果: B
A.a
B.b
C.’a’
D.’b’
#define MAX(x) (12>x>2)?(x+2):(x+4)
int main()
{
int a=0;
int b=0;
a=10;
b=MAX(a);
printf(“%d ”, b);
b=MAX(a)+4;
printf(“%d ”, b);
return 0;
}
请选择正确的输出结果: A
A.14 18 B.14 14 C.18 18 D.18 14
5、
#define FUNC(a, b) \
a++;\
++b;
int main()
{
int a=2;
int b=4;
int i=0;
for(i=0; i<2; i++)
FUNC(a, b)
printf(“%d %d\n”, a, b);
return 0;
}
请选择正确的输出结果: A
A.4 5
B.4 6
C.4 4
D.5 6
int main()
{
int a[]={
23,5,87,11,5};
int *p=NULL;
p=a;
printf(“%d \n”, *(p+2));
p=(int *)(&a+1);
printf(“%d \n”, *(p-2));
return 0;
}
请选择正确的输出结果: D
A.5 5
B.5 11
C.87 5
D.87 11
void GetMemory(char *p)
{
p = (char*)malloc(20);
}
void main()
{
char *p = NULL;
GetMemory(p);
strcpy(p, “hello world”);
printf(“%s”, p);
}
请选择正确的输出结果: D
A.hello world B.乱码 C.hello D.段错误
(因为是以传值的形式,子函数的p和主函数的p无关。而且不能对0地址进行操作)
正确写法:
void GetMemory(char **q)
GetMemory(&p)
8、
int main()
{
int a[]={
2,3,2,3};
int *ptr1=(int *)(&a+1);
int *ptr2=(int *)((int)a+1);
printf(“0x%x 0x%x \n”, ptr1[-1], *ptr2);
return 0;
}
请写出程序的输出结果:_____ ______
9、
typedef int (*FUNC1)(int);
typedef int (*FUNC2)(int*, int*, int*);
int inc(int a)
{
return ++a;
}
int multi(int *a, int *b, int *c)
{
return *c=*a**b;
}
void show(FUNC2 func, int arg1, int *arg2)
{
FUNC1 p=inc;
int temp=p(arg1);
func(&temp, &arg1, arg2);
printf(“%d\n”, *arg2);
}
int main()
{
int a;
show(multi, 10, &a);
return 0;
}
请写出程序的运行结果:_____
unsigned char *p1;
unsigned long *p2;
p1=(unsigned char *)0x801000;
p2=(unsigned long *)0x810000;
请问 p1+5=________ p2+5=_________
struct Test
{
int Num;
char *pcName;
short sDate;
char ch;
}*p;
假设 p 的值为 0x2000,下面表达式的值为:
p+0x1=_______
(unsigned long)p+0x1=_________
(unsigned int *)p+0x1=_________
1. 画出 x86 32 位系统下,进程的虚拟地址空间布局,
明确标识出.text .data、堆、栈、user space 和 kernel
space 的范围。
2. 简述 C/C++程序的编译、链接原理。
1.实现以下函数接口,参数传入一个数字字符串
如”3456”,转换成十进制的整数并返回。
int ConvertStringToDigit(char *str)
{
}
2.实现以下函数接口,判断参数传入的字符串是否
是回文,是返回 true,否则返回 false(注:回文
字符串是正反读都是一样的字符串,
如”abcdfdcba”):
bool IsPalin(char *str)
{
}
3. 完成接口,判断系统的大小端模式,小端模式
返回 0,大端模式返回 1.
int GetCurrentSysMode()
{