c 语言考试程序,C语言考试

1、程序char c[5]={‘a’,’b’,’’,’c’,’’}; printf(“%s”,c);的运行结果是:

答案:(D)

A、'a''b'

B、ab

C、ab c

D、ab

2、以下程序的输出结果是:#include main(){  int a=2,c=5;  printf("a=%%d,b=%%d ",a,c);}

答案:(D)

A、a=%2,b=%5

B、a=2,b=5

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

D、a=%d,b=%d

3、有以下程序:main(){  int y=10;  while(y--) ;   printf(“y=%d ”,y);}程序执行后的输出结果是:

答案:(B)

A、y=0

B、y=-1

C、y=1

D、while构成无限循环

4、下列程序的输出结果是:main( ) {  int a=7,b=5;   printf("%d ",b=b/a);}

答案:(C)

A、5

B、1

C、0

D、不确定值

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

答案:(D)

A、float

B、char

C、int

D、double

6、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是:

答案:(B)

A、INPUT x、y、z;

B、scanf("%d%d%d",&x,&y,&z);

C、scanf("%d%d%d",x,y,z);

D、read("%d%d%d",&x,&y,&z);

7、设变量x和y均已经正确定义并赋值。以下if语句中,在编译时将产生错误信息的是:

答案:(C)

A、if(x++);

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

C、if(x>0) x-- else y++;

D、if(y<0){;} else x++;

8、以下程序的输出结果是:main(){  int a,b,d=241;  a=d/100%9;  b=(-1)&&(-1);  printf("%d,%d ",a,b);}

答案:(B)

A、6,1

B、2,1

C、6,0

D、2,0

9、判断字符串a是否大于b,应当使用:

答案:(D)

A、if (a>b)

B、if (strcmp(a,b))

C、if (strcmp(b,a)>0)

D、if (strcmp(a,b)>0)

10、下列说法中正确的是:

答案:(D)

A、一个数组能够存储许多不同类型的值

B、数组的下标可以是float数据类型

C、如果初始化值列表中的个数少于数组的元素的个数,C编译器会自动补齐

D、初始化值列表中的值的个数多于数组元素的个数是错误的

11、表示关系12<=x<=y的C语言表达式为:

答案:(B)

A、(12<=x)&(x<=y)

B、(12<=x)&&(x<=y)

C、(12<=x)|(x<=y)

D、(12<=x)||(x<=y)

12、按照c语言规定的用户标识符命名规则,不能出现在标识符中的是:

答案:(B)

A、大写字母

B、连接符

C、数字字符

D、下划线

13、以下程序的输出结果为:main( ){  int i=010,j=10;   printf("%d,%d ",i++,j--);}

答案:(C)

A、11,9

B、9,10

C、8,10

D、9,9

14、表达式3.6-5/2+1.2+5%2的值是:

答案:(D)

A、4.3

B、4.8

C、3.3

D、3.8

15、当调用函数时,实参是一个数组名,则向函数传送的是:

答案:(B)

A、数组的长度

B、数组的首地址

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

D、数组每个元素的值

16、以下说法中正确的是:

答案:(C)

A、C语言程序中是从第一定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main()函数中定义

C、C语言程序总是从main()函数开始执行

D、C语言程序中的main()函数必须放在程序的开始部分

17、以下定义语句中正确的是:

答案:(C)

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

B、float a=b=10.0;

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

D、float *a,b=&a;

18、为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的else总是与____组成配对关系。

答案:(A)

A、其上面距它最近的,并且没有其他else与其配对的if相配对

B、在同一行上的if

C、缩排位置相同的if

D、在其之前未配对的if

19、设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的值为:

答案:(C)

A、0

B、1

C、2

D、3

20、若i为整型变量,则以下循环执行次数是:for(i=2;i==0;) printf("%d",i--);

答案:(B)

A、无限次

B、0次

C、1次

D、2次

21、设有说明 int (*ptr)();其中标识符ptr是:

答案:(B)

A、是一个指向整形变量的指针

B、是一个指针,它指向一个函数值是int的函数

C、是一个函数名

D、定义不合法

22、设 int x=1, y=1; 表达式(!x||y--)的值是:

答案:(B)

A、0

B、1

C、2

D、-1

23、请读程序: main() {   int x=1,y=0,a=0,b=0;  switch(x) {    case 1:      switch(y)      {        case 0: a++;break;         case 1: b++;break;      }     case 2: a++;b++;break;           }  printf("a=%d,b=%d ",a,b);}

答案:(A)

A、a=2,b=1

B、a=1,b=1

C、a=1,b=0

D、a=2,b=0

24、有以下程序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]);  }}执行后输出结果是:

答案:(C)

A、4 5 6

B、2 5 8

C、3 6 9

D、7 8 9

25、若执行下面程序时:int x;scanf("%d",&x);if(x++ > 5){ printf( "%d ",x)};else{ printf("%d ",++x)};从键盘上输入5,则输出是:

答案:(A)

A、7

B、6

C、5

D、4

26、已知职工记录描述如下,在C中,系统为变量w分配( )字节的空间。struct worker{  int no;  char name[20];  char sex;} w;

答案:(A)

A、28

B、20

C、25

D、6

27、以下程序的输出结果是:char s[] = "abcde";s += 2;printf("%d ",s[0]);

答案:(D)

A、输出字符a的ASCII码

B、输出字符c的ASCII码

C、输出字符c

D、程序出错

28、设有以下定义:#define N 3 #define Y(n) ((N+1)*n)则执行语句:z=2 * (N+Y(5+1));后,z的值为:

答案:(C)

A、出错

B、42

C、48

D、54

29、以下代码的输出结果为:int x = 10,y = 10;for(int i = 0; x > 8; y = ++i){ printf(“%d %d”, x-- , y); }

答案:(D)

A、10 1 9 2

B、9 8 7 6

C、9 10 9 10

D、10 10 9 1

30、设变量定义为int x , *p = &x;则&(*p)相当于:

答案:(C)

A、*(&x)

B、*p

C、p

D、x

31、在C语言程序中,以下说法正确的是:

答案:(B)

A、函数的定义可以嵌套,但函数的调用不可以嵌套

B、函数的定义不可以嵌套,但函数的调用可以嵌套

C、函数的定义和函数的调用都不可以嵌套

D、函数的定义和函数的调用都可以嵌套

32、如有定义int * p = malloc(15);p当int型数组使用,最多可以使用多少元素:

答案:(A)

A、3

B、4

C、15

D、16

33、有以下程序main(){  int k=4,n=0;  for(;n < k;)  {    n++;    if(n%3!=0) continue;    k--;  }  printf("%d,%d ",k,n);}程序运行后的输出结果是:

答案:(C)

A、1,1

B、2,2

C、3,3

D、4,4

34、以下错误的描述是:函数调用可以:

答案:(D)

A、出现在执行语句中

B、出现在一个表达式中

C、做为一个函数的实参

D、做为一个函数的形参

35、动态分配内存,定义一个int型的包含12个元素的数组,如下定义正确的是:

答案:(A)

A、int *p = malloc(sizeof(int)*12);

B、int a[12] = malloc(12,sizeof,int);

C、int a[12] = calloc(12,sizeof(int));

D、int *p = calloc(sizeof(int)*12)

36、有以下程序main(){  int i;  for(i=1;i<40;i++)  {    if(i++%5==0)    if(++i%8==0)     printf("%d ",i);  }  printf(" ");}执行后的输出结果是:

答案:(C)

A、5

B、24

C、32

D、40

37、下面选项中正确的赋值语句是(设 char a[5],*p=a;):

答案:(A)

A、p="abcd";

B、a="abcd";

C、*p="abcd";

D、*a="abcd";

38、请读程序:#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 ",x);}上面程序的输出结果是:

答案:(B)

A、720

B、120

C、24

D、6

39、有以下程序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 ",a,b,c);}执行后输出结果是:

答案:(D)

A、3,4,5

B、5,3,4

C、5,4,3

D、4,3,5

40、设有如下定义:struct jan{int a;float b;}c2,*p;若有p=&c2;则对c2中的成员a的正确引用是:

答案:(B)

A、(*p).c2.a

B、(*p).a

C、p->c2.a

D、p.c2.a

二、判断题(共10题,每题1分)

1、通过return语句,函数可以带回一个或一个以上的返回值。

答案:(F)

正确

错误

2、在循环体内使用break语句和continue语句的作用相同。

答案:(F)

正确

错误

3、条件运算符?和:是一对运算符,不能分开单独使用。

答案:(T)

正确

错误

4、枚举类型中的元素都具有一个整型值。

答案:(T)

正确

错误

5、函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同时,则返回0。

答案:(T)

正确

错误

6、char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。

答案:(F)

正确

错误

7、continue 不是结束本次循环,而是终止整个循环的执行。

答案:(F)

正确

错误

8、在对二维数组初始化时,不可以省略行数,但能省略列数

答案:(F)

正确

错误

9、条件表达式不能取代一般if的语句。

答案:(F)

正确

错误

10、数组名能与其它变量名相同。数组名后是用方括号括起来的常量表达式,不能用圆括号。

答案:(T)

正确

错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值