C语言模拟试题二

  • 格式:pdf
  • 大小:92.11 KB
  • 文档页数:9

C语⾔模拟试题⼆

C语⾔程序设计》模拟试题⼆

⼀、选择题(每题1.5分,共45分)1. 设有 int x=11; 则表达式 (x++ * 1/3) 的值是

A) 3 B) 4 C) 11 D) 12

2. 下列程序的输出结果是

A) 3 B) 3.2 C) 0 D) 3.07 main()

{ double d=3.2; intx,y;

x=1.2; y=(x+3.8)/5.0; x为整形⾃动舍去⼩数部分

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

}

3. 下列程序执⾏后的输出结果是(⼩数点后只写⼀位)

A) 6 6 6.0 6.0 B) 6 6 6.7 6.7

C) 6 6 6.0 6.7 D) 6 6 6.7 6.0

main()

{ double d; float f; long l; inti;

i=f=l=d=20/3;

printf("%d %ld %f %f \n", i,l,f,d);

}

4. 下列变量定义中合法的是

A) short _a=1-.le-1; B) double b=1+5e2.5;

C) long do=0xfdaL; D) float 2_and=1-e-3;

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

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

6. 与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是

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

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

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

else y=0;

C) y=-1 D) y=0;

if(x) if(x>=0)

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

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

else y=-1;

7. 以下循环体的执⾏次数是A) 3 B) 2 C) 1 D) 0 main()

{ inti,j;

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

}

8. 以下叙述正确的是

A) do-while语句构成的循环不能⽤其它语句构成的循环来代替。

B) do-while语句构成的循环只能⽤break语句退出。

C) ⽤do-while语句构成的循环,在while后的表达式为⾮零时结束循环。

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

9. 下列程序执⾏后的输出结果是

A) G B) H C) I D) J

main()

{ int x='f'; printf("%c \n",'A'+(x-'a'+1)); }(x-'a'+1)得到f是字母中的第⼏个

10. 执⾏下⾯的程序段后,变量k中的值为

A) 不定值 B) 33 C) 30 D) 10

int k=3, s[2];

s[0]=k; k=s[1]*10; s[1]没有赋值

11. 若已定义:

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

其中 0≤i≤9, 则对a数组元素不正确的引⽤是A) a[p-a]=a[0]B) *(&a[i])=a[i] C) p[i]=*(p+i) D) a[10]只有⼗个元素

12. 下列程序执⾏后的输出结果是

A) 6 B) 7 C) 8 D) 9

voidfunc(int *a,int b[])

{ b[0]=*a+6; }

main()

{ inta,b[5];

a=0; b[0]=3;

func(&a,b); printf("%d \n,b[0]);b表⽰&b[0]

}

13. 下列程序的运⾏结果是

A) a=%2,b=%5 B) a=2,b=5

C) a=d, b=d D) a=%d,b=%d

#include

main(){ int a=2,c=5;

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

14. 下列程序执⾏后的输出结果是

A) 3 B) 6 C) 9 D) 随机数

main()

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

p=&a[0][0];

for(i=p; i<9; i++) p[i]=i+1;

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

}

15. 设有数组定义: char array [ ]="China"; 则数组 array所占的空间为

A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节

16. 下列程序的输出结果是

A) 4 B) 6 C) 8 D) 10

int b=2;

intfunc(int *a)

{ b += *a; return(b);}

main()

{ int a=2, res=2;

res += func(&a);

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

}

17. 下列程序的输出结果是

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

main()

{ inti, j, m=0, n=0;

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

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

if(j>=i) m=1; n++;循环与N⽆关

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

}

18. 下列程序的输出结果是

A) 5 B) 6 C) 7 D) 8

structabc

{ int a, b, c; };main()

{ structabc s[2]={{1,2,3},{4,5,6}}; int t;

t=s[0],a+s[1],b;

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

}

19. 设 int b=2;表达式(b>>2)/(b>>1)的值是

A) 0 B) 2 C) 4 D) 8

20. 在C程序中,可把整型数以⼆进制形式存放到⽂件中的函数是

A) fprintf函数 B) fread函数 C) fwrite函数 D) fputc函数

21. 下列程序执⾏后的输出结果是

A) -32767 B) FFFE C) -1 D) -32768

main()

{ char x=0xFFFF; printf("%d \n",x--); }

22. 若有定义: float w; int a, b; 则合法的switch语句是

A) switch(w) 只能是整形 B) switch(a); 分号

{ case 1.0: printf("*\n"); { case 1 printf("*\n");

case 2.0: printf("**\n"); case 2 printf("**\n");

} }

C) switch(b) D) switch(a+b);

{ case 1: printf("*\n"); { case 1: printf("*\n");

default: printf("\n"); case 2: printf("**\n");

case 1+2: printf("**\n"); default: printf("\n");

} }

23. 以下程序段的执⾏结果是

A) a=12 y=12 B) a=12 y=12

a=14 y=16 a=16 y=28

a=16 y=20

a=18 y=24

C) a=12 y=12 D) a=12 y=12

a=14 y=26

a=14 y=44

int a, y;

a=10; y=0;

do

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

if(y>20) break;

}while(a==14);

24. 若有以下调⽤语句,则不正确的fun函数的⾸部是

A) void fun(int m, int x[]) B) void fun(int s, int h[41])

C) void fun(int p, int *s) D) void fun(int n, int a)

main()

{ …

int a[50],n;

fun(n, &a[9]);

}

25. 语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是\\输出\,\’输出’

A) a\bre\'hi\'y\\\bou B) a\bre\'hi\'y\bou

C) re'hi'you D) abre'hi'y\bou

(说明:'\b'是退格符)

26. 请选出正确的程序段

A) int *p; B) int *s, k;

scanf("%d",p); *s=100;

……

C) int *s, k; D) int *s, k;

char *p, c; char *p, e;

s=&k s=&k

p=&c p=&c

*p='a'; s=p;将字符型给了整型…*s=1;

27. 设已有定义: char *st="how are you"; 下列程序段中正确的是

A) char a[11], *p; strcpy(p=a+1,&st[4]);

B) char a[11]; strcpy(++a, st);

C) char a[11]; strcpy(a, st);

D) char a[], *p; strcpy(p=&a[1],st+2);

28. 下列程序执⾏后的输出结果是

A) you&me B) you C) me D) arr