总共42题共100分
一、单选题(共30题,共60分)
1. 有以下程序
main()
{unsigned char A,B,C;
A=0x3; B=A|0x8; C=Bprintf("%d%d\n",B.,C.);
}
程序运行后的输出结果是()(2分)
A.-11 12
B.-6 -13
C.12 24
D.11 22
标准答案:D
2. 有以下程序程序运行后的输出结果是()
main()
{
int m=12,n=34;
printf("%d%d",m++,++n); printf("%d%d\n",n++,++m);
} (2分)
A.12353514
B.12353513
C.12343514
D.12343513
标准答案:A
3. 以下选项中合法的实型常数是()(2分)
A.5E2.0
B.E-3
C..2E0
D.1.3E
标准答案:C
4. 有以下程序:
main()
{
int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d %d %d\n",i,j,k);
}
程序运行后的输出结果是()(2分)
A.1 2 3
B.2 3 4
C.2 2 3
D.2 3 3
标准答案:D
5. 有输入语句:scanf("A=%d,B=%d,C=%d",&A,&B,&C);,为使变量A的值为1,B为3,C为2,从键盘输入数据的正确形式应当是()(2分)
A.132
B.1,3,2
C.A=1 B=3 C=2
D.A=1,B=3,C=2
标准答案:D
6. 下面程序的运行结果是()。
main()
{ int c1=2, c2=0;
while(!c2--)
printf("%d,%d", c1--, c2);
} (2分)
A.1,-1
B.不输出任何内容
C.2,-1
D.2,0
标准答案:C
7. C语言程序的基本单位是()(2分)
A.程序行
B.语句
C.函数
D.字符
标准答案:C
8. 有以下程序
main()
{
int m=0,n=0;char c='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
}
若运行时从键盘上输入:10A10<回车>。则输出结果是()(2分)
A.10,A,10
B.10,a,10
C.10,a,0
D.10,A,0
标准答案:A
9. 已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是()(2分)
A.字符A
B.字符a
C.字符e
D.非法的常量
标准答案:A
10. 下述程序执行后的输出结果是()
#include
#include
void main()
{
int x='F';
printf("%c\n",'A'+(x-'A'+1));
} (2分)
A.G
B.H
C.I
D.J
标准答案:A
11. 有以下程序:
main()
{int a,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是()(2分)
A.6,1
B.2,1
C.6,0
D.2,0
标准答案:B
12. 有以下程序
#include “stdio.h”
main()
{ printf("%d\n",NULL); }
程序运行后的输出结果是()(2分)
A.0
B.1
C.-1
D.NULL没定义,出错
标准答案:A
13. 与数学式子3乘以x的n次方/(2x-1)对应的C语言表达式是()(2分)
A.3*x^n/(2*x-1)
B.3*x**n/(2*x-1)
C.3*pow(x,n)*(1/(2*x-1))
D.3*pow(n,x)/(2*x-1)
标准答案:C
14. 以下叙述中错误的是()(2分)
A.C语言源程序经编译后生成后缀为“.obj”的目标程序
B.C程序要经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C.用C语言编写的程序称为源程序,它以ASCII码形式存放在一个文本文件中
D.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
标准答案:D
15. 在C语言中,变量所分配的内存空间大小()(2分)
A.均为一个字节
B.由用户自己定义
C.由变量的类型决定
D.是任意的
标准答案:C
16. x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( ) (2分)
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);
标准答案:B
17. 若以下选项中的变量已正确定义,则正确的赋值语句是()(2分)
A.x1=26.8%3;
B.1+2=x2;
C.x3=0x12;
D.x4=1+2=3;
标准答案:C
18. 以下程序输出结果是( )
main()
{ int m=5;
if (m++>5) printf("%d\n",m);
else printf("%d\n",m--);
} (2分)
A.7
B.6
C.5
D.4
标准答案:B
19. 表达式3.6-5/2+1.2+5%2的值是()(2分)
A.4.3
B.4.8
C.3.3
D.3.8
标准答案:D
20. 有以下程序段:
int x=3;
do
{ printf("%d",x-=2);}
while(!(--x));
其输出结果是( ) (2分)
A.1
B.30
C.1-2
D.死循环
标准答案:C
21. 下列程序中格式错误的是()(2分)
A.main()
B.int a,b,z;
C.a=2:b=3;
D.z=a+b,y=7;
标准答案:C
22. 以下程序段的运行结果是()
int i=010,j=10;
printf("%d,%d\n",++i,j--); (2分)
A.11,10
B.9,10
C.010,9
D.10,9
标准答案:B
23. 下述程序的输出结果是()。
#include
main()
{ int Y=100;
while(Y--);
printf("y=%d",Y);
(2分)
A.Y=0
B.Y=1
C.Y=随机值
D.Y=-1
标准答案:D
24. 设j为int型变量,则下面for循环语句的执行结果是() for(j=10;j>3;j--)
{ if(j%3) j--;
--j;--j;
printf("%d ",j);
} (2分)
A.6 3
B.7 4
C.6 2
D.7 3
标准答案:B
25. 有以下程序段:
int x=23;
do
{ printf("%d",x--);}
while(!x);
其输出结果是( ) (2分)
A.321
B.23
C.不输出任何内容
D.死循环
标准答案:B
26. 表达式3+(!(7
A.3
B.4
C.错误的表达式
D.5
标准答案:B
27. 以下不能定义为用户标识符的是()(2分)
A.Main
B._0
C._int
D.sizeof
标准答案:D
28. 以下程序的输出结果是()
main()
{
int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
} (2分)
A.2
B.3
C.4
D.编译时有错,无结果
标准答案:B
29. 以下程序的输出结果是( )
main()
{ int i;
for(i=1;i { if(i%2){printf("#");continue;}
printf("*");
}
} (2分)
A.#*#*#
B.#####
C.*****
D.*#*#*
标准答案:A
30. 运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为( )
main( )
{ int v1=0,v2=0;
char ch ;
while((ch=getchar())!='#')
switch(ch)
{
case 'a':
case 'h':
default: v1++;
case '0': v2++;
}
printf("%d,%d\n",v1,v2);
(2分)
A.2,0
B.5,0
C.5,5
D.2,5
标准答案:C
二、填空题(共10题,共20分)
1. 以下程序运行后的输出结果是________。
main()
{int x=15;
while(x>10&&x<50)
{x++;
if(x/3){x++;break;}
else continue;
}
printf("%d\n",x);
(2分)
标准答案:1. 52;
2. 调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的____________。(2分)标准答案:1. 头文件;
3. 设x为int型变量。与逻辑表达式!x等价的c语言关系表达式是________________ (2分)
标准答案:1. x==0;
4.
以下程序的输出结果为________________
#include "stdio.h"
void main()
{
int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{
n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
(2分)
标准答案:1. 8921;
5.
有以下程序
#include
void f(int a[],int i,int j)
{ int t;
if(i { t=a[i]; a[i]=a[j];a[j]=t; f(a,i+1,j-1); } } main( ) { int i,aa[5]={1,2,3,4,5}; f(aa,0,4); for(i=0;i<5;i++) printf(“%d,”,aa[i]); printf(“\n”); } 执行后输出结果是________________________________________ (2分) 标准答案:1. 5,4,3,2,1,; 6. 循环的嵌套是指________________________________________________________________________ (2分)标准答案:1. 一个循环体内包括另一个完整的循环结构; 7. 以下程序的输出结果是____ #include "stdio.h" void main() { char a; a='H'-'A'+'0'; printf("%c",a); } (2分) 标准答案:1. 7; 8. 以下程序的执行结果是____________________________________________________________。 #include main( ) { int x=5,y=2; printf("1:%d,",!(y==x/2)); printf("2:%d,",y!=x%3); printf("3:%d,",x>0&&y<0); printf("4:%d\n",x!=y||x>=y); (2分) 标准答案:1. 1:0,2:0,3:0,4:1; 9. 设有变量说明语句 int x=1,y=2; 则执行下述printf语句的输出结果是________________________________。 printf("%f\n",1.0+x/y); (2分) 标准答案:1. 1.000000; 10. 下列程序执行后的输出结果是____。 #define MA(x) x*(x-1) main() { int a=1,b=2; printf("%d\n",MA(1+a+b)); } (2分) 标准答案:1. 8; 三、程序设计题(共2题,共20分) 1. 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的, 问海滩上原来最少有多少个桃子?(10分) 标准答案:main() {int i,m,j,k,count; for(i=4;i{ count=0; m=i; for(k=0;k{ j=i/4*5+1; i=j; if(j%4==0) count++; else break; } i=m; if(count==4) {printf("%d\n",count); break;} } } 2. 从键盘任意输入一个字符,编程判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。(10分) 标准答案:#include main() { char ch; printf("Press a key and then press Enter:"); ch = getchar(); if (ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z') { printf("It is an English character!\n"); } else if (ch <= '9' && ch >= '0') { printf("It is a digit character!\n"); } else if (ch == ' ') { printf("It is a space character!\n"); } else { printf("It is other character!\n"); } }