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

試題

3月全國計算機(jī)等級考試二級C語言筆試真題

時間:2025-05-02 23:48:35 嘉璇 試題 我要投稿
  • 相關(guān)推薦

3月全國計算機(jī)等級考試二級C語言筆試真題

  在社會的各個領(lǐng)域,我們最熟悉的就是考試真題了,考試真題可以幫助主辦方了解考生某方面的知識或技能狀況。還在為找參考考試真題而苦惱嗎?下面是小編為大家收集的3月全國計算機(jī)等級考試二級C語言筆試真題,歡迎大家分享。

3月全國計算機(jī)等級考試二級C語言筆試真題

  3月全國計算機(jī)等級考試二級C語言筆試真題 1

  一、選擇題((1)—(10)每小題2分,(11)—(50)每題1分,共60分)下列各題A)、B)、C)、D)四個選項(xiàng)中,只有一個選項(xiàng)是正確的,請將正確選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。

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

  A)算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)

  B)算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量

  C)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的

  D)算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)

  (2)在結(jié)構(gòu)化程序設(shè)計中,模塊劃分的原則是(D)

  A)各模塊應(yīng)包括盡量多的功能

  B)各模塊的規(guī)模應(yīng)盡量大

  C)各模塊之間的聯(lián)系應(yīng)盡量緊密

  D)模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度

  (3)下列敘述中正確的是(A)

  A)軟件測試的主要目的是發(fā)現(xiàn)程序中的錯誤

  B)軟件測試的主要目的是確定程序中錯誤的位置

  C)為了提高軟件測試的效率,最好由程序編制者自己來完成軟件測試的工作

  D)軟件測試是證明軟件沒有錯誤

  (4)下面選項(xiàng)中不屬于面向?qū)ο蟪绦蛟O(shè)計特征的是(C)

  A)繼承性

  B)多態(tài)性

  C)類比性

  D)封裝性

  (5)下列對隊列的敘述正確的是(D)

  A)隊列屬于非線性表

  B)隊列按“先進(jìn)后出”原則組織數(shù)據(jù)

  C)隊列在隊尾刪除數(shù)據(jù)

  D)隊列按“先進(jìn)先出”原則組織數(shù)據(jù)

  (6)對下列二叉樹

  A

  B C

  D E F X

  Y Z

  進(jìn)行前序遍歷的結(jié)果為(C)

  A) DYBEAFCZX

  B) YDEBFZXCA

  C) ABDYECFXZ

  D) ABCDEFXYZ

  (7) 某二叉樹中有n個度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為(A)

  A) n+1

  B) n-1

  C) 2n

  D) n/2

  (8) 在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)的是(B)

  A) 并

  B)交

  C)投影

  D)笛卡兒乘積

  (9)在E-R圖中,用來表示實(shí)體之間聯(lián)系的圖形是(C)

  A) 矩形

  B)橢圓形

  C)菱形

  D)平行四邊形

  (10)下列敘述中錯誤的是(A)

  A) 在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致

  B) 數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題

  C) 數(shù)據(jù)庫設(shè)計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫

  D)數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持

  (11)算法中,對需要執(zhí)行的每一步操作,必須給出清楚、嚴(yán)格的規(guī)定,這屬于算法的(C)

  A)正當(dāng)性

  B)可行性

  C)確定性

  D)有窮性

  (12)下列敘述中錯誤的是(D)

  A)計算機(jī)不能直接執(zhí)行用C語言編寫的源程序

  B)C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個二進(jìn)制文件

  C)后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個二進(jìn)制文件

  D)后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行

  (13)按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是(B)

  A)大寫字母

  B)連接符

  C)數(shù)字字符

  D)下劃線

  (14)以下敘述中錯誤的是(C)

  A)C語言是一種結(jié)構(gòu)化程序設(shè)計語言

  B)結(jié)構(gòu)化程序有順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

  C)使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題

  D)結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法

  (15)對于一個正常運(yùn)行的C程序,以下敘述中正確的是(A)

  A)程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束

  B)程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束

  C)程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束

  D)程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束

  (16)設(shè)變量均已正確定義,若要通過scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)(D)

  A)10□X□20□Y〈回車〉

  B)10□X20□Y〈回車〉

  C)10□X〈回車〉

  D)10X〈回車〉

  20□Y〈回車〉 20Y〈回車〉

  (17)若有代數(shù)式(其中e僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達(dá)式是(C)

  A)sqrt(abs(n^x+e^x))

  B) sqrt(fabs(pow(n,x)+pow(x,e)))

  C)sqrt(fabs(pow(n,x)+exp(x)))

  D) sqrt(fabs(pow(x,n)+exp(x)))

  (18)設(shè)有定義:int k=0;,以下選項(xiàng)的四個表達(dá)式中與其他三個表達(dá)式的值不相同的是(A)

  A)k++

  B)k+=1

  C)++k

  D)k+1

  (19)有以下程序,其中%u表示按無符號整數(shù)輸出(B)

  main()

  {unsigned int x=0xFFFF; /* x的初值為十六進(jìn)制數(shù) */

  printf(“%u\n”,x);

  }

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

  A)-1

  B)65535

  C)32767

  D)0xFFFF

  (20)設(shè)變量x和y均已正確定義并賦值,以下if語句中,在編譯時將產(chǎn)生錯誤信息的是(C)

  A)if(x++);

  B)if(x>y&&y!=0);

  C)if(x>y) x- -

  D)if(y<0) {;}

  else y++;

  (21)以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時,值為0的表達(dá)式(D)

  A)x%2==1

  B)x/2

  C)x%2!=0

  D)x%2==0

  (22)以下敘述中正確的是(C)

  A)break語句只能用于switch語句體中

  B)continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)

  C)break 語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)

  D)在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

  (23)有以下程序(A)

  main()

  {int k=5,n=0;

  do

  {switch(k)

  {case1: case3:n+=1; break;

  default;n=0;k--;

  case2: case4:n+=2;k--;break;

  }

  printf(“%d”,n);

  }while(k>0&&n<5);

  }

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

  A)235

  B)0235

  C)02356

  D)2356

  (24)有以下程序

  mian()

  {int i,j;

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

  {for(j=i;j<4;j++) printf(“%d*%d=%d “,i,j,i*j);

  printf(“\n”);

  }

  }

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

  A) 1*1=1 1*2=2 1*3=3 B) 1*1=1 1*2=2 1*3=3

  2*1=2 2*2=4 2*2=4 2*3=6

  3*1=3 3*3=9

  C) 1*1=1 D) 1*1=1

  1*2=2 2*2=4 2*1=2 2*2=4

  1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9

  (25)以下合法的字符型常量是(A)

  A)”\x13”

  B)”\018”

  C)”65”

  D)”\n”

  (26)在C語言中,函數(shù)返回值的類型最終取決于(A)

  A)函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型

  B)return語句中表達(dá)式值的類型

  C)調(diào)用函數(shù)時主函數(shù)所傳遞的實(shí)參類型

  D)函數(shù)定義時形參的類型

  (27)已知大寫字母A的ASCII碼是65,小寫字母aASCII碼是97,以下不能將變量c中大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是(D)

  A)c=(c-A)&+’a’

  B)c=c+32

  C)c=c-‘A’+’a’

  D)c=(‘A’+c)&-‘a(chǎn)’

  (28)有以下函數(shù)

  int fun(char *s)

  {char *t=s;

  while(*t++);

  return(t-s);

  }

  該函數(shù)的功能是(B)

  A)比較兩個字符的大小

  B)計算s所指字符串占用內(nèi)存字節(jié)的個數(shù)

  C)計算s所指字符串的長度

  D)將s所指字符串復(fù)制到字符串t中

  (29)設(shè)已有定義:float x;則以下對指針變量p進(jìn)行定義且賦初值的語句中正確的是(D)

  A)float *p=1024;

  B)int *p=(float x);

  C)float p=&x;

  D)float *P=&x;

  (30)有以下程序

  #include

  main()

  {int n,*p=NULL;

  *p=&n;

  printf(“Input n:”); scanf(“%d”,&p); printf(“output n:”); printf(“%d\n”,p);

  }

  該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是(A)

  A)int n,*p=NULL;

  B)*p=&n;

  C)scanf(“%d”,&p)

  D)printf(“%d\n”,p);

  (31)以下程序中函數(shù)f的功能是:當(dāng)flag為1時,進(jìn)行有由小到大排序;當(dāng)flag為0時,進(jìn)行由大到小排序。

  void f(int b[],int n,int flag)

  {int i,j,t;

  for(i=0;i

  for (j=i+1;j

  if(flag?b[i]>b[j]:b[i]

  }

  main()

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

  f(&a[2],5,0); f(a,5,1);

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

  }

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

  A)1,2,3,4,5,6,7,8,9,10,

  B)3,4,5,6,7,2,1,8,9,10,

  C)5,4,3,2,1,6,7,8,9,10,

  D)10,9,8,7,6,5,4,3,2,1,

  (32)有以下程序

  void f(int b[])

  {int i;

  for(i=2;i<6;i++) b[i]*=2;

  }

  main()

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

  f(a);

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

  }

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

  A)1,2,3,4,5,6,7,8,9,10,

  B)1,2,6,8,10,12,7,8,9,10

  C)1,2,3,4,10,12,14,16,9,10,

  D)1,2,6,8,10,12,14,16,9,10,

  (33)有以下程序

  typedef struct{int b,p;}A;

  void f(A c) /*注意:c是結(jié)構(gòu)變量名 */

  {int j;

  c.b+=1; c.p+=2;

  }

  main()

  {int i;

  A a={1,2};

  f(a);

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

  }

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

  A)2,3

  B)2,4

  C)1,4

  D)1,2

  (34)有以下程序

  main()

  {int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t;

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

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

  for(k=j+1;k<4;k++)

  if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/

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

  }

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

  A)1,6,5,7,

  B)8,7,3,1,

  C)4,7,5,2,

  D)1,6,2,1,

  (35) 有以下程序

  main()

  {int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t;

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

  for(k=i+i;k<4;k++) if(a[i][i]

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

  }

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

  A)6,2,1,1,

  B)6,4,3,2,

  C)1,1,2,6,

  D)2,3,4,6,

  (36) 有以下程序

  void f(int *q)

  {int i=0;

  for( ; i<5;i++)(*q)++;

  }

  main()

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

  f(a);

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

  }

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

  A)2,2,3,4,5,

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

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

  D) 2,3,4,5,6,

  (37) 有以下程序

  #include

  main()

  {char p[20]={‘a(chǎn)’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”;

  strcpy(p+strlen(q),r); strcat(p,q);

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

  }

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

  A)20 9

  B)9 9

  C)20 11

  D)11 11

  (38) 有以下程序

  #include

  main()

  {char p[20]={‘a(chǎn)’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”

  strcat(p,r); Strcpy(p+strlen(q),q);

  Printf(“%d \n”,sizeof(p));

  }

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

  A)9

  B)6

  C)11

  D)7

  (39) 有以下程序

  #include

  main()

  void f(char p[][10], int n ) /* 字符串從小到大排序 */

  { char t[10]; int i,j;

  for(i=0;i

  for(j=i+1;j

  if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[i],t); }

  }

  main()

  {char p[5][10]={“abc”,”aabdfg”,”abbd”,”dcdbe”,”cd”};

  f(p,5);

  printf(“%d\n”,strlen(p[0]));

  }

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

  A) 2

  B) 4

  C) 6

  D) 3

  (40) 有以下程序

  void f(int n, int *r)

  {int r1=0;

  if(n%3==0) r1=n/3;

  else if(n%5==0) r1=n/5;

  else f(--n,&r1);

  *r=r1;

  }

  main()

  {int m=7,r;

  f(m,&r); printf(“%d\n,r”);

  }

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

  A) 2

  B) 1

  C)3

  D) 0

  (41)有以下程序

  main(int argc,char *argv[])

  {int n=0,i;

  for(i=1;i n=n*10+*argv[i]-‘0’;

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

  }

  編譯連接后生成可執(zhí)行文件tt.exe,若運(yùn)行時輸入以下命令行

  tt 12 345 678

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

  A) 12

  B) 12345

  C)12345678

  D) 136

  (42) 有以下程序

  int a=4;

  int f(int n)

  {int t=0; static int a=5;

  if(n%2) {int a=6; t+=a++;}

  else {int a=7 ;t+=a++;}

  return t+a++;

  }

  main()

  {int s=a,i=0;

  for(;i〈2;i++) s+=f(i);

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

  }

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

  A)24

  B)28

  C)32

  D)36

  (43) 有一個名為init.txt的文件,內(nèi)容如下:

  #define HDY(A,B) A/B

  # define PRINT(Y) Printf(“y=%d\n.,Y)

  有以下程序

  #include “init.txt”

  main()

  {int a=1,b=2,c=3,d=4,k;

  K=HDY(a+c,b+d);

  PRINT(K);

  }

  下面針對該程序的敘述正確的是(D)

  A)編譯有錯

  B)運(yùn)行出錯

  C)運(yùn)行結(jié)果為 y=0

  D) 運(yùn)行結(jié)果為 y=6

  (44) 有以下程序

  main()

  {char ch[]=“uvwxyz”,*pc;

  Pc=ch; printf(“%c\n”,*(pc+5));

  }

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

  A)z

  B)0

  C)元素ch[5]的地址

  D)字符y的地址

  (45) 有以下程序

  struct S {int n; int a[20];};

  void f(struct S *P)

  {int i,j,t;

  for(i=0;in-1;i++)

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

  if(p->a[i]>p->a[j]) { t=p->a[i]; p->a[i]=p->a[j]; p->a[j]=t; }

  }

  main()

  {int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};

  f(&s);

  for(i=0;i printf(“%d”,s.a[i]);

  }

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

  A)1,2,3,4,5,6,7,8,9,10,

  B)10,9,8,7,6,5,4,3,2,1,

  C)2,3,1,6,8,7,5,4,10,9,

  D)10,9,8,7,6,1,2,3,4,5,

  (46) 有以下程序

  struct S{ int n; int a[20]; };

  void f(int *a,int n)

  {int i;

  for(i=0;i a[i]+=i;

  }

  main()

  {int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};

  f(s.a, s.n);

  for(i=0;i printf(“%d”,s.a[i]);

  }

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

  A)2,4,3,9,12,12,11,11,18,9,

  B)3,4,2,7,9,8,6,5,11,10,

  C)2,3,1,6,8,7,5,4,10,9,

  D)1,2,3,6,8,7,5,4,10,9,

  (47) 有以下程序段

  typedef struct node { int data; struct node *next; } *NODE;

  NODE p;

  以下敘述正確的是(C)

  A)p是指向struct node結(jié)構(gòu)變量的指針的指針

  B)NODE p;語句出錯

  C)p是指向struct node結(jié)構(gòu)變量的指針

  D)p是struct node結(jié)構(gòu)變量

  (48)有以下程序

  main()

  {unsigned char a=2,b=4,c=5,d;

  d=a|b; d&=c; printf(“%d\n”,d); }

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

  A)3

  B)4

  C)5

  D)6

  (49)有以下程序

  #include

  main()

  {FILE *fp; int k,n,a[6]={1,2,3,4,5,6};

  fp=fopen(“d2.dat”,”w”);

  fprintf(fp,”%d%d\n”,a[0],a[1],a[2]); fprintf(fp, “%d%d%d \n”,a[3],a[4],a[5]);

  fclose(fp);

  fp=fopen(“d2.dat”,”r”);

  fscanf(fp, “%d%d”,&k,&n); printf(“%d%d\n”,k,n);

  fclose(fp);

  }

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

  A)1 2

  B)1 4

  C)123 4

  D) 123 456

  (50)有以下程序

  #include

  main ()

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

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

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

  fseek(fp,sizeof(int)*3,SEEK_SET);/*該語句使讀文件的位置指針從文件頭向后移動3個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)

  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,

  二.填空題(每空2分,共40分)請將每一個空的正確答案寫在答題卡[1]至[20]序號的橫線上,答在試卷上不得分。注意:以命令關(guān)鍵字填空的必須寫完整.

  (1) 在深度為7的滿二叉樹中,度為2的結(jié)點(diǎn)個數(shù)為___63____。

  (2) 軟件測試分為白箱(盒)測試和黑箱(盒)測試,等價類劃分法屬于__黑箱(或黑盒) 測試。

  (3) 在數(shù)據(jù)庫系統(tǒng)中,實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為 __數(shù)據(jù)庫管理系統(tǒng)__。

  (4) 軟件生命周期可分為多個階段,一般分為定義階段、開發(fā)階段和維護(hù)階段。編碼和測試屬于 開發(fā)_____階段。

  (5)在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用數(shù)據(jù)字典 對其中的圖形元素進(jìn)行確切解釋。

  (6)執(zhí)行以下程序后的輸出結(jié)果是 a=14 。

  main()

  {int a=10;

  a=(3*5,a+4); printf(“a=%d\n”,a);

  }

  (7) 當(dāng)執(zhí)行以下程序時,輸入1234567890<回車>,則其中while循環(huán)體將執(zhí)行 0 次。

  #include

  main()

  {char ch;

  While((ch=get))==’0’) printf(“#”);

  }

  (8)   (8)以下程序的運(yùn)行結(jié)果是 m=4 k=4 i=5 k=5 。

  int k=0;

  void fun(int m)

  { m+=k; k+=m; printf(“m=%d\n k=%d ”,m,k++);}

  main()

  { int i=4;

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

  }

  (9)   (9)以下程序的運(yùn)行結(jié)果是 #& 。

  main()

  {int a=2,b=7,c=5;

  switch(a>0)

  {case 1:switch(b<0)

  {case 1:switch(“@”); break;

  Case 2: printf(“!”); break;

  }

  case 0: switch(c==5)

  { case 0: printf(“*”); break;

  case 1: printf(“#”); break;

  case 2: printf(“$”); break;

  }

  default : printf(“&”);

  }

  printf(“\n”);

  }

  (10)以下程序的輸出結(jié)果是 9

  # include

  main()

  { printf(“%d\n”,strlen(“IBM\n012\1\\”));

  }

  (11)已定義char ch=”$”;int i=1,j;執(zhí)行j=!ch&&i++以后,i的值為1

  (12)以下程序的輸出結(jié)果是 5 4

  # include

  main()

  { char a[]={‘\1’,’\2’,’\3’,’\4’,’\0’};

  printf(“%d %d\n”,sizeof(a),srelen(a));

  }

  (13)設(shè)有定義語句:int a[][3]={{0},{1},{2}};,則數(shù)組元素a[1][2]的值為 0

  (14)以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>

  main()

  {int x[10],a[9],I;

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

  scanf(“%d”,&x[i]);

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

  a[i-1]=x[i]+ x[i-1] ;

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

  printf(“%d”,a[i]);

  printf(“\n”);

  (15) 以下程序的功能是:利用指針指向三個整型變量,并通過指針運(yùn)算找出三個數(shù)中的最大值,輸出到屏幕上,請?zhí)羁眨?/p>

  main()

  {int x,y,z,max,*px,*py,*pz,*pmax;

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

  px=&x;

  py=&y;

  pz=&z;

  pmax=&max;

  *pmax=*px(或*pmax=x) ;

  if(*pmax<*py)*pmax=*py;

  if(*pmax<*pz)*pmax=*pz;

  printf(“max=%d\n”,max);

  }

  (16)以下程序的輸出結(jié)果是 10

  int fun(int*x,int n)

  {if(n==0)

  return x[0];

  else return x[0]+fun(x+1,n-1);

  }

  main()

  {int a[]={1,2,3,4,5,6,7};

  printf(“%d\n”,fun(a,3));

  }

  (17)以下程序的輸出結(jié)果是 35

  # include

  main()

  {char *s1,*s2,m;

  s1=s2=(char*)malloc(sizeof(char));

  *s1=15;

  *s2=20;

  m=*s1+*s2;

  printf(“%d\n”,m);

  }

  (18)設(shè)有說明

  struct DATE{int year;int month; int day;};

  請寫出一條定義語句,該語句定義d為上述結(jié)構(gòu)體變量,并同時為其成員year、month、day 依次賦初值2006、10、1: struct DATA d={2006,10,1};

  (19) 設(shè)有定義:FILE *fw;,請將以下打開文件的語句補(bǔ)充完整,以便可以向文本文件readme.txt的最后續(xù)寫內(nèi)容。

  fw=fopen(“readme.txt”, "a" )

  3月全國計算機(jī)等級考試二級C語言筆試真題 2

  (1)算法的時間復(fù)雜度是指_______。

  A)執(zhí)行算法程序所需要的時間

  B)算法程序的長度

  C)算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)

  D)算法程序中的指令條數(shù)

  答案:C

  評析:所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量。

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

  A)線性表是線性結(jié)構(gòu)B)棧與隊列是非線性結(jié)構(gòu)

  C)線性鏈表是非線性結(jié)構(gòu)D)二叉樹是線性結(jié)構(gòu)

  答案:A

  評析:一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。

  (3)下面關(guān)于完全二叉樹的`敘述中,錯誤的是_________。

  A)除了最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值

  B)可能缺少若干個左右葉子結(jié)點(diǎn)

  C)完全二叉樹一般不是滿二叉樹

  D)具有結(jié)點(diǎn)的完全二叉樹的深度為[log2n]+1

  答案:B

  評析:滿二叉樹指除最后一層外每一層上所有結(jié)點(diǎn)都有兩個子結(jié)點(diǎn)的二叉樹。完全二叉樹指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值,在最后一層上只缺少右邊的若干子結(jié)點(diǎn)(葉子結(jié)點(diǎn))的二叉樹。

  3月全國計算機(jī)等級考試二級C語言筆試真題 3

  (1)下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是________。

  A)數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

  B)數(shù)據(jù)庫系統(tǒng)避免了一切冗余

  C)數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

  D)數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

  答案:A

  評析:由數(shù)據(jù)的共享自身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的'不同出現(xiàn)應(yīng)保持相同的值。

  (2)關(guān)系表中的每一橫行稱為一個________。

  A)元組B)字段C)屬性D)碼

  答案:A

  評析:在關(guān)系數(shù)據(jù)庫中,關(guān)系模型采用二維表來表示,簡稱“表”。二維表是由表框架及表元組組成。在表框架中,按行可以存放數(shù)據(jù),每行數(shù)據(jù)稱為元組。

  (3)數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是________。

  A)概念設(shè)計和邏輯設(shè)計B)模式設(shè)計和內(nèi)模式設(shè)計

  C)內(nèi)模式設(shè)計和物理設(shè)計D)結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計

  答案:A

  評析:數(shù)據(jù)庫設(shè)計可分為概念設(shè)計與邏輯設(shè)計。概念設(shè)計的目的是分析數(shù)據(jù)間內(nèi)在語義關(guān)聯(lián),在此基礎(chǔ)上建立一個數(shù)據(jù)的抽象模型。邏輯設(shè)計的主要工作是將ER圖轉(zhuǎn)換為指定的RDBMS中的關(guān)系模型。

  (4)請讀程序:

  #include

  main

  {

  int a;float b,c;

  scanf(“%2d%3P%4f’,&a,&b,&C);

  printf(” a=%d,b=%ec。%f ”,a,b,C);

  }

  若運(yùn)行時從鍵盤上輸入9876543210l,則上面程序的輸出結(jié)果是________。

  A)a=98,b=765,c=432 1

  B)a=1 0,b=432,c=8765

  C)a=98,b=765.000000,c=432 1.000000

  D)a=98,b=765.0,c=432 1.0

  答案:C

  評析:scanf把用戶從鍵盤錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實(shí)型變量b,把第6、7、8、9位存入單精度實(shí)型變量c,用戶錄入的第10位被scanf遺棄。這時變量a、b、c的值分別為:98、765.000000、4321.000000。

  (5)一個良好的算法由下面的基本結(jié)構(gòu)組成,但不包括__________。

  A)順序結(jié)構(gòu)B)選擇結(jié)構(gòu)C)循環(huán)結(jié)構(gòu)D)跳轉(zhuǎn)結(jié)構(gòu)

  答案:D

  評析:1966年,Bohra和Jacopini提出了以下三種基本結(jié)構(gòu),用這三種基本結(jié)構(gòu)作為表示一個良好算法的基本單元:1、順序結(jié)構(gòu);2、選擇結(jié)構(gòu);3、循環(huán)結(jié)構(gòu)。

  (6)請選出以下程序的輸出結(jié)果________。

  #include

  sub(x,y,z)

  int x,y,星符號z:

  {星符號z變化,所以此次函數(shù)被調(diào)用后,a的值為y-x=-5,同理可知,在sub(7,a,&b)后,b的值發(fā)生變化,其值為-5-7=-12,在sub(a,b,&C)后,c的值發(fā)生變化,其值為-12-(-5)=-7。

  (7)下面程序在屏幕上的輸出是________。

  main

  {

  printf(”ab c”);

  }

  A)ab c B)a c C)abc D)ab c

  答案:B

  評析:c語言中允許使用一種特殊形式的字符常量,、就是以一個“”開頭的字符序列,這樣的字符稱為“轉(zhuǎn)義字符”。常用的轉(zhuǎn)義字符有: ,換行;,水平制表;,退格;,回車。

  (8)若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達(dá)式是_______。

  A)pb=&x; B)pb=x; C)星符號pb=星符號、/)還包括自增自減運(yùn)算符(++、–),在c語言解析表達(dá)式時,它總是進(jìn)行貪婪咀嚼,這樣,該表達(dá)式就被解析為i++ ++ +i,顯然該表達(dá)式不合c語言語法。

  (10)若要用下面的程序片段使指針變量p指向一個存儲整型變量的動態(tài)存儲單元

  int星符號int) D)(int星符號)

  答案:D

  評析:不論p是指向什么類型的指針變量,都可以通過強(qiáng)制類型轉(zhuǎn)換的方法使之類型一致,強(qiáng)制類型轉(zhuǎn)換的格式為(數(shù)據(jù)類型+)。

  (11)下面程序輸出的結(jié)果是__________。

  main

  {

  int i=5,J=9,x;

  x=(I==j?i:(j=7));

  printf(” %d,%d”,I,J);

  }

  A)5,7 B)5,5 C)語法錯誤D)7,5

  答案:A

  評析:條件表達(dá)式的一般形式為:表達(dá)式I?表達(dá)式2:表達(dá)式3;先求解表達(dá)式1,若為真則求解表達(dá)式2;若表達(dá)式l的值為假,則求解表達(dá)式3。本題中先判斷i==j,不等,執(zhí)行j=7;然后執(zhí)行x=7。故本題為A。

【3月全國計算機(jī)等級考試二級C語言筆試真題】相關(guān)文章:

全國計算機(jī)等級考試二級C++筆試真題10-11

計算機(jī)等級考試二級C語言筆試選擇真題10-06

計算機(jī)等級考試二級C語言真題09-26

2006年9月全國計算機(jī)等級考試二級C語言筆試真題10-08

3月全國計算機(jī)等級考試二級C++筆試真題10-11

計算機(jī)二級考試C語言筆試填空真題09-10

計算機(jī)二級C語言筆試真題10-12

2009年9月計算機(jī)等級考試二級C語言筆試真題05-13

全國計算機(jī)等級考試二級C語言筆試試題06-29