當前位置:首頁 » 編程語言 » 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