閱讀屋>筆試> 計算機二級筆試模擬真題

計算機二級筆試模擬真題

計算機二級筆試模擬真題

  (考試時間120分鐘,滿分100分)

  一、選擇題((1)-(40)題每小題1分,(41)-(50)題每小題2分,共和60分)

  下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項塗寫在答題卡相應位置上,答在試卷上不得分。

  (1) 在計算機中,一個字長的二進位制位數是

  A) 8 B) 16 C) 32 D) 隨CPU的型號而定

  (2) 計算機網路的突出優點是

  A) 速度快 B) 資源共享 C) 精度高 D) 容量大

  (3) 計算機網路能傳送的資訊是:

  A) 所有的多媒體資訊 B) 只有文字資訊

  C) 除聲音外的所有資訊 D) 文字和影象資訊

  (4) 切斷計算機電源後,下列儲存器中的資訊會丟失的是:

  A) RAM B) ROM C) 軟盤 D) 硬碟

  (5) 十進位制數127轉換成二進位制數是

  A) 11111111 B) 01111111 C) 10000000 D) 11111110

  (6) 要想列印存放在當前盤當前目錄上所有副檔名為.TXT 的檔案內容, 應該使用的DOS命令為

  A) DIR *.TXT>PRN B) TYPE *.TXT>PRN

  C) COPY *.TXT PRN D) COPY *.TXT>PRN

  (7) 將當前盤當前目錄及其子目錄中的全部檔案 (總量不足1.2MB) 複製到一張空的A盤的根目錄下,應該使用的DOS命令為

  A) XCOPY *.*A: /M B) XCOPY *.*A: /S

  C) XCOPY *.*A: /P D) XCOPY *.*A: /A

  (8) 在C盤根目錄下執行PROMPT $p$g命令之後,DOS的提示符變為

  A) C:> B) C:> C) C> D) C:

  (9) DOS命令 "COPY CON DISP"中的CON代表

  A) 子目錄 B) 磁碟檔案 C) 鍵盤 D) 顯示器

  (10) 結構化程式設計所規定的三種基本控制結構是

  A) 輸入、處理、輸出 B) 樹形、網形、環形

  C) 順序、選擇、迴圈 D) 主程式、子程式、函式

  (11) 要把高階語言編寫的源程式轉換為目標程式,需要使用

  A) 編輯程式 B) 驅動程式 C) 診斷程式 D) 編譯程式

  (12) 英文小寫字母d的ASCII碼為100,英文大寫字母D的ASCII碼為

  A) 50 B) 66 C) 52 D) 68

  (13) Windows環境下,PrintScreen鍵的作用是

  A) 複製當前視窗到剪貼簿 B) 列印當前視窗的內容

  C) 複製螢幕到剪貼簿 D) 列印螢幕內容

  (14) 在Windows環境下,為了終止應用程式的執行,應

  A) 關閉該應用程式視窗 B) 最小化該應用程式視窗

  C) 雙擊該應用程式視窗的.標題欄 D) 將該應用程式視窗移出螢幕

  (15) 下列各帶有萬用字元的檔名中,能代表檔案XYZ.TXT的是

  A) *Z.? B) X*.* C) ?Z,TXT D) ?.?

  (16) 若有定義:int a=8,b=5,C;,執行語句C=a/b+0.4;後,c的值為

  A) 1.4 B) 1 C) 2.0 D) 2

  (17) 若變數a是int型別,並執行了語句:a= A +1.6;,則正確的敘述是

  A) a的值是字元C B) a的值是浮點型

  C) 不允許字元型和浮點型相加 D) a的值是字元 A 的ASCII值加上1。

  (18) 以下程式段的輸出結果是

  int a=1234;

  printf("%2d ",a);

  A) 12 B) 34 C) 1234 D) 提示出錯、無結果

  (19) 以下選項中不屬於C語言的型別的是

  A) signed short imt B) unsigned long int

  C) unsigned int D) long short

  (20) 若有說明語句:int a,b,c,*d=&c;,則能正確從鍵盤讀入三個整數分別賦給變數a、b、c的語句是

  A) scanf("%d%d%d",&a,&b,d); B) scanf("%d%d%d",&a,&b,&d);

  C) scanf("%d%d%d",a,b,d); D) scanf("%d%d%d",a,b,*d);

  (21) 在16位C編譯系統上,若定義long a; ,則能給a賦40000的正確語句是

  A) a=20000+20000; B) a=4000*10;

  C) a=30000+10000; D) a=4000L*10L;

  (22) 以下敘述正確的是

  A) 可以把define和if定義為使用者識別符號

  B) 可以把define定義為使用者識別符號,但不能把if定義為使用者識別符號

  C) 可以把if定義為使用者識別符號,但不能把define定義為使用者識別符號

  D) define和if都不能定義為使用者識別符號

  (23) 若定義:int a=511,*b=&a;, 則printf("%d ",*b);的輸出結果為

  A) 無確定值 B) a的地址 C) 512 D) 511

  (24) 以下程式的輸出結果是

  main()

  { int a=5,b=4,c=6,d;

  printf("%d ",d=a>b?(a>c?a:c):(b));

  }

  A) 5 B) 4 C) 6 D) 不確定

  (25) 以下程式中,while迴圈的迴圈次數是

  main()

  { int i=0;

  while(i<10)

  { if(i<1) continue;

  if(I==5) break;

  i++;

  }

  ......

  }

  A) 1 B) 10

  C) 6 D) 死迴圈,不能確定次數

  (26) 以下程式的輸出結果是

  main()

  { int a=0,i;

  for(i=;i<5;i++)

  { switch(i)

  { case 0:

  case 3:a+=2;

  case 1:

  case 2:a+=3;

  default:a+=5;

  }

  }

  printf("%d ",a);

  }

  A) 31 B) 13 C) 10 D) 20

  (27) 以下程式的輸出結果是

  main()

  { int a=4,b=5,c=0,d;

  d=!a&&!b||!c;

  printf("%d ",d);

  }

  A) 1 B) 0 C) 非0的數 D) -1

  (28) 以下程式的輸出結果是

  #include

  main()

  { int i=0,a=0;

  while(i<20)

  { for(;;)

  { if((i%10)==0) break;

  else i--;

  }

  i+=11; a+=i;

  }

  printh("%d ",a);

  }

  A) 21 B) 32 C) 33 D) 11

  (29) 以下程式的輸出結果是

  char cchar ch)

  {

  if(ch>= A &&ch<= Z ) ch=ch- A + a ;

  return ch;

  }

  main()

  { char s[]="ABC+abc=defDEF",*p=s;

  while(*p)

  { *p=c*p);

  p++;

  }

  printf("%s ",s);

  }

  A) abc+ABC=DEFdef B) abc+abc=defdef

  C) abcaABCDEFdef D) abcabcdefdef

  (30) 以下程式的輸出結果是

  int f()

  { static int i=0;

  int s=1;

  s+=i; i++;

  return s;

  }

  main()

  { int i,a=0;

  for(i=0;i<5;i++) a+=f();

  printf("%d ",a);

  }

  A) 20 B) 24 C) 25 D) 15

  (31) 以下程式段的輸出結果是

  char s[]="141141abc ";

  printf ("%d ",strlen(s));

  A) 9 B) 12 C) 13 D) 14

  (32) 若有以下程式

  #include

  void f(int n);

  main()

  { void f(int n);

  f(5);

  }

  void f(int n)

  { printf("%d ",n); }

  則以下敘述中不正確的是

  A) 若只在主函式中對函式f進行說明,則只能在主函式中正確呼叫函式f

  B) 若在主函式前對函式f進行說明,則在主函式和其後的其它函式中都可以正確呼叫函式f

  C) 對於以上程式,編譯時系統會提示出錯資訊:提示對對f函式重複說明

  D) 函式f無返回值,所以可用void將其型別定義為無值型

  (33) 以下程式呼叫findmax函式返回陣列中的最大值

  findmax(int *a,int n)

  { int *p,*s;

  for(p=a,s=a; p-a<n; p++)

  if ( ) s=p;

  return(*s);

  }

  main()

  { int x[5]={12,21,13,6,18};

  printf("%d ",findmax(x,5));

  }

  在下劃線處應填入的是

  A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s

  (34) 以下程式的輸出結果是

  main()

  { char cf[3][5]={"AAAA","BBB","CC"};

  printf(""%s" ",ch[1]);

  }

  A) "AAAA" B) "BBB" C) "BBBCC" D) "CC"

  (35) 在C語言中,形參的預設儲存類是

  A) auto B) register C) static D) extern

  (36) 若指標p已正確定義,要使p指向兩個連續的整型動態儲存單元,不正確的語句是

  A) p=2*(int*)malloc(sizeof(int));

  B) p=(int*)malloc(2*sizeof(int));

  C) p=(int*)malloc(2*2);

  D) p=(int*)calloc(2,sizeof(int));

  (37) 以下程式的輸出結果是

  main()

  { char x=040;

  printf("%0 ",x<<1);

  }

  A) 100 B) 80 C) 64 D) 32

  (38) 若要開啟A盤上user子目錄下名為abc.txt的文字檔案進行讀、寫操作,下面符合此要求的函式呼叫是

  A) fopen("A:userabc.txt","r") B) fopen("A:userabc.txt","r+")

  C) fopen("A:userabc.txt","rb") C) fopen("A:userabc.txt","w")

  (39) 以下不能正確進行字串賦初值的語句是

  A) char str[5]="good!"; B) char str[]="good!";

  C) char *str="good!"; D) char str[5]={ g , o , o , d };

  (40) 若有下面的說明和定義:

  struct test

  { int ml; char m2; float m3;

  union uu {char ul[5]; int u2[2];} ua;

  } myaa;

  則sizeof(struct test )的值是

  A) 12 B) 16 C) 14 D) 9

  (41) 若有定義:int aa[ 8];。則以下表達式中不能代表陣列元aa[1]的地址的是

  A) &aa[0]+1 B) &aa[1] C) &aa[0]++ D) aa+1

  (42) 以下程式的輸出結果是

  f(int b[],int m,int n)

  { int i,s=0;

  for(i=m;i<n;i=i+2) s=s+b[i];

  return s;

  }

  main()

  {int x,a[]={1,2,3,4,5,6,7,8,9};

  x=f(a,3,7);

  printf("%d ",x);

  }

  A) 10 B) 18 C) 8 D) 15

  (43) 若有以下定義和語句:

  int s[4][5],(*ps)[5];

  ps=s;

  則對s陣列元素的正確引用形式是

  A) ps+1 B) *(ps+3) C) ps[0][2] D) *(ps+1)+3

  (44) 以下程式的輸出結果是

  main()

  { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

  for(i=0;i<3;i++)

  for(j=i;j<=i;j++) t=t+b[i][b[j][j]];

  printf("%d ",t);

  }

  A) 3 B) 4 C) 1 D) 9

  (45) 以下程式的輸出結果是

  #include

  #include

  main()

  { char b1[8]="abcdefg",b2[8],*pb=b1+3;

  while (--pb>=b1) strcpy(b2,pb);

  printf("%d ",strlen(b2));

  }

  A) 8 B) 3 C) 1 D) 7

  (46) 在說明語句:int *f();中,識別符號f代表的是

  A) 一個用於指向整型資料的指標變數

  B) 一個用於指向一維陣列的行指標

  C) 一個用於指向函式的指標變數

  D) 一個返回值為指標型的函式名

  (47) 不合法的main函式命令列引數表示形式是

  A) main(int a,char *c[]) B) main(int arc,char **arv)

  C) main(int argc,char *argv) D) main(int argv,char *argc[])

  (48) 以下程式的輸出的結果是

  int x=3;

  main()

  { int i;

  for (i=1;i<x;i++) incre();

  }

  ncre()

  { staic int x=1;

  x*=x+1;

  printf(" %d",x);

  }

  A) 3 3 B) 2 2 C) 2 6 D) 2 5

  (49) 若以下定義:

  struct link

  { int data;

  struck link *next;

  }a,b,c,*p,*q;

  且變數a和b之間已有如下圖所示的連結串列結構:

  a b

  data next data next

  ┌──┬──┐ ┌──┬──┐

  │ 5 │ ┼──→ │ 9 │  │

  └──┴──┘ └──┴──┘

  ↑p

  c

  data next

  ┌──┬──┐

  │ 7 │ │

  └──┴──┘

  ↑q

  指標p指向變數a,q指向變數c。則能夠把c插入到a和b 之間並形成新的連結串列的語句組是:

  A) a.next=c; c.next=b; B) p.next=q; q.next=p.next;

  C) p->next=&c; q->next=p->next; D) (*p).next=q; (*q).next=&b;

  (50) 設有以下說明語句

  typedef struct

  { int n;

  char ch[8];

  }PER;

  則下面敘述中正確的是

  A) PER 是結構體變數名 B) PER是結構體型別名

  C) typedef struct 是結構體型別 D) struct 是結構體型別名

  二、填空題(每空2分,共40分)

  請將每一個空的正確答案寫在答案卡上,答在試卷上不得分。

  (1) 為了要將當前盤目錄中的可執行程式ABC.EXE的輸出結果存放到當前盤當前目錄中的檔案OUT.TXT中,則應使用的DOS命令為【1】 。

  (2) 計算機網路分為廣域網和區域網,因特網屬於【2】 。

  (3) 要想在當前目錄下方便地執行C盤UCDOS目錄中的程式,就應該先執行預設搜尋路徑的命令,該DOS命令為【3】 。

  (4) 要檢視當前目錄中副檔名為.DAT的所有檔案目錄,應該使用的DOS 命令為【4】 。

  (5) 在Windows環境下,當進行復制操作時,其複製的內容將存放在【5】中

  (6) 若從鍵盤輸入58,則以下程式輸出的結果是 【6】 。

  main()

  { int a;

  scanf("%d",&a);

  if(a>50) printf("%d",a);

  if(a>40) printf("%d",a);

  if(a>30) printf("%d",a);

  }

  (7) 以下程式的輸出結果是【7】 。

  main()

  { int a=177;

  printf("%o ",a);

  }

  (8) 以下程式的輸出結果是【8】 。

  main()

  { int a=0

  a+=(a=8);

  printf("%d ",a);

  }

  (9) 以下程式輸出的結果是【9】 。

  main()

  { int a=5,b=4,c=3,d;

  d=(a>b>c);

  printf("%d ",d);

  }

  (10) 以下定義的結構體型別擬包含兩個成員,其中成員變數info用來存入整形資料;成員變數link是指向自身結構體的指標.請將定義補充完整。

  struct node

  {int info;

  【10】 link;

  }

  (11) 以下程式的輸出結果是【11】 。

  main()

  {int s,i;

  for(s=0,i=1;i<3;i++,s+=i);

  printf("%d ",s);

  }

  (12) 以下程式的輸出結果是【12】 。

  main()

  { char *p="abcdefgh",*r;

  long *q;

  q=(long*)p;

  q++;

  r=(char*)q;

  printf("%s ",r);

  }

  (13) 以下程式的輸出結果是【13】 。

  main()

  { char s[]="abcdef";

  s[3]=  ;

  printf("%s ",s);

  }

  (14) 以下程式的輸出結果是【14】 。

  main()

  { int x=0;

  sub(&x,8,1);

  printf("%d ",x);

  }

  sub(int *a,int n,int k)

  { if(k<=n) sub(a,n/2,2*k);

  *a+=k;

  }

  (15) 設有如下宏定義

  #define MYSWAP(z,x,y) {z=x; x=y; y=z;}

  以下程式段透過宏呼叫實現變數a、b內容交換,請填空。

  float a=5,b=16,c;

  MYSWAP( 【15】 ,a,b);

  (16) 以下程式用來統計檔案中字元個數。請填空。

  #include "stdio.h"

  main()

  { FILE *fp; long num=0L;

  if((fp=fopen("fname.dat","r"))==NULL)

  { pirntf("Open error "); exit(0);}

  while( 【16】 )

  { fgetc(fp); num++;}

  printf("num=%1d ",num-1);

  fclose(fp);

  }

  (17) 以下程式中,select 函式的功能是:在N行M列的二維陣列中,選出一個最大值作為函式值返回,並透過形參傳回此最大值所在的行下標。請填空。

  #define N 3

  #define M 3

  select(int a[N][M],int *n)

  { int i,j,row=1,colum=1;

  for(i=0;i<N;i++)

  for(j=0;j<M;j++)

  if(a[i][j]>a[row][colum]){row=i;colum=j;}

  *n= 【17】;

  return 【18】;

  }

  main()

  {int a[N][M]={9,11,23,6,1,15,9,17,20},max,n;

  max=select(a,&n);

  printf("max=%d,line=%d ",max,n);

  }

  (18) mystrlen函式的功能是計算str所指字串的長度,並作為函式值返回。請填空。

  int mystrlen(char *str)

  { int i;

  for(i=0; 【19】!=  ;i++);

  return(【20】);

  }

  一、選擇題(⑴-(40)題每題1分,(41)-(50)題每題2分,其60分)

  (1) D (2) B (3) A (4) A (5) B (6) C (7) B (8) B (9) C (10) C

  (11) D (12) D (13) C (14) A (15) B (16) B (17) D (18) C (19) D (20) A

  (21) D (22) B (23) D (24) C (25) D (26) A (27) A (28) B (29) B (30) D

  (31) A (32) C (33) B (34) B (35) A (36) A (37) A (38) B (39) A (40) A

  (41) C (42) A (43) C (44) B (45) D (46) D (47) C (48) C (49) C (50) B

  二、填空題答案(每空2分,共40分)

  (1) 【1】 ABC >OUT.TXT 或者 ABC.EXE>OUT.TXT

  (2) 【2】 廣域網

  (3) 【3】 PATH C:UCDOS 或其它等效命令

  (4) 【4】 DIR *.DAT 或 DIR *.DAT/P 或 DIR *.DAT/W 或帶其它引數也可

  (5) 【5】 剪貼簿

  (6) 【6】 585858

  (7) 【7】 261

  (8) 【8】 16

  (9) 【9】 0

  (10) 【10】 struct node *

  (11) 【11】 5

  (12) 【12】 efgh

  (13) 【13】 abc

  (14) 【14】 7

  (15) 【15】 c

  (16) 【16】 !feof(fp)

  (17) 【17】 row

  (18) 【18】 a[row][colum]

  (19) 【19】 *(str+i)str[i]

  (20) 【20】 i2002年4月全國計算機等級考試 二級C 筆試試卷

【計算機二級筆試模擬真題】相關文章: