2004年4月全國計算機等級考試二級C語言筆試試卷

  一、選擇題,(1-40)每題1分,(41-50)每題2分,共60分)
牐犗鋁懈魈鈇)、b)、c)、d)四個選項中,只有一個選項是正確的,請將正確選項塗寫在答題卡相應位置上,答在試卷上不得分。
牐(1) 1mb等於
牐燼) 1000位元組 b) 1024位元組
牐燾) 1000×1000位元組  d) 1024×1024位元組

(2) 與十六進制數200等值的十進制數為
牐燼) 256  b) 512  c) 1024  d) 2048

(3) 所謂“裸機”是指
牐燼) 單片機   b) 單板機
牐燾) 不裝備任何軟體的計算機 d) 只裝備作業系統的計算機

(4) 能將高級語言編寫的源程式轉換成目標程式的是
牐燼) 連結程式 b) 解釋程式 c) 編譯程式 d) 編輯程式

(5) 在64位計算機中,一個字長所占的位元組數為
牐燼) 64 b) 8  c) 4  d) 1

(6) 在windows環境下,當一個應用程式視窗被最小化後,該應用程式
牐燼) 繼續在後台運行  b) 繼續在前台運行
牐燾) 終止運行  d) 暫停運行

(7) 在windows環境下,能實現視窗移動的操作是
牐燼) 用滑鼠拖動視窗中的任何部位 b) 用滑鼠拖動視窗的框線
牐燾) 用滑鼠拖動視窗的控制按鈕  d) 用滑鼠拖動視窗的標題欄

(8) 在windows環境下,printscreen鍵的作用是
牐燼) 列印當前視窗的內容 b) 列印螢幕內容
牐燾) 複製螢幕到剪貼簿  d) 複製當前視窗到剪貼簿

(9) internet的通信協定是
牐燼) tcp/ip b) bbs c) www  d) ftp

(10) 下列敘述中正確的是
牐燼) 計算機病毒只感染執行檔
牐燽) 計算機病毒只感染文本檔案
牐燾) 計算機病毒只能通過軟體複製的方式進行傳播
牐燿) 計算機病毒可以通過網路或讀寫磁碟等方式進行傳播

(11) 一個算法應該具有“確定性”等5個特性,下面對另外4個特性的描述中錯誤的是
牐燼) 有零個或多個輸入 b) 有零個或多個輸出
牐燾) 有窮性  d) 可行性

(12) 以下敘述中正確的是
牐燼) c語言的源程式不必通過編譯就可以直接運行
牐燽) c語言中的每條可執行語句最終都將被轉換成二進制的機器指令
牐燾) c源程式經編譯形成的二進制代碼可以直接運行
牐燿) c語言中的函式不可以單獨進行編譯

(13) 以下符合c語言語法的實型常量是
牐燼) 1.2e0.5  b) 3.14.159e c) .5e-3  d) e15

(14) 以下4組用戶定義標識符中,全部合法的一組是
牐燼) _main  b) if  c) txt  d) int
牐 enclude -max real  k_2
牐 sin   turbo  3com  _001

(15) 若以下選項中的變數已正確定義,則正確的賦值語句是
牐燼) x1=26.8%3 b) 1+2=x2  c) x3=0x12  d) x4=1+2=3;

(16) 設有以下定義
牐爄nt a=0;
牐燿ouble b=1.25;
牐燾har c=’a’;
牐#define d 2
牐犜螄旅嬗錁渲寫砦蟮氖
牐燼) a++; b) b++  c) c++;  d) d++;

(17) 設有定義:float a=2,b=4,h=3;,以下c語言表達式與代數式 計算結果不相符的是
牐燼) (a+b) *h/2 b) (1/2)*(a+b) *h
牐燾) (a+b) *h*1/2 d) h/2*(a+b)

(18) 有以下程式
牐爉ain( )
牐爗
牐 int x=102,y=012;
牐 printf(“%2d,%2d ”,x,y);
牐爙
牐犞蔥瀉笫涑黿峁是
牐燼) 10,01  b) 02,12  c) 102,10 d) 02,10

(19) 以下4個選項中,不能看作一條語句的是
牐燼) {;}   b) a=0,b=0,c=0;   c) if(a>0); d) if(b==0)  m=1;n=2;

(20) 設有定義:int a,*pa=&a;以下scanf語句中能正確為變數a讀入數據的是
牐燼) scanf(“%d”,pa) ;  b) scanf(“%d”,a) ;
牐燾) scanf(“%d”,&pa) ;  d) scanf(“%d”,*pa) ;

(21) 以下程式段中與語句k=a>b?(b>c?1:0):0;功能等價的是
牐燼) if((a>b) &&(b>c) ) k=1; b) if((a>b) ||(b>c) ) k=1
牐 else k=0;   else k=0;

牐燾) if(a<=b) k=0;  d) if(a>b) k=1;
牐 else if(b<=c) k=1; else if(b>c) k=1;
牐  else k=0;

(22) 有以下程式
牐爉ain( )
牐爗 char k; int i;
牐 for(i=1;i<3;i++)
牐 { scanf(“%c”,&k);
牐 switch(k)
牐 { case ‘0’: printf(“another ”);
牐 case ‘1’: printf(“number ”);
牐 }
牐 }
牐爙
牐牫絛蛟誦惺保從鍵盤輸入:01<回車>,程式執行後的輸出結果是
牐燼) another   b) another  c) another d) number
爊umber  number  number  number
牐 another number

(23) 有以下程式
牐爉ain( )
牐爗 int x=0,y=5,z=3;
牐 while(z-->0&&++x<5) y=y-1;
牐 printf(“%d,%d,%d ”,x,y,z);
牐爙
牐牫絛蛑蔥瀉蟮氖涑黿峁是
牐燼) 3,2,0  b) 3,2,-1  c) 4,3,-1  d) 5,-2,-5

(24) 有以下程式
牐爉ain( )
牐爗 int i,s=0;
牐 for(i=1;i<10;i+=2) s+=i+1;
牐 printf(“%d ”,s);
牐爙
牐牫絛蛑蔥瀉蟮氖涑黿峁是
牐燼) 自然數1~9的累加和  b) 自然數1~10的累加和
牐燾) 自然數1~9中的奇數之和 d) 自然數1~10中的偶數之和

(25) 有以下程式

牐爉ain( )
牐爗 int i,n=0;
牐 for(i=2;i<5;i++)
牐 { do
牐 { if(i%3) continue;
牐 n++;
牐 } while(!i);
牐爊++;
牐 }
牐 printf(“n=%d ”,n);
牐爙
牐牫絛蛑蔥瀉蟮氖涑黿峁是
牐燼) n=5  b) n=2  c) n=3 d) n=4

(26) 若程式中定義了以下函式
牐 double myadd(double a,double b)
牐 { return (a+b) ;}
牐牪⒔其放在調用語句之後,則在調用之前應該對該函式進行說明,以下選項中錯誤的說明是
牐燼) double myadd(double a,b) ;
牐燽) double myadd(double,double);
牐燾) double myadd(double b,double a) ;
牐燿) double myadd(double x,double y);

(27) 有以下程式
牐燾har fun(char x , char y)
牐爗 if(x

main( )
牐爗 int i,j;
牐 for(i=1;i<=4;i++)
牐 { for(j=1;j<=4-i;j++) printf(“ “);
牐 for(j=1;j<=_______;j++) printf(“*”);
牐 printf(“ ”);
牐爙
牐 }
牐犜諳祿線處應填入的是
牐燼) i  b) 2*i-1 c) 2*i+1  d) i+2

(43) 有以下程式
牐爒oid sort(int a[],int n)
牐爗 int i,j,t;
牐 for(i=0;i牐爙
牐爉ain()
牐爗 int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
牐 sort(aa,10);
牐 for(i=0;i<10;i++) printf(“%d”,aa[i]);
牐 printf(“ ”);
牐爙
牐犉涫涑黿峁是
牐燼) 1,2,3,4,5,6,7,8,9,10 b) 10,9,8,7,6,5,4,3,2,1
牐燾) 9,2,7,4,5,6,3,8,1,10  d) 1,10,3,8,5,6,7,4,9,2

(44) 以下程式段中,不能正確賦字元串(編譯時系統會提示錯誤)的是
牐燼) char s[10]=”abcdefg”;  b) char t[]=”abcdefg”,*s=t;
牐燾) char s[10];s=”abcdefg”; d) char s[10];strcpy(s,”abcdefg”);

(45) 有以下程式
牐#include
牐爉ain(int argc ,char *argv[ ])
牐爗 int i,len=0;
牐 for(i=1;i牐 printf(“5d ”,len);
牐爙
牐牼編譯連結後生成的執行檔是ex.exe,若運行時輸入以下帶參數的命令行
牐爀x  abcd  efg h3   k44
牐犞蔥瀉笫涑黿峁是
牐燼) 14  b) 12 c) 8  d) 6

(46) 有以下程式
牐爒oid f(int a[],int i,int j)
牐爗 int t;
牐 if(i
for(i=0;i for(j=0;【13】;j++)
{ t=a[i][j];
 【14】;
a[j][i]=t;
}
}

(14) 以下sstrcpy( )函式實現字元串複製,即將t所指字元串複製到s所指向記憶體空間中,形成一個新的字元串s。請填空。
牐爒oid sstrcpy(char *s,char *t)
牐爗 while(*s++=【15】);}
牐爉ain( )
牐爗 char str1[100],str2[]=”abcdefgh”;
牐 sstrcpy(str1,str2);
牐 printf(“%s ”,str1);
牐爙

(15) 下列程式的運行結果是:【16】
牐#include
牐燾har *ss(char *s)
牐爗 return s+strlen(s)/2;}
牐爉ain( )
牐爗 char *p,*str=”abcdefgh”;
牐 p=ss(str); printf(“%s ”,p);
牐爙

(16) 下面程式的運行結果是:【17】
牐爄nt f( int a[], int n)
牐爗 if(n>1) return a[0]+f(&a[1],n-1);
牐 else return a[0];
牐爙
牐爉ain ( )
牐爗 int aa[3]={1,2,3},s;
牐 s=f(&aa[0],3); printf(“%d ”,s);
牐爙

(17) 以下程式中給指針p分配三個double型動態記憶體單元,請填空。
牐# include
牐爉ain ( )
牐爗 double *p;
牐 p=(double *) malloc(【18】);
牐 p[0]=1.5;p[1]=2.5;p[2]=3.5;
牐 printf(“%f%f%f ”,p[0],p[1],p[2]);
牐爙

(18) 以下程式的運行結果是【19】
牐# include
牐爐ypedef struct student{
牐 char name[10];
牐 long sno;
牐 float score;
牐 }stu;
牐爉ain( )
牐爗 stu
牐燼={“zhangsan”,2001,95},b={“shangxian”,2002,90},c={“anhua”,2003,95},d,*p=&d;
牐 d=a;
牐 if(strcmp(a.name,b.name)>0) d=b;
牐 if(strcmp(c.name,d.name)>0) d=c;
牐 printf(“%ld%s ”,d.sno,p->name);
牐 }

19、以下sum函式的功能是計算下列級數之和。
s=1+x+x2/2!+x3/3!+........+xn/n!
請給函式中的各變數正確賦初值。
double sum ( double x, int n )
{ int i; double a,b,s;
【20】
牐 for( i=1;i<=n;i++)
牐 { a=a*x; b=b*i; s=s+a/b; }
牐 return s;
牐 }