<samp id="uu9tx"></samp>
        <samp id="uu9tx"><tr id="uu9tx"><nav id="uu9tx"></nav></tr></samp>
        <delect id="uu9tx"><legend id="uu9tx"><meter id="uu9tx"></meter></legend></delect>
                <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp><nav id="uu9tx"></nav>
                <samp id="uu9tx"></samp>
                  <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp>
                  江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
                  2017年10月江蘇省計算機二級C語言真題第1套

                  1   (20171)

                  1、  移動通信指的是處于移動狀態的對象之間的通信,最有代表性的是手機——個人移動通信系統。下列有關移動通信的敘述中,錯誤的是___________。

                  A.   基站是個人移動通信系統的重要組成部分,它負責與其周圍區域內所有手機進行通信

                  B.   無論是最早的第1代個人移動通信,還是處于發展中的5G,均是采用數字通信技術

                  C.   2代移動通信以語音傳輸技術為核心,但可提供收發短信息等數據量很少的數據業務

                  D.   目前智能手機分為多種產品類型,全網通手機一般可以接入國內三大運營商的所有網絡

                  B

                  解析: 最早的第1代個人移動通信采用模擬通信技術。

                  4

                  2、  數十年來,硬盤一直是計算機中最重要的外存儲器。下列有關硬盤的敘述中,錯誤的是_________。

                  A.   通常硬盤的盤片兩面均可記錄數據,因而盤片兩側各有一個磁頭

                  B.   所有的硬盤均有多個盤片組成,一般不會僅使用一個盤片,盤片數越多則容量越大

                  C.   硬盤盤片直徑一般為3.5、2.5、1.8英寸等,臺式PC通常采用3.52.5英寸硬盤

                  D.   目前內置硬盤的接口大多數為SATA接口,它以告訴串行方式傳輸數據

                  B

                  解析: 硬盤一般由14個或15個盤片組成,盤片宜少不宜多,單碟盤片的容量越大越好。

                  2

                  3、  下列有關信息、信息技術、信息產業、信息化的敘述中,錯誤的是_________。

                  A.   信息的表現形式多種多樣,其分類也不計其數

                  B.   所有的信息技術均采用電子技術(含激光技術)進行信息的收集、傳遞、加工、存儲等

                  C.   信息產業是戰略性先導產業,其科技創新含量高,知識、智力和技術密集

                  D.   信息化是當今世界發展的大趨勢,是我國增強國際競爭力和提高綜合國力的關鍵之一

                  B

                  解析: 信息技術的歷史非常長,主要是為了提高人們的信息器官功能,協助人們進行信息處理的技術,現代信息技術采用電子技術(含激光技術)進行信息的收集、傳遞、加工、存儲等   。

                  1

                  4、  根據不同的應用需求,數字音頻采用的編碼方法有多種,文件格式也各不相同。下列的音頻格式中,由美國Dolby公司開發的、在DVD和數字電視等領域廣泛使用的是______

                  A.   WAV

                  B.   MP3

                  C.   AC3

                  D.   ACC

                  C

                  解析: MP3是一種音頻壓縮技術,由于這種壓縮方式的全稱叫MPEG Audio Layer3,所以人們把它簡稱為MP3;WMA是微軟制訂的音頻壓縮文件格式,比mp3標準晚,比mp3還小,比mp3音質還好 , 采用未壓縮編碼方式;美國杜比公司開發的AC3, DVD和數字電視等領域廣泛使用;相對于mp3,AAC格式的音質更佳,文件更小。   。

                  5

                  5、  主機上用于連接I/O設備的各種插頭、插座,統稱為I/O接口。下列I/O接口中,近年來生產的大多數筆記本電腦通常不具有的接口(或者說通常不配備的接口)是______

                  A.   PS/2

                  B.   USB

                  C.   SATA

                  D.   VGA

                  A

                  解析: PS/2是早期連接有線鼠標的接口,現在主要使用USB接口了  。

                  2

                  6、  數值、文字、圖像、聲音等不同的信息在計算機中的表示方法是不同的。下列相關敘述中,錯誤的是______。

                  A.   數值為負的整數在計算機中通常采用“反碼”的方法進行表示

                  B.   文字由一系列“字符”構成,每個字符通常使用1-4個字節的二進制編碼表示

                  C.   黑白圖像在數據庫時,每個像素一般采用8位二進制無符號整數表示

                  D.   聲音信息在數字化時,每個取樣的樣本一般使用8位、12位、14位或16位二進制數表示

                  A

                  解析: 數值為負的整數在計算機中通常采用“補碼”的方法進行表示  。

                  1

                  7、  字符集及其編碼是計算機中表示、存儲、處理和交換文本信息的基礎,但由于歷史原因,目前不同系統或應用中使用的字符編碼方案并不統一。下列有關漢字編碼的敘述中,錯誤的是______

                  A.   在我國最早頒布的漢字編碼字符集GB 2312僅包含6000多個漢字,其中沒有繁體漢字

                  B.   無論是GB 2312、GBK,還是GB 18030,其中西文字符均為單字節編碼,漢字均為雙字節編碼

                  C.   目前在互聯網的許多應用中采用UTF-8編碼,該編碼方案采用可變長度字符編碼

                  D.   目前在Windows操作系統中常使用UTF-16編碼,在該編碼方案中漢字編碼使用2個字節表示

                  B

                  解析: GB 2312中字符全部采用雙字節   。

                  5

                  8、  操作系統是計算機中重要的一種系統軟件,應用軟件必須在操作系統的管理和支持下運行。下列有關操作系統的敘述中,錯誤的是______

                  A.   操作系統承擔著資源分配和調度等任務,以保證程序正常有序地運行

                  B.   目前大多數操作系統都向用戶提供圖形用戶界面,它以窗口形式顯示程序運行狀態

                  C.   操作系統通常由操作系統內核和許多配套軟件、程序庫等組成

                  D.   所有的計算機都必須安裝操作系統才能工作,操作系統的運行不依賴任何其他軟件

                  D

                  解析: 操作系統啟動前依賴于底層的BIOS程序,通過引導加載程序將操作系統加載到內存中并運行。

                  3

                  9、  按照軟件權益的處置方式來分類,軟件可以分為商品軟件、共享軟件、自由軟件等多種類型,下列相關敘述中,錯誤的是______

                  A.   所有的商品軟件都需要用戶付費購買其使用權,且軟件升級均需要再次付費

                  B.   共享軟件通常是"買前免費試用"的具有版權的軟件,過了試用期則付費可繼續使用

                  C.   自由軟件倡導的軟件"非版權"原則,允許拷貝、修改和自由傳播

                  D.   大多數開源軟件都是多人合作,義務開發的成果,其發展促進了軟件共享和技術創新

                  A

                  解析:商品軟件升級有的需要付費,有的不需要付費。

                  3

                  10、              隨著互聯網技術和應用的發展,Web已經從信息發布與查詢平臺發展成為多種信息處理應用的平臺,下列有關敘述中,錯誤的是_______

                  A.   靜態網頁通常指那些內容基本不變的網頁,除非網頁作者(發布者)對其修改并重新發布

                  B.   動態網頁的內容通常不是預先確定的,而是根據用戶請求提供的參數實時生成的頁面

                  C.   Web平臺上運行的信息處理系統(如淘寶、京東等)都是使用動態網頁技術開發實現的

                  D.   目前所有的動態網頁都是使用微軟公司的ASP.NET技術開發而成的

                  D

                  解析:動態網頁技術有多種,Asp.net, Php,Jsp  。

                  3

                   

                  【程序設計理論】

                  1.         執行以下程序時輸出_______。

                  #include<stdio.h>

                  float p=1.5;

                  void fun(void)

                  {

                    int  p=1;

                  }

                  #define  p  2.5

                  int  main()

                  {

                     fun();

                     printf( "%d" , (int)p) ;return 0;

                  }

                  A1

                  B2

                  C1.5

                  D2.5

                  B

                  解析: 本題考核的是,變量名稱相同時,訪問作用范圍小的變量,具體見題目詳細講解。

                  7

                  2.         以下庫函數中能將鍵盤輸入的一串數字字符串轉換為int類型數據的庫函數是______。

                  Ascanf

                  Bgets

                  Cgetchar

                  Dgerch

                  A

                  解析:通過scanf(“%d”,變量內存地址) 可以實現將鍵盤輸入的一串數字字符串轉換為int類型數據,gets用于給字符數組賦值,getchar用于給字符變量賦值   。

                  4

                  3.         已有聲明"int a[5],*b=a,(*c)[3],*d[3];",以下表達式中有語法錯誤的是____。

                  A a[0]=0

                  B b[0]=0

                  C.  c[0]=0;

                  D.  d [0]=0

                  C

                  解析: 變量聲明中 int (*c)[3]的含義是聲明一個變量c,指向一塊內存空間,這塊內存空間中只能存放行地址的內存編號,具體見視頻講解。

                  10

                  4.         已知ab為參加某邏輯運算的兩個操作數,該邏輯運算規則為當且僅當a、b中只有一個為真時結果才為真,其他情況下結果均為假。以下用于表示該邏輯運算的表達式是____。
                  A
                  !a||b

                  Ba&&!b

                  C(a&&b) &&!(a||b)

                  D(a||b) &&! (a&&b)

                  D

                  解析: 可以分別采用當a=1,b=1a=0,b=0a=1,b=0a=0,b=1時帶入公式計算,只有D選項符合題目要求。

                  3

                  5.         執行語句”fp=fopen(“my.dat”,”r+”);”后,程序對文件my.dat中數據的讀寫操作權限為_______。

                  A 只讀

                  B 只寫

                  C.  可讀且可覆蓋寫

                  D.  可讀且可追加寫

                  C

                  解析:只讀通過r實現,只寫通過w實現,通過r+實現對數據進行讀且可覆蓋寫, 可讀且可追加寫通過aa+實現   。

                  13

                  6.         以下程序運行時,輸出結果中第一行是____________   ,第二行是____________   。

                  #include<stdio.h>

                  int  main()

                  {

                    int  n,s=0,t=1;

                    for(n=1;n<=3;n++)

                        t=t*n,s=s+t;

                    printf( "%d\n%d" , t,s ) ;

                    return 0;

                  }

                  6@9

                  解析: 因文字解析不如視頻講解清晰,具體見視頻詳細講解。

                  6

                  7.         以下程序運行時,輸出結果中第一行是____________   ,   第二行是____________   ,第三行是____________   。

                  #include <stdio.h>

                  int funp(int  m )

                  {

                    int  i;

                    for(i=2;i<=m/2;i++)

                        if(m%i==0)return 0;

                    return 1;

                  }

                  int  guess(int  a[][3],int  m,int  n )

                  {

                     int  i,k,j,t=0;

                     if(m%2)m++;

                     for(i=m;i<=n;i+=2)

                     {

                      for(k=3;k<=i/2;k+=2)

                        if(funp(k))

                           {

                          j=i-k;

                          if(funp(j))

                                {

                             a[t][0]=i;a[t][1]=k;a[t][2]=j;

                              t++;

                             break;

                                }

                        }

                     }

                     return t;

                  }

                  int   main()

                  {

                     int  a[100][3],i,k;

                     k=guess(a,6,10);

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

                       printf("%3d%3d %3d\n ",a[i][0],a[i][1],a[i][2]);

                     return 0;

                  }

                  6  3  3@8  3  5@10  3  7

                  解析: 因文字解析不如視頻講解清晰,具體見視頻詳細講解。

                  7

                  8.         以下程序運行時,輸出結果中第一行是_____________,第二行是______________。

                  #include<stdio.h>

                  int strmerge(char *a,char *b,char *c)

                  {

                    int i=0,j=0,k=0;

                    char   t;

                    while(a[i]!='\0' && b[j]!='\0')

                    {

                      if(a[i]==b[j])

                        t=a[i],i++,j++;

                      else

                        if(a[i]<b[j])   t=a[i++];

                        else  t=b[j++];

                        if(k==0)  c[k++]=t;

                        else  if(t!=c[k-1])  c[k++]=t;

                    }

                   

                    while (a[i]!='\0')

                    {

                      if(k==0) c[k++]=a[i];

                        else  if(a[i]!=c[k-1])  c[k++]=a[i];

                      i++;

                    }

                    while(b[j]!='\0')

                    {

                      if(k==0)  c[k++]=b[j];

                      else if(b[j]!=c[k-1])  c[k++]=b[j];

                      j++;

                    }

                    c[k]='\0';

                    return  i+j-k;

                  }

                   

                   

                  int  main()

                  {

                     int  n;

                     char  s1[10]="ccp",s2[10]="oppy",s3[20];

                     n=strmerge(s1,s2,s3);

                     puts(s3);

                     printf("%d",n);

                     return 0;

                  }

                   

                  copy@3

                  解析: 因文字解析不如視頻講解清晰,具體見視頻詳細講解。

                  7

                  9.         以下程序運行時,輸出結果中第一行是_______,第二行是____________,第三行是________。

                   

                  以下程序運行時,輸出結果中第一行是,第二行是,第三行是。

                  #include<stdio.h>

                  struct node

                  {

                      int d;

                      struct node *next;

                  };

                  int copylist( struct node *head ,int x[])                 

                  {

                      int data,k=0;  

                      struct node *pk,*pj,*pm,*pn;                

                      while(head!=0)     

                      {

                          pk=head;   data=pk->d;   pn=pk;

                          while(pk->next!=0)              

                          {

                              pj = pk->next;

                              if(pj->d < data)            

                              {  data=pj->d;   pm=pk;    pn=pj;   }

                              pk=pj;

                          }

                          x[k++]=pn->d;

                          if(pn!=head)

                             pm->next=pn->next;       

                          else  

                             head=pn->next;

                      }

                      return k;

                  }

                  int main()

                  {

                      int n,i,b[10];

                      struct node a[]={{4},{2},{3}},*head=a;   

                      a[0].next=a+1;a[1].next=a+2;

                      n=copylist(head,b);

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

                          printf("%d\n",b[i]);

                      return 0;

                  }

                   

                  2@3@4

                  解析: 因文字解析不如視頻講解清晰,具體見視頻詳細講解。

                  11

                   

                  1(完善程序):

                  【要求】

                  1.打開T盤中文件myf0.c,按以下程序功能完善文件中的程序。

                  2.修改后的源程序仍保存在Tmyf0.c文件中,請勿改變myf0.c的文件名。

                  【程序功能】

                    已知方程x2-3x+2=0在區間[0,1.5]內有一實根。以下程序中函數root為遞歸函數,采用二分法(半分區間法)求方程f(x)=0在區間[a,b]內的一個近似實根x。當|f(x)|<10-8時,x即為所求的近似實根。

                  【測試數據與運行結果】

                      輸出:One root is 1.000000

                  【待完善的源程序】

                  #include <stdio.h>

                  #include<conio.h>

                  #include <math.h>

                  double  f ( double x )

                  {  

                      return x*x-3*x+2;

                  }

                  double  root ( double a,double b )

                  {

                      double m=   1   ,x=0 ;        

                      if(fabs(f(m))<1e-8)    

                          x=   2  ;           

                      else

                      {

                          if(   3    *f(m)>0 )   

                              a=m;

                          else 

                              b=m;

                          x=root(  4   ); 

                      }

                      return x ;

                   }

                  int main()

                  {

                      printf("One root is %lf",root(0,1.5));

                      getch();

                      return 0;

                  }

                   

                   

                  2(改錯題):

                  【要求】

                  1.打開T盤中文件myf1.c,按以下程序功能改正文件中程序的錯誤。

                  2.可以修改語句中的一部分內容,調整語句次序,增加變量聲明或預處理命令,但不能增加其他語句,也不能刪去整條語句。

                  3.修改后的源程序仍保存在Tmyf1.c文件中,請勿改變myf1.c的文件名。

                  【程序功能】

                   以下程序中函數sort的功能是對a指向的數組中前n個元素作如下處理:

                   1)若數組元素值的十進制表示不足四位,則取原數加上十進制數1000作為該元素的值,若超過四位數則取其低三位數加上十進制數1000作為該元素的值,否則其值保持不變。

                   2)按每個數組元素值的十進制表示中的高兩位數升序排序;如果高兩位數相等,則按低兩位數降序排序。

                  【測試數據與運行結果】

                  測試數據:

                       7115,5405,505,810,7108,9016,9005,3412,13511,4509

                  輸出:

                         1511   1505   1810   3412   4509

                         5405   7115   7108   9016   9005

                  【含有錯誤的源程序】

                  #include <stdio.h>

                  #include<conio.h>

                  #define N 10

                  void sort(int a[],int n);

                  int main()

                  {

                      int i;

                      int a[n]={7115,5405,505,810,7108,9016,9005,3412,13511,4509};

                      sort(a,N);

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

                          printf((i+1)%5 ? "%7d":"%7d\n",a[i]);

                      getch();

                      return 0;

                  }

                  void sort(int a[], int n)

                  {

                      int i,j,k,x;

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

                      {

                          if(!(1000<=a[i]<=9999))     

                              a[i]=1000+a[i]%1000;

                      }

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

                      {

                          k=i;

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

                            if((a[k]/100)>(a[j]/100)) k=j;

                          else

                            if(a[k]/100=a[j]/100&&a[k]%100<a[j]%100) k=j;

                          if (k!=i)

                              x=a[i],a[i]=a[k],a[k]=x;

                      }

                  }

                   

                   

                   

                  3(編程題):

                  【要求】

                  1.打開T盤中文件myf2.c,在其中輸入所編寫的程序。

                  2.數據文件的打開、使用、關閉均用C語言標準庫中緩沖文件系統的文件操作函數實現。

                  3.請勿改變myf2.c的文件名。

                  【程序功能】

                     統計字符串中出現的不同英文字母(不區分大小寫)各自出現的次數。

                  【編程要求】

                  1.編寫函數int tongji(char x[],char a[],int c[])。函數功能是統計僅在x指向的字符串中出現的不同英文字母各自出現的次數(字母不區分大小寫),按字典序依次將字符串中出現的字母保存到a指向的數組中,將每個字母出現的次數對應保存到c指向的數組中,函數返回字符串中出現的不同字母的數量。

                  2.編寫main函數。函數功能是聲明3個一維數組并用測試字符串初始化其中一個數組,用3個數組作實參調用tongji函數,將統計結果輸出到屏幕及文件myf2.out 中。最后將考生本人準考證號輸出到文件myf2.out中。

                  【測試數據與運行結果】

                      測試字符串:Good Lucky

                      輸出:

                          C: 1

                          D: 1

                          G: 1

                          K: 1

                  L: 1

                          O: 2

                          U: 1

                          Y: 1

                   

                  #include <stdio.h>

                   

                  int tongji(char x[],char a[],int c[])

                  {

                     int i=0,k=0;

                     char b;

                     while(x[i])

                     {

                           if(x[i]>='A' && x[i]<='Z')

                           {    b=x[i];

                             c[b-65]++;

                           }

                           if(x[i]>='a' && x[i]<='z')

                           {  

                                 b=x[i];

                           c[b-65-32]++;

                           }

                        i++;

                     }

                   

                   

                   

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

                     {

                        if(c[i]>0)

                           {

                                  a[k]=i+65;

                                  c[k]=c[i];

                                  k++;

                           }

                     }

                   

                     return k;

                  }

                   

                   

                  int main()

                  {

                    FILE *fp;

                    int k,i;

                    char x[]="Good Lucky";

                    char a[26];

                    int c[26]={0};

                    fp=fopen("myf2.out","w+");

                    if(fp==NULL)

                    {

                      printf("ERROR");

                         return 0;

                    }

                   

                    k=tongji(x,a,c);

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

                    {

                       printf("%c:%d\n",a[i],c[i]);

                          fprintf(fp,"%c:%d\n",a[i],c[i]);

                    }

                    fprintf(fp,"My Exam Number is 001122");

                    fclose(fp);

                    return 0;

                  }

                   

                   

                   

                   

                   

                  #include <stdio.h>

                   

                  int tongji(char x[],char a[],int c[])

                  {

                     int i=0;

                     int k=0;

                     char b;

                     char a1[26]={0};

                     int c1[26]={0};

                   

                     while(x[i])

                     {

                            if(x[i]>='A' && x[i]<='Z' || x[i]>='a' && x[i]<='z')

                            {

                                   b=x[i];

                                   if(x[i]>='a' && x[i]<='z')

                                   {

                                b=x[i]-32;

                                   }

                                   a1[b-65]=b;

                             c1[b-65]++;

                              

                            }

                            i++;

                     }

                   

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

                     {

                            if(c1[i]>0)

                            {

                           a[k]=a1[i];

                                 c[k++]=c1[i];

                            }

                   

                     }

                     return k;

                  }

                   

                  int main()

                  {

                     FILE *fp;

                     char x[]="Good Lucky";

                     char a[26]={0};

                     int c[26]={0};

                     int i,k;

                     fp=fopen("myf2.out","w+");

                   

                     k=tongji(x,a,c);

                   

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

                     {

                       printf("%c:%d\n",a[i],c[i]);

                          fprintf(fp,"%c:%d\n",a[i],c[i]);

                     }

                   

                     fclose(fp);

                     return 0;

                    

                   

                  }

                  亚洲欧美日韩国产一区二区三区_全亚洲免费一级黄片_国产一区二区三区不卡视频手机版_国产污三级网站在线观看