<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. 試題

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

    時間:2025-04-24 22:15:01 試題 我要投稿

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

      雖然現在離全國計算機等級考試還有兩個月的時間,小編提早為大家整理了以下的計算機二級C語言考試卷,希望對大家有幫助!

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

      一、選擇題

      1)軟件是指

      A)程序 B)程序和文檔C)算法加數據結構 D)程序、數據和相關文檔的集合

      2)軟件調試的目的是 A)發現錯誤 B)改正錯誤C)改善軟件的性能 D)驗證軟件的正確性

      3)在面向對象方法中,實現信息隱蔽是依靠 A)對象的繼承 B)對象的多態C)對象的封裝 D)對象的分類

      4)下列敘述中,不符合良好程序設計風格的是

      A)程序的效率第一,清晰第二 B)程序的可讀性好C)程序中有必要的注釋 D)輸入數據前要有提示信息

      5)下列敘述中正確的是 A)程序執行的效率與數據的存儲結構密切相關B)程序執行的效率只取決于程序的控制結構

      C)程序執行的效率只取決于所處理的數據量D)以上三種說法都不對

      6)下列敘述中正確的是A)數據的邏輯結構與存儲結構必定是一一對應的

      B)由于計算機存儲空間是向量式的存儲結構,因此,數據的存儲結構一定是線性結構

      C)程序設計語言中的數組一般是順序存儲結構,因此,利用數組只能處理線線結構 D)以上三種說法都不對

      7)冒泡排序在最壞情況下的比較次數是 A)n(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2

      (8)一棵二叉樹中共有70個葉子結點與80個度為1的結點,則該二叉樹中的總結點數為

      A)219 B)221 C)229 D)231

      9)下列敘述中正確的是A)數據庫系統是一個獨立的系統,不需要操作系統的支持

      B)數據庫技術的根本目標是要解決數據的共享問題 C)數據庫管理系統就是數據庫系統 D)以上三種說法都不對

      10)下列敘述中正確的是 A)為了建立一個關系,首先要構造數據的邏輯關系

      B)表示關系的二維表中各元組的每一個分量還可以分成若干數據項

      C)一個關系的屬性名表稱為關系模式 D)一個關系可以包括多個二維表

      (11)C語言源程序名的后綴是 A).exe B).C C).obj D).cp

      (12)可在C程序中用做用戶標識符的一組標識符是 A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Bigl

      (13)以下選項中,合法的一組C語言數值常量是 A)028 B)12. C).177

      D)0x8A. 5e-3 OXa23 4c1.5 10,000-0xf 4.5e0 Oabc 3.e5

      (14)以下敘述中正確的是 A)C語言程序將從源程序中第一個函數開始執行

      B)可以在程序中由用戶指定任意一個函數作為主函數,程序將從此開始執行

      C)C語言規定必須用main作為主函數名,程序將從此開始執行,在此結束

      D)main可作為用戶標識符,用以命名任意一個函數作為主函數

      (15)若在定義語句:int a,b,c,*p=&c;之后,接著執行以下選項中的語句,則能正確執行的語句是

      A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c); C)scanf("%d",p); D)scanf("%d",&p);

      (16)以下關于long、int和short類型數據占用內存大小的敘述中正確的是

      A)均占4個字節 B)根據數據的大小來決定所占內存的字節數 C)由用戶自己定義 D)由C語言編譯系統決定

      (17)若變量均已正確定義并賦值,以下合法的C語言賦值語句是

      A)x=y==5; B)x=n%2.5; C)x+n=I; D)x=5=4+1;

      (18)有以下程序段

      int j; float y; char name[50];

      scanf("-%f%s",&j,&y,name); 當執行上述程序段,從鍵盤上輸入55566 7777abc后,y的值為

      A)55566.0 B)566.0 C)7777.0 D)566777.0

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

      i=0;

      do printf("%d,",i);while(i++);

      printf("%d\n",i) 其輸出結果是 A)0,0 B)0,1 C)1,1 D)程序進入無限循環

      (20)有以下計算公式 若程序前面已在命令中包含math.h文件,不能夠正確計算上述公式的程序段是

      A)if(x>=0) y=sqrt(x); B)y=sqrt(x)else y=sqrt(-x); if(x<0) y=sqrt(-x);

      C)if(x>=0)y=sqrt(x); D)y=sqrt(x>=0?x:-x);If(x<0)y=sqrt(-x);

      (21)設有條件表達式:(EXP)?i++;j--,則以下表達式中(EXP)完全等價的是

      A)(EXP= =0) B)(EXP!=0) C)(EXP= =1) D)(EXP!=1)

      (22)有以下程序

      #include

      main()

      {int y=9;

      for( y>0;y--)

      if(y%3= =0) printf("%d",--y);0} 程序的運行結果是 A)741 B)963 C)852 D)875421

      (23)已有定義:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫字母的表達式是 A)isupper(c) B)’A’<=c<=’Z’C)’A’<=c&&c<=’Z’ D)c<=(‘2’-32)&&(‘a’-32)<=c

      (24)有以下程序

      #include

      main()

      {int i,j,m=55;

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

      for(j=3;j<=i;j++) m=m%j;

      printf("%d\n",m);} 程序的運行結果是 A)0 B)1 C)2 D)3

      (25)若函數調用時的實參為變量時,以下關于函數形參和實參的敘述中正確的是

      A)函數的實參和其對應的形參共占同一存儲單元 B)形參只是形式上的存在,不占用具體存儲單元

      C)同名的實參和形參占同一存儲單元 D)函數的形參和實參分別占用不同的存儲單元

      (26)已知字符’A’的ASCⅡ代碼值是65,字符變量c1的值是’A’,c2的值是’D’。執行語句printf("%d,%d",c1,c2-2);后,輸出結果是 A)A,B B)A,68 C)65,66 D)65,68

      (27)以下敘述中錯誤的是 A)改變函數形參的值,不會改變對應實參的值

      B)函數可以返回地址值 C)可以給指針變量賦一個整數作為地址值

      D)當在程序的開頭包含文件stdio.h時,可以給指針變量賦NULL

      (28)以下正確的字符串常量是 A)"\\\" B)’abc’ C)OlympicGames D)""

      (29)設有定義:char p[]={’1’,’2’,’3’},*q=p; ,以下不能計算出一個char型數據所占字節數的表達式是

      A)sizeof(p) B)sizeof(char) C) sizeof(*q) D)sizeof(p[0])

      (30)有以下函數

      int aaa(char *s)

      {char *t=s;

      while(*t++);

      t--;

      return(t-s);} 以下關于aaa函數的功能敘述正確的是

      A)求字符串s的長度 B)比較兩個串的大小 C)將串s復制到串t D)求字符串s所占字節數

      (31)若有定義語句:int a[3][6]; ,按在內存中的存放順序,a數組的第10個元素是

      A)a[0][4] B)a[1][3] C)a[0][3] D)a[1][4]

      (32)有以下程序

      #include

      void fun(char **p)

      {++p; printf("%s\n",*p);}

      main()

      {char *a[]={"Morning","Afternoon","Evening","Night"};

      fun(a);} 程序的運行結果是 A)Afternoon B)fternoon C)Morning D)orning

      33)若有定義語句:int a[2][3],*p[3]; ,則以下語句中正確的是

      A)p=a; B)p[0]=a; C) p[0]=&a[1][2]; D)p[1]=&a;

      (34)有以下程序

      #include

      void fun(int *a,int n)

      {int t,i,j;

      for(i=0;i

      for(j=i+1;j

      if (a}

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

      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,

      (35)有以下程序

      #include

      int fun(char s[])

      {int n=0;

      while(*s<=’9’&&*s>=’0’) {n=10*n+*s-’0’;s++;}

      return(n);}

      main()

      {char s[10]={’6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,’*’};

      printf("%d\n",fun(s));} 程序運行的結果是 A)9 B)61490 C)61 D)5

      36)當用戶要求輸入的字符串中含有空格時,應使用的輸入函數是 A)scanf() B)getchar() C)gets() D)getc()

      (37)以下關于字符串的敘述中正確的是

      A)C語言中有字符串類型的常量和變量 B)兩個字符串中的字符個數相同時才能進行字符串大小的比較

      C)可以用關系運算符對字符串的大小進行比較 D)空串一定比空格打頭的字符串小

      (38)有以下程序:

      #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

      (39)有以下程序

      #include

      #include

      void fun(char s[][10],int n)

      {char t;int i,j;

      for(i=0;i

      for(j=i+1,j

      if(s[0])>s[j][0]{t=s[0];s[0]=s[j][0];s[j][0]=t;}}

      main()

      {char ss[5][10]={“bcc”,”bbcc”,”xy”,”aaaacc””aabcc”}

      fun(ss,5); printf(“%s,%s\n”,ss[0],ss[4]);} 程序運行結果是

      A) xy,aaaacc B) aaaacc,xy C) xcc,aabcc D) acc,xabcc

      (40) 在一個C語言源程序文件中所定義的全局變量,其作用域為:

      A) 所在文件的全部范圍 B) 所在程序的全部范圍

      C) 所在函數的全部范圍 D) 由具體定義位置和extern 說明來決定范圍

      (41)有以下程序

      #include

      int a=1;

      int f(int c)

      {static int a=2;

      c=c+1;

      return (a++)+c;}

      main()

      { int i,k=0;

      for(i=0;i<2;i++){int a=3;k+=f(a);}

      k+=a;

      printf(“%d\n”,k);} 程序運行結果是 A) 14 B) 15 C) 16 D) 17

      (42)有以下程序

      #include

      void fun(int n,int *p)

      { int f1,f2;

      if(n==1||n==2) *p=1;

      else

      { fun(n-1,&f1); fun(n-2,&f2);

      *p=f1+f2;}}

      main()

      { int s;

      fun(3,&s); printf("%d\n",s);} 程序的運行結果是 A)2 B)3 C)4 D)5

      (43)若程序中有宏定義行:#define N 100 則以下敘述中正確的是

      A)宏定義行中定義了標識符N的值為整數100 B)在編譯程序對C源程序進行預處理時用100替換標識符N

      C) 對C源程序進行編譯時用100替換標識 D)在運行時用100替換標識符N

      (44)以下關于typedef的敘述錯誤的是 A)用typedef可以增加新類型

      B)typedef只是將已存在的類型用一個新的名字來代表C)用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名 D)用typedef為類型說明一個新名,通常可以增加程序的可讀性

      (45)有以下程序

      #include

      struct tt

      {int x;struct tt *y;} *p;

      struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};

      main()

      { int i;

      p=a;

      for(i=1;i<=2;i++) {printf("%d,",p->x); p=p->y;}} 程序的運行結果是 A)20,30, B)30,17 C)15,30, D)20,15,

      (46)有以下程序

      #include

      #include

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

      STU 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=b.score;

      return a;}

      main()

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

      d=f(c); printf("%s,%c,%2.0f,%2.0f\n",d.name,d.sex,d.score[0],d.score[1]);} 程序的運行結果是

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

      (47)設有以下定義

      union data

      { int d1; float d2; }demo;則下面敘述中錯誤的是

      A)變量demo與成員d2所占的內存字節數相同 B)變量demo中各成員的地址相同

      C)變量demo和各成員的地址相同 D)若給demo.d1賦99后, demo.d2中的值是99.0

      (48)有以下程序

      #include

      main()

      { int a=1,b=2,c=3,x;

      x=(a^b)&c; printf("%d\n",x);} 程序的運行結果是 A)0 B)1 C)2 D)3

      (49)讀取二進制文件的函數調用形式為:fread(buffer,size,count,fp); ,其中buffer代表的是

      A)一個文件指針,指向待讀取的文件 B)一個整型變量,代表待讀取的數據的字節數

      C)一個內存塊的首地址,代表讀入數據存放的地址 D)一個內存塊的字節數

      (50)有以下程序

      #include

      main()

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

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

      fwrite(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);} 程序的運行結果是

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

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

      (1) 軟件需求規格說明書應具有完整性、無歧義性、正確性、可驗證性、可修改性等特性,其中最重要的_[1]_______.

      (2) 在兩種基本測試方法中, _[2]_______測試的原則之一是保證所測模塊中每一個獨立路徑至少要執行一次.

      (3) 線性表的存儲結構主要分為順序存儲結構和鏈式存儲結構.隊列是一種特殊的線性表,循環隊列是隊列的_[3]_______存儲結構.

      (4) 對下列二叉樹進行中序遍歷的結果為_[4]_______

      F

      / \

      C E

      / \ \

      A D G

      / / \

      B H P

      (5) 在E-R圖中距形表示_[5]_______

      (6) 執行以下程序時輸入1234567,則輸出結果是_[6]_______.

      #include

      main()

      { int a=1,b;

      scanf("--",&a&b);printf("%d %d\n",a,b);}

      (7) 以下程序的功能是:輸出a、b、c三個變量中的最小值.請填空。

      #include

      main()

      { int a,b,c,t1,t2;

      scanf("%d%d%d",&a,&b,&c);

      t1=a

      t2=c

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

      (8) 以下程序的輸出結果是_[9]_______.

      #include

      main()

      { int n=12345,d;

      while(n!=0){ d=n; printf("%d",d); n/=10;}}

      (9) 有以下程序段,且變量已正確定義和賦值

      for(s=1.0,k=1;k<=n;k++) s=s+1.0/(k*(k+1));

      printf("s=%f\n\n",s);

      請填空,使下面程序段的功能為完全相同

      s=1.0;k=1;

      while(_[10]_______){ s=s+1.0/(k*(k+1)); _[11]_______;}

      printf("s=%f\n\n",s);

      (10) 以下程序的輸出結果是_[12]_______.

      #include

      main()

      { int i;

      for(i='a';i<'f';i++,i++) printf("%c",i-'a'+'A');

      printf("\n");}

      (11) 以下程序的輸出結果是_[13]_______.

      #include

      #include

      char *fun(char *t)

      { char *p=t;

      return(p+strlen(t)/2);}

      main()

      { char *str="abcdefgh";

      str=fun(str);

      puts(str);}

      (12)以下程序中函數f的功能是在數組x的n個數(假定n個數互不相同)中找出最大最小數,將其中最小的數與第一個數對換,把最大的數與最后一個數對換.請填空.

      #include

      viod f(int x[],int n)

      { int p0,p1,i,j,t,m;

      i=j=x[0]; p0=p1=0;

      for(m=0;m

      { if(x[m]>i) {i=x[m]; p0=m;}

      else if(x[m]}

      t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;

      t=x[p1];x[p1]= _[14]_______; _[15]_______=t;}

      main()

      { int a[10],u;

      for(u=0;u<10;u++) scanf("%d",&a);

      f(a,10);

      for(u=0;u<10;u++) printf("%d",a);

      printf("\n");}

      (13)以下程序統計從終端輸入的字符中大寫字母的個數,num[0]中統計字母A的個數,num[1]中統計字母B的個數,其它依次類推.用#號結束輸入,請填空.

      #include

      #include

      main()

      { int num[26]={0},i; char c;

      while((_[16]_______)!='#')

      if(isupper(c)) num[c-‘A’]+= _[17]_______;

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

      Printf("%c:%d\n",i+'A',num);}

      (14)執行以下程序的輸出結果是_[18]_______.

      #include

      main()

      { int i,n[4]={1};

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

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

      (15) 以下程序的輸出結果是_[19]_______.

      #include

      #define M 5

      #define N M+M

      main()

      { int k;

      k=N*N*5; printf("%d\n",k);}

      (16)函數main()的功能是:在帶頭結點的單鏈表中查找數據域中值最小的結點.請填空

      #include

      struct node

      { int data;

      struct node *next;};

      int min(struct node *first)

      { strct node *p; int m;

      p=first->next; m=p->data;p=p->next;

      for(;p!=NULL;p=_[20]_______)

      if(p->datadata;

      return m;}

      【參考答案】

      一、選擇題

      1-5 DBCAA6-10 CCABA 11-15 BABCC

      16-20 DABBB21-25 BCBBD

      26-30 CCDAA31-35 BACDC

      36-37 CDDBC42-45 AABAD

      46-50 CDDCD

      二、填空題

      1、無歧義性2、白盒測試3、順序4、ACBDFEHGP5、實體集6、12 347、a:b8、c:t19、5432110、k<=n11、k++

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

    全國計算機二級C語言考試沖刺試題201708-17

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

    全國計算機二級考試C語言備考試題及答案09-18

    全國計算機二級《C語言》操作試題07-20

    2017全國計算機二級《C語言》考試題及答案10-22

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

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

    全國計算機二級《C語言》機考試題及答案09-22

    計算機二級考試試題C語言沖刺試題10-09

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人