範文齋

位置:首頁 > 職場範文 > 筆試

計算機二級筆試模擬真題

筆試2.16W

(考試時間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) 要想打印存放在當前盤當前目錄上所有擴展名爲 的文件內容, 應該使用的DOS命令爲

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

C) COPY * PRN D) COPY *>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) 下列各帶有通配符的文件名中,能代表文件的是

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子目錄下名爲的'文本文件進行讀、寫操作,下面符合此要求的函數調用是

A) fopen("A:","r") B) fopen("A:","r+")

C) fopen("A:","rb") C) fopen("A:","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) =c; =b; B) =q; =;

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

(50) 設有以下說明語句

typedef struct

{ int n;

char ch[8];

}PER;

則下面敘述中正確的是

A) PER 是結構體變量名 B) PER是結構體類型名

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

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

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

(1) 爲了要將當前盤目錄中的可執行程序的輸出結果存放到當前盤當前目錄中的文件中,則應使用的DOS命令爲【1】 。

(2) 計算機網絡分爲廣域網和局域網,因特網屬於【2】 。

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

(4) 要查看當前目錄中擴展名爲的所有文件目錄,應該使用的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("","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 > 或者 >

(2) 【2】 廣域網

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

(4) 【4】 DIR * 或 DIR * 或 DIR * 或帶其它參數也可

(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 筆試試卷