C语言模拟试卷(带答案)

  • 格式:doc
  • 大小:83.00 KB
  • 文档页数:5

精品文档

. 单选题:

1、 执行下面的程序段后,变量k中的值为

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

A. 不定值

B. 33

C. 30

D. 10

答案: A

2、 设有以下定义:

#define N 3

#define Y(n) ( (N+1)*n)

则执行语句:z=2 * (N+Y(5+1));后,z的值为_______.2*(3+(4*5+1)

A. 出错

B. 42

C. 48

D. 54

答案: C

3、 若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是____

A. 1

B. 2

C. 2.0

D. 2.5

答案: c

4、 请选出以下语句的输出结果____

printf("%d\n",strlen("\t\ 065\xff\n"))

A. 5

B. 4

C. 8

D. 输出项不合法,无正常输出

答案: B

5、 为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的

else总是与____组成配对关系。

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

B. 在同一行上的if

C. 缩排位置相同的if

D. 在其之前未配对的if

答案: A

6、 若X和Y都是int型变量,X=100,Y=200,且有下面的程序片段:

printf("%d",(X,Y));

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

A. 200 B. 100

C. 100 200

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

答案: A

7、 请读程序片段(字符串内没有空格字符):

printf("%d\n", strlen("ATS\n012\1\\"));

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

A. 11

B. 9

C. 10

D. 8

答案: B

8、 设有以下程序段

int x=0,s=0;

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

printf("%d",s);

则______

A. 运行程序段后输出0

B. 运行程序段后输出1

C. 程序段中的控制表达式是非法的

D. 程序段执行无限次

答案: B

9、 阅读下列程序:

main( )

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

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

n[i]=0;

k=2;

for (i=0;i < k;i++) i=0: n[0]=1,n[1]=2

i=1: =3 =3

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

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

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

}

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

A. 2

B. 1

C. 0

D. 3

答案: D

10、 输入一个华氏温度,要求输出摄氏温度。计算公式为:

c=5/9(F-32),以下程序正确的是()

A. main() { float c,F; scanf("%f,%f",&c,&F); c=5/9*(F-32);

printf("摄氏温度是:%f\n",c); } 精品文档

. B. main() { float c,F; scanf("%f,%f",&c,&F); c=5*(F-32)/9;

printf("摄氏温度是:%f\n",c); }

C. main() { float c,F; scanf("%f,%f",&c,&F); c=5%9*(F-32);

printf("摄氏温度是:%f\n",c); }

D. main() { float c,F; scanf("%f,%f",&c,&F);

c=5.0/9.0(F-32); printf("摄氏温度是:%f\n",c); }

答案: B

11、 以下程序的输出结果是

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

12、 请读程序:

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\n",a,b);

}

上面程序输出结果是

A. a=2,b=1

B. a=1,b=1

C. a=1,b=0

D. a=2,b=0

答案: A

13、 C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是____.

A. 单纯值传递

B. 单纯地址传递

C. 值传递和地址传递都有可能

D. 由实参传给形参,然后由形参传回给实参,即是双向传递 答案: A

14、 下列不正确的转义字符是( )

A. '\\'

B. '\'

C. '\101'

D. '\0'

答案: B

15、 下列语句正确的是( )

A. if(a > b > c) temp=a

B. if((a=b) > 0) temp=a

C. int a=b=c=4

D. int a;scanf(%d,a)

答案: B

16、 以下说法中正确的是( )。

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

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

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

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

答案: C

17、 下列说法中正确的是____。

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

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

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

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

答案: D

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

A. float

B. char

C. int

D. double

答案: D

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

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

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

C. (x=6,x+1,y=6,x+y)

D. (y=6,y+1,x=y,x+1)

答案: C

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

A. if(x>y&&x!=y)t=x++;

B. if(x==y) x+=y; 精品文档

. C. if(x!=y) scanf("%d",&x) else scanf("%d",&y);

D. if(x<>

答案: C

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

for(i=2;i==0;) printf("%d",i--);

A. 无限次

B. 0次

C. 1次

D. 2次

答案: B

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

A. 出现在执行语句中

B. 出现在一个表达式中

C. 做为一个函数的实参

D. 做为一个函数的形参

答案: D

23、 以下各选项企图说明一种新的类型名,其中正确的是

A. typedef v1 int;

B. typedef v2=int;

C. typedef v1 int v3;

D. typedef v4: int;

答案: C

24、 以下程序的输出结果是

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

25、 以下程序调用findmax函数返回数组中的最大值

findmax(int a[],int n)

{ int *p,*s;

for(p=a,s=a; p-a

s p

if ( ) s=p;

return(*s);

}

main() { int x[5]={12,21,13,6,18};

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

}

在下划线处应填入的是

A. p>s

B. *p>*s

C. a[p]>a[s]

D. p-a>p-s

答案: B

26、 有如下程序

main()

{ char s[]="ABCD", *P;

for(p=s+l; p < s+4; p++) printf ("%s\n",p);

}

该程序的输出结果是

A. ABCD BCD CD D

B. A B C D

C. B C D

D. BCD CD D

答案: D

27、 下列描述中不正确的是

A. 字符型数组中可以存放字符串

B. 可以对字符型数组进行整体输入、输出

C. 可以对整型数组进行整体输入、输出

D. 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值

答案: C

28、 将三个数排序需要比较______次。

A. 2

B. 3

C. 4

D. 不确定

答案: B

填空题:

1、 下面程序功能是:输出100以内能被3整除且个位数为6的所有整数,请填

空。

#include < stdio.h >

main() { int i, j;