[G]福建省C语言二级考试(选择+填空+程序填空+输出结果) 下载本文

case 2: printf(\

default : printf(\ } } 执行后输出结果是(A )。

A. 1223 B. 132 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()

{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--)

17

printf(\ } A. 3 B. 2 C.1 D.0

50913若有定义: int i,x; (A )不是死循环。

A. for(x=5;x>0;x--) ; B. while(x=1) ; C.for(i=10; ;i--) ; D.for( ; ;i+=2) ; 50914下面叙述正确的是(D )。

A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break语句跳出循环体

D.for循环的循环体可包含多条语句,但必须用花括号{ }括起来 50915以下程序段运行后x的值为(B )。 int i,j,x=0;

for(i=3;i>=1;i--) for(j=1;j<=i;j++) x=x+2;

A. 14 B. 12 C.8 D.10

50916以下程序段运行后x的值为( B )。 int i=0,x=2;

while(i++<=5) {x+=2; }

A. 10 B. 14 C.12 D.8

50917若有定义: int i,x=0; 语句for(i=1;i<=3;i++) x+=2;与下列( B )程序段不等价。 A. i=1; for( ;i<=3;i++) x+=2; B. i=1; for( ; ;i++) x+=2;

C.for(i=1;i<=3; ) {x+=2; i++;} D.i=1; for( ;i<=3; ) {x+=2; i++; } 50918以下程序段运行后x的值为( D )。 int i=0,x=0;

for(;i<=5;i++,i++) {x+=3;}

A. 15 B. 6 C.12 D.9

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(\ int x[n];

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

18

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]; 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(\ } 则( D )。

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--)

19

{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下面关于字符数组的叙述中,错误的是( B )。 A. 可以通过赋值运算符“=”对字符数组整体赋值 B. 不可以用关系运算符对字符数组中的字符串进行比较

C.字符数组中的字符串可以整体输入、输出 D.字符数组可以存放字符串 51013若有定义:int a[10],i=2; 能正确引用a数组元素的是( B )。 A. a[9+i] B. a[10-i] C.a[10] D.a(7)

51014( A )是正确的数组定义。

A. int arr[10]; B. int n=5; int arr[n]; C.int N=5, arr[N]; D.int n; n=5; int arr[n]; 51015若有定义:int arr[15],n=5; 无法正确引用arr数组元素的是( C )。 A. arr[0] B. arr[n] C.arr[10+n] D.arr[15-n] 51016以下程序段运行后x的值为( B )。 int a[8]={1,2,3,4,5,6,7,8},i,x=0; for(i=0;i<8;i++,i++) x=x+a[i];

A. 36 B. 16 C.20 D.18

51017以下程序段运行后x的值为( A )。 int a[8]={1,2,3,4,5,6,7,8},i,x=0; for(i=1;i<8;i++,i++) x=x+a[i];

A. 20 B. 16 C.18 D.36

51018下面叙述错误的是( C )。

A. 数组中每一个元素都属于同一个数据类型 B. C语言数组名称是数组在内存中的首地址 C.C语言数组长度在定义数组时可不作确定

D.C语言规定可逐个引用数组元素但不能一次引用整个数组 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'); } }

20