C语言单选题456 下载本文

A)0 B)无限循环 C)3 D)2 7、do-while语句的循环体( )。

A)可能一次都不执行 B)至少要执行一次 C)由循环条件决定循环次数 D)B C均正确 8、对下面的while语句,循环体执行次数是( )次。 a=30; while ( a--) ;

A)30 B)31 C)39 D)都不对 9、在C语言中,下列说法中正确的是( )。 A)不能使用\… while\的循环。

B)\的循环必须使用break语句退出循环。 C)\的循环中,当条件为0时将结束循环。 D) \的循环中,当条件为非0时将结束循环。 10、下面的循环执行完后,循环次数是( )次。 while( k=10 )

k--;

A)9 B)10 C)11 D)无穷次 二、判断题

( )1、while 适合控制循环次数不确定的循环。(V)

( )2、无论循环条件是否满足,do ... while循环的循环体至少执行一次。(V)

( )3、while( 'a' ) ;是一个死循环。(V)

( )4、在实际编程中,do-while循环完全可以用for循环替换。(V) ( )5、continue;语句和break;语句有同样的作用。(X)

第八单元 数组

一、选择题

1、下列描述中不正确的是( )。 A) 字符型数组中可能存放字符串。

17

B) 可以对字符型数组进行整体输入、输出。 C) 字符串函数声明在包ctype.h中。 D) 字符串的结束符是‘\\0‘。

2、定义如下变量和数组: int i ; int x[6] ={1,2,3,4,5,6};

则语句for(i=0;i<3;i++) printf(\\的输出结果是( )。 A) 1 2 3 B)1 3 5 C)2 4 6 D)6 5 4 3、以下对二维数组a进行正确初始化的是( )。

A) int a[2][3]={{1,2},{3,4},{5,6}}; B) int a[ ][3]={1,2,3,4,5,6}; C)int a[2][ ]={1,2,3,4,5,6}; D) int a[2][ ]={{1,2},{3,4}}; 4、下列程序的输出结果是( )。 char a[]=\strcpy( str , strcat( a, b ) ); printf( \

A)xyabcAB B)abcABz C)ABabcz D)abcdABCD 5、不能把字符串:Hello!赋给数组b的语句是( )。 A)char b[10]={'H','e','l','l','o','!'}; B)char b[5] =\C)char b[10]; strcpy(b,\)char b[10]=\6、下列对数组定义不正确的语句是( )。

A)int m[5]; B)char b[]={‘h’,’e’}; C)int a[10]={1,6,8,4}; D)char p[]; 7、以下对二维数组 a的正确定义是( ) A)int a[3][] ; B)float a(3,4) ; C)double a[2][4]; D)float a(3)(4) ; 8、给出以下定义: char x[ ]="abcdefg";

char y[ ]={'a','b','c','d','e','f','g'}; 以下正确的叙述是( )。

A)数组x和数组y等价 B)数组x和数组y长度相等

18

C)数组x的长度大于数组y的长度,因为还存储了一个结束符 D)数组x的长度小于数组y的长度,因为还存储了一个结束符 9、在int b[ ][3]={{1},{3,2},{4,5,6},{0}};中b[2][2]的值是( )。 A)0 B)5 C)6 D)2 10、下列初始化正确的是( )。

A)char s1[ ]="abcd" ; B)char s2[3]="zxy";

C)char * p=1000 ; D) char s4[2][3]={{"xyz"},{"mnp"}} ; 11、设有定义:char s[12]="string";则printf ("%d\\n",strlen(s));的输出是( )。

A)6 B)7 C)11 D)12 12、函数调用strcat(strcpy(str1,str2),str3)的功能是( )。

A)将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后

B)将字符串str1复制到字符串str2中后再连接到字符串str3之后 C)将字符串str1复制到字符串str2中后再复制到字符串str3之后 D) 将字符串str2连接到字符串str1中后再将字符串str1复制到字符串str3中

13、使用随机函数需要包含的头文件有( )。 A) #include B) #include C) #include D) A和B

14、若有说明int a[3][4]={0};下列叙述正确的是( )。 A)只有元素a[0][0]可得到初值0 B)此说明语句不正确

C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0

15、执行下面的程序段后,变量k的值为( )。

int k=3,s[2]; s[0]=k; k=s[0]*10;

A)不定值 B)33 C)30 D)10

19

16、以下定义数组的语句中正确的是( )。 A) int a(10) B) char str[] ;

C) int n=5; int a[4][n]; D) #define N 10 char str[N];

17、定义如下变量和数组: int k;

int a[3][3]={9,8,7,6,5,4,3,2,1}; 则下列语句的输出结果是( )。 for(k=0;k<3;k++) printf(―%d‖,a[k][k]);

A) 7 5 3 B) 9 5 1 C) 9 6 3 D)7 4 1 18、下列描述正确的是( )。

A)两个字符串所包含的字符个数相同时,才能比较字符串 B)字符个数多的字符串比字符个数少的字符串大 C)字符串“STOP”与“STOP ”相等 D)字符串“That‖与字符串“ThaT”不相等

19、若二维数组a有n 行n列,则副对角线元素是( )。(假设a[0][0]位于数组的第一个位置上,且i∈[0,n))

A)a[i][i] B)a[i][n-i] C)a[n-i][i] D)a[i][n-1-i]

20、对以下说明语句的正确理解是( )。 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)因为数组长度与初值的个数不相同,所以此语句不正确

20