?? 2001年9月二級筆試試題c.txt
字號:
全國計算機等級考試二級筆試試卷
基礎部分和C語言程序設計
(考試時間:120分鐘,滿分100分)
2001年9月
一、選擇題((1)-(40)題每題1分,(41)-(50)題每題2分,共60分)
下列各題A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置上,答在試卷上不得分。
(l) 在計算機系統中,一個字節的二進制位數為
A) 16 B) 8 C) 4 D) 由 CPU的型號決定
(2) 存儲 16×16點陣的一個漢字信息,需要的字節數為
A) 32 B) 64 C) 128 D) 256
(3) 英文大寫字母B的ASCII碼為42H,英文小寫字母b的ASCII碼為
A) 43H B) 84H C) 74H D) 62H
(4) 下列計算機語言中,CPU能直接識別的是
A) 自然語言 B) 高級語言 C) 匯編語言 D)機器語言
(5) 在計算機領域中,所謂"裸機"是指
A) 單片機 B) 單板機
C) 不安裝任何軟件的計算機 D) 只安裝操作系統的計算機
(6) 下列帶有通配符的文件名中,能代表文件ABCDEF.DAT的是
A) A*.* B) ?F.* C) *.? D) AB?.*
(7) 下列DOS命令中,執行時不會發生錯誤的是
A) TYPE *.TXT B) DIR *.TXT
C) REN A.TXT A:b.TXT D) COPY *.TXT>CON
(8) 設當前盤為C盤,C盤的當前目錄為\A\B\C。下列DOS 命令中能正確執行的是
A) MD \ B) MD A:\ C) MD \A\B D) CD C:
(9) 為了將C:USER中的文件FILE.TXT同名復制到A盤根目錄下,下列DOS命令中能正確執行的是
A) TYPE C:\USER\FILE.TXT > A:\FILE.TXT
B) TYPE C:\USER\FILE.TXT A:\FILE.TXT
C) COPY C:\USER\FILE.TXT > A:\FILE.TXT
D) COPY C:\USER\FILE.TXT
(10) 在Windows下,當一個應用程序窗口被最小化后,該應用程序
A) 終止運行 B) 暫停運行 C) 繼續在后臺運行 D) 繼續在前臺運行
(11) 在Windows環境下,下列操作中與剪貼板無關的是
A) 剪切 B) 復制 C) 粘貼 D) 刪除
(12) 在Windows環境下,實現窗口移動的操作是
A) 用鼠標拖動窗口中的標題欄 B) 用鼠標拖動窗口中的控制按鈕
C) 用鼠標拖動窗口中的邊框 D) 用鼠標拖動窗口中的任何部位
(13) 一臺計算機連入計算機網絡后,該計算機
A) 運行速度會加快 B) 可以共享網絡中的資源
C) 內存容量變大 D) 運行精度會提高
(14) 不能作為計算機網絡中傳輸介質的是
A) 微波 B) 光纖 C) 光盤 D) 雙絞線
(15) 下列各項中,不屬于多媒體硬件的是
A) 聲卡 B) 光盤驅動器 C) 顯示器 D) 多媒體制作工具
(16) 在C語言中,合法的長整型常數是
A) OL B) 4962710 C) 324562& D) 216D
(17) 以下有4組用戶標識符,其中合法的一組是
A) For B) 4d C) f2_G3 D) WORD
-sub DO IF void
Case Size abc define
(18) 以下選項中合法的字符常量是
A)"B" B) '\010' C) 68 D) D
(19) 假定x和y為 double型,則表達式x=2,y=x+3/2的值是
A) 3.500000 B) 3 C) 2.000000 D) 3.000000
(20) 以下合法的賦值語句是
A) x=y=100 B) d--; C) x+y; D) c=int(a+b);
(21) 設正x、y均為整型變量,且x=10 y=3,則以下語句的輸出結果是
pprintf("%d,%d\n",x--,--y);
A) 10,3 B) 9.3 C) 9.2 D)10.2
(22) x、y、z被定義為int型變量,若從鍵盤給x、y、z輸入數據,正確的輸入語句是
A) INPUT x、y、z; B) scanf("%d%d%d",&x,&y,&z);
C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z);
(23) 以下程序的輸出結果是
main()
{ int a=3;
printf("%d\n",(a+a-=a*a) );
}
A) -6 B)12 C) 0 D) -12
(24) 設 a、b、C、d、m、n均為 int型變量,且 a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達式 (m=a>b)&&(n=c>d)運算后,n的值位為
A) 0 B) 1 C)2 D) 3
(25) 閱讀以下程序:
main()
{ int x;
scanf("%d",&x);
if(x--<5) printf("%d"'x);
else printf("%d"'x++);
}
程序運行后,如果從鍵盤上輸人5,則輸出結果是
A)3 B) 4 C) 5 D) 6
(26) 假定w、x、y、z、m均為int型變量,有如下程序段:
w=1; x=2; y=3; z=4;
m=(w<x)?w; x; m=(m<y)?m;y; m=(m<z)?m; z;
則該程序運行后,m的值是it
A) 4 B) 3 C) 2 D) 2
(27) t為int類型,進人下面的循環之前,t的值為0
while( t=l )
{ …… }
則以下敘述中正確的是
A) 循環控制表達式的值為0 B) 循環控制表達式的值為1
C) 循環控制表達式不合法 D) 以上說法都不對
(28) 以下程序的輸出結果是
main()
{ int num= 0;
while(num<=2)
{ num++; printf("%d\n",num);
}
A) 1 B) 1 C)1 D) l
2 2 2
3 3
4
(29) 以下各選項企圖說明一種新的類型名,其中正確的是
A) typedef v1 int; B) typedef v2=int;
C) typedefv1 int v3; D) typedef v4: int;
(30) 在調用函數時,如果實參是簡單變量,它與對應形參之間的數據傳遞方式是
A) 地址傳遞 B) 單向值傳遞
C) 由實參傳給形參,再由形參傳回實參 D) 傳遞方式由用戶指定
(31) 以下函數值的類型是
fun ( float x )
{ float y;
y= 3*x-4;
return y;
}
A) int B) 不確定 C) void D) float
(32 ) 設有以下函數:
f ( int a)
{ int b=0;
static int c = 3;
b++; c++;
return(a+b+c);
}
如果在下面的程序中調用該函數,則輸出結果是
main()
{ int a = 2, i;
for(i=0;i<3;i++) printf("%d\n",f(a));
}
A) 7 B) 7 C) 7 D) 7
8 9 10 7
9 11 13 7
(33) 以下程序的輸出結果是
main()
{ char c='z';
printf("%c",c-25);
}
A) a B) Z C) z-25 D) y
(34) 以下選項中,非法的字符常量是
A) '\t' B) '\17' C)"n" D) '\xaa'
(35) 若有說明:int i, j=2,*p=&i;,則能完成i=j賦值功能的語句是
A) i=*p; B) p*=*&j; C) i=&j; D) i=**p;
(36) 以下定義語句中,錯誤的是
A) int a[]={1,2}; B) char *a[3];
C) char s[10]="test"; D) int n=5,a[n];
(37) 假定int類型變量占用兩個字節,其有定義:int x[10]={0,2,4};,則數組x在內存中所占字節數是
A) 3 B) 6 C) 10 D) 20
(38) 以下程序的輸出結果是
main()
{ int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A) 258 B) 741 C) 852 D) 369
(39) 以下數組定義中不正確的是
A) int a[2][3];
B) int b[][3]={0,1,2,3};
C) int c[100][100]={0};
D) int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
(40) 以下程序的輸出結果是
main()
{ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0];
}
A) 0650 B) 1470 C) 5430 D) 輸出值不定
(41) 以下程序的輸出結果是
main()
{ char st[20]= "hello\0\t\\\";
printf(%d %d \n",strlen(st),sizeof(st));
}
A) 9 9 B) 5 20 C) 13 20 D) 20 20
(42) 以下選項中,不能正確賦值的是
A) char s1[10];s1="Ctest";
B) char s2[]={'C', 't', 'e', 's', 't'};
C) char s3[20]="Ctest";
D) char *s4="Ctest\n"
(43) 以下程序的輸出結果是
amovep(int p, int (a)[3],int n)
{ int i, j;
for( i=0;i<;i++)
for(j=0;j<n;j++){ *p=a[i][j];p++; }
}
main()
{ int *p,a[3][3]={{1,3,5},{2,4,6}};
p=(int *)malloc(100);
amovep(p,a,3);
printf("%d %d \n",p[2],p[5]);free(p);
}
A) 56 B) 25 C) 34 D) 程序錯誤
(44) 以下程序的輸出結果是
struct HAR
{ int x, y; struct HAR *p;} h[2];
main()
{ h[0],x=1;h[0];y=2;
h[1],x=3;h[1];y=4;
h[0],p=&h[1],p=h;
printf("%d %d \n",(h[0],p)->x,(h[1],p)->y);
}
A) 12 B) 23 C) 14 D) 32
(45) 以下程序的輸出結果是
main()
{ int a, b;
for(a=1, b=1; a<=100; a++)
{ if(b>=10) break;
if (b%3= =1)
{ b+=3; continue; }
}
printf("%d\n",a);
}
A) 101 B) 6 C) 5 D) 4
(46) 以下程序的輸出結果是
union myun
{ struct
{ int x, y, z; } u;
int k;
} a;
main()
{ a.u.x=4; a.u.y=5; a.u.z=6;
a.k=0;
printf(%d\n",a.u.x);
}
A) 4 B) 5 C) 6 D) 0
(47) 以下程序的輸出結果是
int a, b;
void fun()
{ a=100; b=200; }
main()
{ int a=5, b=7;
fun();
printf("%d%d \n", a,b);
}
A) 100200 B) 57 C) 200100 D) 75
(48) 以下程序的輸出結果是
#define M(x,y,z) x*y+z
main()
{ int a=1,b=2, c=3;
printf("%d\n", M(a+b,b+c, c+a));
}
A) 19 B) 17 C) 15 D) 12
(49) 整型變量x和y的值相等、且為非0值,則以下選項中,結果為零的表達式是
A) x || y B) x | y C) x & y D) x ^ y
(50) 下面的程序執行后,文件testt.t中的內容是
#include <stdio.h>
void fun(char *fname.,char *st)
{ FILE *myf; int i;
myf=fopen(fname,"w" );
for(i=0;i<strlen(st); i++)fputc(st[i],myf);
fclose(myf);
}
main()
{ fun("test","new world"; fun("test","hello,"0;)
A)hello, B)new worldhello, C)new world D) hello, rld
二、填空題(每空2分,共40分)
請將每一個空的正確答案寫在答題卡【l】至【20】序號的橫線上,答在試卷上不得分。
(l)為了將當前盤當前目錄中的所有文本文件(擴展名為.TXT)的內容打印輸出,正確的單條DOS命令為 【l】 。
(2)設當前盤為C盤。為了在A盤的當前自錄\USER下建立一個新的子目錄X,正確的DOS命令為 【2】 。
(3)在 XCOPY、COPY、TIME三個 DOS命令中,屬于外部命令的是 【3】 。
(4)在32位的計算機中,一個字長等于【4】個字節。
(5)計算機網絡分為局域網和廣域網,因特網屬于 【5】 。
(6)語句:x++;?++x; x=x+1;?x=l+x; ,執行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同) 【6】 。
(7)設y是int型變量,請寫出判斷y為奇效的關系表達 【7】 。
(8)以下程序運行后的輸出結果是 【8】 。
main()
{ int i=10, j=0;
do
{ j=j+i; i-;
while(i>2);
printf("%d\n",j);
}
(9) 設有以下程序:
main()
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序運行后,如果從鍵盤上輸入1298;則輸出結果為 【9】 。
(10) 以下程序輸出的最后一個值是【10】 。
int ff(int n)
{ static int f=l;
f=f*n;
return f;
}
main()
{ int i;
for(I=1;I<=5;I++ printf("%d\n",ff(i));
}
(11) 以下函數的功能是:求x的y次方,請填空。
double fun( double x, int y)
{ int i;
double z;
for(i=1, z=x; i<y;i++) z=z* 【11】;
return z;
}
(12) 設有以下程序:
main()
{ int a, b, k=4, m=6, *p1=&k, *p2=&m;
a=pl==&m;
b=(*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=%d\n",b);
}
執行該程序后,a的值為【12】 ,b的值為【13】 。
(13) 若已定義:int a[10], i;,以下fun函數的功能是:在第一個循環中給前10個數組元素依次賦1、2、3、4、5、6、7、8、9、10;在第二個循環中使a數組前10個元素中的值對稱折疊,變成1、2、3、4、5、5、4、3、2、1。請填空。
fun( int a[ ])
{ int i;
for(i=1; i<=10; i++) 【14】=i;
for(i=0; i<5; i++) 【15】=a[i];
}
(14) 以下程序運行后的輸出結果是 【16】 。
main()
{ char s[ ]="9876",*p;
for ( p=s ; p<s+2 ; p++) printf("%s\n", p);
}
(15) 若有定義語句: char s[100],d[100]; int j=0, i=0;,且s中已賦字符串,請填空以實現字符串拷貝。(注:不得使用逗號表達式)
while([i]){ d[j]= 【17】;j++;}
d[j]=0;
(16) 以下程序段用于構成一個簡單的單向鏈表,請填空。
struct STRU
{ int x, y ;
float rate;
【18】 p;
} a, b;
a.x=0; a.y=0; a.rate=0; a.p=&b;
b.x=0; b.y=0; b.rate=0; b.p=NULL;
(l7) 若有如下結構體說明:
struct STRU
{ int a, b ; char c; double d:
struct STRU p1,p2;
};
請填空,以完成對t數組的定義,t數組的每個元素為該結構體類型
【19】 t[20];
(18) 以下程序段打開文件后,先利用 fseek函數將文件位置指針定位在文件末尾,然后調用ftell函數返回當前文件位置指針的具體位置,從而確定文件長度,請填空。
FILE *myf; ling f1;
myf= 【20】 ("test.t","rb");
fseek(myf,0,SEEK_END); f1=ftel(myf);
fclose(myf);
printf("%d\n",f1);
〖完〗
--------------------------------------------------------------------------------
2001年9月全國計算機等級考試二級C筆試參考答案
一、選擇題((1)-(40)題每題1分,(41)-(50)題每題2分,共60分)
(1)B(2)A(3)D(4)D(5)C(6)A(7)B(8)D(9)A(10)C
(11)D(12)A(13)B(14)C(15)D(16)A(17)C(18)B(19)D(20)B
(21)D(22)B(23)D(24)C(25)B(26)D(27)B(28)B(29)C(30)B
(31)A(32)A(33)A(34)C(35)B(36)D(37)D(38)C(39)D(40)A
(41)B(42)A(43)A(44)D(45)D(46)D(47)B(48)D(49)D(50)A
二、填空題(每空2分,共40分)
(1)COPY *.TXT PRN 或XCOPY *.TXT PRN
(2)MD A:\USER\X MD A:X
(3) XCOPY
(4) 4
(5) 廣域網
(6)X+=1;
(7)(Y%2)==1
(8)52
(9)8921
(10)120
(11)x
(12)0
(13)7
(14)a[i-1]
(15)a[9-i]
(16)9876
876
(17)s[i++]
(18)struct STRU *
(19)struct STRU
(20)fopen
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -