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

            20119月全國計算機等級考試二級筆試試卷

             C語言程序設計

             (考試時間90分鐘,滿分100)

            一、選擇題((1)(10)、(21)(40)每題2,(11)(20)每題1分,共70)

            下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填涂在答題卡相應位置上,答在試卷上不得分。

            (1)下列敘述中正確的是
            A)
            算法就是程序                              B)設計算法時只需考慮數據結構的設計
            C)
            設計算法時只需考慮結果的可靠性            D)以上三種說法都不對

            (2)下列關于線性鏈表敘述中,正確的是
            A)
            各數據結點的存儲空間可以不連續,但它們的存儲順序與邏輯順序必須一致
            B)
            各數據結點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續
            C)
            進入插入與刪除時,不需要移動表中的元素
            D)
            以上三種說法都不對

            (3)下列關于二叉樹的敘述中,正確的是
            A)
            葉子結點總是比度為2的結點少一個          B)葉子結點總是比度為2的結點多一個
            C)
            葉子結點數是度為的結點數的兩倍            D)度為2的結點數是度為1的結點數的兩倍

            XY系統

            功能1

            功能2

             

            功能3

             

            功能2.1

            。1

            功能2.2

             

            功能2.3

            .

            (4)軟件按功能分為應用軟件、系統軟件和支撐軟件(或工具軟件)。下現屬于應用軟件的是
            A)
            學生成績管理系統  B)C語言編譯程序         C)UNIX操作系統      D)數據庫管理系統

            (5)某系統總結構圖如下圖所示:

             

             

            該系統總體結構圖的深度是
            A)7                 B)6                     C)3                 D)2

            (6)程序調試的任務是
            A)
            設計測試用例      B)驗證程序的正確性      C)發現程序中的錯誤  D)診斷和改正程序中的錯誤

            (7)下列關于數據庫設計的敘述中,正確是的
            A)
            在需求分析階段建立數據字典                B)在概念設計階段建立數據字典
            C)
            在邏輯設計階段建立數據字典                D)在物理設計階段建立數據字典

            (8)數據庫系統的三級模式不包括
            A)
            概念模式          B)內模式                C)外模式            D)數據模式

             

            R

             

             

             

            S

             

             

             

            T

             

            A

            B

            C

             

            A

            B

            C

             

            A

            B

            C

            a

            1

            2

             

            a

            1

            2

             

            c

            3

            1

            b

            2

            1

             

            b

            2

            1

             

             

             

             

            c

            3

            1

             

             

             

             

             

             

             

             

             (9)有三個關系R、ST如下:

             




            則由關系RS得到關系T的操作是
            A)
            自然連接          B)                    C)                D)

            (10)下列選項中屬于面向對象設計方法主要特征的是
            A)
            繼承              B)自頂向下              C)模塊化            D)逐步求精

            (11)以下敘述中錯誤的是
            A)C
            語言編寫的函數源程序,其文件名后綴可以是.C
            B)C
            語言編寫的函數都可以作為一個獨立的源程序文件
            C)C
            語言編寫的每個函數都可以進行獨立的編譯并執行
            D)
            一個C語言程序只有一個主函數

            (12)以下選項中關于程序模塊化的敘述錯誤的是
            A)
            把程序分成若干相對獨立的模塊,可便于編碼和調試
            B)
            把程序分成若干相對獨立、功能單一的模塊,可便于重復使用這些模塊
            C)
            可采用自底向上、逐步細化的設計方法把若干獨立模塊組裝成所要求的程序
            D)
            可采用自頂向下、逐步細化的設計方法把若干獨立模塊組裝成所要求的程序

            (13)以下選項中關于C語言常量的敘述錯誤的是
            A)
            所謂常量,是指在程序運行過程中,其值不能被改變的量
            B)
            常量分為整型常量、實型常量、字符常量和字符串常量
            C)
            常量可分為數值常量和非數值常量
            D)
            經常被使用的變量可以定義成常量

            (14)若有定義語句: int  a=10;  double  b=3.14; ,則表達式'A'+a+b的值的類型是
            A)char              B)int                   C)double            D)float

            (15)若有定義語句: int  x=12, y=8, z; ,在其后執行語句z=0.9+x/y;,則z的值為
            A)1.9               B)1                     C)2                 D)2.4

            (16)若有定義: int  a,b;,通過語scanf("%d;%d",&a,&b);,能把整數3賦給變量a, 5賦給變量b的輸入數據是
            A)3  5              B)3,5                   C)3;5               D)35

            (17)若有定義語句: int  k1=10, k2=20;,執行表達式(k1=k1>k2) && (k2=k2>k1)后,k1k2的值分別為

            A)01             B)020                C)101            D)1020

            (18)有以下程序
            #include  <stdio.h>
            main( )
            {  int  a=1, b=0;
               if (--a)   b++;
               else  if(a==0)  b+=2;
               else  b+=3;
               printf("%d\n",b);
            }
            程序運行后的輸出結果是
            A)0                 B)1                     C)2                 D)3

            (19)下列條件語句中,輸出結果與其他語句不同的是
            A) if(a)     printf("%d\n", x);    else  printf("%d\n",y);
            B) if(a==0)  printf("%d\n", y);    else  printf("%d\n",x);
            C) if(a!=0)  printf("%d\n", x);    else  printf("%d\n",y);
            D) if(a==0)  printf("%d\n", x);    else  printf("%d\n",y);

            (20)有以下程序
            #include  <stdio.h>
            main( )
            {  int  a=7;
               while (a--);
               printf("%d\n",a);
            }
            程序運行后的輸出結果是
            A)-1                B)0                     C)1                 D)7

            (21)以下不能輸出字符A的語句是(注:字符AASCII碼值為65,字符aASCII碼值為97
            A)printf("%c\n",'a'-32);                    B)printf("%d\n",'A')
            C)printf("%c\n",65);                        D)printf("%c\n",'B'-1);

            (22)有以下程序(注:字符aASCII碼值為97
            #include  <stdio.h>
            main( )
            {  char  *s={"abc"};
               do
               {  printf("%d",*s%10); ++s;  }
               while (*s);
            }
            程序運行后的輸入結果是
            A)abc               B)789                   C)7890              D)979899

            (23)若有定義語句: double  a,*p=&a; 以下敘述中錯誤的是
            A)
            定義語句中的 * 號是一個間址運算符
            B)
            定義語句中的 * 號只是一個說明符
            C)
            定義語句中的p只能存放double類型變量的地址
            D)
            定義語句中,*p=&a把變量a的地址作為初值賦給指針變量p

            (24)有以下程序
            #include  <stdio.h>
            double  f(double  x);
            main( )
            {  double  a=0;  int  i;
               for (i=0; i<30; i+=10)  a+=f( (double)i);
               printf("%5.0f\n",a);
            }
            double  f(double  x)
            {  return  x*x+1;  }
            程序運行后的輸出結果是
            A)503               B)401                   C)500               D)1404

            (25)若有定義語句: int  year=2009, *p=&year;,以下不能使變量year中的值增至2010的語句是

            A)*p+=1;            B)(*p)++;               C)++(*p);           D)*p++;

            (26)以下定義數組的語句中錯誤的是
            A)int  num[]={1,2,3,4,5,6}                  B)int  num[][3]={{1,2},3,4,5,6};
            C)int  num[2][4]={{1,2},{3,4},{5,6}};       D)int  num[][4]={1,2,3,4,5,6};

            (27)有以下下程序
            #include  <stdio.h>
            void  fun(int  *p)
            {  printf("%d\n", p[5]);  }
            main( )
            {  int  a[10]={1,2,3,4,5,6,7,8,9,10};
               fun(&a[3]);
            }
            程序運行后的輸出結果是
            A)5                 B)6                     C)8                 D)9

            (28)有以下程序
            #include  <stdio.h>
            # define  N  4
            void  fun(int  a[][N], int  b[])
            {  int  i;
               for (i=0; i<N; i++)  b[i]=a[i][i]-a[i][N-1-i];
            }
            main( )
            {  int  x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}, y[N], i;
               fun(x, y);
               for (i=0;i<N; i++)  printf("%d,",y[i]);   printf("\n");
            }
            程序運行后的輸出結果是
            A)-12,-3,0,0,       B)-3,-1,1,3,            C)0,1,2,3,          D)-3,-3,-3,-3,

            (29)有以下函數
            int  fun(char  *x, char  *y)
            {  int  n=0;
               while ( (*x==*y) && *x!='\0')  {x++;  y++;  n++; }
               return  n;
            }
            函數的功能是
            A)
            查找xy所指字符串中是否有'\0'
            B)
            統計xy所指字符串中最前面連續相同的字符個數
            C)
            y所指字符串賦給x所指存儲空間
            D)
            統計xy所指字符串中相同的字符個數

            (30)若有定義語句: char  *s1="OK", *s2="ok";,以下選項中,能夠輸出"OK"的語句是
            A)if (strcm(s1,s2)==0  puts(s1);            B)if (strcm(s1,s2)!=0  puts(s2);
            C)if (strcm(s1,s2)==1  puts(s1);            D)if (strcm(s1,s2)!=0  puts(s1);

            (31)以下程序的主函數中調用了在其前面定義的fun函數
            #include  <stdio.h>

            main( )
            {  double  a[15],k;
               k=fun(a)

            }
            則以下選項中錯誤的fun函數首部是
            A)double  fun( double  a[15])               B)double  fun( double  *a)
            C)double  fun( double  a[])                 D)double  fun( double  a)

            (32)有以下程序
            #include  <stdio.h>
            #include  <string.h>
            main( )
            {  char  a[5][10]={"china", "beijing", "you", "tiananmen", "welcome"};
               int  i,j;  char t[10];
               for ( i=0; i<4; i++)
                 for (j=i+1; j<5; j++)
                   if( strcmp(a[i], a[j])>0)
                   {  strcpy(t,a[i]);  strcpy(a[i],a[j]);  strcpy(a[j],t);  }
               puts(a[3]);
            }
            程序運行后的輸出結果是
            A)beijing           B)china                 C)welcome           D)tiananmen

             (33)有以下程序
            #include  <stdio.h>
            int  f(int  m)
            {  static  int  n=0;
               n+=m;
               return  n;
            }
            main( )
            {  int  n=0;
               printf("%d,", f(++n));
               printf("%d\n", f(n++));
            }
            程序運行后的輸出結果是
            A)1,2               B)1,1                   C)2,3               D)3,3

            (34)有以下程序
            #include  <stdio.h>
            main( )
            {  char  ch[3][5]={"AAAA","BBB","CC"};
               printf( "%s\n", ch[1] );
            }
            程序運行后的輸出結果是

            A)AAAA              B)CC                    C)BBBCC             D)BBB

            (35)有以下程序
            #include  <stdio.h>
            #include  <string.h>
            void  fun(char  *w, int  m)
            {  char  s,*p1, *p2;
               p1=w;   p2=w+m-1;
               while (p1<p2) { s=*p1;  *p1=*p2;  *p2=s;  p1++;  p2--; }
            }
            main( )
            {  char  a[]="123456";
               fun( a, strlen(a) ); puts(a);
            }
            程序運行后的輸出結果是
            A)654321            B)116611                C)161616            D)123456

            (36)有以下程序
            #include  <stdio.h>
            #include  <string.h>
            typedef  struct  {char  name[9];  char  sex;  int  score[2]; } STU;
            STU  f(STU  a)
            {  STU  b={"Zhao",'m',85,90};
               int  i;
               strcpy(a.name, b.name);
               a.sex=b.sex;
               for (i=0; i<2; i++) a.score[i]=b.score[i];
               return  a;
            }
            main( )
            {  STU  c={"Qian",'f',95,92}, d;
               d=f(c);
               printf("%s,%c,%d,%d,",d.name,d.sex,d.score[0],d.score[1]);
               printf("%s,%c,%d,%d\n",c.name,c.sex,c.score[0],c.score[1]);
            }
            程序運行后的輸出結果是
            A)Zhao,m,85,90,Qian,f,95,92                 B)Zhao,m,85,90,Zhao,m,85,90
            A)Qian,f,95,92,Qian,f,95,92                 B)Qian,f,95,92,Zhao,m,85,90

            (37)有以下程序
            #include  <stdio.h>
            main( )
            {  struct  node {int  n;  struct node  *next;}  *p;
               struct  node  x[3]={{2,x+1}, {4,x+2}, {6, NULL}};
               p=x;
               printf("%d,", p->n );
               printf("%d\n",p->next->n );
            }

            程序運行后的輸出結果是
            A)2,3               B)2,4                   C)3,4               D)4,6

            (38)有以下程序
            #include  <stdio.h>
            main( )
            {  int  a=2, b;
               b=a<<2;   printf("%d\n",b);
            }
            程序運行后的輸出結果是
            A)2                 B)4                     C)6                 D)8

            (39)以下選項中敘述錯誤的是
            A)C
            程序函數中定義的賦有初值的靜態變量,每調用一次函數,賦一次初值
            B)
            C程序的同一函數中,各復合語句內可以定義變量,其作用域僅限于本復合語句內
            C)C
            程序函數中定義的自動變量,系統不自動賦確定的初值
            D)C
            程序函數的形參不可以說明為static型變量

            (40)有以下程序
            #include  <stdio.h>
            main( )
            {  FILE  *fp;
               int  k,n,i,a[6]={1,2,3,4,5,6};
               fp = fopen("d2.dat","w");
               for (i=0; i<6; i++)  fprintf(fp, "%d\n",a[i]);
               fclose(fp);
               fp = fopen("d2.dat","r");
               for (i=0; i<3; i++)  fscanf(fp, "%d%d", &k, &n);
               fclose(fp);
               printf("%d,%d\n", k, n);
            }
            程序運行后的輸出結果是
            A)1,2               B)3,4                   C)5,6               D)123,456

            二、填空題(每空2,30)

            請將每空的正確答案寫在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。

            (1)數據結構分為線性結構和非線性結構,帶鏈的棧屬于  1  。

            (2)在長度為n的順序存儲的線性表中插入一個元素,最壞情況下需要移動表中  2  個元素。

            (3)常見的軟件開發方法有結構化方法和面向對象方法。對某應用系統通過需求分析建立數據流圖(DFD),則應采用  3  方法。

            (4)數據庫系統的核心是  4  。

            (5)在進行關系數據庫的邏輯設計時,E-R圖中的屬性常轉換為關系中的屬性,聯系通常轉換為  5  。

            (6)若程序中已給整型變量ab賦值1020,請寫出按以下格式輸出a,b值的語句  6  。
               ****a=10,b=20****

            (7)以下程序運行后的輸出結果是    7  。
            #include  <stdio.h>
            main( )
            {  int  a=37;
               a%=9;   printf("%d\n",a);
            }

            (8)以下程序運行后的輸出結果是    8  。
            #include  <stdio.h>
            main( )
            {  int  i,j;
               for ( i=6; i>3; i-- )  j=i;
               printf("%d%d\n",i,j);
            }

            (9)以下程序運行后的輸出結果是    9  。
            #include  <stdio.h>
            main( )
            {  int  i, n[ ]={0,0,0,0,0};
               for ( i=1; i<=2; i++ )
               {  n[i]=n[i-1]*3 + 1;
                  printf("%d",n[i]);
               }
               printf("\n");
            }

            (10)以下程序運行后的輸出結果是    10  。
            #include  <stdio.h>
            main()
            {  char  a;
               for( a=0; a<15; a+=5 )
               {  putchar(a+'A');  }
               printf("\n");
            }

            (11)以下程序運行后的輸出結果是    11  。
            #include  <stdio.h>
            void  fun (int  x)
            {  if (x/5>0)  fun(x/5);
               printf("%d ",x) ;
            }
            main( )
            { fun(11);  printf("\n");
            }

            (12)有以下程序
            #include  <stdio.h>
            main()
            {  int  c[3]={0}, k, i;
               while ( (k=getchar() )!='\n')
                  c[k-'A']++;
               for (i=0; i<3; i++) printf("%d",c[i]);  printf("\n");
            }
            若運行程序時從鍵盤輸入ABCACC<回車>,則輸出結果為    12  。

            (13)以下程序運行后的輸出結果是    13  。
            #include  <stdio.h>
            main( )
            {  int  n[2], i, j;
               for ( i=0; i<2; i++ )  n[i]=0;
               for ( i=0; i<2; i++ )
                  for ( j=0; j<2; j++ )  n[j]=n[i]+1;
               printf("%d\n",n[1]);
            }

            (14)以下程序調用fun函數把x中的值插入到a數組下標為k的數組元素中。主函數中,n存放a數組中數據的個數,請填空。
            #include  <stdio.h>
            void  fun( int  s[],  int  *n,  int  k,  int  x)
            {  int  i;
               for (i=*n-1; i>=k; i--)  s[
              14  ]=s[i];
               s[k]=x;
               *n=*n+
              15 
            ;
            }
            main( )
            {  int  a[20]={1,2,3,4,5,6,7,8,9,10,11}, i, x=0, k=6, n=11;
               fun(a,&n,k,x);
               for(i=0;i<n;i++)  printf("%4d",a[i]);  printf("\n");
            }

            20119月全國計算機等級考試二級C語言程序設計筆試標準答案

            一、選擇題 01.DCBAC DADBA  11.CCDCB CBCDA  21.BBAAD CDBBD  31.DCADA ABDAC

            二、填空題1.線性結構    2.n     3.結構化    4.DBMS 或 數據庫管理系統    5.關系  6.printf ("****a=%,b=%d****",a,b); 7.1  8.34  9.14  10.AFK  11.2 11  12.213  13.3  14.i+1 15.1

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