11计算机二级考试C语言选择题 下载本文

{n+=3;

printf(\ } }

A.6次 B.9次 C.12次 D.1次

50904 do?while循环与while循环的主要区别是( D )。

A.while循环体至少无条件执行一次,而do?while循环体可能都不执行

B.do?while循环体中可使用continue语句,while循环体中不允许出现continue语句 C.do?while循环体中可使用break语句,while循环体中不允许出现break语句 D.do?while循环体至少无条件执行一次,而while循环体可能都不执行 50905以下程序段运行后,循环体运行的次数为( A )。

int i=8,a=0;

for ( ;i<8;i++) a+= i; A.0次 B.1次 C.8次 D.无限

50906 以下程序段运行后变量a的值为( C )。 int i=1,a=0; for( ;i<3;i++) { continue; a+=i; } A.6 B.3 C.0 D.5 50907 有以下程序:

void main() { int i;

for(i=1; i<=3; i++) switch(i)

{ case 1: printf(\ case 2: printf(\ default : printf(\ } }

执行后输出结果是( A )。 A.1223 B.1 C.111223 D.123

50908 以下程序的运行结果是( C )。 void main()

{int s = 0, i = 0; while(i< 8) { i++;

if(i%2==0) continue; s+=i;

}

printf(\ A.36 B.7 C.16 D.12

50909 以下程序的运行结果是( B )。 void main()

9

{int s = 0, i = 0; while(i< 10) { i++;

if(i % 2==0) s += i;

}

printf(\ A.20 B.30 C.25 D.45

50910以下程序的运行结果是( C )。 void main() {int x = 5; do

{ printf(\} while(!x); }

A.5 4 3 2 1 B.4 3 2 1 0 C.5 D.4 50911 以下程序的运行结果是( D )。 void main() {int i,j, k=0; for(i= 3;i>=1;i--) {for(j=i;j<=3;j ++)

k += i * j ; }

printf(\ A.19 B.29 C.6 D.25

50912 以下程序运行时,循环体的执行次数是( C )。 void main() { int i,j;

for(i=0,j=1;i<=j+1;i=i+2,j--) printf(\ A.3 B.2 C.1 D.0

51000 设已定义char s[ ]=\,则字符串所占的字节数是( B )。 A.19 B.16 C.18 D.14

51001 数组元素下标的数据类型为( A )。

A.整型常量、字符型常量或整型表达式 B.字符串常量 C.实型常量或实型表达式 D.任何类型的表达式 51002( B )是正确的数组定义。 A.int n=10,x[n]; B.int x[10];

C.int N=10;int x[N]; D.int n;scanf(\

51003若已定义 int arr[10]; 则不能正确引用arr数组元素的是( D )。 A.arr[0] B.arr[1] C.arr[10-1] D.arr[7+3]

51004 若已定义 int x[4]={2,1,3}; 则元素x[1]的值为( C )。 A.0 B.2 C.1 D.3

51005以下程序段运行后,x[1]的值为( B )。 int x[5]={5,4,3,2,1};x[1]=x[3]+x[2+2]-x[3-1];

10

A.6 B.0 C.1 D.5

51006( A )是合法的数组定义。

A.char str[ ]={48,49,50,51,52,53}; B.int a[5]={0,1,2,3,4,5}; C.int a[ ]=\D.char str[ ]=‘string’; 51007 若有以下程序: void main( )

{char s[10]= \ r=s;

printf(\则( A )。

A.执行时输出:ajskdl B.执行时输出:a C.执行时输出:aj D.编译不通过 51008下面程序段的运行结果是( C )。 int m[]={5,8,7,6,9,2},i=1; do{ m[i]+=2; } while(m[++i]>5);

for(i=0;i<6;i++) printf(\ A.7 10 9 8 11 4 B.7 10 9 8 11 2 C.5 10 9 8 11 2 D.5 10 9 8 11 4 51009下面程序段的运行结果是( A )。 int m[]={5,8,7,6,9,2},i=1;

for(i=0;i<6;i++) {if(i % 2 !=0) m[i]+=10; } for(i=0;i<6;i++) printf(\

A.5 18 7 16 9 12 B.15 18 17 16 19 12 C.15 8 17 6 19 2 D.5 8 7 6 9 2 51010下面关于数组的叙述中,正确的是( A )。

A.定义数组后,数组的大小是固定的,且数组元素的数据类型都相同 B.定义数组时,可不加类型说明符

C.定义数组后,可通过赋值运算符\对该数组名直接赋值 D.在数据类型中,数组属基本类型 51011 以下程序段的运行结果是( C )。

int a[]={1,2,3,4},i,j; j=1;

for(i=3;i>=0;i--) { a[i]=a[i]*j; j=j*3;

}

for(i=0;i<4;i++) printf(\

A.3 6 9 12 B.18 12 9 4 C.27 18 9 4 D.54 18 9 4 51012下面关于字符数组的叙述中,错误的是( A )。 A.可以通过赋值运算符“=”对字符数组整体赋值 B.不可以用关系运算符对字符数组中的字符串进行比较 C.字符数组中的字符串可以整体输入、输出 D.字符数组可以存放字符串

11

51100 以下程序段的运行结果是( D )。 main() { int i=4,j; j=i;

pic(i+2*j-2,'*'); putchar('\\n'); for(j-=2;j>=0;j--) { pic(3-j, ' '); pic(i+2*j, '*');

putchar('\\n'); }

}

pic(int len,char c) { int k;

for(k=1;k<=len;k++) putchar(c);} A. * *** ***** *******

B.********** ********** ********** **********

C. **** ****** ******** **********

D.********** ******** ****** ****

51101以下程序段执行后输出的结果是( D )。 int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12}; printf(\ A.2 B.3 C.6 D.7

51102以下程序段执行后p的值是( A )。 int a[3][3]={3,2,1,3,2,1,3,2,1}; int j,k,p=1; for(j=0;j<2;j++) for(k=j;k<4;k++) p*=a[j][k];

A.108 B.18 C.12 D.2

51103不能对二维数组a进行正确初始化的语句是( 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};

51104 若有定义:int s[3][4]={{1,2},{0},{3,4,5}};则s[2][1]的值为( B )。 A.3 B.4 C.0 D.1

51105若有定义:int a[3][4];则表达式&a[2][1]-a的值为( C )。 A.7 B.8 C.9 D.10

51106以下程序段运行后sum的值为( D )。 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

51107 若有定义int a[2][3];则合法引用数组元素的是( A )。 A.a[0][1/2] B.a[2][1] C.a[2][3] D.a[1][3] 51108 在以下数组定义中,错误的是( A )。

12