江 西 理 工 大 学 考 试 试 卷
试卷编号:
2011_____—2012_____ 学年第___2_____学期 课程名称:__单片机C51语言______________ 考试时间单片机printf函数:________ 年____月____日(100分钟) | 考试性质:(正考、补考或其它) | |||||||
考试方式:[闭卷] | ||||||||
试卷类别(A、B):[ A ] 共 五 大题 | ||||||||
温 馨 提 示 请考生自觉遵守考试纪律,争做文明诚信的大学生。如有违犯考试纪律,将严格按照《江西理工大学学生违纪处分暂行规定》处理。 | ||||||||
班级 学号 姓名 | ||||||||
题号 | 一 | 二 | 三 | 四 | 五 | 总 分 | ||
得分 | ||||||||
一、填空题(每空2分,共30分)
1、在C语言的逻辑运算中,以_____0______代表逻辑值“假”。
2、C51编译器支持两种类型的指针,包括一般指针和 指向存储器 的指针。
3、若a为int型变量,则下面表达式的值是____17______。
(a=3*5,a*4),a+2
4、C程序由函数构成,C程序总是从______主函数_____开始执行。
5、若用数组名作为函数调用的实参,则传递给形参的是_ 数组第一个元素的值____。
6、若有说明:int a[][4]={1,2,3,4,5,6,7,8,9,10};则a数组第一维的大小是____3_______。
7、若有int i=10,j=0;则执行完语句if(j=0)i--;else i++;后i的值为____11_____。
8、若有以下语句,则编译后分配给数组ch的内存占用的字节数为_____8_____。
char ch[]="Ganzhou";
9、C语言程序的三种基本结构是顺序结构 、______选择结构_____、__循环结构___。
10、当a=8,b=4,c=2时,表达式y=a>b>c的值为____0______。
11、设a和b均为int型变量,且a=1,b=2,则表达式2.5+a/b的值为____2.5____。
12、若x为 int型变量,则执行以下语句后x的值是____-264____ 。
x=12; x+=x-=x*x;
13、请写出以下程序的输出结果____1_______。
main()
{
int x=50;
if(x>50)
printf(“%d\n”,x>50);
else
printf(“%d\n”,x<=50);
}
14、请写出以下程序的输出结果_____0________。
main()
{
int t=1,i=4;
for(;i>=0;i--)
t*=i;
printf(“%d\n”,t);
}
二、 选择题(每小题2分,共30分)
1、判断char型变量ch是否为大写字母的正确的表达式是 C 。
A、‘A’<=ch<=‘Z’ B、(ch>=‘A’)||(ch <=‘Z’)
C、(ch>=‘A’)&&(ch <=‘Z’) D、(ch>=‘A’)AND(ch <=‘Z’)
2. 在结构化程序设计中,模块划分的原则是______D_____。
A、各模块应该包含尽量多的功能 B、各模块的规模应尽量大
C、各模块之间的联系应该尽量紧密 D、模块内具有高内聚度、模块间具有低耦合度
3. 以下合法的赋值语句是_____B______。
A、x=y=200 B、x--;
C、a+b; D、z=int(x+y);
4、C51语言中,下列运算符属于三目运算符的是___C____。
A、++ B、+= C、 ? : D、||
5.在C语言程序中,以下说法正确的是_____B______。
A、函数的定义可以嵌套,但函数的调用不可以嵌套。
B、函数的定义不可以嵌套,但函数的调用可以嵌套。
C、函数的定义和函数的调用都不可以嵌套。
D、函数的定义和函数的调用都可以嵌套。
6. 下列数据类型中,____C_______属于C51扩展的数据类型。
A、float B、 void C、sfr16 D、long
7、指出下面正确的输入语句是____B_______。
A、scanf(“x=y=%d”,&x,&y); B、scanf(“a=%d,b=%f”,&m,&f);
C、scanf(“%3c”,ch); D、scanf(“%6.2f”,&x);
8、如果整型变量a、b、c、d的初始值分别是1、2、3和4,整型变量m和n的初始值均为1,则执行表达式(m=a>b)&&(n=c>d)后,m和n的值分别为_____A______。
A、0 0 B、0 1
C、1 0 D、1 1
9、已知ch是字符型变量,下面不正确的赋值语句是______A_____。
A、ch=’x+y’; B、ch=’\010’;
C、ch=’32’+’65’; D、ch=32+65;
10、写出以下程序的输出结果为______A_____。
#define S(r) r*r
void main( )
{
int a=4,b=6;
int area;
area=S(a+b);
printf("area=%d\n",area);
}
A、100 B、28 C、24 D、34
11、MCS-51单片机的复位信号是____A_____有效。
A、高电平 B、低电平 C、上升沿 D、下降沿
12、函数调用:strcat(strcpy(str1,str2),str3)的功能是_____C______。
A、将串str1复制到串str2中后再连接到串str3之后。
B、将串str1连接到串str2之后再复制到串str3之后。
C、将串str2复制到串str1中后再将串str3连接到串str1之后。
D、将串str2连接到串str1之后再将串str1复制到串str3中。
13、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是___B________。
A、地址传递 B、单向值传递
C、双向值传递,即由实参传给形参,再由形参传回给实参
D、由用户指定传递方式
14、以下不能定义为用户标识符的是_______D____。
A、k3f_ B、Void
C、_3com D、char
15、以下能正确定义一维数组的选项是_____C______。
A、int ch[ ]; B、int ch[0…10];
C、#define SIZE 10 D、int SIZE=10;
int ch[SIZE]; int ch[SIZE];
三 写出下列程序的运行结果(每小题3分,共15分,)
1、有以下程序:
#include <stdio.h>
void main()
{
int i;
for(i=0;i<3;i++)
switch(i)
{
case 0: printf(“%d”,i);
case 2: printf(“%d”,i);
default: printf(“%d”,i);
}
}
程序运行后的输出结果是 000122 。
2、写出以下程序运行的结果: 78 。
#include <stdio.h>
int f(int a)
{ auto int b=0;
static int c=3;
b=b+1;
c=c+1;
return(a+b+c);
}
void main()
{ int a=2,i;
for(i=0;i<2;i++)
printf("%d,",f(a));
}
3、写出以下程序运行的结果 。
void main( )
{
int j,f[5] ={1,1};
for (j=2;j<4;j++)
f[j]=f[j-1]+f[j-2];
for(j=0;j<4;j++)
printf ("%d,",f[j]);
printf (“\n”);
}
4、写出以下程序运行的结果 -1 。
void main( )
{
int k=2;
while(k--);
printf("%d\n",k);
}
5、写出以下程序运行的结果 357 。
void main( )
{
int j,a[3][3]={1,2,3,4,5,6,7,8,9};
for(j=0;j<3;j++);
printf("%d,",a[j][2-j]);
}
四、阅读下列程序,在 处填入适当内容,使程序完整(共12分)
1、用do~while语句求1+2+3+4+5+6+…+100的和。(每个空2分,共4分)
#include <stdio.h>
void main( )
{ int i,sum=0;
i=0 ;
do
{
② sum=sum+i ;
i++;
}while(i<=100);
printf(“%d\n”,sum);
}
2、用排序法对从键盘输入的任意10个实数按照由大到小的顺序进行排序,并输出它们的值。(每个空2分,共6分)
#include <stdio.h>
void main( )
{
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论