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

江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導(dǎo)
2011年9月全國計算機二級C語言考試真題

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

 C語言程序設(shè)計

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

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

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

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

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

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

XY系統(tǒng)

功能1

功能2

 

功能3

 

功能2.1

。1

功能2.2

 

功能2.3

.

(4)軟件按功能分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下現(xiàn)屬于應(yīng)用軟件的是
A)
學(xué)生成績管理系統(tǒng)  B)C語言編譯程序         C)UNIX操作系統(tǒng)      D)數(shù)據(jù)庫管理系統(tǒng)

(5)某系統(tǒng)總結(jié)構(gòu)圖如下圖所示:

 

 

該系統(tǒng)總體結(jié)構(gòu)圖的深度是
A)7                 B)6                     C)3                 D)2

(6)程序調(diào)試的任務(wù)是
A)
設(shè)計測試用例      B)驗證程序的正確性      C)發(fā)現(xiàn)程序中的錯誤  D)診斷和改正程序中的錯誤

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

(8)數(shù)據(jù)庫系統(tǒng)的三級模式不包括
A)
概念模式          B)內(nèi)模式                C)外模式            D)數(shù)據(jù)模式

 

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)有三個關(guān)系RST如下:

 




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

(10)下列選項中屬于面向?qū)ο笤O(shè)計方法主要特征的是
A)
繼承              B)自頂向下              C)模塊化            D)逐步求精

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

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

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

(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; ,在其后執(zhí)行語句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);,能把整數(shù)3賦給變量a, 5賦給變量b的輸入數(shù)據(jù)是
A)3  5              B)3,5                   C)3;5               D)35

(17)若有定義語句: int  k1=10, k2=20;,執(zhí)行表達式(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);
}
程序運行后的輸出結(jié)果是
A)0                 B)1                     C)2                 D)3

(19)下列條件語句中,輸出結(jié)果與其他語句不同的是
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);
}
程序運行后的輸出結(jié)果是
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);
}
程序運行后的輸入結(jié)果是
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;  }
程序運行后的輸出結(jié)果是
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)以下定義數(shù)組的語句中錯誤的是
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]);
}
程序運行后的輸出結(jié)果是
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");
}
程序運行后的輸出結(jié)果是
A)-12,-3,0,0,       B)-3,-1,1,3,            C)0,1,2,3,          D)-3,-3,-3,-3,

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

(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)以下程序的主函數(shù)中調(diào)用了在其前面定義的fun函數(shù)
#include  <stdio.h>

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

}
則以下選項中錯誤的fun函數(shù)首部是
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]);
}
程序運行后的輸出結(jié)果是
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++));
}
程序運行后的輸出結(jié)果是
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] );
}
程序運行后的輸出結(jié)果是

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);
}
程序運行后的輸出結(jié)果是
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]);
}
程序運行后的輸出結(jié)果是
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 );
}

程序運行后的輸出結(jié)果是
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);
}
程序運行后的輸出結(jié)果是
A)2                 B)4                     C)6                 D)8

(39)以下選項中敘述錯誤的是
A)C
程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù),賦一次初值
B)
C程序的同一函數(shù)中,各復(fù)合語句內(nèi)可以定義變量,其作用域僅限于本復(fù)合語句內(nèi)
C)C
程序函數(shù)中定義的自動變量,系統(tǒng)不自動賦確定的初值
D)C
程序函數(shù)的形參不可以說明為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);
}
程序運行后的輸出結(jié)果是
A)1,2               B)3,4                   C)5,6               D)123,456

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

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

(1)數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的棧屬于  1  。

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

(3)常見的軟件開發(fā)方法有結(jié)構(gòu)化方法和面向?qū)ο蠓椒āδ硲?yīng)用系統(tǒng)通過需求分析建立數(shù)據(jù)流圖(DFD),則應(yīng)采用  3  方法。

(4)數(shù)據(jù)庫系統(tǒng)的核心是  4 

(5)在進行關(guān)系數(shù)據(jù)庫的邏輯設(shè)計時,E-R圖中的屬性常轉(zhuǎn)換為關(guān)系中的屬性,聯(lián)系通常轉(zhuǎn)換為  5  。

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

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

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

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

(11)以下程序運行后的輸出結(jié)果是    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<回車>,則輸出結(jié)果為    12  。

(13)以下程序運行后的輸出結(jié)果是    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)以下程序調(diào)用fun函數(shù)把x中的值插入到a數(shù)組下標(biāo)為k的數(shù)組元素中。主函數(shù)中,n存放a數(shù)組中數(shù)據(jù)的個數(shù),請?zhí)羁铡?/SPAN>
#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語言程序設(shè)計筆試標(biāo)準(zhǔn)答案

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

二、填空題1.線性結(jié)構(gòu)    2.n     3.結(jié)構(gòu)化    4.DBMS 或 數(shù)據(jù)庫管理系統(tǒng)    5.關(guān)系  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