亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

計算機二級C語言筆試歷年真題及答案

時間:2024-09-30 11:25:30 海潔 計算機等級 我要投稿
  • 相關推薦

計算機二級C語言筆試歷年真題及答案

  在現(xiàn)實的學習、工作中,我們最熟悉的就是試題了,借助試題可以更好地檢查參考者的學習能力和其它能力。你知道什么樣的試題才是好試題嗎?下面是小編收集整理的計算機二級C語言筆試歷年真題及答案,希望對大家有所幫助。

計算機二級C語言筆試歷年真題及答案

  計算機二級C語言筆試歷年真題及答案 1

  一、選擇題(每小題2分,共70分)

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

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

  A)線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的

  B)線性表的鏈式存儲結構所需要的存儲空間一般要多于順序存儲結構

  C)線性表的鏈式存儲結構所需要的存儲空間一般要少于順序存儲結構

  D)上述三種說法都不對

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

  A)在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化

  B)在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化

  C)在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化

  D)上述三種說法都不對

  (3)軟件測試的目的是

  A)評估軟件可靠性

  B)發(fā)現(xiàn)并改正程序中的錯誤

  C)改正程序中的錯誤

  D)發(fā)現(xiàn)程序中的錯誤

  (4)下面描述中,不屬于軟件危機表現(xiàn)的是

  A)軟件過程不規(guī)范

  B)軟件開發(fā)生產(chǎn)率低

  C)軟件質(zhì)量難以控制

  D)軟件成本不斷提高

  (5)軟件生命周期是指

  A)軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程

  B)軟件從需求分析、設計、實現(xiàn)到測試完成的過程

  C)軟件的開發(fā)過程

  D)軟件的運行維護過程

  (6)面向?qū)ο蠓椒ㄖ,繼承是指

  A)一組對象所具有的相似性質(zhì)

  B)一個對象具有另一個對象的性質(zhì)

  C)各對象之間的共同性質(zhì)

  D)類之間共享屬性和操作的機制

  (7)層次型、網(wǎng)狀型和關系型數(shù)據(jù)庫劃分原則是

  A)記錄長度

  B)文件的大小

  C)聯(lián)系的復雜程度

  D)數(shù)據(jù)之間的聯(lián)系方式

  (8)一個工作人員可以使用多臺計算機,而一臺計算機可被多個人使用,則實體工作人員、與實體計算機之間的聯(lián)系是

  A)一對一

  B)一對多

  C)多對多

  D)多對一

  (9)數(shù)據(jù)庫設計中反映用戶對數(shù)據(jù)要求的模式是

  A)內(nèi)模式

  B)概念模式

  C)外模式

  D)設計模式

  (10)有三個關系R、S和T如下:

  則由關系R和S得到關系T的操作是

  A)自然連接

  B)交

  C)投影

  D)并

  (11)以下關于結構化程序設計的敘述中正確的是

  A)一個結構化程序必須同時由順序、分支、循環(huán)三種結構組成

  B)結構化程序使用goto語句會很便捷

  C)在C語言中,程序的模塊化是利用函數(shù)實現(xiàn)的

  D)由三種基本結構構成的程序只能解決小規(guī)模的問題

  (12)以下關于簡單程序設計的步驟和順序的說法中正確的是

  A)確定算法后,整理并寫出文檔,最后進行編碼和上機調(diào)試

  B)首先確定數(shù)據(jù)結構,然后確定算法,再編碼,并上機調(diào)試,最后整理文檔

  C)先編碼和上機調(diào)試,在編碼過程中確定算法和數(shù)據(jù)結構,最后整理文檔

  D)先寫好文檔,再根據(jù)文檔進行編碼和上機調(diào)試,最后確定算法和數(shù)據(jù)結構

  (13)以下敘述中錯誤的是

  A) C程序在運行過程中所有計算都以二進制方式進行

  B)C程序在運行過程中所有計算都以十進制方式進行

  C)所有C程序都需要編譯鏈接無誤后才能運行

  D)C程序中整型變量只能存放整數(shù),實型變量只能存放浮點數(shù)

  (14)有以下定義:int a; long b; double x,y;則以下選項中正確的表達式是

  A)a%(int)(x-y)

  B)a=x!=y;

  C)(a*y)%b

  D)y=x+y=x

  (15)以下選項中能表示合法常量的是

  A)整數(shù):1,200

  B)實數(shù):1.5E2.0

  C )字符斜杠: ‘\’

  D)字符串: "\007"

  (16)表達式a+=a-=a=9的值是

  A)9

  B)_9

  C)18

  D)0

  (17)若變量已正確定義,在if (W)printf(“%d\n,k”);中,以下不可替代W的是

  A)a<>b+c

  B)ch=get)

  C)a==b+c

  D)a++

  (18)有以下程序

  #include

  main()

  {int a=1,b=0;

  if(!a) b++;

  else if(a==0)if(a)b+=2;

  else b+=3;

  printf(”%d\n”,b);

  }

  程序運行后的輸出結果是

  A)0

  B)1

  C)2

  D)3

  (19)若有定義語句int a, b;double x;則下列選項中沒有錯誤的是

  A)switch(x%2) B)switch((int)x/2.0

  {case 0: a++; break; {case 0: a++; break;

  case 1: b++; break; case 1: b++; break;

  default : a++; b++; default : a++; b++;

  } }

  C)switch((int)x%2) D)switch((int)(x)%2)

  {case 0: a++; break; {case 0.0: a++; break;

  case 1: b++; break; case 1.0: b++; break;

  default : a++; b++; default : a++; b++;

  } }

  (20)有以下程序

  #include

  main()

  {int a=1,b=2;

  while(a<6){b+=a;a+=2;b%二10;}

  printf(”%d,%d\n”,a,b);

 。

  程序運行后的輸出結果是

  A)5,11

  B)7,1

  C)7,11

  D)6,1

  (21)有以下程序

  #include

  main()

  {int y=10;

  while(y--);

  printf(”Y=%d\n”,Y);

 。

  程序執(zhí)行后的輸出結果是

  A)y=0

  B)y= -1

  C)y=1

  D)while構成無限循環(huán)

  (22)有以下程序

  #include

  main()

  {char s[」=”rstuv";

  printf(”%c\n”,*s+2);

  }

  程序運行后的輸出結果是

  A)tuv

  B)字符t的ASCII碼值

  C)t

  D)出錯

  (23)有以下程序

  #include

  #include

  main()

  {char x[]=”STRING”;

  x[0」=0;x[1]=’\0’;x[2」=’0’;

  printf(”%d %d\n”,sizeof(x),strlen(x));

 。

  程序運行后的輸出結果是

  A)6 1

  B)7 0

  C)6 3

  D)7 1

  (24)有以下程序

  #include

  Int f(int x);

  main()

  {int n=1,m;

  m=f(f(f(n)));printf(”%d\n”,m);

 。

  int f(int x)

  {return x*2;}

  程序運行后的輸出結果是

  A)1

  B)2

  C)4

  D)8

  (25)以下程序段完全正確的`是

  A)int *p; scanf("%d",&p);

  B)int *p; scanf(“%d”,p);

  C)int k, *p=&k; scanf("%d",p);

  D)int k, *p:; *p= &k; scanf(“%d”,p);

  (26)有定義語句:int *p[4];以下選項中與此語句等價的是

  A)int p[4];

  B)int **p;

  C)int *(p「4」);

  D)int (*p)「4」;

  (27)下列定義數(shù)組的語句中,正確的是

  A)int N=10; B)#define N 10

  int x[N]; int x[N];

  C)int x[0..10]; D)int x[];

  (28)若要定義一個具有5個元素的整型數(shù)組,以下錯誤的定義語句是

  A)int a[5]=﹛0﹜;

  B)int b[]={0,0,0,0,0};

  C)int c[2+3];

  D)int i=5,d[i];

  (29)有以下程序

  #include

  void f(int *p);

  main()

  {int a[5]={1,2,3,4,5},*r=a;

  f(r);printf(”%d\n”;*r);

  }

  void f(int *p)

  {p=p+3;printf(”%d,”,*p);}

  程序運行后的輸出結果是

  A)1,4

  B)4,4

  C)3,1

  D)4,1

  (30)有以下程序(函數(shù)fun只對下標為偶數(shù)的元素進行操作)

  # include

  void fun(int*a;int n)

  {int i、j、k、t;

  for (i=0;i

  {k=i;‘

  for(j=i;ja〔k])k=j;

  t=a〔i];a〔i]=a[k];a〔k]=t;

 。

 。

  main()

  {int aa「10」={1、2、3、4、5、6、7},i;

  fun(aa、7);

  for(i=0,i<7; i++)printf(”%d,”,aa[i]));

  printf(”\n”);

  }

  程序運行后的輸出結果是

  A)7,2,5,4,3,6,1

  B)1,6,3,4,5,2,7

  C)7,6,5,4,3,2,1

  D)1,7,3,5,6;2,1

  (31)下列選項中,能夠滿足“若字符串s1等于字符串s2,則執(zhí)行ST"要求的是

  A)if(strcmp(s2,s1)==0)ST;

  B)if(sl==s2)ST;

  C)if(strcpy(s l ,s2)==1)ST;

  D)if(sl-s2==0)ST;

  (32)以下不能將s所指字符串正確復制到t所指存儲空間的是

  A)while(*t=*s){t++;s++;}

  B)for(i=0;t[i]=s[i];i++);

  C)do{*t++=*s++;}while(*s);

  D)for(i=0,j=0;t[i++]=s[j++];);

  (33)有以下程序( strcat函數(shù)用以連接兩個字符串)

  #include

  #include

  main()

  {char a[20]=”ABCD\OEFG\0”,b[]=”IJK”;

  strcat(a,b);printf(”%s\n”,a);

 。

  程序運行后的輸出結果是

  A)ABCDE\OFG\OIJK

  B)ABCDIJK

  C)IJK

  D)EFGIJK

  (34)有以下程序,程序中庫函數(shù)islower (ch)用以判斷ch中的字母是否為小寫字母

  #include

  #include

  void fun(char*p)

  {int i=0;

  while (p[i])

  {if(p[i]==’ ’&& islower(p「i-1」))p[i-1]=p[i-1]-‘a(chǎn)’+‘A’;

  i++;

 。

 。

  main()

  {char s1[100]=”ab cd EFG!”;

  fun(s1); printf(”%s\n”,s1);

 。

  程序運行后的輸出結果是

  A)ab cd EFG!

  B)Ab Cd EFg!

  C)aB cD EFG!

  D)ab cd EFg!

  (35)有以下程序

  #include

  void fun(int x)

  {if(x/2>1)fun(x/2);

  printf(”%d”,x);

  }

  main()

  {fun(7);printf(”\n”);}

  程序運行后的輸出結果是

  A)1 3 7

  B)7 3 1

  C)7 3

  D)3 7

  (36)有以下程序

  #include

  int fun()

  {static int x=1;

  x+=1;return x;

 。

  main()

  {int i;s=1;

  for(i=1;i<=5;i++)s+=fun();

  printf(”%d\n”,s);

  }

  程序運行后的輸出結果是

  A)11

  B)21

  C)6

  D)120

  (37)有以下程序

  #inctude

  #include

  Main()

  {int *a,*b,*c;

  a=b=c=(int*)malloc(sizeof(int));

  *a=1;*b=2,*c=3;

  a=b;

  printf(“%d,%d,%d\n”,*a,*b,*c);

 。

  程序運行后的輸出結果是

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

  (38)有以下程序

  #include

  main()

  {int s,t,A=10;double B=6;

  s=sizeof(A);t=sizeof(B);

  printf(“%d,%d\n”,s,t);

 。

  在VC6平臺上編譯運行,程序運行后的輸出結果是

  A)2,4 B)4,4 C)4,8 D)10,6

  (39)若有以下語句

  Typedef struct S

  {int g; char h;}T;

  以下敘述中正確的是

  A)可用S定義結構體變量

  B)可用T定義結構體變量

  C)S是struct類型的變量

  D)T是struct S類型的變量

  (40)有以下程序

  #include

  main()

  {short c=124;

  c=c_______;

  printf(“%d\n”、C);

 。

  若要使程序的運行結果為248,應在下劃線處填入的是

  A)>>2 B)|248 C)&0248 D)<

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

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

  (1)一個棧的初始狀態(tài)為空。首先將元素5,4,3,2,1依次入棧,然后退棧一次,再將元素A,B,C,D依次入棧,之后將所有元素全部退棧,則所有元素退棧(包括中間退棧的元素)的順序為【1】

  (2)在長度為n的線性表中,尋找最大項至少需要比較【2】次。

  (3)一棵二叉樹有10個度為1的結點,7個度為2的結點,則該二叉樹共有【3】個結點。

  (4)僅由順序、選擇(分支)和重復(循環(huán))結構構成的程序是【4】程序。

  (5)數(shù)據(jù)庫設計的四個階段是:需求分析,概念設計,邏輯設計【5】。

  (6)以下程序運行后的輸出結果是【6】。

  #include

  main()

  {int a=200,b=010;

  printf(”%d%d\n”,a,b);

  }

  (7)有以下程序

  #include

  main()

  {int x,Y;

  scanf(”%2d%ld”,&x,&y);printf(”%d\n”,x+y);

 。

  程序運行時輸入:1234567程序的運行結果是【7】。

  (8)在C語言中,當表達式值為0時表示邏輯值“假”,當表達式值為【8】時表示邏輯值“真”。

  (9)有以下程序

  #include

  main()

  {int i,n[]={0,0,0,0,0};

  for (i=1;i<=4;i++)

  {n[i]=n[i-1]*3+1; printf(”%d ",n[i]);}

  }

  程序運行后的輸出結果是【9】。

  (10)以下fun函數(shù)的功能是:找出具有N個元素的一維數(shù)組中的最小值,并作為函數(shù)值返回。請?zhí)羁铡?設N已定義)

  int fun(int x[N])

  {int i,k=0;

  for(i=0;i

  if(x[i]

  return x[k];

  }

  (11)有以下程序

  #include

  int*f(int *p,int*q);

  main()

  {int m=1,n=2,*r=&m;

  r=f(r,&n);printf(”%d\n”,*r);

 。

  int*f(int *p,int*q)

  {return(*p>*q)?p:q;}

  程序運行后的輸出結果是【11】

  (12)以下fun函數(shù)的功能是在N行M列的整形二維數(shù)組中,選出一個最大值作為函數(shù)值返回,請?zhí)羁铡?設M,. N已定義)

  int fun(int a[N][M))

  {int i,j,row=0,col=0;

  for(i=0;i

  for(j=0;j

  if(a[i][j]>a[row][col]){row=i;col=j;}

  return(【12】):

  }

  (13)有以下程序

  #include

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

 。

  程序運行后的輸出結果是【13】

  (14)以下程序的功能是:借助指針變量找出數(shù)組元素中最大值所在的位置并輸出該最大值。請在輸出語句中填寫代表最大值的輸出項。

  #include

  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=P;

  printf("max=%d\n”,【14】);

  }

  (15)以下程序打開新文件f.txt,并調(diào)用字符輸出函數(shù)將a數(shù)組中的字符寫入其中,請?zhí)羁铡?/p>

  #include

  main()

  {【15】*fp;

  char a[5]={’1’,’2’,’3’,’4’,’5’},i;

  fp=fopen(”f .txt”,”w”);

  for(i=0;i<5;i++)fputc(a[i],fp);

  fclose(fp);

  }

  計算機二級C語言筆試歷年真題及答案 2

  一、 選擇題(7分,每小題0.5分)

  1.C語言源程序的基本單位是( )。

  A 過程 B 函數(shù) C 子程序 D 標識符

  2.下列程序的輸出結果是( )。

  main( )

  { int a=7,b=5;

  printf("%d ",b=b/a);

  }

  A 5 B 1 C 0 D不確定值

  3.假設變量a,b均為整型,表達式(a=5,b=2,a>b?a++:b++,a+b)的值是( )。

  A 7 B 8 C 9 D 2

  4.設a為int型變量,執(zhí)行下列賦值語句后,a的取值分別是( )。

  a=125.534; a=(int)125.521%4; a=5<<2;

  A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20

  5.設有如下程序段,下面描述中正確的是 ( )。

  int k=10; while(k=0) k=k-1;

  A 循環(huán)執(zhí)行一次 B循環(huán)是無限循環(huán) C循環(huán)體語句一次也不執(zhí)行 D循環(huán)體語句執(zhí)行一次

  6.以下程序的輸出結果為( )。

  int i;

  void prt( )

  { for(i=5;i<8;i++) printf("%c",*);

  printf(" ");

  }

  main( )

  { for(i=5;i<=8;i++) prt( );

  }

  A *** B *** *** *** *** C *** *** D * * *

  7.在C語言程序中,以下說法正確的是( )。

  A函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套

  B函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套

  C函數(shù)的`定義和函數(shù)的調(diào)用都不可以嵌套

  D函數(shù)的定義和函數(shù)的調(diào)用都可以嵌套

  8.以下函數(shù)調(diào)用語句中含有( )個實參。

  func((e1,e2),(e3,e4,e5));

  A 2 B 3 C 5 D 語法錯誤

  9.以下程序的輸出結果為( )。

  #define ADD(x) x*x

  main( )

  { int a=4,b=6,c=7,d=ADD(a+b)*c;

  printf("d=%d",d);

  }

  A d=70 B d=80 C d=140 D d=700

  10.已知職工記錄描述如下,在Turbo C中,系統(tǒng)為變量w分配( )字節(jié)的空間。

  struct worker

  { int no;

  char name[20];

  char sex;

  union

  { int day; int month; int year;}birth;

  } w;

  A 29 B 20 C 25 D 6

  11.設有以下定義,值為5的枚舉常量是( )。

  enum week{sun,mon=4,tue,wed,thu,fri,sat} w;

  A tue B sat C fri D thu

  12.下面選項中正確的賦值語句是(設 char a[5],*p=a;)( )。

  A p="abcd"; B a="abcd"; C *p="abcd"; D *a="abcd";

  13.設有以下程序段,則值為6的表達式是( )。

  struct st { int n; struct st *next;};

  static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p;

  p=&a[0];

  A p++->n B ++p->n C p->n++ D (*p).n++

  14.C語言中的文件類型只有( )。

  A 索引文件和文本文件兩種 B 文本文件一種

  C 二進制文件一種 D ASCII碼文件和二進制文件兩種

  二、 判斷對錯,對的劃“√”,錯的劃“×”(5分,每小題0.5分)

  1.在Turbo C中,整型數(shù)據(jù)在內(nèi)存中占2個字節(jié)。( )

  2.int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的輸出結果為A。( )

  3.break語句用在循環(huán)體中,可結束本層循環(huán),continue語句用在循環(huán)體中,可結束本次循環(huán)。( )

  4.函數(shù)的遞歸調(diào)用不過是一個函數(shù)直接或間接地調(diào)用它自身。( )

  5.函數(shù)strlen("ASDFG ")的值是7。( )

  6.通過return語句,函數(shù)可以帶回一個或一個以上的返回值。( )

  7.結構體類型只有一種。 ( )

  8.char *p="girl";的含義是定義字符型指針變量p,p的值是字符串"girl"。( )

  9.若有定義:char *p(char a[10]);則p是函數(shù)名。( )

  10.用fopen("file","r+");打開的文件"file"可以進行修改。 ( )

  三、 寫出下列程序的運行結果(10分,每小題2分)

  1.float average (float array[10])

  { int i;

  float aver,sum=array[0];

  for (i=1;i<10;i++)

  sum=sum+array[i];

  aver=sum/10;

  return(aver);

  }

  main( )

  { float score[10]={89,67.5,78,91,56,82.5,65,70,79,88},aver;

  int i;

  aver=average (score);

  printf (“average score is %5.2f ”,aver);

  }

  2.main( )

  { char a[5]={‘A’,‘B’,‘C’,‘D’,‘E’},*p=a,**pa;

  for(p=0;p

  printf(“%2c”,*p);

  printf(“ ”);

  printf(“%2c ”,**(pa=&p));

  }

  3.main( )

  { int a,b,s=0;

  for(a=1,b=1;a<=100;a++)

  { if(b>=20) break;

  if(b%3==1)

  { b+=3; continue; }

  b-=5;

  }

  printf(“a=%d b=%d ”,a,b);

  }

  4.main()

  { printf(“main( ) :%d ”,fact(5));

  fact(-5);

  }

  fact(int value)

  { int f;

  if(value<0)

  { printf(“Arg error ");

  return(-1);

  }

  else if(value==1||value==0) f=1;

  else f=value*fact(value-1)+1;

  printf(“This called value=%d ”,f);

  return f;

  }

  5.main( )

  { int a=012,b=0x12,k=12;

  char c=‘102’,d=‘ ’;

  printf(“a=%d b=%d k=%d ”,a,b,k);

  printf(“c=%c,d=%c%o ”,c,d,a);

  a=‘A’; c=49;

  printf(“a=%d c=%c ”,a,c);

  }

  四 、閱讀下列程序,在 處填入適當內(nèi)容,使程序完整(8分,每個空1分)

  1.有一個3*4矩陣,求其中的最大元素。

  max_value( (1) )

  { int i,j,max;

  max=array[0][0];

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

  for(j=0;j<4;j++)

  if(array[i][j]>max)

  max=array[i][j];

  (2) ;

  }

  main( )

  { int a[3][4], i,j;

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

  for(j=0;j<4;j++)

  (3) ;

  printf(“max value is %d ”,max_value(a));

  }

  2.輸入x、y兩個整數(shù),按先大后小的順序輸出x、y。

  #include “stdio.h”

  main( )

  { int x,y, *px,*py, (4) ;

  scanf(“%d%d”,&x,&y);

  (5) ; (6) ;

  if(x

  { p=px; px=py; py=p; }

  printf(“x=%d,y=%d ”,x,y);

  printf(“MAX=%d,MIN=%d ”,*px,*py);

  }

  3.用選擇排序法對任意10個整數(shù)按照由小到大排序。

  main()

  { int a[11],i,j,k,t;

  printf("Please input 10 numbers: ");

  for(i=1;i<11;i++) scanf("%d",&a[i]);

  printf(" ");

  for(i=1;i<=9;i++)

  { (7) ;

  for(j=i+1; (8) ;j++)

  if(a[j]>a[k]) k=j;

  if(k!=i)

  { t=a[k]; a[k]=a[i]; a[i]=t;}

  }

  printf("The sorted numbers: ");

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

  }

  答案

  一 、選擇題(7分,每小題0.5分)

  1. B 2. C 3. B 4. B 5. C

  6. A 7. B 8. A 9. A 10. C

  11. A 12. A 13. B 14. D

  二 、判斷對錯,對的劃“√”,錯的劃“×”(5分,每小題0.5分)

  1.× 2.× 3.√ 4.√ 5.×

  6.× 7.× 8.× 9.√ 10.√

  三 、寫出下列程序的運行結果(10分,每小題2分)

  1. 2. 3.

  4. 5.

  四、 閱讀下列程序,在 處填入適當內(nèi)容,使程序完整(8分,每個空1分)

  1.(1)int array[3][4](int array[][4]) (2)return(max) (3)scanf(“%d”,&a[i][j])

  2.(4)*p (5)px=&x(py=&y) (6)py=&y(px=&x)

  3.(7) (8)

  計算機二級C語言筆試歷年真題及答案 3

  一、 選擇題(24分,每小題2分)

  1.已知函數(shù)fread的調(diào)用形式為fread(buffer,size,count,fp),其中buffer代表的是( )。

  A 存放讀入數(shù)據(jù)項的存儲區(qū) B 存放讀入數(shù)據(jù)的地址或指向此地址的指針

  C 一個指向所讀文件的文件指針 D 一個整形變量,代表要讀入的數(shù)據(jù)項總數(shù)

  2.以下程序的輸出結果為( )。

  main( )

  { int i=010,j=10;

  printf("%d,%d ",i++,j--);

  }

  A 11,9 B 9,10 C 8,10 D 9,9

  3.設a為int型變量,執(zhí)行下列賦值語句后,a的取值分別是( )。a=125.534;a=20.0/3;a=(int)125.521%4;a=5<<2;

  A 125,6,31,1 B 125,6,1,20 C 125,6.666666,31,20 D 125.534,6.666666,2,20

  4.設i和k都是int類型,則for循環(huán)語句( )。

  for(i=0,k=-1;k=1;i++,k++) printf("****");

  A 循環(huán)結束的條件不合法 B 循環(huán)體一次也不執(zhí)行 C 循環(huán)體只執(zhí)行一次 D 是無限循環(huán)

  5.以下程序的輸出結果為( )。

  main( )

  { char c;

  int i;

  for(i=65;i<68;i++)

  { c=i+32;

  switch(c)

  { case a:case b:case c:printf("%c,",c);break; default:printf("end");}

  }

  }

  A a,b,c,end B a,a,a,end C a,a,a, D a,b,c,

  6.函數(shù)調(diào)用語句:fseek(fp,-10L,2);的含義是( )。

  A 將文件位置指針從文件末尾處向文件頭的方向移動10個字節(jié)

  B 將文件位置指針從當前位置向文件頭的方向移動10個字節(jié)

  C 將文件位置指針從當前位置向文件末尾方向移動10個字節(jié)

  D 將文件位置指針移到距離文件頭10個字節(jié)處

  7.以下程序的.輸出結果為( )。

  main( )

  { char s1[40]="country",s2[20]="side";

  int i=0,j=0;

  while(s1[i]!=) i++;

  while(s2[j]!=) s1[i++]=s2[j++];

  s1[i]=0;

  printf("%s ",s1);

  }

  A side B country C sidetry D countryside

  8.下列說法不正確的是( )。

  A 主函數(shù)main中定義的變量在整個文件或程序中有效

  B 不同函數(shù)中,可以使用相同名字的變量

  C 形式參數(shù)是局部變量

  D 在一個函數(shù)內(nèi)部,可以在復合語句中定義變量,這些變量只在本復合語句中有效

  9.在下列程序段中,枚舉變量 c1的值是( )。

  enum color { red,yellow,blue=4,green,white}c1; c1=yellow; c1=white;

  A 1 B 3 C 5 D 6

  10.設有說明 int (*ptr)();其中標識符ptr是( )。

  A 是一個指向整形變量的指針 B 是一個指針,它指向一個函數(shù)值是int的函數(shù)

  C 是一個函數(shù)名 D定義不合法

  11.定義由n個指向整形數(shù)據(jù)的指針組成的數(shù)組p,其正確的方式為( )。

  A int p; B int (*p)[n]; C int *p[n]; D int (*p)( );

  12.具有相同類型的指針類型變量p與數(shù)組a,不能進行的操作是( )。

  A p=a; B *p=a[0]; C p=&a[0]; D p=&a;

  二 、判斷對錯,對的劃“√”,錯的劃“×”(20分,每小題2分)

  1.參加位運算的數(shù)據(jù)可以是任何類型的數(shù)據(jù)。( )

  2.若有定義和語句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通過鍵盤輸入:10,A,12.5,則a=10,c=‘A’,f=12.5。( )

  3.C語言把文件看作是一個字符(字節(jié))的序列。( )

  4.若有宏定義:#define S(a,b) t=a;a=b;b=t由于變量t沒定義,所以此宏定義是錯誤的。( )

  5.在Turbo C中,下面的定義和語句是合法的:file *fp;fp=fopen("a.txt","r");( )

  6.若有定義:char s[ ]="china";則Turbo C系統(tǒng)為數(shù)組s開辟6個字節(jié)的內(nèi)存單元。( )

  7.若有定義和語句:int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++) sum+=a[i][2-i];則sum=21。( )

  8.若有定義和語句:struct student { int num; char name[10]; float score;} s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s;printf("%d",*p++);輸出結果是1。( )

  9.在程序中定義了一個結構體類型后,可以多次用它來定義具有該類型的變量。( )

  10.在Turbo C中,此定義和語句是合法的:enum aa{ a=5,b,c}bb;bb=(enum aa)5;( )

  三 、寫出下列程序的運行結果(36分,每小題6分)

  1.main( )

  { int i=29,j=6,k=2,s;

  s=i+i/j%k-9;

  printf(“s=%d ”,s);

  }

  2.main( )

  { int x=31,y=2,s=0;

  do

  { s-=x*y;

  x+=2;

  y-=3;} while( x%3==0);

  printf(“x=%d y=%d s=%d ”,x,y,s);

  }

  3.main( )

  { int a[6]={10,20,30,40,50,60},i;

  invert(a,0,5);

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

  printf(“ ”);

  }

  invert(int s[ ],int i,int j)

  { int t;

  if(i

  { invert(s,i+1j-1);

  t=s[i];s[i]=s[j];s[j]=t;

  }

  }

  4.#include

  main()

  { char str[ ]=“The C program”,c;

  int i;

  for(i=2;(c=str[i])!=‘’;i++)

  { switch(c)

  { case ‘g’: ++i; break;

  case ‘o’: continue;

  default: printf(“%c”,c); continue;

  }

  printf(“*”);

  }

  printf(“ ”);

  }

  5.struct w

  { char low;

  char high;

  };

  union u

  { struct w byte;

  short word;

  }uw;

  main( )

  { int result;

  uw.word=0x1234;

  printf(“word value:%04x ”,uw.word);

  printf(“high byte:%02x ”,uw.byte.high);

  printf(“l(fā)ow byte:%02x ”,uw.byte.low);

  uw.byte.low=0x74;

  printf(“word value:%04x ”,uw.word);

  result=uw.word+0x2a34;

  printf(“the result:%04x ”,result);

  }

  6.main()

  { char *s2=“I love China!”,**s1=&s2;

  char *s3,c,*s4=“w”;

  s3=&c;

  *s3=‘H’;

  s2=s2+2;

  printf(“%s %c %s %c ”,s2,*s3,s4,**s1);

  }

  四、 閱讀下列程序,在 處填入適當內(nèi)容,使程序完整(20分,每個空2分)

  1. 百馬百擔問題:有100匹馬,馱100擔貨,大馬馱3擔,中馬馱2擔,兩匹小馬馱1擔,問大、中、小馬各多少匹?

  main( )

  { int hb,hm,hl,n=0;

  for(hb=0;hb<=100;hb+= (1) )

  for(hm=0;hm<=100-hb;hm+= (2) )

  { hl=100-hb- (3) ;

  if(hb/3+hm/2+2* (3) ==100)

  { n++;

  printf("hb=%d,hm=%d,hl=%d ",hb/3,hm/2,2*hl);

  }

  }

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

  }

  2.用“起泡法”對輸入的10個字符排序后按從小到大的次序輸出。

  #define N 10

  char str[N];

  main()

  { int i,flag;

  for(flag=1;flag==1;)

  { scanf("%s",str);

  flag=0;

  printf(" ");

  }

  sort(___(4)___);

  for(i=0;i

  printf("%c",str[i]);

  printf(" ");

  }

  sort(char str[N])

  { int i,j;

  char t;

  for(j=1;j

  for(i=0;(i

  if(str[i]>str[i+1])

  { t=str[i];

  ____(5)____;

  ____(6)____;

  }

  }

  3.以下程序是一個函數(shù),功能是求二階矩陣(m行n列矩陣)的所有靠外側的各元素值之和。(本程序中二階矩陣用一維數(shù)組來表示。)

  例如,矩陣為:

  3 0 0 3

  2 5 7 3

  1 0 4 2

  則所有靠外側的各元素值之和為3+0+0+3+2+3+1+0+4+2=18。

  add(int m,int n,int arr[])

  { int i,j,sum=0;

  for(i=0;i

  for(j=0;j

  sum=sum+ (7) ;

  for(j=0;j

  for(i=1; (8) ;i++)

  sum=sum+arr[i*n+j];

  return(sum);

  }

  4.用指針作函數(shù)參數(shù),編程序求一維數(shù)組中的最大和最小的元素值。

  #define N 10

  main()

  { void maxmin(int arr[],int *pt1,int *pt2,int n);

  int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;

  p1=&a; p2=&b;

  maxmin(array,p1,p2,N);

  printf("max=%d,min=%d",a,b);

  }

  void maxmin(int arr[],int *pt1,int *pt2,int n)

  { int i;

  *pt1=*pt2=arr[0];

  for(i=1;i

  { if(arr[i]>*pt1) (9) ;

  if(arr[i]<*pt2) (10) ;

  }

  }

  答案

  一 、選擇題(24分,每小題2分)

  1.( B ) 2.( C ) 3.( B ) 4.( D ) 5.( D ) 6.( A )

  7.( D ) 8.( A ) 9.( D ) 10.( B ) 11.( C ) 12.( D )

  二 、判斷對錯,對的劃“√”,錯的劃“×”(20分,每小題2分)

  1.( × ) 2.( √ ) 3.( √ ) 4.( × ) 5.( × )

  6.( √ ) 7.( √ ) 8.( × ) 9.( √ ) 10.( √ )

  三 、寫出下列程序的運行結果(36分,每小題6分)

  1. s=20 2.x=35 y=-4 s=-29 3.60,50,40,30,20,10,

  4.e C pr*am 5.word value:1234 6.love China! H w l

  high byte:12

  low byte:34

  word value:1274

  the result:3ca8

  四 、閱讀下列程序,在 處填入適當內(nèi)容,使程序完整(20分,每個空2分)

  1.(1) 3 (2) 2 (3)hm hl

  2.(4) str (5) str[i]=str[i+1] (6) str[i+1]=t

  3.(7) arr[i*n+j](或者arr[i*10+j])

  (8) i

  4.(9) *ptr1=arr[i] (10) *ptr2=arr[i]

【計算機二級C語言筆試歷年真題及答案】相關文章:

計算機二級考試C語言歷年真題及答案解析03-10

計算機二級考試C語言歷年真題09-26

計算機二級C語言真題及答案09-26

四川省計算機二級C語言筆試真題及答案03-29

2017年計算機二級c語言題庫歷年真題03-26

2016年計算機二級c語言真題及答案03-29

2016年計算機二級C語言考試真題及答案03-05

2024年計算機二級c語言考試真題及答案09-25

3月計算機等級考試二級c筆試真題01-22