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