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

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

             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)一棵二叉樹共有25個結點,其中5個是葉子結點,則度為1的結點數為

                A)4                 B)6                     C)10                D)16

             

            (4)在下列模式中,能夠給出數據庫物理存儲結構與物理存取方法的是

                A) 內模式           B)外模式                C) 概念模式         D)邏輯模式

             

            (5)在滿足實體完整性約束的條件下

                A)一個關系中可以沒有候選關鍵字              B)一個關系中只能有一個候選關鍵字

                C)一個關系中必須有多個候選關鍵字            D)一個關系中應該有一個或多個候選關鍵字

             

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

             

            R

             

             

             

            S

             

             

             

            T

             

            A

            B

            C

             

            A

            B

            C

             

            A

            B

            C

            a

            1

            2

             

            a

            1

            2

             

            b

            2

            1

            b

            2

            1

             

            d

            2

            1

             

            c

            3

            1

            c

            3

            1

             

             

             

             

             

             

             

             

                  則由關系RS得到關系T的操作是

                A)自然連接          B)                    C)                D)

             

            (7)軟件生命周期的活動中不包括

                A)軟件維護          B)需求分析              C)市場調研          D)軟件測試

             

            (8)下面不屬于需求分析階段任務的是

                A)確定軟件系統的性能需求                    B)確定軟件系統的功能需求

                C)指定軟件集成測試計劃                      D)需求規格說明書評審

             

            (9)在黑盒測試方法中,設計測試用例的主要根據是

                A)程序外部功能      B)程序數據結構         C)程序流程圖        D)程序內部結構

             

            (10)在軟件設計中不使用的工具是

                A)系統結構圖              B)程序流程圖                 C)PAD                     D)數據流圖(DFD)

             

            (11)針對簡單程序設計,以下敘述的實施步驟順序正確的是

                A)確定算法和數據結構、編碼、調試、整理文檔  B)編碼、確定算法和數據結構、調試、整理文檔

                C)整理文檔、確定算法和數據結構、編碼、調試  D)確定算法和數據結構、調試、編碼、整理文檔

             

            (12)關于C語言中數的表示,以下敘述中正確的是

                A)只有整型數在允許范圍內能精確無誤的表示,實型數會有誤差

                B)只要在允許范圍內整型數和實型數都能精確的表示

                C)只有實型數在允許范圍內能精確無誤的表示,整型數會有誤差

                D)只有用八進制表示的數才不會有誤差

             

            (13)以下關于算法的敘述中錯誤的是

                A)算法可以用偽代碼、流程圖等多種形式來描述

                B)一個正確的算法必須有輸入

                C)一個正確的算法必須有輸出

                D)用流程圖描述的算法可以用任何一種計算機高級語言編寫成程序代碼

             

            (14)以下敘述中錯誤的是

                A)一個C程序中可以包含多個不同名的函數

                B)一個C程序只能有一個主函數

                C)C程序在書寫時,有嚴格的縮進要求,否則不能編譯通過

                D)C程序中主函數必須用main作為函數名

             

            (15)設有以下語句

                char  ch1, ch2;  scanf("%c%c",&ch1,&ch2);

                若要為變量ch1ch2分別輸入字符AB,正確的輸入形式應該是

                A)AB之間用逗號間隔                       B)AB之間不能有任何間隔符

                C)AB之間可以用回車間隔                   D)AB之間用空格間隔

             

            (16)以下選項中非法的字符常量是

                A)'\101'            B)'\65'                C)'\xff'            D)'\019'

             

            (17)有以下程序

               # include  <stdio.h>

               main( )

               {  int  a=0, b=0, c=0;

                  c=(a-=a-5); (a=b,b+=4);

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

               }

                程序運行后的輸出結果是

                A)0,4,5             B)4,4,5                 C)4,4,4             D)0,0,0

             

            (18)設變量均已正確定義并賦值,以下與其他三組輸出結果不同的一組語句是

                A)x++; printf("%d\n",x);                        B)n=++x; printf("%d\n",n);

                C)++x; printf("%d\n",x);                        D)n=x++; printf("%d\n",n);

             

            (19)以下選項中,能表示邏輯值“假”的是

                A)1                 B)0.000001              C)0                 D)100.0

             

            (20)有以下程序

               # include  <stdio.h>

               main( )

               {  int  a;

                  scanf("%d",&a);

                  if(a++<9) printf("%d\n",a);

                  else      printf("%d\n",a--);

               }

               程序運行時從鍵盤輸入9<回車>,則輸出結果是

                A)10                B)11                    C)9                 D)8

             

            (20)有以下程序

               # include  <stdio.h>

               main( )

               {  int  a;

                  scanf("%d",&a);

                  if( a++<9 ) printf( "%d\n",a );

                  else        prinft( "%d\n",a-- );

               }

               程序運行時從鍵盤輸入9<回車>,則輸出結果是

               A)10                 B)11                   C)9                 D)8

             

            (21)有以下程序

               # include  <stdio.h>

               main( )

               {  int  s=0, n;

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

                  {  switch(s)

                     {   case  0:

                         case  1:  s+=1;

                         case  2:  s+=2;  break;

                         case  3:  s+=3;

                         default:  s+=4;

                     }

                     printf("%d,",s);

                   }

                }

                程序運行后的輸出結果是

                A)1,2,4,            B)1,3,6,                C)3,10,14,         D)3,6,10,

             

            (22)kint類型變量,且有以下for語句

                  for (k=-1; k<0; k++ )  printf("****\n");

               下面關于語句執行情況的敘述中正確的是

                A)循環體執行一次               B)循環體執行兩次

                C)循環體一次也不執行           D)構成無限循環

             

            (23)有以下程序

               # include  <stdio.h>

               main( )

               {  char  a,b,c;

                  b='1';   c='A';

                  for (a=0; a<6; a++)

                  {   if(a%2)  putchar(b+a);

                      else     putchar(c+a);

                  }

               }

               程序運行后的輸出結果是

               A)1B3D5F             B)ABCDEF                C)A2C4E6             D)123456

             

            (24)設有如下定義語句

              int  m={2,4,6,8,10}, *k=m;

              以下選項中,表達式的值為6的是

              A)*(k+2)          B)k+2                       C)*k+2              D)*k+=2

             

            (25)fun函數的功能是:通過鍵盤輸入給x所指的整型數組所有元素賦值。在下劃線處應

               填寫的是

               # include  <stdio.h>

               #define    N    5

               void   fun(int  x[N])

               {  int   m;

                  for (m=N-1; m>=0; m-- )  scanf( "%d", _____ );

               }

               A)&x[++m]            B)&x[m+1]               C)x+(m++)           D)x+m

             

            (26)若有函數

               void  fun(double  a, int  *n)

               { ...... }

               以下敘述中正確的是

                A)調用fun函數時只有數組執行按值傳送,其他實參和形參之間執行按地址傳送

                B)形參an都是指針變量

                C)形參a是一個數組名,n是指針變量

                D)調用fun函數時將把double型實參數組元素一一對應地傳送給形參a數組

             

            (27)有以下程序

                # include  <stdio.h>

                main( )

                {  int  a,b,k,m,*p1,*p2;

                   k=1, m=8;

                   p1=&k, p2=&m;

                   a=*p1-m;  b=*p1+*p2+6;

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

                }

                編譯時編譯器提示錯誤信息,你認為出錯的語句是

                A)a=/*p1-m          B)b=*p1+*p2+6;          C)k=1,m=8;          D)p1=&k,p2=&m;

             

            (28)以下選項中有語法錯誤的是

                A)char  *str[ ] = {"guest"};                B)char  str[ ][10] = {"guest"};

                C)char  *str[3]; str[1]="guest";            D)char  str[3][10]; str[1]="guest";

             

            (29)avg函數的功能是求整型數組中的前若干個元素的平均值,設數組元素個數最多不超過10,則下列函數說明語句錯誤的是

                A)int  avg( int  *a, int  n );              B)int  avg( int  a[10], int n );

                C)int  avg( int  a, int n );                D)int  avg( int  a, int n );

             

            (30)有以下程序

                # include  <stdio.h>

                # include  <string.h>

                main( )

                {  printf( "%d\n",strlen("ATS\n012\1")); }

                程序運行后的輸出結果是

                A)3                 B)8                     C)4                 D)9

             

            (31)有以下程序

                # include  <stdio.h>

                main( )

                {  char  a[20], b[20], c[20];

                   scanf( "%s%s" ,a,b );

                   gets(c);

                   printf("%s%s%s\n",a,b,c);

                }

                程序運行時從第一列開始輸入:

                This  is  a  cat!<回車>

                則輸出結果是

                A)Thisisacat!           B)Thisis  a         C)thisis  a  cat!   D)Thisisa  cat!

             

            (32)有以下程序

                # include  <stdio.h>

                void  fun( char  c )

                {  if (c>'x')  fun( c-1 );

                   printf( "%c%",c);

                 }

                main( )

                {  fun('z');  }

                程序運行后的輸出結果是

                A)xyz               B)wxyz                  C)zyxw              D)zyx

             

            (33)有以下程序

                # include  <stdio.h>

                void  func( int  n )

                {  int  i;

                   for (i=0; i<=n; i++)  printf("*");

                   printf("#");

                 }

                 main( )

                 {   func( 3 );   printf("????");   func(4);   printf("\n");   }

                程序運行后的輸出結果是

                A)****#????***#     B)***#????****#         C)**#????*****#     D)****#????*****#

             

            (34)有以下程序

                # include  <stdio.h>

                void  fun( int  *s )

                {  static  int  j=0;

                   do  {  s[j] = s[j] + s[j+1];  } while( ++j < 2 );

                }

                main( )

                {  int  k,a[10]={1,2,3,4,5};

                   for( k=1; k<3; k++)  fun(a);

                   for( k=0; k<5; k++)  printf("%d", a[ k ] );

                   printf("\n" );

                 }

                程序運行后的輸出結果是

                A)12345             B)23445                 C)34756             D)35745

             

            (35)有以下程序

                # include  <stdio.h>

                # define  S(x)  (x)*x*2

                main( )

                {  int  k=5,  j=2;

                   printf( "%d,", S(k+j));  printf( "%d\n",S((k-j)) );

                }

                程序運行后的輸出結果是

                A)98,18             B)39,11                 C)39,18             D)98,11

             

             

            (36)有以下程序

                # include  <stdio.h>

                void  exch( int  t )

                {  t[0] = t[5];  }

                main( )

                {  int  x[10] = {1,2,3,4,6,7,8,9,10},i=0;

                   while ( i<=4 ) {  exch( &x[i]); i++;  }

                   for (i=0; i<5; i++)  printf("%d ",x[i]);

                   printf( "\n" );

                }

                程序運行后的輸出結果是

                A)2 4 6 8 10        B)1 3 5 7 9             C)1 2 3 4 5         D)6 7 8 9 10

             

            (37)設有以下程序段

                struct  MP3

                {  char  name[20];

                   char  color;

                   float  price;

                } std, *ptr;

                ptr = &std;

                若要引用結構體變量std中的color成員,寫法錯誤的是

                A)std.color         B)ptr->color            C)std->color        D)(*ptr).color

             

            (38)有以下程序

                # include  <stdio.h>

                struct  stu

                {  int  num;  char  name[10]; int age; };

                void  fun(sruct stu  *p )

                {  printf( "%s\n", p->name ); }

                main( )

                {  struct  stu  x[3]={ {01,"Zhang",20},{02,"Wang",19},{03,"Zhao",18} };

                   fun( x+2 );

                 }

                程序運行后的輸出結果是

                A)Zhang             B)Zhao                  C)Wang              D)19

             

            (39)有以下程序

                # include  <stdio.h>

                main( )

                {  int  a=12,c;

                   c = (a<<2)<<1;

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

                }

                程序運行后的輸出結果是

                A)3                 B)50                    C)2                 D)96

             

            (40)以下函數不能用于向文件中寫入數據的是

            A)ftell           B)fwrite              C)fputc              D)fprintf

             

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

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

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

            (2)設循環隊列的存儲空間為Q130),初始狀態為front=rear=30,F經過一系列入隊與退隊運算后,front=16,rear=15,則循環隊列中有     2    個元素。

            (3)數據庫管理系統提供的數據語言中,負責數據的增、刪、改和查詢的是   3。

            (4)在將E-R圖轉換到關系模式時,實體和聯系都可以表示成   4  。

            (5)常見的軟件工程方法有結構化方法和面向對象方法,類、繼承以及多態性等概念屬于   5  。

            (6)變量ab已定義為int類型,若要通過scanf("a=%d,b=%d",&a,&b); 語句分別給ab輸入12,則正確的數據輸入內容是     6    。

             

            (7)以下程序的輸出結果是     7    。

                # include  <stdio.h>

                main( )

                {  int  a=37;

                   a+=a%=9;  printf(%d\n,a);

            }

             

            (8)a、b、c都是整型變量,如果a的值為1,b的值為2,則執行c=a++||b++; 語句后,變量b的值是  8】 。

             

            (9)有以下程序段

                s=1.0;

                for (k=1; k<=n; k++)  s=s+1.0/(k*(k+1));

                printf("%f\n",s);

            請填空,使以下程序段的功能與上面的程序段完全相同。

                s=1.0;  k=1;

                while (     9     )

                {  s=s+1.0/(k*(k+1));  k=k+1;  }

                printf("%f\n", s);

             

            (10)以下程序的輸入結果是    10     。

                # include  <stdio.h>

                main( )

                {  char  a,b;

                   for (a=0; a<20; a+=7) {  b=a%10;  putchar(b+'0');  }

                }

             

            (11)以下程序的輸出結果是    11     。

                # include  <stdio.h>

                main( )

                {  char  *ch[4]={"red","green","blue"};

                   int  i=0;

                   while  ( ch[i] )

                   {  putchar(ch[i][0]); i++;  }

                }

             

            (12)有以下程序

                # include  <stdio.h>

                main( )

                {  int  arr={1,3,5,7,2,4,6,8}, i, start;

                   scanf("%d", &start);

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

                       printf("%d", arr[start+i)%8] );

                }

                若在程序運行時輸入整數10<回車>,則輸出結果為    12     。

             

            (13)以下程序的功能是輸出a數組中所有字符串,請填空。

                # include  <stdio.h>

                main( )

                {  char  *a[ ]={"ABC", "DEFGH", "IJ", "KLMNOP" }

                   int  i=0;

                   for (; i<4; i++)  printf("%s\n",     13      );

                }

             

            (14)以下程序的輸出結果是    14     。

                # include  <stdio.h>

                # include  <stdio.h>

                # include  <string.h>

                main( )

                {  char  *p, *q, *r);

                   p = q = r = (char *) malloc(sizeof(char)*20);

                   strcpy(p,"attaboy,welcome!");

                   printf("%c%c%c\n",p[11],q[3],r[4]);

                   free(p);

            }

             

            (15)設文件 test.txt中原已已寫入字符串Begin,執行以下程序后,文件中的內容為    15     。

                # include  <stdio.h>

                main( )

                {  FILE  *fp;

                   fp = fopen( "test.txt","w+" );

                   fputs("test", ftp );

                   fclose(fp);

                }

             

             

            20123月全國計算機等級考試二級C語言程序設計筆試標準答案(花卷貴州版)

            一、選擇題(1)ADDAD CBCAD (11)ABBCB DADCA (21)CACAD CADCB (31)CADDC DCBDA

            二、填空題(1)n-1 (2)29 (3)數據庫操縱語言 (4)關系 (5)面向對象方法 (6)a=1,b=2 (7)2 (8)2

            (9)k<=n (10)074 (11)rgb (12)572 (13)a[i] (14)cab (15)test

             

             

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