673-C语言笔试题

C语言选择题

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 

673-C语言笔试题_第1张图片
2、

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

673-C语言笔试题_第2张图片
3、

#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’

673-C语言笔试题_第3张图片
4、

#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

673-C语言笔试题_第4张图片
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 

673-C语言笔试题_第5张图片
673-C语言笔试题_第6张图片
673-C语言笔试题_第7张图片
673-C语言笔试题_第8张图片
7、

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; 
} 
请写出程序的输出结果:_____ ______ 

673-C语言笔试题_第9张图片
673-C语言笔试题_第10张图片
673-C语言笔试题_第11张图片

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; 
} 
请写出程序的运行结果:_____ 

673-C语言笔试题_第12张图片
10、

unsigned char *p1; 
unsigned long *p2; 
p1=(unsigned char *)0x801000; 
p2=(unsigned long *)0x810000; 
请问 p1+5=________ p2+5=_________ 

673-C语言笔试题_第13张图片
11、

struct Test 
{
      
int Num; 
char *pcName; 
short sDate; 
char ch; 
}*p; 
假设 p 的值为 0x2000,下面表达式的值为: 
p+0x1=_______ 
(unsigned long)p+0x1=_________ 
(unsigned int *)p+0x1=_________

673-C语言笔试题_第14张图片
1. 画出 x86 32 位系统下,进程的虚拟地址空间布局,
明确标识出.text .data、堆、栈、user space 和 kernel
space 的范围。

673-C语言笔试题_第15张图片
2. 简述 C/C++程序的编译、链接原理。
673-C语言笔试题_第16张图片

代码题目

1.实现以下函数接口,参数传入一个数字字符串
如”3456”,转换成十进制的整数并返回。
int ConvertStringToDigit(char *str)
{

}
673-C语言笔试题_第17张图片
2.实现以下函数接口,判断参数传入的字符串是否
是回文,是返回 true,否则返回 false(注:回文
字符串是正反读都是一样的字符串,
如”abcdfdcba”):
bool IsPalin(char *str)
{
}
673-C语言笔试题_第18张图片
3. 完成接口,判断系统的大小端模式,小端模式
返回 0,大端模式返回 1.
int GetCurrentSysMode()
{

}
673-C语言笔试题_第19张图片
673-C语言笔试题_第20张图片
673-C语言笔试题_第21张图片

你可能感兴趣的:(C语言的学习,c语言)