亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

C語言

計算機二級C語言選擇題訓練及答案

時間:2024-08-17 02:18:57 C語言 我要投稿
  • 相關推薦

2017計算機二級C語言選擇題訓練及答案

  C語言作為計算機二級考試的重點考察對象,要求考生們掌握更多C語言的知識,下面是百分網小編整理的2017計算機二級C語言選擇題訓練及答案,希望可以為您帶來幫助!

  選擇題

  1.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結點訪問順序是( )。

  A.bdgcefha

  B.gdbecfha

  C.bdgaechf

  D.gdbehfca

  2.三種基本結構中,能簡化大量程序代碼的是( )。

  A.順序結構

  B.分支結構

  C.選擇結構

  D.重復結構

  3.算法的時間復雜度是指( )。

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

  B.算法程序的長度

  C.算法執(zhí)行過程所需要的基本運算次數

  D.算法程序中的指令條數

  4.概要設計中要完成的事情是( )。

  A.系統(tǒng)結構和數據結構的設計

  B.系統(tǒng)結構和過程的設計

  C.過程和接口的設計

  D.數據結構和過程的設計

  5.在結構化分析方法中,數據字典的作用是( )。

  A.存放所有需要處理的原始數據

  B.存放所有處理的結果

  c.存放所有程序文件

  D.描述系統(tǒng)中所用到的全部數據和文件的有關信息

  6.一個關系中屬性個數為1時,稱此關系為( )。

  A.對應關系

  B.單一關系

  c.一元關系

  D.二元關系

  7.若有以下定義:

  char a;int b;

  float c;double d;

  則表達式a*b+b-c值的類型為( )。

  A.float

  B.int

  C.char

  D.double

  8.下列選擇中,不能用做標識符的是( )。

  A.1234

  B._1_2

  C.int_2_

  D.2_int_

  9.設x為int型變量,則執(zhí)行以下語句后,x的值為( )。

  x=10;x=x-=x-x;

  A.10

  B.20

  C.40

  D.30

  10.下列敘述中正確的是( )。

  A.在面向對象的程序設計中,各個對象之間具有密切的關系

  B.在面向對象的程序設計中,各個對象都是公用的

  C.在面向對象的程序設中,各個對象之間相對獨立,相互依賴性小

  D.上述3種說法都不對

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

  main()

  { int i;

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

  switch(i){case 0:printf("%d",i);

  case 2:printf("%d",i);

  default:printf("%d",i);

  }

  }

  A.000102

  B.000020

  C.000122

  D.000111

  12.下列程序執(zhí)行后的輸出結果是( )。

  main()

  {int x=’f’;printf("%c\n",’A’+(x-’a’+1));}

  A.G

  B.H

  C.I

  D.J

  13.有如下程序:

  main()

  { int a=2,b=-1.c=2;

  if(a<0)if(b<0)c=0;

  else c++;

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

  }

  該程序的輸出結果是( )。

  A.0

  B.1

  C.2

  D.3

  14.在C語言中,函數返回值的類型最終取決于( )。

  A.函數定義時在函數首部所說明的函數類型

  B.return語句中表達式值的類型

  C.調用函數時主調函數所傳遞的實參類型

  D.函數定義時形參的類型

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

  main()

  { int i=0,S=0;

  for(;;)

  {

  if(i==3 ||i==5)continue;

  if(i==6)break;

  i++;

  s+=i:

  };

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

  }

  A.10

  B.13

  C.21

  D.程序陷入死循環(huán)

  16.假設a和b為int型變量,則執(zhí)行以下語句后b的值為( )。

  a=1;b=10;

  do

  { b-=a;a++;}

  while(b--<0);

  A.9

  B.-2

  C.-l

  D.8

  17.下列程序執(zhí)行后的輸出結果是( )。

  main()

  { int a[3][3],*p,i};

  p=&a[0][0];

  for(i=p;i<9;i++)p[i]=i+1;

  printf("%d\n",a[1][2]);

  }

  A.3

  B.6

  C.9

  D.隨機數

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

  int f(int A)

  { return a%2; }

  main()

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

  for(i=0;f(s[8]);i++)d+=s[i];

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

  }

  A.9

  B.11

  C.19

  D.21

  19.s1和s2已正確定義并分別指向兩個字符串。若要求:當s1所指串大于s2所指串時,執(zhí)行語句s;則以下選項中正確的是( )。

  A.if(s1>s2)S;

  B.if(strcmp(s1,s2))S;

  C.if(strcmp(s2,sl)>O)S;

  D.if(stremp(s1,s2)>O)S;

  20.有以下函數:

  char fun(char*p)

  {return P;}

  該函數的返回值是( )。

  A.無確切的值

  B.形參p中存放的地址值

  c.一個臨時存儲單元的地址

  D.形參p自身的地址值

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

  main()

  {char str[]1-10]={"china","beijing"),*p=str;

  printf("%s\n",p+10);

  }

  A.China

  B.Beijing

  C.ng

  D.ing

  22.合法的main()函數命令參數形式是( )。

  A.main(int a,char*c[])

  B.main(int arc,char**arv)

  C.main(int argc,char*argv)

  D.main(int argv,char*argc[])

  23.有以下結構體說明和變量的定義,且指針P指向變量a,指針q指向變量b,則不能把結點b連接到結點a之后的語句是( )。

  struct node

  {char data;

  struct node*next:

  }a,b,*p=&a,*q=&b;

  A.a.next=q;

  B.P.next=&b;

  C.p->next=&b;

  D.(*p).next=q;

  24.有如下程序:

  #include

  main()

  { FILE*fp1;

  fp1=fopen("f1.txt","w");

  fprintf(fp1,"abe");

  fclose(fp1);

  }

  若文本文件f1.txt中原有內容為:good。則運行以上程序后文件f1.txt中的內容為( )。

  A.goodabc

  B.abcd

  C.abc

  D.abcgood

  25.與“y=(x>0?1:x<0?-1:0)”;的功能相同的if 語句是( )。

  A.if(x>0)y=1;

  else if(x<0)y=1;

  else y=0;

  B.if(x)

  if(x>0)y=1;

  else if(x<0)y=-l;

  else y=0;

  C.y=-l

  if(x)

  if(x>O)y=1;

  else if(x=-0)y=0;

  else y=-l;

  D.y=0;

  if(x>=0)

  if(x>=0)y=1;

  else y=-l;

  26.下列字符串是標識符的是( )。

  A.aa

  B.a-class

  C.int

  D.LINE 1

  27.執(zhí)行下列程序后,變量a,b,C的值分別是( )。

  int x=5,y=4;

  int a,b,c;

  a=(--x==y++)?X:++y;

  b=++x:

  c=y:

  A.a=5,b=5,c=5

  B.a=4,b=5,c=5

  C.a=5,b=6,c=5

  D.a=1,b=5,c=6

  28.下列變量聲明合法的是( )。

  A.short a=1.4e-1;

  B.double b=1+3e2.8;

  C.10ng do=oxfdaL;

  D.float 2 aaa=1e-3;

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

  #include

  main()

  { int i;

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

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

  break;

  }

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

  }

  A.49

  B.36

  C.25

  D.64

  30.運行下列程序,若從鍵盤輸入字符“a”,則輸出結果是( )。

  char c;

  c=getchar();

  if(c>=’a’&&c<=’g’)c=c+4:

  else if(c>=’9’&&c<=’2’)c=c-21:

  else printf("input error! \n");

  putchar(c);

  A.f

  B.t

  C.e

  D.d

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

  #include

  int b=2:

  int func(int*a)

  { b+=*a;return b;}

  main()

  { int a=1,t=2;

  t+=func(&a):

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

  }

  A.4

  B.5

  C.6

  D.8

  32.若有定義“float a=25,b,*p=&b;”,則下列對賦值語句“*p=a;”和“p=&a;”的正確解釋為( )。

  A.兩個語句都是將變量a的值賦予變量P

  B.*p=a是使P指向變量a,而p=&a是將變量的值賦予變量指針P

  c.*p=a是將變量a的值賦予變量b,而&a是使P指向變量a

  D.兩個語句都是使P指向變量a

  33.對兩個數組a和b進行下列初始化:

  char m[]="1234567";

  char n[]={’1’,’2’,’3’,’4’,’5’,’6’,’7’};

  則下列敘述正確的是( )。

  A.數組m與數組n完全相同

  B.數組m與數組n長度相同

  C.數組m比數組n長1

  D.數組m與數組n中都存放字符串

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

  #include

  main()

  { char a[]={’a’,’b’,’C’,’d’,’e’,’f’,’\0’).

  int i,j;

  i=sizeof(a);

  j=strlen(a);

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

  }

  A.7,7

  B.7,6

  C.6,6

  D.6,7

  35.軟件生命周期是指( )。

  A.軟件產品從提出、實現、使用維護到停止使用退役的過程

  B.軟件從需求分析、設計、實現到測試完成的過程

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

  D.軟件的運行維護過程

  36.下列程序的運行結果是( )。

  #include

  #define ADD(x) x+x

  main()

  { int m=1,n=2,k=3;

  int S=ADD(m+n)*k;

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

  }

  A.sum=18

  B.sum=10

  C.sum=9

  D.sum=25

  37.有以下程序:

  fun(int x,int y){return(x+y);)

  main()

  { int a=1,b=2,c=2,sum;

  sum=fun((a++,b++,a+b),c++);

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

  }

  執(zhí)行后的結果是( )。

  A.6

  B.7

  C.8

  D.9

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

  A.0000001000101000

  B.1111110100011001

  C.0000001011100010

  D.1100000000101000

  39.有以下程序:

  int fun(int x)

  { int p;

  if(x==0||x==1)return(3);

  p=x-fun(x-2);

  return p;

  }

  main()

  { printf("%d\n",fun(7));}

  執(zhí)行后的結果是( )。

  A.7

  B.3

  C.2

  D.0

  40.已知函數fread的調用形式為“fread(buffer,size,count,fp);”,其中buffer代表的是( )。

  A.存放讀入數據項的存儲區(qū)

  B.一個指向所讀文件的文件指針

  C.一個指針,是指向輸入數據存放在內存中的起始地址

  D.一個整型變量,代表要讀入的數據項總數

  參考答案與解析:

  1.D。【解析】后序遍歷是增首先遍歷左子樹或左子結點,然后遍歷右子樹或右子結點,最后訪問根結點。前序遍歷是指首先訪問根結點,依次訪問左子樹、右子樹。本題根據前序和中序遍歷的結果確定,然后再對其進行后序遍歷,正確答案為選項D。

  2.D。【解析】重復結構也稱為循環(huán)結構,它根據給定的條件,判斷是否需要重復執(zhí)行某一相同或類似的程序段,這種可以簡化大量的程序行。

  3.C。【解析】算法復雜度包括時間復雜度和空間復雜度,算法的時間復雜度是指執(zhí),亍算法所需要的計算機工作量,即算法執(zhí)行過程中所需要的基本運算次數。

  4.A。【解析】在C語言中軟件概要設計的基本任務是:設計軟件系統(tǒng)結構、數據結構及數據庫設計、編寫概要設計文檔、概要設計文檔評審4種。

  5.D!窘馕觥吭赾語言中.結構化分析方法中的數據字典的作用是描述系統(tǒng)中所用到的全部數據和文件的有關信息。

  6.C。【解析】在關系模型數據庫中,我們把構成基本結構的一維表稱為關系。關系的列稱為屬性,具有N個屬性的關系稱為N元關系。

  7.D!窘馕觥吭诒磉_式a*b+d-c中,double的類型最高,C語言中,由低類型自動向高類型轉換,所以最后的結果一定是double型。

  8.D。【解析】C語言規(guī)定標識符是由字母、數字和下劃線組成的,且必須以字母或下劃線開頭,因此可知D選項錯誤。

  9.A!窘馕觥繄(zhí)行x=x-=x-x語句可寫成x=x- (x-x),可看出結果為10,故八選項正確。

  10.C。【解析】本題考查對面向對象的理解,面向對象的程序設計是對象模擬問題領域中的實體,各對象之間相對獨立,相互依賴性小,通過消息來實現對象之間的相互聯系。

  11.C!窘馕觥慨攊=0時,執(zhí)行switch語句,對應的執(zhí)行case 0,輸出0,因為沒有break,接著執(zhí)行case 2的語句,又輸出一個0,接著執(zhí)行default語句,再輸出一個0,返回i+ +;i=1時,沒有case語句,執(zhí)行default語句,輸出一個1,接著又返回i++;當i=2時執(zhí)行case 2和default語句分別輸出一個2,此時又返回i++,i變?yōu)?,for循環(huán)不成立,終止,最后輸出000122。

  12.D。【解析】因為x=’f’,所以寫成’A’+(x-’a’+1) =’A ’+(’f ’-’a’+1)=’A’+6=’J ’,故選擇D選項。

  13.C。【解析]else與離它最近的if構成if…else語句,而當a為2時,第一個if語句不成立,因此什么也不做,即c 的值仍然為2,故選擇C選項。

  14.A!窘馕觥吭赾語言中,函數返回的類型最終取決于函數定義時在函數首部所說明的函數類型,與調用函數時主調函數所傳遞的實參類型和函數定義時形參的類型無關,而return語句表達式的值將強制轉換為函數定義時在函數首部所說明的函數類型返回。

  15.D。【解析】當i一0時,兩個if都不滿足,所以都不執(zhí)行,直接執(zhí)行i++語句,此時i為1,S為l,返回for循環(huán)中;當i=1時,同樣不執(zhí)行兩個if語句,執(zhí)行i++后,i=2,s= 3,返回for循環(huán)中;i=2時也不執(zhí)行if語句,執(zhí)行i++后,i =3,s=6,接著又執(zhí)行for循環(huán),此時符合第一個if語句,執(zhí)行到continue時不再執(zhí)行i++了,continue是跳出本次循環(huán),接著下次循環(huán)。永遠這樣執(zhí)行下去,i的值永遠為3,故選擇D選項。

  16.D!窘馕觥慨攂為10時,執(zhí)行b-=a,此時b為9,接著b--表達式值為9,b的值為8,大于0,while不成立,退出循環(huán),故選擇D選項。

  17.D!窘馕觥砍绦驁(zhí)行在for循環(huán),當i=p時,i中放的是P的地址,類型不符合,因此輸出隨機數,故選擇D 進項.

  18.A!窘馕觥吭诔绦蛑挟攊=0時,s[o]=1,f(s[0])為1,執(zhí)行d+=s[0],d的值為1,i++也變?yōu)?。當i=1時,s[1]=3,f(s[1])為1,也為非0,繼續(xù)執(zhí)行后面的表達式,此時d的值為1+3=4,繼續(xù)著i++變?yōu)?,接著執(zhí)行for循環(huán),可知for循環(huán)的目的是把S數組中的奇數相加,因此最后d的值為1+3+5為9,故選擇A選項。

  19.D!窘馕觥吭贑語言中,不能直接比較兩個字符串的大小,必須用特定的函數來完成,選項A錯誤;選項B不管大于還是小于都執(zhí)行S,不符合題意;選項C正好相反,當s2大于s1時,執(zhí)行語句S,可知選項D正確。

  20.A!窘馕觥吭诔绦蛑幸驗閒un函數的返回值為char,而P是指向char的指針變量,因此類型不匹配,故選擇A選項。

  21.B!窘馕觥勘绢}考查指針,由*p=str可知,指針P指向字符串數組的首地劃。二維數組str為每個字符串分配的存儲空間是10個字節(jié),因此p+10指向str[1][0],輸出的字符串就是數組中的第2個字符串。

  22.C。【解析】在C語言中,main()函數也可以有參數,例如,main(int ar90,char * argv),argc是指字符串的指針數組,而其他幾項表達不正確。

  23.B!窘馕觥勘绢}考查結構體指針變量的賦值方法,要把結點b連接到結點;l的后面,必須把b的地址給a的next指針。故8正確。

  24.C。【解析】當用“w”打開時,已存在一個以該文件名命名的文件,則在打開時將該文件刪除,再重新建立一個新文件,因此當輸入時原來的內容已被覆蓋,所以只有后輸入的內容,故選擇C選項。

  25.B!窘馕觥縴=(x=)07 1:x<0 -1="" 0="" y="(x">07 1:(x<0?-1:0)),故選擇8選項。

  26.A!窘馕觥緾語言規(guī)定,標識符是由字母、數字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。int就是表達整型變量類型的標識符,它不能用做變量名和函數名。

  27.B!窘馕觥勘绢}考查自加(++)、自減(--)運算符的使用。“++x,--x”,在變量x前使用,先使X的值加1或者減1,再使用此時的表達式的值參與運算;“x++,x --”,先把使用X的值參與運算,在使用X之后,再使x的值加1或者減1。對于表達式--x=4,y++=4,兩者相等,--x=y ++為真,所以a=x=4,執(zhí)行完此語句后y的值是5。第2個表達式b=++x,x的值先加1,然后賦給b,即b=x+1=5;第一個表達式c=y=5。故B正確。

  28.A。【解析】解答本題需了解3個知識點:①標識符是由字母、數字或下劃線組成,并且它的第一個字符必須是字母或者下劃線;②do是C語言的一個關鍵字,不能再用做

  變量名和函數名;③c語言規(guī)定指數形式的實型數量e或E 后面的指數必須是整數。

  29.C!窘馕觥勘绢}考查for循環(huán)及if語句。當執(zhí)行到第一個滿足(i*i>一20)&&(i*i<=100)這個條件的i出現時,break跳出循環(huán),執(zhí)行下列的printf語句。

  30.C!窘馕觥縢etchar函數是讀取鍵盤的輸入函數,本題中輸入字母“a”,則c=’ a ’,判斷if條件,發(fā)現’ a ’>=’a ’ &&’a ’<=’g’成立,則執(zhí)行下列語句:C=C+4,C得到的字

  符的ASCII碼值,退出if語句,通過putchar函數輸出字符。

  31.B!窘馕觥勘绢}考查函數調用時的參數傳遞。在執(zhí)行函數func時,由于全局定義了一個變量b,所以在函數體中執(zhí)行b=2+1=3,最終t=2+3=5。

  32.C!窘馕觥“P”是指針變量,指向一個地址:“*P”為P指針所指向地址的內容 “&”是取變量地址。

  33.C。【解析】本題考查字符串數組和字符數組賦值的區(qū)別。“char m[]="1234567";”定義一個字符型數組并初始化,C語言規(guī)定,在字符串的末尾自動加上串結束標記’\0 ’,因此數組m的長度是8;而數組n是按照字符方式對數組初始化,系統(tǒng)不加上串結束標記’\0’,因此數組n的長度是7。

  34.B!窘馕觥勘绢}要注意sizeof()和strlen()的區(qū)別,sizeof()函數的功能是返回字符串所占的字節(jié)數,strlen()函數的功能是返回字符串長度,’\0 ’是一個轉義符,它占存儲空間,但不計入串的長度。

  35.B!窘馕觥寇浖芷(Systems Development Life Cyele,sDLC)是軟件的產生直到報廢的生命周期,周期內有問題定義、可行性分析、總體描述、系統(tǒng)設計、編碼、調試和測試、驗收與運行、維護升級到廢棄等階段。

  36.B!窘馕觥勘绢}考查帶參數的宏的定義:“#define ADD(x)x+x”中X代表m+n,故s寫成s=m+n+m+n *k=1+2+1+2*3=10。

  37.C!窘馕觥勘磉_式a++,b++,a+b是一個逗號表達式,在逗號表達式中,從左向右進行各個表達式的運算,最后一個表達式的值就是逗號表達式的結果,所以表達式a++,b++,a+b的值為5,所以fun()函數中的形參x 的值為5;表達式c++先把變量C的值傳給形參y,然后c 的值加1,所以y的值為3,因此函數fun((a++,b++,a+ b),c++)的返回值為8。

  38.A!窘馕觥勘绢}考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252 化成二進制 為0000001010101010,兩者相與得0000001000101000。

  39.C。【解析】調用函數fun(7)時,由于x的值為7,執(zhí)行語句“p=x-fun(x-2);”,相當于執(zhí)行p=7-fun(5);

  調用函數fun(5)時,由于x的值為5,執(zhí)行語句“p=x- fun(x-2);”,相當于執(zhí)行p=7-fun(3);

  調用函數fun(3)時,由于x的值為3,執(zhí)行語句“p=x- fun(x-2);”,相當于執(zhí)行p=7-fun(1);

  調用函數fun(1)時,由于X的值為1,執(zhí)行語句“return (3);”,函數的返回值為3。

  因此函數調用fun(7)等價于7-(5-fun(3)),即7 -(5 -(3-fun(1))),即7-(5-(3-3)),所以函數fun(7)的返回值為2。答案為C。

  40.C!窘馕觥勘绢}考查數據塊讀取函數調用形式:fread(buffer,size,count,fp)。

  fread函數參數說明:“buffer”是一個指針,是讀入數據的存放地址,對fwrite來說,是要輸出數據的地址;“size”是要讀寫的字節(jié)數;“count”是要進行讀寫多少個size字節(jié)數據項;“fp”是指文件型指針。

【計算機二級C語言選擇題訓練及答案】相關文章:

計算機二級《C語言》選擇題題庫及答案11-16

2017最新計算機二級《C語言》選擇題及答案10-27

計算機二級考試C語言試題與答案(選擇題)07-06

2017計算機二級C語言基礎訓練及答案08-19

2016計算機二級《C語言》非選擇題練習及答案06-23

2016計算機二級C語言考試選擇題及答案10-31

計算機二級《C語言》非選擇題練習及答案201607-24

2017計算機二級考試C語言選擇題專項訓練09-14

計算機二級C語言上機強化訓練題及答案06-07

2017計算機二級C語言考前熱身訓練題及答案09-15