網(wǎng)站首頁
分類導航
試題中心
下載中心
英語學習
繽紛校園
考試論壇
網(wǎng)站留言
客服中心
 2003年4月全國計算機等級考試二級C語言筆試試題
【字體:
2003年4月全國計算機等級考試二級C語言筆試試題
http://1glr.cn 來源:考試吧(Exam8.com) 點擊: 更新:2004-8-11

一、選擇題((1)-(40)題每題1分,(41)-(50)題每題2分,共60分)
下列各題A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置上,答在試卷上不得分。
(1) 用8位無符號二進制數(shù)能表示的最大十進制數(shù)為
A) 127 B) 128 C) 255 D) 256
(2) 在64位高檔微機中,一個字長所占的二進制位數(shù)為
A) 8 B) 16 C) 32 D) 64
(3) 在Windows環(huán)境下,為了復制一個對象,在用鼠標拖動該對象時應同時按住
A) Alt鍵 B) Esc鍵 C) Shift鍵 D) Ctrl鍵
(4) 在Windows菜單中,暗淡(灰色)的命令項表示該命令
A) 暫時不能用 B) 正在執(zhí)行 C) 包含下一層菜單 D) 包含對話框
(5) 在DOS環(huán)境下,為了得到TYPE命令的幫助信息,正確的DOS命令為
A) TYPE B) TYPE/H C) TYPE/* D) TYPE/?
(6) 下列選項中,能作為合法DOS文件名的是
A) ANP/A.DAT B) ABCCOM C) ECD.BASIC D) XY+Z.TXT
(7) 下列敘述中正確的是
A) 在Windows環(huán)境下,最大化的窗口是不能移動的
B) 在Windows環(huán)境下,應用程序窗口最小化后,該應用程序暫停執(zhí)行
C) 在Windows環(huán)境下,只有最小化的窗口才能關閉
D) 在Windows環(huán)境下,不能關閉最小化窗口
(8) 在Windows環(huán)境下,工具欄中用于完成復制操作的按鈕是
A) 打印按鈕 B) 剪切按鈕 C) 復制按鈕 D) 粘貼按鈕
(9) 在Windows環(huán)境下,若要將整個屏幕上顯示的內(nèi)容存入剪貼板,可以按
A) Ctrl+Printscreen鍵 B) Alt+Printscreen鍵
C) Shift+Printscreen鍵 D) Printscreen鍵
(10) 目前,計算機病毒擴散最快的途徑是
A) 通過軟件復制 B) 通過網(wǎng)絡傳播
C) 通過磁盤拷貝 D) 運行游戲軟件
(11) 以下敘述正確的是
A) C語言比其他語言高級
B) C語言可以不用編譯就能被計算機識別執(zhí)行
C) C語言以接近英語國家的自然語言和數(shù)學語言作為語言的表達形式
D) C語言出現(xiàn)的最晚、具有其他語言的一切優(yōu)點
(12) C語言中用于結構化程序設計的三種基本結構是
A) 順序結構、選擇結構、循環(huán)結構
B) if、switch、break
C) for、while、do-while
D) if、for、continue
(13) 在一個C語言程序中
A) main函數(shù)必須出現(xiàn)在所有函數(shù)之前
B) main函數(shù)可以在任何地方出現(xiàn)
C) main函數(shù)必須出現(xiàn)在所有函數(shù)之后
D) main函數(shù)必須出現(xiàn)在固定位置
(14) 下列敘述中正確的是
A) C語言中既有邏輯類型也有集合類型
B) C語言中沒有邏輯類型但有集合類型
C) C語言中有邏輯類型但沒有集合類型
D) C語言中既沒有邏輯類型也沒有集合類型
(15) 下列關于C語言用戶標識符的敘述中正確的是
A) 用戶標識符中可以出現(xiàn)下劃線和中劃線(減號)
B) 用戶標識符中不可以出現(xiàn)中劃線,但可以出現(xiàn)下劃線
C) 用戶標識符中可以出現(xiàn)下劃線,但不可以放在用戶標識符的開頭
D) 用戶標識符中可以出現(xiàn)下劃線和數(shù)字,它們都可以放在用戶標識符的開頭
(16) 若有以下程序段(n所賦的是八進制數(shù))
int m=32767,n=032767;
printf("%d,%o\n",m,n);
執(zhí)行后輸出結果是
A) 32767,32767
B) 32767,032767
C) 32767,77777
D) 32767,077777
(17) 下列關于單目運算符++、--的敘述中正確的是
A) 它們的運算對象可以是任何變量和常量
B) 它們的運算對象可以是char型變量和int型變量,但不能是float型變量
C) 它們的運算對象可以是int型變量,但不能是double型變量和float型變量
D) 它們的運算對象可以是char型變量、int型變量和float型變量
(18) 若有以下程序段
int m=0xabc,n=0xabc;
m-=n;
printf("%X\n",m);
執(zhí)行后輸出結果是
A) 0X0 B) 0x0 C) 0 D) 0XABC
(19) 有以下程序段
int m=0,n=0; char c='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若從鍵盤上輸入:10A10<回車>,則輸出結果是:
A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,0
(20) 有以下程序
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{ case 1: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
}
}
執(zhí)行后輸出的結果是
A) 011122 B) 012 C) 012020 D) 120
(21) 有以下程序
main()
{ int i=1,j=1,k=2;
if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k);
}
執(zhí)行后輸出的結果是
A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,3
(22) 有以下程序
main()
{ int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}
執(zhí)行后輸出的結果是
A) 2 B) 3 C) 4 D) 編譯時有錯,無結果
(23) 有以下程序
main()
{ int p[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<7&&p[i]%2){k=k+p[i]; i++;}
printf("%d\n",k);
}
執(zhí)行后輸出的結果是
A) 58 B) 56 C) 45 D) 24
(24) 有以下程序
main()
{ int i=0,s=0;
do{
if(i%2){i++;continue;}
i++;
s+=i;
} while(i<7);
printf("%d\n",s);
}
執(zhí)行后輸出的結果是
A) 16 B) 12 C) 28 D) 21
(25) 有以下程序
main()
{ int i=10,j=1;
printf("%d,%d\n",i--,++j);
}
執(zhí)行后輸出的結果是
A) 9,2 B) 10,2 C) 9,1 D) 10,1
(26) 有以下程序
main()
{ char a,b,c,*d;
a='\'; b='\xbc';
c='\0xab'; d="\0127";
printf("%c%c%c%c\n",a,b,c,*d);
}
編譯時出現(xiàn)錯誤,以下敘述中正確的是
A) 程序中只有a='\';語句不正確
B) b='\xbc';語句不正確
C) d="\0127";語句不正確
D) a='\';和 c='\0xab';語句都不正確
(27) main()
{int a=4,b=3,c=5,d,e,f;
d=f1(a,b); d=f1(d,c);
e=f2(a,b); e=f2(e,c);
f=a+b+c-d-e;
printf("%d,%d,%d\n",d,f,e);
}
執(zhí)行后輸出的結果是
A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 3,5,4
(28) 有以下程序
void f(int x,int y)
{ int t;
if(x<y){ t=x; x=y; y=t; }
}
main()
{ int a=4,b=3,c=5;
f(a,b); f(a,c); f(b,c);
printf("%d,%d,%d\n",a,b,c);
}
執(zhí)行后輸出的結果是
A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,5
(29) 若有一些定義和語句
#include <stdio.h>
int a=4,b=3,*p,*q,*w;
p=&a; q=&b; w=q; q=NULL;
則以下選項中錯誤的語句是
A) *q=0; B) w=p; C) *p=va; D) *p=*w;
(30)有以下程序
int *f(int *x,int *y)
{ if(*x<*y)
return x;
else
return y;
}
main()
{ int a=7,b=8,*p,*q,*r;
p=&a; q=&b;
r=f(p,q);
printf("%d,%d,%d\n",*p,*q,*r);
}
執(zhí)行后輸出結果是
A) 7,8,8 B) 7,8,7 C) 8,7,7 D) 8,7,8
(31)有以下程序
main()
{ char *s[]={"one","two","three"},*p;
p=s[1];
printf("%c,%s\n",*(p+1),s[0]);
}
執(zhí)行后輸出結果是
A) n,two B) t,one C) w,one D) o,two
(32)有以下程序
main()
{ int x[8]={8,7,6,5,0,0},*s;
s=x+3;
printf("%d\n",s[2]);
}
執(zhí)行后輸出結果是
A) 隨機值 B) 0 C) 5 D) 6
(33) 以下能正確定義數(shù)組并正確賦初值的語句是
A) int N=5,b[N][N];
B) int a[1][2]={{1},{3}};
C) int c[2][]={{1,2},{3,4}};
D) int d[3][2]={{1,2},{3,4}};
(34)有以下程序
main()
{ int m[][3]={1,4,7,2,5,8,3,6,9};
int i,j,k=2;
for(i=0;i<3;i++)
{ printf("%d ",m[k][i]); }
}
執(zhí)行后輸出結果是
A) 4 5 6 B) 2 5 8 C) 3 6 9 D) 7 8 9
(35) 以下函數(shù)的功能是:通過鍵盤輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。
#define N 10
void arrin(int x[N])
{ int i=0;
while(i<N)
scanf("%d",_________);
}
在下劃線處應填入的是
A) x+i B) &x[i+1] C) x+(i++) D) &x[++i]
(36) 有以下程序
main()
{ char s[]="\n123\\";
printf("%d,%d\n",strlen(s),sizeof(s));
}
執(zhí)行后輸出結果是
A) 賦初值的字符串有錯 B) 6,7 C) 5,6 D) 6,6
(37) 閱讀以下函數(shù)
fun(char *sl,char *s2)
{ int i=0;
while(sl[i]==s2[i]&&s2[i]!='\0') i++;
return(sl[i]=='\0'&&s2[i]=='\0');
}
此函數(shù)的功能是
A) 將s2所指字符串賦給s1
B) 比較s1和s2所指字符串的大小,若s1比s2的大,函數(shù)值為1,否則函數(shù)值為0
C) 比較s1和s2所指字符串是否相等,若相等,函數(shù)值為1,否則函數(shù)值為0
D) 比較s1和s2所指字符串的長度,若s1比s2的長,函數(shù)值為1,否則函數(shù)值為0
(38) 以下敘述中正確的是
A) 全局變量的作用域一定比局部變量的作用域范圍大
B) 靜態(tài)(static)類別變量的生存期貫穿于整個程序的運行期間
C) 函數(shù)的形參都屬于全局變量
D) 未在定義語句中賦初值的auto變量和static變量的初值都是隨機值
(39) 設有如下說明
typedef struct
{ int n; char c; double x;}STD;
則以下選項中 ,能正確定義結構體數(shù)組并賦初值的語句是
A) STD tt[2]={{1,'A',62},{2,'B',75}};
B) STD tt[2]={1,"A",62,2,"",75};
C) struct tt[2]={{1,'A'},{2,'B'}};
D) struct tt[2]={{1,"A",62.5},{2,"B",75.0}};
(40) 有以下程序
main()
{ union{ unsigned int n;
unsigned char c;
}ul;
ul.c='A';
printf("%c\n",ul.n);
}
執(zhí)行后輸出結果是
A) 產(chǎn)生語法錯 B) 隨機值 C) A D) 65
(41) 有以下程序
main()
{ char str[]="xyz",*ps=str;
while(*ps) ps++;
for(ps--;ps-str>=0;ps--) puts(ps);}
執(zhí)行后輸出結果是
A) yz<回車>xyz B) z<回車>yz
C) z<回車>yz<回車>xyz D) x<回車>xy<回車>xyz
(42) 有以下程序
main()
{int a[][3]={{1,2,3},{4,5,0}},(*pa)[3],i;
pa=a;
for(i=0;i<3;i++)
if(i<2) pa[1][i]=pa[1][i]-1;
else pa[1][i]=1;
printf("%d\n",a[0][1]+a[1][1]+a[1][2]);
}
執(zhí)行后輸出結果是
A) 7 B) 6 C) 8 D) 無確定值
(43) 有以下程序
void fun(int *a,int i,int j)
{ int t;
if (i<j)
{ t=a[i];a[i]=a[j];a[j]=t;
fun(a,++i,--j);
}
}
main()
{ int a[]={1,2,3,4,5,6},i;
fun(a,0,5);
for(i=0;i<6;i++)
printf("%d",a[i]);
}
執(zhí)行后輸出結果是
A) 6 5 4 3 2 1 B) 4 3 2 1 5 6
C) 4 5 6 1 2 3 D) 1 2 3 4 5 6
(44) 有以下程序
main(int argc,char *argv[])
{ int n,i=0;
while(argv[1][i]!='\0')
{ n=fun(); i++;}
printf("%d\n",n*argc);
}
int fun()
{ static int s=0;
s+=1;
return s;
}
假設程序編譯、連接后生成可執(zhí)行文件exam.exe,若鍵入以下命令
exam 123〈回車〉
則運行結果為
A) 6 B) 8 C) 3 D) 4
(45) 以下程序中,能夠通過調(diào)用函數(shù)fun,使main函數(shù)中的指針變量p指向一個合法的整型單元的是
A) main()
{int *p;
fun(p);… }
int fun(int *p)
{ int s;
p=&s;}
B) main()
{int *p;
fun(&p);…}
int fun(int **p)
{int s;
*p=&s;}
C) #include<stdlib.h>
main()
{int *p;
fun(&p);…}
int fun(int **p)
{*p=(int*)malloc(2);}…
D) #include<stdlib.h>
main()
{int *p;
fun(p);…}
int fun(int *p)
{p=(int*)malloc(sizeof(int));}
(46) 若要說明一個類型名STP,使得定義語句STP s;等價于char *s;,以下選項中正確的是
A) typedef STP char *s;
B) typedef *char STP;
C) typedef STP *char;
D) typedef char* STP ;
(47) 設有如下定義
struct ss
{ char name[10];
int age;
char sex;
} std[3],* p=std;
下面各輸入語句中錯誤的是
A) scanf("%d",&(*p).age);
B) scanf("%s",&std.name);
C) scanf("%c",&std[0].sex);
D) scanf("%c",&(p->sex));
(48) 設char型變量x中的值為10100111,則表達式(2+x)∧(~3)的值是
A) 10101001 B) 10101000 C) 11111101 D) 01010101
(49) 以下敘述中不正確的是
A) C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)
B) C語言中對二進制位的訪問速度比文本文件快
C) C語言中,隨機讀寫方式不使用于文本文件
D) C語言中,順序讀寫方式不使用于二進制文件
(50) 以下程序企圖把從終端輸入的字符輸出到名為abc.txt的文件中,直到從終端讀入
字符#號時結束輸入和輸出操作,但程序有錯。
#include <stdio.h>
main()
{ FILE *fout; char ch;
fout=fopen('abc.txt','w');
ch=fgetc(stdin);
while(ch!='#')
{ fputc(ch,fout);
ch =fgetc(stdin);
}
fclose(fout);
}
出錯的原因是
A) 函數(shù)fopen調(diào)用形式有誤
B) 輸入文件沒有關閉
C) 函數(shù)fgetc調(diào)用形式有誤
D) 文件指針stdin沒有定義

二) 填空題(每空2分,共40分)
請將每一個空的正確答案寫在答題卡【1】至【20】序號的橫線上,答在試卷上不得分。
(1) 用十六進制給存儲器中的字節(jié)地址進行編號,若地址編號從0000到FFFF,則該存儲器的容量為【1】KB。
(2) 假設在當前盤的當前目錄下有兩個文件A.TXT和B.TXT,現(xiàn)在要將文件B.TXT合并連接到文件A.TXT的后面。若使用COPY命令,則完整的命令為【2】。
(3) E-mail地址由用戶名和域名兩部分組成,這兩部分的分隔符為【3】。
(4) 假設在當前盤當前目錄下有一個可執(zhí)行程序USER.EXE,F(xiàn)要執(zhí)行該程序,并要求在執(zhí)行過程中將顯示輸出的結果信息存入當前盤當前目錄的文件OUT.DAT中,則完整的DOS命令為【4】。
(5) 在DOS環(huán)境下,表示打印機的設備文件名是【5】。
(6) 若有語句
int i=-19,j=i%4;
printf("%d\n",j);
則輸出的結果是【6】。
(7) 若有程序
main()
{ int i,j;
scanf("i=%d,j=%d",&i,&j);
printf("i=%d,j=%d\n ",i,j);
}
要求給i賦10,給j賦20,則應該從鍵盤輸入【7】。
(8) 若有以下程序
main()
{ int p,a=5;
if(p=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
執(zhí)行后輸出結果是【8】。
(9) 若有以下程序
main()
{ int a=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d %d %d\n",a,b,c);
}
執(zhí)行后輸出結果為【9】。
(10) 若有以下程序
main()
{ int a[4][4]={{1,2,-3,-4},{0,-12,-13,14} ,{-21,23,0,-24},{-31,32,-33,0}};
int i,j,s=0;
for(i=0;i<4;i++)
{ for(j=0;j<4;j++)
{ if(a[i][j]<0) continue;
if(a[i][j]==0) break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
執(zhí)行后輸出結果是【10】。
(11) 若有以下程序
main()
{ char a;
a='H'-'A'+'0';
printf("%c\n",a);
}
執(zhí)行后輸出結果是【11】。
(12) 若有以下程序
int f(int x,int y)
{ return(y-x)*x; }
main()
{ int a=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
執(zhí)行后輸出結果是【12】。
(13) 函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1.
其構成規(guī)律是:
(1) 第0列元素和主對角線元素均為1
(2) 其余元素為其左上方和正上方元素之和
(3) 數(shù)據(jù)的個數(shù)每行遞增1
請將程序補充完整。
#define N 6
void yanghui(int x[N][N])
{ int i,j;
x[0][0]=1;
for(i=1;i<N;i++)
{ x[i][0]=【13】=1;
for(j=1;j<i;j++)
x[i][j]=【14】;
}
}
(14) 以下函數(shù)的功能是刪除字符串s中的所有數(shù)字字符。請?zhí)羁铡?BR>viod dele(char *s)
{ int n=0,i;
for(i=0;s[i];i++)
if(【15】)
s[n++]=s[i];
s[n]=【16】;
}

(15) 設函數(shù)findbig已定義為求3個數(shù)中的最大值。以下程序?qū)⒗煤瘮?shù)指針調(diào)用findbig函數(shù)。請?zhí)羁铡?BR>main()
{ int findbig(int,int,int);
int (*f)(),x,y,z,big;
f=【17】;
scanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,z);
printf("big=%d\n",big);
}
(16) 以下程序的輸出結果是【18】。
#define MCRA(m) 2*m
#define MCRB(n,m) 2*MCRA(n)+m
main()
{ int i=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
(17) 設有以下定義
stuct ss
{ int info; struct ss *link;}x,y,z;
且已建立如下圖所示鏈表結構:
_____ _____ _____
| | | | | | | | |
| | -|→| | -|→| | |
|__|__| |__|__| |__|__|
x y z

請寫出刪除結點y的賦值語句【19】。
(18) 已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由此文件指針fr指向文件,則程序的輸出結果是【20】。
#include <stdio.h>
main()
{ FILE *fr; char str[40];
......
fgets(str,5,fr);
printf("%s\n",str);
fclose(fr);
}
2003年4月全國計算機等級考試二級C筆試答案(僅供參考)
一、選擇題
1-5:CDDAD 6-10:BACDB 11-15:CABDB 16-20:ADCAA
21-25:CBDAB 26-30:DCDAB 31-35:CBDCC 36-40:CCBAC
41-45:CAAAC 46-50:DBDDA
二、填空題
(1) 64
(2) COPY A.TXT+B.TXT A.TXT
(3) @
(4) USER >OUT.DAT
(5) PRN或LPT1或LPT2
(6) -3
(7) i=10,j=20
(8) 1
(9) 5 0 3
(10) 58
(11) 7
(12) 9
(13) x[i][i]和x[i-1][j-1]+x[i-1][j]
(14) !(s[i]>='0'&&s[i]<='9')和'\0'
(15) findbig
(16) 16
(17) x.link=y.link;
(18) Hell


文章錄入:蕭雨    責任編輯:蕭雨  
 版權聲明
   如果本網(wǎng)站所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本網(wǎng)內(nèi)容,請注明出處。
 發(fā)表評論
關于本站 網(wǎng)站聲明 廣告服務  聯(lián)系方式  付款方式  站內(nèi)導航  客服中心  友情鏈接   
Copyright © 2004-2006 考試吧 (Exam8.com) All Rights Reserved 
中國科學院研究生院中關村園區(qū)(北京市海淀區(qū))