① 上下左右 方向鍵的ASCII碼值是多少
鍵盤上下左右 方向鍵的鍵碼(keyCode)是38、40、37和39,或者稱虛擬ASCII值是38、40、37和39。
下圖是虛擬ASCII值:
參考:http://ke..com/link?url=ZuS2LREZy-otw_Gm64LFqTa1G__--uZg1d2vWdGK
② c語言的作業
都是些簡單的題目 你自己用TC運行下 或者加分我給你做
③ C語言問題啊啊
字元變數c只能代表一個字元,你如果定義多個字元則表示你將最後一個字元賦值給了c,
比如char c; c='1213gughbA';
那麼就等價於char c; c='A';
另外wssxs8888 | 二級 說的
\xxx這個八進制的格式,c=『\0xab』好像等價與
c=b,b的ASCII的值就是98. 是錯誤的,\0 代表的是NULL 其ASCII碼為0
④ 編一個c語言程序當輸入:THIS IS A PEN時,輸出為TI SAPN
#include <stdio.h>
#include <string.h>
int main(void)
{
char s[100];
gets(s);
if (!strcmp(s, "THIS IS A PEN"))
printf("TI SAPN\n");
return 0;
}
至少滿足題意。。。
⑤ c語言編程例題
#include<iostream>
#include<math.h>
usingnamespacestd;
//判斷一個數是否為素數
boolIsPrimeNumber(intiNum)
{
boolbRtn=true;
if(iNum<=1)
{
returnfalse;
}
intiTmp=sqrt((double)iNum);
for(inti=2;i<=iTmp;++i)
{
if((iNum%i)==0)
{
bRtn=false;
break;
}
}
returnbRtn;
}
//判斷一個數是否為偶數
//true,偶數;false,奇數
boolIsEvenNumber(intiNum)
{
return((iNum%2)==0)?true:false;
}
//查找小於1000的迴文素數
voidFindPalindromePrimes(intiNum)
{
boolbRst=false;
inti=2;
intiHundDigit=0,iTenDigit=0,iSingleDigit=0;
for(i;i<1000;++i)
{
if(IsPrimeNumber(i))
{
if(i<10)
{
bRst=true;
cout<<i<<"";//輸出迴文素數.
}
elseif((i>=10)&&(i<100))
{
iTenDigit=i/10;
iSingleDigit=i%10;
//如果個位上的數與10位上的數相等
if(iTenDigit==iSingleDigit)
{
bRst=true;
cout<<i<<"";
}
}
else
{
intiTmp=i;
iHundDigit=iTmp/100;
iTmp=iTmp%100;
iTenDigit=iTmp/10;
iSingleDigit=iTmp%10;
if((iHundDigit==iTenDigit)&&(iTenDigit==iSingleDigit))
{
bRst=true;
cout<<i<<"";
}
}
}
}
if(!bRst)
{
cout<<"沒有小於1000的迴文素數!"<<endl;
}
}
//查找小於100的絕對素數
voidFindAbsolutePrime(intiNum)
{
boolbRst=false;
inti=2,iTmp=0;
intiTenDigit=0,iSingleDigit=0;
for(i;i<100;++i)
{
if(IsPrimeNumber(i))
{
iTenDigit=i/10;
iSingleDigit=i%10;
iTmp=iSingleDigit*10+iTenDigit;
if(IsPrimeNumber(iTmp))
{
bRst=true;
cout<<i<<"";
}
}
}
if(!bRst)
{
cout<<"沒有小於100的絕對素數!"<<endl;
}
}
//分解10~20之間的偶數
voidResolveEventNum(intiNum)
{
boolbRst=false;
inti=2,iTmp=0;
for(;i<iNum;++i)
{
if(IsPrimeNumber(i))
{
iTmp=iNum-i;
if(IsPrimeNumber(iTmp))
{
bRst=true;
cout<<iNum<<"分解為"<<i<<"+"<<iTmp<<endl;
break;
}
}
else
continue;
}
if(!bRst)
{
cout<<"不能分解為兩個素數之和!"<<endl;
}
}
intmain(void)
{
intiInput=0;
cout<<"請輸入一個大於1的整數:";
cin>>iInput;
if(IsEvenNumber(iInput))
{
cout<<iInput<<"是一個偶數"<<endl;
if((iInput>=10)&&(iInput<=20))
{
ResolveEventNum(iInput);
}
}
else
{
cout<<iInput<<"是一個奇數"<<endl;
cout<<"查找小於1000的迴文數:"<<endl;
FindPalindromePrimes(iInput);
cout<<endl;
cout<<"查找小於100的絕對素數:"<<endl;
FindAbsolutePrime(iInput);
cout<<endl;
}
getchar();
return0;
}
附上運行結果(如果滿意,麻煩設為最佳答案,做任務需要,謝謝!):
⑥ rtsp流瀏覽器播放方案
rtsp流在主流瀏覽器並不支持直接播放。比如大華的視頻流:rtsp://admin:123456@
192.168.10.129/cam/realmonitor?channel=1&subtype=0,用vlc可以直接播放。但在瀏覽器會報ERR_UNKNOWN_URL_SCHEME。那如何在瀏覽器中播放呢。
以下列出幾種方案。
1、安裝插件(chrome最新版基本都不支持)
類如:kurento,vlc插件(谷歌瀏覽器版本41以下),vgx插件(不支持高版本,chrome72.0版本可用)等。
2、安裝軟體(中間件,基本都付費)
類如:Appemit(調用vlc插件播放rtsp),可以免安裝的,目前只能windows,免費版會有提示。
猿大師中間件(底層調用VLC的ActiveX控制項,實現在主流瀏覽器網頁中內嵌播放多路RTSP的實時視頻流),中間件收費的。
PluginOK(牛插)中間件。底層調用ActiveX控制項VlcOcx.dll。(商業用途需付費使用)
3、伺服器拉流轉發及協議轉換
示意圖如下所示:
推流--------------伺服器轉發--------------拉流
方法一覽:
a,vlc軟體串流到http協議 ,網頁顯示幾個視頻需啟動幾個vlc,只適合應急場景。
b,html5 + websocket_rtsp_proxy 實現視頻流直播 ,基於MSE(Media Source Extensions,W3C),擴展H5的功能。
步驟:伺服器安裝streamedian伺服器,客戶端通過video標簽播放。
原型圖:
價格:
c.基於nginx的rsmp轉發
基於nginx實現rtmp轉化,用flash實現播放。由於flash目前大多瀏覽器默認禁用,不推薦此方式。
步驟:安裝ffmpeg工具,安裝nginx。
另外nginx-rtmp-mole也支持HLS協議,可以搭建基於hls的直播伺服器。
d.rtsp轉hls播放,通過ffmpeg轉碼
步驟:安裝ffmpeg工具,ffmpeg轉碼。
形如:
ffmpeg -i "rtsp://admin:[email protected]/cam/realmonitor?channel=1&subtype=0" -c -f hls -hls_time 2.0 -hls_list_size 0 -hls_wrap 15 "D:/hls/test.m3u8"
缺點是直播流延時很大,對實時要求比較高的不滿足要求。
案例:基於EasyDarwin拾建轉碼伺服器。參考地址:https://blog.csdn.net/jyt0551/article/details/84189498
通過存儲的m3u8去讀取。
e.websocket代理推送,FFMPEG轉碼
此方法與a,b類似。但更實用。
以下提供兩種方案:
(1)Gin+WebSocket+FFMPEG實現rtsp轉碼,參考:https://juejin.cn/post/6844904024072798216
通過FFMPEG把rstp轉成http,ginrtsp作為轉發伺服器,但需要自己寫相應介面,需要了解go語言。
(2)node + ffmpeg + websocket + flv.js,參考:https://juejin.cn/post/6908641550046068744
步驟:在node服務中建立websocket;通過fluent-ffmpeg轉碼,將RTSP 流轉為flv格式;通過flv.js連接websocket,並對獲取的flv格式視頻數據進行渲染播放。
import WebSocket from 'ws'import webSocketStream from 'websocket-stream/stream'import ffmpeg from 'fluent-ffmpeg'// 建立WebSocket服務const wss = new WebSocket.Server({ port: 8888, perMessageDeflate: false })// 監聽連接wss.on('connection', handleConnection)// 連接時觸發事件function handleConnection (ws, req) { // 獲取前端請求的流地址(前端websocket連接時後面帶上流地址) const url = req.url.slice(1) // 傳入連接的ws客戶端 實例化一個流 const stream = webSocketStream(ws, { binary: true }) // 通過ffmpeg命令 對實時流進行格式轉換 輸出flv格式 const ffmpegCommand = ffmpeg(url) .addInputOption('-analyzeration', '100000', '-max_delay', '1000000') .on('start', function () { console.log('Stream started.') }) .on('codecData', function () { console.log('Stream codecData.') }) .on('error', function (err) { console.log('An error occured: ', err.message) stream.end() }) .on('end', function () { console.log('Stream end!') stream.end() }) .outputFormat('flv').videoCodec('').noAudio() stream.on('close', function () { ffmpegCommand.kill('SIGKILL') }) try { // 執行命令 傳輸到實例流中返回給客戶端 ffmpegCommand.pipe(stream) } catch (error) { console.log(error) }}
優點全部基於js。前端即可搞定。
參考:https://www.hu.com/question/29973696
⑦ 同步與互斥中的獨木橋問題用PASCAL怎麼描述啊
Pascal語言,但操作系統並不像帕斯卡爾語言編寫。
一般是80%的C和C + +,少量的匯編。想寫一個研究像Linux操作系統,採用C語言和匯編程序。
學習唯一的操作系統,不看類pascal語言。
⑧ 各位大俠WindowsServer和普通WIN操作系統有什麼不同
一、主體不同
1、WindowsServer:微軟推出的Windows 的伺服器操作系統,其核心是Microsoft Windows Server System(WSS),每個Windows Server都與其家用(工作站)版對應。
2、WIN操作系統:Windows操作系統是美國微軟公司研發的一套操作系統,也當前應用最廣泛的操作系統。
二、內核不同
1、WindowsServer:除核是用匯編語言編寫的以外,其他部分都是用C語言編寫的,集成了多種傳輸協議,因此可以與其他網路操作系統共同組網。
2、WIN操作系統:自身的32位Windows應用程序介面(Win32)能使應用程序得到更快的響應,能更快地處理CPU密集的任務。
三、特點不同
1、WindowsServer:增強了群集支持,從而提高了其可用性。對於部署業務關鍵的應用程序、電子商務應用程序和各種業務應用程序的單位而言,群集服務是必不可少的,因為這些服務大大改進了單位的可用性、可伸縮性和易管理性。
2、WIN操作系統:提供更佳的屏幕觸控支持。新系統畫面與操作方式變化極大,採用全新的Metro風格用戶界面,各種應用程序、快捷方式等能以動態方塊的樣式呈現在屏幕上,用戶可自行將常用的瀏覽器、社交網路、游戲、操作界面融入。
⑨ 基於51單片機電子鬧鍾的設計,用C語言,跪求高手
#include<reg52.h>
#include<intrins.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
#define rst573 P2&=0X1F
#define y4 P2|=0X80
#define y5 P2|=0XA0
#define y6 P2|=0XC0
#define y7 P2|=0XE0
sbit s5=P3^2;
sbit s4=P3^3;
sbit s6=P3^1;
sbit s7=P3^0;
sbit scl=P1^7;
sbit IO=P2^3;
sbit rst1302=P1^3;
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code chu[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar time[8]={0xa4,0xb0,0xbf,0x90,0x90,0xbf,0xc0,0xc0};
uchar miao1,miao2,fen1,fen2,shi1,shi2,shi,fen;
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=120;j>0;j--);
}
void writebyte(uchar add,uchar date)
{
uchar i;
scl=0;
IO=0;
rst1302=1;
for(i=0;i<8;i++)
{
scl=0;
IO=add&0x01;
scl=1;
add>>=1;
}
for(i=0;i<8;i++)
{
scl=0;
IO=date&0x01;
scl=1;
date>>=1;
}
rst1302=0;
}
uchar readbyte(uchar add)
{
uchar i,temp;
scl=0;
IO=0;
rst1302=1;
for(i=0;i<8;i++)
{
scl=0;
IO=add&0x01;
scl=1;
add>>=1;
}
for(i=0;i<8;i++)
{
scl=1;
temp>>=1;
scl=0;
if(IO)
temp|=0x80;
}
return temp;
}
void set1302()
{
writebyte(0x8e,0x00);
writebyte(0x84,0x00);
writebyte(0x82,0x00);
writebyte(0x80,0x00);
writebyte(0x8e,0x80);
}
void read1302(uchar *p)
{
p[0]=readbyte(0x85);
writebyte(0x84,0x00);
p[1]=readbyte(0x83);
writebyte(0x82,0x00);
p[2]=readbyte(0x81);
writebyte(0x00,0x00);
}
void zhuanghuan()
{
shi=time[0];
fen=time[1];
miao1=(time[2]/16)%10;
miao2=(time[2]%16)%10;
}
void display()
{
rst573;
P0=chu[0];
y6;
rst573;
P0=tab[shi>>4];
y7;
delay(2);
rst573;
P0=chu[1];
y6;
rst573;
P0=tab[shi&0x0f];
y7;
delay(2);
rst573;
P0=chu[3];
y6;
rst573;
P0=tab[fen>>4];
y7;
delay(2);
rst573;
rst573;
P0=chu[4];
y6;
rst573;
P0=tab[fen&0x0f];
y7;
delay(2);
rst573;
P0=chu[6];
y6;
rst573;
P0=tab[miao1];
y7;
delay(2);
rst573;
P0=chu[7];
y6;
rst573;
P0=tab[miao2];
y7;
delay(2);
rst573;
P0=chu[2];
y6;
rst573;
P0=0xbf;
y7;
delay(2);
rst573;
P0=chu[5];
y6;
rst573;
P0=0xbf;
y7;
rst573;
delay(1);
read1302(time);
zhuanghuan();
}
void jian()
{
if(s4==0)
{
delay(5);
if(s4==0)
{
while(!s4)
display();
writebyte(0x8e,0x00);
shi++;
if(shi==10) //對應BCD的0~9
shi=16;
if(shi==26) //對應BCD的10~19
shi=32;
if(shi==36) //對應BCD的19~23
shi=0;
writebyte(0x84,shi);
}
}
if(s5==0)
{
delay(5);
if(s5==0)
{
while(!s5)
display();
writebyte(0x8e,0x00);
shi--;
if(shi==-1) //對應BCD的23~20
shi=35;
if(shi==31) //對應BCD的19~10
shi=25;
if(shi==15) //對應BCD的9~0
shi=9;
writebyte(0x84,shi);
}
}
if(s6==0)
{
delay(5);
if(s6==0)
{
while(!s6)
display();
writebyte(0x8e,0x00);
fen++;
if(fen==10) //對應BCD的0~9
fen=16;
if(fen==26) //對應BCD的10~19
fen=32;
if(fen==42) //對應BCD的20~29
fen=48;
if(fen==58) //對應BCD的30~39
fen=64;
if(fen==74) //對應BCD的40~49
fen=80;
if(fen==90) //對應BCD的50~59
fen=0;
writebyte(0x82,fen);
}
}
if(s7==0)
{
delay(5);
if(s7==0)
{
while(!s7)
display();
writebyte(0x8e,0x00);
fen--;
if(fen==-1) //對應BCD的59~50
fen=89;
if(fen==79) //對應BCD的49~40
fen=73;
if(fen==63) //對應BCD的39~30
fen=57;
if(fen==47) //對應BCD的29~20
fen=41;
if(fen==31) //對應BCD的19~10
fen=25;
if(fen==15) //對應BCD的9~0
fen=9;
writebyte(0x82,fen);
}
}
}
void main()
{
set1302();
while(1)
{
jian();
display();
}
}
⑩ c語言中,堆和棧的存儲有什麼區別
malloc從堆中分配內存
其他變數存儲在棧中