當前位置:首頁 » 編程語言 » c語言單片機控制技術及應用試卷答案
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言單片機控制技術及應用試卷答案

發布時間: 2023-02-05 21:34:33

Ⅰ 跪求同濟大學魏鴻磊單片機原理及應用(c語言編程)課後習題答案

#include<stdio.h>
#include<stdlib.h>

void swap(int*a,int*b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void select_sort(int A[],int n)
{
register int i,j,min,m;
for(i=0;i<n-1;i++)
{
min=i;//查找最小值
for(j=i+1;j<n;j++)
{
if(A[min]>A[j])
{
min=j;
}
}
if(min!=i)
{
swap(&A[min],&A[i]);
printf("第%d趟排序結果為:\n",i+1);
for(m=0;m<n;m++)
{
if(m>0)
{
printf("");
}
printf("%d",A[m]);
}
printf("\n");
}
}
}
int main(void)
{
int n;
while(scanf("%d",&n)!=EOF) /* VS2013等版本中需使用scanf_s(),VC6.0中使用scanf() */
{
int i;
int*A=(int*)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{
scanf("%d",&A[i]);
}
select_sort(A,n);
printf("最終排序結果為:\n");
for(i=0;i<n;i++)
{
if(i>0){
printf("");
}
printf("%d",A[i]);
}
printf("\n");
}
return 0;
}

Ⅱ 單片機應用技術c語言版 李文華編著的課後習題答案

是這個嗎?


Ⅲ 單片機復習題(C語言)

一. 填空題
1. MCS-51單片機是____8____位機,其最大程序容量可達___64_____K位元組,有_____4___個並行口和____32____條I/O管腳。
2. MCS-51單片機正常工作所必須的外部硬體電路是___電源_____、___時鍾_____、__復位______。
3. MCS-51單片機復位電平是___高_____電平,正常工作時復位端為__低______電平,復位後並所有行口的輸出為____高____電平。
4. MCS-51單片機內部結構中,四個基本功能單元分別是___CPU_____、__RAM______、____ROM____、___定時器計數器I/O口_____;三個擴展功能單元分別是____?____、___?____、___?_____。
5. MCS-51單片機內部RAM四個分區分別是__00H到1FH(R0-R7)可位定址____、____ _ 20H-2FH___、_30H-7FH__ _____、__80H-FFH______。
6. MCS-51單片機___P0_____口沒有內部上拉電阻;並行口作為輸入口使用時必須保證該埠場效應管__開漏______,即向該埠寫___0xff_____,此時該埠的輸出鎖存器Q端為___1(高電平)_____。
7. MCS-51單片機計數器工作在方式1和方式2的最大計數值分別是_____65536______、___256________。
8. MCS-51單片機若單片機的主時鍾振盪頻率為6MHz,定時器工作在方式1和方式2的最大定時時間分別是_____自己算!!______ms、___不懂看書!!________us。基本指令周期是___0.5-2_______us。
9. MCS-51單片機的五個中斷源分別是___INT0______、__T0_______、_____INT1_____、___T1______、___UART_______。
10. 編寫程序常用的三種程序結構是 __順序結構_______、__循環結構_______、___選擇結構_______。
11. C語言語法中,數據類型unsigned char 定義的是____8_____位無符號數;數據類型unsigned int定義的是___16______位無符號數。對8位和16位有符號數,定義數據類型關鍵詞為___signed char______、____short_____。
12. 單片機上電後是從主函數void main()的___0x0000H______位置運行。
13. 單片機C語言編程時必須有的固定結構的語句是#include <reg51.h>、void main()以及____while_____。
14. keil 集成開發軟體的三個主要功能是___編譯______、__調試_______、___模擬______。
15. 十進制數100對應的十六進制數是____64_____、二進制數是___01100100______。

二. 讀程序題
默認有關變數x、y、z、a、b、c、i均為unsigned int (8為無符號數)(這個是不是打錯了)請寫出局部程序運行後的結果,用十進製表示。
1. x = ___6___, y = ___3___, z = __11____ , a = ___5___, b = ___15___, c = ___252___。
x = 50/8; y = 100%12; z = 240+26;
a = z>>1; b = x | z; c = ~y;
2. x = _183_____, y = __10____, z = __11____ , a = __10____, b = __10____, c = ___10___。
x = 0xa5 ^ 0x12; y = 5*2; z = y++
a = --z; b = a & y; c = (a+z)/2;
3. x = ___6___, y = __12____, i = ___3___。
x=0;y=0;
for (i=1;i<=3;i++){
x = x+i;
y = y + i*2;
}
4. x = __20____, y = ___10___, z = ___81___ , a = __8____, b = ____9__,
c = __48____, i = ___8___。
a=0;
if (!a){
x=20; y=x<<2; z=y++;
}else{
x=10; y=x<<2; z=y++;
}
i=2<<2; y=10;
if (i>3 && y){
a=y & 0x0c;
b=++i;
c=x^y;
}
隨便做的,有些東東忘了!不懂的自己回去看看書去。

Ⅳ 求:C語言程序設計試卷及答案一份

一、選擇題(1~40題每題1分,41~50題每題2分,共60分)下列各題A、B、C、D四個選項中,只有一個選項是正確的。請將正確選項塗寫在答題卡相應位置上,答在試卷上不得分。

1.微型計算機的運算器、控制器及內存儲器組合在一起,稱之為()(本題分值:1分)
【正確答案】D
A.ALU
B.CPU
C.MPU
D.主機
2.下列存儲器中,存取速度最快的是()(本題分值:1分)
【正確答案】D
A.軟盤
B.硬碟
C.光碟
D.內存
3.系統軟體中最重要的是()(本題分值:1分)
【正確答案】A
A.操作系統
B.語言處理程序
C.工具軟體
D.資料庫管理系統
4、CPU處理的數據基本單位為字,一個字的字長()(本題分值:1分)
【正確答案】D
A.為8個二進制位
B.為16個二進制位
C.為32個二進制位
D.與CPU晶元的型號有關
5.列印當前屏幕內容應使用的控制鍵是()(本題分值:1分)
【正確答案】D
A.Scroll-Lock
B.Num-Lock
C.PgDn
D.PrtSc(Print Screen)
6.能將高級語言源程序轉換成目標程序的是()(本題分值:1分)
【正確答案】C
A.調試程序
B.解釋程序
C.編譯程序
D.編輯程序
7.二進制數1110111.11轉換成十進制數是()(本題分值:1分)
【正確答案】B
A.119.375
B.119.75
C.119.125
D.119.3
8.十六進制數FF.1轉換成十進制數是()(本題分值:1分)
【正確答案】A
A.255.0625
B.255.125
C.127.0625
D.127.125
9.中國國家計算機網路設施是()(本題分值:1分)
【正確答案】A
A.NCFC
B.CERNET
C.ISDN
D.Internet
10.控制鍵^C的功能為()(本題分值:1分)
【正確答案】A
A.終止當前操作
B.系統復位
C.暫停標准輸出設備的輸出
D.結束命令行
11.COMMAND.COM為命令處理程序,DOS系統啟動後,它()(本題分值:1分)
【正確答案】B
A.駐留在外存,需要時裝入內存
B.常駐內存,包含所有內部命令
C.不能處理外部命令
D.不能處理後綴為.EXE的可執行文件
12.為了將所有擴展名為.PAS的文件改成擴展名為.P,應使用命令()(本題分值:1分)
【正確答案】C
A.REN *.PAS .?AS
B.REN PAS P
C.REN *.PAS *.P
D.REN *.PAS *.P??
13.設當前盤中文件XY.C的路徑為\A\B\XU,當前目錄為\A\B。為了查看文件XY.C的內容,應使用命令()(本題分值:1分)
【正確答案】A
A.TYPE XU\XY.C
B.TYPE \XU\XY.C
C.DIR XU\XY.C
D.DIR \A\B\XU\XY.C
14.要將提示符改成當前盤當前目錄後加一個大於號「>」,應使用命令()(本題分值:1分)
【正確答案】B
A.PROMPT
B.PROMPT $ p $ g
C.PROMPT $ $
D.PROMPT C\>
15.在多媒體計算機系統中,CD-ROM屬於()(本題分值:1分)
【正確答案】D
A.感覺媒體
B.表示媒體
C.表現媒體
D.存儲媒體
16.設當前盤為C盤,將A盤根目錄下的文件目錄信息存放到當前盤當前目錄下的文件AB中,應使用命令()(本題分值:1分)
【正確答案】C
A.TYPE A:\>AB
B.DIR >AB
C.DIR A:\>AB
D.DIR \>AB
17.在位運算中,操作數每右移一位,其結果相當於()(本題分值:1分)
【正確答案】B
A.操作數乘以2
B.操作數除以2
C.操作數除以16
D.操作數乘以16
18.在當前盤當前目錄下有一個文件A.BAT,其內容為
CD \
MD \XYZ\AB\B\C
CD XYZ\AB\B
在正確執行上述文件後,接著執行下列命令時,不會發生錯誤的是()(本題分值:1分)
【正確答案】C
A.MD C
B.RD \XYZ
C.RD C
D.RD B
19.下列命令組中兩個DOS命令互相等價的是()(本題分值:1分)
【正確答案】D
A.TYPE AB.TXT與DIR AB.TXT
B.DISKCOMP A:B:與COMP A:.* B:*.
C.TYPE AB.TXT>>XY.TXT與COPY AB.TXT XY.TXT
D.TYPE AB.TXT>XY.TXT與COPY AB.TXT XY.TXT
20.設A盤為啟動盤,其目錄結構為
根目錄
DOS子目錄 COMAND.COM
USER子目錄 AUTOEXEC.BAT
其文件AUTOEXEC.BAT的內容如下:
MD \XYZ
CD \DOS\USER
則由A盤啟動成功後,A盤的當前目錄是()(本題分值:2分)
【正確答案】C
A.\DOS\USER
B.\XYZ
C.根目錄
D.\DOS
21.C語言提供的合法關鍵字是()(本題分值:1分)
【正確答案】C
A.switch
B.cher
C.case
D.default
22.在C語言中,合法的字元常量是()(本題分值:1分)
【正確答案】B
A.′\084′
B.′\x43′
C.′ab′
D.′\0′
23.若已定義x和y為double類型,則表達式: x=1,y=x+3/2的值是()(本題分值:1分)
【正確答案】C
A.1
B.2
C.2.0
D.2.5
24.合法的數組定義是()(本題分值:1分)
【正確答案】D
A.int a[]=〃string〃;
B.int a[5]={0,1,2,3,4,5};
C.char a=〃string〃;
D.char a[]={0,1,2,3,4,5};
25.設a為整型變數,不能正確表達數學關系10<a<15的C語言表達式是()(本題分值:1分)
【正確答案】A
A.10<a<15
B.a==11||a==12||a==13||a==14
C.a>10&&a<15
D.!(a<=10)&&!(a>=15)

26.若t為double類型,表達式t=1,t+5,t++的值是()(本題分值:1分)
【正確答案】C
A.1
B.6.0
C.2.0
D.1.0
27.若有定義和語句:
char s[10];s=〃abcd〃;printf(〃%s\n〃,s);
則結果是(以下μ代表空格)()(本題分值:1分)
【正確答案】D
A.輸出abcd
B.輸出a
C.輸出abcdμμμμμ
D.編譯不通過
28.若有定義和語句:
int **pp,*p,a=10,b=20;
pp=&p;p=&a;p=&b;printf(〃%d,%d\n〃,*p,**pp);
則輸出結果是()(本題分值:1分)
【正確答案】D
A.10,10
B.10,20
C.20,10
D.20,20
29.若有以下定義和語句:
int u=010,v=0x10,w=10;
printf(〃%d,%d,%d\n〃,u,v,w);
則輸出結果是()(本題分值:1分)
【正確答案】A
A.8,16,10
B.10,10,10
C.8,8,10
D.8,10,10
30.若有以下定義和語句:
char c1=′b′,c2=′e′;
printf(〃%d,%c\n〃,c2-c1,c2-′a′+′A′);
則輸出結果是()(本題分值:1分)
【正確答案】B
A.2,M
B.3,E
C.2,E
D.輸出項與對應的格式控制不一致,輸出結果不確定
31.若有定義:int a[3][4];,()不能表示數組元素a[1][1]。(本題分值:1分)
【正確答案】D
A.*(a[1]+1)
B.*(&a[1][1])
C.(*(a+1))[1]
D.*(a+5)

32.若i、j已定義為int型,則以下程序段中內循環體的總的執行次數是()(本題分值:1分)
for(i=5;i>0;i--)
for(j=0;j<4;j++){…}
【正確答案】A
A.20
B.24
C.25
D.30
33.若有以下定義和語句:
char *s1=〃12345〃,*s2=〃1234〃;
printf(〃%d\n〃,strlen(strcpy(s1,s2)));
則輸出結果是()(本題分值:1分)
【正確答案】A
A.4
B.5
C.9
D.10
34.若有以下定義和語句:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
則不能表示a數組元素的表達式是()(本題分值:1分)
【正確答案】B
A.*p
B.a[10]
C.*a
D.a[p-a]
35.下面程序的輸出結果是()(本題分值:2分)
【正確答案】C
A.k=3 a=2 b=3
B.k=3 a=3 b=2
C.k=2 a=3 b=2
D.k=2 a=2 b=3
36.下面程序的輸出結果是()(本題分值:1分)
main()
{unsigned a=32768;
printf(〃a=%d\n〃,a);}
【正確答案】C
A.a=32768
B.a=32767
C.a=-32768
D.a=-1
37.執行下面語句後的輸出結果為()(本題分值:1分)
int i=-1;
if(i<=0) printf(〃****\n〃);
else printf(〃%%%%\n〃)
【正確答案】D
A.****
B.%%%%
C.%%%%c
D.有語法錯誤,不能正確執行
38.對於條件表達式(M)?(a++):(a--),其中的表達式M等價於()(本題分值:1分)
【正確答案】C
A.M==0
B.M==1
C.M!=0
D.M!=1
39.下述程序段的輸出結果是()(本題分值:1分)
int x=10;
int7nbspy=x++;
printf(〃%d,%d〃,(x++,y),y++);
【正確答案】A
A.11,10
B.11,11
C.10,10
D.10,11
40.若有以下的定義:
int a[]={1,2,3,4,5,6,7,8,9,10},*p=a
則值為3的表達式是()(本題分值:1分)
【正確答案】A
A.p+=2,*(p++)
B.p+=2,*++p
C.p+=3,*p++
D.p+=2,++*p
41.假定所有變數均已正確說明,下列是程序段運行後x的值是()(本題分值:2分)
a=b=c=0;x=35;
if(!a) x--;
else if(b);
if(c) x=3;
else x=4;
【正確答案】B
A.34
B.4
C.35
D.3
42.在以下一組運算中,優先順序最高的運算符是()(本題分值:2分)
【正確答案】C
A.<=
B.=
C.%
D.&&
43.若有以下定義和語句:
int w[2][3],(*pw)[3];pw=w;
則對w數組元素的非法引用是()(本題分值:2分)
【正確答案】A
A.*(w[0]+2)
B.*(pw+1)[2]
C.pw[0][0]
D.*(pw[1]+2)
44.若有以下程序片段: char str[ ]=〃ab\n\012\\\\〃; printf(〃%d〃,strlen(str));
上面程序片段的輸出結果是()(本題分值:2分)
【正確答案】C
A.3
B.4
C.6
D.12
45.函數調用:strcat(strcpy(str1,str2),str3)的功能是()(本題分值:2分)
【正確答案】C
A.將串str1復制到串str2中後再連接到串str3之後
B.將串str1連接到串str2之後再復制到串str3之後
C.將串str2復制到串str1中後再將串str3連接到串str1之後
D.將串str2連接到串str1之後再將串str1復制到串str3中
46.以下對C語言函數的有關描述中,正確的是()(本題分值:2分)
【正確答案】A
A.在C中,調用函數時,只能把實參的值傳送給形參,形參的值不能傳送給實參
B.C函數既可以嵌套定義又可以遞歸調用
C.函數必須有返回值,否則不能使用函數
D.C程序中有調用關系的所有函數必須放在同一個源程序文件中
47.以下敘述中不正確的是()(本題分值:2分)
【正確答案】C
A.在C中,函數中的自動變數可以賦初值,每調用一次,賦一次初值
B.在C中,在調用函數時,實參和對應形參在類型上只需賦值兼容
C.在C中,外部變數的隱含類別是自動存儲類別
D.在C中,函數形參可以說明為register變數

48.設有以下定義或語句,則輸出的結果是(用small模式編譯,指針變數佔2個位元組)()(本題分值:2分)
struct date
{long *cat;
struct date *next;
double dog;
}too;
printf(〃%d〃,sizeof(too));
【正確答案】D
A.20
B.16
C.14
D.12
49.設有定義:struct sk
{int a;float b;}data,*p;
若有p=&data;,則對data中的a域的正確引用是()(本題分值:2分)
【正確答案】B
A.(*p).data.a
B.(*p).a
C.p->data.a
D.p.data.a
50.以下對枚舉類型名的定義中正確的是()(本題分值:2分)
【正確答案】B
A.enum a={one,two,three};
B.enum a{one=9,two=-1,three};
C.enum a={〃one〃,〃two〃,〃three〃};
D.enum a{〃one〃,〃two〃,〃three〃};
二、填空題(每空2分,共40分)請將答案分別寫在答題卡中序號【1】至【20】的橫線上,答在試卷上不得分。
1、與十進制數101等值的二進制數為。(本題分值:2分)
【正確答案】
【1】1100101
2、DOS命令分為內部命令與外部命令,XCOPY命令屬於命令。(本題分值:2分)
【正確答案】
【2】外部
3、設當前盤為A盤,當前系統提示符為「>」,在不改變當前盤的情況下,顯示C盤的當前目錄路徑,應使用命令。 (本題分值:2分)
【正確答案】
【3】CD C:
4、自動批處理文件名必須是。(本題分值:2分)
【正確答案】
【4】AUTOEXEC.BAT

5、設在當前盤當前目錄下有兩個文件W.TXT與P.TXT,現要將文件P.TXT連接到文件W.TXT的後面,若使用COPY命令,則完整的命令為。(本題分值:2分)
【正確答案】
【5】COPY W.TXT+P.TXT W.TXT
6、表示條件10<x<100或x<0的C語言表達式是。(本題分值:2分)
【正確答案】
【6】(x>10&& x<100)||x<0
或(10<x&&x<100)||x<0
或x<0 ||(x>10&&x<100)
或0>x ||(10<x&&x<100)
7、以下程序中,主函數調用了LineMax函數,實現在N行M列的二維數組中,找出每一行上的最籩怠G胩羈鍘?br> #define N 3
#define M 4
void LineMax(int x[N][M])
{ int i,j,p;
for(i=0;i<N;i++)
{p=0;
for(j=1;j<M;j++)
if(x[i][p]<x[i][j]) ;
printf(〃The max value in line is %d\n〃,);
}
}
main()
{ int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};
;
}
(本題分值:6分)
【正確答案】
【7】p=j
【8】x[i][p]
【9】LineMax(x)
8、以下程序的功能是:從鍵盤上輸入若干個學生的成績,統計計算出平均成績,並輸出低於平均分的學生成績,用輸入負數結束輸入。請填空。
main()
{float x[1000],sum=0.0,ave,a;
int n=0,i;
printf(〃Enter mark:\n〃);scanf(〃%f〃,&a);
while(a>= 0.0 && n<1000)
{sum+=;x[n]=;
n++; scanf(〃%f〃,&a);
}
ave= ;
printf(〃Output:\n〃);
printf(〃ave=%f\n〃,ave);
for(i=0;i<n;i++)
if() printf(〃%f\n〃,x[i]);
}
(本題分值:8分)
【正確答案】
【10】a
【11】a
【12】sum/n或sum/(float)n或sum/(double)n
【13】x[i]<ave或!(x[i]>=ave)或ave>x[i]
9、執行以下程序,輸入-10的結果是,輸入5的結果是,輸入10的結果是,輸入30的結果是。
(本題分值:8分)
【正確答案】
【14】0
【15】5
【16】10
【17】5
10、以下程序的功能是。
main()
{int num[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};
int sum=0,i;
for(i=0;i<10;i++)
if(num[i]>0)
sum=num[i]+sum;
printf(〃sum=%6d〃,sum);
}
(本題分值:2分)
【正確答案】
【18】計算數組num中大於零的數據之和
11、以下程序可以把從鍵盤上輸入十進制數(long型)以二到十六進制數的形式輸出,請填空。
#include
main()
{char
b[16]={′0′,′1′,′2′,′3′,′4′,′5′,′6′,′7′,′8′,′9′,′A′,′B′,′C′,′D′,′E′,′F′};
int c[64],d,i=0,base;
long n;
printf(〃Enter a number:\n〃); scanf(〃%1d〃,&n);
printf(〃Enter new base:\n〃); scanf(〃%1d〃,&base);
do
{c[i]=;
i++;
n=n/base;
}while(n!=0);
printf(〃The result is:\n〃);
for(--i;i>=0;--i)
{?d=c[i];
printf(〃%c〃,b);
}
}
(本題分值:4分)
【正確答案】
【19】n%base
【20】 [d]