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