鸭子tv国产极品在线观看_成人69视频在线播放_91精品免费在线观看_亚洲AT永久偷窥无码精品_国产精品自产拍在线观看涩浪潮久

江蘇省高校計(jì)算機(jī)等級(jí)考試命題研究院 江蘇省高校計(jì)算機(jī)等級(jí)考試輔導(dǎo)
2010年上半年全國(guó)C語(yǔ)言考試試題
 

20103月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷

C語(yǔ)言程序設(shè)計(jì)

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

一、選擇題((110)、(2140)每題2分,(1120)每題1分,共70分)

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

 

(1)下列敘述中正確的是
A)
對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n
B)
對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為
(n/2)
C)
對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為
(log2n)
D)
對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(nlog2n)

   

(2)算法的時(shí)間復(fù)雜度是指
A)
算法的執(zhí)行時(shí)間                        B)算法所處理的數(shù)據(jù)量
C)
算法程序中的語(yǔ)司或指令條數(shù)            D)算法在執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)

   

(3)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是
A)
編輯軟件          B)操作系統(tǒng)          C)教務(wù)管理系統(tǒng)      D)瀏覽器

   

(4)軟件(程序)調(diào)試的任務(wù)是
A)
診斷和改正程序中的錯(cuò)誤                B)盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤
C)
發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤            D)確定程序中錯(cuò)誤的性質(zhì)

   

(5)數(shù)據(jù)流程圖(DFD圖)是
A)
軟件概要設(shè)計(jì)的工具                    B)軟件詳細(xì)設(shè)計(jì)的工具
C)
結(jié)構(gòu)化方法的需求分析工具              D)面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ?SPAN lang=EN-US>

   

(6)軟件生命周期可分為定義階段,開發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于
A)
定義階段                              B)開發(fā)階段

C)維護(hù)階段                              D)上述三個(gè)階段

   

(7)數(shù)據(jù)庫(kù)管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語(yǔ)言是
A)
數(shù)據(jù)定義語(yǔ)言                          B)數(shù)據(jù)管理語(yǔ)言

C)數(shù)據(jù)操縱語(yǔ)言                          D)數(shù)據(jù)控制語(yǔ)言

 

(8)在學(xué)生管理的關(guān)系數(shù)據(jù)庫(kù)中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是
A)
文件              B)數(shù)據(jù)庫(kù)            C)字段              D)記錄

   

(9)數(shù)據(jù)庫(kù)設(shè)計(jì)中,用E-R圖來(lái)描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它屬于數(shù)據(jù)庫(kù)設(shè)計(jì)的
A)
需求分析階段                          B)邏輯設(shè)計(jì)階段

C)概念設(shè)計(jì)階段                         D)物理設(shè)計(jì)階段

   

(10)有兩個(gè)關(guān)系RT如下:

 

R

 

 

 

T

 

A

B

C

 

A

B

C

a

1

2

 

c

3

2

b

2

2

 

d

3

2

c

3

2

 

 

 

 

d

3

2

 

 

 

 

    則由關(guān)系R得到關(guān)系T的操作是
A)
選擇              B)投影              C)                D)

   

(11)以下敘述正確的是
A)C語(yǔ)言
程序是由過(guò)程和函數(shù)組成的
B)C
語(yǔ)言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))
C)C
語(yǔ)言函數(shù)不可以單獨(dú)編譯

D)C
語(yǔ)言中除了main函數(shù),其他函數(shù)不可作為單獨(dú)文件形式存在

   

(12)以下關(guān)于C語(yǔ)言的敘述中正確的是
A)C
語(yǔ)言中的注釋不可以?shī)A在變量名或關(guān)鍵字的中間
B)C
語(yǔ)言中的變量可以在使用之前的任何位置進(jìn)行定義
C)
C語(yǔ)言算術(shù)表達(dá)式的書寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致
D)C
語(yǔ)言的數(shù)值常量中夾帶空格不影響常量值的正確表示

   

(13)以下C語(yǔ)言用戶標(biāo)識(shí)符中,不合法的是
A)_1                B)AaBc              C)a_b               D)a-b

   

(14)若有定義:double a=22;int i=0,k=18;,則不符合C語(yǔ)言規(guī)定的賦值語(yǔ)句是
A)a=a++,i++;       B)i=(a+k)<=(i+k);  C)i=a%11;           D)i=!a;

   

(15)有以下程序
    #include  <stdio.h>
    main()
    { char a,b,c,d;
      scanf("%c%c",&a,&b);
      c=getchar();    d=getchar();
      printf("%c%c%c%c\n",a,b,c,d);
    }
當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第1列開始,<CR>代表回車,注意:回車也是一個(gè)字符)
   12<CR>
   34<CR>
則輸出結(jié)果是
A)1234              B)12                C)12                D)12
                      3                   34

   

(16)以下關(guān)于C語(yǔ)言數(shù)據(jù)類型使用的敘述中錯(cuò)誤的是
A)
若要準(zhǔn)確無(wú)誤差的表示自然數(shù),應(yīng)使用整數(shù)類型
B)
若要保存帶有多位小數(shù)的數(shù)據(jù),應(yīng)使用雙精度類型
C)
若要處理如人員信息等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型
D)
若只處理兩種邏輯值,應(yīng)使用邏輯類型

   

(17)a是數(shù)值類型,則邏輯表達(dá)式(a==1)||(a!=1)的值是
A)1                B)0                  C)2                D)不知道a的值,不能確定

   

(18)以下選項(xiàng)中與if(a==1)a=b; else a++;語(yǔ)句功能不同的switch語(yǔ)句是
A)switch(a)                             B)switch(a==1)

{ case 1:a=b;break;                     { case 0:a=b;break;
    default : a++;                          case 1:a++;
  }                                        }
C)switch(a)                             D)switch(a==1)
  { default:a++;break;                    { case 1:a=b;break;
    case 1:a=b;                             case 0:a++;
  }                                        }

 

(19)有如下嵌套的if語(yǔ)句
    if(a<b)
      if(a<c) k=a;
      else  k=c;
    else
      if(b<c) k=b;
      else  k=c;
   
以下選項(xiàng)中與上述if語(yǔ)句等價(jià)的語(yǔ)句是
A)k=(a<b)?a:b;k=(b<c)?b:c;              B)k=(a<b)?((b<c)? a:b):((b>c)?b:c);
C)k=(a<b)?((a<c)? a:c):((b<c)?b:c);     D)k=(a<b)?a:b;k=(a<c)? a:c;

   

(20)有以下程序
    #include  <stdio.h>
    main()
    {  int i,j,m=1;
       for(i=1;i<3;i++)
       {  for(j=3;j>0;j--)
          {  if(i*j>3) break;
              m*=i*j;
           }
        }
        printf("m=%d\n",m);
     }
 
程序運(yùn)行后的輸出結(jié)果是
A)m=6               B)m=2               C)m=4               D)m=5

   

(21)有以下程序
    #include  <stdio.h>
    main()
    {  int a=1, b=2;
    for( ;a<8;a++) {b+=a; a+=2;}
    printf("%d,%d\n",a,b);
    }
   
程序運(yùn)行后的輸出結(jié)果是
A)9,18              B)8,11              C)7,11          D)10,14

   

(22)有以下程序,其中k的初值為八進(jìn)制數(shù)
    #include  <stdio.h>
    main()
    {  int k=011;
       printf("%d\n",k++);
    }
   
程序運(yùn)行后的輸出結(jié)果是
A)12                B)11                C)10                D)9

   

(23)下列語(yǔ)句組中,正確的是
A)char *s;s="Olympic";                  B)char s[7];s="Olympic";
C)char *s;s={"Olympic"};                D)char s[7];s={"Olympic"};

   

(24)以下關(guān)于return語(yǔ)句的敘述中正確的是
A)
一個(gè)自定義函數(shù)中必須有一條return語(yǔ)句
B)
一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語(yǔ)句
C)
定義成void類型的函數(shù)中可以有帶返回值的return語(yǔ)句
D)
沒(méi)有return語(yǔ)句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處

   

(25)下列選項(xiàng)中,能正確定義數(shù)組的語(yǔ)句是
A)int num[0..2008];                     B)int num[];
C)int N=2008;                           D)#define N 2008
  int num[N];                             int num[N];

   

(26)有以下程序
   #include  <stdio.h>
   void fun(char *c,int d)
   {  *c=*c+1;d=d+1;
      printf("%c,%c,",*c,d);

   }
   main()
   {  char b='a',a='A';
      fun(&b,a);  printf("%c,%c\n",b,a);
   }
  
程序運(yùn)行后的輸出結(jié)果是
A)b,B,b,A           B)b,B,B,A           C)a,B,B,a          D)a,B,a,B

   

(27)若有定義int  (*pt)[3];,則下列說(shuō)法正確的是
A)
定義了基類型為int的三個(gè)指針變量
B)
定義了基類型為int的具有三個(gè)元素的指針數(shù)組pt
C)
定義了一個(gè)名為*pt、具有三個(gè)元素的整型數(shù)組

D)
定義了一個(gè)名為pt的指針變量,它可以指向每行有三個(gè)整數(shù)元素的二維數(shù)組

   

(28)設(shè)有定義double a[10],*s=a;,以下能夠代表數(shù)組元素a[3]的是
A)(*s)[3]           B)*(s+3)            C)*s[3]             D)*s+3

   

(29)有以下程序
    #include  <stdio.h>
    main()
    {  int a[5]={1,2,3,4,5}, b[5]={0,2,1,3,0},i,s=0;
       for(i=0;i<5;i++) s=s+a[b[i]];
       printf("%d\n",s);
    }
   
程序運(yùn)行后的輸出結(jié)果是
A)6                 B)10                C)11                D)15

   

(30)有以下程序
    #include  <stdio.h>
    main()
    {  int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
       for(i=0;i<3;i++)
         for(j=i;j<=i;j++) t+=b[i][b[j][i]];
       printf("%d\n",t);
    }
   
程序運(yùn)行后的輸出結(jié)果是
A)1                 B)3                 C)4                 D)9

   

(31)若有以下定義和語(yǔ)句
    char  s1[10]="abcd!",  *s2="\n123\\";
    printf("%d  %d\n", strlen(s1),strlen(s2));
   
則輸出結(jié)果是
A)5  5              B)10  5             C)10  7             D)5  8

   

 

(32)有以下程序
    #include  <stdio.h>
    #define N 8
    void fun(int *x, int i)
    { *x=*(x+i); }
    main()
    {  int a[N]={1,2,3,4,5,6,7,8},i;
       fun(a,2);
       for(i=0; i<N/2; i++)
       {  printf("%d",a[i]);}
       printf("\n");
    }
   
程序運(yùn)行后的輸出結(jié)果是
A)1313              B)2234              C)3234              D)1234

   

(33)有以下程序
    #include  <stdio.h>
    int f(int t[], int n);
    main()
    {  int a[4]={1,2,3,4},s;
       s=f(a,4);  printf("%d\n",s);
    }
    int  f(int t[],int n)
    {  if(n>0) return  t[n-1]+f(t,n-1);
       else  return  0;
    }
   
程序運(yùn)行后的輸出結(jié)果是
A)4                 B)1O                C)14                D)6

   

(34)有以下程序
    #include  <stdio.h>
    int fun()
    {  static int x=1;
       x*=2;  return  x;
    }
    main()
    {  int i,s=1;
       for(i=1;i<=2;i++) s=fun();
       printf("%d\n",s);
    }
   
程序運(yùn)行后的輸出結(jié)果是
A)O                 B)1                 C)4                 D)8

   

(35)有以下程序
    #include  <stdio.h>
    #define SUB(a) (a)-(a)
    main()
    {  int a=2,b=3,c=5,d;
       d=SUB(a+b)*c;
       printf("%d\n",d);
    }
   
程序運(yùn)行后的輸出結(jié)果是
A)0                 B)-12               C)-20               D)10

   

(36)設(shè)有定義:
    struct complex
    {  int real,unreal; } data1={1,8},data2;
   
則以下賦值語(yǔ)句中錯(cuò)誤的是

A)data2=data1;                          B)data2=(2,6);
C)data2.real=data1.real;                D)data2.real=data1.unreal;

   

(37)有以下程序
    #include  <stdio.h>
    #include  <string.h>
    struct  A
    {  int a; char b[10]; double c; };
    void f(struct A t);
    main()
    {  struct A a={1001,"ZhangDa",1098.0};
       f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
    }
    void f(struct A t)
    { t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;}
   
程序運(yùn)行后的輸出結(jié)果是
A)1001,ZhangDa,1098.0                   B)1002,ChangRong,1202.0
C)1001,ChangRong,1098.O                 D)1002,ZhangDa,1202.0

    

(38)有以下定義和語(yǔ)句
    struct workers
    {  int num;char name[20];char c;
       struct
       { int day; int month; int year; } s;
    };
    struct workers w,*pw;
    pw=&w;
   
能給wyear成員賦1980的語(yǔ)句是
A)*pw.year=198O;    B)w.year=1980;      C)pw->year=1980;    D)w.s.year=1980;

   

(39)有以下程序
    #include  <stdio.h>
    main()
    {  int a=2,b=2,c=2;
       printf("%d\n",a/b&c);
    }
   
程序運(yùn)行后的輸出結(jié)果是
A)O                 B)1                 C)2                 D)3

   

(40)有以下程序
    #include  <stdio.h>
    main()
    {  FILE *fp;char str[10];
       fp=fopen("myfile.dat","w");
       fputs("abc",fp);fclose(fp);
       fp=fopen("myfile.data","a++");
       fprintf(fp,"%d",28);
       rewind(fp);
       fscanf(fp,"%s",str); puts(str);
       fclose(fp);
    }
   
程序運(yùn)行后的輸出結(jié)果是
A)abc              B) 28c              C) abc28            D)
因類型不一致而出錯(cuò)

 

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

 請(qǐng)將每空的正確答案寫在答題卡1】至【15】序號(hào)的橫線上,答在試卷上不得分。

 

(1)一個(gè)隊(duì)列的初始狀態(tài)為空。現(xiàn)將元素A,B,C,D,E,F,5,4,3,2,1依次入隊(duì),然后再依次退隊(duì),則元素退隊(duì)的順序?yàn)?U>   1  

   

(2)設(shè)某循環(huán)隊(duì)列的容量為50,如果頭指針front=45(指向隊(duì)頭元素的前一位置),尾指針rear=10(指向隊(duì)尾元素),則該循環(huán)隊(duì)列中共有   2   個(gè)元素。

   

A

B

C

D

E

F

G

H

(3)設(shè)二叉樹如下:

 

 

 

 

 

 

 

 

    對(duì)該二叉樹進(jìn)行后序遍歷的結(jié)果為   3   。

   

(4)軟件是   4  、數(shù)據(jù)和文檔的集合。

    

(5)有一個(gè)學(xué)生選課的關(guān)系,其中學(xué)生的關(guān)系模式為:學(xué)生(學(xué)號(hào),姓名,班級(jí),年齡),課程的關(guān)系模式為:課程(課號(hào),課程名,學(xué)時(shí)),其中兩個(gè)關(guān)系模式的鍵分別是學(xué)號(hào)和課號(hào),則關(guān)系模式選課可定義為:選課(學(xué)號(hào),   5   ,成績(jī))。

   

(6)設(shè)xint型變量,請(qǐng)寫出一個(gè)關(guān)系表達(dá)式   6   ,用以判斷x同時(shí)為37的倍數(shù)時(shí),關(guān)系表達(dá)式的值為真。

   

(7)有以下程序
    #include  <stdio.h>
    main()
    {  int a=1,b=2,c=3,d=0;
       if (a==1)
          if (b!=2)
             if (c==3)     d=1;
             else          d=2;
          else if(c!=3)    d=3;
               else        d=4;
       else                d=5;
       printf("%d\n",d);
    }
   
程序運(yùn)行后的輸出結(jié)果是   7  

   

(8)有以下程序
    #include  <stdio.h>
    main()
    {  int m,n;
       scanf("%d%d",&m,&n);
       while(m!=n)
       {  while(m>n) m=m-n;
          while(m<n) n=n-m;
       }
       printf("%d\n",m);
    }
   
程序運(yùn)行后,當(dāng)輸入14  63 <回車> 時(shí),輸出結(jié)果是   8   。

   

(9)有以下程序
    #include  <stdio.h>
    main()
    {  int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
       for(i=0;i<3;i++)
          for(j=i;j<3;j++) printf("%d",a[i][j]);
       printf("\n");
    }
   
程序運(yùn)行后的輸出結(jié)果是   9   。

   

(10)有以下程序
    #include  <stdio.h>
    main()
    {  int a[]={1,2,3,4,5,6},*k[3],i=0;
       while(i<3)
       {  k[i]=&a[2*i];
          printf("%d",*k[i]);
          i++;  }
    }
   
程序運(yùn)行后的輸出結(jié)果是   10   。

   

(11)有以下程序
    #include  <stdio.h>
    main()
    {  int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
       int b[3]={0},i;
       for(i=0;i<3;i++) b[i]=a[i][2]+a[2][i];
       for(i=0;i<3;i++) printf("%d",b[i]);
       printf("\n");
    }
   
程序運(yùn)行后的輸出結(jié)果是   11   。

   

(12)有以下程序
    #include  <stdio.h>
    #include  <string.h>
    void fun(char *str)
    {  char temp;int n,i;
       n=strlen(str);
       temp=str[n-1];
       for(i=n-1;i>0;i--) str[i]=str[i-1];
       str[0]=temp;
    }
    main()
    {  char s[50];
       scanf("%s",s);  fun(s);  printf("%s\n",s); }
   
程序運(yùn)行后輸入:abcdef<回車>,則輸出結(jié)果是   12  

   

(13)以下程序的功能是:將值為三位正整數(shù)的變量x中的數(shù)值按照個(gè)位、十位、百位的順序拆分并輸出。請(qǐng)?zhí)羁铡?SPAN lang=EN-US>
    #include  <stdio.h>
    main()
    {  int x=256;
       printf("%d-%d-%d\n",  
13  ,x/10%10,x/100);

    }

   

(14)以下程序用以刪除字符串所有的空格,請(qǐng)?zhí)羁铡?SPAN lang=EN-US>
    #include  <stdio.h>
    main()
    {  char s[100]={"Our teacher teach C language!"}; int i,j;
       for(i=j=0;s[i]!=
'\0';i++)
       if(s[i]!=' ') {s[j]=s[i];j++;}
       s[j]=  
14;
       printf("%s\n",s);

    }

   

(15)以下程序的功能是:借助指針變量找出數(shù)組元素中的最大值及其元素的下標(biāo)值。請(qǐng)?zhí)羁铡?SPAN lang=EN-US>
    #include  <stdio.h>
    main()
    {  int a[10], *p, *s;
       for(p=a;p-a<10;p++) scanf("%d",p);
       for(p=a,s=a;p-a<10;p++) if(*p>*s)  s=  
15   ;
       printf("index=%d\n",s-a);

    }


20103全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言程序設(shè)計(jì)筆試標(biāo)準(zhǔn)答案

一、選擇題

   1.ADBAC   6.BADCA  11.BADCC  16.DABCA  21.DDABD  26.ADBCC  31.ACBCC  36.BADAC

 

二、填空

1.ABCDEF4321        2.15                3.EDBGHFCA          4.程序              5.課號(hào)

6.x%3==0 && x%7==0  7.4                 8.7                 9.123569            10.135

11.101418           12.fabcde           13.x%10             14.'\0'             15.p