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

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

20119月全國計(jì)算機(jī)等級考試二級筆試試卷

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

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

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

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

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

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

(3)下列關(guān)于二叉樹的敘述中,正確的是
A)
葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)少一個(gè)          B)葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)
C)
葉子結(jié)點(diǎn)數(shù)是度為的結(jié)點(diǎn)數(shù)的兩倍            D)度為2的結(jié)點(diǎn)數(shù)是度為1的結(jié)點(diǎn)數(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è)計(jì)測試用例      B)驗(yàn)證程序的正確性      C)發(fā)現(xiàn)程序中的錯(cuò)誤  D)診斷和改正程序中的錯(cuò)誤

(7)下列關(guān)于數(shù)據(jù)庫設(shè)計(jì)的敘述中,正確是的
A)
在需求分析階段建立數(shù)據(jù)字典                B)在概念設(shè)計(jì)階段建立數(shù)據(jù)字典
C)
在邏輯設(shè)計(jì)階段建立數(shù)據(jù)字典                D)在物理設(shè)計(jì)階段建立數(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)有三個(gè)關(guān)系R、ST如下:

 




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

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

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

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

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

(14)若有定義語句: int  a=10;  double  b=3.14; ,則表達(dá)式'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í)行表達(dá)式(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);
}
程序運(yùn)行后的輸出結(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);
}
程序運(yùn)行后的輸出結(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);
}
程序運(yùn)行后的輸入結(jié)果是
A)abc               B)789                   C)7890              D)979899

(23)若有定義語句: double  a,*p=&a; 以下敘述中錯(cuò)誤的是
A)
定義語句中的 * 號是一個(gè)間址運(yùn)算符
B)
定義語句中的 * 號只是一個(gè)說明符
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;  }
程序運(yùn)行后的輸出結(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ù)組的語句中錯(cuò)誤的是
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]);
}
程序運(yùn)行后的輸出結(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");
}
程序運(yù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)計(jì)xy所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)
C)
y所指字符串賦給x所指存儲(chǔ)空間
D)
統(tǒng)計(jì)xy所指字符串中相同的字符個(gè)數(shù)

(30)若有定義語句: char  *s1="OK", *s2="ok";,以下選項(xiàng)中,能夠輸出"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)

}
則以下選項(xiàng)中錯(cuò)誤的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]);
}
程序運(yùn)行后的輸出結(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++));
}
程序運(yù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] );
}
程序運(yùn)行后的輸出結(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);
}
程序運(yùn)行后的輸出結(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]);
}
程序運(yùn)行后的輸出結(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 );
}

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

(39)以下選項(xiàng)中敘述錯(cuò)誤的是
A)C
程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù),賦一次初值
B)
C程序的同一函數(shù)中,各復(fù)合語句內(nèi)可以定義變量,其作用域僅限于本復(fù)合語句內(nèi)
C)C
程序函數(shù)中定義的自動(dòng)變量,系統(tǒng)不自動(dò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);
}
程序運(yù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的順序存儲(chǔ)的線性表中插入一個(gè)元素,最壞情況下需要移動(dòng)表中  2  個(gè)元素。

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

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

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

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

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

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

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

(11)以下程序運(yùn)行后的輸出結(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");
}
若運(yùn)行程序時(shí)從鍵盤輸入ABCACC<回車>,則輸出結(jié)果為    12  。

(13)以下程序運(yùn)行后的輸出結(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ù)的個(gè)數(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月全國計(jì)算機(jī)等級考試二級C語言程序設(shè)計(jì)筆試標(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