大学C语言期末考试题库试题及答案(1)

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 <stdio.h>

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(“####”)

elseprintf(“&&&&”);

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

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,0×11 B、17,17,17

C、17,0×11,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<stdio.h>

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<n;i++) sum+=x[i];

return sum;

}

main()

{

inta[]={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<y) {t=x; x=y; y=t;}

}

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<y) return 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 <stdio.h>

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

{

inta[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、5430D、输出值不定

答案: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()

{

charw[][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 <stdio.h>

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<k;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 <stdio.h>

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 <stdio.h>

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 <stdio.h>

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

知识点:数据输入

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 <stdio.h>

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(“####”)

elseprintf(“&&&&”);

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

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,0×11 B、17,17,17

C、17,0×11,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<stdio.h>

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<n;i++) sum+=x[i];

return sum;

}

main()

{

inta[]={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<y) {t=x; x=y; y=t;}

}

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<y) return 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 <stdio.h>

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

{

inta[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、5430D、输出值不定

答案: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()

{

charw[][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 <stdio.h>

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<k;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 <stdio.h>

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 <stdio.h>

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 <stdio.h>

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

知识点:数据输入

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年12月20日
下一篇 2023年12月20日

相关推荐