21. 下列选项中合法的函数说明语句是()。
A) double func( int a, int b );
B) double func( int a, b );
C) double func( a, int b );
D) double func( a, b );
22. 设有定义int a[]={1,3,5,7,9},*p=a;结果为7的表达式是()。
A) *(p+3)
B) *(p+4)
C) *p+3
D) *p+4
23. 设有定义int m, n, *p; 与语句“m=n;”等价的语句是()。
A) p=&n; m=*p;
B) p=&m; n=*p;
C) p=*n; m=*p;
D) p=*m; n=*p;
24. 设有定义int m=2,n=5,*p=&n;则语句“m=*p;”的结果是()。
A) 指针p指向m
B) 变量m的值变为5
C) 变量n的值变为2
D) 指针p指向m,同时变量m的值变为5
25. 设有说明int n; char str[80];与函数调用:n=hex2dec(str); 则函数hex2dec正确的函数说明应该是:()。
A) int hex2dec(char str[]);
B) void hex2dec(char str[]);
C) int hex2dec(char str);
D) void hex2dec(char str);
26. 设有定义char *p[]={"Shanghai","Beijing","Honkong"};则结果为'j'字符的表达式是()。
A) p[3][1]
B) *(p[1]+3)
C) *(p[3]+1)
D) *p[1]+3
27. *以下程序执行后输出结果是()。
main()
{ char *s[]={"one", "two", "three"},*p;
p=s[1];
printf("%c,%s\n", *(p+1), s[0]);
}
A) n,two
B) t,one
C) w,one
D) o,two
28. *主调函数中要实现交换两个整型变量的值,应该调用下列4个函数中的()。
A) void fun_a (int x, int y)
{ int *p;
*p=x; x=y; y=*p;
}
B) void fun_b (int *x, int *y)
{ int *p;
*x=*y; *y=*x;
}
C) void fun_c (int *x, int *y)
{ *x=*x+*y;
*y=*x-*y;
*x=*x-*y;
}
D) void fun_d ( int x, int y)
{ int p;
p=x; x=y; y=p;
}
29. *设有定义:char s[20]; 则在下面表达式中错误表示s[1] 的地址的是()。
A) s+1
B) ++s
C) &s[0]+1
D) &s[1]
30. *下面程序段的运行结果是()。
char c[ ]="\tv\\\0will\n";
printf("%d", sizeof(c));
A) 14
B) 3
C) 9
D) 10