134. 不能对二维数组a进行正确初始化的语句是( )。 A. int a[3][2]={{1,2,3},{4,5,6}}; B. int a[3][2]={{1},{2,3},{4,5}}; C. int a[][2]={{1,2},{3,4},{5,6}}; D. int a[3][2]={1,2,3,4,5};
135. 若有定义:int s[3][4]={{1,2},{0},{3,4,5}};则s[2][1]的值为( )。 A. 3 B. 4 C. 0 D. 1 136. 若有定义:int a[3][4];则表达式&a[2][1]-a的值为( )。 A. 7 B. 8 C. 9 D. 10 137. 以下程序段运行后sum的值为( )。
int k=0,sum=0;
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; for(;k<3;k++)
sum+=a[k][k+1]; A. 9 B. 18 C. 19 D. 21 138. 若有定义int a[2][3];则合法引用数组元素的是( )。 A. a[0][1/2] B. a[2][1] C. a[2][3] D. a[1][3] 139. 在以下数组定义中,错误的是( )。 A. int a[2][]={1,2,3,4,5}; B. int a[][2]={{0},{1}}; C. int a[2][2]={{1,2},{3}}; D. int a[][2]={1,2,3,4};
140. 若定义int a[][4]={1,2,3,4,5,6,7,8};则表达式sizeof(a[0][1])的值为( )。 A. 1 B. 2 C. 3 D. 4
141. 以下程序段运行后s的值是( )。 int a[3][3]={1,2,3,4,5,1,2,3,4}; int i,j,s=1;
for(i=0;i<3;i++) for(j=i+1;j<3;j++) s+=a[i][j]; A. 6 B. 120 C. 7 D. 240
142. 设已定义: int a[][4]={0,0,0}; 则下列描述正确的是( )。 A. 数组a包含3个元素 B. 数组a的第一维大小为3 C. 数组a的行数为1
D. 元素a[0][3]的初值不为0
143. 在C语言中,若定义二维数组a[2][3],设a[0][0]在数组中位置为1,则a[1][1]在数组
中位置是( )。
A. 3 B. 4 C. 5 D. 6
144. 设有下列语句,则( )是对a数组元素的不正确引用,其中0≤i<10。 int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a; A. a[p-a] B. *(&a[i]) C. p[i]
D. *(*(a+i))
145. 设已定义: char s1[8],s2[8]=\能将字符串\赋给数组s1的语句是
( )。 A. s1=s2;
B. strcpy(s2,s1); C. strcpy(s1,s2); D. s1=\
146. 以下程序段的运行结果是( )。 char str[3][2]={ 'a', 'b', 'c', 'd', 'e', 'f'}; str[2][0]= '\\0';
printf(\A. abcd B. ab C. abcd0 D. abcd0f
147. 有如下定义:
char str[10]={ \
则分配给数组str的存储空间是( )个字节。 A. 11 B. 10 C. 9 D. 8
148. 以下程序段运行后输出结果是( )。
char a[]=\char b[]=\ strcpy(a,b);
printf(\A. n B. u C. e D. m
149. 以下程序段运行后输出结果是( )。
char s[]=\printf(\A. 4
B. 5 C. 8 D. 9
150. 以下程序段运行后a的值为( )。
int a=2;
char s1=\a=strcmp(s1,s2); A. -1 B. 2 C. 1 D. 0
151. 以下对C语言字符数组描述中,错误的是( )。
A. 可以用strlen函数计算字符数组中字符串的长度 B. 可以在赋值语句中通过赋值运算符\对字符数组整体赋值 C. 存放在字符数组中的字符串,以'\\0'作为该字符串结束标志 D. 字符数组可以存放字符串或字符
152. 以下程序段运行后,屏幕的输出结果是( )。
char str[80];strcpy(str,\A. 7 B. 8 C. 9 D. 80
153. 若有定义:char str1[6]=\( )是错误的。 A. strcpy(str2,str1);
B. 表达式strcmp(str1,str2)的值小于0 C. str1=str2;
D. 表达式strlen(str1)的值为5 154. 已有定义
char str1[15]={\则语句用法正确的是( )。 A. str2=str1;
B. str2=\C. scanf(\D. printf(\
155. 设已定义: char str1[20]=\\ 若要形成字符串\
world!\正确语句是( )。 A. strcpy(str1,str2); B. strcat(str1,str2); C. strcpy(str2,str1); D. strcat(str2,str1);
156. 若有字符数组a[80]和b[80],则以下输入语句正确的是( ) A. gets(a,b)
B. scanf(\C. scanf(\
D. gets(\
五、函数
157. 设有下列语句:
char str1[]=\
则( )是对库函数strcpy的不正确调用。此函数用来复制字符串。 A. strcpy(str3,\B. strcpy(str2,\C. strcpy(str1,\D. strcpy(str4,\
158. 用数组名作为函数的实参时,错误的说法是( )。 A. 定义形参数组时,元素的个数必须与实参相同 B. 可以使用数组名作为形参
C. 实参传递给形参的值是数组的首地址 D. 可以使用指针变量作为形参 159. 以下程序的运行结果是( )。
int fun(int a[4][4]) { int i;
for(i=0;i<4;i++)
printf(\ printf(\}
main()
{ int a[4][4]={1,1,2,2,1,9,0,0,2,4,0,0,0,5,9,8}; fun(a); }
A. 1 9 0 5 B. 2 0 0 0 C. 2 0 0 8 D. 2 0 0 9
160. 自定义函数中若缺省函数值类型,则隐含的类型是(A. int B. long C. float D. double
161. 以下程序运行后输出结果是( )。 #include
)。 int x=5,y=3,k; k=fun(x,y); printf(\ } A. 0 B. x-y=2 C. 5-3=2 D. 2
162. 以下程序运行后输出结果是( )。 #include
c=a>b?a:b; return(c); } main() { int a=6; printf(\ } A. 5 B. 3,5 C. 6,5 D. 6
163. 以下程序运行后输出结果是( void fun(int i) { int m=2; m=i++;
printf(\ \}
main()
{ int m=7,n=5; fun(n);
printf(\}
A. 5 5 B. 6 6 C. 5 7 D. 6 7
164. 若有函数定义:
int func()
{static int m=0;
)。