以下能对一维数组a进行正确初始化的语句是 A) int a[10]=(0,0,0,0,0) B)int a[10]={} C) int a[]={0}; D) int a[10]={10*1}; *【题6.6】 C
以下对二维数组a的正确说明是
A)int a[3][]; B)float a(3,4); C) double a[1][4]; D)float a(3)(4); *【题6.7】 C
若有说明:int a[3][4]; 则对a数组元素的正确引用是 A) a[2][4] B) a[1,3] C) a[1+1][0] D) a(2)(1); *【题6.8】 D
若有说明:int a[3][4];则对a数组元素的非法引用是 A) a[0][2*1] B) a[1][3] C)a[4-2][0] D)a[0][4] *【题6.9】 B
以下能对二维数组a进行正确初始化的语句是 A) int a[2][]={{1,0,1},{5,2,3}}; B) int a[][3」={{1,2,3},{4,5,6}}; C) int a[2][4]={{1,2,3},{4,5},{6}}; D) int a[][3={{1,0,1},{},{1,1}}; *【题6.10】 C
以下不能对二维数组a进行正确初始化的语句是 A) int a[2][3]={0};
B) int a[][3」={{1,2},{0}};
C) int a[2][4]={{1,2},{3,4},{5,6}}; D) int a[][3」={1,2,3,4,5,6}; *【题6.11】 D
若有说明: int a[3][4]={0};则下面正确的叙述是 A)只有元素a[0][0]可得到初值0 B)此说明语句不正确:。
C)数组a中各元素都可得到初值,但其值不一定为0。 D)数组a中每个元素均可得到初值0 *【题6.12】 D
若有说明:int a[][4]={0,0};则下面不正确的叙述是 A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1
C)因为二维数组0中第二维大小的值除以初值个数的商为1,故数组a行 数为1
D)只有元素a[0][0]和a[0][1]可得初值0,其余元素均得不到初值0 *【题6.13] B
若有说明:int a[3]「4]则数组a各元素 A)可在程序的运行阶段得到初值0
B)可在程序的编译阶段得到初值0 C)不能得到确定的初值
D)可在程序的编译或运行阶段得初值0 *【题6.14】 C
以下各组选项中,均能正确定义二维实型数组a的选项是 A)float a[3][4]; B)float a(3,4); float a[][4]; float a[3][4];
float a[3][]={{1},{0}}; float a[][]={{0},{0}};
C)float a[3][4]; D)float a[3][4]; static float a[][4]={{0},{0}}; float a[3][]; auto float a[][4]={{0},{0},{0}}; float a[][4] *【题6.15] A
下面程序(每行程序前面的数字表示行号) 1 main() 2 {
3 int a[3]={3*0}; 4 int i;
5 for(i=0;i<3;i++) scanf(\ 6 for(i=1;i<3;i++) a[0]=a[0]+a[i] 7 printf(\ 8 }
A)第3行有错误 B) 第7行没有错误 C)第5行有错误 D) 没有错误 *【题6.16] C
下面程序一一一(每行程序前面的数字表示行号)。 1 main() 2 {
3 float a[10]={0.0}; 4 int i
5 for(i=0;i<3;i++) scanf(\6 for(i=0;i<10;i++) a[0]=a[0]+a[i]; 7 printf(\8 }
A)没有错误 B)第3行有错误 C)第5行有错误 D)第7行有错误 *【题6.17】 D
下面程序有错的行是 1 main() 2 {
3 int a[3]={1}; 4 int i;
5 scanf(\
6 for(i=1;i<3;i++) a[0]=a[0]+a[i]; 7 printf(\ 8 }
A)3 B)6 C)7 D)5 *【题6.18】 D
下面程序(每行程序前面的数字表示行号) 1 main() 2 {
3 int a[3]={0}; 4 int i;
5 for(i=0;i<3;i++)scanf(\ 6 for(i=1;i<4;i++)a[0]=a[0]+a[i]; 7 printf(\ 8 }
A)没有错误 B)第3行有错误 C)第5行有错误 D)第6行有错误 *【题6.19】 D
若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为 (假设a[0][0]位于数组的第一个位置上。)
A)i*m+j B)j*p+i。C)i*m+j-1 D)i*m+j+1 *【题6.20】 B
对以下说明语句的正确理解是 int a[10]={6,7,8,9,10};
A)将5个初值依次赋给a[1]至a[5] B)将5个初值依次赋给a[0]至a[4] C)将5个初值依次赋给a[6]至a[10]
D)因为数组长度与初值的个数不相同,所以此语句不正确 *【题6.21】 B
以下不正确的定义语句是__.
A) double x[5]={2.0,4,0,6.0,8.0,10.0}; B) int y「5」={0,1,3,5,7,9};
C) char c1[]={’1’,’2’,’3’,’4’,’5’}; D) char c2[]=}{'\\x10','\\xa','\\x8'}; *【题6.22】 B
若有说明:int a[ ][3]={1,2,3,4,5,6,7};则a数组第一维的大小是 A) 2 B) 3 C) 4 D)无确定值 *【题6.23】 B
若二维数组a有m列,则在a[i][j]前的元素个数为 A)j*m+j B)i*m+j C)i*m+j D)i*m+j+1 *【题6.24】 A
定义如下变量和数组: int k;
int a[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是
for(k=0;k<3;k++) printf(\ A) 3 5 7 B) 3 6 9 C) 1 5 9 D) 1 4 7 *【题6.25】 B
若有以下程序段: ......
int a[]={4,0,2,3,1};i,j,t; for(i=1;i<5;i++) {t=a[i];j=i-1;
while(j>=0&&t>a[j]) {a[j+1]=a[j];j- -;} a[j+1]=t;} ......
则该程序段的功能是
A)对数组a进行插入排序(升序) B)对数组a进行插入排序(降序) C)对数组a进行选择排序(升序) D)对数组a进行选择排序(降序) *【题6.26】 D
以下正确的定义语句是
A) int a[1」[4」={1,2,3,4,5}; B) float x[3][]={{1},{2},{3}};
C) long b[2][3]={{1},{1,2},{1,2,3}}; D) double y[][3]={0}; *【题6.27】 C
下面程序的运行结果是 main() {int a[6」「6」,i,j; for(i=1;i<6;i++)
for(j=1;j<6,j++) a[i][j]=(i/j)*(j/i); for(i=1;i<6;i++)
{for(j=1;j<6;j十十) printf(\ A)11111 B)00001 C)10000 D)10001 11111 00010 01000 01010 11111 00100 00100 00100
11111 01000 00010 01010 11111 10000 00001 10001 *【题6.28】 C
下面程序的运行结果是 __. main()
{int a[6],i;
for(i=1;i<6;i++)
{a[i]=9*(i-2+4*(i>3))%5; printf(\
A)—40404 B)—40403 C)一40443 D)一40440 *【题6.29】 D
下面是对s的初始化,其中不正确的是
A) char s[5」={\ C) char s[5]=\*【题6.30】 B
下面程序段的运行结果是
char c[5]={'a','b','\\0','c','\\0'}; printf(\
A)’a’’b’ B)ab C)ab c D)ab (其中 表示空格) *【题6.31】 D
对两个数组a和6进行如下初始化 char a[]=\
char b[]={’A’,’B’,’C’,’D’,’E’,’F’}; 则以下叙述正确的是
A) a与b数组完全相同 B) a与b长度相同
C) a和b中都存放字符串 D) a数组比b数组长度长 *【题6.32】 B
有两个字符数组a、b,则以下正确的输入格式是
A) gets(a,b); B) scanf(\
C) scanf(\*【题6.33】 D
有字符数组a[80]和b[80],则正确的输出形式是 A) puts(a,b); B) printf(\C) putchar(a,b); D) puts(a),puts(b); *【题6.34】 D
下面程序段的运行结果是 char a[7]=\ char b[4]=\ strcpy(a,b);
printf(\
A)一 B)\\O C)e D)f (其中一表示空格) *【题6.35】 D
有下面的程序段
char a[3],b[]=\a=b;
printf(\则
A)运行后将输出China B)运行后将输出Ch C)运行后将输出Chi D)*【题6.36】 B
编译出错
下面程序段的运行结果是
char c[」=\printf(\
A)14 B)3 C)9 D)字符串中有非法字符,输出值不确定 *【题6.37】 D
判断字符串a和b是否相等,应当使用 A) if (a= =b) B) if (a=b)
C) if (strcpy(a,b)) D) if (strcmp(a,b)) *【题6.38】 D
判断字符串s1是否大于字符串s2应当使用 A) if (sl>s2) B) if (strcmp(s1,s2))
C) if (strcmp(s2,sl)>0) D) if (strcmp(s1,s2)>0) *【题6.40】 D
下面描述正确的是
A)两个字符串所包含的字符个数相同时,才能比较字符串 B)字符个数多的字符串比字符个数少的字符串大 C)字符串\与\相等
D)字符串\小于字符串\一表示空格) *【题6.41】 C
下述对C语言字符数组的描述中错误的是 A)字符数组可以存放字符串
B)字符数组的字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符\对字符数组整体赋值 D)不可以用关系运算符对字符数组中的字符串进行比较 *【题6.45】 B
下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间 用空格分隔。请选择填空。 #include
{char s[80」,c1,c2=''; int i=0,num=0; gets(s); while(s[i]!='\\0')
{c1=s[i];if(i= =0) c2='';else c2=s[i-1]; if(【1】) num++;i++}
printf(\【1】A)c1='' && c2=='' B)cl!='' && c2=='' C)c1=='' && c2!='' D)cl!='' && c2!='' *【题6.46】 A
下面程序的运行结果是 #indude
{char ch[7]={\ int i,s=0;
for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf(\ }
A)1 B)1256 C) 12ab56 D)1 *【题6.47】 A
当运行以下程序时,从键盘输入:aa bb
(
{char a1[5],a2[5」,a3[5],a4[5];