欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

等級(jí)考試

全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言試題二

時(shí)間:2025-06-05 15:54:56 等級(jí)考試 我要投稿

全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言試題二

考試頻道小編綜合整理了全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言試題。
  一、選擇題

全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言試題二

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

  (1)軟件是指 A)程序 B)程序和文檔 C)算法加數(shù)據(jù)結(jié)構(gòu) D)程序、數(shù)據(jù)與相關(guān)文檔的完整集合

  (2)檢查軟件產(chǎn)品是否符合需求定義的過(guò)程稱(chēng)為

  A)確認(rèn)測(cè)試 B)集成測(cè)試 C)驗(yàn)證測(cè)試 D)驗(yàn)收測(cè)試

  (3)以下不屬于對(duì)象的基本特點(diǎn)的是

  A)分類(lèi)性 B)多態(tài)性 C)繼承性 D)封裝性

  (4)在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是

  A)不限制goto語(yǔ)句的使用 B)減少或取消注解行 C)程序越短越好 D)程序結(jié)構(gòu)應(yīng)有助于讀者理解

  (5)下列敘述中正確的是

  A)程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān) B)程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)

  C)程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量 D)以上三種說(shuō)法都不對(duì) (6)數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無(wú)關(guān)的是數(shù)據(jù)的

  A)存儲(chǔ)結(jié)構(gòu) B)物理結(jié)構(gòu) C)邏輯結(jié)構(gòu) D)物理和存儲(chǔ)結(jié)構(gòu)

  (7)線(xiàn)性表的順序存儲(chǔ)結(jié)構(gòu)和線(xiàn)性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是

  A)順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu) B)隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)

  C)隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu) D)任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu)

  (8)樹(shù)是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是

  A)有且只有1 B)1或多于1 C)0或1 D)至少2

  (9)下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是

  A)數(shù)據(jù)庫(kù)是一個(gè)DBF文件 B)數(shù)據(jù)庫(kù)是一個(gè)關(guān)系 C)數(shù)據(jù)庫(kù)是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合 D)數(shù)據(jù)庫(kù)是一組文件

  (10)數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)之間的關(guān)系是

  A)數(shù)據(jù)庫(kù)包括數(shù)據(jù)庫(kù)系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng) B)數(shù)據(jù)庫(kù)系統(tǒng)包括數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)管理系統(tǒng) C)數(shù)據(jù)庫(kù)管理系統(tǒng)包括數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)系統(tǒng) D)三者沒(méi)有明顯的包含關(guān)系

  (11)以下4個(gè)選項(xiàng)中,不能看作一條語(yǔ)句的是

  A); B)a=5,b=2.5,c=3.6; C)if(a<5); D)if(b!=5)x=2;y=6;

  (12)下面四個(gè)選項(xiàng)中,均是不合法的用戶(hù)標(biāo)識(shí)符的選項(xiàng)是

  A)A P_0 do B)float la0_A C)b-a goto int D)_123 temp int

  (13)以下選項(xiàng)中不屬于字符常量的是

  A)′C′ B)′′C′′ C)′\xCC′ D) ′\072′

  (14)設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是

  A)x=y*5=x+z B)int(15.8%5) C)x=y+z+5,++y D)x=25%5.0

  (15)若變量已正確定義并賦值,以下符合C語(yǔ)言語(yǔ)法的表達(dá)式是

  A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b

  (16)以下程序的運(yùn)行結(jié)果是

  int k=0;

  void fun(int m)

  {m+=k;k+=m;printf("m=%d k=%d ",m,k++);}

  main()

  {int i=4;

  fun(i++); printf("i=%d k=%d\n",i,k);

  }

  A)m=4 k=5 i=5 k=5 B)m=4 k=4 i=5 k=5 C)m=4 k=4 i=4 k=5 D)m=4 k=5 i=4 k=5

  (17)已有定義:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫(xiě)字母的表達(dá)式是

  A)isupper(c) B)′A′<=c<=′Z′ C)′A′<=c&&c<=′Z′ D)c<=(′z′-32)&&(′a′-32)<=c

  (18)設(shè)有:

  int a=1,b=2,c=3,d=4,m=2,n=2;

  執(zhí)行 (m=a>b)&&(n=c>d)后,n的值是

  A)1 B)2 C)3 D)4

  (19)若變量已正確定義,有以下程序段

  int a=3,b=5,c=7;

  if(a>b) a=b; c=a;

  if(c!=a) c=b;

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

  其輸出結(jié)果是

  A)程序段有語(yǔ)法錯(cuò) B)3,5,3 C)3,5,5 D)3,5,7

  (20)若有定義:float x=1.5;int a=1,b=3,c=2;,則正確的switch語(yǔ)句是

  A)switch(x)

  {case 1.0:printf("*\n");

  case 2.0:printf("**\n");}

  B)switch((int)x);

  {case 1:printf("*\n");

  case 2:printf("**\n");}

  C)switch(a+b)

  {case 1:printf("*\n");

  case 2+1:printf("**\n");}

  D)switch(a+b)

  {case1:printf(**\n);}

  casec:printf(**\n);}

  (21)有以下程序

  #include

  main0

  { int y=9;

  for( ; y>0;y--)

  if(y%3==0) printf("%d",--y);

  }

  程序的運(yùn)行結(jié)果是

  A)741 B)963 C)852 D)875421

  (22)以下描述中正確的是

  A)由于do-while循環(huán)中循環(huán)體語(yǔ)句只能是一條可執(zhí)行語(yǔ)句,所以循環(huán)體內(nèi)不能使用復(fù)合語(yǔ)句

  B)do-while循環(huán)由do開(kāi)始,用while結(jié)束,在while(表達(dá)式)后面不能寫(xiě)分號(hào)

  C)在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進(jìn)行判斷 D)do-while循環(huán)中,根據(jù)情況可以省略while

  (23)有以下程序

  #include

  main()

  { int a[ ]={1,2,3,4},y,?*p=&a[3];

  --p; y=?*p;printf("y=%d\n",y);

  }

  程序的運(yùn)行結(jié)果是

  A)y=0 B)y=1 C)y=2 D)y=3

  (24)以下數(shù)組定義中錯(cuò)誤的是

  A)int x[][3]={0}; B)int x[2][3]={{l,2},{3,4},{5,6}}; C)int x[][3]={{l,2,3},{4,5,6}}; D)int x[2][3]={l,2,3,4,5,6};

  (25)下面說(shuō)明不正確的是

  A)char a[10]="china"; B)char a[10],*p=a;p="china" C)char *a;a="china" D)char a[10],*p;p=a="china"

  (26)若有定義:int a[2][3];,以下選項(xiàng)中對(duì)a數(shù)組元素正確引用的是

  A)a[2][!1] B)a[2][3] C)a[0][3] D)a[1>2][!1]

  (27)若要求從鍵盤(pán)讀入含有空格字符的字符串,應(yīng)使用函數(shù)

  A)getc() B)gets() C)getchar() D)scanf()

  (28)閱讀下列程序段,則程序的輸出結(jié)果為

  #include "stdio.h"

  #define M(X,Y)(X)*(Y)

  #define N(X,Y)(X)/(Y)

  main()

  { int a=5,b=6,c=8,k;

  k=N(M(a,b),c);

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

  A)3 B)5 C)6 D)8

  (29)在16位IBM-PC機(jī)上使用C語(yǔ)言,若有如下定義

  struct data

  { int i;

  char ch;

  double f;

  } b;

  則結(jié)構(gòu)變量b占用內(nèi)存的字節(jié)數(shù)是

  A)1 B)2 C)7 D)11

  (30)有以下程序 #include

  main()

  {FILE *fp; int i,a[6]={l,2,3,4,5,6};

  fp=fopen("d3.dat","w+b");

  fwrite(a,sizeof(int),6,fp);

  fseek(fp,sizeof(int)*3,SEEK_SET);/*該語(yǔ)句使讀文件的位置指針從文件頭向后移動(dòng)3個(gè)int型數(shù)據(jù)*/

  fread(a,sizeof(int),3,fp); fclose(fp);

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

  }

  程序運(yùn)行后的輸出結(jié)果是

  A)4,5,6,4,5,6, B)1,2,3,4,5,6, C)4,5,6,1,2,3, D)6,5,4,3,2,1,

  (31)有以下程序

  #include

  main()

  { int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;

  for(i=0;i<12;i++) c[s[i]]++;

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

  printf("\n");

  }

  程序的運(yùn)行結(jié)果是

  A)1 2 3 4 B)2 3 4 4 C)4 3 3 2 D)1 1 2 3

  (32)有以下程序

  #include

  void fun(int *a,int n)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/

  { int t,i,j;

  for(i=0;i

  for(j=i+1;j

  if(a[i]

  }

  main()

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

  fun(c+4,6);

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

  printf("\n");

  }

  程序的運(yùn)行結(jié)果是

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

  (33)下面程序的輸出結(jié)果是

  #include

  #include

  main()

  { char *p1="abc",*p2="ABC",str[50]= "xyz";

  strcpy(str+2,strcat(p1,p2));

  printf("%s\n",str);}

  A)xyzabcABC B)zabcABC C)xyabcABC D)yzabcABC

  (34)以下函數(shù)返回a所指數(shù)組中最小的值所在的下標(biāo)值

  fun(int *a, int n)

  { int i,j=0,p;

  p=j;

  for(i=j;i

  if(a[i]

  return(p);}

  在橫線(xiàn)處應(yīng)填入的是

  A)i=p B)a[p]=a[i] C)p=j D)p=i

  (35)下列程序的運(yùn)行結(jié)果為

  #include

  void abc(char*str)

  { int a,b;

  for(a=b=0;str[a]!='\0';a++)

  if(str[a]!='c')

  str[b++]=str[a];

  str[b]='\0';}

  void main()

  { char str[]="abcdef";

  abc(str);

  printf("str[]=%s",str); }

  A)str[]=abdef B)str[]=abcdef C)str[]=a D)str[]=ab

  (36)有以下程序

  #include

  #include

  typedef struct{ char name[9]; char sex; float score[2]; }STU;

  void f(STU a)

  { STU b={"Zhao",′m′,85?0,90?0}; int i;

  strcpy(a.name,b.name);

  a.sex=b.sex;

  for(i=0;i<2;i++) a.score[i]=b.score[i];

  }

  main()

  { STU c={"Qian",′f′,95.0,92.0};

  f(c);

  printf("%s,%c,%2.0f,%2.0f\n",c.name,c.sex,c.score[0],c.score[1]);

  }

  程序的運(yùn)行結(jié)果是

  A)Qian,f,95,92 B)Qian,m,85,90 C)Zhao,f,95,92 D)Zhao,m,85,90

  (37)有以下程序

  #include

  main()

  { FILE ?*fp; int a[10]={1,2,3},i,n;

  fp=fopen("d1.dat","w");

  for(i=0;i<3;i++) fprintf(fp,"%d",a[i]);

  fprintf(fp,"\n");

  fclose(fp);

  fp=fopen("d1.dat","r");

  fscanf(fp,"%d",&n);

  fclose(fp);

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

  }

  程序的運(yùn)行結(jié)果是

  A)12300 B)123 C)1 D)321

  (38)已知 int a=1,b=3則a^b的值為

  A)3 B)1 C)2 D)4

  (39)閱讀下列程序,則運(yùn)行結(jié)果為
 

考試頻道小編綜合整理了全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言試題

 

  #include "stdio.h"

  fun()

  { static int x=5;

  x++;

  return x;}

  main()

  { int i,x;

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

  x=fun();

  printf("%d\n",x);}

  A)5 B)6 C)7 D)8

  (40)有以下程序

  #include

  void fun(char *t,char *s)

  { while(*t!=0) t++;

  while((*t++=*s++)!=0);

  }

  main()

  { char ss[10]="acc",aa[10]="bbxxyy";

  fun(ss,aa); printf("%s,%s\n",ss,aa);

  }

  程序的運(yùn)行結(jié)果是

  A)accxyy,bbxxyy B)acc,bbxxyy C)accxxyy,bbxxyy D)accbbxxyy,bbxxyy

  二、填空題

  請(qǐng)將每一個(gè)空的正確答案寫(xiě)在答題卡序號(hào)的橫線(xiàn)上,答在試卷上不給分。

  (1)需求分析的最終結(jié)果是產(chǎn)生 【1】 。

  (2)為了便于對(duì)照檢查,測(cè)試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的 【2】 兩部分組成。

  (3)數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線(xiàn)性鏈表屬于 【3】 。

  (4)某二叉樹(shù)中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹(shù)中有 【4】 個(gè)葉子結(jié)點(diǎn)。

  (5) 【5】 是數(shù)據(jù)庫(kù)設(shè)計(jì)的核心。

  (6)已有定義:char c=′ ′;int a=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為? 【6】 ?。

  (7)設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為 【7】 。

  (8)下面程序的功能是:計(jì)算1 10之間的奇數(shù)之和與偶數(shù)之和,請(qǐng)?zhí)羁铡?/p>

  #include

  main()

  { int a,b,c,I;

  a=c=0;

  for(I=0;I<=10;I+=2)

  {a+=I;

  【8】 ;

  c+=b; }

  printf("偶數(shù)之和=%d\n",a);

  printf("奇數(shù)之和=%d\n",c-11);}

  (9)以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。

  #define N 4

  void rotade(int a[][N],int b[][N])

  { int I,j;

  for(I=0;I

  { b[I][N-1]= 【9】 ; 【10】 =a[N-1][I]; } }

  (10)以下程序的輸出結(jié)果是 【11】 。

  #include

  void swap(int ?*a, int ?*b)

  { int ?*t;

  t=a; a=b; b=t;

  }

  main()

  { int i=3,j=5,?*p=&i,?*q=&j;

  swap(p,q); printf("%d %d\n",*p,*q);

  }

  (11)下面程序的運(yùn)行結(jié)果是 【12】 。

  #include

  #define SIZE 12

  main()

  { char s[SIZE]; int I;for(I=0;I

  sub(s,7,SIZE-1);

  for(I=0;I

  printf("\n");}

  sub(char*a,int t1,int t2)

  { char ch;

  while (t1

  { ch=*(a+t1);

  *(a+t1)=*(a+t2);

  *(a+t2)=ch;

  t1++;t2--; } }

  (12)以下程序的輸出結(jié)果是 【13】 。

  #include

  main()

  { int a[5]={2,4,6,8,10},?*p;

  p=a; p++;

  printf("%d",?*p);

  }

  (13)設(shè)有定義"struct {int a; float b; char c;} abc, *p_abc=&abc;",則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc 【14】 a。

  (14)以下程序的運(yùn)行結(jié)果是 【15】 。

  #include

  main()

  { FILE *fp; int a[10]={1,2,3,0,0},i;

  fp=fopen("d2.dat","wb");

  fwtite(a,sizeof(int),5,fp);

  fwrite(a,sizeof(int),5,fp);

  fclose(fp);

  fp=fopen("d2.dat","rb");

  fread(a,sizeof(int),10,fp);

  fclose(fp);

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

  }

  一、選擇題

  (1)D 【解析】 軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合,相對(duì)于計(jì)算機(jī)硬件而言,軟件是邏輯產(chǎn)品而不是物理產(chǎn)品,是計(jì)算機(jī)的無(wú)形部分。

  (2)A 【解析】 確認(rèn)測(cè)試的任務(wù)是驗(yàn)證軟件的功能和性能,以及其他特性是否滿(mǎn)足需求規(guī)格說(shuō)明中確定的各種需求;集成測(cè)試的主要目的是發(fā)現(xiàn)與接口有關(guān)的錯(cuò)誤。

  (3)C 【解析】 對(duì)象的基本特點(diǎn):標(biāo)識(shí)惟一性、分類(lèi)性、多態(tài)性、封裝性和模塊獨(dú)立性。

  (4)D 【解析】 濫用goto 語(yǔ)句將使程序流程無(wú)規(guī)律,可讀性差,因此A)不選;注解行有利于對(duì)程序的理解,不應(yīng)減少或取消,B)也不選;程序的長(zhǎng)短要依照實(shí)際情況而論,而不是越短越好,C)也不選。

  (5)A 【解析】 程序執(zhí)行的效率與很多因素有關(guān),如數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)、程序所處理的數(shù)據(jù)量、程序所采用的算法等。順序存儲(chǔ)結(jié)構(gòu)在數(shù)據(jù)插入和刪除操作上的效率比鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的效率低。

  (6)C 【解析】 數(shù)據(jù)結(jié)構(gòu)概念一般包括數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及數(shù)據(jù)上的運(yùn)算集合等。數(shù)據(jù)的邏輯結(jié)構(gòu)只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管它在計(jì)算機(jī)中的存儲(chǔ)形式。

  (7)B 【解析】 順序存儲(chǔ)結(jié)構(gòu)中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲(chǔ)單元中,每個(gè)數(shù)據(jù)元素地址可通過(guò)公式LOC(ai)=LOC(a1)+(i-1)L計(jì)算得到,從而實(shí)現(xiàn)了隨機(jī)存取。對(duì)于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),要對(duì)某結(jié)點(diǎn)進(jìn)行存取,都得從鏈的頭指針指向的結(jié)點(diǎn)開(kāi)始,這是一種順序存取的存儲(chǔ)結(jié)構(gòu)。

  (8)C 【解析】 樹(shù)是N(N>0)個(gè)結(jié)點(diǎn)的有限集合,當(dāng)?N=0?,時(shí)稱(chēng)為空樹(shù),對(duì)于空樹(shù)沒(méi)有根結(jié)點(diǎn),即根結(jié)點(diǎn)的個(gè)數(shù)為0,對(duì)于非空樹(shù)有且只有一個(gè)根結(jié)點(diǎn),所以樹(shù)的根結(jié)點(diǎn)數(shù)目為0或1。

  (9)C 【解析】 數(shù)據(jù)庫(kù)(DataBase,簡(jiǎn)稱(chēng)DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,可被各個(gè)應(yīng)用程序所共享。數(shù)據(jù)庫(kù)中的數(shù)據(jù)具有"集成"、"共享"的特點(diǎn)。

  (10)B 【解析】 數(shù)據(jù)庫(kù)系統(tǒng)(Database System,簡(jiǎn)稱(chēng)DBS),包括數(shù)據(jù)庫(kù)(Database,簡(jiǎn)稱(chēng)DB)和數(shù)據(jù)庫(kù)管理系統(tǒng)(Database Management System,簡(jiǎn)稱(chēng)DBMS)。

  (11)D 【解析】 選項(xiàng)D)為兩條語(yǔ)句。

  (12)C 【解析】 C語(yǔ)言規(guī)定的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線(xiàn)3種字符組成,第一個(gè)字符必須為字母或下劃線(xiàn),并且不能使用C語(yǔ)言中的關(guān)鍵字作為標(biāo)識(shí)符。選項(xiàng)C)中g(shù)oto和int是關(guān)鍵字,b-a中'-'不是組成標(biāo)識(shí)符的3種字符之一;選項(xiàng)D)中int是關(guān)鍵字,所以,均是不合法用戶(hù)標(biāo)識(shí)符的選項(xiàng)是C)。

  (13)B 【解析】 在C語(yǔ)言程序中,用單引號(hào)把一個(gè)字符或反斜線(xiàn)后跟一個(gè)特定的字符括起來(lái)表示一個(gè)字符常量。選項(xiàng)A)、C)和D)為正確的字符常量,而選項(xiàng)B)是用雙引號(hào)括起來(lái)的字符,表示一個(gè)字符串常量。

  (14)C 【解析】 求余運(yùn)算符"%"兩邊的運(yùn)算對(duì)象必須是整型,而選項(xiàng)B)和D)中 "%"兩邊的運(yùn)算對(duì)象有浮點(diǎn)整數(shù)據(jù),所以選項(xiàng)B)和D)是錯(cuò)誤的表達(dá)式。在選項(xiàng)A)中賦值表達(dá)式的兩邊出現(xiàn)相同的變量x,也是錯(cuò)誤的。選項(xiàng)C)是一個(gè)逗號(hào)表達(dá)式,所以正確答案為C)。

  (15)B 【解析】 選項(xiàng)A)中包含一個(gè)不合法的運(yùn)算符":=";選項(xiàng)C)應(yīng)改為(int)18.5%3;選項(xiàng)D)可理解為兩個(gè)表達(dá)式:a+7=c+b和a=a+7,其中第一個(gè)是錯(cuò)的,因?yàn)镃語(yǔ)言規(guī)定賦值號(hào)的左邊只能是單個(gè)變量,不能是表達(dá)式或常量等。因此,正確答案是選項(xiàng)B),它實(shí)際上相當(dāng)于a=(b=c+2),進(jìn)而可分解為兩個(gè)表達(dá)式:b=c+2和a=b。

  (16)B 【解析】 由于在main()函數(shù)中,變量 i=4,所以就調(diào)用fun(4),則輸出"m=4 k=4"。然后變量k增1等于5,變量i增1等于5,所以main()函數(shù)的"printf("i=%d k=%d\n",i,k);"語(yǔ)句輸出"i=5 k=5"

  (17)B 【解析】 在本題中,選項(xiàng)B)實(shí)際是先計(jì)算關(guān)系表達(dá)式"'A'<=c"的值是0還是1,再比較該值與字符'Z'之間的大小關(guān)系,顯然不能實(shí)現(xiàn)題目所要求的功能,而選項(xiàng)A)、C)、D)都可以。

  (18)B 【解析】 本題考查邏輯與運(yùn)算的運(yùn)算規(guī)則。其規(guī)則是:當(dāng)運(yùn)算符前后兩個(gè)條件表達(dá)式都滿(mǎn)足時(shí),其最終結(jié)果才為真。當(dāng)發(fā)現(xiàn)第一個(gè)表達(dá)式的值為假,計(jì)算機(jī)將不再執(zhí)行后面表達(dá)式的運(yùn)算。

  本題中,由于前一個(gè)表達(dá)式的值為"假",所以,后面的表達(dá)式不再進(jìn)行運(yùn)算,因而n的值保持不變,仍為2。

  (19)B 【解析】 兩個(gè)if語(yǔ)句的判斷條件都不滿(mǎn)足,程序只執(zhí)行了c=a這條語(yǔ)句,所以變量c的值等于3,變量b的值沒(méi)有變化,程序輸出的結(jié)果為3,5,3。

  (20)C 【解析】 C語(yǔ)言中,switch語(yǔ)句專(zhuān)用于實(shí)現(xiàn)多分支結(jié)構(gòu)程序,其特點(diǎn)是各分支清晰而直觀。switch后面括號(hào)中可以是任何表達(dá)式,取其整數(shù)部分與各常量表達(dá)式進(jìn)行比較。常量表達(dá)式中不能出現(xiàn)變量,且類(lèi)型必須是整型、字符型或枚舉型,各常量表達(dá)式各不相同。

  (21)C 【解析】 本題考察變量的自加"++"和自減"--"問(wèn)題。當(dāng)y 的值為9、6或3時(shí),if語(yǔ)句的條件成立,執(zhí)行輸出語(yǔ)句,輸出表達(dá)式--y的值,y的自減要先于輸出語(yǔ)句執(zhí)行,故輸出結(jié)果為8 5 2。

  (22)C 【解析】 do while語(yǔ)句的一般形式為:do 循環(huán)體語(yǔ)句 while(表達(dá)式);,其中循環(huán)體語(yǔ)句可以是復(fù)合型語(yǔ)句,但必須用花括號(hào)括起來(lái)。while后必須要有分號(hào)作為語(yǔ)句的結(jié)束,在do-while循環(huán)中,不可以省略while。

  (23)D 【解析】 在程序中指針變量p初始指向a[3],執(zhí)行p減1后,p指向a[2],語(yǔ)句y=*p的作用是把a(bǔ)[2]的值賦給變量y,所以輸出為y=3。

  (24)B 【解析】 二維數(shù)組的初始化有以下幾種形式:①分行進(jìn)行初始化;②不分行進(jìn)行初始化;③部分?jǐn)?shù)組元素進(jìn)行初始化;④省略第一維的定義,不省略第二維的定義。選項(xiàng)B)等號(hào)右邊分了3行,大于等號(hào)左邊數(shù)組的行數(shù)2。

  (25)D 【解析】 C語(yǔ)言中操作一個(gè)字符串常量的方法有:①將字符串常量存放在一個(gè)字符數(shù)組之中;② 用字符指針指向字符串, 然后通過(guò)字符指針來(lái)訪(fǎng)問(wèn)字符串存儲(chǔ)區(qū)域。當(dāng)字符串常量在表達(dá)式中出現(xiàn)時(shí), 根據(jù)數(shù)組的類(lèi)型轉(zhuǎn)換規(guī)則, 將其轉(zhuǎn)換成字符指針。

  本題D)項(xiàng)中錯(cuò)誤的關(guān)鍵是對(duì)數(shù)組初始化時(shí),可以在變量定義時(shí)整體賦初值,但不能在賦值語(yǔ)句中整體賦值。

  (26)D 【解析】 C語(yǔ)言中數(shù)組下標(biāo)是從0開(kāi)始的,所以二維數(shù)組a[2][3]的第一維下標(biāo)取值為0、1;第二維的下標(biāo)取值為0、1、2,因而選項(xiàng)A)、B)、C)都是錯(cuò)誤的,選項(xiàng)D)表示數(shù)組元素a[0][0]。

  (27)B 【解析】 scanf()語(yǔ)句用"空格"區(qū)別不同的字符串;getc()與getchar()語(yǔ)句不能用于字符串的讀入。

  (28)A 【解析】 帶參數(shù)的宏定義命令行形式如下:#define 宏名(形參表) 替換文本。首先進(jìn)行M的宏替換,之后再進(jìn)行N的宏替換,替換后的表達(dá)式為 (a)*(b)/(c)。

  (29)D 【解析】 結(jié)構(gòu)體變量所占用內(nèi)存的字節(jié)數(shù)是其所有成員所占用內(nèi)存字節(jié)數(shù)之和。本題中整型變量i所占用的內(nèi)存是2字節(jié),字符型變量ch所占用的內(nèi)存是1字節(jié),雙精度型變量f所占用的內(nèi)存是8字節(jié),三者相加即可。

  (30)A 【解析】 首先利用fwrite函數(shù)將數(shù)組a中的數(shù)據(jù)寫(xiě)到文件中,接著fseek函數(shù)的功能是讀文件的位置,指針從文件頭向后移動(dòng)3個(gè)int型數(shù)據(jù),這時(shí)文件位置指針指向的是文件中的第4個(gè)int數(shù)據(jù)"4",然后 fread函數(shù)將文件fp中的后3個(gè)數(shù)據(jù)4,5,6讀到數(shù)組a中,這樣就覆蓋了數(shù)組中原來(lái)的前3項(xiàng)數(shù)據(jù)。最后數(shù)組中的數(shù)據(jù)就成了{(lán)4,5,6,4,5,6}。

  (31)C 【解析】 在for(i=0;i<12;i++) c[s[i]]++中,數(shù)組元素s[i]的值作為數(shù)組c的下標(biāo),當(dāng)退出循環(huán)時(shí),數(shù)組c的4個(gè)元素的值分別為4、3、3、2。

  (32)D 【解析】 在本題中,主函數(shù)在調(diào)用fun()函數(shù)進(jìn)行排序時(shí),傳遞的參數(shù)是c+4和6,fun()函數(shù)實(shí)現(xiàn)的功能是將數(shù)組c的第5個(gè)元素開(kāi)始的6個(gè)元素依次進(jìn)行從大到小的順序排列。排序之后,數(shù)組c的內(nèi)容變?yōu)閧1,2,3,4,9,8,7,6,5,0}。

  (33)C 【解析】 本題考查的重點(diǎn)是拷貝字符串──使用strcpy()函數(shù),該函數(shù)的調(diào)用方式是:strcpy(字符數(shù)組, 字符串),其中"字符串"可以是字符串常量,也可以是字符數(shù)組。函數(shù)的功能是:將"字符串"完整地復(fù)制到"字符數(shù)組"中,字符數(shù)組中原有的內(nèi)容被覆蓋。

  使用該函數(shù)時(shí)注意:①字符數(shù)組必須定義得足夠大,以便容納復(fù)制過(guò)來(lái)的字符串。復(fù)制時(shí),連同結(jié)束標(biāo)志'\0'一起復(fù)制;②不能用賦值運(yùn)算符"="將一個(gè)字符串直接賦值給一個(gè)字符數(shù)組,只能用strcpy( )函數(shù)處理。

  另外,本題還考查連接字符串的strcat()函數(shù),其調(diào)用方式是:strcat(字符數(shù)組, 字符串)。

  功能是把"字符串"連接到"字符數(shù)組"中的字符串尾端,并存儲(chǔ)于"字符數(shù)組"中。"字符數(shù)組"中原來(lái)的結(jié)束標(biāo)志,被"字符串"的第一個(gè)字符覆蓋,而"字符串"在操作中未被修改。

  使用該函數(shù)時(shí)注意:①由于沒(méi)有邊界檢查,編程者要注意保證"字符數(shù)組"定義得足夠大,以便容納連接后的目標(biāo)字符串;否則,會(huì)因長(zhǎng)度不夠而產(chǎn)生問(wèn)題;②連接前兩個(gè)字符串都有結(jié)束標(biāo)志'\0',連接后"字符數(shù)組"中存儲(chǔ)的字符串的結(jié)束標(biāo)志'\0'被舍棄,只在目標(biāo)串的最后保留一個(gè)'\0'。

  (34)D 【解析】 該程序先判斷a[i]

  (35)A 【解析】 本題考查了用字符指針引用字符數(shù)組中的字符及對(duì)字符的操作。函數(shù)abc()的for語(yǔ)句執(zhí)行過(guò)程是:從字符指針str所指向的字符數(shù)組的第一個(gè)元素開(kāi)始,逐一判斷字符是否為'c',若不是就執(zhí)行一次數(shù)組元素的賦值過(guò)程,若字符為'c'就不執(zhí)行。

  (36)A 【解析】 本題考查的是函數(shù)調(diào)用時(shí)的參數(shù)傳遞問(wèn)題。程序在調(diào)用函數(shù)f時(shí),傳給函數(shù)f的參數(shù)只是結(jié)構(gòu)變量c在棧中的一個(gè)拷貝,函數(shù)f的所有操作只是針對(duì)這個(gè)數(shù)據(jù)拷貝進(jìn)行的修改,這些都不會(huì)影響變量c的值。

  (37)B 【解析】 在函數(shù)中首先把整型數(shù)組a[10]中的每個(gè)元素寫(xiě)入文件d1.dat中,然后再次打開(kāi)這個(gè)文件,把文件d1.dat中的內(nèi)容讀入到整型變量n中,最后輸出變量n的值。

  (38)C 【解析】 ^是按位異或運(yùn)算,如果對(duì)應(yīng)位不同則結(jié)果為1,相同則為0。

  (39)D 【解析】 在整個(gè)程序運(yùn)行期間,靜態(tài)局部變量在內(nèi)存的靜態(tài)存儲(chǔ)區(qū)中占據(jù)著永久的存儲(chǔ)單元,即使退出函數(shù)以后,下次再進(jìn)入該函數(shù)時(shí),靜態(tài)局部變量仍使用原來(lái)的存儲(chǔ)單元,靜態(tài)局部變量的初值是在編譯的時(shí)候賦予的,在程序執(zhí)行期間不再賦予初值。本題由于連續(xù)三次調(diào)用函數(shù)fun(),三次對(duì)靜態(tài)變量x進(jìn)行操作,x的值應(yīng)依次為6,7,8。

  (40)D 【解析】 本題中fun函數(shù)實(shí)現(xiàn)了字符串函數(shù)strcat的功能,將字符串a(chǎn)a連接到字符串ss的末尾。調(diào)用fun函數(shù)時(shí),形參t和s分別指向了字符串ss和aa,然后通過(guò)一個(gè)while循環(huán)使t指向字符串ss的結(jié)束符的位置,第二個(gè)while循環(huán)將字符串a(chǎn)a中的字符(包括結(jié)束符'\0')逐個(gè)復(fù)制到字符串ss的末尾處。

  二、選擇題

  (1)【1】 需求規(guī)格說(shuō)明書(shū) 【解析】 軟件需求規(guī)格說(shuō)明書(shū)是需求分析階段的最后成果,是軟件開(kāi)發(fā)中的重要文檔之一。需求規(guī)格說(shuō)明書(shū)包括正確性、無(wú)歧義性、完整性、可驗(yàn)證性、一致性、可理解性、可修改性和可追蹤性等。

  (2)【2】 輸出結(jié)果 【解析】 測(cè)試用例(Text Case)是為測(cè)試設(shè)計(jì)的數(shù)據(jù)。測(cè)試用例由測(cè)試輸入數(shù)據(jù)和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果兩部分組成。

  (3)【3】 存儲(chǔ)結(jié)構(gòu) 【解析】 數(shù)據(jù)的邏輯結(jié)構(gòu)是指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu);數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式。在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)中,不僅要存放各數(shù)據(jù)元素的信息,還需要存放各數(shù)據(jù)元素之間的前后件關(guān)系的信息。

  (4)【4】 19 【解析】 在任意一棵二叉樹(shù)中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。

  (5)【5】 數(shù)據(jù)模型 【解析】 數(shù)據(jù)模型是對(duì)客觀事物及聯(lián)系的數(shù)據(jù)描述,它反映了實(shí)體內(nèi)部及實(shí)體與實(shí)體之間的聯(lián)系。因此,數(shù)據(jù)模型是數(shù)據(jù)庫(kù)設(shè)計(jì)的核心。

  (6)【6】 1 【解析】 字符空格的ASCII碼不為0,所以本題中表達(dá)式?!c?的值為0, b=0&&1的結(jié)果顯然為0。

  (7)【7】 3 【解析】 本題考查的是C語(yǔ)言逗號(hào)表達(dá)式的相關(guān)知識(shí)。程序在計(jì)算逗號(hào)表達(dá)式時(shí),從左到右計(jì)算由逗號(hào)分隔各表達(dá)式的值,整個(gè)逗號(hào)表達(dá)式的值等于其中最后一個(gè)表達(dá)式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計(jì)算為3。

  (8)【8】 b=I+1 【解析】 本題考查了for循環(huán)語(yǔ)句的執(zhí)行過(guò)程。i+=2是修正表達(dá)式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2后的和累加至a,所以a的值就是1 10之間的偶數(shù)之和; b的值是1 11之間的奇數(shù)和,但在輸出b值時(shí),c去掉多加的11,即為1 10之間的奇數(shù)之和。

  (9)【9】 a[0][I] 【10】 b[I][0] 【解析】 b[i][N-1]= a[0][i]實(shí)現(xiàn)把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,?b[I][0]=a[N-1][I] 實(shí)現(xiàn)將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組中的第0列。

  (10)【11】 3 5 【解析】 函數(shù)swap(int *a,int *b)的功能是實(shí)現(xiàn)*a和?*b?中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,參形指針變量a和b分別指向i和j,在swap(int *a,int *b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒(méi)有發(fā)生變化,所以輸出結(jié)果為3 5。

  (11)【12】 a b c d e f g l k j I h 【解析】 本題主要考查了字符變量可參與的運(yùn)算。因?yàn)樽址谟?jì)算機(jī)中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來(lái)處理,如參與算術(shù)運(yùn)算等,某字符的大寫(xiě)字母的ASCII碼值比它對(duì)應(yīng)的小寫(xiě)字母ASCII碼值小32。

  (12)【13】 4 【解析】 在主函數(shù)中,語(yǔ)句p=a;p++使用指針p指向數(shù)組a[1],所以輸出結(jié)果為4。

  (13)【14】 -> 【解析】 若結(jié)構(gòu)體變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的標(biāo)記形式有abc.a和p_abc->a。

  (14)【15】 1,2,3,0,0,1,2,3,0,0, 【解析】 本題考查文件讀寫(xiě)函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個(gè)元素輸出到文件fp中兩次,共10個(gè)字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個(gè)字節(jié)的數(shù)據(jù)到數(shù)組a中,此時(shí)數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},最后的輸出結(jié)果為"1,2,3,0,0,1,2,3,0,0,"。

考試頻道小編綜合整理了全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言試題

【全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言試題二】相關(guān)文章:

全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言06-27

2013全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言試題一09-19

全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言筆試試題06-29

2016全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言筆試試題08-24

全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言考題10-31

全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C++筆試題08-24

全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)c語(yǔ)言上機(jī)題庫(kù)10-28

全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)精選訓(xùn)練06-29

2014年全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言考試大綱08-23