c语言转义字符xlf,C语言题库

2015-07-21 06:30:02

阅读( 246 )

*1

A

一个C程序的执行是从_____。

A)本程序的main函数开始,到main函数结束

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C)本程序的main函数开始,到本程序文件的最后一个函数结束

D)本程序文件的第一个函数开始,到本程序main函数结束

*2

C

以下叙述正确的是:

A)在C程序中,main函数必须位于程序的最前面

B)C程序的每行中只能写一条语句

C)C语言本身没有输入输出语句

D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误

*3

D

以下叙述不正确的是。

A)一个C源程序可由一个或多个函数组成

B)一个C源程序必须包含一个main函数

C)C程序的基本组成单位是函数

D)在C程序中,注释说明只能位于一条语句的后面

*4

C

C语言规定:在一个源程序中,main函数的位置 。

A)必须在最开始

B)必须在系统调用的库函数的后面

C)可以任意

D)必须在最后

*5

B

一个C语言程序是由

A)一个主程序和若干子程序组成    B)函数组成

C)若干过程组成                  D)若干子程序组成

*6

A

在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为

A)char

B)char=int<1ong  int<=float

C)char

D)char=int  =1ong  int<=float

*7

C

若x,i,j和k都是int型变量,则执行下面表达式后x的值为

x=(i=4,j=16,k=32)

A)4   B)16  C)32     D)52

*8

B

假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:

A)7    B)8   C)6   D)2

*9

A

下列四组选项中,均不是C语言关键字的选项是

A)define    B)getc    C)include   D)while

IF           char       scanf        go

type          printf       case        pow

*10

B

下面四个选项中,均是C语言关键字的选项是

A)auto      B)switch    C)signed    D)if

enum       typedef       union      struct

include     continue      scanf      type

*11

C

下面四个选项中,均是不合法的用户标识符的选项是。

A)  A            B)float       C)b-a       D)一123

P_0           1a0          goto          temp

do             一A          int           INT

*12

C

C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符

A)必须为字母            B)必须为下划线

C)必须为字母或下划线   D)可以是字母,数字和下划线中任一种字符

*13

A

下面四个选项中,均是合法整型常量的选项是:

A)160      B)一0xcdf    C)一01    D)一0x48a

一0xffff     01a       986, 012      2e5

011        0xe        0668         0x

*14

D

下面四个选项中,均是不合法的整型常量的选项是:

A)一一0f1    B)一0Xcdf  C)一018    D)一0x48eg

一0xffff          017        999        一068

0011        12,456      5e2        03f

*15

B

下面四个选项中,均是不合法的浮点数的选项是

A)  160.    B) 123     C)一.18    D)一e3

0.12        2e4.2     123e4          .234

e3        .e5        0.0           1e3

*16

b

下面四个选项中,均是合法浮点数的选项是

A)  +le+1    B)-.60    C)  123e      D)一e3

5e一9.4    12e-4     1.2e-.4     .8e4

03e2     一8e5        +2e一1     5.e一0

*17

A

下面四个选项中,均是合法转义字符的选项是

A)’\”        B)’\'    C)’\018′   D)’\\0′

‘\\’     ‘\017′    ‘\f’       ’101′

‘\n’     ‘\”‘       ‘xab’       ‘xlf’

*18

B

下面四个选项中,均是不合法的转义字符的选项是

A)’\”     B)’\1011′    C)’\011′    D)’\abc’

‘\\’         ‘\’        ‘\f’         ’\101′

‘\xf’       ‘\a’         ‘\}’        ‘xlf’

*19

C

下面正确的字符常量是:

A)”a”    B)’\\”    C)’W'    D)”

*20

d

下面四个选项中,均是不正确的八进制数或十六进制数的选项是。

A)  016      B)oabc       C)010      D) 0a12

0x8f  017 -0×11   7ff

018   0×8  0×16   -123

*21

C

下面四个选项中,均是正确的八进制数或十六进制数的选项是。

A)一10 B)0abc      C)0010   0)  0al2

0x8f    一017       一0×11-0xl23

一011     0xc 0xf1      一0×8

*22

d

下面四个选项中、均是正确的数值常量或字符常量的选项是:

A)0.0       日)”a”     C)’3′D)十001

0f  3.9E-2.5       011     0xabcd

8.9e   lel0xFFOO  2e2

‘&’ ‘\”’      0a       50.

*23

A

下面不正确的字符串常量是。

A)’abc’  B)”12’12″     C)”0″     D)”"

*24

c

若有代数式3ae/bc,则不正确的C语言表达式是:

A) a/b/c*e*3      B)3*a*e/b/c

C)3*a*e/b*c       D)a*e/c/b*3

*25

A

已知各变量的类型说明如下:

int   k,a,b;

unsigned  long  w= 5;

double    x=1.42;

则以下不符合C语言语法的表达式是:

A)  x%(一3)   B)  w+=-2

C)k=(a=2,b=3,a十b)      D)a十= a一=(b=4)*(a=3)

*26

A

已知各变量的类型说明如下:

int i=8,k,a,b;

unsigned  long  w=5;

double  x=1.42,y=5.2;

则以下符合C语言语法的表达式是:

A)  a十=a一=(b= 4)*(a=3)  B)a=a*3=2

C)  x%(一3)  D)y=f1oat(i)

*27

D

以下不正确的叙述是

A)在C程序中,逗号运算符的优先级最低

B)在C程序中,APH和aph是两个不同的变量

C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。

D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。

*28

D

以下正确的叙述是:

A)在C程序中,每行中只能写一条语句

B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数

C)在C程序中,无论是整数还是实数,都能被准确无误地表示

D)在C程序中,%是只能用于整数运算的运算符

*29

B

以下符合C语言语法的赋值表达式是

A)d=9+e+f=d+9B)  d=9+e,f=d+9

C)d=9十e,e++,d十9     D)d=9十e++=d十7

*30

A

已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A'十’6′一’3′;后,c2中的值为

A)D     B)68   C)不确定的值     D)C

*31

D

在C语言中,要求运算数必须是整型的运算符是。

A) /   B) ++  c) !=   D)%

*32

B

若以下变量均是整型,且num=sum=7;则执行表达式sUM=num++,sUM++,++num后sum的值为

A)  7    B) 8  C)  9  D)  10

*33

D

在C语言中,int、char和short种类型数据在内存中所占用的字节数

A)由用户自己定义     B)均为2个字节

C)是任意的   D)由所用机器的机器字长决定

*34

A

若有说明语句:char c=’\72′则变量c

A)包含1个字符   B)包含2个字符

C)包含3个字符   D)说明不合法,c的值不确定

*35

A

若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是

A)2•500000  B)2.7500OO  c)  3.500000  D)  0.000000。

*36

B

sizeof(float)是:

A)一个双精度型表达式  B)一个整型表达式

C)一种函数调用D)一个不合法的表达式

*37

C

设变量a是整型,f是实型,i是双精度型,则表达式10+’a'+i*f值的数据类型为

A)int     B)  float  C)  double  D)不确定

*38

A

下面四个选项中,均是非法常量的选项是。

A)’as’    B)’\\’  c)-0xl8    D)0xabc

-0fff ‘\01′    01177     ‘\0′

‘\0xa’     12,456     0xf”a”

*39

D

在C语言中,  char型数据在内存中的存储形式是:

A)补码 B)反码 C)原码     D)ASCII码

*40

B

设变量n为f1oat类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是一一一。

A) n=(n*100+0.5)/100.0     B)m=n*100+0.5 ,n= m/100.0

C) n=n*100+0.5/100.0   D)n=(n/100+0.5)*100.0

*41

C

表达式18/4*sqrt(4.0)/8值的数据类型为:

A)  int    B)float   C)double  D)不确定

*42

C

设C语言中,一个int型数据在内存中占2个字节,则unsigned  int型数据的取值范围为:

A)  0~255   B) 0~32767     C) 0~65535  D)  0~2147483647

*43

D

设有说明:  char w; int  x;  f1oat  y;  double  z;则表达式w* x+z一y值的数据类型为:

A)float    B)char   C)int     D)double

*44

D

若有以下定义,则能使值为3的表达式是:

int  k= 7,x =12;

A)  x%=(k%= 5)B)  x%=(k一k%5)

C)  x%=k- k%5   D)  (x%=k)一(k%=5)

*45

C

设以下变量均为int类型,则值不等于7的表达式是

A)  (x= y= 6,  x+y,x+1)   B)(x= y= 6,x+y,y+1)

C)  (x= 6,x+1,y= 6,x+y)   D)  (y=6,y+l,x = y,x+1)

*46

D

putchar函数可以向终端输出一个:

A)整型变量表达式值

B)实型变量值

C)字符串

D)字符或字符型变量值

*47

B

printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式

A)从左起输出该字串,右补空格

B)按原字符长从左向右全部输出

C)右对齐输出该字串,左补空格

D)输出错误信息

*48

C

printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度小于5,则输出按方式。

A)从左起输出该字串,右补空格

B)按原字符长从左向右全部输出

C)右对齐输出该字串,左补空格

D)输出错误信息

*49

D

已有定义 int a=-2;和输出语句:printf(“%8lx”,a);以下正确的叙述是:

A)整型变量的输出格式符只有%d一种

B)%x 是格式符的一种,它可以适用于任何一种类型的数据

C)%x 是格式符的一种,其变量的值按十六进制输出,但%8lx 是错误的

D)%8lx 不是错误的格式符,其中数字8规定了输出字段的宽度

*50

D

若x ,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是:

A)  scanf(” %d%lx,%le”,&x,&y,&z);

B)  scanf(“%2d * %d%lf”&x,&y,&z );

C)  scanf(“%x %* d%o”,&x,&y);

D)  scanf(“%x%o%6.2f”,&x,&y,&z);

*51

A

已有如下定义和输入语句 ,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是

int  a1,a2;  char  c1,c2;

scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);

A)10A20B     B)10 A20 B

C)10A20   D)10A20 B。

*52

B

已有定义int  x;  f1oat  y;且执行scanf(“%3d%f”,&x,&y);语句,若从第一列开始输入数据12345  678(回车),则x 的值为

A)12345  B)123   。  C)  45       D)  345

*53

B

已有定义int  x;  f1oat  y;且执行scanf(“%3d%f”,&x,&y);语句,若从第一列开始输入数据12345  678(回车),则y 的值为:

A)无定值B)45.0000  C)  678.000000  D)  123.00000

*54

D

已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是:

int  a1,a2;  char  c1,c2;

scanf(“%d%d”,&a1,&a2);

scanf(“%c%c”,&c1,&c2);

A)  1020AB    B)10  20AB

C)10  20   AB   D)10 20AB

*55

D

已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为

main()

{int  a;float f;

printf(“\nInput number:”);

输入语句

printf(“\nf=%f,a= %d\n ,f,a);

}

Input  number:  4.5   2

A )scanf(“%d,%f”,&a,&f);  B)scanf(“%f,%d”,&f,&a)

C)scanf(“%d%f”,&a,&f);   D)scanf(“%f%d”,&f,&a);

*56

B

根据定义和数据的输入方式,输入语句的正确形式为:

已有定义:  float  fl,f2;

数据的输入方式:4.52

3. 5

A)scanf(“%f,%f”,&f1,&f2);  B)scanf(“%f%f”,&f1,&f2 );

C)scanf(“%3.2f%2.1f”,&f1,&f); D)scanf(“%3.2f%2.1f”,&f1,&f2);

*57

D

阅读以下程序,当输入数据的形式为25,13,10正确的输出结果为:

main()

{int  x,y,z

scanf(“%d%d%d”,&x,&y,&z );

printf(“x+y+z=%d\n ,x+y+z);。

}

A)x +y+z=48      B)x +y+z=35

C)x +z=35D)不确定值

*58

B

阅读 下程序,若运行结果为如下形式  ,输入输出语句的正确内容是:

main()

{int  x;  float  y;printf(“enter  x,y  :”)

输入语句    输出语句

}

输入形式    enter  x,y:  2  3.4

输出形式    x+y=5.40

A)scanf(“%d,%f”,&x,&y);printf(“\nx+y= %4.2f”,x+y);

B)scanf(“%d%f”,&x,&y );printf(“\nx+y=%4.2f”,x+y);

C)scanf(“%d%f”,&x,&y); printf(“\nx+y=%6.lf”,x+y);

D)scanf(“%d%3.1f”,&x,&y );printf(“\nx十y=%4.2f”,x+y);

*59

D

以下说法正确的是:

A)输入项可以为一实型常量,如scanf(“%f”,3.5);

B)只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);

C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,

如scanf(“%4.2f”,&f);

D)当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);

*60

A

根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确形式应该为:

main()

{char  ch1  ,ch2  ,ch3;

输入语句

printf(“%c%c%c”,ch1,ch2,ch3);}

输入形式:  A B C

输出形式:  A B

A)  scanf(“%c%c%c”,&ch1,&ch2,&ch3);

B)  scanf(“%c,%c,%c”, &ch1,&ch2, &ch3);

C)  scanf(“%c %c %c”,&ch1,&ch2,&ch3);

D)  scanf(“%c%c”,&ch1,&ch2,&ch3);

*61

D

有输入语句:  scanf(“a= %d,b= %d,c=%d”,&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是

A)132(回车)

B)1,3,2(回车)

C)a=1b=3c=2(回车)

D)a=1,b =3,c =2(回车)

*62

A

以下能正确地定义整型变量a,b和c 并为其赋初值5的语句是

A)int a=b= c= 5;       B) int a,b, c= 5;

C)a= 5,b=5,c=5;     D)  a= b= c=5;

*63

A

已知ch是字符型变量,下面不正确的赋值语句是

A)ch=’a+b’;  B)ch=’\0′;  C)ch=’7′+’9′;  D)  ch=5+9;

*64

B

已知ch是字符型变量,下面正确的赋值语句是

A)  ch= ’123′;  B)  ch= ‘\xff’;  C)  ch= ‘\08′;  D)  ch=”\”;

*65

B

若有以下定义,则正确的赋值语句是:

int  a,b;float  x;

A)  a=1,b=2,    B)b++;  C)  a= b= 5     D)  b= int(x);

*66

B

设x 、y均为f1oat型变量,则以下不合法的赋值语句是

A)++x;   B)y=(x%2)/10; C)  x*=y+8;  D)x=y=0;

*67

A

x,y,z均为int型变量,则执行语句x=(y=(z=10)+5)一5;后,x 、y 和之的值是:

A)  x=10    B)  x=10  C)  x=10  D)  x=10

y=15 y=10       y=10       y=5

z=10 z=10       z=15       z=10

*68

D

逻辑运算符两侧运算对象的数据类型一一一。

A)只能是0或1

B)只能是0或非0正数

C)只能是整型或字符型数据

D)可以是任何类型的数据

*69

C

下关于运算符优先顺序的描述中正确的是一一一。

A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符

B)逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符

C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符

D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符

*70

B

下列运算符中优先级最高的是一一一。

A)

*71

C

能正确表示”当x 的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是一一一。

A)  (x>=1)  &&(x = 200)  &&(x<=210)

B)  (x>=1)  || (x=200)  ||(x<=210)

c)  (x>=1)  &&(x= 200)  &&(x<=210)

D) (x > =1)||(x = 200)||(x<=210)

*72

C

表示图中坐标轴上阴影部分的正确表达式是:

/||//|

/||//|

—————————–>   X

a  b      c

A)(X=B)&&(X<=C)

B) (x< =a)||(b<=x<=c)

C)(x =b)  &&  (x<=c)

D)(x < =a)&&(b< = x < = c)

*73

C

判断char型变量ch是否为大写字母的正确表达式是一一一。

A)’ A’ = ‘A’)&(ch<=’ z’ )

C)(ch>=’ A’ )&&(ch = ch)

*74

D

设x,y 和z是int型变量,且x = 3,y= 4,z= 5,则下面表达式中值为0的是

A)’y'&&’y’

B)x < =y

C) x||y+z&&y-z

D) !(x

*75

C

已知x =43,ch=’A',y=0则表达式(x > = y && ch

A)0   B)语法错   C)1   D)”假”

*76

C

若希望当A的值为奇数时,表达式的值为”真”,A的值为偶数 表达式的值

为”假”。则以下不能满足要求的表达式是:

A)  A%2= =1    B)!(A%2 = =0)   C)!(A%2)    D)  A%2

*77

B

设有 int a = 1,b=2,c =3, d =4, m=2, n=2;

执行(m= a>b)&&(n=c>d)后n的值为:

A)1B )2       C)3      D)4

*78

D

判断char型变量c1是否为小写字母 正确表达式为:

A)’ a’ = a)&&(cl<=z)

C)(‘ a’ >=cl)||(‘ z’ =’a')&&(cl<=’z')

*79

B

以下程序的运行结果是:

#include  “stdio.h”

main()      ,,  \

{int  a,b,d= 241;

a=d/100 % 9

b= (一1)&&(一1);

printf(“%d,%d”,a  ,b);

}

A)6,1     B)2,1     C) 6,0     D)2,0

*80

C

执行以下语句后a的值为:

int a,b,c;

a= b= c= 1;

++a||++b&&++c

A)错误    B) 0      C)  2  D)  1

*81

A

执行以下语句后b 的值为:

int  a=5,b=6,w=1,x=2,y=3,z=4;

(a=w>x)&&(b=y>z);

A)  6     B) 0     C)  1      D)  4

*82

C

以下不正确的if语句形式是:

A)if(x>y && x!=y);

B)if(x= =y)  x+=y

C)if(x != y)scanf(“%d”,&x )else scanf(“%d”,&y);

D)if(X

*83

A

下列运算符中优先级最低的是:

A)?:   B)&&     c)+     D)  !=

*84

B

以下if语句语法正确的是一一一。

A)if(x>0)

printf(“%f”,x)

else  printf(“%f”,- -x);

B) if (x>0)

{x=x+y;printf(“%f”,x);}

else  printf(“f”,-x);

C) if(x>0)

{x=x+y;  prinrf(“%f”,x);};

else  printf(“%f”,-x);

D) if(x > 0)

{ x = x +y;printf(“%f”,x)}

else  printf(“%f”,-x);

*85

D

请阅读以下程序:

main()

{int  a=5,b=0,c=0;

if(a=b+c)  printf(“***\n  “);

e1se   printf(“$$$\n”);

以上程序 :

A)有语法错不能通过编译   B)可以通过编译但不能通过连接

C)输出***D)输出$$$

*86

C

以下程序的运行结果是 :

main()

{int m=5;

if(m++> 5)  printf(” %d\n”,m);

e1se     printf(“%d\n”,m- – );

}

A)4    B)5   C)6    D)7

*87

B

当a=1,b=3,c=5,d=4 ,执行完下面一段程序后x 的值是 :

if(a

if(c

else

if(a

if(b

else x= 3;

else x=6;

else x=7;

A)18)2      C)3      D)6

*88

C

以下程序的输出结果是:

main()

{int  a=100,x =10,y=20,okl=5,ok2=0;

if  (x

if(y ! =10)

if(!okl)  a=1;

else

if(ok2)  a=10;

a=-1:

printf( “%d\n”,a )

}

A)  1      B) 0    C)一1    D)值不确定

*89

B

以下程序的输出结果是:

main()

{int  x= 2,y= 一1,z=2;

if (x

if(y<0)  z= 0;

else    z+ =1;

printf(“%d\n”,z);

}

A)3      B )2       C)1      D) 0

*90

B

为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句

总是与(  )配对。

A)缩排位置相同的if     B)其之前最近的if

C) 之后最近的if D)同一行上的if

*91

B

以下不正确的语句为:

A)  if(x>y);

B)  if  (x= y) &&(x! = 0)  x+= y;

C)  if(x!= y)scanf(“%d”,&x);  else  scanf(“%d”,&y);

D)if(x< y){x++ ;y十十;}

*92

B

请阅读以下程序:

#include

main()

{float  a,b

scanf(“%f”,&a);

if (a<10.0) b=1.0/x;

else if((a<0.5)&&(a!=2.0))b= 1.0/(a十2.0);

else  if(a<10.0)  b= 1.0/x ;

else  b=10.0;

printf(“%f\n”,y);

}

若运行时输入2.0(回车),则上面程序的输出结果是:

A)0.000000   B)0.500000  C)  1. 000000   D) 0.250000

*93

B

若有条件表达式(exp) ?  a++:b–,则以下表达式中能完全等价于表

达式(exp)的是:

A)  (exp==0) B)  (exp!=0)

C)  (exp== 1) D)  (exp!=1)

*94

A

若运行时给变量x 输入12,则以下程序的运行结果是:

main()

{int  x,y;

scanf(“%d”,&x);

y=x > 12?x+10:  x一12;

printf(“%d\n”,y);

}

A)0      B)22C)12       0)10

*95

D

以下程序的运行结果是:

main()

{int  k= 4,a=3,b=2,c=1;

printf(“\n %d\n”,k< a ? k:c

}

A)4      B )3     C)2      D)1

*96

B

执行以下程序段后、变量a,b,c的值分别是一。

int  x=10,y=9;

int  a,b,c;

a =(- -x = = y++)?- -x:++y ;

b = x ++;

c = y;

A)a=9,b= 9,c= 9       B )a=8,b=8,c=10

C)a=9,b= 10,c=9      0)a=1,b= 11,c=10

*97

A

若w,x,y,z,m均为int型变量,则执行下面语句后的m值是:

w= 1;x = 2;y= 3;z=4;

m=(w

m= (m

m=(m

A)1B )2     C)3D)4

*98

D

若w=1,X = 2,y= 3,z=4,则条件表达式w

A)4      B)3      C)20)1

*99

C

执行以下程序段后的输出结果是

int  w=3,  z=7,x =10;

printf(“%d\n”,x> 10?  x+100:x 一10);

printf(“%d\n”,w++||z++ );

printf(“%d\n”,!w>z);

printf(“%d\n”,w&&z);

A)0       B)  1       C)0      D) 0

1            1           1          1

1            1           0          0

1            1           1          0

*100

C

设有程序段

int  k=10;

while  (k=0)  k= k—1;

则下面描述中正确的是

A)  while循环执行10次      B)循环是无限循环

C)循环体语句一次也不执行   D)循环体语句执行一次

*101

B

有以下程序段

int  x=0,s=0;

while  (!  x!= 0)  s+=++x;

printf(“%d”,s);

A)运行程序段后输出0 B)运行程序段后输出1

C)程序段中的控制表达式是非法的       D)程序段执行无限次

*101

A

语句while(!E)中的表达式!E等价于:

A)  E==0   B)  E!=1  C)  E!=0    D)  E==1

*

A

下面程序段的运行结果是

a=1;b= 2;c=2;

while(a

printf(“%d,%d,%d”,a,b,c);

A)1,2,0    B)2,1,0    C)1,2,1    D)2,1,1

*102

D

下面程序段的运行结果是:

x = y= 0;

while(x<15)  y++,x + = ++y;

printf(“%d,%d”,y,x);

A)  20,7    B)6,12      c)  20,8      D)8,20

*

C

【题5.6】下面程序段的运行结果是

if    n=0;

while(n++<=2);  printf(“%d”,n);  A)  2      B) 3C)  4     D)有语法错

*103

B

设有程序段

t=0;

while  (printf”*”))

{t++;

if(t<3)  break

}

面描述正确的是:

A)其中循环控制表达式与0等价       B)其中循环控制表达式与’0′等价

C)其中循环控制表达式是不合法的     D)以上说法部不对

*104

B

下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空:

#indude

main()

{int  a,b,t;

scanf(“%d%d”,&a,&b);

while(  【1】  )

{if(a>b)

{t=a;a=b;b=t;}

printf(“%d,%d”,a,b);

scahf(“%d%d”,&a,&b);人

}

【1】   A)  !a=b    B)  a!=b     C)  a= =b     D)  a=b

*105

C

下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空:

#indude   “stdio.h”

main()

{int  m=0,n=0;

char    c;  1

while((【1】)!=’\n’)

{ if(c>=’A’ && C<=’Z') m++ ;

if(c>=’a'  && c<=’z')  n++; }

printf(“%d\n”,  m

1】 A) c=getchar()  B)  getchar()  C)c=getchar()  D)  scanf(“%c”,c)

*106

C

下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,z 变成B.请选择填空。

#include “stdio. H”

main()

{    char c;

while((c=getchar())!=’\n’)

{if(c>= ‘a’&& c<=’z')

c – = 30;

if(c>’z’ && c<=’z'+ 2)

【2】; }

printf(” %c”,c)

}

【2】A)  c=’B'   B)  c=’A'      C)  c-=26     D)  c=c+26

*107

B

下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。

#include

main()

{int a,max= 0;

scanf(“%d”,&a)

while(【1】)

{if(max

scanf(“%d”,&a); }

printf(“%d” ,max  );}

【1】  A)  a==o    B)A     C)  !A = = 1D)!a

*108

C

下面程序的运行结果是。

#include

main()

{ int  num= 0;

while(num<= 2)

{num++

printf (“%d\n”, num);}

}

A)1      B ) 1   c)1D)1

2      2  2

3  3

4

*109

C

以下程序段

x= -1;

do

{x=x*x;}

while(!x);

A)是死循环 B)循环执行二次

C)循环执行一次     D)有语法错误

*110

C

以下描述中正确的是:

A)由于do一while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B)  do一while循环由do开始,用while结束,在while(表达式)后面不能写分号

C)在do一while循环体中,一定要有能使while后表达式值变为零(“假”)的操作

D)do一while循环中,根据情况可以省略while

*111

B

若有如下语句

int  x=3;

do { printf(” %d\n”,x -=2);} while(!(–x));

则上面程序段

A)输出的是 1  B)输出的是1和-2

C)输出的是3和0      D)是死循环

*112

C

下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。

#include

main()

{int  n,sum=0;

n=2345

do{ sum=sum+(n%10)*n%10);

n=【2】;

}while(n);

printf(“sum=%d”,sum);}

【2】 A)  n/1000   B)n/100      C)  n/10    D)  n%10

*113

B

下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。请选择填空。

#  include

main()

{1ong  int  num;

scanf(“%ld”,&num);

do  { if( 【1】) printf(“%ld”,num);

scanf(“%ld”,&num);

}while(!num==0);}

【1】 A)num%100/10==3 B)num/100%10==3

C)num%10/10==3 D)num/10%10==3

*114

B

下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除。请选择填空。

#include

main()

{int  i=0,j,k;

do{  i++;k=316一13*i;}

while(【1】);j=k/11;

printf(” 316=13* %d十11*%d”,i,j);

}

【1】A)k/11    B) k%11    C) k/11==0   D) k/11== 0

*115

D

下面程序的运行结果是:

#indude

main()

{int  y=10;

do{y–;}

while(–y);

printf(“%d\n”,y–);

}

A)一1B)1      C)8      D) 0

*116

D

若运行以下程序时,从键盘输入ADescriptor(CR)表示回车),则下面程序的运行结果是:

#include

main()

{ char c;

int v0=0.v1=0,v2=0;

do{

switch(c=getchar())

{case ‘a’:case  ‘A’  :

case ‘e’:case  ‘ E’ :

case ‘i’:case ‘I’ :

case ‘o’:Case  ‘O’  :

case ‘u’:case  ‘U’  :vl+=1;

default:v0+=1;v2+=1  ;}     ;

while(c!=’\n’);

printf(“v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);

}

A)v0=7,v1=4,v2=7B)  v0=8,v 1=4,v2=8

C)v0= 11,v1=4,v2=11      D)  v0=12,vl=4,v2=12

*117

B

下面程序的运行结果是:

#include

main()

{int   a==1,b=10;

do

{b-=a;a++;}while(b–<0);

printf(“a=%d,b=%d\n”,a,b);

}    ‘

A)a=3,b=11   B )a=2,b=8    C)a=1,  b=一1    D)a=4,b=9

*118

D

下面有关for循环的正确描述是:

A)  for循环只能用于循环次数已经确定的情况

B)  for循环是先执行循环体语句,后判断表达式

C)  在for循环中,不能用break语句跳出循环体

D)  for循环的循环体语句中, 可以包含多条语句,但必须用花括号括起来

*119

B

对for(表达式1;;表达式3)可理解为:

A)  for(表达式1;  0;表达式3)

B)  for(表达式1;1;表达式3)

C)    for(表达式1;表达式1;表达式3)

D)    for(表达式1;表达式3;表达式3)

*120

B

若i为整型变量,则以下循环执行次数是:

for  (i=2;i==0;)  printf(“%d”,i– );

A)无限次   B) 0次   C) 1 次     D)  2次

*121

C

以下for循环的执行次数是:

for  (x=0,y一0;  (y=123)&&(x<4);  x++);

A)是无限循环 B)循环次数不定 C)执行4次  D)执行3次

*122

A

以下不是无限循环的语句为:

A)  for  (y=0,x=1;x > ++y;x =i++)  i=x ;

B)   for (;;  x++=i);

C)  while  (1){x ++;}

D)  for(i=10; ;i–)sum+=i;

*123

C

下面程序段的运行结果是:

for (y= 1;y<10;) y=((x=3* y,x+1),x-1);

printf  (“x=%d,y=%d”,x,y);

A)x=27,y=27   B)x=12,y=13   C)x=15,y=14   D)x=y=27

*124

D

下面程序段的运行结果是

for(x=3;x<6;x++)printf((x %2)?(“**%d”):(” ##%d\n”),x);

A)**3      B )##3     C)##3  D)**3##4

##4  **4 **4##5 **5

**5  ##5

*125

C

下列程序段不是死循环的是

A)  int  i=100;

whiLe  (1)

{i=i%100+1;

if  (i>100)  break;

}

B)  for(;;);

C)  int  k=0;

do{++k;}  while  (k> =0)  ;

D)  int  s=36;

while  (s);–s

*126

C

执行语句for(i=1;i++<4;);后变量i的值是

A)3    B )4     C)5    D)不定

*127

D

下面程序的功能是计算:至50中是7的倍数的数值之和,请选择填空。

#include    •

main()

{int  i,sum= 0;

for(i=1;i<=50;i++)

if([1])  sum+=i;

printf(“%d”,sum);

}

A) (int)(i/7)==i/7

B) (int)i/7==i/7

C)  i%7= 0

D)  i%7==0

*128

B

下面程序的功能是计算 1至10之间的奇数之和及偶数之和。请选择填空;

# include

main()

{int  a,b,c,i;

a=c=0;

for(i=0;i<=10;i+=2)

{ a+=i;

[1];

c+=b;

}

printf(“偶数之和=%d\n”,a);

printf(“奇数之和=%d\n”,c-11),

}

[1] A )b=i–  B)  b=i+1   C)  b=i++   D)b=i-1

*129

B

下面程序的运行结果是:

#include

main()

{int i;

for(i=1;i<=5;i++)

switch(i%5)

{case  0:printf(“* “);break;

case  1  :printf(“#”);break;

default  :printf(“\n”);

case  2  :printf(“&”);

}

A)#&&&*  B) #&   C)  #    D)#&

&         &

&         &

*

*130

D

下面程序的运行结果是:

#include

main()

{  int    x,i;

for(j-1;i<=100;i++)

{x=i;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

printf(“%d”,x);

}

}

A)39  81     日)42 84      C)26  68       D)  28  70

*131

C

下面程序段的功能是计算1000!的末尾含有多少个零。请选择填空。

(提示:只要算出1000!中含有因数5的个数即可

for(k=0,i=5;i<=1000;  i+=5)

while(【1】){k++; m=m/5;}

【1】A)m%5==0   B)m=m%5==0  C)m%5==0  D)m%5!=0

*132

D

下面程序的运行结果是:

#include

main()

{int i,b,k=0;

for(i=1;i< =5;i++)

{b=i%2;

while(b–>=0)     k++;

}

printf(“%d,%d”,k,b);

}

A)3,-1     B )8,-1    C)3,0     D)8,-2

*133

B

以下正确的描述是。

A)continue语句的作用是结束整个循环的执行

B)只能在循环体内和switch语句体内使用break语句

C)在循环体内使用break语句或continue语句的作用相同

D)从多层循环嵌套中退出时, 只能使用goto语句

*134

D

下面程序段:

for  (t=1;  t<=100;t++)

{scanf(“%d”,&x);

if(x<0)  continue;

printf(“%3d”,t);}

A) 当x<0时整个循环结束

B) x>=0时什么也不输出

C) printf函数永远也不执行

D)最多允许输出100个非负整数

*135

C

下面程序段:

x=3;

do

{y=x–;

if(!y){ printf(“x”);continue;}

printf(“#”);

}  while (1<=x<=2);

A)将输出##       B)将输出##*

C)是死循环 D)含有不合法的控制表达式

*136

C

以下描述正确的是

A)  goto语句只能用于退出多层循环

B)  switch语句中不能出现continue语句

C)  只能用continue语句来终止本次循环

D)  在循环中break语句不能独立出现

*137

C

与下面程序段等价的是:

for(n=100;n<= 200; n++)

{if (n%3==0)  continue;

printf(“%4d”,n);}

A) for(n=100;(n%3)&& n<=200;n++) printf(“%4d”,n);

B)  for(n=100;(n%3)|| n<=200;n++) printf(“%4d”,n);

C) for(n=100;n<=200;n++)if(n%3!=0)printf(“%4d”,n)

D) for(n=100;n<=200;  n++)

{if(n%3)  printf(“%4d”,n);

else  continue;

break;}

*138

B

下面程序的运行结果是:

#include

{ int k=0;

char  c=’A';

do

{switch(c++)

{case  ‘A’:k++;break;

case  ‘B’:k–;

case  ‘C’:k+=2;break;

case  ‘D’:k=k%2;continue;

case  ‘E’:k=k*10;breab;

default:k=k/3;}

k++;}

while(c

printf(“k=%d”,k);}

A)k=3     B)k=4    C)k=2    D)k=0

*139

B

若运行以下程序时,从键盘输入3.6,2.4,(表示回车),则下面程序的运行结果是:

#indude

# include

main()

{float x,y,z;

scanf(“%f%f”,&x,&y);

z=x/y;

while(1)

{if(fabs(z)>1.0) {x=y;y=z;z=x/y;}

else break;}

printf(“%f”,y);}

A) 1.5  B)1.6 C) 2.0 D)  2.4

*140

B

下面程序的运行结果是:

#include  “stdio.h”

main()

{int a,b;

for(a=1,b=1;a<=100;a++)

{if (b>=20) break;

if(b%3==1) {b+=3;continue;}

b-=5;}

printf(“%d\n”,a);}

A) 7      B)8     C)9      D) 10

*141

B

下面程序的运行结果是:

#include “stdio.h”

main()

{int i;

for(i=1;i<=5;i++)

{if (i%2) printf(“#”);

else continue;

printf(“*”);

}

printf(“$”);}

A) *#*#$   B)   #*#*#*$   C) *#*#$   D)#*#*$

*142

A

下面程序的运行结果是:

main()

{int i,j,a=0;

for (i=0;i<2;i++)

{ for (j=0;j<=4;j++)

{if (j%2)  break;

a++;}

a++;}

printf(“%d\n”,a);

}

A)  4       B) 5       C)  6      D)  7

*179

c

在c语言中,引用数组元素时,其数组下标的数据类型允许是__.

A)整型常量         B)整型表达式

c)整型常量或整型表达式D)任何类型的表达式

*180

D

以下对一维整型数组a的正确说明是__。

A)  int a(10);  B)int n= 10,a[n];

c)  int  n;       D)  #define  SIZE  10;

scanf(“%”,&J1);  int a[SIZE];

int a[n];

*181

D

若有说明:int a[10];则对a数组元素的正确引用是__。

A)a[10] B) a[3.5] C) a(5) D) a[10-10]

*182

A

在C语言中,一维数组的定义方式为:,类型说说明符 数组名__。

A) [常量表达式]   B) [整形表达式]

c)[ 整型常量]或[整型表达式] D)[整型常量]

*183

C

以下能对一维数组a进行正确初始化的语句是__。

A)  int a[10]=(0,0,0,0,0) B)int  a[10]={}

C)  int  a[]={0};D) int a[10]={10*1};

*184

C

以下对二维数组a的正确说明是__。

A)  int a[3][];   B)  floatf a(3,4);

c)  double a[1][4];  D)  float a(3)(4);

*185

C

若有说明:int a[3][4]; 则对a数组元素的正确引用是__。

A)  a[2][4]     B)  a[1,3]   C)  a[1+1][0]    D)  a(2)(1);

*186

D

若有说明:int a[3][4];则对a数组元素的非法引用是__。

A)  a[0][2*1]  B)  a[1][3]  C)a[4-2][0]    D)a[0][4]“       ”

*187

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}};

*188

C

以下不能对二维数组a进行正确初始化的语句是__。

A)  int  a[2][3]={0};

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},{0},{1,1}};

*189

D

若有说明:  int  a[3]「4]={0};则下面正确的叙述是

A)只有元素a[0][0]可得到初值0

B)此说明语句不正确:。

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

D)数组a中每个元素均可得到初值0

*190

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

*191

B

若有说明:int  a[3]「4];则数组a各元素

A)可在程序的运行阶段得到初值0

B)可在程序的编译阶段得到初值0

C)不能得到确定的初值

D)可在程序的编译或运行阶段得初值0

*192

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]

*193

A

下面程序(每行程序前面的数字表示行号)

1   main()

2     {

3     int  a[3]={3*0};

4     int  i;

5     for(i=0;i<3;i++)  scanf(“%d”,&a[ i]);

6     for(i=1;i<3;i++) a[0]=a[0]+a[ i] ;

7     printf(“%d\n”,a[0]); }

A)没有错误B)第3行有错误

C)第5行有错误 D)第7行有错误

*194

C

下面程序一一一(每行程序前面的数字表示行号)。

1    main()

2    {

3     float a[10]={0.0};

4     int  i

5     for(i=0;i<3;i++)  scanf(“%d”,&a[ i]);

6     for(i=0;i<10;i++)  a[0]=a[0]+a[ i];

7     printf(“%d\n”,a[0]);

8     }

A)没有错误         B)第3行有错误

C)第5行有错误      D)第7行有错误

*195

D

下面程序有错的行是

1  main()

2{

3   int  a[3]={1};

4   int  i;

5   scanf(“%d”,&a);

6   for(i=1;i<3;i++)  a[0]=a[0]+a[ i];

7   printf(“a[0]=%d\n”,a[0]);

8   }

A)3      B)6   C)7      D)5

*196

D

下面程序(每行程序前面的数字表示行号)

1  main()

2  {

3   int a[3]={0};

4   int i;

5   for(i=0;i<3;i++)scanf(“%d”,&a[ i]);

6   for(i=1;i<4;i++)a[0]=a[0]+a[ i];

7   printf(“%d\n”,a[0]);

8                     }

A)没有错误            B)第3行有错误

C)第5行有错误        D)第6行有错误

*197

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

*198

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)因为数组长度与初值的个数不相同,所以此语句不正确

*199

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’};    4       。二入广    \   “’   (:

D)  char c2[]=}{‘\x10′,’\xa’,'\x8′};

*200

B

若有说明:int  a[」「3」={1,2,3,4,5,6,7};则a数组第一维的大小是__.

A)  2    B) 3  C)  4  D)无确定值

*201

B

若二维数组a有m列,则在a[ i][j]前的元素个数为__.

A)j*m+j  B)i*m+j    C)i*m+j  D)i*m+j+1

*202

A

定义如下变量和数组:

int k;

int a[3][3]={1,2,3,4,5,6,7,8,9};

则下面语句的输出结果是    。”

for(k=0;k<3;k++)  printf  (“%d”,a[k][2-k]);

A)  3  5  7B)3 6 9   C) 1 5 9 D)  1 4 7

*203

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)对数组a进行插入排序(升序)

B)对数组a进行插入排序(降序)

C)对数组a进行选择排序(升序)

D)对数组a进行选择排序(降序)

*204

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};

*205

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(“%2d”,a[ i][j]);

printf(“\n”_);}

}

A)11111     B)00001 C)10000     D)10001

11111        00010    01000         01010

11111        00100    00100         00100

11111        01000    00010         01010

11111        10000    00001         10001

*206

C

下面程序的运行结果是 __.

main()

{int  a[6],i;

for(i=1;i<6;i十十)

{a[ i]=9*(i-2+4*(i>3))%5;

printf(“%2d”,a[ i]);

}

}

A)—40404B)—40403

C)一40443D)一40440

*207

D

下面是对s的初始化,其中不正确的是__.

A)  char  s[5」={"abc"} B)char s[5]={‘a’,'b’,'c’};

C)  char  s[5]=”"       D) char s[5]=”abcdef”;

*208

B

下面程序段的运行结果是 __.

char  c[5]={‘a’,'b’,'\0′,’c',’\0′};

printf(“%s”,c);}

A)’a’’b’ B)  ab   C)  ab c   D)  ab

(其中 表示空格)

*209

D

对两个数组a和6进行如下初始化

char  a[]=”ABCDEF”;

char  b[]={’A’,’B’,’C’,’D’,’E’,’F’};卜

则以下叙述正确的是 __.

A)  a与b数组完全相同       B)  a与b长度相同

C)  a和b中都存放字符串     D)  a数组比b数组长度长

*210

B

有两个字符数组a、b,则以下正确的输入格式是  __.

A)  gets  (a,b);   B)  scanf  (“%s%s”,a,b);

C)  scanf  (“%s%s”,&a,&b);  D)  gets  (“a”),  gets  (“b”);

*211

D

有字符数组a[80]和b[80],则正确的输出形式是__.

A)  puts  (a,b);  B)  printf  (“%s,%s,a[],b[]);

C)  putchar(a,b);  D)  puts  (a),  puts  (b);

*212

D

下面程序段的运行结果是__.

char  a[7]=”abcdef”;

char  b[4]=”ABC”;

strcpy(a,b);

printf  (“%c”,a[5]);

J。        “      了

A)一   B)\O  C) e D)f(其中一表示空格)

*213

D

有下面的程序段

char  a[3],b[]=”china”;

a=b;

printf(“%s”,a);

则__.

A)运行后•将输出Chm、”、B)运行后将输出Ch’一

C)运行后将输出Chi      D)编译出错

*214

B

下面程序段的运行结果是__.

char  c[]=”\t\v\\\0will\n”;

printf(“%d”,strlen(c));

A)14     B) 3  C)  9  D)字符串中有非法字符,输出值不确定

*215

D

判断字符串a和b是否相等,应当使用__.

A)  if  (a==b)   B)  if  (a=b)

C)  if  (strcpy(a,b)),  D)  if  (strcmp(a,b))

*216

D

判断字符串s1是否大于字符串s2应当使用__.

A)  if  (sl>s2)   B)  if  (strcmp(s1,s2))

C)  if  (strcmp(s2,sl)>0)  D)  if  (strcmp(s1,s2)>0)

*217

A

下面程序段是输出两个字符串中对应字符相等的字符。请选择填空。

char  x[]=”programming”;

char  y[]=”Fortran”;

int  i=0;

while  (x[ i]!=’\0′&& y[ i]!=’\0′)

{if  (x[i ]==y[ i]) printf  (“%c”, 1  );

else i++;}

}

【1】A)x[i++] B)y[++i]  C)x[ i]    D)y[ i]

*218

D

下面描述正确的是__.

A)两个字符串所包含的字符个数相同时,才能比较字符串

B)字符个数多的字符串比字符个数少的字符串大

C)字符串”STOP “与”STOp”相等

D)字符串”hat”小于字符串”he”

*219

C

下述对C语言字符数组的描述中错误的是

A)字符数组可以存放字符串

B)字符数组的字符串可以整体输入、输出

C)可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值

D)不可以用关系运算符对字符数组中的字符串进行比较

*220

B

有已排好序的字符串a,下面的程序是将字符串s中的每个字符按a中元素

的规律插入到a中。请选择填空。

#indude

main()

{char  a[20」="cehiknqtw";

char  s[]=”fbla”;

int i,k,j;

for(k=0;s[k]!=’\0′;k十+)

{j=0;

while(s[k]>=a[j]&&a[j]!=’\0′)j++;

for(i=str1en(a);i>=j;i–) 【2】;

a[j」=S[k」;

}

puts(a);

}

【2】  A)  a[ i]=a[i+1]  B)  a[i+1]=a[ i];

C)   a[ i]=a[i-1] D) a[i-1]=a[ i];

*221

A

下面程序的功能是将字符串5中所有的字符c删除。请选择填空。

#include

main()

{char  s[80];

int i,j;

gets(s);

for(i=j=0;s[ i]!=’\0′;i++)

if(s[ i]!=’c')【1】

puts(s);

【1】A)s[j++]=s[ i]  B)s[++j]=s[ i];

C)  s[j]=s[ i];j++;   D)  s[j]=s[ i];

*222

B

下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间

用空格分隔。请选择填空。

#indude

main()

{char  s[80」,c1,c2='';

int  i=0,num=0;

gets(s);

while(s[ i]!=’\0′)

{c1=s[ i];

1f(i==0)  c2=”;

else  c2=s[i-1];

if(【1】)  num++;

i++;

)

printf(“There are %d words.\n”,num);

}

【1】A)c1=” && c2==” B)cl!=” && c2==”

C)c1==” && c2!=” D)cl!=” && c2!=”

*223

A

下面程序的运行结果是

#indude

main()

{char  ch[7]={“12ab56″};

int  i,s=0;

for(i=0;ch[ i]>=’0′&&ch[ i]<=’9′;i+=2)

s=10*s+ch[ i]-’0′;

printf(“%d\n”,s);

}

A)1       B)1256        C)  12ab56      D)1

2

5

6

*224

A

当运行以下程序时,从键盘输入:aa  bb

cc dd

(表示回车),则下面程序的运行结果是

#  include

main()

{char  a1[5],a2[5」,a3[5],a4[5];

scanf(“%s%s”,a1,a2);

gets(a3);  gets(a4);

puts(al);  puts(a2);

puts(a3);  puts(a4);

}

A)  aa     B)  aa ()aa        D)  aa bb

bb         bb    bb           cc

cc    cc  dd       dd

cc dd      dd ee

*225

D

当运行以下程序时,从键盘输入:ab

c

dd

(表示回车),则下面程序的运行结果是

#include

#difine N 6

main()

{  char  c[N];

int  i=0;

for  (;i

for(i=0;  i

A)abcdef   B)a    C)b      D)ab

b       c         c

c       d         d

e

f

*226

A

当运行以下程序时,从键盘输入:AhaMA  Aha(

则下面程序的运行结果是

#include  "stdio.h"

main()

{char  s[80],c=’a';

int i=0;

scanf(“%s”,s);

while(s[ i]!=’\0′)

{if(s[ i]==c)  s[ i]=s[ i]-32;

else  if(s[ i]==c-32)  s[ i]=s[ i]+32;

i++;

}

puts(s);

)

A)ahAMa      B)AhAMa      C)  AhAMa  ahA  D)  ahAMa ahA

*227

D

下面程序的运行结果是一一一。

#include

#inc1ude

main()

{char  a[80」="AB",b[80]=”LMNP”;

int  i=0;

strcat(a,b);

whi1e(a[i++]!=’\0′)b[ i]=a[ i];

puts(b);

}

A)LB   B)ABLMNP     C)AB     D)LBLMNP

*228

B

下面程序的运行结果是

#include

main()

{

char str[]=”SSSWLIA”,c;

int k;

for(k=2;(c=str[k])!=’\0′;k++)

{switch(c)

{case ‘I’:++k;break;

case ‘L’:continue;

default:putchar(c);continue;

}

putchar(‘*’);

}

}

A)SSW*    B)SW*   C)  SW*A  D)SW

*229

B

下面程序的运行结果是

#include

main()

{char a[]=”morning”,t;

int i,j=0;

for(i=1;i<7;i++) if(a[j]

t=a[j];a[j]=a[7];

a[7]=a[j];puts(a);

}

A)  mogninr  B)  mo  C)  morning  D)  mornin

将两个无序数组合并为有序链表

实现思想:

把两个无序的数组首先排序,然后再按照链表结构把它们分别构造好,然后再把两个有序链表合并。

int const array1_size = 5;//数组1的长度

int const array2_size = 7;//数组2的长度

//链表结构体

typedef struct ListNode

{

int data;

ListNode * next;

}ListNode;

//合并两个有序链表返回不带头结点的头指针

ListNode * MergeList(ListNode *p,ListNode *q)

{

ListNode *h,*r;

h = new ListNode;

h->next = NULL;

r = h;

while(p !=NULL && q != NULL)

{

if(p->data data)

{

r->next = p;

r =p;

p = p->next;

}

else

{

r->next = q;

r =q;

q = q->next;

}

}

if(p != NULL)

r->next = p;

else

r->next = q;

p = h;

h = h->next;

delete p;

return h;

}

//构造一个链表(没有头结点的)

ListNode * GenerateList(int array[],int length)

{

ListNode * h,*temp,*old_head ;

h = new ListNode;

h->next = NULL;

temp = h;

for(int i = 0; i< length;i++)

{

ListNode *p = new ListNode;

p->data = array[i];

temp->next = p;

temp = p;

}

temp->next = NULL;

old_head = h;

h = h->next;

delete old_head;

return h;

}

//打印链表

void Print_List(ListNode *h)

{

ListNode *p;

p = h;

for(;p!=NULL;p=p->next)

printf(“%d “,p->data);

}

//引入冒泡排序算法

void Swap(int *a,int *b)

{

int temp;

temp = *a;

*a = *b;

*b = temp;

}

void Bubble_Sort(int *array,int length)

{

int pass,j;

for(pass =1;pass<=length-1;pass++)

for(j=0;j<=length-2;j++)

if(array[j]>array[j+1])

Swap(&array[j],&array[j+1]);

}

/*********************OK,所有准备工作已经做好,开始main()函数**********/

//输入字符表示结束

int _tmain(int argc, _TCHAR* argv[])

{

char end;

int List1[array1_size]={9,5,6,10,45};

int List2[array2_size]={3,1,4,6,7,9,0};

Bubble_Sort(List1,array1_size);

Bubble_Sort(List2,array2_size);

ListNode * m_list1,*m_list2,*m_list;

m_list1 = GenerateList(List1,array1_size);

m_list2 = GenerateList(List2,array2_size);

m_list = MergeList(m_list1,m_list2);

Print_List(m_list);

scanf(“%c”,&end);

return 0;

}

分享给朋友:

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息:

面试题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值