夜间福利网站,免费动漫av,一级做a爰片久久毛片免费陪,夜夜骑首页,黄色毛片视频,插插插操操操,综合av色

全國計算機等級考試二級C語言試題二

時間:2025-11-25 04:14:47 等級考試 我要投稿

全國計算機等級考試二級C語言試題二

考試頻道小編綜合整理了全國計算機等級考試二級C語言試題。
  一、選擇題

全國計算機等級考試二級C語言試題二

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

  (1)軟件是指 A)程序 B)程序和文檔 C)算法加數(shù)據結構 D)程序、數(shù)據與相關文檔的完整集合

  (2)檢查軟件產品是否符合需求定義的過程稱為

  A)確認測試 B)集成測試 C)驗證測試 D)驗收測試

  (3)以下不屬于對象的基本特點的是

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

  (4)在設計程序時,應采納的原則之一是

  A)不限制goto語句的使用 B)減少或取消注解行 C)程序越短越好 D)程序結構應有助于讀者理解

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

  A)程序執(zhí)行的效率與數(shù)據的存儲結構密切相關 B)程序執(zhí)行的效率只取決于程序的控制結構

  C)程序執(zhí)行的效率只取決于所處理的數(shù)據量 D)以上三種說法都不對 (6)數(shù)據結構中,與所使用的計算機無關的是數(shù)據的

  A)存儲結構 B)物理結構 C)邏輯結構 D)物理和存儲結構

  (7)線性表的順序存儲結構和線性表的鏈式存儲結構分別是

  A)順序存取的存儲結構、順序存取的存儲結構 B)隨機存取的存儲結構、順序存取的存儲結構

  C)隨機存取的存儲結構、隨機存取的存儲結構 D)任意存取的存儲結構、任意存取的存儲結構

  (8)樹是結點的集合,它的根結點數(shù)目是

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

  (9)下列有關數(shù)據庫的描述,正確的是

  A)數(shù)據庫是一個DBF文件 B)數(shù)據庫是一個關系 C)數(shù)據庫是一個結構化的數(shù)據集合 D)數(shù)據庫是一組文件

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

  A)數(shù)據庫包括數(shù)據庫系統(tǒng)和數(shù)據庫管理系統(tǒng) B)數(shù)據庫系統(tǒng)包括數(shù)據庫和數(shù)據庫管理系統(tǒng) C)數(shù)據庫管理系統(tǒng)包括數(shù)據庫和數(shù)據庫系統(tǒng) D)三者沒有明顯的包含關系

  (11)以下4個選項中,不能看作一條語句的是

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

  (12)下面四個選項中,均是不合法的用戶標識符的選項是

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

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

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

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

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

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

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

  (16)以下程序的運行結果是

  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中的字符是否為大寫字母的表達式是

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

  (18)設有:

  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);

  其輸出結果是

  A)程序段有語法錯 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語句是

  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);

  }

  程序的運行結果是

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

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

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

  B)do-while循環(huán)由do開始,用while結束,在while(表達式)后面不能寫分號

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

  (23)有以下程序

  #include

  main()

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

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

  }

  程序的運行結果是

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

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

  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)下面說明不正確的是

  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];,以下選項中對a數(shù)組元素正確引用的是

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

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

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

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

  #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機上使用C語言,若有如下定義

  struct data

  { int i;

  char ch;

  double f;

  } b;

  則結構變量b占用內存的字節(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);/*該語句使讀文件的位置指針從文件頭向后移動3個int型數(shù)據*/

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

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

  }

  程序運行后的輸出結果是

  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");

  }

  程序的運行結果是

  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");

  }

  程序的運行結果是

  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)下面程序的輸出結果是

  #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ù)組中最小的值所在的下標值

  fun(int *a, int n)

  { int i,j=0,p;

  p=j;

  for(i=j;i

  if(a[i]

  return(p);}

  在橫線處應填入的是

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

  (35)下列程序的運行結果為

  #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]);

  }

  程序的運行結果是

  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);

  }

  程序的運行結果是

  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)閱讀下列程序,則運行結果為
 

考試頻道小編綜合整理了全國計算機等級考試二級C語言試題

 

  #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);

  }

  程序的運行結果是

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

  二、填空題

  請將每一個空的正確答案寫在答題卡序號的橫線上,答在試卷上不給分。

  (1)需求分析的最終結果是產生 【1】 。

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

  (3)數(shù)據結構分為邏輯結構與存儲結構,線性鏈表屬于 【3】 。

  (4)某二叉樹中度為2的結點有18個,則該二叉樹中有 【4】 個葉子結點。

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

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

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

  (8)下面程序的功能是:計算1 10之間的奇數(shù)之和與偶數(shù)之和,請?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所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據不變。

  #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)以下程序的輸出結果是 【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)下面程序的運行結果是 【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)以下程序的輸出結果是 【13】 。

  #include

  main()

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

  p=a; p++;

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

  }

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

  (14)以下程序的運行結果是 【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ù)據與相關文檔的集合,相對于計算機硬件而言,軟件是邏輯產品而不是物理產品,是計算機的無形部分。

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

  (3)C 【解析】 對象的基本特點:標識惟一性、分類性、多態(tài)性、封裝性和模塊獨立性。

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

  (5)A 【解析】 程序執(zhí)行的效率與很多因素有關,如數(shù)據的存儲結構、程序所處理的數(shù)據量、程序所采用的算法等。順序存儲結構在數(shù)據插入和刪除操作上的效率比鏈式存儲結構的效率低。

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

  (7)B 【解析】 順序存儲結構中,數(shù)據元素存放在一組地址連續(xù)的存儲單元中,每個數(shù)據元素地址可通過公式LOC(ai)=LOC(a1)+(i-1)L計算得到,從而實現(xiàn)了隨機存取。對于鏈式存儲結構,要對某結點進行存取,都得從鏈的頭指針指向的結點開始,這是一種順序存取的存儲結構。

  (8)C 【解析】 樹是N(N>0)個結點的有限集合,當?N=0?,時稱為空樹,對于空樹沒有根結點,即根結點的個數(shù)為0,對于非空樹有且只有一個根結點,所以樹的根結點數(shù)目為0或1。

  (9)C 【解析】 數(shù)據庫(DataBase,簡稱DB)是數(shù)據的集合,它具有統(tǒng)一的結構形式并存放于統(tǒng)一的存儲介質內,是多種應用數(shù)據的集成,可被各個應用程序所共享。數(shù)據庫中的數(shù)據具有"集成"、"共享"的特點。

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

  (11)D 【解析】 選項D)為兩條語句。

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

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

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

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

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

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

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

  本題中,由于前一個表達式的值為"假",所以,后面的表達式不再進行運算,因而n的值保持不變,仍為2。

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

  (20)C 【解析】 C語言中,switch語句專用于實現(xiàn)多分支結構程序,其特點是各分支清晰而直觀。switch后面括號中可以是任何表達式,取其整數(shù)部分與各常量表達式進行比較。常量表達式中不能出現(xiàn)變量,且類型必須是整型、字符型或枚舉型,各常量表達式各不相同。

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

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

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

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

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

  本題D)項中錯誤的關鍵是對數(shù)組初始化時,可以在變量定義時整體賦初值,但不能在賦值語句中整體賦值。

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

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

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

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

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

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

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

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

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

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

  功能是把"字符串"連接到"字符數(shù)組"中的字符串尾端,并存儲于"字符數(shù)組"中。"字符數(shù)組"中原來的結束標志,被"字符串"的第一個字符覆蓋,而"字符串"在操作中未被修改。

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

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

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

  (36)A 【解析】 本題考查的是函數(shù)調用時的參數(shù)傳遞問題。程序在調用函數(shù)f時,傳給函數(shù)f的參數(shù)只是結構變量c在棧中的一個拷貝,函數(shù)f的所有操作只是針對這個數(shù)據拷貝進行的修改,這些都不會影響變量c的值。

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

  (38)C 【解析】 ^是按位異或運算,如果對應位不同則結果為1,相同則為0。

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

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

  二、選擇題

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

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

  (3)【3】 存儲結構 【解析】 數(shù)據的邏輯結構是指反映數(shù)據元素之間邏輯關系的數(shù)據結構;數(shù)據的存儲結構是指數(shù)據的邏輯結構在計算機存儲空間中的存放形式。在數(shù)據的存儲結構中,不僅要存放各數(shù)據元素的信息,還需要存放各數(shù)據元素之間的前后件關系的信息。

  (4)【4】 19 【解析】 在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。

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

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

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

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

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

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

  (11)【12】 a b c d e f g l k j I h 【解析】 本題主要考查了字符變量可參與的運算。因為字符在計算機中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術運算等,某字符的大寫字母的ASCII碼值比它對應的小寫字母ASCII碼值小32。

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

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

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

考試頻道小編綜合整理了全國計算機等級考試二級C語言試題

【全國計算機等級考試二級C語言試題二】相關文章:

全國計算機等級考試二級C語言10-25

2013全國計算機等級考試二級C語言試題一12-09

全國計算機等級考試二級C語言筆試試題03-19

全國計算機等級考試二級C語言考題11-01

2016全國計算機等級考試二級C語言筆試試題03-15

全國計算機等級考試二級C語言上機精選訓練07-18

全國計算機等級考試二級c語言上機題庫09-18

全國計算機等級考試二級C++筆試題02-06

2014年全國計算機等級考試二級C語言考試大綱02-28