大学C语言期末考试题库试题及答案汇总

更新时间:2023-04-30 19:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.

下列定义变量的语句中错误的是______。

A、int _int

B、double int_

C、char For

D、float US$

答案:D

知识点:常量、变量和标识符

2.

以下不合法的用户标识符是______。

A、j2_KEY

B、Double

C、4d

D、_8_

答案:C

知识点:常量、变量和标识符

3.

以下4组用户定义标识符中,全部合法的一组是

______。

A、_main enclude sin

B、If -max turbo

C、txt REAL 3COM

D、int k_2 _001 ???

答案:A

知识点:常量、变量和标识符

4.

以下定义语句中正确的是______。

A、char a='A' b='B';

B、float a=b=10.0;(正解a=10.0 b=10.0)

C、int a=10,*b=&a;

D、float *a,b=&a;???

答案:C

知识点:常量、变量和标识符

5.

以下不能定义为用户标识符的是______。

A、scanf

B、Void

C、_3com_

D、int

答案:D

知识点:常量、变量和标识符

6.

以下有4组用户标识符,其中合法的一组是______。

A、For -sub Case

B、4d DO Size

C、f2_G3 IF abc

D、WORD Void define

答案:C

知识点:常量、变量和标识符

7.

C语言中最简单的数据类型包括______。

A、整型、实型、逻辑型

B、整型、实型、字符型

C、整型、字符型、逻辑型

D、整型、实型、逻辑型、字符型

答案:B

知识点:常量、变量和标识符

8.

下列选项中,合法的C语言关键字是______。

A、VAR

B、cher

C、integer

D、default

答案:D

知识点:常量、变量和标识符

9.

以下不能定义为用户标识符的是______。

A、Main

B、_0

C、_int

D、sizeof

答案:D

知识点:常量、变量和标识符

10.

下列叙述中正确的是______。

A、C语言中既有逻辑类型也有集合类型

B、C语言中没有逻辑类型但有集合类型

C、C语言中有逻辑类型但没有集合类型

D、C语言中既没有逻辑类型也没有集合类型答案:D

知识点:常量、变量和标识符

11.

当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是______。

A、c=b=a;

B、(a=c)‖(b=c);

C、(a=c)&&(b=c);

D、a=c=b;

答案:C

知识点:赋值表达式

12.

以下选项中非法的表达式是______。

A、0<=x<100

B、i=j==0

C、(char)(65+3)

D、x+1=x+1

答案:D

知识点:赋值表达式

13.

以下程序的输出结果是______。

#include

main()

{

int a,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

}

A、6,1

B、2,1

C、6,0

D、2,0

答案:B

知识点:赋值表达式

14.

以下循环体的执行次数是______。

main()

{

int i,j;

for (i=0,j=1; i<=j+1;i+=2,j--)

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

}

A、3

B、2

C、1

D、0

答案:C

知识点:赋值表达式

15.

有以下定义语句

double a,b; int w; long c;

若各变量已正确赋值,则下列选项中正确的表达式是______。

A、a=a+b=b++

B、w%((int)a+b)

C、(c+w)%(int)a

D、w=a=b;

答案:C

知识点:赋值表达式

16.

有如下程序

main()

{

int a; char c=10;

float f=100.0; double x;

a=f/=c*=(x=6.5);

printf("%d %d %3.1f%3.1f\n",a,c,f,x);

}

程序运行后输出结果是______。

A、1 65 1 6.5

B、1 65 1.5 6.5

C、1 65 1.0 6.5

D、2 65 1.5 6.5

答案:B

知识点:赋值表达式

17.

若变量a、i已正确定义,且i已正确赋值,合法的语句是______。

A、a==1

B、++i;

C、a=a++=5;

D、a=int(i);

答案:B

知识点:赋值表达式

18.

若变量已正确定义并赋值,下面符合C语言语法的表达式是______。

A、a:=b+1

B、a=b=c+2

C、int 18.5%3

D、a=a+7=c+b

答案:B

知识点:赋值表达式

20.

设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是

______。

A、x=x*100+0.5/100.0

B、x=(x*100+0.5)/100.0

C、x=(int)(x*100+0.5)/100.0???

D、x=(x/100+0.5)*100.0

答案:C

知识点:赋值表达式

22.

在一个C程序中______。

A、main函数必须出现在所有函数之前

B、main函数可以在任何地方出现

C、main函数必须出现在所有函数之后

D、main函数必须出现在固定位置

答案:B

知识点:简单C语言程序的构成和格式

23.

以下说法中正确的是______。

A、#define和printf都是C语句

B、#define是C语句,而printf不是

C、printf是C语句,但#define不是

D、#define和printf都不是C语句

答案:D

知识点:简单C语言程序的构成和格式

24.若k是int型变量,且有下面的程序片段

k=-3

if(k<=0) printf("####")

else printf("&&&&");

上面程序片段的输出结果是______。

A、####

B、&&&&

C、####&&&&

D、有语法错误,无输出结果

答案:D

知识点:简单C语言程序的构成和格式

25.

以下4个选项中,不能看作一条语句的是______。A、{;} B、a=0,b=0,c=0;

C、if(a>0);

D、if(b==0) m=1;n=2;???

答案:D

知识点:简单C语言程序的构成和格式

26.

有以下程序

main()

{

int a=0,b=0;

a=10; /* 给a赋值*/

b=20; /* 给b赋值*/

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

}

程序运行后的输出结果是______。

A、a+b=10

B、a+b=30

C、30

D、出错

答案:B

知识点:简单C语言程序的构成和格式

27.以下选项中,不能作为合法常量的是______。

A、1.234e04

B、1.234e0.4

C、1.234e+4

D、1.234e0

答案:B

知识点:实型数据

28.

以下符合C语言语法的实型常量是______。

A、1.2E0.5

B、3.14159E

C、.5E-3

D、E15

答案:C

知识点:实型数据

30.

表达式3.6-5/2+1.2+5%2的值是______。

A、4.3

B、4.8

C、3.3

D、3.8

答案:D

知识点:算术表达式

31.

设int a=12,则执行完语句a+=a-=a*a后,a的值是______。

A、552

B、264

C、144

D、-264

答案:D

知识点:算术表达式

32.

以下变量x、y、z均为double类型且已正确赋值,不能正确表示数字式子x/(y*z)的C语言表达式是______。

A、x/y*z

B、x*(1/(y*z))

C、x/y*1/z

D、x/y/z

答案:A

知识点:算术表达式

33.

若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值是______。

A、1.4

B、1

C、2.0

D、2

答案:B

知识点:算术表达式

34.

设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式1/2((a+b)h) 计算结果不相符的是______。

A、(a+b)*h/2

B、(1/2)*(a+b)*h

C、(a+b)*h*1/2

D、h/2*(a+b)

答案:B

知识点:算术表达式

35.

假定x和y为double型,表达式x=2,y=x+3/2的值是______。

A、3.500000

B、3

C、2.000000

D、3.000000

答案:D

知识点:算术表达式

36.

若已定义x和y为double类型,则表达式

x=1,y=x+3/2的值是______。

A、1

B、2

C、2.000000

D、2.500000

答案:C

知识点:算术表达式

37.

若有以下程序段

int c1=1,c2=2,c3;

c3=1.0/c2*c1;

则执行后,c3中的值是______。

A、0

B、0.5

C、1

D、2

答案:A

知识点:算术表达式

38.

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

______。??

A、3

B、4

C、11

D、12

答案:A

知识点:算术表达式

39.

下列程序的输出结果是______。

main()

{

double d=3.2; int x,y;

x=1.2;y=(x+3.8)/5.0;

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

}

A、3

B、3.2

C、0

D、3.07

答案:C

知识点:算术表达式

40.

请读程序片段:

int i=65536;

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

上面程序片段的输出结果是______。

A、65536

B、0

C、有语法错误,无输出结果

D、-1

答案:B

知识点:整型数据

41.

若有以下定义和语句:

int u=010,v=0x10,w=10;

printf("%d,%d,%d\n",u,v,w);

则输出结果是: ______。

A、8,16,10

B、10,10,10

C、8,8,10

D、8,10,10

答案:A

知识点:整型数据

42.

在C语言中,不正确的int类型的常数是______。

A、32768

B、0

C、037

D、0xAF

答案:A

知识点:整型数据

43.

以下程序的输出结果是______。

main( )

{

int k=17;

printf("%d,%o,%x \n",k,k,k);

}

A、17,021,0x11

B、17,17,17

C、17,0x11,021

D、17,21,11

答案:D

知识点:整型数据

44.

下面程序的输出是______。

main()

{

unsigned a=32768;

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

}

A、a=32768

B、a=32767

C、a=-32768

D、a=-1

答案:C

知识点:整型数据

45.

在C语言中,合法的长整型常数是______。

A、0L

B、4962710

C、324562&

D、216D

答案:A

知识点:整型数据

46.

C语言中运算对象必须是整型的运算符是______。

A、%=

B、/

C、=

D、<=

答案:A 知识点:整型数据

47.

以下选项中不属于C语言的类型名称是______。

A、signed short int

B、unsigned long int

C、unsigned int

D、long short

答案:D

知识点:整型数据

48.

有以下程序

main()

{

int m=0256,n=256;

printf("%o %o\n",m,n);

}

程序运行后的输出结果是______。

A、0256 0400

B、0256 256

C、256 400

D、400 400

答案:C

知识点:整型数据

49.

若执下面程序时从键盘上输入5,

main()

{

int x;

scanf("%d",&x);

if(x++>5) printf("%d\n",x);

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

}

则输出是______。

A、7

B、6

C、5

D、4

答案:B

知识点:自加、自减运算符和逗号运算符

50.

有以下程序

main ()

{

char a1='M', a2='m';

printf("%c\n", (a1,a2));

}

以下叙述中正确的是______。

A、程序输出大写字母M

B、程序输出小写字母m

C、格式说明符不足,编译出错

D、程序运行时产生出错信息

答案:B

知识点:自加、自减运算符和逗号运算符

51.

以下程序的输出结果是______。

main()

{

int a;

printf("%d\n",(a=3*5,a*4,a+5));

}

A、65

B、20

C、15

D、10

答案:B

知识点:自加、自减运算符和逗号运算符

53.

设有如下程序段

int x=2002,y=2003;

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

则以下叙述中正确的是______。

A、输出语句中格式说明符的个数少于输出项的个数,不能正确输出

B、运行时产生错误信息

C、输出值为2002

D、输出值为2003

答案:D

知识点:自加、自减运算符和逗号运算符

54.

有以下程序

main()

{

int x,y,z;

x=y=1;

z=x++,y++,++y;

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

}

程序运行后的输出结果是______。

A、2,3,3

B、2,3,2

C、2,3,1

D、2,2,1

答案:C

知识点:自加、自减运算符和逗号运算符

55.

设有以下定义

int a=0;

double b=1.25;

char c='A';

#define d 2

则下面语句中错误的是______。

A、a++;

B、b++;

C、c++;

D、d++;

答案:D

知识点:自加、自减运算符和逗号运算符

56.

以下程序的输出结果是______。

main()

{

int x=10,y=10;

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

}

A、10 10

B、99

C、9 10

D、10 9

答案:D

知识点:自加、自减运算符和逗号运算符

57.

若x和y都是int型变量,x=100、y=200,且有下面的程序片段

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

上面程序片段的输出结果是______。

A、200

B、100

C、100 200

D、输则格式符不够, 输出不确定的值

答案:A

知识点:自加、自减运算符和逗号运算符

58.

设有如下定义:

int x=10,y=3,z;

则语句

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

的输出结果是______。

A、1

B、0

C、4

D、3

答案:D

知识点:自加、自减运算符和逗号运算符

59.

两次运行下面的程序,如果从键盘上分别输入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

答案:A

知识点:自加、自减运算符和逗号运算符

60.若t为double类型,表达式t=1,t+5,t++的值是

______。

A、1

B、6.0

C、2.0

D、1.0

答案:D

知识点:自加、自减运算符和逗号运算符

61.

以下程序的输出结果是______。

#include

main()

{

int i=10,j=10;

printf("%d,%d\n",++i,j--);

}

A、11,10

B、9,10

C、010,9

D、10,9

答案:A

知识点:自加、自减运算符和逗号运算符

62.

有以下程序

main()

{

int y=10;

while(y--);

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

}

程序执行后的输出结果是______。

A、y=0

B、y=-1

C、y=1

D、while构成无限循环

答案:B

知识点:自加、自减运算符和逗号运算符

63.

以下叙述中正确的是______。

A、全局变量的作用域一定比局部变量的作用域范围大

B、静态(static)类别变量的生存期贯穿于整个程序的运行期间

C、函数的形参都属于全局变量

D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值

答案:B

知识点:局部变量及其作用域和生存期

64.

下面程序的输出是______。

fun3(int x)

{

static int a=3;

a+=x;

return(a);

}

main()

{

int k=2, m=1, n;

n=fun3(k);

n=fun3(m);

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

}

A、3

B、4

C、6

D、9

答案:C

知识点:局部变量及其作用域和生存期

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

A、局部变量说明为static 存储类,其生存期将得到延长

B、全局变量说明为static 存储类,其作用域将被扩大

C、任何存储类的变量在未赋初值时,其值都是不确定的

D、形参可以使用的存储类说明符与局部变量完全相同答案:A

知识点:局部变量及其作用域和生存期

66.

有以下程序

int fun(int x[],int n)

{

static int sum=0,i;

for(i=0;i

return sum;

}

main()

{

int a[]={1,2,3,4,5},b[]={6,7,8,9,},s=0; s=fun(a,5)+fun(b,4);

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

}

程序执行后的输出结果是______。

A、45

B、50

C、60

D、55

答案:C

知识点:局部变量及其作用域和生存期

67.

以下程序执行后sum的值是______。

main()

{

int i,sum;

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

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

}

A、15

B、14

C、不确定

D、0

答案:C

知识点:局部变量及其作用域和生存期

68.

以下程序的输出结果是______。

main()

{

int k=4,m=1,p;

p=func(k,m); printf("%d,",p);

p=func(k,m); printf("%d\n",p);

}

func(int a,int b)

{

static int m=0,i=2;

i+=m+1; m=i+a+b;

return(m);

}

A、8,17

B、8,16

C、8,20

D、8,8

答案:A

知识点:局部变量及其作用域和生存期

69.

设有以下函数:

f(int a)

{

int b=0;

static int c=3;

b++;

c++;

return (a+b+c);

}

如果在下面的程序中调用该函数,则输出结果是______。

main()

{

int a=2,i;

for(i=0;i<3;i++) printf("%d\n",f(a));

D、7

7

7

C、13

B、11

}

A、7

8

9

答案:A

知识点:局部变量及其作用域和生存期70.

有以下程序

fun(int x, int y)

{

static int m=0,i=2;

i+=m+1;

m=i+x+y;

return m;

}

main()

{

int j=1,m=1,k;

k=fun(j,m); printf("%d,",k);

k=fun(j,m); printf("%d\n",k);

}

执行后的输出结果是______。

A、5,5

B、5,11

C、11,11

D、11,5 答案:B

知识点:局部变量及其作用域和生存期71.

以下程序的输出结果是______。

int a,b;

void fun()

{

a=100;

b=200;

}

main()

{

int a=5,b=7;

fun();

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

}

A、100200

B、57

C、200100

D、75

答案:B

知识点:全局变量及其作用域和生存期72.

有如下程序

int func(int a,int b)

{ return(a+b); }

main()

{

int x=2,y=5,z=8,r;

r=func(func(x,y),z);

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

}

该程序的输出结果是______。

A、12

B、13

C、14

D、15

答案:D

知识点:调用函数和被调用函数之间的数据传递

73.

有以下程序

void f(int v,int w)

{

int t;

t=v;v=w;w=t;

}

main()

{

int x=1,y=3,z=2;

if(x>y) f(x,y);

else if(y>z) f(y,z);

else f(x,z);

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

}

执行后输出结果是______。

A、1,2,3

B、3,1,2

C、1,3,2

D、2,3,1

答案:C

知识点:调用函数和被调用函数之间的数据传递

74.

有以下程序

void f(int x,int y)

{

int t;

if(x

}

main()

{

int a=4,b=3,c=5;

f(a,b); f(a,c); f(b,c);

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

}

执行后输出结果是______。

A、3,4,5

B、5,3,4

C、5,4,3

D、4,3,5

答案:D

知识点:调用函数和被调用函数之间的数据传递75.有以下程序

int fun1(double a) { return a*=a; }

int fun2(double x,double y)

{

double a=0,b=0;

a=fun1(x);

b=fun1(y);

return (int)(a+b);

}

main()

{

double w;

w=fun2(1.1,2.0);

}

程序执行后变量w中的值是______。

A、5.21

B、5

C、5.0

D、0.0

答案:C

知识点:调用函数和被调用函数之间的数据传递

80.

在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______。

A、地址传递

B、单向值传递

C、由实参传给形参

D、再由形参传回实参

答案:B 知识点:函数的调用

81.

当执行下面的程序时,如果输入ABC,则输出结果是______。

#include "stdio.h"

#include "string.h"

main()

{

char ss[10]="12345";

gets(ss);

strcat(ss,"6789");

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

}

A、ABC6789

B、ABC67

C、12345ABC6

D、ABC456789

答案:A

知识点:函数的调用

82.

有如下程序

long fib(int n)

{

if(n>2) return(fib(n-1)+fib(n-2));

else return(2);

}

main()

{ printf("%ld\n",fib(3)); }

该程序的输出结果是______。

A、2

B、4

C、6

D、8

答案:B

知识点:函数的调用

83.

设函数fun的定义形式为

void fun(char ch,float x) {……}

则以下对函数fun的调用语句中,正确的是______。

A、fun("abc",3.0);

B、t=fun('D',16.5);

C、fun ('65',2.8);

D、fun(32,32);

答案:D

知识点:函数的调用

84.

有以下程序

char fun(char x,char y)

{

if(x

return y;

}

main()

{

int a='9',b='8',c='7';

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

}

程序的执行结果是______。

A、函数调用出错

B、8

C、9

D、7

答案:D

知识点:函数的调用

85.

若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是______。

A、函数调用可以作为独立的语句存在

B、函数调用可以作为一个函数的实参

C、函数调用可以出现在表达式中

D、函数调用可以作为一个函数的形参

答案:D

知识点:函数的调用

86.

有如下函数调用语句

func(rec1,rec2+rec3,(rec4,rec5));

该函数调用语句中,含有的实参个数是______。

A、3

B、4

C、5

D、有语法错

答案:A

知识点:函数的调用

92.

以下函数值的类型是______。

fun(float x)

{

float y;

y=3*x-4;

return y;

}

A、int

B、不确定

C、void

D、float

答案:A

知识点:函数的定义和返回值

93.

在C语言中,形参的缺省存储类是______。

A、auto

B、register

C、static

D、extern

答案:A

知识点:函数的定义和返回值

94.

有以下程序

int f(int a)

{ return a%2; }

main()

{

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

for(i=0;f(s[i]);i++) d+=s[i];

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

}

程序运行后的输出结果是______。

A、9

B、11

C、19

D、21

答案:A

知识点:函数的定义和返回值

95.

在C语言中,函数的隐含存储类别是______。

A、auto

B、static

C、extern

D、无存储类别

答案:C

知识点:函数的定义和返回值

97.

若程序中定义了以下函数

double myadd(double a,double b)

{ return (a+b); }

并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是______。

A、double myadd(double a,b);

B、double myadd(double,double);

C、double myadd(double b,double a);

D、double myadd(double x,double y);

答案:A

知识点:函数的定义和返回值

98.

若有以下程序

#include

void f(int n)

main()

{

void f(int n);

f(5);

}

void f(int n);

{ printf("%d\n",n); }

则以下叙述不正确的是______。

A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

B、若在主函数前对函数f进行说明,则在主函数和其它函数中都可以正确调用函数f

C、对于以上程序,编译时系统会出提示出错信息:提示对f函数重复说明

D、函数f无返回值,所以可用void将其类型定义为无值型

答案:C

知识点:函数的说明

99.

下列叙述中正确的是______。

A、C语言编译时不检查语法

B、C语言的子程序有过程和函数两种

C、C语言的函数可以嵌套定义

D、C语言所有函数都是外部函数

答案:D

知识点:库函数

101.

以下不能正确定义二维数组的选项是______。

A、int a[2][2]={{1},{2}};

B、int a[][2]={1,2,3,4};

C、int a[2][2]={{1},2,3};

D、int a[2][]={{1,2},{3,4}};

答案:D

知识点:二维数组的定义和二维数组元素的引用102.

以下能正确定义二维数组的是______。

A、int a[][3];

B、int a[][3]={2*3};

C、int a[][3]={};

D、int a[2][3]={{1},{2},{3,4}};

答案:B

知识点:二维数组的定义和二维数组元素的引用103.

以下程序的输出结果是______。

main()

{

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

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

for(j=0;j<=i;j++) s+=a[i][j];

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

}

A、18

B、19

C、20

D、21

答案:A

知识点:二维数组的定义和二维数组元素的引用104.

以下程序的输出结果是______。

main()

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

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

printf("%d,",x[i][2-i]);

}

A、1,5,9

B、1,4,7

C、3,5,7

D、3.6.9

答案:C

知识点:二维数组的定义和二维数组元素的引用105.

有以下程序

main()

{

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

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

printf("%d",t[2-i][i]);

}

判序执行后的输出结果是______。

A、753

B、357

C、369

D、751

答案:B

知识点:二维数组的定义和二维数组元素的引用106.

以下数组定义中错误的是______。

A、int x[][3]={0};

B、int x[2][3]={{1,2},{3,4},{5,6}};

C、int x[][3]={{1,2,3},{4,5,6}};

D、int x[2][3]={1,2,3,4,5,6};

答案:B

知识点:二维数组的定义和二维数组元素的引用

107.

以下数组定义中不正确的是______。

A、int a[2][3];

B、int b[][3]={0,1,2,3};

C、int c[100][100]={0};

D、int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

答案:D

知识点:二维数组的定义和二维数组元素的引用

108.

有以下程序

main()

{

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

int i,j,k=2;

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

{ printf("%d ",m[k][i]); }

}

执行后输出结果是______。

A、4 5 6

B、2 58

C、3 6 9

D、7 8 9

答案:C

知识点:二维数组的定义和二维数组元素的引用

109.

以下能正确定义数组并正确赋初值的语句是______。

A、int N=5,b[N][N];

B、int a[1][2]={{1},{3}};

C、int c[2][]={{1,2},{3,4}};

D、int d[3][2]={{1,2},{34}};

答案:D

知识点:二维数组的定义和二维数组元素的引用

111.

以下程序的输出结果是______。

main()

{

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

printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1], a[3][0]);

}

A、0650

B、1470

C、5430

D、输出值不定

答案:A

知识点:二维数组的定义和二维数组元素的引用

112.

定义如下变量和数组:

int i;

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

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

for(i=0;i<3;i++) printf("%d ",x[i][2-i]);

A、1 5 9

B、1 47

C、3 5 7

D、3 6 9

答案:C

知识点:二维数组的定义和二维数组元素的引用

113.

有以下程序

main()

{

int x[3][2]={0},i;

for(i=0;i<3;i++) scanf("%d",x[i]);

printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0] );

}

若运行时输入:2 4 6<回车>,则输出结果为______。

A、2 0 0

B、2 0 4

C、2 4 0

D、2 4 6

答案:B

知识点:二维数组的定义和二维数组元素的引用

114.

以下程序的输出结果是______。

main() {

char

w[][10]={"ABCD","EFGH","IJLK","MNOP"},k; for(k=1;k<3;k++) printf("%s\n",w[k]);

D、EFGH

IJLK

C、EFG

JK

O

B、ABCD

EFG

IJ

M

}

A、ABCD

FGH

KL

答案:D

知识点:二维数组的定义和二维数组元素的引用130.

当调用函数时,实参是一个数组名,则向函数传送的是______。

A、数组的长度

B、数组的首地址

C、数组每一个元素的地址

D、数组每个元素中的值

答案:B

知识点:函数之间对一维数组和数组元素的引用132.

有以下程序

void sum(int a[])

{ a[0]=a[-1]+a[1]; }

main()

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

sum (&a[2]);

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

}

程序运行后输出结果是______。

A、6

B、7

C、5

D、8

答案:A

知识点:函数之间对一维数组和数组元素的引用138.

有以下程序

main()

{ char s[]="abcde";

s+=2;

printf("%d\n",s[0]);

}

执行后的结果是______。

A、输出字符a的ASCII码

B、输出字符c的ASCII码

C、输出字符c

D、程序出错

答案:D

知识点:函数之间对一维数组和数组元素的引用

139.

请读程序:

#include

f(int b[],int n)

{ int i,r;

r=1;

for(i=0;i<=n;i++) r=r*b[i];

return r;

}

main()

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

x=f(a,3);

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

}

上面程序的输出结果是______。

A、720

B、120

C、24

D、6

答案:B

知识点:一维数组的定义和一维数组元素的引用140.

若要求定义具有10个int形元素的一维数组a,则以下的定义语句中错误的是______。

A、#define N 10

int a[N];

B、#define n 5

int a[2*n];

C、int a[5+5];

D、int n=10,a[n];

答案:D

知识点:一维数组的定义和一维数组元素的引用141.合法的数组定义是______。

A、int a[]="string";

B、int a[5]={0,1,2,3,4,5};

C、char s="string";

D、char a[]={0,1,2,3,4,5};

答案:D

知识点:一维数组的定义和一维数组元素的引用144.

以下能正确定义一维数组的选项是______。

A、int a[5]={0,1,2,3,4,5};

B、char a[]={0,1,2,3,4,5};

C、char a={'A','B','C'};

D、int a[5]="0123";

答案:B

知识点:一维数组的定义和一维数组元素的引用145.

有如下程序

main()

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

for(i=0;i

n[i]=n[i]+1;

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

}

该程序的输出结果是______。

A、不确定的值

B、2

C、1

D、0

答案:D

知识点:一维数组的定义和一维数组元素的引用146.

以下程序的输出结果是______。

main()

{ int i,a[10];

for(i=9;i>=0;i--) a[i]=10-i;

printf("%d%d%d",a[2],a[5],a[8]);

}

A、258

B、741

C、852

D、369

答案:C

知识点:一维数组的定义和一维数组元素的引用147.

执行下面的程序段后,变量k中的值为______。int k=3,s[2];

s[0]=k; k=s[1]*10;

A、不定值

B、33

C、30

D、10

答案:A

知识点:一维数组的定义和一维数组元素的引用

170.

以下能正确计算定义且赋初值的语句是______。

A、int n1=n2=10;

B、char c=32;

C、fioat f=f+1.1;

D、double x=12.3E2.5

答案:B

知识点:赋值语句

171.

以下合法的赋值语句是______。

A、x=y=100

B、d--;

C、x+y;

D、c=int(a+b);

答案:B

知识点:赋值语句

172.

下列语句中符合C语言语法的赋值语句是______。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;

答案:D

知识点:赋值语句

173.

请选出合法的C语言赋值语句______。

A、a=b=58

B、i++;

C、a=58,b=58

D、k=int(a+b);

答案:B

知识点:赋值语句

174.

下面程序的输出是______。

main()

{ int x=10,y=3;

printf("%d\n",y=x/y);

}

A、0

B、1

C、3

D、不确定的值

答案:C

知识点:数据输出

175.

已知字母A的ASCII码为十进制的65,下面程序的输出是______。

main()

{

char ch1,ch2;

ch1='A'+'5'-'3';

ch2='A'+'6'-'3';

printf("%d,%c\n",ch1,ch2);

}

A、67,D

B、B,C

C、C,D

D、不确定的值

答案:A

知识点:数据输出

176.

下列程序的运行结果是______。

#include

main()

{ int a=2,c=5;

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

}

A、a=%2,b=%5

B、a=2,b=5

C、a=d,b=d

D、a=%d,b=5d

答案:B

知识点:数据输出

177.

以下程序的输出结果是______。

#include

main()

{ int a=2,c=5;

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

}

A、a=%2,b=%5

B、a=2,b=5

C、a=%%d,b=%%d

D、a=%d,b=%d

答案:D

知识点:数据输出

178.

有以下程序

main( )

{ int x=102,y=012;

printf("%2d,%2d\n",x,y);

}

执行后输出结果是______。

A、10,01

B、02,12

C、102,10

D、02,10

答案:C

知识点:数据输出

179.

有以下程序

main()

{ int a=666,b=888;

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

}

程序运行后的输出结果是______。

A、错误信息

B、666

C、888

D、666,888

答案:B

知识点:数据输出

180.

有以下程序

#include

main()

{ char c1='1',c2='2';

c1=getchar();

c2=getchar();

putchar(c1);

putchar(c2);

}

当运行时输入:a <回车> 后,以下叙述正确的是

______。

A、变量C1 被赋予字符a,c2被赋予回车符

B、程序将等待用户输入第2个字符

C、变量c1被赋予字符a, c2中仍是原有字符2

D、变量c1 被赋予字符a,c2中将无确定值

答案:A

知识点:数据输入

181.

执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是______。

main()

{ char s[100];

int c,i;

scanf("%c",&c);

scanf("%d",&i);

scanf("%s",s);

printf("%c,%d,%s \n",c,i,s);

}

A、123,456,789

B、1,456,789

C、1,23,456,789

D、1,23,456

答案:D

知识点:数据输入

182.

有定义语句:int b;char c[10];,则正确的输入语句是______。

A、scanf("%d%s",&b,&c);

B、scanf("%d%s",&b,c);

C、scanf("%d%s",b,c);

D、scanf("%d%s",b,&c);

答案:B

知识点:数据输入184.

若要求从键盘读入含有空格字符的字符串,应使用函数______。

A、getc()

B、gets()

C、getchar()

D、scanf()

答案:B

知识点:数据输入

186.

有以下程序

#include

main()

{ char c1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();

c6=getchar();

putchar(c1);

putchar(c2);

printf("%c%c\n",c5,c6);

}

程序运行后,若从键盘输入(从第1列开始) ______。123<回车>

45678<回车>

则输出结果是

A、1267

B、1256

C、1278

D、1245

答案:D

知识点:数据输入

188.

有以下程序

main()

{

int m,n,p;

scanf("m=%dn=%dp=%d",&m,&n,&p);

printf("%d%d%d\n",m,n,p);

}

若想从键盘上输入数据,使变量m 中的值为123,n 中的数值为456,p 中的值为789,则正确的输入是

______。

A、m=123n=456p=789

B、m=123 n456 p=789

C、m=123,n=456,p=789

D、123 456 789

答案:A

知识点:数据输入

189.

有以下程序段

int m=0,n=0;

char c='a';

scanf("%d%c%d",&m,&c,&n);

printf("%d,%c,%d\n",m,c,n);

若从键盘上输入:10A10<回车>,则输出结果是

______。

A、10,A,10

B、10,a,10

C、10,a,0

D、10,A,0

答案:A

知识点:数据输入

据输入

192.

有定义语句:int x,y;,若要通过

scanf("%d,%d",&x,&y);语句使变量x得到数据11,变量y得到数值12,下面四组输入形式中,错误的是______。

A、11 12<回车>

B、11,12<回车>

C、11, 12<回车>

D、11,<回车>

12<回车>

答案:A

知识点:数据输入

193.

在嵌套使用if语句时,C语言规定else总是______。

A、和之前与其具有相同缩进位置的if配对

B、和之前与其最近的if配对

C、和之前与其最近的且不带else的if配对

D、和之前的第一个if配对

答案:C

知识点:if语句和用if语句构成的选择结构

195.

假定所有变量均已正确说明,下列程序段运行后x的值是______。

a=b=c=0;x=35;

if(!a) x--;

else if(b) ;

if(c) x=3;

else x=4;

A、34

B、4

C、35

D、3

答案:B

知识点:if语句和用if语句构成的选择结构

196.

有以下程序

main()

{

int i;

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

{

if(i++%5==0)

if(++i%8==0)

printf("%d ",i);

}

printf("\n");

}

执行后的输出结果是______。

A、5

B、24

C、32

D、40

答案:C

知识点:if语句和用if语句构成的选择结构

198.

有如下程序

main()

{

int a=2,b=-1,c=2;

if(a

if(b<0) c=0;

else c++;

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

}

该程序的输出结果是______。

A、0

B、1

C、2

D、3

答案:C

知识点:if语句和用if语句构成的选择结构

199.

请读程序:

#include

#include

main()

{ float x,y,z;

scanf("%f%f",&x,&y);

z=x/y;

while(z)

{ if(fabs(z)>1.0)

{ x=y; y=z; z=x/y; }

else break;

}

printf("%f\n",y);

}

若运行时从键盘上输入3.6 2.4(表示回车),则输出的结果是______。

A、1.500000

B、1.600000

C、2.000000

D、2.400000

答案:B 知识点:if语句和用if语句构成的选择结构

204.

有以下程序

main()

{ int k=5,n=0;

while(k>0)

{ switch(k)

{ default : break;

case 1: n+=k;

case 2:

case 3: n+=k;

}

k- -;

}

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

}

程序运行后的输出结果是______。

A、0

B、4

C、6

D、7

答案:D

知识点:switch语句以及用switch语句和break语句构成的选择结构

207.

有以下程序

main()

{

int i;

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

switch(i)

{

case 1: printf("%d",i);

case 2: printf("%d",i);

default: printf("%d",i);

}

}

执行后输出结果是______。

A、011122

B、012

C、012020

D、120

答案:A

知识点:switch语句以及用switch语句和break语句构成的选择结构

209.

有如下程序

main()

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

switch(x)

{ case 0: b++;

case 1: a++;

case 2: a++;b++;

}

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

}

该程序的输出的结果是______。

A、a=2,b=1

B、a=1,b=1

C、a=1,b=0

D、a=2,b=2

答案:A

知识点:switch语句以及用switch语句和break语句构成的选择结构

210.

以下程序的输出结果是______。

main()

{ int a=0,i;

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

{

switch(i)

{

case 0:

case 3: a+=2;

case 1:

case 2: a+=3;

default: a+=5;

}

}

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

}

A、31

B、13

C、10

D、20

答案:A

知识点:switch语句以及用switch语句和break语句构成的选择结构

212.

下列叙述中正确的是______。

A、break语句只能用于switch语句

B、在switch语句中必须使用default

C、break语句必须与switch语句中的case配对使用

D、在switch语句中,不一定使用break语句

答案:D

知识点:switch语句以及用switch语句和break语句构成的选择结构

213.

设a为整型变量,不能正确表达数学关系:10

A、10

B、a= =11||a==12||a= =13||a==14

C、a>10 && a<15

D、!(a<=10)&&!(a>=15)

答案:A

知识点:关系运算和逻辑运算

214.

以下程序的输出结果是______。

main()

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

d=!a&&!b||!c;

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

}

A、1

B、0

C、非0的数

D、-1

答案:A

知识点:关系运算和逻辑运算

215.

语句:printf("%d",(a=2)&&(b=-2));的输出结果是

______。

A、无输出

B、结果不确定

C、-1

D、1

答案:D

知识点:关系运算和逻辑运算

216.

设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式

(m=a>b)&&(n=c>d)运算后,n的值为______。A、0 B、1 C、2 D、3

答案:C

知识点:关系运算和逻辑运算

217.

若变量c为char类型,能正确判断出c为小写字母的表达式是______。

A、'a'<=c<='z'

B、(c>='a')||(c<='z')

C、('a'<=c)and('z'>=c)

D、(c>='a')&&(c<='z')

答案:D

知识点:关系运算和逻辑运算

218.

能正确表示逻辑关系:“a≥10 或a≤0”的C语言表达式是______。

A、a>=10 or a<=0

B、a>=0 | a<=10

C、a>=10 && a<=0

D、a>=10 || a<=10

答案:D

知识点:关系运算和逻辑运算

219.

有如下程序

main() {

int a=1,b=2,m=0,n=0,k;

k=(n=b>a)||(m=a

printf("%d,%d\n",k,m);

}

程序运行后的输出结果是______。

A、0,0

B、0,1

C、1,0

D、1,1

答案:C

知识点:关系运算和逻辑运算

220.

设int x=1,y=1;表达式(!x||y--)的值是______。A、0 B、1 C、2 D、-1

答案:B

知识点:关系运算和逻辑运算

221.

设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是______。

A、(!a==1)&&(!b==0)

B、(a

C、a&&b

D、a||(b+b)&&(c-a)

答案:A

知识点:关系运算和逻辑运算

222.

若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为______。

A、a<>0

B、!a

C、a=0

D、a

答案:D

知识点:关系运算和逻辑运算

223.

有如下程序段

int a=14,b=15,x;

char c='A';

x=(a&&b)&&(c<'B');

执行该程序段后,x的值为______。

A、true

B、false

C、0

D、1

答案:D

知识点:关系运算和逻辑运算

224.

能正确表示a和b同时为正或同时为负的逻辑表达式是______。

A、(a>=0‖b>=0)&&(a<0‖b<0)

B、(a>=0&&b>=0)&&(a<0&&b<0)

C、(a+b>0)&&(a+b<=0)

D、a*b>0

答案:D

知识点:关系运算和逻辑运算

225.

若x是int型变量,且有下面的程序片段:

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

printf((x%2)?("**%d"):("##%d\n"),x);

上面程序片段的输出结果是______。

答案:D

知识点:条件表达式构成的选择结构

227.

以下程序的输出结果是______。

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、不确定

答案:C

知识点:条件表达式构成的选择结构

228.

若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a

答案:A

知识点:条件表达式构成的选择结构

229.若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是______。

A、(x-y>0)

B、(x-y<0)

C、(x-y<0||x-y>0)

D、(x-y= =0)

答案:C

知识点:条件表达式构成的选择结构

230.

有以下程序段

int k=0,a=1,b=2,c=3;

k=a

k=k>c?k:b;

执行该程序段后,k的值是______。

A、3

B、2

C、1

D、0

答案:B

知识点:条件表达式构成的选择结构

231.以下程序段中与语句k=a>b?(b>c?1:0):0; 功能等价的是_____。

A、if((a>b)&&(b>c)) k=1;

else k=0;

B、if((a>b)||(b>c)) k=1;

else k=0;

C、if(a<=b) k=0;

else if(b<=c) k=1;

D、if(a>b) k=1;

else if(b>c) k=1;

else k=0;

答案:A

知识点:条件表达式构成的选择结构

232.假定w、x、y、z、m均为int型变量,有如下程序段:

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

m=(w

m=(m

m=(m

则该程序执行后,m的值是______。

A、4

B、3

C、2

D、1

答案:D

知识点:条件表达式构成的选择结构

233.有以下程序

main()

{

int k=4,n=0;

for(;n

{

n++;

if(n%3!=0) continue;

k--;

}

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

}

程序运行后的输出结果是______。

A、1,1

B、2,2

C、3,3

D、4,4

答案:C

知识点:break和continue语句在循环中的作用234.

有如下程序

main()

{

int x=23;

do

{

printf("%d",x--);

}

while(!x);

}

该程序的执行结果是______。

A、321

B、23

C、不输出任何内容

D、陷入死循环答案:B

知识点:do-while语句和do-while语句构成的循环结构

235.

有以下程序

main()

{ int s=0,a=1,n;

scanf("%d",&n);

do

{

s+=1;

a=a-2;

}

while(a!=n);

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

}

若要使程序的输出值为2,则应该从健盘给n输入的值是______。

A、-1

B、-3

C、-5

D、0

答案:B

知识点:do-while语句和do-while语句构成的循环结构

236.

有以下程序段

int n,t=1,s=0;

scanf("%d",&n);

do

{

s=s+t;

t=t-2;

}

while(t!=n);

为使此程序不陷入死循环,从键盘输入的数据应该是

______。

A、任意正奇数

B、任意负偶数

C、任意正偶数

D、任意负奇数

答案:D

知识点:do-while语句和do-while语句构成的循环结构

239.

有以下程序

main()

{ int i=0,s=0;

do

{

if(i%2) { i++; continue; }

i++;

s+=i;

}

while(i<7);

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

}

执行后输出结果是______。

A、16

B、12

C、28

D、21

答案:A

知识点:do-while语句和do-while语句构成的循环结构

240.

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

main()

{

int x=3;

do

{

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

}

while(!(--x));

}

A、输出的是1

B、输出的是1和-2

C、输出的是3和0

D、是死循环

答案:B

知识点:do-while语句和do-while语句构成的循环结构

241.

以下叙述正确的是______。

A、do-while语句构成的循环不能用其它语句构成的循环来代替

B、do-while语句构成的循环只能用break语句退出

C、用do-while语句构成的循环,在while后的表达式为非零时结束循环

D、用do-while语句构成的循环,在while后的表达式为零时结束循环

答案:D

知识点:do-while语句和do-while语句构成的循环结构

242.

以下程序的输出结果是______。

main()

{ int x=10,y=10,i;

for(i=0;x>8;y=++i)

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

}

A、10 1 9 2

B、9 8 7 6

C、10 9 9 0

D、10 10 9 1

答案:D

知识点:for语句和用for语句构成的循环结构

244.

以下程序的输出结果是______。

main()

{ int i, k,a[10],p[3];

k=5;

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

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

for(i=0;i<3; i++) k+=p[i]*2;

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

}

A、20

B、21

C、22

D、23

答案:B

知识点:for语句和用for语句构成的循环结构

245.

设变量已正确定义,则以下能正确计算f=n!的程序段是______。

A、f=0;

for(i=1;i<=n;i++) f*i;

B、f=1;

for(i=1;i

C、f=1;

for(i=n;i>1;i++) f*i;

D、f=1;

for(i=n;i>=2;i--) f*=i;

答案:D

知识点:for语句和用for语句构成的循环结构

247.

若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c 均已赋值(c大于0)

s=a;

for(b=1;b<=c;b++) s=s+1;

则上述程序段功能等价的赋值语句是______。

A、s=a+b;

B、s=a+c;

C、s=s+c;

D、s=b+c;

答案:B

知识点:for语句和用for语句构成的循环结构

248.

有以下程序

main()

{

int i,s=0; for(i=1;i<10;i+=2) s+=i+1;

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

}

程序执行后的输出结果是______。

A、自然数1~9的累加和

B、自然数1~10的累加和

C、自然数1~9中奇数之和

D、自然数1~10中偶数之和

答案:D

知识点:for语句和用for语句构成的循环结构

249.

有如下程序

main()

{ int i,sum;

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

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

}

该程序的执行结果是______。

A、6

B、3

C、死循环

D、0

答案:C

知识点:for语句和用for语句构成的循环结构

250.

若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是______。

for(i=5;i;i--)

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

A、20

B、25

C、24

D、30

答案:A

知识点:for语句和用for语句构成的循环结构

251.

有以下程序

main()

{

int k=5;

while(--k) printf("%d",k-=3);

printf("\n");

}

执行后的输出结果是______。

A、1

B、2

C、4

D、死循环

答案:A

知识点:while语句和while语句构成的循环

252.

以下程序的输出结果是______。

main()

{ int num=0;

while(num<=2)

{

num++;

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

}

}

答案:B

知识点:while语句和while语句构成的循环

253.

以下程序中,while循环的循环次数是______。main()

{ int i=0;

while(i<10)

{

if(i<1) continue;

if(i==5) break;

i++;

}

……

}

A、1

B、10

C、6

D、死循环,不能确定次数

答案:D

知识点:while语句和while语句构成的循环

254.

t为int类型,进入下面的循环之前,t的值为0

while(t=1)

{ …… }

则以下叙述中正确的是______。

A、循环控制表达式的值为0

B、循环控制表达式的值为1

C、循环控制表达式不合法

D、以上说法都不对

答案:B

知识点:while语句和while语句构成的循环

255.

有如下程序

main()

{ int n=9;

while(n>6)

{ n--;

printf("%d",n);

}

}

该程序段的输出结果是______。

A、987

B、876

C、8765

D、9876

答案:B

知识点:while语句和while语句构成的循环

256.有以下程序

main()

{int p[7]={11,13,14,15,16,17,18}; int i=0,k=0; while(i<7&&p[i]%2)

{

k=k+p[i];

i++;

}

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

}

执行后输出结果是______。

A、58

B、56

C、45

D、24

答案:D

知识点:while语句和while语句构成的循环

257.

要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是

______。

A、while((ch=getchar())!='N' printf("%c",ch) ;

B、while(ch=getchar()!='N' printf("%c",ch) ;

C、while(ch=getchar())=='N' printf("%c",ch);

D、while((ch=getchar())=='N' printf("%c",ch); 答案:A

知识点:while语句和while语句构成的循环

258.

有以下程序段

int k=0;

while(k=1) k++;

while循环执行的次数是______。

A、无限次

B、有语法错,不能执行

C、一闪也不执行

D、执行1次

答案:A

知识点:while语句和while语句构成的循环

259.

以下程序的输出结果是______。

main()

{

int n[3][3],i,j;

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

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

n[i][j]=i+j;

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

for(j=0;j<2;j++) n[i+1][j+1]+=n[i][j]; printf("%d \n",n[i][j]);

}

A、14

B、0

C、6

D、值不确定

答案:C

知识点:循环结构的嵌套

260.

有以下程序

main()

{ int i,j,x=0;

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

{ x++;

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

{ if(j%2)

continue;

x++;

}

x++;

}

printf("x=%d\n",x);

}

程序执行后的输出结果是______。A、x=4 B、x=8 C、x=6 D、x=12 答案:B

知识点:循环结构的嵌套

261.

下列程序的输出结果是______。main()

{ int i,j,m=0,n=0;

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

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

if(j>=i) m=1;

n++;

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

}

A、4

B、2

C、1

D、0

答案:C

知识点:循环结构的嵌套

262.

有以下程序

main()

{

int i,n=0;

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

{

do

{

if(i%3)

continue;

n++;

}

while(!i);

n++;

}

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

}

程序执行后的输出结果是______。A、n=5 B、n=2 C、n=3 D、n=4 答案:D

知识点:循环结构的嵌套

263.

阅读下列程序:

main()

{ int n[3],i,j,k;

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

n[i]=0;

k=2;

for(i=0;i

for(j=0;j

n[j]=n[i]+1;

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

}

下述程序运行后输出结果是______。

A、2

B、1

C、0

D、3

答案:D

知识点:循环结构的嵌套

287.

若有定义和语句:

char s[10]:s="abcd";printf("%s\n",s);

则结果是(以下u代表空格) ______。

A、输出abcd

B、输出a

C、输出abcduuuuu

D、编译不通过

答案:D

知识点:用一个一维字符数组来存放字符串

295.

函数调用:strcat(strcpy(str1,str2),str3)的功能是

______。

A、将串str1复制到串str2中后再连接到串str3之后

B、将串str1连接到串str2之后再复制到串str3之后

C、将串str2复制到串str1中后再将串str3连接到串str1之后

D、将串str2连接到串str1之后再将串str1复制到串str3中

答案:C

知识点:用于字符串处理的函数

298.

以下正确定义字符串的语句是______。

A、char str[]={'\064'};

B、char str="\x43";

C、char str='';

D、char str[]="\0";

答案:D

知识点:字符串的输入和输出

305.

有以下程序

main()

{

char s[]="\n123\\";

printf("%d,%d\n",strlen(s),sizeof(s));

}

执行后输出结果是______。

A、赋初值的字符串有错

B、6,7

C、5,6

D、6,6

答案:C

知识点:字符串数组

308.

若有以下定义和语句

char c1='b',c2='e';

printf("%d,%c\n",c2-c1,c2-'a'+'A');

则输出结果是: ______。

A、2,M

B、3,E

C、2,E

D、输出项与对应的格式控制不一致,输出结果不确定

答案:B

知识点:字符变量

309.

已定义c为字符型变量,则下列语句中正确的是______。

A、c='97';

B、c="97";

C、c=97;

D、c="a";

答案:C

知识点:字符变量

310.

数字字符0 的ASCII值为48,若有以下程序______。main()

{

char a='1',b='2';

printf("%c,",b++);

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

}

程序运行后的输出结果是

A、3,2

B、50,2

C、2,2

D、2,50 答案:C

知识点:字符型常量

311.以下程序的输出结果是______。

main()

{ char c='z';

printf("%c",c-25);

}

A、a

B、Z

C、z-25

D、y

答案:A

知识点:字符型常量

312.

若变量a是int类型,并执行了语句:a='A'+1.6;,则正确的叙述是______。

A、a的值是字符C

B、a的值是浮点型

C、不允许字符型和浮点型相加

D、a的值是字符'A'的ASCII值加上1

答案:D

知识点:字符型常量

313.

下列程序执行后的输出结果是______。

main()

{

int x='f';

printf("%c \n",'A'+(x-'a'+1));

}

A、G

B、H

C、I

D、J

答案:A

知识点:字符型常量

314.

以下程序的输出结果是______。

main()

{ int i;

for(i='A';i<'I';i++,i++) printf("%c",i+32); printf("\n");

}

A、编译不通过,无输出

B、aceg

C、acegi

D、abcdefghi

答案:B

知识点:字符型常量

315.

有如下程序

#include

main()

{

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

}

程序运行后的输出结果是______。

A、0

B、1

C、-1

D、NULL没定义,出错

答案:A

知识点:字符型常量

316.

设有说明语句:char a='\72';则变量a______。A、包含1个字符B、包含2个字符

C、包含3个字符

D、说明不合法

答案:A

知识点:字符型常量

317.

下面程序的功能是输出以下形式的金字塔图案是:

*

***

*****

*******

main()

{ int i,j;

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

{ for(j=1;j<=4-i;j++)

printf(" ");

for(j=1;j<=____;j++) printf("*");

printf("\n");

}

}

在下划线处应填入的是______。

A、i

B、2*i-1

C、2*i+1

D、i+2

答案:B

知识点:for循环嵌套

318.

有以下程序

main()

{int num[4][4]={{1,2,3,4},{5,6,7,8},

{9,10,11,12},{13,14,15,16}},i,j;

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

{ for(j=1;j<=i;j++) printf("%4c",' ');

for(j=____;j<4;j++) printf("%4d",num[i][j]); printf("\n");

}

}

若要按以下形式输出数组右上半三角

1 2 3 4

6 7 8

11 12

16

则在程序下划线处应填入的是______。

A、i-1

B、I

C、i+1

D、4-i

答案:B

知识点:for循环嵌套

319.

有以下程序

main()

{ int a=1,b;

for(b=1;b<=10;b++)

{ if(a>=8) break;

if(a%2==1)

a+=5; continue;}

a-=3;

}

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

}

程序运行后的输出结果是______。

A、3

B、4

C、5

D、6

答案:B

知识点:程序分析

320.

以下程序的功能是:给r输入数据后计算半径为r的圆的面积s程序在编译时出错。

main()

/* Bejinning */

{ int r;

float s;

scanf("%d",&r);

s=*π*r*r;

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

}

出错的原因是______。

A、注释语句书写位置错误

B、存放圆半径的变量r不应该定义为整形

C、输出语句中格式描述符非法

D、计算圆面积的赋值语句中使用了非法变量

答案:D

知识点:程序分析

322.

要求以下程序的功能是计算:

s=1+1/2+1/3+...+1/10

main()

{ int n;

float s;

s=1.0;

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

s=s+1/n; printf("%6.4f\n",s);

}

程序运行后输出结果错误,导致错误结果的程序运行是______。

A、s=1.0;

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

C、s=s+1/n;

D、printf("%6.4f\n",s);

答案:C

知识点:程序分析

326.

有以下程序

main()

{ int a,b,d=25;

a=d/10%9;

b=a&&(-1);

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

}

程序运行后的输出结果是______。

A、6,1

B、2,1

C、6,0

D、2,0

答案:B

知识点:程序分析

328.

若执行下面的程序时从键盘上输入3和4,则输出是______。

main()

{ int a,b,s;

scanf("%d %d",&a,&b);

s=a;

if(a

s=b;

s=s*s;

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

}

A、14

B、16

C、18

D、20

答案:B

知识点:程序分析

329.

以下程序的输出结果是______。

#include

main()

{ int i;

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

{ if(i%2) printf("*");

else continue;

printf("#");

}

printf("$\n");

}

A、*#*#*#$

B、#*#*#*$

C、*#*#$

D、#*#*$

答案:C

知识点:程序分析

331.

以下程序的输出结果是______。

main()

{ int i;

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

{

if(i%2) { printf("#"); continue; }

printf("*");

}

printf("\n");

}

A、#*#*#

B、#####

C、*****

D、*#*#* 答案:A

知识点:程序分析

332.

以下程序的输出结果是______。

#include

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

答案:B

知识点:程序分析

333.

下面程序的输出结果是______。

#include

main()

{

int i=2;

printf("%d",f(i,i+1));

}

int f(int a,int b)

{

int c;

c=a;

if(a>b) c=1;

else if(a==b) c=0;

else c=-1;

return(c);

}

A、-1

B、0

C、1

D、2

答案:A

知识点:程序分析

336.

下面的程序运行结果为______。

main()

{

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

if(x=y+z) printf("* * * *");

else printf("# # # #");

}

A、有语法错误不能通过编译

B、输出* * * *。

C、可以通过编译,但是不能通过连接,因而不能运行。

D、输出# # # #。

答案:D

知识点:程序分析

337.

若执行以下程序时从键盘上输入9,则输出结果是

______。

main()

{ int n;

scanf("%d",&n);

if(n++<10) printf("%d\n",n);

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

}

A、11

B、10

C、9

D、8

答案:B

知识点:程序分析

339.

下列条件语句中,功能与其他语句不同的是______。

A、if(a) printf("%d\n",x); else printf("%d\n",y);

B、if(a==0) printf("%d\n",y); else

printf("%d\n",x); C、if(a!=0) printf("%d\n",x); else

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

D、if(a==0) printf("%d\n",x); else

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

答案:D

知识点:if语句

340.

有以下程序

#include

main()

{charp[]={'a','b','c'}; char q[10]={'a','b','c'}; printf("%d%d\n",strlen(p),strlen(q));

}

以下叙述中正确的是______。

A、在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3

B、由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3

C、由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3

D、由于p和q的数组中都没有字符串结束符,故长度不能确定

答案:B

知识点:一维数组

341.有以下程序

main()

{char p[]={'a','b','c'},q[]="abc";

printf("%d%d\n",sizeof(p),sizeof(q));

};

程序运行后和输出结果是______。

A、4 4

B、3 3

C、3 4

D、4 3

答案:C

知识点:一维数组

342.

当把以下四个表达式用作if语句的控制表达式时,有一个选项含义不同,这个选项是______。

A、K%2

B、K%2==1

C、(K%2)!=0

D、!K%2==1

答案:D

知识点:表达式

343.

以下叙述中错误的是______。

A、C语句必须以分号结束

B、复合语句在语法上被看作一条语句

C、空语句出现在任何位置都不会影响程序运行

D、赋值表达式末尾加分号就构成赋值语句

答案:C

知识点:概念

344.

若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是______。

A、++x,y=x--

B、x+1=y

C、x=x+10=x+y

D、double(x)/10

答案:A

知识点:算术表达式

345.

以下叙述中正确的是______。

A、C程序中注释部分可以出现在程序中任意合适的地方

B、花括号“{”和“}”只能作为函数体的定界符

C、构成C程序的基本单位是函数,所有函数名都可以由用户命名

D、分号是C语言之间的分隔符,不是语句的一部分

答案:A

知识点:概念

填空复习题

1.

以下程序的输出结果是______。

main()

{ int a=0;

a+=(a=8);

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

}

答案:16

知识点:赋值表达式

2.

若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是______。

c=(a-=(b-5));

c=(a % 11)+(b=3);

答案:3

知识点:赋值表达式

3.

以下程序运行后的了输出结果是______。

main()

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

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

else printf("%d\n",b);

}

答案:1

知识点:赋值表达式

4.

若有语句

int i=-19, j=i%4;

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

则输出结果是______。

答案:-3

知识点:算术表达式

7.

设y 是int型变量,请写出判断y为奇数的关系表达式______。

答案:y%2

知识点:算术表达式

12.

下面程序的输出是______。

main()

{ int x=2;

while(x--);

printf("%d\n", x);}

答案:-1

知识点:自加、自减运算符和逗号运算符

19.

以下程序的输出结果是______。

void fun()

{ static int a=0;

a+=2; printf("%d",a);

}

main()

{ int cc;

for(cc=1;cc<4;cc++) fun();

printf("\n")

}

答案:246

知识点:函数的调用

21.

若有以下程序

int f(int x,int y)

{ return(y-x)*x; }

main()

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

d=f(f(3,4),f(3,5));

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

}

执行后输出结果是______。

答案:9

知识点:函数的调用

27.

以下程序的输出结果是______。main ()

{int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0; for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1];

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

}

答案:30

知识点:二维数组的定义和二维数组元素的引用

32.

以下程序段的输出结果是______。

int i=9;

printf("%o\n",i);

答案:11

知识点:数据输出

34.

有以下程序

#include

main()

{ char ch1,ch2; int n1,n2;

ch1=getchar(); ch2=getchar();

n1=ch1-'0'; n2=n1*10+(ch2-'0');

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

}

程序运行时输入:12<回车>,执行后输出结果是

______。

答案:12

知识点:数据输入

36.

以下程序运行后的输出结果是______。

main()

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

if (c=a+b) printf("yes\n");

else printf("no\n");

}

答案:yes

知识点:if语句和用if语句构成的选择结构

37.

若从键盘输入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);

}

答案:585858

知识点:if语句和用if语句构成的选择结构

39.

以下程序的输出结果是______。

main()

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

d=(a>b>c);

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

}

答案:0

知识点:关系运算和逻辑运算

40.

若有以下程序

main()

{ int p,a=5;

if(p=1!=0)

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

else

printf("%d\n",p+2);

}

执行后输出结果是______。

答案:1

知识点:关系运算和逻辑运算

41.

表示条件:10

______。

答案:(x>10&&x<100||x<0)

知识点:关系运算和逻辑运算

42.

若已知a=10,b=20,则表达式!a

知识点:关系运算和逻辑运算

43.

表示“整数x的绝对值大于5”时值为“真”的C语言表达式是______。

答案:x>5||x<-5

知识点:关系运算和逻辑运算

45.

以下程序运行后的输出结果是______。

main()

{int p=30;

printf("%d\n",(p/3>0 ? p/10:p%3));

}

答案:3

知识点:条件表达式构成的选择结构

46.

以下程序运行后的输出结果是______。

main()

{

int x,a=1,b=2,c=3,d=4;

x=(ax)?x:d; printf("%d\n",x);

}

答案:1

知识点:条件表达式构成的选择结构

49.

有以下程序

main()

{ int t=1,i=5;

for(;i>=0;i--) t*=i;

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

}

执行后输出结果是______。

答案:0

知识点:for语句和用for语句构成的循环结构

50.

以下程序的输出结果是______。

main()

{ int s,i;

for(s=0,i=1;i<3; i++,s+=i);

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

}

答案:5

知识点:for语句和用for语句构成的循环结构

53.

以下程序运行后的输出结果是______。

main()

{int p[7]={11,13,14,15,16,17,18};

int i=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

}

答案:24

知识点:while语句和while语句构成的循环

55.

执行以下程序后,输出'#'号的个数是______。

#include

main()

{int i,j;

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

for (j=2;j<=i;j++) putchar('#');

}

答案:6 知识点:循环结构的嵌套

60.

以下程序的输出结果是______。

main()

{ char s[]="abcdef";

s[3]='\0';

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

}

答案:abc

知识点:用一个一维字符数组来存放字符串

64.

下列程序段的输出结果是______。

main()

{ char b[]="Hello,you"

b[5]=0;

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

}

答案:Hello

知识点:字符串数组

68.

以下程序运行后的输出结果是______。

main()

{char m;

m='B'+32;

printf("%c\n",m);

}

答案:b

知识点:字符型常量

69.

已知字母A的ASCII码为65.以下程序运行后的输出结果是______。

main()

{char a,b;

a=’A’+’5’-‘3’; b=a+’6’-‘2’;

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

}

答案:67G

知识点:字符型常量

71.

若有以下程序

main()

{ char a;

a='H'-'A'+'0';

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

}

执行后输出结果是______。

答案:7

知识点:字符型常量

72.

以下程序的功能是计算:1+12+123+1234+12345。请填空。

Main()

{int t= 0,s=0,I;

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

{t=I+______;s=s+t;}

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

}

答案:t*10~10*t

知识点:程序分析

74.

以下函数的功能是:求x的y次方,请填空。

double fun(double x,int y)

{ int i;

double z;

for(i=1,z=x;i

return z;

}

答案:x

知识点:程序分析

一选择题(7分,每小题0.5分)

1.C语言源程序的基本单位是()。

A 过程

B 函数

C 子程序

D 标识符

2.下列程序的输出结果是()。

main( )

{ int a=7,b=5;

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

}

A 5

B 1

C 0 D不确定值

3.假设变量a,b均为整型,表达式

(a=5,b=2,a>b?a++:b++,a+b)的值是()。

A 7

B 8

C 9

D 2

4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。

a=125.534; a=(int)125.521%4; a=5<<2;

A 125,31,1

B 125,1,20

C 125,31,20 D

125.534,2,20

5.设有如下程序段,下面描述中正确的是()。

int k=10; while(k=0) k=k-1;

A 循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次

6.以下程序的输出结果为()。

int i;

void prt( )

{ for(i=5;i<8;i++) printf("%c",'*');

printf("\t");

}

main( )

{ for(i=5;i<=8;i++) prt( );

}

A ***

B *** *** *** ***

C *** ***

D * * *

7.在C语言程序中,以下说法正确的是()。

A函数的定义可以嵌套,但函数的调用不可以嵌套

B函数的定义不可以嵌套,但函数的调用可以嵌套

C函数的定义和函数的调用都不可以嵌套

D函数的定义和函数的调用都可以嵌套

8.以下函数调用语句中含有()个实参。

func((e1,e2),(e3,e4,e5));

A 2

B 3

C 5

D 语法错误

9.以下程序的输出结果为()。

#define ADD(x) x*x

main( )

{ int a=4,b=6,c=7,d=ADD(a+b)*c;

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

}

A d=70

B d=80

C d=140

D d=700

10.已知职工记录描述如下,在Turbo C中,系统为变量w分配()字节的空间。

struct worker

{ int no;

char name[20];

char sex;

union

{ int day; int month; int year;}birth;

} w;

A 29

B 20

C 25

D 6

11.设有以下定义,值为5的枚举常量是()。enum week{sun,mon=4,tue,wed,thu,fri,sat} w;

A tue

B sat

C fri

D thu

12.下面选项中正确的赋值语句是(设char a[5],*p=a;)()。

A p="abcd";

B a="abcd";

C *p="abcd"; D

*a="abcd";

13.设有以下程序段,则值为6的表达式是()。struct st { int n; struct st *next;};

static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p; p=&a[0];

A p++->n

B ++p->n

C p->n++

D (*p).n++

14.C语言中的文件类型只有()。

A 索引文件和文本文件两种

B 文本文件一种

C 二进制文件一种

D ASCII码文件和二进制文件两种二判断对错,对的划“√”,错的划“×”(5分,每小题0.5分)

1.在Turbo C中,整型数据在内存中占2个字节。()2.int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A。()

3.break语句用在循环体中,可结束本层循环,continue 语句用在循环体中,可结束本次循环。()

4.函数的递归调用不过是一个函数直接或间接地调用它自身。()

5.函数strlen("ASDFG\n")的值是7。()

6.通过return语句,函数可以带回一个或一个以上的返回值。()

7.结构体类型只有一种。()

8.char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。()

9.若有定义:char *p(char a[10]);则p是函数名。()

10.用fopen("file","r+");打开的文件"file"可以进行修改。()

三写出下列程序的运行结果(10分,每小题2分)1.float average (float array[10])

{ int i;

float aver,sum=array[0];

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

sum=sum+array[i];

aver=sum/10;

return(aver);

}

main( )

{ float score[10]=

{89,67.5,78,91,56,82.5,65,70,79,88},aver;

int i;

aver=average (score);

printf (“average score is %5.2f\n”,aver);

}

2.main( )

{ char a[5]={‘A’,‘B’,‘C’,‘D’,‘E’},*p=a,**pa;

for(p=0;p

printf(“%2c”,*p);

printf(“\n”);

printf(“%2c\n”,**(pa=&p));

}

3.main( )

{ int a,b,s=0;

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

{ if(b>=20) break;

if(b%3==1)

{b+=3; continue; }

b-=5;

}

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

}

4.main()

{ printf(“main( ) :%d\n”,fact(5));

fact(-5);

}

fact(int value)

{ int f;

if(value<0)

{ printf(“Arg error\n");

return(-1);

}

else if(value==1||value==0) f=1;

本文来源:https://www.bwwdw.com/article/48ce.html

推荐文章
Top