<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦——考試網>計算機考試>計算機等級考試>計算機二級考試>C語言程序設計>

        國家二級計算機考試c語言題庫

        時間: 偉文27 分享

          在計算機國家二級的C語言考試中,有哪些題目類型呢?下面是學習啦小編給大家整理的二級計算機考試c語言選擇題及答案,供大家參閱!

          二級計算機考試c語言選擇題

          1.以下程序的輸出結果是( )。

          main()

          {int a[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;

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

          for(j=0;j<=i;j++)s+=a[i][j];

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

          }

          A.18

          B.19

          C.20

          D.21

          2.有下列程序:

          main()

          { int k=5;

          while(--k) printf("%d",k=1);

          printf("/n");

          )

          執行后的輸出結果是( )。

          A.1

          B.2

          C.4

          D.死循環

          3.若有定義:“int a[2][3];”,則對a數組的第i行第J列元素的正確引用為( )。

          A.*(*(a+i)+j)

          B.(a+i)[j]

          C.*(a+i+j)

          D.*(a+i)+j

          4.下列能正確進行字符串賦值的是( )。

          A.char s[5]={"ABCDE"};

          B.char s[5]={’A’,’B’,’C’,’D’,’E’}; 、

          C.char*S;S="ABCDE";

          D.char*s;printf("%《",s);

          5.現有以下結構體說明和變量定義,如圖所示,指針P、q、r分別指定一個鏈表中連續的3個結點。

          struct node

          {har data;

          struct node*next;)*P,*q,*r;

          現要將q和r所指結點交換前后位置,同時要保持鏈表的結構,下列不能完成此操作的語句是( )。

          A.q-:>next=r->next;p--:>next=r;rm:>next=q;

          B.q-:>next=r;q->next=r->next;r->next=q;

          C.q-:>next=r->next;r->next=q;p->next=r;

          D.q-:>next=q;p->next=r;q->next=r->next;

          6.有下列程序:

          main()

          {int i,j,x=0;

          for(i=0,i<2;i++)

          {x++;

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

          {if(j%2)continue;

          x++:

          )

          x++:

          }

          printf("x=%d\n"x);

          }

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

          A.x=4

          B.x=8

          C.x=6

          D.x=12

          7.有下列程序:

          int funl(double a){return a*=a;} 、

          int fun2(double x,double y)

          {double a=0,b=0;

          a=funl(x);b=funl(y);return(int)(a+b);

          )

          main()

          {double w;w=fun2(1.1,2.0),……}

          程序執行后變量w中的值是( )。 、

          A.5.21 B.5 C.5.0 D.0.0

          8.有下列程序:

          main()

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

          for(i=0;i<9;i+=2)s+=*(t+i);

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

          }

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

          A.45

          B.20

          C.25

          D.36

          9.有下列程序:

          int fun(int n)

          {if(n= =1))return l;

          else

          return(n+fun(n-1)):

          }

          main()

          { int x;

          seanf("%d",&x);x=fun(x);printf("%d\n",x);

          }

          執行程序時,給變量x輸入l0,程序的輸出結果是( )。

          A.55

          B.54

          C.65

          D.45

          10.有下列程序:

          int fun(int x[],int n)

          { static int sum=0,i;

          for(i=0;i   return sum;

          }

          main()

          {int a[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;

          s=fun(a,5)+fun(b,4);printf("%d\n",s);

          程序執行后的輸出結果是( )。 、

          A.45

          B.50

          C.60

          D.55

          11.有下列程序:

          main()

          f char*P[]={"3697","2584");

          int i,j;long num=0;

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

          {j=0;

          while(p[i][j]!=’

        國家二級計算機考試c語言題庫

        時間: 偉文27 分享

          在計算機國家二級的C語言考試中,有哪些題目類型呢?下面是學習啦小編給大家整理的二級計算機考試c語言選擇題及答案,供大家參閱!

          二級計算機考試c語言選擇題

          1.以下程序的輸出結果是( )。

          main()

          {int a[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;

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

          for(j=0;j<=i;j++)s+=a[i][j];

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

          }

          A.18

          B.19

          C.20

          D.21

          2.有下列程序:

          main()

          { int k=5;

          while(--k) printf("%d",k=1);

          printf("/n");

          )

          執行后的輸出結果是( )。

          A.1

          B.2

          C.4

          D.死循環

          3.若有定義:“int a[2][3];”,則對a數組的第i行第J列元素的正確引用為( )。

          A.*(*(a+i)+j)

          B.(a+i)[j]

          C.*(a+i+j)

          D.*(a+i)+j

          4.下列能正確進行字符串賦值的是( )。

          A.char s[5]={"ABCDE"};

          B.char s[5]={’A’,’B’,’C’,’D’,’E’}; 、

          C.char*S;S="ABCDE";

          D.char*s;printf("%《",s);

          5.現有以下結構體說明和變量定義,如圖所示,指針P、q、r分別指定一個鏈表中連續的3個結點。

          struct node

          {har data;

          struct node*next;)*P,*q,*r;

          現要將q和r所指結點交換前后位置,同時要保持鏈表的結構,下列不能完成此操作的語句是( )。

          A.q-:>next=r->next;p--:>next=r;rm:>next=q;

          B.q-:>next=r;q->next=r->next;r->next=q;

          C.q-:>next=r->next;r->next=q;p->next=r;

          D.q-:>next=q;p->next=r;q->next=r->next;

          6.有下列程序:

          main()

          {int i,j,x=0;

          for(i=0,i<2;i++)

          {x++;

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

          {if(j%2)continue;

          x++:

          )

          x++:

          }

          printf("x=%d\n"x);

          }

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

          A.x=4

          B.x=8

          C.x=6

          D.x=12

          7.有下列程序:

          int funl(double a){return a*=a;} 、

          int fun2(double x,double y)

          {double a=0,b=0;

          a=funl(x);b=funl(y);return(int)(a+b);

          )

          main()

          {double w;w=fun2(1.1,2.0),……}

          程序執行后變量w中的值是( )。 、

          A.5.21 B.5 C.5.0 D.0.0

          8.有下列程序:

          main()

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

          for(i=0;i<9;i+=2)s+=*(t+i);

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

          }

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

          A.45

          B.20

          C.25

          D.36

          9.有下列程序:

          int fun(int n)

          {if(n= =1))return l;

          else

          return(n+fun(n-1)):

          }

          main()

          { int x;

          seanf("%d",&x);x=fun(x);printf("%d\n",x);

          }

          執行程序時,給變量x輸入l0,程序的輸出結果是( )。

          A.55

          B.54

          C.65

          D.45

          10.有下列程序:

          int fun(int x[],int n)

          { static int sum=0,i;

          for(i=0;i   return sum;

          }

          main()

          {int a[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;

          s=fun(a,5)+fun(b,4);printf("%d\n",s);

          程序執行后的輸出結果是( )。 、

          A.45

          B.50

          C.60

          D.55

          11.有下列程序:

          main()

          f char*P[]={"3697","2584");

          int i,j;long num=0;

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

          {j=0;

          while(p[i][j]!=’\0’)

          {if((p[i][j]-t\0’)%2)num=10*num+p[j][j]-’0’;

          j+=2;

          )

          )

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

          )

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

          A.35 B.37 C.39 D.3975

          12.以下程序的輸出結果是( )。

          main()

          { char st[20]="hell0\O\t\\\”;

          printf("%d%d\n",strlen(st),sizeof(st));

          }

          A.9 9

          B.5 20

          C.13 20

          D.20 20

          13.若有下的定義:"int t[3][2];",能正確表示t數組元素地址的表達式是( )。

          A.&t[3][2]

          B.t[3]

          C.t[l]

          D.t[2][2]

          14.函數fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始點是( )。

          A.文件開始

          B.文件末尾

          C.文件當前位置

          D.以上都不對

          15.下述程序的輸出結果是( )。

          #include

          main()

          {int i;

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

          {if(i*i>=20)&&(i*i<=lOO))

          break;

          }

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

          )

          A.49

          B.36

          C.25

          D.64

          16.若有定義“int b[8],*p=b;”,則p+6表示( )。

          A.數組元素b[6]的值

          B.數組元素b[6]的地址

          C.數組元素b[7]的地址

          D.數組元素b[0]的值加上6

          17.設變量已正確定義,則以下能正確計算f=n!的程序是( )。

          A.f=0; for(i=1;i<=n;i++)f*=i;

          B.f=1;for(i=1;i  C.f=1;for(i=n;i>1;i++)f*=i;

          D.f=1;for(i=n;i>=2;i--)f*=i;

          18.下述程序執行的輸出結果是( )。

          #include

          main()

          {char a[2][4]; ,

          strcpy(a。"are");strcpy(a[1],"you");

          a[o][3]=’&’;

          printf("%s\n",a);

          )

          A.are&you

          B.you

          C.are

          D.&

          19.設x=011050,則x=x&01252的值是( )。

          A.0000001000101000

          B.1111110100011001

          C.0000001011100010

          D.1100000000101000

          20.在“文件包含,,預處理語句的使用形式中,當#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是( )。

          A.直接按系統設定的標準方式搜索目錄

          B.先在源程序所在的目錄搜索,如沒找到,再按系統設定的標準方式搜索

          C.僅僅搜索源程序所在目錄

          D.僅僅搜索當前目錄

          二級計算機考試c語言選擇題答案

          1.A。【解析】循環的作用是求行下標從l到2列下標從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][o]+a[2][1]+a[2][2]=3+4+5+6+0一18。

          2.A。【解析】在程序語句中,k的初始值為5,進行第l次while循環后,k自減l為4,非0,執行循環體里的printf語句,輸出k,此時k的值變為l。程序執行第2次循環時,k自減l變為0,為假,退出while循環語句。所以程序的最后結果為l。

          3.A。【解析】通過地址來引用數組元素的方法有下列5種:

          (1)a[i][j];(2)*(a[i]+j);(3)*(*(a+j)+j);(4)*(a[i][j]);(5)(&a[o][0]+3*i+j)。故A正確。

          4.C。【解析】選項A、B的空間不夠;字符串存儲要有結束符’\0’,且要占用一個空間,printf用來輸出 字符,不能輸入字符串。

          5.D。【解析】由題目中線性鏈表的定義可知,要將q和r所指的結點交換前后位置,只要使q指向r的后一個結點,P指向r結點,r指向q結點即可。而在選項D中,r->next=q,這時r指向的節點為q;p->next=r,這時P指向的節點為r;q->next:r->next,因為r節點已經指向q,所以執行這個語句后q又指向q,所以選項D不正確。

          6.B。【解析】在第1次外層for循環中,首先x++得到x=1。進入到內層for循環,只有循環j的值為奇數時,變量x的值才自加1,所以在內層for循環執行過程中,變量x的值自加兩次,當退出內層for循環時,x=3,然后執行x++,得到x=4。在進入執行第2次外層for循環中,首先x++得到x=5。進入到內層for循環,只有循環變量J的值為奇數時,變量X的值才自加1,所以在內層for循環執行過程中,變量X的值自加l兩次,當退出內層for循環時,x=7,然后執行x++,得到x=8,所以打印輸出變量x的值為8。

          7.C。【解析】子函數funl(double a)的功能是返回a的平方值的整數部分。子函數fun2(double X, double y)的功能是返回X的平方值的整數部分與Y的平方值的整數部分的和。又因為題中變量W的定義為double型,函數fun(2)的定義為int型,按照各類數值型數據間的混合運算,整型數據被轉換為實型數據。所以雙精度型變量w的值為5.0。

          8.c。【解析】在for循環語句中自變量i從0開始,每次自加2,執行s+=*(t+i)語句,因為C語言規定數組名做表達式相當于數組的首地址,也就是第一個元素的地址。因此,*(t+i)代表數組的第i+1個元素。所以程序運行的結果是l+3+5+7+9=25,即變量S的值等于25。

          9.A。【解析】本題在函數int fun(int n)的定義中又出現了對函數fun的調用,所以函數fun是遞歸函數。因而在主函數中調用x=fun(x)時,當輸入10賦給變量X時,遞歸調用的過程為

          fun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)

          =10+9++8+7+fun(6)=10+9++8+7+6+fun(6)

          =10+9++8+7+6+5+fun(4)

          =10+9++8+7+6+5+4+fun(3)

          =10+9++8+7+6+5+4+3+fun(2)

          =10+9++8+7+6+5+4+3+2+fun(1)

          =10+9++8+7+6+5+4+3+2=55

          10.C。【解析】在函數int fun(int x[],int n)的定義中,變量sum為一個靜態局部變量。由于在整個程序運行期間,靜態局部變量在內存中的靜態存儲中占據著永久的存儲單元。函數int fun(int x[],int n)的功能是求出數組x[]各個元素的和,所以在主函數中,調用函數fun(a,5)后,變量sum=1+2+3+4+5=15,當再次調用fun(b,4)后,變量sum=15+6+7+8+9=45,所以s=15+45=60。

          11.D。【解析】執行第一次for循環時,用表達式p[i][J]!=’\o’來判斷字符串數組指針P是否到達字符串的結尾,如果沒有到達,繼續執行while中的語句。if語句表示(p[i][j]-’\o’)除2的余數不為0時,即字符串所有奇數,執行后面的語句。所以退出第1次for的循環體時,輸出為397,執行第2次循環體。對字符串“2584”進行處理,輸出結果為5,因而最后輸出結果為3975。

          12.B。【解析】從題目中可知,’\O’、’\t’、’\\’分別為一個字符,而sizeof是求字節個數的函數,其中包括’\O’占的字節,strlen函數是求數組長度的函數;其以’\0’結束,因此strlen的值為5,sizeof的值為20。

          13.C。【解析】數組的下標是從0開始的,A中越界,行下標和列下標都不能越界;B中,雖然是個地址,但是也同樣越界了;選項c中表示的是第一個的首地址;選項D表示的為其元素的值,并不是地址。

          14.B。【解析]SEEK_SET代表文件的開始,SEEK_END代表文件末尾,SEEK_CUR代表文件當前位置。

          15.C。【解析】當if執行到第一個滿足(i*i>=20)&&(i*i<=100)這個條件的i出現時,通過break語句跳出循環,執行下面的prinlf語句。

          16.B。【解析】指針中存放的是變量的地址,指針也可以進行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節。所以題中p+6指的是將指針向后移動了6個存儲單元,即指向b[6],存放的是b[6]的地址。

          17.D。【解析】由n!的數字定義可知n!=n*(n-1)*(n-2)*…*1。在選項A中,由于f的初值為0,在for循環語句中,f依次乘以l,2,3,…,n,最后計算得到f=n!=0,所以選項A不正確。在選項B中,f的初值為l,在for循環語句中,f依次乘以l,2,3,…,(n-1),最后計算得到f=(n-1)!,所以選項B不正確。在選項C中,f的初值為l,在for循環語句中,f依次乘以n,n+1,n+2,……,所以選項C不正確。在選項D中,f的初值為l,在for循環語句中,f依次乘以n,n-1,n-2,…,2,最后計算得到f=n!,所以選項D正確。

          18.A。【解析]strcpy實現的功能是復制,該操作把are復制到a中,aE03 E33一’&’,且strcpy(aEl], "you")把you復制到a[l]中,故輸出a為“are&you”。

          19.A。【解析】本題主要考查按位與運算,x=Oll050的二進制形式為00010010000101000,Ol252的二進制形式為0000001010101010,兩者相與得0000001000101000。

          20.B。【解析】#include”文件名”,預處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統指定的標準目錄搜索。


        看了“國家二級計算機考試c語言題庫”的人還看了:

        1.2015年計算機二級C語言測試題及答案

        2.計算機二級c語言考試題庫及答案

        3.2015年計算機二級C語言測試題及答案解析

        4.全國計算機c語言二級考試題庫

        5.2015年全國計算機考試二級C語言模擬卷

        6.全國計算機二級c語言考試題

        ’)

          {if((p[i][j]-t

        國家二級計算機考試c語言題庫

        時間: 偉文27 分享

          在計算機國家二級的C語言考試中,有哪些題目類型呢?下面是學習啦小編給大家整理的二級計算機考試c語言選擇題及答案,供大家參閱!

          二級計算機考試c語言選擇題

          1.以下程序的輸出結果是( )。

          main()

          {int a[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;

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

          for(j=0;j<=i;j++)s+=a[i][j];

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

          }

          A.18

          B.19

          C.20

          D.21

          2.有下列程序:

          main()

          { int k=5;

          while(--k) printf("%d",k=1);

          printf("/n");

          )

          執行后的輸出結果是( )。

          A.1

          B.2

          C.4

          D.死循環

          3.若有定義:“int a[2][3];”,則對a數組的第i行第J列元素的正確引用為( )。

          A.*(*(a+i)+j)

          B.(a+i)[j]

          C.*(a+i+j)

          D.*(a+i)+j

          4.下列能正確進行字符串賦值的是( )。

          A.char s[5]={"ABCDE"};

          B.char s[5]={’A’,’B’,’C’,’D’,’E’}; 、

          C.char*S;S="ABCDE";

          D.char*s;printf("%《",s);

          5.現有以下結構體說明和變量定義,如圖所示,指針P、q、r分別指定一個鏈表中連續的3個結點。

          struct node

          {har data;

          struct node*next;)*P,*q,*r;

          現要將q和r所指結點交換前后位置,同時要保持鏈表的結構,下列不能完成此操作的語句是( )。

          A.q-:>next=r->next;p--:>next=r;rm:>next=q;

          B.q-:>next=r;q->next=r->next;r->next=q;

          C.q-:>next=r->next;r->next=q;p->next=r;

          D.q-:>next=q;p->next=r;q->next=r->next;

          6.有下列程序:

          main()

          {int i,j,x=0;

          for(i=0,i<2;i++)

          {x++;

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

          {if(j%2)continue;

          x++:

          )

          x++:

          }

          printf("x=%d\n"x);

          }

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

          A.x=4

          B.x=8

          C.x=6

          D.x=12

          7.有下列程序:

          int funl(double a){return a*=a;} 、

          int fun2(double x,double y)

          {double a=0,b=0;

          a=funl(x);b=funl(y);return(int)(a+b);

          )

          main()

          {double w;w=fun2(1.1,2.0),……}

          程序執行后變量w中的值是( )。 、

          A.5.21 B.5 C.5.0 D.0.0

          8.有下列程序:

          main()

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

          for(i=0;i<9;i+=2)s+=*(t+i);

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

          }

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

          A.45

          B.20

          C.25

          D.36

          9.有下列程序:

          int fun(int n)

          {if(n= =1))return l;

          else

          return(n+fun(n-1)):

          }

          main()

          { int x;

          seanf("%d",&x);x=fun(x);printf("%d\n",x);

          }

          執行程序時,給變量x輸入l0,程序的輸出結果是( )。

          A.55

          B.54

          C.65

          D.45

          10.有下列程序:

          int fun(int x[],int n)

          { static int sum=0,i;

          for(i=0;i   return sum;

          }

          main()

          {int a[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;

          s=fun(a,5)+fun(b,4);printf("%d\n",s);

          程序執行后的輸出結果是( )。 、

          A.45

          B.50

          C.60

          D.55

          11.有下列程序:

          main()

          f char*P[]={"3697","2584");

          int i,j;long num=0;

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

          {j=0;

          while(p[i][j]!=’\0’)

          {if((p[i][j]-t\0’)%2)num=10*num+p[j][j]-’0’;

          j+=2;

          )

          )

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

          )

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

          A.35 B.37 C.39 D.3975

          12.以下程序的輸出結果是( )。

          main()

          { char st[20]="hell0\O\t\\\”;

          printf("%d%d\n",strlen(st),sizeof(st));

          }

          A.9 9

          B.5 20

          C.13 20

          D.20 20

          13.若有下的定義:"int t[3][2];",能正確表示t數組元素地址的表達式是( )。

          A.&t[3][2]

          B.t[3]

          C.t[l]

          D.t[2][2]

          14.函數fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始點是( )。

          A.文件開始

          B.文件末尾

          C.文件當前位置

          D.以上都不對

          15.下述程序的輸出結果是( )。

          #include

          main()

          {int i;

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

          {if(i*i>=20)&&(i*i<=lOO))

          break;

          }

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

          )

          A.49

          B.36

          C.25

          D.64

          16.若有定義“int b[8],*p=b;”,則p+6表示( )。

          A.數組元素b[6]的值

          B.數組元素b[6]的地址

          C.數組元素b[7]的地址

          D.數組元素b[0]的值加上6

          17.設變量已正確定義,則以下能正確計算f=n!的程序是( )。

          A.f=0; for(i=1;i<=n;i++)f*=i;

          B.f=1;for(i=1;i  C.f=1;for(i=n;i>1;i++)f*=i;

          D.f=1;for(i=n;i>=2;i--)f*=i;

          18.下述程序執行的輸出結果是( )。

          #include

          main()

          {char a[2][4]; ,

          strcpy(a。"are");strcpy(a[1],"you");

          a[o][3]=’&’;

          printf("%s\n",a);

          )

          A.are&you

          B.you

          C.are

          D.&

          19.設x=011050,則x=x&01252的值是( )。

          A.0000001000101000

          B.1111110100011001

          C.0000001011100010

          D.1100000000101000

          20.在“文件包含,,預處理語句的使用形式中,當#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是( )。

          A.直接按系統設定的標準方式搜索目錄

          B.先在源程序所在的目錄搜索,如沒找到,再按系統設定的標準方式搜索

          C.僅僅搜索源程序所在目錄

          D.僅僅搜索當前目錄

          二級計算機考試c語言選擇題答案

          1.A。【解析】循環的作用是求行下標從l到2列下標從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][o]+a[2][1]+a[2][2]=3+4+5+6+0一18。

          2.A。【解析】在程序語句中,k的初始值為5,進行第l次while循環后,k自減l為4,非0,執行循環體里的printf語句,輸出k,此時k的值變為l。程序執行第2次循環時,k自減l變為0,為假,退出while循環語句。所以程序的最后結果為l。

          3.A。【解析】通過地址來引用數組元素的方法有下列5種:

          (1)a[i][j];(2)*(a[i]+j);(3)*(*(a+j)+j);(4)*(a[i][j]);(5)(&a[o][0]+3*i+j)。故A正確。

          4.C。【解析】選項A、B的空間不夠;字符串存儲要有結束符’\0’,且要占用一個空間,printf用來輸出 字符,不能輸入字符串。

          5.D。【解析】由題目中線性鏈表的定義可知,要將q和r所指的結點交換前后位置,只要使q指向r的后一個結點,P指向r結點,r指向q結點即可。而在選項D中,r->next=q,這時r指向的節點為q;p->next=r,這時P指向的節點為r;q->next:r->next,因為r節點已經指向q,所以執行這個語句后q又指向q,所以選項D不正確。

          6.B。【解析】在第1次外層for循環中,首先x++得到x=1。進入到內層for循環,只有循環j的值為奇數時,變量x的值才自加1,所以在內層for循環執行過程中,變量x的值自加兩次,當退出內層for循環時,x=3,然后執行x++,得到x=4。在進入執行第2次外層for循環中,首先x++得到x=5。進入到內層for循環,只有循環變量J的值為奇數時,變量X的值才自加1,所以在內層for循環執行過程中,變量X的值自加l兩次,當退出內層for循環時,x=7,然后執行x++,得到x=8,所以打印輸出變量x的值為8。

          7.C。【解析】子函數funl(double a)的功能是返回a的平方值的整數部分。子函數fun2(double X, double y)的功能是返回X的平方值的整數部分與Y的平方值的整數部分的和。又因為題中變量W的定義為double型,函數fun(2)的定義為int型,按照各類數值型數據間的混合運算,整型數據被轉換為實型數據。所以雙精度型變量w的值為5.0。

          8.c。【解析】在for循環語句中自變量i從0開始,每次自加2,執行s+=*(t+i)語句,因為C語言規定數組名做表達式相當于數組的首地址,也就是第一個元素的地址。因此,*(t+i)代表數組的第i+1個元素。所以程序運行的結果是l+3+5+7+9=25,即變量S的值等于25。

          9.A。【解析】本題在函數int fun(int n)的定義中又出現了對函數fun的調用,所以函數fun是遞歸函數。因而在主函數中調用x=fun(x)時,當輸入10賦給變量X時,遞歸調用的過程為

          fun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)

          =10+9++8+7+fun(6)=10+9++8+7+6+fun(6)

          =10+9++8+7+6+5+fun(4)

          =10+9++8+7+6+5+4+fun(3)

          =10+9++8+7+6+5+4+3+fun(2)

          =10+9++8+7+6+5+4+3+2+fun(1)

          =10+9++8+7+6+5+4+3+2=55

          10.C。【解析】在函數int fun(int x[],int n)的定義中,變量sum為一個靜態局部變量。由于在整個程序運行期間,靜態局部變量在內存中的靜態存儲中占據著永久的存儲單元。函數int fun(int x[],int n)的功能是求出數組x[]各個元素的和,所以在主函數中,調用函數fun(a,5)后,變量sum=1+2+3+4+5=15,當再次調用fun(b,4)后,變量sum=15+6+7+8+9=45,所以s=15+45=60。

          11.D。【解析】執行第一次for循環時,用表達式p[i][J]!=’\o’來判斷字符串數組指針P是否到達字符串的結尾,如果沒有到達,繼續執行while中的語句。if語句表示(p[i][j]-’\o’)除2的余數不為0時,即字符串所有奇數,執行后面的語句。所以退出第1次for的循環體時,輸出為397,執行第2次循環體。對字符串“2584”進行處理,輸出結果為5,因而最后輸出結果為3975。

          12.B。【解析】從題目中可知,’\O’、’\t’、’\\’分別為一個字符,而sizeof是求字節個數的函數,其中包括’\O’占的字節,strlen函數是求數組長度的函數;其以’\0’結束,因此strlen的值為5,sizeof的值為20。

          13.C。【解析】數組的下標是從0開始的,A中越界,行下標和列下標都不能越界;B中,雖然是個地址,但是也同樣越界了;選項c中表示的是第一個的首地址;選項D表示的為其元素的值,并不是地址。

          14.B。【解析]SEEK_SET代表文件的開始,SEEK_END代表文件末尾,SEEK_CUR代表文件當前位置。

          15.C。【解析】當if執行到第一個滿足(i*i>=20)&&(i*i<=100)這個條件的i出現時,通過break語句跳出循環,執行下面的prinlf語句。

          16.B。【解析】指針中存放的是變量的地址,指針也可以進行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節。所以題中p+6指的是將指針向后移動了6個存儲單元,即指向b[6],存放的是b[6]的地址。

          17.D。【解析】由n!的數字定義可知n!=n*(n-1)*(n-2)*…*1。在選項A中,由于f的初值為0,在for循環語句中,f依次乘以l,2,3,…,n,最后計算得到f=n!=0,所以選項A不正確。在選項B中,f的初值為l,在for循環語句中,f依次乘以l,2,3,…,(n-1),最后計算得到f=(n-1)!,所以選項B不正確。在選項C中,f的初值為l,在for循環語句中,f依次乘以n,n+1,n+2,……,所以選項C不正確。在選項D中,f的初值為l,在for循環語句中,f依次乘以n,n-1,n-2,…,2,最后計算得到f=n!,所以選項D正確。

          18.A。【解析]strcpy實現的功能是復制,該操作把are復制到a中,aE03 E33一’&’,且strcpy(aEl], "you")把you復制到a[l]中,故輸出a為“are&you”。

          19.A。【解析】本題主要考查按位與運算,x=Oll050的二進制形式為00010010000101000,Ol252的二進制形式為0000001010101010,兩者相與得0000001000101000。

          20.B。【解析】#include”文件名”,預處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統指定的標準目錄搜索。


        看了“國家二級計算機考試c語言題庫”的人還看了:

        1.2015年計算機二級C語言測試題及答案

        2.計算機二級c語言考試題庫及答案

        3.2015年計算機二級C語言測試題及答案解析

        4.全國計算機c語言二級考試題庫

        5.2015年全國計算機考試二級C語言模擬卷

        6.全國計算機二級c語言考試題

        ’)%2)num=10*num+p[j][j]-’0’;

          j+=2;

          )

          )

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

          )

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

          A.35 B.37 C.39 D.3975

          12.以下程序的輸出結果是( )。

          main()

          { char st[20]="hell0\O\t\\”;

          printf("%d%d\n",strlen(st),sizeof(st));

          }

          A.9 9

          B.5 20

          C.13 20

          D.20 20

          13.若有下的定義:"int t[3][2];",能正確表示t數組元素地址的表達式是( )。

          A.&t[3][2]

          B.t[3]

          C.t[l]

          D.t[2][2]

          14.函數fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始點是( )。

          A.文件開始

          B.文件末尾

          C.文件當前位置

          D.以上都不對

          15.下述程序的輸出結果是( )。

          #include

          main()

          {int i;

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

          {if(i*i>=20)&&(i*i<=lOO))

          break;

          }

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

          )

          A.49

          B.36

          C.25

          D.64

          16.若有定義“int b[8],*p=b;”,則p+6表示( )。

          A.數組元素b[6]的值

          B.數組元素b[6]的地址

          C.數組元素b[7]的地址

          D.數組元素b[0]的值加上6

          17.設變量已正確定義,則以下能正確計算f=n!的程序是( )。

          A.f=0; for(i=1;i<=n;i++)f*=i;

          B.f=1;for(i=1;i  C.f=1;for(i=n;i>1;i++)f*=i;

          D.f=1;for(i=n;i>=2;i--)f*=i;

          18.下述程序執行的輸出結果是( )。

          #include

          main()

          {char a[2][4]; ,

          strcpy(a。"are");strcpy(a[1],"you");

          a[o][3]=’&’;

          printf("%s\n",a);

          )

          A.are&you

          B.you

          C.are

          D.&

          19.設x=011050,則x=x&01252的值是( )。

          A.0000001000101000

          B.1111110100011001

          C.0000001011100010

          D.1100000000101000

          20.在“文件包含,,預處理語句的使用形式中,當#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是( )。

          A.直接按系統設定的標準方式搜索目錄

          B.先在源程序所在的目錄搜索,如沒找到,再按系統設定的標準方式搜索

          C.僅僅搜索源程序所在目錄

          D.僅僅搜索當前目錄

          二級計算機考試c語言選擇題答案

          1.A。【解析】循環的作用是求行下標從l到2列下標從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][o]+a[2][1]+a[2][2]=3+4+5+6+0一18。

          2.A。【解析】在程序語句中,k的初始值為5,進行第l次while循環后,k自減l為4,非0,執行循環體里的printf語句,輸出k,此時k的值變為l。程序執行第2次循環時,k自減l變為0,為假,退出while循環語句。所以程序的最后結果為l。

          3.A。【解析】通過地址來引用數組元素的方法有下列5種:

          (1)a[i][j];(2)*(a[i]+j);(3)*(*(a+j)+j);(4)*(a[i][j]);(5)(&a[o][0]+3*i+j)。故A正確。

          4.C。【解析】選項A、B的空間不夠;字符串存儲要有結束符’

        國家二級計算機考試c語言題庫

        時間: 偉文27 分享

          在計算機國家二級的C語言考試中,有哪些題目類型呢?下面是學習啦小編給大家整理的二級計算機考試c語言選擇題及答案,供大家參閱!

          二級計算機考試c語言選擇題

          1.以下程序的輸出結果是( )。

          main()

          {int a[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;

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

          for(j=0;j<=i;j++)s+=a[i][j];

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

          }

          A.18

          B.19

          C.20

          D.21

          2.有下列程序:

          main()

          { int k=5;

          while(--k) printf("%d",k=1);

          printf("/n");

          )

          執行后的輸出結果是( )。

          A.1

          B.2

          C.4

          D.死循環

          3.若有定義:“int a[2][3];”,則對a數組的第i行第J列元素的正確引用為( )。

          A.*(*(a+i)+j)

          B.(a+i)[j]

          C.*(a+i+j)

          D.*(a+i)+j

          4.下列能正確進行字符串賦值的是( )。

          A.char s[5]={"ABCDE"};

          B.char s[5]={’A’,’B’,’C’,’D’,’E’}; 、

          C.char*S;S="ABCDE";

          D.char*s;printf("%《",s);

          5.現有以下結構體說明和變量定義,如圖所示,指針P、q、r分別指定一個鏈表中連續的3個結點。

          struct node

          {har data;

          struct node*next;)*P,*q,*r;

          現要將q和r所指結點交換前后位置,同時要保持鏈表的結構,下列不能完成此操作的語句是( )。

          A.q-:>next=r->next;p--:>next=r;rm:>next=q;

          B.q-:>next=r;q->next=r->next;r->next=q;

          C.q-:>next=r->next;r->next=q;p->next=r;

          D.q-:>next=q;p->next=r;q->next=r->next;

          6.有下列程序:

          main()

          {int i,j,x=0;

          for(i=0,i<2;i++)

          {x++;

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

          {if(j%2)continue;

          x++:

          )

          x++:

          }

          printf("x=%d\n"x);

          }

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

          A.x=4

          B.x=8

          C.x=6

          D.x=12

          7.有下列程序:

          int funl(double a){return a*=a;} 、

          int fun2(double x,double y)

          {double a=0,b=0;

          a=funl(x);b=funl(y);return(int)(a+b);

          )

          main()

          {double w;w=fun2(1.1,2.0),……}

          程序執行后變量w中的值是( )。 、

          A.5.21 B.5 C.5.0 D.0.0

          8.有下列程序:

          main()

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

          for(i=0;i<9;i+=2)s+=*(t+i);

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

          }

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

          A.45

          B.20

          C.25

          D.36

          9.有下列程序:

          int fun(int n)

          {if(n= =1))return l;

          else

          return(n+fun(n-1)):

          }

          main()

          { int x;

          seanf("%d",&x);x=fun(x);printf("%d\n",x);

          }

          執行程序時,給變量x輸入l0,程序的輸出結果是( )。

          A.55

          B.54

          C.65

          D.45

          10.有下列程序:

          int fun(int x[],int n)

          { static int sum=0,i;

          for(i=0;i   return sum;

          }

          main()

          {int a[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;

          s=fun(a,5)+fun(b,4);printf("%d\n",s);

          程序執行后的輸出結果是( )。 、

          A.45

          B.50

          C.60

          D.55

          11.有下列程序:

          main()

          f char*P[]={"3697","2584");

          int i,j;long num=0;

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

          {j=0;

          while(p[i][j]!=’\0’)

          {if((p[i][j]-t\0’)%2)num=10*num+p[j][j]-’0’;

          j+=2;

          )

          )

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

          )

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

          A.35 B.37 C.39 D.3975

          12.以下程序的輸出結果是( )。

          main()

          { char st[20]="hell0\O\t\\\”;

          printf("%d%d\n",strlen(st),sizeof(st));

          }

          A.9 9

          B.5 20

          C.13 20

          D.20 20

          13.若有下的定義:"int t[3][2];",能正確表示t數組元素地址的表達式是( )。

          A.&t[3][2]

          B.t[3]

          C.t[l]

          D.t[2][2]

          14.函數fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始點是( )。

          A.文件開始

          B.文件末尾

          C.文件當前位置

          D.以上都不對

          15.下述程序的輸出結果是( )。

          #include

          main()

          {int i;

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

          {if(i*i>=20)&&(i*i<=lOO))

          break;

          }

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

          )

          A.49

          B.36

          C.25

          D.64

          16.若有定義“int b[8],*p=b;”,則p+6表示( )。

          A.數組元素b[6]的值

          B.數組元素b[6]的地址

          C.數組元素b[7]的地址

          D.數組元素b[0]的值加上6

          17.設變量已正確定義,則以下能正確計算f=n!的程序是( )。

          A.f=0; for(i=1;i<=n;i++)f*=i;

          B.f=1;for(i=1;i  C.f=1;for(i=n;i>1;i++)f*=i;

          D.f=1;for(i=n;i>=2;i--)f*=i;

          18.下述程序執行的輸出結果是( )。

          #include

          main()

          {char a[2][4]; ,

          strcpy(a。"are");strcpy(a[1],"you");

          a[o][3]=’&’;

          printf("%s\n",a);

          )

          A.are&you

          B.you

          C.are

          D.&

          19.設x=011050,則x=x&01252的值是( )。

          A.0000001000101000

          B.1111110100011001

          C.0000001011100010

          D.1100000000101000

          20.在“文件包含,,預處理語句的使用形式中,當#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是( )。

          A.直接按系統設定的標準方式搜索目錄

          B.先在源程序所在的目錄搜索,如沒找到,再按系統設定的標準方式搜索

          C.僅僅搜索源程序所在目錄

          D.僅僅搜索當前目錄

          二級計算機考試c語言選擇題答案

          1.A。【解析】循環的作用是求行下標從l到2列下標從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][o]+a[2][1]+a[2][2]=3+4+5+6+0一18。

          2.A。【解析】在程序語句中,k的初始值為5,進行第l次while循環后,k自減l為4,非0,執行循環體里的printf語句,輸出k,此時k的值變為l。程序執行第2次循環時,k自減l變為0,為假,退出while循環語句。所以程序的最后結果為l。

          3.A。【解析】通過地址來引用數組元素的方法有下列5種:

          (1)a[i][j];(2)*(a[i]+j);(3)*(*(a+j)+j);(4)*(a[i][j]);(5)(&a[o][0]+3*i+j)。故A正確。

          4.C。【解析】選項A、B的空間不夠;字符串存儲要有結束符’\0’,且要占用一個空間,printf用來輸出 字符,不能輸入字符串。

          5.D。【解析】由題目中線性鏈表的定義可知,要將q和r所指的結點交換前后位置,只要使q指向r的后一個結點,P指向r結點,r指向q結點即可。而在選項D中,r->next=q,這時r指向的節點為q;p->next=r,這時P指向的節點為r;q->next:r->next,因為r節點已經指向q,所以執行這個語句后q又指向q,所以選項D不正確。

          6.B。【解析】在第1次外層for循環中,首先x++得到x=1。進入到內層for循環,只有循環j的值為奇數時,變量x的值才自加1,所以在內層for循環執行過程中,變量x的值自加兩次,當退出內層for循環時,x=3,然后執行x++,得到x=4。在進入執行第2次外層for循環中,首先x++得到x=5。進入到內層for循環,只有循環變量J的值為奇數時,變量X的值才自加1,所以在內層for循環執行過程中,變量X的值自加l兩次,當退出內層for循環時,x=7,然后執行x++,得到x=8,所以打印輸出變量x的值為8。

          7.C。【解析】子函數funl(double a)的功能是返回a的平方值的整數部分。子函數fun2(double X, double y)的功能是返回X的平方值的整數部分與Y的平方值的整數部分的和。又因為題中變量W的定義為double型,函數fun(2)的定義為int型,按照各類數值型數據間的混合運算,整型數據被轉換為實型數據。所以雙精度型變量w的值為5.0。

          8.c。【解析】在for循環語句中自變量i從0開始,每次自加2,執行s+=*(t+i)語句,因為C語言規定數組名做表達式相當于數組的首地址,也就是第一個元素的地址。因此,*(t+i)代表數組的第i+1個元素。所以程序運行的結果是l+3+5+7+9=25,即變量S的值等于25。

          9.A。【解析】本題在函數int fun(int n)的定義中又出現了對函數fun的調用,所以函數fun是遞歸函數。因而在主函數中調用x=fun(x)時,當輸入10賦給變量X時,遞歸調用的過程為

          fun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)

          =10+9++8+7+fun(6)=10+9++8+7+6+fun(6)

          =10+9++8+7+6+5+fun(4)

          =10+9++8+7+6+5+4+fun(3)

          =10+9++8+7+6+5+4+3+fun(2)

          =10+9++8+7+6+5+4+3+2+fun(1)

          =10+9++8+7+6+5+4+3+2=55

          10.C。【解析】在函數int fun(int x[],int n)的定義中,變量sum為一個靜態局部變量。由于在整個程序運行期間,靜態局部變量在內存中的靜態存儲中占據著永久的存儲單元。函數int fun(int x[],int n)的功能是求出數組x[]各個元素的和,所以在主函數中,調用函數fun(a,5)后,變量sum=1+2+3+4+5=15,當再次調用fun(b,4)后,變量sum=15+6+7+8+9=45,所以s=15+45=60。

          11.D。【解析】執行第一次for循環時,用表達式p[i][J]!=’\o’來判斷字符串數組指針P是否到達字符串的結尾,如果沒有到達,繼續執行while中的語句。if語句表示(p[i][j]-’\o’)除2的余數不為0時,即字符串所有奇數,執行后面的語句。所以退出第1次for的循環體時,輸出為397,執行第2次循環體。對字符串“2584”進行處理,輸出結果為5,因而最后輸出結果為3975。

          12.B。【解析】從題目中可知,’\O’、’\t’、’\\’分別為一個字符,而sizeof是求字節個數的函數,其中包括’\O’占的字節,strlen函數是求數組長度的函數;其以’\0’結束,因此strlen的值為5,sizeof的值為20。

          13.C。【解析】數組的下標是從0開始的,A中越界,行下標和列下標都不能越界;B中,雖然是個地址,但是也同樣越界了;選項c中表示的是第一個的首地址;選項D表示的為其元素的值,并不是地址。

          14.B。【解析]SEEK_SET代表文件的開始,SEEK_END代表文件末尾,SEEK_CUR代表文件當前位置。

          15.C。【解析】當if執行到第一個滿足(i*i>=20)&&(i*i<=100)這個條件的i出現時,通過break語句跳出循環,執行下面的prinlf語句。

          16.B。【解析】指針中存放的是變量的地址,指針也可以進行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節。所以題中p+6指的是將指針向后移動了6個存儲單元,即指向b[6],存放的是b[6]的地址。

          17.D。【解析】由n!的數字定義可知n!=n*(n-1)*(n-2)*…*1。在選項A中,由于f的初值為0,在for循環語句中,f依次乘以l,2,3,…,n,最后計算得到f=n!=0,所以選項A不正確。在選項B中,f的初值為l,在for循環語句中,f依次乘以l,2,3,…,(n-1),最后計算得到f=(n-1)!,所以選項B不正確。在選項C中,f的初值為l,在for循環語句中,f依次乘以n,n+1,n+2,……,所以選項C不正確。在選項D中,f的初值為l,在for循環語句中,f依次乘以n,n-1,n-2,…,2,最后計算得到f=n!,所以選項D正確。

          18.A。【解析]strcpy實現的功能是復制,該操作把are復制到a中,aE03 E33一’&’,且strcpy(aEl], "you")把you復制到a[l]中,故輸出a為“are&you”。

          19.A。【解析】本題主要考查按位與運算,x=Oll050的二進制形式為00010010000101000,Ol252的二進制形式為0000001010101010,兩者相與得0000001000101000。

          20.B。【解析】#include”文件名”,預處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統指定的標準目錄搜索。


        看了“國家二級計算機考試c語言題庫”的人還看了:

        1.2015年計算機二級C語言測試題及答案

        2.計算機二級c語言考試題庫及答案

        3.2015年計算機二級C語言測試題及答案解析

        4.全國計算機c語言二級考試題庫

        5.2015年全國計算機考試二級C語言模擬卷

        6.全國計算機二級c語言考試題

        ’,且要占用一個空間,printf用來輸出 字符,不能輸入字符串。

          5.D。【解析】由題目中線性鏈表的定義可知,要將q和r所指的結點交換前后位置,只要使q指向r的后一個結點,P指向r結點,r指向q結點即可。而在選項D中,r->next=q,這時r指向的節點為q;p->next=r,這時P指向的節點為r;q->next:r->next,因為r節點已經指向q,所以執行這個語句后q又指向q,所以選項D不正確。

          6.B。【解析】在第1次外層for循環中,首先x++得到x=1。進入到內層for循環,只有循環j的值為奇數時,變量x的值才自加1,所以在內層for循環執行過程中,變量x的值自加兩次,當退出內層for循環時,x=3,然后執行x++,得到x=4。在進入執行第2次外層for循環中,首先x++得到x=5。進入到內層for循環,只有循環變量J的值為奇數時,變量X的值才自加1,所以在內層for循環執行過程中,變量X的值自加l兩次,當退出內層for循環時,x=7,然后執行x++,得到x=8,所以打印輸出變量x的值為8。

          7.C。【解析】子函數funl(double a)的功能是返回a的平方值的整數部分。子函數fun2(double X, double y)的功能是返回X的平方值的整數部分與Y的平方值的整數部分的和。又因為題中變量W的定義為double型,函數fun(2)的定義為int型,按照各類數值型數據間的混合運算,整型數據被轉換為實型數據。所以雙精度型變量w的值為5.0。

          8.c。【解析】在for循環語句中自變量i從0開始,每次自加2,執行s+=*(t+i)語句,因為C語言規定數組名做表達式相當于數組的首地址,也就是第一個元素的地址。因此,*(t+i)代表數組的第i+1個元素。所以程序運行的結果是l+3+5+7+9=25,即變量S的值等于25。

          9.A。【解析】本題在函數int fun(int n)的定義中又出現了對函數fun的調用,所以函數fun是遞歸函數。因而在主函數中調用x=fun(x)時,當輸入10賦給變量X時,遞歸調用的過程為

          fun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)

          =10+9++8+7+fun(6)=10+9++8+7+6+fun(6)

          =10+9++8+7+6+5+fun(4)

          =10+9++8+7+6+5+4+fun(3)

          =10+9++8+7+6+5+4+3+fun(2)

          =10+9++8+7+6+5+4+3+2+fun(1)

          =10+9++8+7+6+5+4+3+2=55

          10.C。【解析】在函數int fun(int x[],int n)的定義中,變量sum為一個靜態局部變量。由于在整個程序運行期間,靜態局部變量在內存中的靜態存儲中占據著永久的存儲單元。函數int fun(int x[],int n)的功能是求出數組x[]各個元素的和,所以在主函數中,調用函數fun(a,5)后,變量sum=1+2+3+4+5=15,當再次調用fun(b,4)后,變量sum=15+6+7+8+9=45,所以s=15+45=60。

          11.D。【解析】執行第一次for循環時,用表達式p[i][J]!=’\o’來判斷字符串數組指針P是否到達字符串的結尾,如果沒有到達,繼續執行while中的語句。if語句表示(p[i][j]-’\o’)除2的余數不為0時,即字符串所有奇數,執行后面的語句。所以退出第1次for的循環體時,輸出為397,執行第2次循環體。對字符串“2584”進行處理,輸出結果為5,因而最后輸出結果為3975。

          12.B。【解析】從題目中可知,’\O’、’\t’、’\’分別為一個字符,而sizeof是求字節個數的函數,其中包括’\O’占的字節,strlen函數是求數組長度的函數;其以’

        國家二級計算機考試c語言題庫

        時間: 偉文27 分享

          在計算機國家二級的C語言考試中,有哪些題目類型呢?下面是學習啦小編給大家整理的二級計算機考試c語言選擇題及答案,供大家參閱!

          二級計算機考試c語言選擇題

          1.以下程序的輸出結果是( )。

          main()

          {int a[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;

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

          for(j=0;j<=i;j++)s+=a[i][j];

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

          }

          A.18

          B.19

          C.20

          D.21

          2.有下列程序:

          main()

          { int k=5;

          while(--k) printf("%d",k=1);

          printf("/n");

          )

          執行后的輸出結果是( )。

          A.1

          B.2

          C.4

          D.死循環

          3.若有定義:“int a[2][3];”,則對a數組的第i行第J列元素的正確引用為( )。

          A.*(*(a+i)+j)

          B.(a+i)[j]

          C.*(a+i+j)

          D.*(a+i)+j

          4.下列能正確進行字符串賦值的是( )。

          A.char s[5]={"ABCDE"};

          B.char s[5]={’A’,’B’,’C’,’D’,’E’}; 、

          C.char*S;S="ABCDE";

          D.char*s;printf("%《",s);

          5.現有以下結構體說明和變量定義,如圖所示,指針P、q、r分別指定一個鏈表中連續的3個結點。

          struct node

          {har data;

          struct node*next;)*P,*q,*r;

          現要將q和r所指結點交換前后位置,同時要保持鏈表的結構,下列不能完成此操作的語句是( )。

          A.q-:>next=r->next;p--:>next=r;rm:>next=q;

          B.q-:>next=r;q->next=r->next;r->next=q;

          C.q-:>next=r->next;r->next=q;p->next=r;

          D.q-:>next=q;p->next=r;q->next=r->next;

          6.有下列程序:

          main()

          {int i,j,x=0;

          for(i=0,i<2;i++)

          {x++;

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

          {if(j%2)continue;

          x++:

          )

          x++:

          }

          printf("x=%d\n"x);

          }

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

          A.x=4

          B.x=8

          C.x=6

          D.x=12

          7.有下列程序:

          int funl(double a){return a*=a;} 、

          int fun2(double x,double y)

          {double a=0,b=0;

          a=funl(x);b=funl(y);return(int)(a+b);

          )

          main()

          {double w;w=fun2(1.1,2.0),……}

          程序執行后變量w中的值是( )。 、

          A.5.21 B.5 C.5.0 D.0.0

          8.有下列程序:

          main()

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

          for(i=0;i<9;i+=2)s+=*(t+i);

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

          }

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

          A.45

          B.20

          C.25

          D.36

          9.有下列程序:

          int fun(int n)

          {if(n= =1))return l;

          else

          return(n+fun(n-1)):

          }

          main()

          { int x;

          seanf("%d",&x);x=fun(x);printf("%d\n",x);

          }

          執行程序時,給變量x輸入l0,程序的輸出結果是( )。

          A.55

          B.54

          C.65

          D.45

          10.有下列程序:

          int fun(int x[],int n)

          { static int sum=0,i;

          for(i=0;i   return sum;

          }

          main()

          {int a[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;

          s=fun(a,5)+fun(b,4);printf("%d\n",s);

          程序執行后的輸出結果是( )。 、

          A.45

          B.50

          C.60

          D.55

          11.有下列程序:

          main()

          f char*P[]={"3697","2584");

          int i,j;long num=0;

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

          {j=0;

          while(p[i][j]!=’\0’)

          {if((p[i][j]-t\0’)%2)num=10*num+p[j][j]-’0’;

          j+=2;

          )

          )

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

          )

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

          A.35 B.37 C.39 D.3975

          12.以下程序的輸出結果是( )。

          main()

          { char st[20]="hell0\O\t\\\”;

          printf("%d%d\n",strlen(st),sizeof(st));

          }

          A.9 9

          B.5 20

          C.13 20

          D.20 20

          13.若有下的定義:"int t[3][2];",能正確表示t數組元素地址的表達式是( )。

          A.&t[3][2]

          B.t[3]

          C.t[l]

          D.t[2][2]

          14.函數fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始點是( )。

          A.文件開始

          B.文件末尾

          C.文件當前位置

          D.以上都不對

          15.下述程序的輸出結果是( )。

          #include

          main()

          {int i;

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

          {if(i*i>=20)&&(i*i<=lOO))

          break;

          }

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

          )

          A.49

          B.36

          C.25

          D.64

          16.若有定義“int b[8],*p=b;”,則p+6表示( )。

          A.數組元素b[6]的值

          B.數組元素b[6]的地址

          C.數組元素b[7]的地址

          D.數組元素b[0]的值加上6

          17.設變量已正確定義,則以下能正確計算f=n!的程序是( )。

          A.f=0; for(i=1;i<=n;i++)f*=i;

          B.f=1;for(i=1;i  C.f=1;for(i=n;i>1;i++)f*=i;

          D.f=1;for(i=n;i>=2;i--)f*=i;

          18.下述程序執行的輸出結果是( )。

          #include

          main()

          {char a[2][4]; ,

          strcpy(a。"are");strcpy(a[1],"you");

          a[o][3]=’&’;

          printf("%s\n",a);

          )

          A.are&you

          B.you

          C.are

          D.&

          19.設x=011050,則x=x&01252的值是( )。

          A.0000001000101000

          B.1111110100011001

          C.0000001011100010

          D.1100000000101000

          20.在“文件包含,,預處理語句的使用形式中,當#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是( )。

          A.直接按系統設定的標準方式搜索目錄

          B.先在源程序所在的目錄搜索,如沒找到,再按系統設定的標準方式搜索

          C.僅僅搜索源程序所在目錄

          D.僅僅搜索當前目錄

          二級計算機考試c語言選擇題答案

          1.A。【解析】循環的作用是求行下標從l到2列下標從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][o]+a[2][1]+a[2][2]=3+4+5+6+0一18。

          2.A。【解析】在程序語句中,k的初始值為5,進行第l次while循環后,k自減l為4,非0,執行循環體里的printf語句,輸出k,此時k的值變為l。程序執行第2次循環時,k自減l變為0,為假,退出while循環語句。所以程序的最后結果為l。

          3.A。【解析】通過地址來引用數組元素的方法有下列5種:

          (1)a[i][j];(2)*(a[i]+j);(3)*(*(a+j)+j);(4)*(a[i][j]);(5)(&a[o][0]+3*i+j)。故A正確。

          4.C。【解析】選項A、B的空間不夠;字符串存儲要有結束符’\0’,且要占用一個空間,printf用來輸出 字符,不能輸入字符串。

          5.D。【解析】由題目中線性鏈表的定義可知,要將q和r所指的結點交換前后位置,只要使q指向r的后一個結點,P指向r結點,r指向q結點即可。而在選項D中,r->next=q,這時r指向的節點為q;p->next=r,這時P指向的節點為r;q->next:r->next,因為r節點已經指向q,所以執行這個語句后q又指向q,所以選項D不正確。

          6.B。【解析】在第1次外層for循環中,首先x++得到x=1。進入到內層for循環,只有循環j的值為奇數時,變量x的值才自加1,所以在內層for循環執行過程中,變量x的值自加兩次,當退出內層for循環時,x=3,然后執行x++,得到x=4。在進入執行第2次外層for循環中,首先x++得到x=5。進入到內層for循環,只有循環變量J的值為奇數時,變量X的值才自加1,所以在內層for循環執行過程中,變量X的值自加l兩次,當退出內層for循環時,x=7,然后執行x++,得到x=8,所以打印輸出變量x的值為8。

          7.C。【解析】子函數funl(double a)的功能是返回a的平方值的整數部分。子函數fun2(double X, double y)的功能是返回X的平方值的整數部分與Y的平方值的整數部分的和。又因為題中變量W的定義為double型,函數fun(2)的定義為int型,按照各類數值型數據間的混合運算,整型數據被轉換為實型數據。所以雙精度型變量w的值為5.0。

          8.c。【解析】在for循環語句中自變量i從0開始,每次自加2,執行s+=*(t+i)語句,因為C語言規定數組名做表達式相當于數組的首地址,也就是第一個元素的地址。因此,*(t+i)代表數組的第i+1個元素。所以程序運行的結果是l+3+5+7+9=25,即變量S的值等于25。

          9.A。【解析】本題在函數int fun(int n)的定義中又出現了對函數fun的調用,所以函數fun是遞歸函數。因而在主函數中調用x=fun(x)時,當輸入10賦給變量X時,遞歸調用的過程為

          fun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)

          =10+9++8+7+fun(6)=10+9++8+7+6+fun(6)

          =10+9++8+7+6+5+fun(4)

          =10+9++8+7+6+5+4+fun(3)

          =10+9++8+7+6+5+4+3+fun(2)

          =10+9++8+7+6+5+4+3+2+fun(1)

          =10+9++8+7+6+5+4+3+2=55

          10.C。【解析】在函數int fun(int x[],int n)的定義中,變量sum為一個靜態局部變量。由于在整個程序運行期間,靜態局部變量在內存中的靜態存儲中占據著永久的存儲單元。函數int fun(int x[],int n)的功能是求出數組x[]各個元素的和,所以在主函數中,調用函數fun(a,5)后,變量sum=1+2+3+4+5=15,當再次調用fun(b,4)后,變量sum=15+6+7+8+9=45,所以s=15+45=60。

          11.D。【解析】執行第一次for循環時,用表達式p[i][J]!=’\o’來判斷字符串數組指針P是否到達字符串的結尾,如果沒有到達,繼續執行while中的語句。if語句表示(p[i][j]-’\o’)除2的余數不為0時,即字符串所有奇數,執行后面的語句。所以退出第1次for的循環體時,輸出為397,執行第2次循環體。對字符串“2584”進行處理,輸出結果為5,因而最后輸出結果為3975。

          12.B。【解析】從題目中可知,’\O’、’\t’、’\\’分別為一個字符,而sizeof是求字節個數的函數,其中包括’\O’占的字節,strlen函數是求數組長度的函數;其以’\0’結束,因此strlen的值為5,sizeof的值為20。

          13.C。【解析】數組的下標是從0開始的,A中越界,行下標和列下標都不能越界;B中,雖然是個地址,但是也同樣越界了;選項c中表示的是第一個的首地址;選項D表示的為其元素的值,并不是地址。

          14.B。【解析]SEEK_SET代表文件的開始,SEEK_END代表文件末尾,SEEK_CUR代表文件當前位置。

          15.C。【解析】當if執行到第一個滿足(i*i>=20)&&(i*i<=100)這個條件的i出現時,通過break語句跳出循環,執行下面的prinlf語句。

          16.B。【解析】指針中存放的是變量的地址,指針也可以進行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節。所以題中p+6指的是將指針向后移動了6個存儲單元,即指向b[6],存放的是b[6]的地址。

          17.D。【解析】由n!的數字定義可知n!=n*(n-1)*(n-2)*…*1。在選項A中,由于f的初值為0,在for循環語句中,f依次乘以l,2,3,…,n,最后計算得到f=n!=0,所以選項A不正確。在選項B中,f的初值為l,在for循環語句中,f依次乘以l,2,3,…,(n-1),最后計算得到f=(n-1)!,所以選項B不正確。在選項C中,f的初值為l,在for循環語句中,f依次乘以n,n+1,n+2,……,所以選項C不正確。在選項D中,f的初值為l,在for循環語句中,f依次乘以n,n-1,n-2,…,2,最后計算得到f=n!,所以選項D正確。

          18.A。【解析]strcpy實現的功能是復制,該操作把are復制到a中,aE03 E33一’&’,且strcpy(aEl], "you")把you復制到a[l]中,故輸出a為“are&you”。

          19.A。【解析】本題主要考查按位與運算,x=Oll050的二進制形式為00010010000101000,Ol252的二進制形式為0000001010101010,兩者相與得0000001000101000。

          20.B。【解析】#include”文件名”,預處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統指定的標準目錄搜索。


        看了“國家二級計算機考試c語言題庫”的人還看了:

        1.2015年計算機二級C語言測試題及答案

        2.計算機二級c語言考試題庫及答案

        3.2015年計算機二級C語言測試題及答案解析

        4.全國計算機c語言二級考試題庫

        5.2015年全國計算機考試二級C語言模擬卷

        6.全國計算機二級c語言考試題

        ’結束,因此strlen的值為5,sizeof的值為20。

          13.C。【解析】數組的下標是從0開始的,A中越界,行下標和列下標都不能越界;B中,雖然是個地址,但是也同樣越界了;選項c中表示的是第一個的首地址;選項D表示的為其元素的值,并不是地址。

          14.B。【解析]SEEK_SET代表文件的開始,SEEK_END代表文件末尾,SEEK_CUR代表文件當前位置。

          15.C。【解析】當if執行到第一個滿足(i*i>=20)&&(i*i<=100)這個條件的i出現時,通過break語句跳出循環,執行下面的prinlf語句。

          16.B。【解析】指針中存放的是變量的地址,指針也可以進行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節。所以題中p+6指的是將指針向后移動了6個存儲單元,即指向b[6],存放的是b[6]的地址。

          17.D。【解析】由n!的數字定義可知n!=n*(n-1)*(n-2)*…*1。在選項A中,由于f的初值為0,在for循環語句中,f依次乘以l,2,3,…,n,最后計算得到f=n!=0,所以選項A不正確。在選項B中,f的初值為l,在for循環語句中,f依次乘以l,2,3,…,(n-1),最后計算得到f=(n-1)!,所以選項B不正確。在選項C中,f的初值為l,在for循環語句中,f依次乘以n,n+1,n+2,……,所以選項C不正確。在選項D中,f的初值為l,在for循環語句中,f依次乘以n,n-1,n-2,…,2,最后計算得到f=n!,所以選項D正確。

          18.A。【解析]strcpy實現的功能是復制,該操作把are復制到a中,aE03 E33一’&’,且strcpy(aEl], "you")把you復制到a[l]中,故輸出a為“are&you”。

          19.A。【解析】本題主要考查按位與運算,x=Oll050的二進制形式為00010010000101000,Ol252的二進制形式為0000001010101010,兩者相與得0000001000101000。

          20.B。【解析】#include”文件名”,預處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統指定的標準目錄搜索。


        看了“國家二級計算機考試c語言題庫”的人還看了:

        1.2015年計算機二級C語言測試題及答案

        2.計算機二級c語言考試題庫及答案

        3.2015年計算機二級C語言測試題及答案解析

        4.全國計算機c語言二級考試題庫

        5.2015年全國計算機考試二級C語言模擬卷

        6.全國計算機二級c語言考試題

        國家二級計算機考試c語言題庫

        在計算機國家二級的C語言考試中,有哪些題目類型呢?下面是學習啦小編給大家整理的二級計算機考試c語言選擇題及答案,供大家參閱! 二級計算機考試c語言選擇題 1.以下程序的輸出結果是( )。 main() {int a[3][3]={{1,2},{3,4),{5,6}},i,j,s=0; for(i=1
        推薦度:
        點擊下載文檔文檔為doc格式

        精選文章

        • 計算機等級考試二級c語言題庫
          計算機等級考試二級c語言題庫

          在計算機等級二級c語言的考試題庫中,有哪些類型的題目呢?下面是學習啦小編給大家整理的計算機等級考試二級c語言選擇題及答案,供大家參閱! 計算機

        • 計算機等級考試c語言試題及答案
          計算機等級考試c語言試題及答案

          在計算等級C語言考試中,我們會遇到什么樣的題目類型呢?下面是學習啦小編給大家整理的計算機等級考試c語言試題及答案,供大家參閱! 計算機等級考試

        • 全國計算機二級c語言考試題庫
          全國計算機二級c語言考試題庫

          在全國計算機二級c語言考試的題庫中,有哪些類型的題目呢?下面是學習啦小編給大家整理的計算機二級c語言考試題庫選擇題及答案,供大家參閱! 計算機

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

          在全國的計算機二級考試中,我們會遇到什么樣的知識點題目呢?下面是學習啦小編給大家整理的計算機二級c語言考試題目及答案,供大家參閱! 計算機二

        20949 主站蜘蛛池模板: 乱码中字在线观看一二区| 亚洲精品一二三中文字幕| 亚洲中文字幕在线无码一区二区| 日区中文字幕一区二区| 国产亚洲精品综合一区二区 | 亚洲av永久无码精品天堂久久| 麻豆精品一区综合av在线| 亚洲精品第一在线观看视频| 久久国产成人午夜av影院| 国产仑乱无码内谢| 无码人妻一区二区三区精品视频| 亚洲av日韩av一区久久| av大片| 欧美成人免费| 亚洲精品一区二区妖精| 亚洲欧美日韩高清中文| 亚洲成av人片在www鸭子| 一级二级三一片内射视频在线 | 夜夜爽夜夜叫夜夜高潮漏水| 色欲综合久久中文字幕网| 最新国产麻豆aⅴ精品无| 99久久国产一区二区三区| 国产人妻人伦精品婷婷| 人人人澡人人肉久久精品| 色综合亚洲一区二区小说| 精品国产一区二区三区国产馆| 亚洲 日本 欧洲 欧美 视频| 午夜福利在线一区二区| 亚洲va久久久噜噜噜久久狠狠| 精品深夜av无码一区二区老年| 网友偷拍视频一区二区三区| 国产欧美精品一区aⅴ影院| 国产精品白丝久久av网站 | 9l久久午夜精品一区二区| 四虎国产精品永久入口| 国产一本一道久久香蕉| 免费十八禁一区二区三区| 欧美精品1卡二卡三卡四卡| 国产一国产看免费高清片| 国产精品成人av电影不卡| 亚洲熟女乱色综一区二区|