21.对字符数组str赋初值,str不能作为字符串使用的一个是____。
A) char str[]="shanghai";
B) char str[]={"shanghai"};
C) char str[9]={'s','h','a','n','g','h','a','i'};
D) char str[8]={ 's','h','a','n','g','h','a','i'};
22.如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为____。
A) 静态变量 B) 动态变量 C) 外部变量 D) 内部变量
23.在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要使用的存储类别是____。
A) extern B) register C) auto D) static
24.定义一个函数实现交换x和y的值,并将结果正确返回。能够实现此功能的是____。
A) swapa(int x,int y) B) swapb(int *x,int *y)
{ int temp; { int temp;
temp=x;x=y;y=temp; temp=x;x=y;y=temp;
} }
C) swapc(int *x,int *y) D) swapd(int *x,int *y)
{ int temp; { int *temp;
temp=*x;*x=*y;*y=temp; temp=x;x=y;y=temp;
} }
25.在下列结论中,只有一个是错误的,它是____。
A) C语言允许函数的递归调用
B) C语言中的continue语句,可以通过改变程序的结构而省略
C) 有些递归程序是不能用非递归算法实现的
D) C语言中不允许在函数中再定义函数
26.说明语句"int (*p)( );"的含义是____。
A) p是一个指向一维数组的指针变量
B) p是指针变量,指向一个整型数据
C) p是一个指向函数的指针,该函数的返回值是一个整型
D) 以上都不对
27.设有说明int (*p)[4];其中的标识符p是____。
A) 4个指向整型变量的指针变量
B) 指向4个整型变量的函数指针
C) 一个指向具有4个整型元素的一维数组的指针
D) 具有4个指向整型变量的指针元素的一维指针数组
28.已知:char s[10], *p=s,则在下列语句中,错误的语句是____。
A) p=s+5; B) s=p+s; C) s[2]=p[4]; D) *p=s[0];
29.已知:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*ptr)[3]=a,*p=a[0];
则以下能够正确表示数组元素a[1][2]的表达式是____。
A) *(*(a+1)+2) B) *(*(p+5)) C) (*ptr+1)+2 D) *((ptr+1)[2])
30.已知:int a[ ]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a;则值为3的表达式是____。
A) p+=2,*(p++) B) p+=2,*++p C) p+=2,*p++ D) p+=2,++*p
32.函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此功能的函数是____。
A) funa (int *x, int *y) B) funb (int x, int y)
{ int *p; { int t;
p=x;*x=*y;*y=*p; t=x;x=y;y=t;
} }
C) func (int *x, int *y) D) func (int *x, int *y)
{ *x=*y;*y=*x; { *x=*x+*y;*y=*x-*y;*x=*x-*y;
} }
相关推荐: