当前位置:文档之家› 计算机试题

计算机试题

计算机试题
计算机试题

第1单元 C语言基础知识

一、单项选择题

1.是构成C语言程序的基本单位。

A.函数

B.过程

C.子程序

D.子例程

2.以下叙述中正确的是______。

A. 构成C程序的基本单位是函数

B. 可以在一个函数中定义另一个函数

C. main()函数必须放在其它函数之前

D. 所有被调用的函数一定要在调用之前进行定义

3.下述正确的C语言常量是。

A.E2

B.1.5E2.3

C.5.OE

D.3e-3

4.下列计算机语言中,CPU能直接识别的是__ ____。

A. 自然语言

B. 高级语言

C.汇编语言

D.机器语言

5.设int x=1,y=1; 表达式(!x||y--)的值。

A. 0

B. 1

C.2

D. -1

6.是C语言提供的合法的数据类型关键字。

A.Float

B.signed

C.integer

D.Char

7.不合法的常量是。

A.’\2’

B. ""

C. ‘’

D. "\486"

8.以下选项中合法的实型常数是______。

A. 5E2.0

B. E-3

C. .2E0

D. 1.3E

9.以下选项中合法的用户标识符是______。

A. long

B. _2Test

C. 3Dmax

D. A.dat

10.在以下各组标识符中,合法的用户标识符是 (1) 、 (2) 、 (3) 。

(1) A.B0l B.table_1 C.0_t D.k%

int t*.1 W10 point

(2) A. Fast_ B.void C.pb1 D.〈book〉

Fast+Big abs fabe beep

(3) A.xy_ B.longdouble C.*p D.CHAR

变量1 signed history Flaut

11.与十进制511等值的十六进制数为______。

A. 1FF

B. 2FF

C. 1FE

D. 2FE

12.英文大写字母B的ASCII码为42H,英文小写字母b的ASCII码为______。

A. 43H

B. 84H

C. 74H

D. 62H

13.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是______。

A. 字符A

B. 字符a

C. 字符e

D. 非法的常量

14.属于合法的C语言长整型常量的是。

A.5876273

B.OL

C.2E10

D.(long)5876273

15.在C语言中,设int型占2字节,下列不正确的int型常数为。

A.32768

B.0

C.037

D.0xaf

16.在C语言中不同数据类型的长度是。

A.固定的

B.由用户自己定义的

C.任意的

D.与机器字长有关的

17.在通常微机上的C语言中,int类型数据占用 (1) 个字节存储;unsigned int类型数据占用 (2) 个字节存储;short类型数据占用 (3) 个字节存储;long类型数据占

用 (4) 个字节存储。

A.1

B.2

C.4

D.8

18.下列四组(八进制或十六进制)常数中,正确的一组是。

A.016 0xbf 0017

B.0abc 017 0xa

C.010 x11 Oxl6

D.0A12 7FF -123

19.在C语言中,合法的字符常数是。

A.’\084’

B.’\x42’

C.’\84’

D.”\0”

20.下列不正确的转义字符是。

A.‘\\’

B.’\’’

C.‘074’

D.’\0’

21.下列四个叙述中,错误的是。

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

B.在C程序中,变量名代表存储器中的一个位置

C.静态变量的生存期与整个程序的运行期相同

D. C语言中的变量必须先说明后引用

22.有关下述语句输出的判断中,正确的是。

int x=0xafffc;

printf(“%d”,x);

A.赋值非法

B.输出值不确定

C.输出值为afff

D.输出值-4

23.有关下述语句输出的判断中,正确的是。

char x=’\xeO’;

printf(“%x”,x);

A.赋值非法

B.输出值不确定

C.输出值为-32

D.输出值为224

24.下述语句的输出为。

int x=-1;

printf(“%d, %u, %o”,x,x,x);

A.-1,-1,-1

B.-1,32767,-177777

C.-1,32768,177777

D.-1,65535,177777

25.下述语句的输出为。

int x=2.5555555;

float y=2.5555555;

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

A.格式不匹配,错误输出

B.2, 2.555556

C.3, 2.555555

D.3, 2.555556

26.在C语言中,要求参加运算的数必须是整数的运算符是。

A./

B.!

C.%

D.==

27.下列语句中,符合语法的赋值语句是。

A.a=7+b+c=a+7;

B.a=7+b++=a+7

C.a=7+b,b++,a+7

D.a=7+b,c=a+7

28.下述程序的输出结果是。

#include

void main( )

{ int a=2;

a%=4-1;

printf(“%d,”,a);

a+=a*=a-=a*=3;

printf(“%d”,a);

}

A.2,O

B.1,O

C.-1,12

D.2,12

29.下述正确的语句是。

A.int x=y=z=0;

B.int z=(x+y)++;

C.x=+3==2;

D.d%=2.5;

30.下述程序的输出是。

#include

void main( )

{ int a =011, b=101;

printf(“\n%x,%o”, ++a,b++);

}

A.12,145

B.9,144

C.a,145

D.a,5

31.以下非法的赋值语句是______。

A. n=(i=2,++i).;

B. j++;

C. ++(i+1);

D. x=j>0;

32.下列语句错误的是。

A.x=sizeof int;

B.x=sizeof(3.14);

C.printf("%d",a=a+1,b--,c+1);

D.printf("%d",++x,x++);

33.对下述程序段正确的描述是。(注:题中的□表示空格,以下同)

int x=1234;

printf("ABS(x)=|%-08d|",x);

A.输出为ABS(x)=|-0001234|

B.输出为ABS(x)=|0001234|

C.输出为ABS(x)=|1234□□□□|

D.输出格式描述非法,无输出

34.下面程序的输出结果是。

#include

void main( )

{ int x=02,y=3;

printf("x=%%d,y=%%d", x,y);

}

A.x=2,y=3

B.x=%2,y=%3

C.x=%%d,y=%%d

D.x=%d,y=%d

35.设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是______。

A. 6.500000

B. 6

C. 5.500000

D. 6.000000

36.下述程序。

#include

void main( )

{ int a=1234;

float b=123.456;

double c=12345.52345;

printf("\n%2d,%2.1f,%2.1f",a,b,c);

}

A.输出格式中位数不够,无输出

B.输出结果为12,12.4,12.5

C.输出结果为1234,123.5,12345.5

D.输出结果为1234,123.4,1234.5

37.下述程序。

#include

void main( )

{ long a=0xabcdef;

double b=1.0E40;

printf("\n5.2e,%-6x",b,a);

}

A.由于类型不符,不产生输出

B.输出1.0e+40.cdef□□

C.输出1.Oe+40, abcdef

D.有输出,但值与B.,C.皆不相同

38.已知字母A的ASCII码值是65,以下程序。

#include

void main( )

{ char a ='A';

int b=20;

printf("%d,%o",(a=a+1,a+b,b),a+'a'-'A',b);

}

A.表达式非法,输出零或不确定值

B.因输出项过多,无输出或输出不确定值

C.输出结果为20,141

D.输出结果为20,141,20

二、填空题

1.经过下述赋值后,变量x的数据类型是。

int x=2;

double y;

y=(int)(float)x;

2.下述程序的输出是。

#include

void main( )

{ int x=-2345;

float y=12.3;

printf("%6D,%06.2F",x,y);

}

3.下述程序的执行结果是。

#include

void main( )

{ printf("\n%s","\tab\%L"\’\060\084\\");

}

4.char型常量在内存中存放的是码值。

5.’\72’在内存中占 (1) 个字节,"\72"在内存中占 (2) 个字节。

6.表达式5%(-3)的值是 (1) ,表达式-5% (-3)的值是 (2) 。

7.定义:

double x=3.5,y=3.2;则表达式(int)x*0.5的值是 (1) ,表达式y+=x++的值是(2)。

8.定义:

int m=5,n=3;则表达式m/=n+4的值是 (1) ,表达式m=(m=1,n=2,n-m)的值是(2) ,表达式m+=m-=(m=1)*(n=2)的值是 (3) 。

若再进行下述赋值:

m=1,2,n++;则m的值是 (4) ,n的值是(5)。

9.阅读下述程序,说明其输出结果。请填空。

#inetude

void main ( )

{int n=3,b=4;

printf("%d\n',a=a+1,b+a,b+1); \*输出结果 (1) */

printf("%d\n',(a=a+1,b+a,b+1)); \*输出结果 (2) */

}

10.设有以下定义,并已赋于了确定的值:

char w;int x;float y;double z;

则表达式w*x+z-y所求得值的数据类型为。

11.设有int x=11;,则表达式(x++*1/3)的值为。

12.设已定义int x=1;y=1,则表达式(!x||y--)的值是。

13.设x为int变量,与逻辑表达式!x等价的最简单的C语言关系表达式为。

第2单元顺序结构程序设计

一、单项选择题

1.指出下列不正确的赋值语句是____________。

A.a++ B.a= =7 C.a+=7 D.a=1,b=1

2.若有以下程序,执行后的输出结果是__________。

main()

{ int k=2,i=2,m;

m=(k+=i*=k);

printf(“%d , %d\n”,m,i);

}

A.8 ,6 B.8,3 C.6, 4 D.7,4

3.以下程序的输出结果是________。

main()

{ int a=5,b=4,c=6,d;

printf(“%d\n”,d=a>b?(a>c?a:c)(b)); }

A.5 B.4 C.6 D.不确定

4.设有定义:long x=-123456L; 则以下能够正确输出变量x值的语句是_______。

A.printf(“x=%d\n”,x) B.printf(“x=%ld\n”,x)

C.printf(“x=%8dl\n”,x) C.printf(“x=%LD\n”,x);

5.以下程序的输出结果是_________。

main()

{ int k=17;

printf(“%d , %do, %x \n”,k,k,k); }

A.17,021,0x11 B.17,17,17 C.17,0x11,021 D.17, 21,11 6.下列程序的输出结果是:__________。

main()

{ int a=2;

a%=4-1;

printf(“%d”,a);

a+=a*=a-=a*=3;

printf(“%d”,a); }

A 2 ,0

B 1,0

C –1,12

D 2,12

7.设整型变量n的值为2,执行语句“n+=n - =n*n”后,n的值是_______。

A.0 B.2 C.- 4 D.4

8.指出下列语句中有实际意义的语句是___________。

A.a||b; B.a!=b; C.a+=b; D.getchar(a);

9.执行下列程序时的输出结果是________。

main()

{ int x,y;

x=13;

y=5;

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

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

10.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是______。

A.1 B.2 C.2.0 D.2.5

11.若运行时x输入12,则以下程序的输出结果是________。

main()

{ int x,y;

scanf(“%d”,&x);

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

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

}

A.0 B.22 C.12 D.10

12.下面程序的输出结果是_______。

main()

{ int a=-1,b=4,k;

k=(++a<0) && !(b- - <=0);

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

}

A.1 0 4 B.1 0 3 C.0 0 3 D.0 0 4

13.下面程序的输出结果是________。

#include

main()

{ int k;

k=22;

printf(“%o\n”,k);

}

A.26 B.25 C.24 D.23

14.设x,y均为int类型变量,则以下不正确的函数调用语句为_______。

A.getchar( ); B.putchar(‘\108’);

C.scanf(“%d %*2d%d”,&x,&y); D.putchar(‘\’’);

15.下面程序的输出结果为_______。

main()

{ char c1=’6’,c2=’0’;

printf(“%d %d %d\n”,c1,c2,c1-c2);

}

A.因输出格式不合法,输出出错信息 B.54,48,6

C.6,0,7 D.6,0,6

16.下面程序的输出结果是_______。

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

17.若有下面程序,执行后的输出结果是________。

main()

{ int m=0xabc,n=0xabc;

m-=n;

printf(“%x\n”,m);

}

A.0x0 B.0X0 C.0 D.0XABC

18.有下面程序,若从键盘上输入:10A10<回车>,则输出结果是_______。 main()

{ int m=0,n=0; char c=’a’;

scanf(“%d%c%d”,&m,&c,,&n);

printf(“%d,%c,%d\n”,m,c,n);

}

A.10,A,10 B.10,a,10 C.10,a,0 D.10,A,0

19.有下面程序,执行后的输出结果是______。

main()

{ int i=1,j=1,k=2;

printf(“%d,%d,%d\n”,++i,j++,++k); }

A.1,1,2 B.2,2,1 C.2,2,2 D.2,1,3

二.分析下列程序,写出输出结果。

1.#include “stdio.h”

main()

{ int x = 1,y = 1, a,b ;

printf ("%d\n",! x || y-- ) ;

printf ("%d" ,(a = 2 )&& (b= -2) ) ;

x = l ,y=-1 ;

printf("%d\n" , (x--&++y)) ;

a = 1;x = 2;y = 3;

b = 4 ;

printf("%d\n", a

}

2. #include “stdio.h”

main()

{ int x , y , z ;

x=y=z=0 ;

++x || ++y && ++z ;

printf( " x=%d\ty=%d\tz=%d\n " ,x,y,z);

++x && ++y || ++z ;

printf( " x=%d\ty=%d\tz=%d\n " ,x,y,z);

++x && ++y && ++z ;

printf( " x=%d\ty=%d\tz=%d\n " ,x,y,z);

x=y=z=1 ;

++x || ++y && ++z ;

printf( " x=%d\ty=%d\tz=%d\n " ,x,y,z);

++x && ++y || ++z ;

printf( " x=%d\ty=%d\tz=%d\n " ,x,y,z);

++x && ++y && ++z ;

printf( " x=%d\ty=%d\tz=%d\n " ,x,y,z); }

3.#include “stdio.h”

main()

{ char a;

a=’H’-‘A’+’0’;

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

}

4.#include “stdio.h”

main( )

{ int a=1,b=1;

a+=b+=1;

{ int a=10,b=10;

a+=b+=10;

printf("b=%d",b); }

a*=a*=b*10;

printf("a=%2d\n",a);

}

5.#include “stdio.h”

main( )

{ int a=1,b=1,c=1;

printf("%d,%d,%d\n",a,b,c);

a+=b+=++c;

printf("%d,%d,%d\n",a,b,c);

printf("%d,%d,%d\n",a++,--b,++c);

printf("%d,%d,%d\n",a,b,c);

}

三、编程题

1.变量a、b中各存有一个整数,交换两数后输出。

2.鸡兔同笼,已知鸡兔总头数为h,总脚数为f,求鸡兔各有多少只?

3.从键盘输入一个字符,输出这字符的ASCII码的值。

4.编写程序,根据本金 a 、存款年数 n 和年利率 p 计算到期利息。

【提示】

⑴到期利息公式 a*(1+p) n –a ;

⑵ a 的 b 次方计算公式为 exp(b*ln(a))。

5.设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆体积。用scanf输入数据,编程计算结果,保留二位小数。。

6.用getchar( )函数读入一个字符,输出读入字符的前一个字符和后一个字符。

7.从键盘上输入一个ASCII码值,输出相应的字符。

第3单元分支结构程序设计

一、单项选择题

1.下面程序运行后,如果从键盘上输入5,则输出结果是_______。

main()

{ int x;

scanf(“%d”,&x);

if(x- -<5) printf(“%d\n”,x);

else printf(“%d”,x++);

}

A.3 B.4 C.5 D.6

2.下面程序的输出结果是_______。

main()

{ int m=5;

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

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

}

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

3.下面程序的输出结果是________。

main()

{ int x=3,y=0,z=0;

if(x==y+z)

printf(“****”);

else

printf(“# # # #”);

}

A.有语法错误,不能通过编译 B.输出****

C.可以通过编译,但是不能通过连接,因而不能运行 D.输出# # # # 4.执行下列语句后,变量b的值是________。

int x=35;

char z=’A’;int b; b=((x&15)&&(z<’a’));

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

5.以下关于switch语句和break语句的描述中,正确的是_______。

A.在switch语句中必须使用break语句

B.在switch语句中,可以根据需要使用或不使用break语句

C.break语句只能用于switch语句中

D.break语句是switch语句的一部分

6.下面程序的输出结果是_______。

main()

{ int x=10,y=20,t=0;

if(x= =y)

t=x;

x=y;

y=t;

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

}

A.10 10 B.10 20 C.20 10 D.20 0

7.有下面程序,执行后的输出结果是_______。

main()

{ int a=5,b=4,c=3,d=2;

if(a>b>c)

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

else if((c-1>=d)= =1)

printf(“%d\n”,d+1);

else

printf(“%d\n”,d+2);

}

A.2 B.3 C.4 D.编译时有错,无结果。

8.若a,b,c1,c2,x,y均为整型变量,正确的switch语句是______。

A.switch(a+b); B.switch(a*a+b*b);

{ case 1:y=a+b;break; { case 3:

case 0:y=a-b;break; case 1:y=a+b;break;

} case 3:y=b-a;break; }

C.switch a D.switch(a-b);

{ case c1:y=a-b;break; { default:y=a*b;break;

case c2:x=a*b;break; case 3:case 4:x=a+b;break;

default:x=a+b; } case 10:case 11:y=a-b;break; }

9.有一函数:

?

?

?

?

?

<

-

=

>

=

1

1

x

x

x

y

,以下程序段中不能根据x值正确计算出y值的是____。

A.if(x>0) y=1; B.y=0;

else if(x= =0) y=0; if(x>0) y=1;

else y=-1; else if(x<0) y=-1;

C.y=0; D.if(x>=0)

if(x>=0) if(x>0) y=1;

if(x>0) y=1; else y=0;

else y=-1; else y=-1;

10.有下面程序,程序运行后的输出结果是________。

main()

{ int a=15,b=21,m=0;

switch(a%3)

{ case 0:m++;break;

case 1:m++;

switch(b%2)

{ default:m++;

case 0:m++;break; }

}

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

}

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

11.C语言用_______表示逻辑“真”值。

A.true B.t或y C.非零整型值 D.整型值0

12.为了避免嵌套的条件分支语句if—else 的二义性,C语言规定:C程序中的else总是与_____组成配对关系。

A.缩排位置相同的if B.在其之前未配对的if

C.在其之前未配对的最近的if D.同一行上的if

13.执行下面程序,输入为1的输出结果是__⑴__,输入为3的输出结果为__⑵__。

#include “stdio.h”

main()

{ int k;

scanf(“%d”,&k);

switch(k)

{ case 1:

printf (“%d\n”,k++);

case 2:

printf (“%d\n”,k++);

case 3:

printf (“%d\n”,k++);

case 4:

printf (“%d\n”,k++);

break;

delfault:

printf(“Full!! \n”);

}

}

⑴ A.1 B.2 C. 2 D. 1

3 2

4 3

5 4

⑵ A. 3 B.4 C.3 D. 4

4 5

14.若从键盘输入58,则下面程序输出的结果是_____________ 。

main()

{ int a;

scanf("%d",&a);

if(a>50) printf("%d ",a);

if(a>40) printf("%d ",a);

if(a>30) printf("%d ",a);

}

A.58 58 58 B.58 58 C.58 D.0

15.运行两次下面的程序,如果从键盘上分别输入6和4,则输出结果是 ________。

main( )

{ int x ;

scanf(“%d”,&x);

if (x + +>5) printf(“%d”,x);

else printf (“%d\n”, x - -);

}

A.7 和5 B.6和3 C.7和4 D.6和4

二、读程序

1.改正下列程序中错误的语句。

#include “stdio.h”

main( )

{ int a;

printf("Input an integer:");

scanf("%d",a);

if(a=1)

printf("One\n");

else if(a<>2)

printf("Many\n")

else printf("Two\n");

}

2.写出下面程序的功能。

#include “stdio.h”

main()

{ char ch;

scanf("%c",ch);

if(ch>=’A’ && ch<=’Z’)

ch=ch-32;

printf(“%c”,ch);

}

3.写出下列程序的输出结果。

#include “stdio.h”

main()

{ int x=11,y=1;

if(x%2==1)

x+=5;

else

x-=3;

y+=5;

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

}

4.写出下列程序的输出结果(执行后输入数据3)。

#include “stdio.h”

main()

{ int k;

scanf(“%d”,k);

switch(k)

{ case 1:printf(“%d\n”,k++);

case 2:printf(“%d\n”,k++);

case 3:printf(“%d\n”,k++);

case 4:printf(“%d\n”,k++);

break;

default:printf(“Full!\n”);

}

}

5.写出下列程序的输出结果。

#include “stdio.h”

main()

{ int x=6;

if(x++>7)

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

else

printf(“%d\n”,x--);

}

6.写出下列程序的输出结果。

#include “stdio.h”

main()

{ int k=2,j=3;

if (k+j<10)

{ k=5;

j=k; }

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

7.根据下面程序,写出相应的数学表达式。

#include “stdio.h”

main()

{ int x,y;

scanf(“%d”,&x);

if(x<0) y=-1;

else if(x= =0)

y=0;

else y=1;

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

三、编程题

1.给定一个整数,判断它是否能同时被3、5、7整除。

2.输入三角形三条边的长度,判断它们能否构成三角形,若能则指出是何种三角形:等边、等腰、直角、一般;若不能构成三角形,则输出相应的信息。

3.输入一个整数,判断该数的奇偶性。(输出相应的标志even-偶数 odd-奇数)

4.输入一个x值,计算分段函数的值。

?

?

?

?

?

-

<

<

+

=

12

1

12

7

10

7

1

3

2

x

x

x

x

x

y

5.从键盘输入 4 个不相等的整数存入变量 n1,n2,n3,n4,找出其中最小的一个数并输出。

6.从键盘上输入一个数,若该数可以被13整除则输出,否则显示相应信息。

7.从键盘上输入一个字符,若该字符不是英文字母,则输出该字符。

第4单元循环结构程序设计

一、单项选择题

1.在C语言中,while和do-while语句的主要区别是__________。

A.do-while语句的循环体至少执行一次;

B.while语句的循环体也至少执行一次;

C.do-while语句允许从循环体外转到循环体内;

D.do-while语句的循环体不能是复合语句;

2.若k为整型变量,则以下循环体执行的次数为__________。

for(k=2; k= =0; ) printf(“%d”, k--);

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

3.执行循环语句for(k=1; k++<4; ); 后,变量k的值是________。

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

4.执行下列程序段后的输出结果是________。

int k=1, a=0, b=1;

do { a=a+b*k;

b= -b;

k++; } while (a>=0);

printf(“%d”,a);

A.1 B.0 C.-1 D.-2

5.运算下列程序,如果从键盘上输入:ab<回车> c<回车> def<回车>则输出结果为________。

#include “stdio.h”

main()

{ char c[6];

int i=0;

for( ; i<6; c[i]=getchar( ),i++) ;

for(i=0;i<6; i ++) putchar(c[i]);

printf(“\n”);

}

A.a B.a C.ab D.abcdef

B b c

C c d

D d

E

F

6.下面程序的输出结果是__________。

main()

{ int n=0;

while(n<=2)

{ n++;

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

A.1 B.1 C.1 D.1

2 2 2

3 3 d

4

7.下列语句中错误的是_______。

A.while(x=y) 5; B.do x++ while (x= = 10);

C.while(0); D.do 2; while(a= =b);

8.循环语句for(a=0,b=0;(b!=12 || (b<4); a++) 的循环执行了__________。

A.3次 B.4次 C.5次 D.无限次

9.以下说法中正确的是_________。

A.continue和break只能用在循环体中 B.continue只能用在循环体中

C.break只能用在循环体中 D.continue不能用在循环体中

10.不能计算s=1×2×3×…×10的程序段是_________。

A.s=1*2*3*4 B.for(s=k=1;k<11;k++)

s=s*5*6*7*8*9*10 s*=k;

C.s=k=1; D.s=k=1

while(k<11) do s*=k;

s*=k++; while(k++<11);

11.下面程序中,while循环的循环次数是__________。

main()

{ int i=0;

while(i<10)

{ if(i<1) continue;

if(i==5) break;

i++; }

...... }

A.1 B.10 C.死循环 D.不能确定次数12.下面程序的输出结果是____________。

#include “stdio.h”

main()

{ int i=0,a=0;

while(i<20)

{ for(; ;)

{ if((i%10)==0) break;

else i--;

}

i+=11; a+=i;

}

printf("%d\n",a);

}

A.21 B.32 C.33 D.11

13.下面程序的输出结果是____________。

main()

{ int i,sum=0;

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

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

}

A.6 B.3 C.0 D.死循环

14.下面程序的输出结果是____________。

#include “stdio.h”

main()

{ int x=23;

do

{ printf(“%d”,x--);

} while(!x);

}

A.321 B.23 C.死循环 D.不输出任何内容15.下面程序的输出结果是____________。

#include “stdio.h”

main()

{ int n=9;

while(n>6)

{ n--;

printf(“%d”,n); }

}

A.987 B.876 C.8765 D.9876

16.下面程序的输出结果是____________。

main ()

{ int y=10;

do { y - -;}

while(- - y);

printf("%d\n",y - -);

}

A.-1 B.1 C.8 D.0

17.在执行以下程序时,如果从键盘上输入,ABCdef<回车>,则输出为_______。

#include

main()

{ char ch;

while((ch=getchar())!='\n')

{ if(ch>='A' && ch<='Z') ch=ch+32;

else if(ch>='a' && ch<='z') ch=ch-32;

printf("%c",ch);

}

printf("\n");

}

A.ABCdef B.abcDEF C.abc D.DEF

18.下列关于循环语句的描述,不正确的是_______。

A.循环语句的由循环条件和循环体两部分组成。

B.循环语句可以嵌套,即要循环体中可以用循环语句。

C.循环语句的循环体可以是一条语句,也可以是复合语句,还可以是空语句。

D.任何一种循环语句,它的循环体至少要被执行一次。

二、填空题

1.下面程序段的功能是:从键盘上输入若干字符(用回车键结束输入),统计其中数字字符的个数。

int n=0,ch;

ch=getchar();

while( ________________ )

{ if( ____________________ ) n++;

ch=getchar();

}

2.下面程序的功能是:计算1-3+5-7+…-99+101的值。

#include “stdio.h”

main()

{ int k,t=1,s=0;

for(k=1; k<=101; k+=2)

{ _____________;

s=s+t;

_____________;

}

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

}

3.下面程序的功能是:输出100以内个位数为6并且能被3整除的所有数。

)!

14()!14(...!9!7!5!3)sin(14149753++---+-+-≈=+-n x n x x x x x x x y n n main()

{ int k,j;

for(k=1; __________; k++)

{ j=k*10+6;

if( _____________ ) continue ;

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

}

}

4.计算一个班某课程的平均分,通过键盘输入数据,-1表示数据输入结束。

#include “stdio.h ”

main()

int sum=0,data,k=0;

scanf(“%d ”,&data);

while(data___________)

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

sum=sum+___________;

______________

}

printf(“%d\n ”,sum/_______);

}

5.下面程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高分成绩和最低分成绩,当输入负数时结束输入。

main( )

{ float x,amax,amin;

scanf(“%f ”,&x);

amax=x;

amin=x;

while( ______________ )

{ if (x>amax) amax=x;

if( _____________ ) amin=x;

scanf(“%f ”,&x);

}

printf(“\n amax=%f\n amin=%f\n ”,amax,amin); }

6.下面程序的功能是求x 的y 次方。

main()

{ int k,y;

float x , z=1.0;

for(k=1; k________;k++)

z=______;

printf(“8.2f ”,z);

}

三、编程题

1.输入20个整数,统计其中正数、负数和零的个数。

2.编程计算:

(要求通项的值小于10-6

即停止计算!)

3.编程输出九九乘法表。

4.输出0—127之间的所有ASCII码字符。

5.编程求出3-100之间的所有素数。

6.编程按顺序输出26个大写字母。

7.求100~500之间各位数字之和等于6的所有整数。

8.形成数列1,2,3,5,16,231,……的前10项,该数列的规律是从第三项起,每一项是前两项的平方差。

第5单元数组程序设计

一、单项选择题

1.在C语言中,数组下标的数据类型是_______。

A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任何类型的表达式2.若有说明,int a[5]; 则对数组元素的正确引用是_________。

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

3.以下程序的输出结果是

#include “stdio.h”

main()

{ char cf[3][5]={"AAAA","BBB","CC"};

printf("\"%s\"\n",ch[1]);

}

A.AAAA B.BBB C.BBBCC D.CC

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

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

5.设有数组定义:char array[]=”Computer”;则数组所占的存贮空间为__________。

A.7个字节 B.8个字节 C. 9个字节 D.10个字节

6.有如下程序,该程序的输出结果是____________。

#include “stdio.h”

main()

{ int n[5]={0,0,0},i,k=2;

for(i=0;i printf(“%d\n”,n[k]);

}

A.不确定的值 B.2 C.1 D.0

7.若有定义:int t[3][2];能正确表示t数组元素地址的表达式是___________。

A.&t[3][2] B.t[3] C.t[1] D.t[2]

8.有如下程序,该程序的输出结果是___________。

#include “stdio.h”

main()

{ int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

for(i=1;i3;i++)

for(j=0;j printf(“%d\n”,s);

}

A.18 B.19 C.20 D.21

9.下面程序的输出结果是_________。

#include “stdio.h”

main()

{ char a[2][4];

strcpy(a,”you”);

strcpy(a[1],”me”);

a[0][3]=’&’;

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

}

A.you&me B.me C.you D.me&you

10.定义两个一维字符数组:char a[5],b[5];下列正确的输入语句是__________。

A.gets(a,b); B.gets(‘a’ ),get(‘b’);

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

11.下列数组定义中不正确的是___________。

A.int b[2][3]; B.int b[][3]={0,1,2,5};

C.int b[10][10]={0}; D.int b[3][]={{1,2},{1,3,5},{1,3,5,7}}; 12.下列程序段的输出结果是_________。

char c[5]={‘m’,’e’,’\0’,’y’,’\0’};

printf(“%s”,c);

A.’a’’b’ B.ab C.ab c D.abc

13.执行下列程序后,数组中最大值元素的下标是__⑴_____,最大值是__⑵____。

#include “stdio.h”

main()

{ int a[6],k,j;

for(k=1;k<=3;k++)

{ for(j=3;j>=1;j- -)

a[k+j]=k*j+a[k+j];

}

for(k=1;k<=6;k++)

printf("%d\n",a[k]);

}

⑴ A.3 B.4 C.5 D.6

⑵ A.4 B.10 C.12 D.24

14.以下程序运行后,输出结果是___________。

main()

{ char *s="abcde";

s+=2;

printf("%ld\n",s);

}

A.cde B.字符c的ASCII码值 C.字符c的地址 D.出错15.以下不能正确进行字符串赋初值的语句是__________。

A.char str[5]="good!"; B.char str[]="good!";

C.char *str="good!"; D.char str[5]={'g','o','o','d'};

16.若有定义:int aa[ 8];则以下表达式中不能代表数组元aa[1]的地址的是______。

A.&aa[0]+1 B.&aa[1] C.&aa[0]++ D.aa+1

17.下面程序运行的结果是__________。

main()

{ char ch[7]={ "65ab21"};

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.2ba56 B.6521 C.6 D.62

18.下列说法中正确的是______________。

A.字符串是由若干个字符组成的。

B.字符串肯定是一个一维的字符数组。

C.一维字符数组都是字符串。

D.带有结束符的一维字符数组才是字符串。

二、读程序

1.写出下面程序的输出结果。

#include “stdio.h”

main()

{ char s[]="abcdef";

s[3]='\0';

printf("%s\n",s);

}

2.写出下面程序的输出结果。

#include “stdio.h”

main()

{ int k;

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

for(k=0;k<3;k++)

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

}

3.写出下面程序的输出结果。

#include “stdio.h”

main( )

{ int a[]={2,4,6,8,10};

int y=1,x,*p;

p=&a[1];

for(x=0;x<3;x++)

y + =*(p+x);

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

4.写出下面程序的输出结果。

#include “stdio.h”

main()

{ int a[3][3],*p,k;

p=&a[0][0];

for(k=0;k<9;k++)

p[k]=k+1;

printf(“%d\n”,a[1][2]);

}

5.改正下面程序中不正确的语句。

#include “stdio.h”

main()

{ int n ;

float s=1.0;

for(n=10;n>1;n- -)

s=s+1/n;

printf(“%6.1f\n”,s);

}

三、程序填空

1.有一个已排好序的字符串a,将字符串s中的每个字符按序插入到字符串a中。

相关主题
文本预览
相关文档 最新文档