考試模擬1 1.以下關(guān)于微電子技術(shù)的敘述中,錯誤的是_____________ 集成電路芯片是微電子技術(shù)的結(jié)晶,它是計算機(jī)和通信設(shè)備的硬件核心,是現(xiàn)代信息產(chǎn)業(yè)的基礎(chǔ) 集成電路根據(jù)包含的電子元件數(shù)目分為小規(guī)模,中規(guī)模,大規(guī)模、超大規(guī)模和極大規(guī)模集成電路 小規(guī)模集成電路以簡單的門電路或單級放大器為集成對象 隨著微米、亞微米量級的微細(xì)加工技術(shù)的采用和硅拋光片面積的增大,集成電路的規(guī)模越來越小 2.以下關(guān)于通信技術(shù)的敘述中,錯誤的是_________________ 通信系統(tǒng)中被傳輸?shù)男畔⒈仨氁阅撤N電(或光)信號的形式才能通過傳輸介質(zhì)進(jìn)行傳輸 多路復(fù)用技術(shù)有兩種,時分多路復(fù)用和頻分多路復(fù)用,其中頻分多路復(fù)用是指以事先規(guī)定的順序輪流使用同一傳輸線路進(jìn)行數(shù)據(jù)傳輸 模擬通信的優(yōu)點(diǎn)是結(jié)構(gòu)比較簡單,成本低,數(shù)字通信傳輸?shù)氖菙?shù)字信號 微波是一種極高頻率的電磁波,波長很短,通常為1m—1mm 3.使用8個二進(jìn)制位來表示整數(shù)的編碼時,十進(jìn)制-88對應(yīng)的原碼與補(bǔ)碼分別是_______ A.11011000 和 10100111 B.01011000和10101000 C.11011011 和 10100111 D.11011000和10101000 4. .在PC機(jī)中,各類存儲器的速度由高到低的次序是________。 A.Cache、主存、硬盤、軟盤 B.主存、Cache、硬盤、軟盤 C. 硬盤、Cache、主存、軟盤 D. Cache的、硬盤、主存、軟盤 5.下面關(guān)于計算機(jī)局域網(wǎng)特性的敘述中,服務(wù)錯誤的是________。 A. 數(shù)據(jù)傳輸速率高 B. 通信延遲時間短、可靠性好 C. 可連接任意多的計算機(jī) D. 可共享網(wǎng)絡(luò)中的軟硬件資源 6. 下列關(guān)于計算機(jī)組成及功能的說法中,正確的是__________。 A.一臺計算機(jī)內(nèi)只能有一個CPU B.外存中的數(shù)據(jù)是直接傳送給CPU處理的 C. 多數(shù)輸出設(shè)備的功能是將計算機(jī)中用“ D. I/O設(shè)備是用來連接CPU、內(nèi)存、外存和各種輸入輸出設(shè)施并協(xié)調(diào)它們工作的一個控制部件 7. .鍵盤、顯示器和硬盤等常用外圍設(shè)備在操作系統(tǒng)啟動時都需要參與工作,所以它們的驅(qū)動程序都必須預(yù)先存放在________中。 A. 硬盤 B. BIOS ROM C. 內(nèi)存 D. CPU 8.在計算機(jī)加電啟動過程中,1.POST程序、2. 操作系統(tǒng)、3.引導(dǎo)程序、4.自舉裝入程序,這四個部分程序的執(zhí)行順序?yàn)?/span>________。 A. 1、2、3、4 B. 1、3、2、 9.以下關(guān)于操作系統(tǒng)中多任務(wù)處理的敘述中,錯誤的是:________ A. 將CPU時間劃分成許多小片,輪流為多個程序服務(wù),這些小片稱為"時間片" B. 由于CPU是計算機(jī)系統(tǒng)中最寶貴的硬件資源,為了提高CPU的利用率,一般采用多任務(wù)處理 C. 正在CPU中運(yùn)行的程序稱為前臺任務(wù),處于等待狀態(tài)的任務(wù)稱為后臺任務(wù) D.在單CPU環(huán)境下,多個程序在計算機(jī)中同時運(yùn)行時,意味著它們宏觀上同時運(yùn)行,微觀上由CPU輪流執(zhí)行 10.廣域網(wǎng)是一種跨越很廣的的計算機(jī)網(wǎng)絡(luò),下面關(guān)于廣域網(wǎng)的敘述中,正確的是___________ A.廣域網(wǎng)是一種公用計算機(jī)網(wǎng),所有計算機(jī)都可無條件的接入廣域網(wǎng) B.廣域網(wǎng)使用專門的通信線路,數(shù)據(jù)傳輸更高 C.廣域網(wǎng)能連接任意多的計算機(jī),也能將相距任意距離的計算機(jī)互相連接起來 D.廣域網(wǎng)像很多局域網(wǎng)一樣按廣播方式通信 11.當(dāng)局域網(wǎng)中一臺計算機(jī)向同一網(wǎng)絡(luò)中的另一臺計算機(jī)發(fā)送數(shù)據(jù)幀時,在數(shù)據(jù)幀中必須包含發(fā)送方主機(jī)和接收方主機(jī)的_____________ A.MAC地址 B.IP地址 C.域名 D.計算機(jī)名 12.網(wǎng)絡(luò)服務(wù)是指用戶通過計算機(jī)網(wǎng)絡(luò)在共享資源及數(shù)據(jù)通信方面能夠得到的新增功能,下面關(guān)于網(wǎng)絡(luò)服務(wù)的敘述中,錯誤的是_____________ A.文件服務(wù)允許網(wǎng)絡(luò)用戶使用網(wǎng)絡(luò)上其他計算機(jī)中可共享的程序和數(shù)據(jù) B.應(yīng)用服務(wù)是指網(wǎng)絡(luò)用戶需要執(zhí)行的某項(xiàng)任務(wù),部分甚至全部可由網(wǎng)上的另一臺計算機(jī)完成 C.連接在網(wǎng)絡(luò)上的計算機(jī)只要有賬號就可以獲得他所需要的服務(wù) D.消息服務(wù)允許網(wǎng)絡(luò)用戶之間能相互通信,互相傳遞消息 13.以下漢字編碼中,不再我國大陸使用而在臺灣與香港地區(qū)使用的是___________ A.GB18030 B.GBK C.GB2312 D.BIG5 14.以下關(guān)于圖像與圖形說法錯誤的是_____________ A.圖像獲取的過程實(shí)際上是模擬信號的數(shù)字化過程 B.一幅取樣圖像由M*N個取樣點(diǎn)組成,每個取樣點(diǎn)表示一個像素 C.數(shù)據(jù)壓縮分為無損和有損壓縮,有損壓縮是指對壓縮的圖像還原時,會影響到人們對圖像的正確理解 D.BMP是微軟公司在Windows操作系統(tǒng)下使用的一種標(biāo)準(zhǔn)圖像文件格式 15.以下對數(shù)字聲音的敘述中錯誤的是______________ A.聲音信號的數(shù)字化過程包括:取樣,量化,編碼 B.聲卡既參與聲音的獲取也負(fù)責(zé)聲音的重建 C.聲音的重建是聲音信號數(shù)字化的逆過程,分為三步:解碼,數(shù)模轉(zhuǎn)換,插值處理 D.聲音的獲取設(shè)備包括麥克風(fēng)和聲卡,麥克風(fēng)的作用是把電信號轉(zhuǎn)換為聲波 16.彩色圖像所使用的顏色描述方法稱為顏色模型,顯示器使用的顏色模型為RGB三基色模型,彩色噴墨打印機(jī)在打印彩色圖像時所使用的顏色模型是___________ A.YUV B.HSB C.CMYK D.RGB 17.人們說話時所產(chǎn)生的語音信號必須數(shù)字化之后才能由計算機(jī)存儲和處理,假設(shè)語音信號數(shù)字化時的取樣頻率為8KHZ,量化精度為8位,數(shù)據(jù)壓縮倍數(shù)為4倍,那么1分鐘數(shù)字語音的數(shù)據(jù)量是___________ A.960KB B.480kb C.120kb D.60kb 18.把全局E-R模型圖轉(zhuǎn)化稱關(guān)系模式的結(jié)構(gòu),屬于數(shù)據(jù)庫系統(tǒng)設(shè)計的________ A.邏輯結(jié)構(gòu)設(shè)計 B.概念結(jié)構(gòu)設(shè)計 C.物理結(jié)構(gòu)設(shè)計 D.程序結(jié)構(gòu)設(shè)計 19. 下列有關(guān)Windows98/2000/XP操作系統(tǒng)的敘述中,錯誤的是_________________。 A.任務(wù)欄上的“快速啟動”工具欄可以關(guān)閉。 B.對于中文版的Windows操作系統(tǒng)來說,任務(wù)欄上顯示的輸入法指示圖標(biāo)不能被關(guān)閉。 C.即使計算機(jī)未物理連接打印機(jī),也可以安裝多個打印機(jī)驅(qū)動程序。 D.在“我的電腦”的“屬性”窗口中可以查看當(dāng)前計算機(jī)的內(nèi)存的大小 20. 在Windows操作系統(tǒng)和Office軟件環(huán)境下操作時,下列操作中不能實(shí)現(xiàn)的是 _____________。 A.在“Windows資源管理器”窗口中同時選中多個不連續(xù)的文件與文件夾。 B.在Word編輯窗口中同時選定多個不連續(xù)的段落。 C.在Word編輯窗口中同時選定多個繪制的圖形對象。 D.在Excel編輯窗口中同時選定多個不連續(xù)的單元格。 C程序設(shè)計部分 一:選擇題: 21.當(dāng)需要定義一個函數(shù)時,以下標(biāo)識符中,__________(21)___________不能用作函數(shù)名。 A.scanf B.for C._sum D.F2 22.已有聲明語句”unsigned char ch;”,與表達(dá)式”ch=’B’”的值不相同的表達(dá)式是_____(22)______(注釋:字符A的Ascii碼以十進(jìn)制表示為65) A.ch=0x42 B.ch= 23.若要對a進(jìn)行++運(yùn)算,則a應(yīng)具有以下說明_______(23)_______ A.int a[3][2] B.char *a[]={“ C.int b[10],*a=b; D.char (*a)(char); 24.以下對于break語句使用的正確描述是______(24)___________ A.可以出現(xiàn)在程序中的任何位置 B.只能出現(xiàn)在循環(huán)或switch結(jié)構(gòu)中 C.只能出現(xiàn)在switch結(jié)構(gòu)中 D.只能出現(xiàn)在循環(huán)結(jié)構(gòu)中 25.若有聲明語句”int a=5,b=4,c=3,*p=&a;”,則下列________(25)__________表達(dá)式語句是正確的。 A.(*p)++=c; B.*(*p)++; C.printf(a%4= =0?”%3d\n”:”%3d”,*p); D.a>20?return *p-20:return *p-1; 26.設(shè)”int x=2,y=3,z=(++x<=y--)?((--y= =1)?y--:--y):y--;”,則x,y,z的值為____________ A.3,0,1 B.2,0, 27.下列程序段執(zhí)行后的結(jié)果為____(27)__________ main() { struct int a[3][3]={1,3,5,7,9,11,13,15,17},y,x,*p=&a[2][2]; for(x=0;x<3;x++) y+=*(p-4*x); printf(“\n%d”,y); } A.45 B 28.設(shè)有函數(shù)f的定義如下; void f(int x,int *y) { *y=x*x*x;} main() {int i,c[4]={1,2,3,4},s[4]={0}; for(i=0;i<4;i++) {______________/*調(diào)用f函數(shù)*/ printf("%d",s[i]);} 若在main函數(shù)中欲調(diào)用f函數(shù),則正確的調(diào)用語句是 ____(28)______ A.f(c,s); B.f(c[i],s[i]); C.f(*(c+i),&s[i]); D.f(c+i,s+i); 29.設(shè)有定義如下; typedef stuct{int x,y;}POINT; typedef enum{RED,YELLOW,BLUE,GREEN}COLOR; struct {POINT xy;COLOR c;}pixel,*p=&pixel; 以下對變量pixel的賦值操作中正確的是 (29) 。 A.pixel={1,2,BLUE}; B.P->xy.x=1;p->xy.y=2;p->c=BLUE; C.scanf("%d%d%d",P->xy.x,P->xy.y,&pixel.c); D.scanf("%d%d,,,&pixel.xy);pixel.color=2; 30.執(zhí)行了以下程序段后,x、w的值為___(30)_________ int x=0,y=1,z=2,w; if(x++) w=x; else if(x++&y>=1) w=y; else if(x++&&z>1) w=z; A.0、1 B.1、 二、填空題(請將答案填寫在答題紙的相應(yīng)答題號內(nèi),每個答案只占-行) ●基本概念題(共5分) 1.一個用c語言編寫的程序必須有-個并且只能有-個_____(1)____函數(shù)。 2.若有定義"int k=1;",執(zhí)行語句"while(k++<5);"后,k的值為______(2)_____。 3.在程序中需要調(diào)用庫函數(shù)sqrt時必須包含頭文件:_____(3)________ 。 4.已知聲明語句:"FILE *fpl,*fp2;long a[2]={12345678,12345678};",當(dāng)執(zhí)行了以下語句 后,文件f1.dat和f2.dat長度分別是____(4)_____字節(jié)和____(5)______字節(jié)。 fpl=fopen("f1.dat","w");fprintf(fpl,"%ld%ld",a[0],a[1]);fclose(fpl); fp2=fopen("f2.dat","wb");fwrite(a,sizeof(long),2,fp2);fclose(fp2); ●閱讀程序題(共7分) 5.以下程序運(yùn)行后輸出____(6)____ #include<stdio.h> int f(char *sl,char *s2) {static int nl,n2; while(*s1++)n1++; while(*s2++)n2++; return n1-n2; } main() {printf("%d",f("c:\\program","\ 6?下列程序執(zhí)行后,x的值為____(7)______ main() {int x,y; for(x=1,y=1;x<=100;x++) {if(y>=20)break; if(y%3==1){y+=3;continue;} y-=5; } printf("%d\n",x); } 7.以下程序運(yùn)行時輸出_____(8)________ #include<stdio.h> #include<string.h> main() {char s[20]="acef",sl[]="bd"; int i,j,k; for(k=0;sl[k]!='\0';k++) {j=0; while(sl[k]>=s[j]&&s[j]!='\0')j++; for(i=strlen(s);i>=j;i--)s[i+1]=s[i]; s[j]=sl[k]; } puts(s); } 8.以下程序運(yùn)行時輸出結(jié)果的第-行是___(9)_____,第二行是____(10)______。 int m=5,n=7,a[10]={0,1,2}; void fl(void); void f2(int m); main() { int i; for(i=0;i<7;i++)fl(); f2(1);printf("\n%d,%d",a[m],a[n]); } void fl(void) {static int n=3; a[n]=a[n-1]+a[n-2]+a[n-3];n++; } void f2(int m) {for(;m<3;m+=2) {int m; for(m=1;m<4;m++) printf("%d,",a[m++]); } } 9.以下程序運(yùn)行后輸出結(jié)果的第-行是__(11)_____,第二行是___(12)______ 。 extern int m1,m2; void fun(int n,int *p1,int *p2) {int i; *p1=1;*p2=1; for(i=1;i<=n;i++){*p1+=3;*p2*=3;} m1+=*p1;m2+=*p2; } int m1,m2; main() { int i,k1[4],k2[4]; for(i=0;i<4;i++) fun(i,&k1[i],&k2[i]); for(i=0;i<4;i++) printf(“%d,”,k1[i]); printf(“%d\n”,m1); for(i=0;i<4;i++) printf(“%d,”,k2[i]); printf(“%d”,m2); } 完善程序題(共18分) 10.以下程序中函數(shù)encode完成一個字符串的加密功能,將s1字符串中的字符經(jīng)過變換后保存到s2指向的字符數(shù)組中,二維數(shù)組cs保存了一個明碼密碼對照表,第一行是明碼字符,第二行是對應(yīng)的密碼字符,加密方法如下:從s1字符串中每取一個字符,均在cs表第一行中查找有無該明碼字符,若找到則將對應(yīng)的密碼字符放入s2中,否則將s1中原來的字符放入s2中。 #include <string.h> #include <stdio.h> char cs[2][10]={“aceghjlnp”,”fonptiude”}; void encode(char *s1, char *s2) { int n,i,j; for(n=0;s1[n]!=’\ { for(i=0;i<10&&s1[n]!=cs[0][i];_______(13)____) if(i<10) s2[n]=______(14)_____; else s2[n]=______(15)_______; } s2[n]=’\ } main() { char ts[80]=”jntwrnwt”, td[80]; encode(ts,td); puts(td); } 11.以下程序依次輸入某單位每位職工的姓名和工資數(shù)(整型數(shù)),然后計算發(fā)放工資時所需 發(fā)給每位職工的不同面值的紙幣張數(shù),并計算工資總和以及累計所需不同幣值的張數(shù) #include<stdio.h> #include<string.h> struct{ char name[10]; /*姓名*/ int total; /*工資數(shù)*/ int mnum[7]; /*發(fā)放工資時所需不同幣值的張數(shù)*/ }st[21]; int mvalue[7]={100,50,20,10,5,2,1}; main() {FILE *fp; int n=0,i,j,wage; fp=fopen("wage.dat","r"); if(fp= =NULL)exit(1); while(!feof(fp)) {fscanf(fp,"%s%d",st[n].name,&st[n].total); wage=st[n].total; for(j=0;j<7&&wage;j++) {st[n].mnum[j]=___(16)_________; wage= _____(17)______; } _________(18)________; } strcpy(st[n].name,"summary"); for(i=0;i<n;i++) { st[n].total+=st[i].total; for(j=0;j<7;j++) st[n].mnum[j]+=_____(19)_______; } for(i=O;i<n+1;i++) {printf("\n%s%d=",st[i].name,st[i].total); for(j=0;j<7;j++) printf("%d",st[i].mnum[j]); } } 12.以下函數(shù)的功能是以十進(jìn)制字符形式打印出任一int函數(shù) #include "stdio.h" void f(int n) {int i; if(n<0) {putchar('-');____(20)____;} if((_____(21)______)!=0)f(i); putchar(____(22)_______+'0'); } 13.以下程序中函數(shù)maxmin的功能是:對于x中存儲的一個任意的四位整數(shù),求出:(1)組成以這個整數(shù)的四個數(shù)字由大到小排列后構(gòu)成的最大的四位數(shù);(2)組成以這個整數(shù)的四個 數(shù)字由小到大排列后構(gòu)成的最小的四位數(shù)。 #include <stdio.h> void maxmin(int x,int *pmax,int *pmin) {int num[4],i,j,k,temp; *pmax=0;*pmin=0; for(i=0;i<4;i++) {num[i]=x%10;x=_____(23)_____;} for(i=O;i<3;i++) {k=i; for(j=i+1;j<4;j++) if(num[k]<num[j])k=j; if(____(24)_____){temp=num[i];num[i]=num[k];num[k]=temp;} } for(i=0;i<4;i++) {*pmax=*pmax*10+____(25)____; /*生成最大的四位數(shù)*/ *pmin=*pmin*10+ _____(26)_______; /*生成最小的四位數(shù)*/ } } main() {int n=3169,max=0,min=O; maxmin(n,&max,&min); printf("\n%d%d",max,min); } 14.設(shè)某鏈表上結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)定義如下: struct node{ int x; struct node *next; } 函數(shù)create的功能是:創(chuàng)建一個有序的鏈表(結(jié)點(diǎn)中x的值按升序排序),鏈表中結(jié)點(diǎn)的個數(shù)為參數(shù)n的值,函數(shù)返回該有序鏈表的頭指針。算法思想如下:每產(chǎn)生一個新的結(jié)點(diǎn),插入到鏈表中的恰當(dāng)位置,使得插入新結(jié)點(diǎn)以后的鏈表仍然保持有序 _______(27)_______create(int n) { struct node *p,*p1,*p2,*h=NULL; int i=0; if(n<1) return NULL; while(______(28)________) { p=(struct node *) malloc(sizeof(struct node)); scanf(“%d”,&p->x);p->next=NULL; if(h= =NULL)_______(29)____________; else {p1=p2=h; while(p2 &&p->x>=p2->x) {p1=p2;p2=p2->next;} if(p2==h){_____(30)____________;h=p;} else{p->next=p2;p1->next=p;} } i++; } return h; } 答案: 1.D2.B3.D4.A5.C6.C7.B8.D9.C10.C11.A12.B13.D14.C15.D16.C17.C18.A19.B20.B 21.B 22.D 23.C 24.B 25.C 26.A 27.D 28.C 29.B 30.C (1)main (2)6 (3)math.h (4)16 (5)8 (6)4 (7)8 (8)abcdef (9)1,3 (10)11,37 (11)1,4,7,10,2 (12)1,3,9,27,40 (13)i++ (14)cs[1][i] (15)s1[n] (16)wage/mvalue[j] (17)wage%mvalue[j] (18)n++ (19)st[i].mnum[j] (20)n=-n (21)i=n/10 (22)n%10 (23)x/10 (24)i!=k (25)num[i] (26)num[3-i] (27)struct node * (28)i<n (29)h=p (30)p->next=p2 改錯題目: 下列程序中函數(shù)divfun的功能是對于s指向的一個含有數(shù)字字符和非數(shù)字字符的字符串(串長不超過80),將其中連續(xù)的數(shù)字字符轉(zhuǎn)換為一個整數(shù),如果連續(xù)的數(shù)字字符個數(shù)超過4個,則以4個數(shù)字字符為一組進(jìn)行轉(zhuǎn)換。將轉(zhuǎn)換后生成的整數(shù)一次存放到整型數(shù)組a中。函數(shù)返回a數(shù)組中整數(shù)的個數(shù)。例如:若輸入的字符串”c123yz45! 786 *56abc123456789”,則a數(shù)組中的數(shù)值分別為:{123,45,786,56,1234,5678,9} #include <stdio.h> #include <ctype.h> void divfun(char *s, int a) { char *p=s; int i=0,k,sum; while(*p) if(isdigit(*p)) { sum=*p-'0';p++;k=1; while(isdigit(*p)) { k++; if(k<=4){sum=sum+*p-'0';p++;} else{a[i++]=sum; k=1;sum=*p-'0';p++; } } a[i++]=sum; } else p++; return i-1; } main() { char *str;int i,n,num[40]; gets(str);n=divfun(str,num); puts(str); for(i=0;i<=n;i++) printf("%6d",num[i]); printf("\n"); } 編程題目: 編寫函數(shù)int value(int bb[ ]),在三位正整數(shù)中尋找所有符合以下條件的正整數(shù):它既是完全平方數(shù)并且又有兩位數(shù)字相同。例如:144是12的平方并且有兩位數(shù)字相同,因此144是符合條件的數(shù)。將找到的數(shù)按從小到大的次序依次存入bb數(shù)組中,函數(shù)返回bb數(shù)組中有效數(shù)據(jù)的個數(shù) 編寫main函數(shù),調(diào)用函數(shù)value,將結(jié)果數(shù)組中全部有效數(shù)據(jù)按照每行5個數(shù)據(jù)的格式保存到文件myf2.out中。 符合上述條件的整數(shù)有:100,121,144,225,400,441,484,676,900 1.將源文件取名為myf2.c,輸出結(jié)果文件取名為myf2.out。 ‘ 2.?dāng)?shù)據(jù)文件的打開、使用和關(guān)閉等操作均用C標(biāo)準(zhǔn)庫中緩沖文件系統(tǒng)的文件操作函數(shù) 實(shí)現(xiàn)。 3.源程序文件和運(yùn)行結(jié)果文件均須保存在T:盤的根目錄下,供閱卷用。 4.不要將myf2.obj、myf2.exe保存到T:盤中。 改錯題目答案: (1) void divfun(char *s, int a) 修改為:int divfun(char *s, int a) (2) void divfun(char *s, int a) 修改為:int divfun(char *s, int a[ ]) (3) if(k<=4){sum=sum+*p-'0';p++;} 修改為:if(k<=4){sum=sum*10+*p-'0';p++;} (4) char *str; 修改為:char str[80]; 編程題目答案: #include <stdio.h> int value(int bb[ ]) { int i,i2,j=0,a,b,c; for(i=10;i<32;i++) { i2=i*i; a=i2/100; b=i2/10%10; c=i2%10; if((a==b||b==c||c==a)&&!(a==b&&b==c)) /*兩個數(shù)相同*/ bb[j++]=i2; } return j; } main() { int i,n,zz[32]={0}; FILE *fp; if((fp=fopen("myf2.out","w"))==NULL) { printf("Can't open file!");exit(0); } n=value(zz); for(i=0;i<n;i++) { printf("%7d\n",zz[i]); fprintf(fp,(i+1)%5?"%7d":"%7d\n",zz[i]); } fprintf(fp,"\n"); fclose(fp); } |
|