当前位置:首页 » 编程语言 » c语言中k1和k1
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中k1和k1

发布时间: 2022-11-19 22:11:09

① 在c语言中,有定义语句:int k1=10,k2=20;执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为多少

0 20
k1>k2不成立,k1=0;与运算前面部分为假,程序直接执行下一语句,因此k2=k2>k1没有被运行,k2依然等于20,所以输出k1=0,k2=20.

② C语言或者汇编程序,要求用开关K1,K2控制四项步进电机的正转反转和停止,使用51单片机,哪位大哥帮下忙啊

MOV
20H,#00H
;20H单元置初值,电机正转位置指针
MOV
21H,#00H
;21H单元置初值,电机反转位置指针
MOV
P1,#0C0H
;P1口置初值,防止电机上电短路
MOV
TMOD,#60H
;T1计数器置初值,开中断
MOV
TL1,#0FFH
MOV
TH1,#0FFH
SETB
ET1
SETB
EA
SETB
TR1
SJMP
$
;***********计数器1中断程序************
IT1P:
JB
P3.7,FAN
;电机正、反转指针
;*************电机正转*****************
JB
00H,LOOP0
JB
01H,LOOP1
JB
02H,LOOP2
JB
03H,LOOP3
JB
04H,LOOP4
JB
05H,LOOP5
JB
06H,LOOP6
JB
07H,LOOP7
LOOP0:
MOV
P1,#0D0H
MOV
20H,#02H
MOV
21H,#40H
AJMP
QUIT
LOOP1:
MOV
P1,#090H
MOV
20H,#04H
MOV
21H,#20H
AJMP
QUIT
LOOP2:
MOV
P1,#0B0H
MOV
20H,#08H
MOV
21H,#10H
AJMP
QUIT
LOOP3:
MOV
P1,#030H
MOV
20H,#10H
MOV
21H,#08H
AJMP
QUIT
LOOP4:
MOV
P1,#070H
MOV
20H,#20H
MOV
21H,#04H
AJMP
QUIT
LOOP5:
MOV
P1,#060H
MOV
20H,#40H
MOV
21H,#02H
AJMP
QUIT
LOOP6:
MOV
P1,#0E0H
MOV
20H,#80H
MOV
21H,#01H
AJMP
QUIT
LOOP7:
MOV
P1,#0C0H
MOV
;
20H,#01H
MOV
21H,#80H
AJMP
QUIT
;***************电机反转*****************
FAN:
JB
08H,LOOQ0
JB
09H,LOO
Q1
JB
0AH,LOOQ2
JB
0BH,LOOQ3
JB
0CH,LOOQ4
JB
0DH,LOOQ5
JB
0EH,LOOQ6
JB
0FH,LOOQ7
LOOQ0:
MOV
P1,#0A0H
MOV
21H,#02H
MOV
20H,#40H
AJMP
QUIT
LOOQ1:
MOV
P1,#0E0H
MOV
21H,#04H
MOV
20H,#20H
AJMP
QUIT
LOOQ2:
MOV
P1,#0C0H
MOV
21H,#08H
MOV
20H,#10H
AJMP
QUIT
LOOQ3:
MOV
P1,#0D0H
MOV
21H,#10H
MOV
20H,#08H
AJMP
QUIT
LOOQ4:
MOV
P1,#050H
MOV
21H,#20H
MOV
20H,#04H
AJMP
QUIT
LOOQ5:
MOV
P1,#070H
MOV
21H,#40H
MOV
20H,#02H
AJMP
QUIT
LOOQ6:
MOV
P1,#030H
MOV
21H,#80H
MOV
20H,#01H
AJMP
QUIT
LOOQ7:
MOV
P1,#0B0H
MOV
21H,#01H
MOV
20H,#80H
QUIT:
RETIEND

③ C程序中定义的变量,代表内存中的一个________。

2、把k1,k2定义成基本整型变量,并赋初值0的定义语句是___int
k1=
k2
=
0______。
3、在c语言程序中,用关键字___int___定义基本整型变量,用关键字__float___定义单精度实型变量,用关键字_double____定义双精度实型变量。

④ c语言问题 if(!k1)是什么意思

其实就是k1=1(真),之后执行if内的程序。
2、while(!k1);中的“!”确实是里边取反,假设你的按键还没有放开,即k1==0(假),取反就 是真了,一直执行此条语句(死循环);假设放开按键.....

⑤ c语言编程由开关k1控制四盏灯的亮灭

要求不明确。用什么型号单片机?用开关k1控制四盏灯一起亮灭,还是分别控制每盏灯亮灭?
下面以51单片机为例,P1^0接按键到地,P0^0~3以灌电流驱动方式分别接led1~led4。用Kei uVisionl编译。
1.控制四盏灯一起亮灭
#include<reg51.h>
sbit key1 = P1^0;
sbit led1 = P0^0;
sbit led2 = P0^1;
sbit led3 = P0^2;
sbit led4 = P0^3;
unsigned int count;
void delay(unsigned int cnt)
{
while(--cnt);
}
main()
{
count=0;
while(1)
{
if(key1==0)
{
delay(10000);
if(key1==0)
{
count++;
if(count==3)
count=0;
while(key1==0);
switch(count)
{
case 1:led1=0;led2=0;led3=0;led4=0;break;
case 2:led1=1;led2=1;led3=1;led4=1;break;
default:break;
}
}
}
}
}
按一下key1全亮,再按一下key1全灭......往复循环

2.分别控制每盏亮灭
#include<reg51.h>
sbit key1 = P1^0;
sbit led1 = P0^0;
sbit led2 = P0^1;
sbit led3 = P0^2;
sbit led4 = P0^3;
unsigned int count;
void delay(unsigned int cnt)
{
while(--cnt);
}
main()
{
count=0;
while(1)
{
if(key1==0)
{
delay(10000);
if(key1==0)
{
count++;
if(count==9)
count=0;
while(key1==0);
switch(count)
{
case 1:led1=0;break;
case 2:led1=1;break;
case 3:led2=0;break;
case 4:led2=1;break;
case 5:led3=0;break;
case 6:led3=1;break;
case 7:led4=0;break;
case 8:led4=1;break;
default:break;
}
}
}
}
}
按一下key1 led1亮,再按led1灭,再按led2亮,再按led2灭,再按led3亮,再按led3灭,再按led4亮,再按led4灭......往复循环

⑥ C语言编程 统计素数

代码如下:

#include<stdio.h>
voidmain()
{
inti,m,count=0,k1,k2,a[1001];
scanf("%d%d",&k1,&k2);
a[1]=1;
for(i=2;i<=k2;i++)
{
if(a[i]==1)break;
m=2;
while(i*m<=k2)
{
a[i*m]=1;
m++;
}
}
for(i=k1;i<=k2;i++)
if(a[i]!=1)count++;
printf("%d ",count);
for(i=k1;i<=k2;i++)
if(a[i]!=1)printf("%d",i);
printf(" ");
}

这段代码是用筛选法筛出素数,再计算素数的个数,最后输出[k1,k2]间的素数,应该不会超时。

⑦ C语言:将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列.新序列中,比K1小的数都在K1的前面(左面)

楼主将就看吧,嘿嘿,我不怎么会插入图片。

#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int i, j;
int a[100][9];
int b[100][20];//让b数组足够大,可以将a中的值赋进去不会溢出或者覆盖。
for (i = 0; i < n; i++)//输入
{
for (j = 0; j < 9; j++)
{
cin >> a[i][j];
}
}
int m;

for (i = 0; i < n; i++)
{
int t = 10, k = 10;//初始化
for (j = 0; j < 9; j++)
{
if (j == 0)//保证是将一列的第一个元素赋值给b【i】【10】
{
b[i][t] = a[i][j];//t=10,即b【i】【10】赋值为a【i】【0】

}

if (j >= 1)
{
if (a[i][j] < b[i][10])
{
b[i][t - 1] = a[i][j];
t--;
}
else if (a[i][j] > b[i][10])
{
b[i][k + 1] = a[i][j];
k++;
}
}
}for (m = 0; m < n; m++)
{


for (t; t < k; t++)//从t到k,我们的要求是最后一位数后面不跟空格,所以我将b[i][k]单独输出
{
cout << b[i][t] << " ";
}
}

cout << b[i][k];
cout << endl;
}

}

⑧ C语言问题 输入两个整数保存在k1和k2变量中,交换k1和k2变量中的数据后

#include<stdio.h>
voidmain()
{
intk1,k2,t;
scanf("%d%d",&k1,&k2);
t=k1;k1=k2;k2=t;
printf("%d%d ",k1,k2);
}

执行示例:

⑨ C语言问题:帮我分析一下k1 k2 的结果,图2将大于符号改成了小于符号

>号优先级高于=号。所以:
k1 = k1 > k2

相当于:
k1 = (k1 > k2)

k1 = 10,k2 = 20时, k1 > k2为假,其值被转换成0。所以k1 = 0。

&& 逻辑与符号在进行表达式求值时会进行短路求值。比如a&&b,如果a为假,则a&&b一定为假。因此不会对b进行求值以提升计算效率。所以当 (k1 = k1 > k2)值为0时,后面的(k2 = k2 > k1)并不会执行,因此k2依然等于20。

而对于(k1 = k1 < k2) && (k2 = K2 > k1),前半部分求值k1 = 1,无法短路求值,因此后部分k2 = k2 > k1,会进行计算。此时k1 = 1, k2 > k1 为真,被转换成1赋值给k2。所以k1 = 1 ,k2 = 1 .

⑩ C语言程序设计中,把k1,k2定义为基本整型变量,并赋初值7,若有语句k1+=k1-=k1+1,为什么 k1=2

从右边往左边算:

  1. k1+1, 结果为8

  2. 计算 k1 -= 8; 所以k1结果为-1

  3. 计算 k1 += -1; 最终结果为-2