編程機試題庫
『壹』 求c語言試題及答案!急啊!
c語言考試題(一)
一、 單項選擇題(每題2分,共20分)
1、以下選項中屬於C語言的數據類型是( )
A.復數型 B.邏輯型 C.集合型 D.雙精度型
2、一個C程序的執行是從( )
A.main()函數開始,直到main()函數結束 B.第一個函數開始,直到最後一個函數結束
C.第一個語句開始,直到最後一個語句結束 D.main()函數開始,直到最後一個函數結束
3、設有語句int a=3;則執行語句a+=a-=a*a;後,變數a的值是( )
A.3 B.0C.-12D.9
4、若有 char c[5]={'c','d','\0','e','\0'};則執行語句printf("%s",c);結果是( )。
A.cd\0e B.'c''d' C.cd D.cd e
5、已知:int a[2][3]={1,2,3,4,5,6}, (*p)[3]=a;則下列表達式不是4的是 ( )。
A.*(*p+3) B.*p+3 C.*(*(p+0)+3) D.a[0][3]
6、以下有宏替換不正確的敘述( ).
A.宏替換不佔用運行時間 B.宏名無類型
C.宏替換只是字元串替換 D.宏名必須用大寫字母表示
7、執行char str[10]=」Ch\nina」; strlen(str)的值是( )
A.5 B.6 C.7 D.9
8、下面程序的輸出結果是:( )
#define POWER(x) (x*x)
main()
{int i=4; printf("%d",POWER(i-2)); }
A. -9 B. -7 C. 5 D. -6
9、在定義int a[3][4][2];後,第10個元素是( )
A.a[2][1][2] B.a[1][0][1] C.a[2][0][1] D.a[2][2][1]
10、下面程序的輸出結果是:( )
typedef struct
{long x[2];<br>short y[4];<br>char z[8];<br>}MYTYPE;
MYTYPE a;
main()
{ printf("%d\n",sizeof(a));}
A. 2 B. 8 C. 14 D. 24
二、 填空題(每空1分,共11分)
1、字元串"A"在內存中佔用的位元組數為 。
2、C語言中的標識符只能由字母、下劃線和 組成。
3、若有定義語句「 int a=25,b=14,c=19;",以下語句的執行結果是
if(a++<=25&&b--<=2&&c++) printf("***a=%d,b=%d,c=%d\n",a,b,c);
else printf("###a=%d,b=%d,c=%d\n",a,b,c);
4、有如下定義a[]="B\172\\\'a%%";則執行語句printf("%d",strlen(a));的結果為 。
5、若有定義:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i; for(i=0;i<4;i++) p[i]=&a[i*3];則*(*(p+1)+2)的值為 ,*p[2]的值為 。若數組的首地址為2000,則p[1]指向的地址為 。
6、設a=2,b=3,x=3.5,y=2.5,則表達式(float)(a+b)/2+(int)x%(int)y 的結果是 。
7、設x、y都是int型變數,初值都為1,則執行表達式:--x&&y++後,y的值為 。
8、語句for(i=1;i==10;i++)continue;循環的次數是 。
9、以下程序輸出 。
main()
{enum em {em1=3,em2=1,em3};
char *aa[]={"AA","BB","CC","DD"}; printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);
}
三、 寫程序結果(每題5分,共35分)
1、#include
main()
{int x,y,z;<br>x=1,y=2,z=3; x+=y+=z;<br>printf("1:%d\n",z+=x>y?x++:y++);<br>x=0x02ff;y=0xff00;<br>printf("2:%d\n",(x&y)>>4|0x005f);<br>x=y=z=-1; ++x||++y&&++z;<br>printf("3:%d,%d,%d\n",x,y,z);<br>}
2、#define f(x) x*x
main()
{int a=6,b=2,c;<br>c=f(a+b)/f(b);<br>printf(「%d\n」,c);<br>}
3、fun(int k)
{ printf("%d",k);
if(k>0)
fun(k-1);
}
main( )
{ int w=5; fun(w); printf("\n"); }
4、#include
main()
{int x=1,y=0;<br>switch(x)<br>{ case 1:<br>switch(y)<br>{ case 0:printf(「first\n」);break;<br>case 1:printf(「second\n」);break;<br>}
case 2:printf(「third\n」);
}
}
5、#include
main()
{ int k=4;
func(k); func(k);
}
func(int a)
{ static int m=0;
m+=a;
printf("%d",m);
}
6、struct st
{ int x;
int *y;
}*p;
int s[]={30,20};
struct st a[]={1,&s[0],2,&s[1]};
main()
{ p=a; printf("%d,",p->x);
printf("%d\n",++(*(++p)->y));
}
7、假定在當前盤目錄下有2個文本文件,其名稱和內容如下:
文件名: a1.txt a2.txt
內容: ABCDEF# abcdef#
#include "stdio.h"
main()
{FILE *fp;<br>void fc();<br>if((fp=fopen("a1.txt","r"))==NULL)<br>{printf("Can not open file!\n"); exit(1);}
else{fc(fp);fclose(fp);}
if((fp=fopen("a2.txt","r"))==NULL)
{printf("Can not open file!\n"); exit(1);}
else{fc(fp);fclose(fp);}
}
void fc(fp1)
FILE *fp1;
{char c;<br>while((c=fgetc(fp1))!='#')putchar(c);<br>}
四、 程序填空(每空2分,共14分)
1、下面程序求矩陣a的主對角線元素之和,請填空。
main()
{ int a[3][3]={2,4,6,8,10,12,14,16,18};
int sum=0,i,j;
for(i=0;i<3; ① )
for(j=0; ② ;j++)
if(i= =j) sum=sum+ ③ ;
printf("sum=%d\n",sum);
}
2、下列函數coy把字元數組S2中的全部字元復制到字元數組S1中, 復制時』\0』也要復制過去,』\0』後面的字元不用。
coy(char s1[],char s2[])
{ int i;
for(i=0;s2[i]!= ① ;i++)
s1[i]=s2[i];
② ;
}
3、下面程序的功能是將字元串a中的下標為奇數的元素由小到大排序,其他元素不變,請填空。
main()
{ char a[]="students",t; int i,j;
for(i=1;i<7;i+=2)
for(j=i+2;j<8; ① )
if( ② )
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
}
c語言考試題(二)
一. 填空題(每題2分,共20分)
1. C語言基本數據類型有:_______________________________;
構造類型有:_____________________________________。 P.13
2. C語言源程序注注釋符號是:________________________________,
為表明層次結構,C語言源程序通常採用_____________________格式編寫。P.4
3. 源程序TEST.C經編譯產生的目標文件是:________________________;
經連接處理後,產生的可執行文件是:__________________________。
4. strlen(「1234 \ 0xy)的值為:_____________________________;
sizeof(float)的值為:____________________________
5. 二維數組a[10] [50]最後一行的首地址為:_________________________;
最後一個元素的首地址為:____________________________________。
6. C標准庫函數中,數學函數的原型在:________________頭文件中,自定義頭文件D :\ MYC \ MY . H應如何包含到源程序文件中:_________________________。P.130
7. 已知函數定義為:int stat(inta,float *p)
{……………}
則此函數的兩個參數類型分別是_______________ 、 _____________________。
8. 設int x,y,z=4;
x=y=++z;
x=(y>z)?x+2;x++;則x的值是:_________;
設int a=0,b=0,c=0;c=++a | | b++; ,則a、b、c值分別是:_____________。
9. 與if (x=0) 等價的寫法是if ( ! x );
判斷兩個(float)變數x,z是否相等一般:if ( fabc(x-z)<1e-6 )。
10.已知賦值語句zhang.year=1985;可判斷zhang是_______________類型的變數;
定義文件指針的C語句是:_________________________________。
二. 單項選擇題 (每題1分,共10分)
1. 組成C程序的基本單位是____________________________。
A.函數 B.標識符 C.表達式 D.語句
2. 設int類型的數據長度為2位元組,則該類型數據的取值范圍是__________________。
A.0至65536 B.0至65535
C.-32767至32768 D.-32768至32767
3. 在C語言中,邏輯值「真」是用_____________________表示的。
A.預定義為真值的宏 B.非零數
C.正數 D.非零整數
4. C語言對於嵌套if語句規定else總是與_____________________匹配。
A.與最外層的if B.與之前最近的if
C.與之前最近的不帶else的if D.與最近的{ }之前的if
5. 數組定義char a[10]={`a`,`b`,`c`}:包括了幾個元素____________________。
A.3 B.9 C.4 D.10
6. 數組名作為實參傳給被調用的函數時,形參獲得的是_____________________。
A.該數組第一個元素的值 B.該數組所有元素的值
C.該數組第一個元素的首地址 D.該數組所有元素的首地址
7. 為表示關系x ≥ y ≥z,正確的C語言表達式為_________________________。
A.(x>=>y>=z) B.(x>=y)AND(y>=z)
C.(x>=y)&&(y>=z) D.(x>y)&(y>=z)
8. 根據定義int a[ ]={1,2,3},i,*p=a; 從語法分析_________________是不正確的。
A. a[p-a] B.*(&a) C.p D.*(*(a+i))
9. 若有語句scanf(「%d%d」,&a,&b);要使變數a,b分別得到12和34;正確的輸入形式為____________________________。
A.12 34 B.12,34 C.1234 D.12:34
10.union uex {int i;float f;char c;}ex;則sizeof(ex)的值是____________________。
A.4 B.5 C.6 D.7
三. 分析程序,寫出運行結果。(每題4分,共20分)
1. 源程序如下,運行時假定鍵盤輸入字元串為``2004``
#include
void main(void)
{
int n=0;
char c;
while( (c=getchar( )) ! =`\n` ) /*字元型數字*/
{
if (c>=`0`&&c<=`9` )
n = n*10 + c- `0` ; /*數字*/
}
printf(「value=%d|n」 ,n);
}
結果為: value=2004 。
2. 源程序如下:
#include
void main(void)
{
int num[9]={399,398,397,396,395,299,290,311,301};
int score[9]={81,85,59,77,90,66,89,93,73};
int iMax,iPos,i;
iPos=0;
iMax=score[iPos];
for(i=1;i<9;i++)
if(score>iMax)
{
iPos=i;
iMax=score[iPox];
}
printf(「num=%d,score=%d」,num[iPos];score[iPos]);
結果為: num=311, score=93 。
3. 源程序如下,運行時假定鍵盤輸入數據為:1 2 3 4 5 6 7 8 9 10
#include
void main(void)
{
int i,a[10];
int *p;
p=a;
for(i=0;i<10;i++)
scanf(「%d「,p++);
for(p=a;p< SPAN>;p++)
if (*p%2)printf(「%3d」,*p);
}
結果為: 1 3 5 7 9 。
4. 源程序如下,兩次運行,分別輸入數據13和21
#include
#include
void main(void)
{
int n,s;
scant (「%d」,&n);
s=panan( n);
if(s==1)printf(「yes\n」);
else printf(「no\n);
}
int panan(int n)
{
int k,j;
k=(int)sqrt((double)n);
for(j=2;j<=k,j++)
{
if(n%j==0) break;
}
if(j>k) retum(1);
else retum(0);
}
結果為 yes
no
5.源程序如下,運行時假定鍵盤輸入字元為:AxByCz
#include
#include
void main(void)
{
char str[80];
int i;
gets(str);
for(i=0;str!=`\0`;i++)
if(str>=`a`&&str<=`z`) str-=32;
else if (str>=`A`&&str<=`Z`) str+=32;
puts(str);
}
結果為: aXbYcZ 。
四. 下列程序中每個劃線處有一個錯誤,改正劃線 中的錯誤,使其實現題目要求。(每體4分,共20分)
1. 求 s=1+2+3+、、、、、、、+100
include 改正為_________________________。
void sum (void) 改正為_________________________。
{
int s,i;
for (s=0,i=1;i<=100;i++)
{
s=s+ i ++; 改正為__________________________。
}
printf (「s=%f」,s) 改正為__________________________。
}
2. 源程序實現求x
#include
double pow(float . int) 改正為_________________________。
void main(void)
{
int i, n;
float x;
scanf (「%f,%d」,&x,&n);
for (i=1; i<9;i++)
printf(「%d,%e\n」, i, pow(i,x);
} 改正為______________________。
double v v pow(float x, int n)
{
int i;
double p=0; 改正為______________________。
for (i=1; i< i++)>改正為_______________________。
p*=x;
retum(p);
}
3. 源程序實現排升序。
#include
void main(void)
{
int i, j, iMin, a[10]={4,3,5,1,10,12,2,6,7,9}, iTemp;
for (i=0; i<9; i++)
{
iMin=0; 改正為_______________________。
for (j=i+1; j<10;j++)
if(a[iMin]< iMin="j;">改正為_______________________。
if (iMin==i) 改正為_________________________。
{ iTemp=a;
a[iMin]=a; 改正為_________________________。
a[iMin]=iTemp;
}
}
for(i=0; i<10; i++)
printf(「%4d」, a):
}
4. 源程序為求平均值。
#include
void main(void)
{
int i, sum; 改正為____________________。
float avg;
int sc[10], *p=sc;
for (i=0, i<10; i++) 改正為____________________。
{
scanf(「%d」, p++);
sum+= *p; 改正為____________________。
}
avg = sum/ 10; 改正為___________________。
printf(「avg=%f」, avg);
}
5. 源程序求 eX=1+x+x2/2!+……+xn/n!前n+1項之和
#include
void main(void>
{
float exp , x , t;
int i, n;
scanf(「%f, %d」,&x, &n);
t=0; 改正為___________________。
exp=1.0;
for(i=1 ; i<=n; i++)
{
if(t<1e-6) loop; 改正為__________________。
t+=x/i; 改正為___________________。
exp*=t; 改正為___________________。
}
printf(「\n%15.6f」, exp);
}
五. 編程題 (每題6分,共30分)
1. 根據以下程序框架,編寫子函數,實現交換兩個整型變數x和y的值。
#include
void swap (int *, int *);
void main (void)
{
int x, y;
scanf(「%d, %d」, &x, &y);
swap( &x, &y);
printf(「%d, %d」, x, y);
}
void swap( )
{
}
2. 設某班人數36人,參加C語言考試,用一維數組score[36]存放考試成績,已給出一部分程序,完善以下程序,使其實現統計並輸出不及格人數及百分比。
#include
void main (void)
{ int i;
float scoer[36], precent;
int count=0;
for (i=0; i<36; i++)
{
scanf(「%f」, &score);
}
3. 完善以下程序使其實現由鍵盤任意輸入一串字元,統計其中大寫字母個數iA、小寫字母個數ia、其他字元個數iother。
#include
#include
void main (void)
{
char str [80];
int i, iA=0, ia=0, iother=0;
}
4. 完善以下程序使其實現求方陣主和輔對角線元素之和及其轉置矩陣,設方陣用二維數組a表示,轉置矩陣用t表示,sl和s2表示主和輔對角線元素之和。
#include
void main(void)
{
int a[3] [3]={1,3,5,7,9,11,13,15,11};
int i, j, s1, s2;
int t[3] [3];
printf(「%d, %d,\n」,s1, s2);
for(i=0; i<3; i++)
for(j=0; j<3; j++)
printf(「%3d」, t [j]);
}
5. 已知字元數組str[80],編寫返回指針的子函數,實現在其中查找字元ch首次出現的位置。
#include
#include
#include
char *lstrchar(char*, char);
void main(void)
{
char c, *p, str[80];
gets (str);
scanf(「%c」, &c);
p=lstrchar(str,c);
if(p==NULL) printf(「char %c not found\n」c);
else printf(「The position is %d」, p-str);
char 「lstrchar( )
{ }
歷年全國計算機二級考試c語言真題及答案
http://jsj.lsxy.com/UploadFiles/20064222324839.rar
『貳』 (特急)《java程序設計》理論題庫—判斷題(要准確答案)
異常的拋出,就是將異常拋給異常處理器,暫時不去處理它。
摘要:《Java程序員面試指南》第7章異常處理及內存管理,本章講述的是要想成功地成為一名合格的Java程序員,掌握好異常處理機制是編寫大型程序必不可少的基本功。本節為大家介紹異常的處理方式之三:throw。
標簽:throw Java 程序員 Java程序員面試指南
Oracle幫您准確洞察各個物流環節
7.4 異常的處理方式之三:throw(1)
異常的拋出,就是將異常拋給異常處理器,暫時不去處理它。本節主要講解用throw拋出異常的方式,以及如何由try-catch來接收所拋出的異常。
當一個方法發生異常時可以通過throw關鍵字來拋出異常,把異常拋給它上一級的調用者,拋出的可以是異常引用,也可以是異常對象,它的語法格式如下:
throw 異常對象名; 或者
throw new 異常類名(); 一條throw語句一旦被執行,程序立即轉入相應的異常處理程序段,它後面的語句就不再執行了(這一點類似於return語句),而且它所在的方法也不再返回有意義的值。在一個方法中,throw語句可以有多條,但每一次最多隻能執行其中的一條。在一般情況下,throw語句都會寫在判斷語句塊中,以避免每次都執行該語句。
【代碼剖析】下面來看一個例子,也許從中你會明白點什麼。具體代碼如下:
public class catchThows { static int x; public static void main(String argv[]) { double a = Math.random() * 10; if (x > 0) System.out.println(a / x); else throw new Exception(); // 拋出異常 } public void setX(int x) { this.x = x; } } 運行結果如圖7.1所示。
(點擊查看大圖)圖7.1 運行結果
從上面的運行結果中可以看出,一個方法中如果使用throw來拋出異常,要麼自己捕獲它,要麼聲明拋出了一個異常。要聲明拋出了異常,需要用throws關鍵字在方法的頭部聲明。如果我們將上面的代碼修改成下面的代碼,那麼結果又會怎樣呢?
public class catchThows_1 { static int x; public static void main(String argv[]) { new catchThows().setX(0); double a = Math.random() * 10; if (x > 0) System.out.println(a / x); else try { throw new Exception();// 拋出異常 } catch (Exception e) { System.out.println("出現異常的原因是:"+e.getMessage()); } } public void setX(int x) { this.x = x; } } 運行結果如下:
出現異常的原因是:null 還有一種拋出異常的方法是讓被調用的方法表示它將不處理異常,該異常將被拋出到它的調用方法中。這點是和throws聲明異常很相似的,但它們的位置是完全不同的。具體代碼如下:
public class catchThows_2 { void findThows() { try { //拋出方法 throw new ArithmeticException(); } catch(ArithmeticException ae) { throw ae; } } public static void main(String args[]) { catchThows ct=new catchThows(); //對方法進行異常處理 try { ct.findThows(); } catch(ArithmeticException ae) { System.out.println("出現異常的原因是:"+ae); } } } 運行結果如下:
出現異常的原因是:java.lang.ArithmeticException
【責任編輯:雲霞 TEL:(010)68476606】
回書目 上一節 下一節
上一篇: 7.3 異常的處理方式之二:throws(2) 下一篇: 7.4 異常的處理方式之三:throw(2)
相關文章
·7.5 內存的管理(2)
·7.4 異常的處理方式之三:throw(2)
·17.3 Java高級編程試題(1)
·17.1 Java基礎編程試題(6)
·17.1 Java基礎編程試題(5)
頻道熱門
·自己動手寫搜索引擎
·1.1.2 編寫代碼(15分鍾)
·1.1.1 准備工作環境(10分鍾)
·軟體調試的藝術
·WCF編程(第2版)
『叄』 java編程的作業試題大家幫我解答一下,謝謝了,一共兩個題,在下面,請大家一定要幫我解答一下,我不會做
import java.util.Scanner;
public class DemoTest {
/**1、運輸公司對用戶計算運費.路程越遠每公里運費越低.每公里每噸貨物的基本運費為p,貨物重為w,距離為s,折扣為d,則總運費f的計算公式為
f=p*w*s*(1-d) ;
輸入基本運費,貨重和距離,算出運費
s<250km 沒有折扣
250<= s <500 2%折扣
500<= s <1000 5%折扣
1000<= s <2000 8%折派豎轎扣
2000<= s 10%折扣
* */
public static double getMoney(int p,int w,int s) {
if (s<250) {
return p*w*s*(1-0);
}
else if (s>=250&& s<500) {
return p*w*s*(1-0.02);
}
else if (s>=500&& s<1000) {
return p*w*s*(1-0.05);
}
else if (s>=1000&& s<2000) {
return p*w*s*(1-0.08);
}
else {
return p*w*s*(1-0.1);
}
}
/**
* 2、編一個程序輸入一個x後,輸出y,規則為
如果x小於0 那麼y為-1
如果x等於0 那麼y為0
如果x大於0 那麼y為1
* */
public static void print(int x) {
int y;
if (x<0) {
y=-1;
System.out.println(y);
}
else if (x==0) {
y=0;
System.out.println(y);
}
else {
y=1;
System.out.println(y);
}
}
/**3、實現ATM機登錄。
要求用戶輸入卡號,輸入密碼,如果三次之內,允許用戶重新輸入,三次以上,纖遲就顯示吞卡。
* */
public static void inspect() {
Scanner sc=new Scanner(System.in);
int password;
System.out.println("請輸入密碼");
password=sc.nextInt();
int count=2;
while (count>0) {
System.out.println("輸入密碼錯誤,你還有"+(count--)+"次輸入機會,請重新輸入:");
password=sc.nextInt();
}
sc.close();
System.out.println("你的密碼連續三次輸入錯誤,卡已被吞!");
}
/**4、輸入一個整數(位數不定),將每一位輸出。
如:2567
顯示:
7
6
5
2
* */
public static void showNumber(int x) {
String str=x+"";
int num;
for (int y=0;y<str.length();y++){
num =(int)(x/Math.pow(10,y)%10);
System.out.println(num);
}
}
/**5、猜數游戲:
隨機產生60~100隨機數,要求用戶不斷的猜。如果用戶猜的數比隨機產生的數更大,提示「大了」,如果用
戶猜的數比隨機產生的數更小,提示「小了」。直到猜對為止。如果在5次之內猜中,顯示「天才」。否則顯
示「笨蛋」
* */
public void guess() {
int getRandom=(int)(Math.random()*100+1);
int x=0;
while(getRandom<60){
getRandom=(int)(Math.random()*100+1);
x=getRandom;
}
Scanner sc=new Scanner(System.in);
System.out.println("請輸入塵肆數字");
while (true) {
int num=sc.nextInt();
if (num>x) {
System.out.println("大了");
}
else if (num<x) {
System.out.println("小了");
}
else {
System.out.println("天才");
break;
}
}
}
/**列印序列:1,2,3,5,8,13...。
* */
public static void method() {
int [] arr=new int[6];
arr[0]=1;
arr[2]=2;
System.out.print("1,");
System.out.print("2,");
for (int x=2;x<arr.length;x++) {
arr[x]=arr[x-1]+arr[x-2];
System.out.print(arr[x]+",");
}
}
public static void main(String []args) {
System.out.println(getMoney( 200,30, 1400));
print(2);
inspect();
showNumber(431132);
new DemoTest().guess();
method();
}
}
『肆』 急。。。。跪求2011年c語言機試最新題庫,小弟我考了3次了,有的煩發到[email protected]謝了!
1.一個C程序的執行是從( A )。
A) 本程序的main函數開始,到main函數結束
B) 本程序文件的第一個函數開始,到本程序文件的最後一個函數結束
C) 本程序的main函數開始,到本程序文件的最後一個函數結束
D) 本程序文件的第一個函亮臘數開始,到本程序的main函數結束
2.以下敘述正確的是( C )。
A) 在C程序中,main函數必須位於程序的最前面
B) C程序的每行中只能寫一條語句
C) C語言本身沒有輸入輸出語句
D) 在對一個C程序進行編譯的過程中,可發現注釋中的拼寫錯誤
3.以下敘述不正確的是( D )。
A) 一個C源程序可由一個或多個函數組成
B) 一個C源程序必須包含一個main函數
C) C程序的基本組成單位是函數
D) 在C程序中,注釋說明只能位於一條語句的後面
4.C語言規定,在一個源程序中,main函數的位置( C )。
A) 必須在最開始 B) 必須在系統調用的庫函數的後面
C) 可以任意 D) 必須在最後
5.一個C語言源程序是由( B )。
A) 一個主程序和若乾子程序組成 B) 函數組成
C) 若干過程組成 D) 若乾子程序組成
二 填空題
1.C源程序的基本單位是 函數 。
2.一個C源程序中至少應包括一個 main函數 。
3.在一個C源程序中,注釋部分兩側的分界符分別為 /* 和 */ 。
4.一個函數是由兩部分組成的,它們分別是 函數名 和 函數體 。
5.在C語言中,一個函數的函數體一般包括 聲明部分 和 執行部分 。
第三章 數據類型、運算符與表達式
一 單項選擇題
1.下面四個選項中,均不是c語言關鍵字的選項是( A )。
A) define IF Type B) getc char printf
C) include scanf case D) while go pow
2.C語言中的標識符只能由字母、數字和下劃線三種字元乎昌組成,且第一個字元( C )。
A) 必須為字母 B) 必須為下劃線
C) 必須為字母或下劃線 D) 可以是字母、數字和下劃線中任一種字元
3.下列四個選項中,均是C語言關鍵字的選項是( B )。
A) auto enum include B) switch typedef continue
C) signed union scanf D) if struct type
4.下面四個選項中,均是不合法的用戶標識符的選項是( C )。
A) A P_0 do B) float la0 _A
C) b-a goto int D) _123 temp int
5.以下有4組用戶標識符,其中合法的一組是( C )。
A) For -sub Case B) 4d DO Size
C) f2_G3 IF abc D) WORD void define
二 填空題
1.若x和a均是int型變數,則計算表達式(1)後的x值為 12 ,計算表達式(2)後的x值為 4 。
(1) x=(a=4, 6*2)
(2) x=a=4, 6*2
2.若a是int型變數歲鍵扒,則表達式(a=4*5, a*2), a+6的值為 26 。
3.若b是int型變數,則表達式b=25/3%3的值為 2 。
4.若s是int型變數,且s=6 則下面表達式s%2+(s+1)%2的值為 1 。
5.若a,b和c均是int型變數,則計算表達式a=(b=4)+(c=2)後,a值為 6 ,b值為 4 ,c值為 2 。
6.若x和n均是int型變數,且x和n的初值均為5,則計算表達式x+=n++後x的值為 10 ,n的值為 6 。
7.若有定義:int b=7;float a=2.5,c=4.7;則表達式a+(int)(b/3*(int)(a+c)/2)%4的值為 4.5 。
8.若有定義:int a=2,b=3;float x=3.5,y=2.5;則表達式(float)(a+b)/2+(int)x%(int)y的值為 3.5 。
9.若有定義:int x=3,y=2;float a=2.5,b=3.5;則表達式(x+y)%2+(int)a/(int)b的值為 1 。
10.若x和n均是整型變數,且x的初值為12,n的初值為5,則計算表達式x%=(n%=2)後x的值為 0 。
第四章 最簡單的C程序設計——順序程序設計
一 單項選擇題 1~5 BDDAB
1.printf函數中用到格式符%5s,其中數字5表示輸出的字元串佔用5列,如果字元串長度大於5,則輸出按方式( B )。
A) 從左起輸出該字元串,右補空格
B) 按原字元長從左向右全部輸出
C) 右對齊輸出該字串,左補空格
D) 輸出錯誤信息
2.已有定義int a= -2; 和輸出語句 printf(「%8x」,a); 以下正確的敘述是( D )。
A) 整型變數的輸出形式只有%d一種
B) %x是格式符的一種,它可以適用於任何一種類型的數據
C) %x是格式符的一種,其變數的值按十六進制輸出,但%8x是錯誤的
D) %8x不是錯誤的格式符,其中數字8規定了輸出欄位的寬度
3.若x, y均定義成int型,z定義為double型,以下不合法的scanf函數調用語句是
( D )。
A) scanf(「%d %x, %le」, &x, &y, &z);
B) scanf(「%2d *%d, %lf」, &x, &y, &z);
C) scanf(「%x %*d %o」, &x, &y);
D) scanf(「%x %o%6.2f」, &x, &y, &z);
4.以下程序的輸出結果是( D )。
main( )
{ int k=17;
printf("%d,%o,%x\n",k,k,k);
}
A)17,021,0x11 B)17,17,17
B)17,0x11,021 D)17,21,11
5.下列程序的運行結果是( B )。
#include <stdio.h>
main()
{ int a=2,c=5;
printf("a=%d,b=%d\n",a,c);
}
A) a=%2,b=%5 B) a=2,b=5
C) a=d,b=d D) a=2,c=5
二 填空題
1.下面程序的運行結果是 i:dec=4,oct=4,hex=4,unsigned=65531 。
main()
{
short i;
i= -4;
printf(「\ni: dec=%d, oct=%o, hex=%x, unsigned=%u\n」, i, i, i, i);
}
2.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數據的形式應該是 5.0,4,c=3 。
int b,c; float a;
scanf("%f,%d,c=%d",&a,&b,&c);
3.下列程序的輸出結果是16.00,請填空。
main()
{ int a=9, b=2;
float x= 6.6 , y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n", z );
}
4.在printf格式字元中,只能輸出一個字元的格式字元是 c ;用於輸出字元串的格式字元是 s ;以小數形式輸出實數的格式字元是 f ;以標准指數形式輸出實數的格式字元是 e 。
三 編程題
1. 若a=3, b=4, c=5, x=1.2, y=2.4, z= -3.6, u=51274, n=128765, c1=』a』, c2=』b』。想得到以下的輸出格式和結果,請寫出完整的程序(包括定義變數類型和設計輸出)。
要求輸出的結果如下:
a= <空格>3 <空格><空格> b= <空格> 4<空格><空格> c= <空格>5
x=1.200000, y=2.400000, z= -3.600000
x+y=<空格>3.60<空格><空格> y+z = -1.20<空格><空格>z+x= -2.40
u=<空格>51274<空格><空格>n=<空格><空格><空格>128756
c1= a <空格>or<空格>97(ASCII)
c2= B <空格>or<空格>98(ASCII)
/*
void main()
{
int a, b, c;
unsigned u;
long int n;
float x, y, z;
char c1,c2;
a=3, b=4, c=5, x=1.2, y=2.4, z= -3.6, u=51274, n=128765, c1='a', c2='b';
printf("a=%2d b=%2d c=%2d\n", a, b, c);
printf("x=%f, y=%f, z=%+f\n");
printf("x+y=%5.2f y+z =%+5.2f z+x=%+5.2f\n", x+y, y+z, z+x);
printf("u=%6d n=%9d\n");
printf("c1=%c or %d(ASCII)\n", c1, c1);
printf("c2=%c or %d(ASCII)\n", c2-32, c2);
}
*/
2. 輸入一個華氏溫度,要求輸出攝氏溫度。公式為
輸出要有文字說明,取2位小數。
/*
void main()
{
float c, f;
printf("輸入一個華氏溫度:\n");
scanf("%f", &f);
c = 5.0/9.0*(f-32);
printf("\n輸入的華氏溫度 %.2f,攝氏溫度為: %.2f\n", f, c);
}
*/
3. 編程序,用getchar函數讀入兩個字元給c1、c2,然後分別用putchar函數和printf函數輸出這兩個字元。
/*
void main()
{
char c1, c2;
c1 = getchar();
c2 = getchar();
putchar(c1);
putchar(c2);
printf("\nc1 = %c; c2 = %c\n", c1, c2);
}
*/
第五章 選擇結構程序設計
一 單項選擇題
1.邏輯運算符兩側運算對象的數據類型是( D )。
A) 只能是0或1
B) 只能是0或非0正數
C) 只能是整型或字元型數據
D) 可以是任何類型的數據
2.已知x=43, ch='A', y=0;則表達式(x>=y&&ch<'B'&&!y)的值是( C )。
A) 0 B) 語法錯 C) 1 D) 「假」
3.已知 int x=10, y=20, z=30; 以下語句執行後x, y, z的值是( B )。
if(x>y)
z=x;x=y;y=z;
A) x=10,y=20,z=30 B) x=20,y=30,z=30
C) x=20,y=30,z=10 D) x=20,y=30,z=20
4.執行下列語句後a的值為( 2 ),b的值為( 1 )。( C )
int a, b, c;
a=b=c=1;
++a|| ++b && ++c;
A) 錯誤 1 B) 2 2 C) 2 1 D) 1 1
5.若希望當A的值為奇數時,表達式的值為「真」,A的值為偶數時,表達式的值為「假」,則以下不能滿足要求的表達式是( C )。
A) A%2==1 B) !(A%2==0) C) !(A%2) D) A%2
二 填空題
1.若從鍵盤輸入58,則以下程序輸出的結果是 585858 。
main()
{ int a;
scanf(「%d」,&a);
if(a>50) printf(「%d」,a);
if(a>40) printf(「%d」,a);
if(a>30) printf(「%d」,a);
}
2.下面程序的運行結果是 -1 。
main()
{
int a=2, b=3, c;
c=a;
if(a>b) c=1;
else if(a==b) c=0;
else c=-1;
printf(「%d\n」,c);
}
3.以下程序實現:輸入三個整數,按從大到小的順序進行輸出。請填空。
main()
{
int x, y, z, c;
scanf(「%d %d %d」, &x, &y, &z);
if( x<y )
if( x<z )
if( y<z )
printf(「 %d %d %d」, x, y, z);
}
4.如果運行時輸入字元Q,則下面程序的運行結果是 Q 。
main()
{
char ch;
scanf(「%c」, &ch);
ch=(ch>=『A』&& ch<=『Z』)? (ch+32):ch;
ch=(ch>=『a』&& ch<=『z』)? (ch-32):ch;
printf(「%c」, ch);
}
5.若x為int類型,請以最簡單的形式寫出與邏輯表達式!x等價的C語言關系表達式 x==0 。
第六章 循環控制
一 單項選擇題
1.下面程序段的運行結果是( C )。
int n=0;
while(n++<=2);
printf(「%d」,n);
A) 2 B) 3 C) 4 D) 有語法錯
2.設有程序段:
t=0;
while(printf(「*」))
{t++;
if(t<3) break;
}
下面描述正確的是( D )。
A) 其中循環控製表達式與0等價
B) 其中循環控製表達式與'0'等價
C) 其中循環控製表達式是不合法的
D) 以上說法都不對
3.下面程序的功能是將從鍵盤輸入的一對數,由小到大排序輸出,當輸入一對相等數時結束循環,請選擇填空( B )。
#include <stdio.h>
main()
{int a,b,t;
scanf(「%d%d」,&a,&b);
while( ___________ )
{if(a>b)
printf(「%d,%d\n」,a,b);
scanf("%d%d",&a,&b);
}
}
A) !a=b B) a!=b C) a==b D) a=b
4.C語言中,while和do-while循環的主要區別是( A )。
A) do-while的循環體至少無條件執行一次
B) while的循環控制條件比do-while的循環控制條件更嚴格
C) do-while允許從外部轉到循環體內
D) do-while的循環體不能是復合語句
5.對以下程序段描述正確的是( C )。
x=-1;
do
while(!x);
A) 是死循環 B) 循環執行二次
C) 循環執行一次 D) 有語法錯誤
二 填空題
1.以下程序運行後的輸出結果是 52 。
main()
{ int i=10, j=0;
do
while(i>2);
printf("%d\n",j);
}
2.設有以下程序:
main()
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序運行後,如果從鍵盤上輸入1298,則輸出結果為 8921 。
3.若輸入字母b,程序輸出結果為 b, B ;若輸入字元*,程序將怎樣 等待重新輸入 。
#include<stdio.h>
main()
{char c1, c2;
c1=getchar();
while(c1<97||c1>122)
c1=getchar();
c2=c1-32;
printf("%c, %c\n",c1, c2);
}
4.用以下程序計算1到100的整數的累加和。
main()
{ int i=1, sum= 0 ;
for( ; i<=100 ; )
{sum+=i;
i++;
}
printf("sum=%d\n", sum );
}
5.以下程序的功能是:從鍵盤上輸入若干個學生的成績,統計並輸出最高成績和最低成績,當輸入負數時結束。請填空。
main()
{ float x, amax, amin;
scanf(「%f」,&x);
amax=x;
amin=x;
while( x>=0 )
{if(x>amax) amax=x;
if( x<amin ) amin=x;
scanf(「%f」,&x);
}
printf("amax=%f\namin=%f\n",amax, amin);
}
『伍』 數控編程試題及答案
數控綜合試題庫
一填空題
1.數控系統的發展方向將緊緊圍繞著 性能 、 價格 和 可靠性 三大因素進行。
2.加工中心按主軸在空間所處的狀態可以分為 立式 、 卧式 和 復合式 。
3.數控機床的導軌主要有 滑動 、 滾動 、 靜壓 三種。
4.數控機床的類別大致有 開環 、 閉環 、 半閉環 。
5.按車床主軸位置分為 立式 和 卧式 。
6.世界上第一台數控機床是 1952 年 PARSONS公司 與 麻省理工學院 合作研究的 三 坐標 數控銑 床。
7.數控電加工機床主要類型有 點火花成型 和 線切割機床 。
8.銑削各種允許條件下,應盡量選擇直徑較 大 的銑刀,盡量選擇刀刃較 短 的銑刀。
9.合適加工中心的零件形狀有 平面 、 曲面 、 孔 、 槽等 。
10.數控加工程序的定義是按規定格式描述零件 幾何形狀 和 加工工藝 的數控指令集。
11.常用夾具類型有 通用 、 專用 、 組合 。
13.基點是構成輪廓的不同幾何素線的 交點 或 切點 。
14.加工程序單主要由 程序體 和 注釋 兩大部分構成。
15.自動編程又稱為 計算機輔助編程 。其定義是:利用計算機和相應的 前置 、 後置 處理程序對零件進行處理,以得到加工程序單和數控穿孔的一種編程方法。
16.按銑刀形狀分有 盤銑刀 、 圓柱銑刀 、 成形銑刀 、 鼓形刀銑
17.按走絲快慢,數控線切割機床可以分為 快走絲 和 慢走絲 。
18.數控機床實現插補運算較為成熟並得到廣泛應用的是 直線 插補和 圓弧 插補。
18.穿孔帶是數控機床的一種控制介質,國際上通用標準是 ISO 和 EIA 兩種,我國採用的標準是ISO。
19.自動編程根據編程信息的輸入與計算機對信息的處理方式不同,分為以 自動編程語言 為基礎的自動編程方法和以 計算機繪圖語言 為基礎的自動編程方法。
20.數控機床按控制運動軌跡可分為 點位控制 、 直線控制 和 輪廓控制 等幾種。按控制方式又可分為 開環 、 閉環 和半閉環控制等
21.對刀點既是程序的 起點 ,也是程序的 終點 。為了提高零件的加工精度,對刀點應盡量選在零件的 設計 基準或工藝基準上。
22.在數控加工中,刀具刀位點相對於工件運動的軌跡稱為 加工 路線。
23.在輪廓控制中,為了保證一定的精度和編程方便,通常需要有刀具 長度 和 半徑 補償功能。
24.編程時的數值計算,主要是計算零件的 基點 和節點 的坐標或刀具中心軌跡的 節點 和 結點 的坐標。直線段和圓弧段的交點和切點是 基點 ,逼近直線段和圓弧小段輪廓曲線的交點和切點是 節點 。
25.切削用量三要素是指主軸轉速(切削速度)、切削深度 、 進給量 。對於不同的加工方法,需要不同的 切削用量 ,並應編入程序單內。
26.端銑刀的主要幾何角度包括前角、後角、刃傾角 、主偏角、和副偏角。
27.工件上用於定位的表面是確定工件位置的依據,稱為定位基準 。
28.切削用量中對切削溫度影響最大的 切削速度 ,其次是 進給量,而 切削深度 影響最小。
29.為了降低切削溫度,目前採用的主要方法是切削時沖注切削液。切削液的作用包括冷卻、
潤滑、防銹 和清洗作用。
30.在加工過程中,定位基準的主要作用是保證加工表面之間的相互位置精度。
31.銑削過程中所用的切削用量稱為銑削用量,銑削用量包括銑削寬度、銑削深度、銑削速度、進給量。
32.鑽孔使用冷卻潤滑時,必須在鑽鋒吃入金屬後,再開始澆注。
33.銑刀的分類方法很多,若按銑刀的結構分類,可分為整體銑刀、鑲齒銑刀和機夾式銑刀。
34.切削液的種類很多,按其性質可分為3大類:水溶液、乳化液 、切削油。
35.按劃線鑽孔時,為防止鑽孔位置超差,應把鑽頭橫刃磨短 ,使其定心良好或者在孔中心先鑽一定位小孔。
36.當金屬切削刀具的刃傾角為負值時,刀尖位於主刀刃的最高點,切屑排出時流向工件待加工 表面。
37.切削加工時,工件材料抵抗刀具切削所產生的阻力稱為切削力 。
38.切削塑性材料時,切削層的金屬往往要經過擠壓、滑移、擠裂、和切離 4個階段。
39.工件材料的強度和硬度較低時,前角可以選得大 些;強度和硬度較高時,前角選得小 些。
40.常用的刀具材料有碳素工具鋼、合金工具鋼、高速鋼、硬質合金4種。
41.影響刀具壽命的主要因素有:工件材料、刀具材料、刀具幾何參數、切削用量 。
42.斜楔、螺旋、凸輪等機械夾緊機構的夾緊原理是利用機械摩擦的自鎖來夾緊工件 。
43.一般機床夾具主要由定位元件、夾緊元件 、對刀元件、夾具體 4個部分組成。根據需要夾具還可以含有其他組成部分,如分度裝置、傳動裝置等。
44.採用布置恰當的6個支承點來消除工件6個自由度的方法,稱為 六點定位。
45.工件在裝夾過程中產生的誤差稱為裝夾誤差、定位誤差及基準不重合 誤差。
46.在切削塑性金屬材料是,常有一些從切屑和工件上帶來的金屬「冷焊」在前刀面上,靠
近切削刃處形成一個硬度很高的楔塊即積屑瘤
47.作用在工藝系統中的力,有切削力、夾緊力、構件及工件的重力以及運動部件產生的慣性力。
48.能消除工件6個自由度的定位方式,稱為完全定位。
49.在刀具材料中,硬質合金用於切削速度很高、難加工材料的場合,製造形狀較簡單的刀具。
50.刀具磨鈍標准有粗加工、粗加工磨鈍標准兩種。
51.零件加工後的實際幾何參數與理想幾何參數的符合程度稱為加工精度。
52.工件的實際定位點數,如不能滿足加工要求,少於應有的定點數,稱為 欠定位。
53.在切削過程中,工件形成三個表面:①待加工表面;②加工表面;③已加工表面。
54.刀刃磨損到一定程度後需要刃磨換新刀,需要規定一個合理的磨損限度,即為耐用度。
55.若工件在夾具中定位,要使工件的定位表面與夾具的定位元件相接觸,從而消除自由度。
二 判斷題
1(√)安全管理是綜合考慮「物」的生產管理功能和「人」的管理,目的是生產更好的產品
2(√) 通常車間生產過程僅僅包含以下四個組成部分:基本生產過程、輔助生產過程、生產技術准備過程、生產服務過程。
3(√)車間生產作業的主要管理內容是統計、考核和分析。
4(√) 車間日常工藝管理中首要任務是組織職工學習工藝文件,進行遵守工藝紀律的宣傳教育,並例行工藝紀律的檢查。
5(×)當數控加工程序編制完成後即可進行正式加工。
6(×)數控機床是在普通機床的基礎上將普通電氣裝置更換成CNC控制裝置。
7(√)圓弧插補中,對於整圓,其起點和終點相重合,用R編程無法定義,所以只能用圓心坐標編程。
8(√)插補運動的實際插補軌跡始終不可能與理想軌跡完全相同。
9(×)數控機床編程有絕對值和增量值編程,使用時不能將它們放在同一程序段中。
10(×)用數顯技術改造後的機床就是數控機床。
11(√)G代碼可以分為模態G代碼和非模態G代碼。
12(×)G00、G01指令都能使機床坐標軸准確到位,因此它們都是插補指令。
13(√)圓弧插補用半徑編程時,當圓弧所對應的圓心角大於180º時半徑取負值。
14(×)不同的數控機床可能選用不同的數控系統,但數控加工程序指令都是相同的。
15(×)數控機床按控制系統的特點可分為開環、閉環和半閉環系統。
16(√)在開環和半閉環數控機床上,定位精度主要取決於進給絲杠的精度。
17(×)點位控制系統不僅要控制從一點到另一點的准確定位,還要控制從一點到另一點的路徑。
18(√)常用的位移執行機構有步進電機、直流伺服電機和交流伺服電機。
19(√)通常在命名或編程時,不論何種機床,都一律假定工件靜止刀具移動。
20(×)數控機床適用於單品種,大批量的生產。
21(×)一個主程序中只能有一個子程序。
22(×)子程序的編寫方式必須是增量方式。
23(×)數控機床的常用控制介質就是穿孔紙帶。
24(√)程序段的順序號,根據數控系統的不同,在某些系統中可以省略的。
25(×)絕對編程和增量編程不能在同一程序中混合使用。
26(×)數控機床在輸入程序時,不論何種系統座標值不論是整數和小數都不必加入小數點。
27(√)RS232主要作用是用於程序的自動輸入。
28(√)車削中心必須配備動力刀架。
29(×)Y坐標的圓心坐標符號一般用K表示。
30(√)非模態指令只能在本程序段內有效。
31(×)X坐標的圓心坐標符號一般用K表示。
32(×)數控銑床屬於直線控制系統。
33(√)採用滾珠絲杠作為X軸和Z軸傳動的數控車床機械間隙一般可忽略不計。
34(√)舊機床改造的數控車床,常採用梯形螺紋絲杠作為傳動副,其反向間隙需事先測量出來進行補償。
35(√)順時針圓弧插補(G02)和逆時針圓弧插補(G03)的判別方向是:沿著不在圓弧平面內的坐標軸正方向向負方向看去,順時針方向為G02,逆時針方向為G03。
36(×)順時針圓弧插補(G02)和逆時針圓弧插補(G03)的判別方向是:沿著不在圓弧平面內的坐標軸負方向向正方向看去,順時針方向為G02,逆時針方向為G03。
37(√)伺服系統的執行機構常採用直流或交流伺服電動機。
38(√)直線控制的特點只允許在機床的各個自然坐標軸上移動,在運動過程中進行加工。
39(×)數控車床的特點是Z軸進給1mm,零件的直徑減小2mm。
40(×)只有採用CNC技術的機床才叫數控機床。
41(√)數控機床按工藝用途分類,可分為數控切削機床、數控電加工機床、數控測量機等。
42(×)數控機床按控制坐標軸數分類,可分為兩坐標數控機床、三坐標數控機床、多坐標數控機床和五面加工數控機床等。
43(×)數控車床刀架的定位精度和垂直精度中影響加工精度的主要是前者。
44(×)最常見的2軸半坐標控制的數控銑床,實際上就是一台三軸聯動的數控銑床。
45(√)四坐標數控銑床是在三坐標數控銑床上增加一個數控回轉工作台。
46(√)液壓系統的輸出功率就是液壓缸等執行元件的工作功率。
47(×)液壓系統的效率是由液阻和泄漏來確定的。
48(√)調速閥是一個節流閥和一個減壓閥串聯而成的組合閥。
49(×)液壓缸的功能是將液壓能轉化為機械能。
50(×)數控銑床加工時保持工件切削點的線速度不變的功能稱為恆線速度控制。
51(√)由存儲單元在加工前存放最大允許加工范圍,而當加工到約定尺寸時數控系統能夠自動停止,這種功能稱為軟體形行程限位。
52(√)點位控制的特點是,可以以任意途徑達到要計算的點,因為在定位過程中不進行加工。
53(√)數控車床加工球面工件是按照數控系統編程的格式要求,寫出相應的圓弧插補程序段。
54(√)伺服系統包括驅動裝置和執行機構兩大部分。
55(√)不同結構布局的數控機床有不同的運動方式,但無論何種形式,編程時都認為刀具相對於工件運動。
56(×)不同結構布局的數控機床有不同的運動方式,但無論何種形式,編程時都認為工件相對於刀具運動。
57(×)一個主程序調用另一個主程序稱為主程序嵌套。
58(×)數控車床的刀具功能字T既指定了刀具數,又指定了刀具號。
59(×)數控機床的編程方式是絕對編程或增量編程。
60(√)數控機床用恆線速度控制加工端面、錐度和圓弧時,必須限制主軸的最高轉速。
61(×)螺紋指令G32 X41.0 W-43.0 F1.5是以每分鍾1.5mm的速度加工螺紋。
62(×)經試加工驗證的數控加工程序就能保證零件加工合格。
63(√)數控機床的鏡象功能適用於數控銑床和加工中心。
64(×)數控機床加工時選擇刀具的切削角度與普通機床加工時是不同的。
65(×)數控銑床加工時保持工件切削點的線速度不變的功能稱為恆線速度控制。
66(×)在數控加工中,如果圓弧指令後的半徑遺漏,則圓弧指令作直線指令執行。
67(√)車床的進給方式分每分鍾進給和每轉進給兩種,一般可用G94和G95區分。
68(×) G00為前置刀架式數控車床加工中的瞬時針圓弧插補指令。
69(×)G03為後置刀架式數控車床加工中的逆時針圓弧插補指令。
70(×)所有數控機床加工程序的結構均由引導程序、主程序及子程序組成。
71(×)數控裝置接到執行的指令信號後,即可直接驅動伺服電動機進行工作。
72(×)點位控制數控機床除了控制點到點的准確位置外,對其點到點之間的運動軌跡也有一定的要求。
73(×)數控機床的坐標規定與普通機床相同,均是由左手直角笛卡爾坐標系確定。
74(×)G00、G02、G03、G04、G90均屬於模態G指令。
75(√)ISO標准規定G功能代碼和M功能代碼規定從00—99共100種。
76(√)螺紋車刀屬於尖形車刀類型。
77(√)圓弧形車刀的切削刃上有無數個連續變化位置「刀尖」。
78(√)數控車床上的自動轉位刀架是一種最簡單的自動換刀設備。
79(√)在數值計算車床過程中,已按絕對坐標值計算出某運動段的起點坐標及終點坐標,以增量尺寸方式表示時,其換算公式:增量坐標值=終點坐標值-起點坐標。
80(√)一個尺寸鏈中一定只能一個封閉環。
81(√)在數控機床上加工零件,應盡量選用組合夾具和通用夾具裝夾工件。避免採用專用夾具。
82(×)保證數控機床各運動部件間的良好潤滑就能提高機床壽命。
83(√)數控機床加工過程中可以根據需要改變主軸速度和進給速度。
84(√)車床主軸編碼器的作用是防止切削螺紋時亂扣。
85(×)跟刀架是固定在機床導軌上來抵消車削時的徑向切削力的。
86(×)切削速度增大時,切削溫度升高,刀具耐用度大。
87(×)數控機床進給傳動機構中採用滾珠絲杠的原因主要是為了提高絲杠精度。
88(×)數控車床可以車削直線、斜線、圓弧、公制和英制螺紋、圓柱管螺紋、圓錐螺紋,但是不能車削多頭螺紋。
89(×)平行度的符號是 //,垂直度的符號是 ┸ , 圓度的符號是 〇。
90(√)數控機床為了避免運動件運動時出現爬行現象,可以通過減少運動件的摩擦
來實現。
91(×)切削中,對切削力影響較小的是前角和主偏角。
92(×)同一工件,無論用數控機床加工還是用普通機床加工,其工序都一樣。
93(×)數控機床的定位精度與數控機床的解析度精度是一致的。
95(√)刀具半徑補償是一種平面補償,而不是軸的補償。
96(√)固定循環是預先給定一系列操作,用來控制機床的位移或主軸運轉。
97(√)數控車床的刀具補償功能有刀尖半徑補償與刀具位置補償。
98(×)刀具補償寄存器內只允許存入正值。
99(×)數控機床的機床坐標原點和機床參考點是重合的。
100(×)機床參考點在機床上是一個浮動的點。
101(√)外圓粗車循環方式適合於加工棒料毛坯除去較大餘量的切削。
102(√)固定形狀粗車循環方式適合於加工已基本鑄造或鍛造成型的工件。
102(×)外圓粗車循環方式適合於加工已基本鑄造或鍛造成型的工件。
103(√)刀具補償功能包括刀補的建立、刀補的執行和刀補的取消三個階段。
104(×)刀具補償功能包括刀補的建立和刀補的執行二個階段。
105(×)數控機床配備的固定循環功能主要用於孔加工。
106(√)數控銑削機床配備的固定循環功能主要用於鑽孔、鏜孔、攻螺紋等。
107(×)編制數控加工程序時一般以機床坐標系作為編程的坐標系。
108(√)機床參考點是數控機床上固有的機械原點,該點到機床坐標原點在進給坐標軸方向上的距離可以在機床出廠時設定。
109(√)因為毛坯表面的重復定位精度差,所以粗基準一般只能使用一次。
110(×)表面粗糙度高度參數Ra值愈大,表示表面粗糙度要求愈高;Ra值愈小表示表面粗糙度要求愈低。
111(√)數控機床的位移檢測裝置主要有直線型和旋轉型。
112(×)基本型群鑽是群鑽的一種,即在標准麻花鑽的基礎上進行修磨,形成「六尖一七刃的結構特徵。
113(√)陶瓷的主要成分是氧化鋁,其硬度、耐熱性和耐磨性均比硬質合金高。
114(×)車削外圓柱面和車削套類工件時,它們的切削深度和進給量通常是相同的。
115(√)熱處理調質工序一般安排在粗加工之後,半精加工之前進行。
116(√)為了保證工件達到圖樣所規定的精度和技術要求,夾具上的定位基準應與工件上設計基準、測量基準盡可能重合。
117(√)為了防止工件變形,夾緊部位要與支承對應,不能在工件懸空處夾緊。
118(×)在批量生產的情況下,用直接找正裝夾工件比較合適。
119(√)刀具切削部位材料的硬度必須大於工件材料的硬度。
120(×)加工零件在數控編程時,首先應確定數控機床,然後分析加工零件的工藝特性。
121(×)數控切削加工程序時一般應選用軸向進刀。
122(×)因為試切法的加工精度較高,所以主要用於大批、大量生產。
123(×)具有獨立的定位作用且能限制工件的自由度的支承稱為輔助支承。
124(√)切削用量中,影響切削溫度最大的因素是切削速度。
125(√)積屑瘤的產生在精加工時要設法避免,但對粗加工有一定的好處。
126(×)硬質合金是一種耐磨性好。耐熱性高,抗彎強度和沖擊韌性都較高的一種刀具材料。
127(×)在切削時,車刀出現濺火星屬正常現象,可以繼續切削。
128(×)刃磨車削右旋絲杠的螺紋車刀時,左側工作後角應大於右側工作後角。
129(√)套類工件因受刀體強度、排屑狀況的影響,所以每次切削深度要少一點,進給量要慢一點。
130(√)切斷實心工件時,工件半徑應小於切斷刀刀頭長度。
131(√)切斷空心工件時,工件壁厚應小於切斷刀刀頭長度。
132(×)數控機床對刀具的要求是能適合切削各種材料、能耐高溫且有較長的使用壽命。
133(√)數控機床對刀具材料的基本要求是高的硬度、高的耐磨性、高的紅硬性和足夠的強度7和韌性。
134(√)工件定位時,被消除的自由度少於六個,但完全能滿足加工要求的定位稱不完全定位。
135(×)定位誤差包括工藝誤差和設計誤差。
136(×)數控機床中MDI是機床診斷智能化的英文縮寫。
137(×)數控機床中CCW代表順時針方向旋轉,CW代表逆時針方向旋轉。
138(×)一個完整尺寸包含的四要素為尺寸線、尺寸數字、尺寸公差和箭頭等四項要素。
139(√)高速鋼刀具具有良好的淬透性、較高的強度、韌性和耐磨性。
140(×)長V形塊可消除五個自由度。短的V形塊可消除二個自由度。
141(√)長的V形塊可消除四個自由度。短的V形塊可消除二個自由度。
142(×)高速鋼是一種含合金元素較多的工具鋼,由硬度和熔點很高的碳化物和金屬粘結劑組成。
143(√)零件圖中的尺寸標注要求是完整、正確、清晰、合理。
144(√)硬質合金是用粉末冶金法製造的合金材料,由硬度和熔點很高的碳化物和
金屬粘結劑組成。
145(√)工藝尺寸鏈中,組成環可分為增環與減環。
『陸』 計算機二級c語言考試機試有程序填空題改錯題編程題請問各有幾題
二級C語言機試考試此神差只有三道題:
第一:填空森皮(一般為三個空);
第二:改錯題(一般有兩個或三個錯);
第三:編程題(一般是給出主程序,讓你自己編子程序)。
上機操作題一般都比較簡單,你買一本上機題庫100道,基本上做完就肯定沒問題,瞎雀絕對可以過。
『柒』 數控機床編程與操作考試題及答案
數控機床編程與操作考試題及答案
無論在學習或是工作中,只要有考核要求,就會有試題,試題是命題者按照一定的考核目的編寫出來的。你所見過的試題是什麼樣的呢?下面是我收集整理的數控機床編程與操作考試題及答案,僅供參考,大家一起來看看吧。
一、填空題
1、在程序行中具有多個功能指令時可以按「 G 、 F 、 S 、 T 和 M 」順序排列。
2、車削用量包括 背吃刀量 、 主軸轉速 或 切削速度 和 進給速度 或 進給量 .
3、車削用刀具材料主要包括 高速鋼 、 硬質合金 、 陶瓷 、立方氮化硼和人造金剛石等。
4、在完成該程序段其他指令後,M00指令使程序停在本段 狀態,不執行下段。
5、按下控制面板上的循環啟動鍵可取消M00 狀態。
6、一般數控機床的控制面板上裝有「任選停止」 按鈕,按下此按鈕,程序執行到M01指令時,程序即暫停。
7、 M02 指令表示加工程序全部結束。
8、M03指令使主軸 正轉 ,M04指令使主軸 反轉 ,M05指令使主軸 停轉 。
9、M08指令使 切削液 開啟, M09 指令使切削液停止供給。
10、 G00 指令使刀具從當前點快速移動到程序段中指定位置。
11、R方式編程時,圓弧的圓心角不大於180°時,R值為 正 ,大於180°時,R為 負 。
12、沿刀具的運動方向看,刀具在工件的左側使用 G41 指令。在工件的右側則使用 G42 指令。
二、判斷題
1、G00指令的'動作速度是由機床廠家設定的,用戶無法修改。(×)
2、使用單刀螺紋切削指令G33編製程序會導致程序段冗長。(√)
3、塗層硬質合金車刀比普通硬質合金車刀有更好的耐用性。(√)
4、適當地使用增量方式編程可以簡化編程時的坐標值計算。(√)
5、在機夾刀片的型號中可以體現出刀片的形狀。(√)
6、M03指令使主軸運動、進給運動、切削液供給等都停止,機床復位。(×)
7、M02指令必須編在最後一個程序段中。(√)
8、G90和G91指令屬於非模態指令。(×)
9、使用硬質合金塗層刀片時,必須注意塗層並不能改善刀片基體的強度,應防止編程不當導致的碰撞,以免引起刀片損壞。(√)
10、進給速度的大小直接影響到表面粗糙度值和車削效率,因此應在保證表面粗糙度值的前提下,選擇較低的進給速度。(×)
三、選擇題
1、下列程序段中,(C)是正確的。
A G02 X50 Z100 F0.1
B G03 R5
C G01 X20 Z10 F100
2、數控車床是兩軸聯動控制的數控機床,它的編程坐標平面是(C)平面。
A XOY B YOZ C XOZ
3、 進給字F對( A )指令不起作用.
A G00 BG01 CG02
4、主要用於數控機床主軸的開、關,冷卻液的開、關等輔助動作的代碼是(B)。
A T代碼 B M代碼 C G代碼
5、延時暫停使用(B)代碼表示。
A M00 B G04 C G42
6、對程序段N0020 S500 M03 說法正確的是(A)。
A 指定主軸以500r/min的轉速正轉
B 指定主軸以 500r/min的轉速反轉
C 指定主軸以 500mm/r 的轉速反轉
7、(C)指令功能與M02指令類似。但此指令結束後,返回到程序頂部。
A M00 B M05 C M30
8、G01指令需指定進給量的值。若不指定,系統會按(C)速度動作。
A 默認 B 進給 C 預設
9、用G33 指令完成一次螺紋切削動作必須具備(A)指令動作。
A 四個 B 兩個 C 三個
10、化學氣相沉積縮寫字母為(C)
A VCD B DVD C CVD
四、名詞解釋
1、M00:
在完成該程序段其他指令後,M00指令使程序停留在本段狀態,不執行下段。
2、轉進給
主軸每轉一轉刀具移動多少毫米為單位的進給方式。
五、簡答題
1、粗、精加工時車削用量的選擇有什麼區別?
答:對粗加工,應從零件的加工經濟性來選擇車削用量;對精加工,則應根據零件的加工精度,特別是表面粗糙度來選擇車削用量。
2、使用恆線速度控制有何意義?
答:G96指令的功能就是指定切削變徑表面時使用一樣的切削線速度,從而使表面的粗糙度基本一致。
拓展:
數控機床發展前景
近年來,我國的數控機床無論從產品種類、技術水平、質量和產量上都取得高速發展,在一些關鍵技術方面也已取得重大突破。自從我國數控機床的技術發展到了成熟期以後,各個領域都開始了對於數控機床的廣泛關注。然而,與快速發展的數控機床行業相比,我國從事數控機床行業的技能人才始終供不應求,據權威部門統計,當前我國製造業十大重點領域對人才需求量較大,預計到2020年,高檔數控機床和機器人領域人才缺口為300萬人。
如今,製造業對數控機床人才的需求大大增加,就業待遇優厚。很多企業反映,數控機床人才「一將難求」,因為搶手,數控機床人才的身價持續上漲,月收入都在1.5萬元以上。據我了解,河北省邯鄲市曲周縣職教中心已經把數控機床專業作為重點發展專業,勢必做強做大該專業,為中國製造輸送一批批技能人才。
當下,數控機床作為工業4.0重要發展領域,已經成為主要工業國家重點競爭領域。中國數控機床產業在國家戰略的支持下,近年來呈現出快速發展態勢,技術追趕勢頭不可阻擋。在新一輪產業發展周期中,中國有望通過加大技術研發實現數控機床產業的彎道超車。因此,在產業發展大好的優勢下,數控機床人才的就業前景將是一片光明。
高檔數控機床發展前景
當前機床行業下游用戶需求結構出現高端化發展態勢,多個行業都將進行大范圍、深層次的結構調整和升級改造,對於高質量、高技術水平機床產品需求迫切,總體上來說,中高檔數控機床市場需求上升較快,用戶需要更多高速、高精度、復合、柔性、多軸聯動、智能、高剛度、大功率的數控機床,發展前景廣闊。例如,汽車行業表現出生產大批量、多品種、車型更新快的發展趨勢,新能源汽車發展加速,從而要求加工設備朝著精密、高效、智能化方向不斷發展。在航空航天產業領域,隨著民用飛機需求量的劇增以及軍用飛機的跨代發展,新一代飛機朝著輕質化、高可靠性、長壽命、高隱身性、多構型、快速響應及低成本製造等方向發展,新一代技術急切需要更先進的加工裝備來承載,航空製造裝備朝著自動化、柔性化、數字化和智能化等方向發展。例如,在「兩機專項」致力於突破的飛機發動機製造中,發動機葉片、整機機匣和葉盤等典型零件逐漸向尺寸大型化、型面復雜化、結構輕量化和製造精密化發展,尤其是高強度的高溫耐熱合金等新型輕質材料的大量應用,這些整體結構件的幾何構型復雜且難加工,對大扭矩、高精度數控機床提出新的更高要求。燃氣輪機的大型結構件和大型設備異地維修所需的便攜性或可移動式多軸聯動數控裝備,這種用無固定基座、可重構拼組的小機床加工大型工件的加工方式對新型數控裝備的結構設計、工藝規格和高能效加工技術提出更大挑戰。
;『捌』 微機編程題,詳細如下,高分求解答!
;; 1.在M數據段從DATA單元開始分別存放了兩個8位無符號數,
;; 試比較它們的大小,並將小者傳送到MIN單元。
M SEGMENT
DATA DB 9FH, 0B6H
MIN DB ?
M ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:M
ORG 100H
START: MOV AX, M
MOV DS, AX
MOV AL, DS:[DATA]
MOV BL, DS:[DATA+1]
CMP AL, BL
JBE MIN_A
MOV MIN, BL
JMP FINISH
MIN_A: MOV MIN, AL
JMP FINISH
FINISH: INT 3 ;中止,以便在DEBUG中查看結果
CODE ENDS
END START
;;將asm源程序編譯鏈接生成exe, 在Win7的DOS中用debug運行通過,
;;運行至INT 3程序中止,在debug中用 d DS:02 命令,
;;可查看到MIN單元的值為茄碰較小值9Fh
==========================================
;; 2.已知AL中有鄭螞一8位二進制數,測試其中的D2位,
;; 如果為1則轉移到EXIT。
CODE SEGMENT
ASSUME CS:CODE
ORG 100H
START: MOV AL, 10110110b
TEST AL, 00000100b
JNZ EXIT
INT 3
EXIT: MOV AH, 4CH
INT 21H
CODE ENDS
END START
;;將asm源程序編譯鏈接生成exe, 在Win7的DOS中用debug運喊納埋行通過
『玖』 C++編程試題,跪請高手幫忙(4)
我知道一個成功的演算法,
A表示過河,Am表示 人單獨過河舉握。
Aw表示 人帶狼過河。
As。。。。。。。。
Ag。。。。。。。。
奇數是過河,偶數是返回。
1 As
2 Am
3 Ag
4 As
5 Aw
6 Am
7 As
我知道一個成功的演算法,
A表示過河,Am表示 人單獨過河。
Aw表示 人帶狼過河。
As。。。槐液。。。。。
Ag。。。。。。。鉛答物。
奇數是過河,偶數是返回。
1 As
2 Am
3 Ag
4 As
5 Aw
6 Am
7 As
我知道一個成功的演算法,
A表示過河,Am表示 人單獨過河。
Aw表示 人帶狼過河。
As。。。。。。。。
Ag。。。。。。。。
奇數是過河,偶數是返回。
1 As
2 Am
3 Ag
4 As
5 Aw
6 Am
7 As
『拾』 編程題庫,輸入一個整數,顯示其十位上的數值
這個很簡單吧- - 比如變數為a:漏鏈
方法1:(int)(a / 10) % 10就行了,很久不寫C了,不知道語法對不對- -
方法2:(a - a % 10 ) / 10 % 10,胡宴這個應該所有返做孫語言通用
方法3:(a >> 1) % 10
方法很多,上面應該夠用了~
核心思想就是把個位幹掉