1. <small id="kntrr"><delect id="kntrr"></delect></small>
    2. <sub id="kntrr"></sub>
        1. <form id="kntrr"><listing id="kntrr"></listing></form>
            江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
            2009年春季江蘇省二級c語言試題與答案

            江蘇省高校計算機等級考試2009年春季考試試題

            第二部分   C程序設計

            21.以下定義和聲明中,語法均有錯誤的是____(21)_________

            int j(int x){}int f(int f){}  int 2x=1;    struet for{int x;};

            A.②③    B.③④    C.①④    D.①②③④

            22.設有定義和聲明如下:

                #define d  2   

                int x=5;float Y =3.83;char c='d';

            以下表達式中有語法錯誤的是_(22)______

            Ax++    By++    Cc++    Dd++

            23.以下選項中,不能表示函數 功能的表達式是___(23)______。

             As=(X>0)?1:(X<0)?-1:0    Bs=X<0?-1:(X>0?1:0)

             Cs=X<=0?-1:(X==0?0:1)    Ds=x>0?1:x==0?0:-1

            24.以下語句中有語法錯誤的是____(24)______  。  

                Aprintf("%d",0e);    Bprintf("%f",0e2);

                Cprintf("%d",Ox2);   Dprintf("%s","0x2");

            25.以下函數定義中正確的是___(25)_________ 。

                Adouble fun(double x,double y){}

                Bdouble fun(double x;double Y){}

                Cdouble fun(double x,double Y);{}

                Ddouble fun(double X,Y){}

            26.若需要通過調用f函數得到一個數的平方值,以下f函數定義中不能實現該功能的

              _____(26)______ 。

                Avoid f(double *a){*a=(*a)*(*a);}

                Bvoid f(double a,double *b){*b=a*a;}

                Cvoid f(double a,double b){b=a*a;}

                Ddouble f(double a){return a*a;}

            27.設有聲明"int P[10]={1,2},i=0;",以下語句中與"P[i]=P[i+1],i++;"等價的

            ____(27)_______。

                AP[i]=P[i++];    BP[++i]=P[i];

                CP[++i]=P[i+1];  Di++,P[i-1]=P[i];

            28.已知有聲明"char a[]="It is mine",*p="It is mine";",下列敘述中錯誤的是28  。

                Astrcpy(a,"yes")strcpy(p,"yes")都是正確的

                Ba="yes"p="yes"都是正確的

                C*a等于*p

                Dsizeof(a)不等于sizeof(p)

            29.已知有聲明"int a[3][3]={0},*p1=a[1],(*p2)[3]=a;",以下表達式中與

            "a[1][1]=1"不等價的表達式是29。

                A*(p1+1)=1    Bp1[1][1]=1

            C*(*(p2+1)+1)=1    Dp2[1][1]=1

              30.設有結構定義及變量聲明如下:

                struct product

                {char code[5];

                float price;

                }y[4]={"100",100}"

              以下表達式中錯誤的是____(30)_____。

              A.(*y).code[0]='2';    B.y[0].code[0]='2';

              C.y->price=10;         D.(*y)->price=10;

              二、填空題(將答案填寫在答題紙的相應答題號內,每個答案只占一行,30)

              ●基本概念

              1.在一個C語言源程序中,必不可少的是(1)  。

              2.若有聲明"int x;"sizeof(x)的值為2,則當x值為( 2 )"x+1>x"為假。

              3.若有聲明"float y=3.14619;int x;",則計算表達式"x=y*100+0.5,Y=x/100.0"y

            的值是(3)  。

              4.執行以下程序段中的語句"k=M*M+1"k的值是(4)

                #define N 2

                #define M N+1

                k=M*M+1

              ●閱讀程序

              5.以下程序運行時輸出結果是(5) 

                #include<stdio.h>

                void main()

                {double x[3]={1.1,2.2,3.3},Y;

                FILE *fp=fopen("d:\\a.out","wb+");

                fwrite(x,sizeof(double),3,fp)"

                fseek(fp,2L*sizeof(double),SEEK_SET);

                fread(&y,sizeof(double),1,fp)"

                printf("%.1f",y);

                fclose(fp)"

                }

              6.以下程序運行時輸出結果是(6)。

                #include<stdio.h>

                void main()

                {  int k=5,n=0;

                while(k>0)

                {  switch(k)

                   {  case 1:

                      case 3:n+=1;k--;break"

                      default:n=0;k--;

                      case 2:

                      case 4: n+=2;k--;break;

                   }

                }

                printf("%3d",n);

                }

               }

            7.以下程序運行時輸出結果是(7)  。

                #include<stdio.h>

                void change(int x,int Y,int *z)

                {  int t;

                   t=x;x=y;y=*z;*z=t;

                }

                void main()

                {  int x=18,y=27,z=63;

                   change(x,y,&z);

                   printf("x=%d,y=%d,z=%d\n",x,y,z);

                }

            8.以下程序運行時輸出結果是(8)  。

                #include<stdio.h>

                int f(int x,int y)

                {retum x+y;  }   

                void main()

                {double a=5.5,b=2.5;

                printf("%d",f(a,b));

                }

            9.以下程序運行時輸出結果中第-行是  (9) ,第三行是(10)  。

                #include<stdio.h>

                define N 5

                void main()

                {  static char a[N][N];

                   int i,j,t,start=0,end=N-1;

                   char str[]="123",ch;

                   for(t=0;t<=N/2;t++)

                   {  ch=str[t];

                      for(i=j-start;i<end;i++)a[i][j]=ch;

                      for(j=start;j<end;j++)a[i][j]=ch;

                      for(i=end;i>start;i--)a[i][j]=ch;

                      for(j=end;j>start;j--)a[i][j]=ch;

                      if(start==end) a[start][end]=ch;

                      start++,end--;

                   }

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

                   {  for(j=0;j<N;j++)

                       printf("%c",a[i][j]);

                      printf("\n");

                    }

                }

            10.以下程序運行時輸出結果中第一行是(11),第二行是(12)。

                #include<stdio.h>

                void fun(int x,int P[],int *n)

                {  int i,j=O;

                   for(i=1;i<=x/2;i++)

                     if(x%i==0)p[j++]=i;

                   *n=j

                }

                void main()

                {int x,a[10],n,i;

                fun(27,a,&n);

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

                   printf("%5d",a[i]);

                printf("\n%5d",n);

                }

            11.以下程序運行時輸出結果是(11)  。

                #include<stdio.h>

                #include<ctype.h>

                int count(char s[])

                {  int i=0;

                   if(s[i]=='\0')  return 0;

                   while(isalpha(s[i]))i++;

                   while(!isalpha(s[i])&&s[i]!='\O')i++;

                   return 1+count(&s[i]);

                }

                void main()

                {char line[]="one world,one dream.";

                 printf("%d",count(line));

                }    .

            12.以下程序運行時輸出結果中第一行是  (14 ,第二行是(15)

                #include<stdio.h>

                int fun(char *a,char *b)

                {int m=0,n=0

                while(*(a+m)!='\0')m++;   

                while(b[n])

                { *(a+m)=b[n];m++;n++;    }

                  *(a+m)='\0';

                return m;

                }

                void main()

                {char s1[20]="yes",s2[5]="no";

                printf("%d\n",fun(s1,s2));

                puts(s1);

                }

            13.以下程序運行時輸出結果中第-行是  (16)  ,第二行是  (17) ,第三行是( 18 )

                #include<stdio.h>

                typedef struct{int x;int y;}S;

                void fun(S pp[],int n)

                {int i,j,k;S t;

                  for(i=0;i<n-1;i++)

                  {  k=i;

                   for(j=i+1;j<n;j++)

                      if((pp[j].x<pp[k].x)||(pp[j].x==pp[k].x&&pp[j].y<pp[k].y))

                       k=j;

                      if(k!=i)

                       {t=pp[i];pp[i]=pp[k];pp[k]=t;}

                  }

                }

                void main()

                {S a[5]={{3,2},{3,1},{1,2},{2,4},{2,3}};

                 int i,n=5;

                fun(a,n);

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

                  printf("%d,%d\n",a[i].x,a[i].y);

                }    .

              完善程序

              14?以下程序求一組整數的最大公約數。試完善程序以達到要求的功能。

                #include<stdio.h>

                int gcd(int a,int b)    i

                {int r;

                  while(_____(19)_______)

                  {r=a%b;a=b;(_____20_____);}

                   return a;

                }

                void main()

                {int x,i,a[6]={12,56,48,32,16,24};

                x= (___21_____)    ;

                for(i=1;i<6;i++)

                x=gcd(___(22)_____,a[i]);

                printf("(%d,",a[O]);

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

                  printf("%d,",a[i]);

                printf("%d)=;d\n",a[5],x);

                }

                15.以下程序完成兩個長正整數的加法運算并輸出計算結果。函數add模擬手工加法運

            算的過程,ab指向的數組中存儲的兩個以字符串形式表示的n位正整數相加,并將運算

            結果以字符串形式保存到c指向的數組中。main函數中plp2數組分別存放被加數字符串

            和加數字符串,p3數組存放運算結果字符串。若p1中的字符串為"1000000001"、p2中的字

            符串為"9000000009",調用add函數后p3得到的是以字符串表示的這兩個整數相加的結果

            "10000000010"。試完善程序以達到要求的功能。

                #include "stdio.h"

                #include "string.h"

                void add(char a[],char b[],char c[],__(23)____)

                {int i,k;

                c[n]='\0';k=0;

                for(i=n-1;i>=0;i--)

                {c[i]=(a[i]-'O')+(b[i]-'0')+k;

                 k=______(24)______;

                 c[i]=c[i]%10+'0';

                }

                if(k)

                {for(i=n+1;i>O;i--)

                  c[i]=___(25)____;

                 c[i]=k+'0';

                }

                }

                void main()

                {char p1[80]="1000000001",pz[80]="9000000009",p3[80];

                int i,x=strlen(p1),y=strlen(p2);

                if(x<y)

                { for(i=x;i>=0;i--)

                  {p1[i+y-x]=p1[i];p1[i]='0';}

                   _____(26)______;

                }

                if(x>y)

                 for(i=y;i>=0;i--)

                 {p2[i+x-y]=p2[i];p2[i]='0';}

                add(p1,p2,p3,x);

                puts(p3);

                }

                16.以下程序創建-個鏈表并實現數據統計功能。函數WORD *create(char a[][20],

              int n)創建-個包含n個結點的單向鏈表,結點數據來自a指向的數組中存儲的n個單詞

              (字符串)。函數void count(WORD *h)統計h指向的單向鏈表中不同單詞各自出現的次數,

              將統計結果保存到局部數組c中并輸出。程序運行時輸出結果為"red:1  green:2  blue:3"

              試完善程序以達到要求的功能。

                #include "stdio.h"

                #include "stdlib.h"

                #include "string.h"

                typedef struct w

                {char word[20];

                struct w *next

                }WORD;

                WORD *create(char a[][20],int n)

                {WORD *p1,*p2,*h=0;int i;   

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

                {p1=(WORD *)malloc(sizeof(WORD));

                strcpy(___(27)___,a[i]);

                if(h==O)

                  h=p2=p1

                else

                {p2->next=p1;p2=pl;}

                }

                p2->next=_____(28)____;

                return h;

                }

                void count(WORD *h)

                {  struct

                   {char word[20];

                    int num;

                   }c[6]={0};

                int m=0,i;

                while(h)

                {if(m==O)

                  {strcpy(c[0].word,h->word);

                   c[0].num=1;m++;   

                  }

                else

                {for(i=O;i<m;i++)

                   if(strcmp(c[i].word,h->word)==0)

                    {  ______(29)_____  ;

                       break;

                    }

                   if(i>=m)

                   {strcpy(c[m].word,h->word);

                    c[m++].num=1;

                   }

                }

                ____(30)_____;

                }

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

                  printf("%s%d",c[i].word,c[i].num);

                }

                void main()

                {char words[6][20]={"red","green","blue","blue","green","blue"};

                WORD *head=0

                head=create(words,6);

                count(head);

                }

             

                第一部分計算機基礎知識

            1.  在下列有關現代信息技術的一些敘述中,正確的是    1    。

              A.集成電路是20世紀90年代初出現的,它的出現直接導致了微型計算機的誕生

              B.集成電路的集成度越來越高,目前集成度最高的已包含幾百個電子元件

              C.目前所有數字通信均不再需要使用調制解調技術和載波技術

              D.光纖主要用于數字通信,它采用波分多路復用技術以增大信道容量‘    .

            2.  最大的10位無符號二進制整數轉換成八進制數是    2    .。

              A.1023    B.1777

              C.1000    D.1024

            3.  在下列有關目前PCCPU的敘述中,錯誤的是    3   。

                A.CPU芯片主要是由Intel公司和AMD公司提供的

                B."雙核"是指PC機主板上含有兩個獨立的CPU芯片

                C.Pentium 4微處理器的指令系統由數百條指令組成

                D.Pentium 4微處理器中包含一定容量的Cache存儲器

            4.  在下列有關當前PC機主板和內存的敘述中,正確的是    4    。

                A.主板上的BIOS芯片是一種只讀存儲器,其內容不可在線改寫

                B.絕大多數主板上僅有一個內存插座,因此PC機只能安裝一根內存條

                C.內存條上的存儲器芯片屬于SRAM(靜態隨機存取存儲器)

                D.目前內存的存取時間大多在幾個到十幾個ns(納秒)之間

            5.  在下列有關PC機輔助存儲器的敘述中,正確的是    5    。

                A.硬盤的內部傳輸速率遠遠大于外部傳輸速率

                B.對于光盤刻錄機來說,其刻錄信息的速度一般小于讀取信息的速度

                C.使用USB 2.0接口的移動硬盤,其數據傳輸速率大約為每秒數百兆字節

                D.CD-ROM的數據傳輸速率一般比USB 2.0還快

            6.  在下列PCI/O接口中,數據傳輸速率最快的是    6    。

                A.USB 2.0          B.IEEE-1394

                C.IrDA (紅外)      D.SATA

             7.  計算機軟件可以分為商品軟件、共享軟件和自由軟件等類型。在下列相關敘述中,錯誤的是    7    。

                A.通常用戶需要付費才能得到商品軟件的使用權,但這類軟件的升級總是免費的

                B.共享軟件通常是一種"買前免費試用"的具有版權的軟件

                C.自由軟件的原則是用戶可共享,并允許拷貝和自由傳播

                D.軟件許可證是一種法律合同,它確定了用戶對軟件的使用權限

            8.  人們通常將計算機軟件劃分為系統軟件和應用軟件。下列軟件中,不屬于應用軟件類型的是    8  

                A.AutoCAD     B.MSN    C.Oracle      D.Windows Media Player

            9.  在下列有關Windows 98/2000/XP操作系統的敘述中,錯誤的是    9    。

                A.系統采用并發多任務方式支持多個任務在計算機中同時執行

                B.系統總是將一定的硬盤空間作為虛擬內存來使用

                C.文件()名的長度可達200多個字符

                D.硬盤、光盤、優盤等均使用FAT文件系統

            10. 在下列有關算法和數據結構的敘述中,錯誤的是    10    。

                A.算法通常是用于解決某一個特定問題,且算法必須有輸入和輸出

                B.算法的表示可以有多種形式,流程圖和偽代碼都是常用的算法表示方法

                C.常用的數據結構有集合結構、線性結構、樹形結構和網狀結構等

                D.數組的存儲結構是一種順序結構

            11•因特網的IP地址由三個部分構成,從左到右分別代表    11    。

                A.網絡號、主機號和類型號

                B.類型號、網絡號和主機號

                C.網絡號、類型號和主機號

                D.主機號、網絡號和類型號

            12•在下列有關ADSL技術及利用該技術接入因特網的敘述中,錯誤的是    12    。

                A.從理論上看,其上傳速度與下載速度相同

                B.一條電話線上可同時接聽/撥打電話和進行數據傳輸

                C.利用ADSL技術進行數據傳輸時,有效傳輸距離可達幾公里

                D.目前利用ADSL技術上網的計算機一般需要使用以太網網卡

            13.人們往往會用"我用的是10M寬帶上網"來說明白己計算機連網的性能,這里的"10M"

              指的是數據通信中的    13    指標。

              A.最高數據傳輸速率

              B.平均數據傳輸速率

              C.每分鐘數據流量

              D.每分鐘IP數據包的數目

            14•計算機局域網按拓撲結構進行分類,可分為環型、星型和    14    型等。

              A.電路交換

              B.以太  

              C.總線

              D.對等

            15.網絡信息安全主要涉及數據的完整性、可用性、機密性等問題。保證數據的完整性就是 15   。

              A.保證傳送的數據信息不被第三方監視和竊取

              B.保證發送方的真實身份

              C.保證傳送的數據信息不被篡改

              D.保證發送方不能抵賴曾經發送過某數據信息

            16.某計算機系統中,西文使用標準ASCII碼、漢字采用GB2312編碼。設有一段純文本,其機內碼為CB F5 DO B4 50 43 CA C7 D6 B8,則在這段文本中含有:  16    。

                A.2個漢字和1個西文字符

                B.4個漢字和2個西文字符   

                C.8個漢字和2個西文字符

                D.4個漢字和1個西文字符

            17.以下關于漢字編碼標準的敘述中,錯誤的是   17    。

                A.GB 2312標準中所有漢字的機內碼均用雙字節表示      

                B.我國臺灣地區使用的漢字編碼標準BIG 5收錄的是繁體漢字

                C.GB 18030漢字編碼標準收錄的漢字在GB 2312標準中一定能找到

                D.GB 18030漢字編碼標準既能與UCS(Unicode)接軌,又能保護已有中文信息資源

            18.若波形聲音未進行壓縮時的碼率為64kb/s,已知取樣頻率為8kHz,量化位數為8,那么它的聲道數是    18    。

              A.1    B.2   C.4 D.8 

            19.從信息處理的深度來區分信息系統,可分為業務處理系統、信息檢索系統和信息分析系統等。在下列幾種信息系統中,不屬于業務處理系統的是    19    。

                A.DSS  B.CAI   C.CAM   D.OA

             20.在下列有關信息系統開發、管理及其數據庫設計的敘述中,錯誤的是    20    。

                A.常用的信息系統開發方法可分為結構化生命周期方法、原型法、面向對象方法和CASE方法等

                B.在系統分析中常常使用結構化分析方法,并用數據流程圖和數據字典來表達數據和處理過程的關系

                C.系統設計分為概念結構設計、邏輯結構設計和物理結構設計,通常用E-R模型作為描述邏輯結構的工具

                D.從信息系統開發過程來看,程序編碼、編譯、連接、測試等屬于系統實施階段的工作

            1.D  2.B  3.B  4.D  5.B  6.D    7.A  8.C  9.D  10.A  11.B  12.A  13.A  14.C  15.C  16.B  17.C  18.A  19.A  20.C

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

            二:填空

            (1)main函數定義  (2)32767  (3)3.15    (4)  6    (5)3.3   (6)2   3    5   6  (7)x=18, y=27 , z=18     (8)7

            (9)11111   (10)12321    (11)1    3    9   (12)3    (13)4     (14)5   (15)yesno    (16)1,2    (17)2,3   (18)2,4     (19)b或b!=0

            (20)b=r     (21)a[0]   (22)x          (23)int n    (24)c[i]/10        (25)c[i-1]     (26)x=y          (27)p1->word

            (28)0或NULL     (29)c[i].min++               (30)h=h->next

            国产在线精品一区二区三区不卡_亚洲第一极品精品无码_永久免费无码网站在线观看_亚洲av综合日韩