
1。时钟周期:计算机在时钟信号的作用下,以节拍方式工作。因此必须有一个时钟发生电路,输入微处理器的时钟信号的周期称为时钟周期。
机器周期:机器完成一个动作所需的时间称为机器周期,一般由一个或一个以上的时钟周期组成。在我们讲述的MCS-51系列单片机中,一个机器周期由12个时钟周期组成。
指令周期:执行一条指令(如“MOV A,#34H”,该指令的含义是将立即数34H传送到微处理器内的累加器A中)所需时间称为指令周期,它由一个到数个机器周期组成。指令周期的长短取决于指令的类型,即指令将要进行的 *** 作步聚及复杂程度。
2。先进后出
3。伪指令:汇编语言程序的语句除指令外还包括伪指令和宏指令,伪指令又称为伪 *** 作,它不象机器指令那样是在程序运行期间由计算机来执行的,它是在汇编程序对源程序汇编期间由汇编程序处理的 *** 作,完成诸如数据定义、分配存储区、指示程序结束等功能。
//第一问
#include<iostream>
using namespace std;
class IntStack{ //整数栈类
public:
virtual void push(int)=0; //入栈
virtual int pop()=0; //出栈并返回出栈元素
virtual int topElement()const=0; //返回栈顶元素,但不出栈
virtual bool isEmpty()const=0; //判断是否栈空
};
class SeqStack: public IntStack{
int data[100]; // 存放栈元素的数组
int top; // 栈顶元素的下标
public:
//found
SeqStack():top(-1){} // 把top初始化为-1表示栈空
void push(int n){ data[++top]=n; }
//found
int pop(){ return data[top--]; }
int topElement()const{ return data[top]; }
bool isEmpty()const{ return top==-1; }
};
struct Node{
int data;
Node next;
};
class LinkStack: public IntStack{
Node top;
public:
//found
LinkStack():top(0){} // 把top初始化为NULL表示栈空
void push(int n){
Node p=new Node;
p->data=n;
//found
p->next=NULL;
if(top)
p->next=top;
top=p;
}
int pop(){
int d=top->data;
top=top->next;
return d;
}
int topElement()const{ return top->data; }
bool isEmpty()const{ return top==NULL; }
};
void pushData(IntStack &st){
stpush(8);
stpush(1);
stpush(3);
stpush(6);
stpush(4);
}
void popData(IntStack &st){
while(!stisEmpty()) cout<<stpop()<<' ';
}
int main(){
SeqStack st1; pushData(st1); popData(st1);
cout<<endl;
LinkStack st2; pushData(st2); popData(st2);
cout<<endl;
return 0;
}
//第二题
//proj2cpp
#include<iostream>
using namespace std;
char GetNum(char src, char buf)
{
while(src!='\0')
{
if(isdigit(src)) break;
src++;
}
if(src=='\0')
//found
return 0; ////
while(src!='\0' && isdigit(src))
{
//found
buf=src; ////
buf++;
src++;
}
buf='\0';
return src;
}
int main()
{
char str[100], digits[20];
cingetline(str,100);
char p=str;
int i=1;
while((p=GetNum(p, digits))!=NULL)
{
cout<<"Digit string "<<i<<" is "<<digits<<endl;
//found
i++; /////
}
return 0;
}
1.
最初的C语言是为描述和实现
UNIX
*** 作系统而设计的。
2.
C语言规定,标识符必须以字母或
下划线
开头。
3.
C语言的double型数据在内存中占用
8
个字节的存储单元。
4.
×C语言的变量有
2
种存储类型,其中
static
型变量不进行初始化时,初值自动为0
5.写出下列表达式的求值结果:
(1)
2+3<=2
0
(2)
5/3+2
3
(3)
!
(3>2)||8!=7
1
(4)
3+7%3
4
6.已知int=12;
执行语句a=2+4后,变量a的值为
24
。
7.已知int=2,b;
执行语句b=
a--;
后,变量a的值为
1
,
b的值为
2
。
8.若有int
a=2,b=1,c=0;
执行语句c=a++
-
b
-
-;
后,变量c的值为
1
,b的值为
0
一、
判断题(1×5分,正确的画√,错误的画×)
(×)1
C语言俗称“低级语言的高级形式”,这说明C语言的功能不强。
(√)2
C语言允许用实型表达式向整型变量赋值。
×(×)3
C语言的全局变量只能是extern存储类型。
×(×)4
已知int
a[4],p;则语句p=&a;是正确的。
(×)5
下面的程序段构成死循环。
a=5;
while
(1)
{a--;
if
(a<0)
break
;
}
三、单项选择题:(2×10分)
1
在IBM-PC机中,unsigned
int类型表示的数据范围是(
D
)。
A)0-127
B)0-255
C)0-32767
D)0-65535
2
下列符号中,合法的C常量是(
C
)。
A)
1e82
B)
0XFFH
C)
‘\n’
D)
089
3.语句x=3;
do{printf(“%d”,x);x--}while(x=
=0);
的执行结果是(
C
)。
A)3210
B)
321
C)3
D)无任何显示
4
已知p、q
是两个同类型的指针变量,下列表达式有语法错误的是(
B
)。
(A)p!=NULL&&p=
=q
(B)
pq
(C)p++,q--
(D)p-q+1
5.若k=
-1,
表达式k=
k>=0
(k-2)
:
(
k+2)
的值为(
D
)。
(A)-3
(B)
-2
(C)1
(D)2
×6.下面关于C函数的说法中正确的是(
B
)。
A)C函数的返回值类型必须是整型、实型或指针三者之一
B)C函数的返回值必须用return语句带回主函数
C)C函数允许递归调用,也允许在函数体中定义子函数
D)任何C函数必须使用return语句带回主程序
×7.若定义typedef
struct
user
{int
num;
char
name[21];
long
code;}
UserTp,;
则表达式
sizeof(UserTp)的值为(
D
)。
A)
0
B)
21
C)
31
D)
27
×8.已知static
int
a[
]={1,2,3,4};
int
p;
若有p=a+2;
则p++的值为(
C
)。
A)1
B)2
C)3
D)4
×9.定义C函数时,若缺省函数返回值类型,则返回值类型为(
A
)。
A)int
B)char
C)void
D)char
10
×为只读 *** 作打开正文(文本)文件,正确的打开方式是(
A
)。
A)
“r+”
B)
“a”
C)
“w”
D)
“rb”
四、多项选择题(2×5分,多选或错选不得分,少选得1分)
1.以下数据类型在内存中占用4个字节的是(
BC
)。
A)
int
B)
unsigned
long
C)
float
D)
unsigned
char
×2
定义char
s[81];
后,能正确输入一个字符串到数组s的语句是(
ABC
)。
A)gets(s);
B)scanf
(”%c”,s);
C)scanf
(”%s”,&s[0]);
D)gets(&s[0]);
3
以下关于C源程序文件的说法中正确的是(
BCD
)
A)是一种二进制文件
B)是一种文本(ASCII码)文件
C)可以用DOS的type命令显示其内容
D)文件扩展名一般为c
×4
下面关于C语言的说法错误的是(
ACD
)。
A)
C函数必须有形式参数
B)
任何复合语句体的{
}中允许定义局部变量
C)
局部变量都存储在动态存贮区
D)
C程序的执行起点只能是main函数
5
以下程序正确计算p=n!
(n>=0)的是(
AB
)。
A)
for(p=10,k=1;k<=n;)
p=k++;
B)
p=10;k=0;while(k<n)
p=++k;
C)
p=10;k=1;do{++k;p=k;}
while(k<=n);
D)
p=10;for(k=n;k>=1;k--)
p=k--;
五、读程序与程序填空(共22分)
1.阅读以下程序,写出程序运行结果:(共3Χ4分)
×
(1)
#include
”stdioh”
void
main()
{char
a[61],s;int
n;
gets(a);
for(s=a;s;s++)
if(s>=’a’&&s<=’z’)
s-32;
puts(a);
}
若程序的输入为abcb,则输出结果为
ABCD
。
(2)
#include
”stdioh”
void
main()
{
int
s=0,k=0;
while(k<4)
{s+=k;k++;printf(“%d”,s);}
}
该程序的输出是
0136
。
(3)
#include
“stdioh”
void
main(
)
{static
int
a[5]={2,-15,1,0,-7};
int
i;
for(i=0;i<5;i++)
if(a[i]<0)
a[i]
=
-a[i];
for(i=4;i>=0;i--)
printf(“%4d”,
a[i]);
}
该程序的输出是7
0
1
15
12
(4)
×#include
“stdioh”
#define
N
5
int
swap(int
p,
int
q)
{int
t;
if(p<q)
{t=p;p=q;q=t;}
return
p<q;
}
void
f(int
a[
],int
m)
{int
p,
q;
p=a;q=a+m;
while(swap(p,q))
{p++;
q--}
}
void
main(
)
{int
m,a[N];
for(m=0;m<N;m++)
scanf(“%d”,a+m);
f(a,N-1);
for(m=0;m<N;m++)
printf(“%d”,a[m]);
}
若程序的输入为1
2
3
4
5,
则输出结果为
5
4
3
2
1
2.程序填空:(共10分)
(1)
×以下程序的功能是输入年、月、日,求该日期是这一年的第几天,填空使之完善。
#include
“stdioh”
int
IsLeap(int
y)
/
此函数的功能是判断年号y是否为闰年
/
/
已知闰年的条件是年号y能被4整除,但不能被100整除,或年号y能被400整除
/
{int
r;
if(
y%4=
=0&&y%100!=0||y%400=
=0
)
r=1;
else
r=
0
;return
r;}
int
DaysofMonth(int
y,int
m)
/
此函数的功能是求y年m月的天数
/
{
int
days;
switch(m)
{case
4,6,9,11:days=30;break;
case
2:if(IsLeap(y))
days=28;else
days=29;break;
default:days=
31
;
}
return
days
;
}
void
main
(
)
{int
k,y,m,d,days;
printf(“Input
year,month,date:”);scanf(“%d%d%d”,&y,&m,&d);
days=0;
for(k=
1
;
k<m
;k++)days+=
DaysofMonth(y,k);
days+=d;
printf(“days=%d\n”,days);}
(2)
下面程序的功能是输出100至1000以内的素数,请填空使之完善。
#include
“stdioh”
#include
“
mathh
”
void
main
(
)
{
int
m,k,j;
for(m=100;m<=1000;m++)
{k=sqrt(m);
for(j=2;
j<=k
;j++)
if(m%j
=
=
0)
break;
if(
j>k或
j>=k+1
)
printf(“%5d”,m);
}
}
六、根据题意编写程序:(3Χ6+10=28分)
1
编程序,从键盘输入a0,a1,a2,…,an计算s=ao+a1x+a2x2+…+anxn
×2.编程序,将正文(文本)文件中的小写字母变成大写并统计输出文件有多少个字符,
要求文件名由键盘输入。
×3.编程序,输入n个英文单词(n用#define定义为8),然后将这些单词按英文字典顺
序输出。
×4.编程序,从键盘输入n个学生的姓名、学号和住址,按照学号次序把它们串成一个单向链表。
1.
main(
)
{float
x,a[n+1],s=00;
int
i,n;printf(“请输入n和x的值”);scanf(“%d,%f”,n,x);printf(“请输入所有系数的值”);
for(i=0;i<=n;i++)scanf(“%f”,&a[i]);
for(i=0;i<=n;i++)
s=s+a[i]pow(x,i);printf(“s=%f”,s”);}
2
#include
“stdioh”
main
(
)
{int
i;char
ch,name[80];
FILE
fp;
i=0;
printf(“please
input
the
filename:”);
scanf(“%s”,name);
if((fp=fopen(name,”r+”))==NULL)
{
printf(“cannot
open
the
file”);
exit(0);}
ch=fgetc(fp);
i++;
if((ch>=’a’)&&(ch<=’z’))
ch=ch-32;
fputc(ch,fp);
printf(“字符总数为%”,i);
fclose(fp);
}
3
#include
"stdioh"
#include
"stringh"
#define
n
8
void
main(
)
{char
p,s[n],t[21];
int
i,j;
for(i=0;i<n;i++)
{scanf("%s",t);
s[i]=(char
)malloc(strlen(t)+1);
strcpy(s[i],t);
}
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(s[i],s[j])>0)
{p=s[i];s[i]=s[j];s[j]=p;}
for(i=0;i<n;i++)
printf("%s\n",s[i]);
}
输入
basic
good
well
c
pascal
morning
hlr
cpp
输出:
basic
c
cpp
good
hlr
morning
pascal
well
以上就是关于单片机题目(简述、读程序、综合题)高手进!!急!!!最好带分析(可追加分数)全部的内容,包括:单片机题目(简述、读程序、综合题)高手进!!急!!!最好带分析(可追加分数)、求C++高手帮小弟看看下面的题目 着急中....、C语言题急求!~!~!~!~!~!~!~!~!~!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)