单片机题目(简述、读程序、综合题)高手进!!急!!!最好带分析(可追加分数)

单片机题目(简述、读程序、综合题)高手进!!急!!!最好带分析(可追加分数),第1张

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语言题急求!~!~!~!~!~!~!~!~!~!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10165087.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存