1. <small id="kntrr"><delect id="kntrr"></delect></small>
    2. <sub id="kntrr"></sub>
        1. <form id="kntrr"><listing id="kntrr"></listing></form>
            江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
            2018年秋季江蘇省計算機二級C語言真題1

             

            1.         根據不同的應用需求,數字音頻采用的編碼方法有多種,文件格式也各不相同。下列的音頻格式中,由微軟公司開發的,采用未壓縮方法編碼的是____。

            A. WAV

            B. MP3

            C. AAC

            D. WMA

            A

            解析:MP3是一種音頻壓縮技術,由于這種壓縮方式的全稱叫MPEG Audio Layer3,所以人們把它簡稱為MP3,WMA是微軟制訂的音頻壓縮文件格式,比mp3標準晚,比mp3還小,比mp3音質還好, WAV是微軟公司(Microsoft)開發的一種聲音文件格式, 采用未壓縮編碼方式。

            5

            2.         下列有關IP地址(IPv4)和路由器的敘述中,錯誤的是_____。

            A. 每個IP地址使用32個字節的二進制數表示,在使用中通常寫成“點分十六進制”的形式

            B. IP地址分為五類,其中A類、B類和C類是三個基本類,每類有不同長度的網絡號和主機號

            C. IP地址空間的分配由國際組織ICANN負責,目前IP地址空間已分配完畢

            D. 路由器是連接異構網絡的關鍵設備,一臺路由器會擁有(使用)多個不同的IP地址

            A

            解析: 每個IP地址使用32個字節的二進制數表示,在使用中通常寫成“點分十進制”的形式  。

            4

            3.         字符集及其編碼是計算機中表示、存儲、處理和交換文本信息的基礎,但由于歷史原因,目前不同系統或應用中使用的字符編碼方案并不統一。下列編碼方案中,所有字符均采用等長編碼(編碼長度相同)的是______。

            A. GB2312

            B. GB18030

            C. UTF-8

            D. UTF-16

            A

            解析: GB2312編碼:是我國1981年頒布的第一個國標,該標準選出6763個常用漢字和682個非漢字字符,所有字符采用2字節編碼; GB18030:包含漢字23940,GB2312GBK保持兼容。同時與UCS也接軌,在我國信息處理產品中強制執行,ASCII采用1字節編碼,漢字采用2字節編碼,其他采用4字節編碼; UCS:國際標準化組織(ISO)制定了一個將全世界所有文字與符號集中進行統一編碼,稱為UCS,與其等同的是由微軟等公司共同制定的工業標準Unicode,UCS有兩種標準UTF-8UTF-16,UTF-8采用ASCII碼用1個字節編碼,拉丁字母,標點符號等采用2字節編碼,漢字采用3個字節編碼,其他極少字符采用4字節編碼,UCS-16是指ASCII和漢字都采用2字節編碼,其他不常用字符采用4字節編碼,Windows中文版上現在使用UTF-16,也是Java,.NET軟件開發環境等默認的編碼標準。

            5

            4.         TCP/IP模型將計算機網絡分成下列4層,每一層都包含若干個協議。在TCP/IP模型中,HTTP協議工作在______。

            A. 接口層

            B. 互連層

            C. 傳輸層

            D. 應用層

            D

            解析: TCP/IP包括了100多個協議,將通信問題劃分為四個層次,從高到低依次是應用層、傳輸層、網絡互連層、網絡接口與硬件層,應用層規定了運行在不同主機上的應用程序之間如何通過互連的網絡進行通信,包括的協議如HTTP,SMTP,FTP,TELNET;傳輸層規定了怎樣進行端-端的數據傳輸,TCPUDP兩個協議,TCP協議負責可靠的完成數據從發送計算機到接收計算機的傳輸,UDP是不可靠的數據傳輸協議, 例如音頻和視頻數據的傳輸;網絡互連層規定了在整個互連的網絡中所有計算機統一使用的編址方案和數據包格式(稱為IP數據報),以及IP數據報的轉發機制;網絡接口與硬件層規定了怎樣與各種不同的網絡進行接口,并負責將IP包轉換成適合在特定網絡中傳輸的幀格式  。

            4

            5.         下列有關計算機網絡組成、分類和工作模式等敘述中,錯誤的是______。

            A. 按網絡所覆蓋的地域范圍來分,人們常將計算機網絡分為LAN、ATM、WLAN等類型

            B. 有些廣域網是一些機構或組織自行構建的專用網,有些是網絡運營商構建的公用數據網

            C. 網絡協議是計算機網絡的重要組成部分,目前互聯網主要采用TCP/IP協議系列

            D. 計算機網絡有兩種基本工作模式,即P2P工作模式和C/S工作模式

            A

            解析: 按網絡所覆蓋的地域范圍來分分為局域網(LAN)、城域網(MAN)、廣域網(WAN)  。

            4

            6.         下列有關計算機的邏輯組成和分類的敘述中,錯誤的是______。

            A. 一臺計算機中往往有多個處理器,它們各有其不同的處理任務,其中CPU是核心部件

            B. 主存儲器與CPU高速連接,用來存放已經啟動運行的程序代碼和需要處理的數據

            C. 人們提及PC時,泛指臺式機、筆記本電腦、智能手機和平板電腦等個人使用的計算機

            D. 嵌入式計算機是內嵌在其他設備中的專用計算機,許多嵌入式計算機都把軟件固化在芯片中

            C

            解析: 人們提及PC時,泛指臺式機、筆記本電腦等個人使用的計算機  。(: 一臺計算機中往往有多個處理器,CPU,圖形處理器等)

            2

            7.         字符集及其編碼是計算機中表示、存儲、處理和交換文本信息的基礎,但由于歷史原因,目前不同系統或應用中使用的字符編碼方案并不統一。下列編碼方案中,目前在我國信息處理產品中強制貫徹執行的是____。

            A. GB 2312

            B. GBK

            C. GB 18030

            D. UCS/Unicode

            C

            解析: GB18030:包含漢字23940,GB2312GBK保持兼容。同時與UCS也接軌,在我國信息處理產品中強制執行。

            5

            8.         在現代通信系統中,為了能有效地提高數據鏈路的利用率、降低通信成本,一般使用多路復用技術讓多路信號同時共用一條傳輸線進行傳輸。用戶通過電話線使用ADSL技術接入互聯網時,ADSL技術接入方式主要是使用了______。

            A. TDM

            B. WDM

            C. FDM

            D. CDM

            C

            解析:時分多路復用(TDM)是各終端設備按不同時間來輪流使用同一線路來傳輸數據,是計算機網絡傳輸使用的主要方式,頻分多路復用(FDM)是將不同信源發出的信號調制在不同頻率的載波上,波分多路復用(WDM)是在一根光纖傳輸不同波長的光波。碼分是指每個用戶分配一個地址碼,各個碼型互不重疊,通信各方之間不會相互干擾,且抗干攏能力強  。

            4

            9.         光盤是目前常見的輔助存儲器。下列相關敘述中,錯誤的是____。

            A. 光盤存儲器由光盤驅動器和光盤片兩部分組成,光盤的基片是鋁合金材料

            B. 從接口來看,目前內置DVD光驅與主機的接口主要是SATA,外置的主要是USB

            C. DVD光盤分為單面單層、單面雙層等多種類型,目前最常用的是單面單層的盤片

            D. BD光驅采用波長較短的藍色激光在光盤上進行數據讀寫,因而提高了光盤存儲容量

            A

            解析: 光盤的基片是耐熱的有機玻璃 。

            2

            10.     在微軟公司的Office軟件中內置了一種程序設計語言,用戶可以使用它來編寫程序以擴展功能。該語言是_____。

            A. VBA

            B. VBScript

            C. Java

            D. C#

            A

            解析: VBA用于編寫程序來擴展Office軟件的功能,VBScript用于嵌入到Html文檔中以擴充網頁的功能,Java用于網絡編程,包括編寫安卓智能手機的App,Object-C語言是iPhoneiPad編程的語言, Lisp語言與PROLOG語言主要用于人工智能,Ada語言用于飛行器控制,MATLAB是一種面向向量和矩陣運算的數值計算語言。

            3

            1(單選題):

            若有預處理命令“#include"和聲明“char sl[80]=world cup,s2[80]=2018;”,則以下庫函數調用中錯誤的是________。

            A. strlen(s1);

            B. strcpy(s1,s2);

            C. strcat(s1,s2);

            D. strcmp(s1[0],s2[0]);

            D

            解析: A選項返回s1內存空間中字符個數9,B選項將s2中內存空間的值拷貝給s1內存空間,C選項表示將s2內存空間的值放到s1內存空間原有數值第1個結束標志符\0的后面,題目中s1內存空間形成world cup2018,D選項錯誤,strcmp(表達式1,表達式2)的作用是比較表達式1指向的內存空間中的字符串與表達式2指向的內存空間中的字符串是否相等,因為strcmp要求表達式必須是內存編號,s1[0]返回的是w,s2[0]返回的是2,不是內存編號,如果修改為strcmp(s1,s2)就對了,因為在C語言中,只寫數組的名字表示該數組的起始內存編號;strlen,strcpy,strcat,strcmp都要求參數是內存編號, 因文字解析不如視頻清晰,詳細見視頻詳細講解。

            7

            己有聲明“double a=1.23456;int i;”,現要求使變量a中實數的十進制表示經過四舍五入處理后僅保留2位小數(即將a值變為1.23000),以下表達式中能實現該功能的是_______。

            A. i=a*100+0.5,a=i/100.0

            B. a = (a*100+0.5)/100.0

            C. a=((int)a*100+0.5)/100.0

            D. a=(a/100+0.5)/100.0

            A

            解析:因為i是整型,所以i=a*100+0.5得到i=123.456+0.5,得到i=123,然后執行a=i/100.0后得到1.23000,注意這里的i/100.0不能寫成i/100,因為i是整型,100是整型,整型除以整型得到整型,所以i/100的結果是1而不是1.23 ,100.0才表示雙精度型,所以i/100.0才正確,另外C選項首先執行(int)a得到1,然后(1*100+0.5)/100.0得到結果1.005000 。

            4

            以下聲明中正確的是______。

            A. int a[];

            B. int a[10]=0;

            C. int a[10+1]={0};

            D. int a[3l={1,2,3,4};

            C

            解析:聲明數組時,數組大小必須是常量,A選項錯誤,修改為 int a[]={1,2,3};這類格式就對了;B選項錯誤,int,double,float類型初始化數組賦值時,不能直接不加{}就賦值,修改為int a[10]; 或者int a[10]={1,2};這類格式就對了;D選項錯誤, int a[3]大小是3塊內存空間,{1,2,3,4}4個值了。

            7

            若有聲明“int a=l,x=3,y=4:”,則下列語句中除_______外,其他三條語句功能均相同。

            A.  if(a) printf("%d ",x);  else  printf("%d",y);

            B. if(a == 0) printf("%d",y);  else  printf("%d”,x);

            C. if(a! =0) printf("%d",x); else printf('%d",y);

            D. if(a==0) printf("%d",x); else printf(“%d”,y);

            D

            解析:C語言中,0表示假值,0表示真值,因為a=1,所以ABC選項直接輸出x值。

            5

            若有聲明“int a[4],j;”及語句“for(j=0;j<4;j++) p[j]=a+j;”,則標識符p應聲明為_______。

            A. int p[4];

            B. int (*p)[4];

            C. int **p[4];

            D. int *p[4];

            D

            解析:A選項是指普通數組,聲明可以盛放4int型數值的內存空間區;B選項是指向一維數組的指針變量;C選項是二級指針數組,里面盛放的是一級指針的內存編號;D選項是指針數組, 聲明可以盛放4int型內存編號的內存空間區, 因文字解析不如視頻清晰,詳細見視頻詳細講解  。

            10

             

             

            6(填空題 <3> ) :

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

            #include

            void change(int x, int m)

            {

                char ch[]={"0123456789ABCDEF"},b[80];

                int i=0,r;

                while(x)

                {

                    r=x%m;  

                    x/=m;

                    b[i++]=ch[r];

                }

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

                    printf("%c",b[i]);

            }

            int main()

            {

                change(10,2);  printf("\n");

                change(20,8);  printf("\n");

                change(30,16);    

                return 0;

            }

             

            1010@24@1E

             

            7 (填空題 <2> ) :

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

            #include

            int func(int a)

            {

                static int c=1;

                c*=a;   

                return c;

            }

            int main()

            {

                int  b=1, i;

                for(i=2;i<4;i++)

                {

                    b=b+func(i);

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

                }

                return 0;

            }

             

            3@9

             

             

            8(填空題 <2> ) :

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

            #include

            int f(int a,int b);

            int main( )

            {

                printf("%d\n%d",f(3,5), f(9,6));

                return 0;

            }

            int f(int a,int b)

            {

                if(a==b)

                    return a;

                else

                    if(a>b)

                        return f(a-b,b);

                    else 

                        return f(a,b-a);

            }

             

            1@3

             

            9 (填空題 <3> ) :

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

            #include

            int main( )

            {

                int a[3][3]={0},i,j,k,n=3;

                j=n/2;  i=n-1; 

                a[i][j]=1;

                for(k=2;k<=n*n;k++)

                {

                    i++;j++;

                    if(i>n-1&&j>n-1)

                    {

                        i=i-2;  j--;

                    }

                    else

                    {

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

                        if(j>n-1) j=0;  

                    }

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

                        a[i][j]=k;

                    else 

                    {

                        i=i-2; j--; a[i][j]=k;

                    }

                }

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

                return 0;

            }

            1@2@5

             

             

            1(完善程序):

            完善程序12,每空3

            【要求】

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

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

            【程序功能】

            函數f的功能是計算并返回F(x)值,其中x不等于0。

            計算F(x)中的無窮級數時,當通項(-1)nx2n/(2n)!的絕對值小于等于10-6時停止累加。

            【測試數據與運行結果】

            測試數據:x = 1

             輸出:f(1.000000)=1.278868

            【待完善的源程序】

            #include

            #include

            #include

            double f(double x)

            {

                int n=1,sign=-1;

                double term=    1     ,sum=term;         

                while(    2    >1e-6)             

                {

                    term=term*sign*x*x/   3    ; 

                    sum=sum+term;   

                    n++;

                }

                sum=3.14159/2-cos(x)/x*    4   ;   

                return sum;

            }

            int main()

            {

                double x=1;  

                printf("f(%f)=%f\n",x,f(x));

                getch();

                return 0;

            }

             

            1@fabs(term)@((2*n-1)*(2*n))@sum

             

            (1)1

            (2)fabs(term)

            (3)((2*n-1)*(2*n))

            (4)sum

             

             

             

            2(改錯題):

            改錯(共16分,每錯4分)

            【要求】

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

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

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

            【程序功能】

             在一個一維數組中存儲的N個互不相同的整數中找出最小值和最大值,將最小值移到第一個數之前,將最大值移到最后一個數之后,其他數保持相對位置不變。

            【測試數據與運行結果】

            測試數據:8,5,6,9,4,1,-1,7,3,2

            輸出:-1,8,5,6,4,1,7,3,2,9

            【含有錯誤的源程序】

            #include

            #include

            #define N 10

            void crl(int *a)

            {

                int i,j,max=0,min=0,temp;

                for(i=1;i

                    if(a[min]>a[i]) min=i;

                temp=a[min];

                j=min;

                while(j<0)

                {

                    a[j]=a[j-1];

                    j--;

                }

                a[0]=temp;

                for(i=1;i

                    if(a[max]

                temp=a[max];

                j=max;

                while(j

                {

                    a[j]=a[j-1];

                    j++;

                }

                a[N-1]=temp;

            }

            int main()

            {

                int a[N]={8,5,6,9,4,1,-1,7,3,2};

                int i;

                crl(int a);

                for(i=0;i

                   printf("]",*a+i);

                printf("\n");

                getch();

                return 0;

            }

             

            while(j<0)   修改為   while(j>0)@ a[j]=a[j-1];   修改為  a[j]=a[j+1];@ crl(int a);    修改為   crl(a);@ printf("]",*a+i);   修改為  printf("]",*(a+i));

             

             

            (1) while(j<0)   修改為   while(j>0)

            (2) a[j]=a[j-1];   修改為  a[j]=a[j+1];

            (3) crl(int a);    修改為   crl(a);

            (4) printf("]",*a+i);   修改為  printf("]",*(a+i));

             

             

            3(編程題):

            編程(共22分)

            【要求】

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

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

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

            【程序功能】

              在一個字符串中所有數字子串前插入指定字符。例如,原字符串為"AB1CD12EF123GH",在所有數字字符子串前插入一個指定字符'-'后字符串變為"AB-1CD-12EF-123GH"。

            【編程要求】

            1.編寫void insert(char *p)函數。函數功能:在p指向的字符串中所有數字字符子串前插入一個字符-。

            2.編寫main函數。函數功能:聲明1個一維數組并用測試數據初始化,用數組作實參調用insert函數對數組中字符串做處理,將處理后的字符串輸出到顯示器屏幕及文件myf2.out中。最后將考生本人的準考證號輸出到文件myf2.out中。

            【測試數據與運行結果】

            測試數據:"AB1CD12EF123GH"

             輸出:AB-1CD-12EF-123GH

             

            #include

             

            void insert(char *p)

            {

              char *t,*q;

              int  judge=0;

              q=p;

              while(*p)

              {

                 if(*p>='0' && *p<='9' && judge==0)

                {       

                   while(*q) q++;

                         

                   for(t=p;t

                   {         

                     *q=*(q-1);

                   }

                   *t='-';       

                   judge=1;

             

                 }

                if(*p>='A' && *p<='Z' || *p>='a' && *p<='z')

               {

                  judge=0;

                }

                p++;

              }

            }

             

            int main()

            {

               FILE *fp;

               char c[100]={"AB1CD12EF123GH"};

               insert(c);

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

               printf("%s",c);

               fprintf(fp,"%s\n",c);

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

               fclose(fp);

            }

             

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