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

C語言

C語言考試題及答案

時間:2024-09-20 10:03:03 雪桃 C語言 我要投稿

2024年C語言考試題及答案

  在各個領域,我們都經常看到試題的身影,試題是考核某種技能水平的標準。你所了解的試題是什么樣的呢?下面是小編整理的2024年C語言考試題及答案,希望對大家有所幫助。

2024年C語言考試題及答案

  C語言考試題及答案 1

  一、選擇題((1)-(40)每小題1分,(41)-(50)每小題2分,共60分)

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

  (1) 所謂“裸機”是指

  A.單片機

  B.單板機

  C.不裝備任何軟件的計算機

  D.只裝備操作系統(tǒng)的計算機

  (2) 下列存儲器中,存取速度最快的是

  A.軟盤

  B.硬盤

  C.光盤

  D.內存

  (3) 系統(tǒng)軟件中最重要的是

  A.操作系統(tǒng)

  B.語言處理程序

  C.工具軟件

  D.數據庫管理系統(tǒng)

  (4) CPU處理的數據基本單位為字,一個字的字長

  A.為8個二進制位

  B.為16個二進制位

  C.為32個二進制位

  D.與CPU芯片的型號有關

  (5) 打印當前屏幕內容應使用的控制鍵是

  A.Scroll-Lock

  B.Num-Lock

  C.PgDn

  D.PrtSc(Print Screen)

  (6) 能將高級語言源程序轉換成目標程序的是

  A.調試程序

  B.解釋程序

  C.編譯程序

  D.編輯程序

  (7) 二進制數1110111.11轉換成十進制數是

  A.119.375

  B.119.75

  C.119.125

  D.119.3

  (8) 十六進制數FF.1轉換成十進制數是

  A.255.0625

  B.255.125

  C.127.0625

  D.127.125

  (9) 3.5英寸軟盤片的一個角上有一個滑動塊,如果移動該滑塊露出一個小孔,則該軟盤

  A.不能讀但能寫

  B.不能讀也不能寫

  C.只能讀不能寫

  D.能讀寫

  (10) 控制鍵^C的功能為

  A.終止當前操作

  B.系統(tǒng)復位

  C.暫停標準輸出設備的輸出

  D.結束命令行

  (11) COMMAND.COM為命令處理程序,DOS系統(tǒng)啟動后,它

  A.駐留在外存,需要時再裝入內存

  B.常駐內存,包含所有內部命令

  C.不能處理外部命令

  D.不能處理后綴為.EXE的可執(zhí)行文件

  (12) 為了將所有擴展名為.PAS的文件改成擴展名為.P,應使用命令

  A.REN *.PAS *.?AS

  B.REN PAS P

  C.REN *.PAS *.P

  D.REN *.PAS *.P??

  (13) 設當前盤中文件XY.C的路徑為\A\B\XU,當前目錄為\A\B。為了查看文件XY.C的內容,應使用命令

  A.TYPE XU\XY.C

  B.TYPE \XU\XY.C

  C.DIR XU\XY.C

  D.DIR \A\B\XU\XY.C

  (14) 要將提示符改成當前盤當前目錄后加一個大于號">",應使用命令

  A.PROMPT

  B.PROMPT $p$g

  C.PROMPT $$

  D.PROMPT C\>

  (15) 設C盤根目錄中有一個批處理文件A.BAT,當前盤為A盤。為了執(zhí)行該批處理文件,下列命令中一定正確的是

  A.C:\A

  B.C:A.BAT

  C.A.BAT

  D.\A.BAT

  (16) 設當前盤為C盤,將A盤根目錄下的文件目錄信息存放到當前盤當前目錄下的文件AB中,應使用命令

  A.TYPE A:\>AB

  B.DIR >AB

  C.DIR A:\>AB

  D.DIR \>AB

  (17) 可執(zhí)行文件ABC.EXE所需要的輸入數據已經按格式存放在文件XYZ中,要求將執(zhí)行結果在打印機上打印輸出。下列命令中正確的是

  A.ABCXYZ

  C.ABC>XYZPRN

  (18) 在當前盤當前目錄下有一個文件A.BAT,其內容為

  CD \

  MD \XYZ\AB\B\C

  CD XYZ\AB\B

  在正確執(zhí)行上述文件后,接著執(zhí)行下列命令時,不會發(fā)生錯誤的是

  A.MD C

  B.RD \XYZ

  C.RD C

  D.RD B

  (19) 下列命令組中兩個命令互相等價的是

  A.TYPE AB.TXT 與 DIR AB.TXT

  B.DISKCOMP A: B: 與 COMP A:*.* B:*.*

  C.TYPE AB.TXT>>XY.TXT 與 COPY AB.TXT XY.TXT

  D.TYPE AB.TXT>XY.TXT 與 COPY AB.TXT XY.TXT

  (20) 設A盤為啟動盤,其目錄結構為

  其中文件AUTOEXEC.BAT的內容如下:

  MD \XYZ

  CD \DOS\USER

  則由A盤啟動成功后,A盤的當前目錄是

  A.\DOS\USER

  B.\XYZ

  C.根目錄

  D.\DOS(21) 在C語言提供的合法的關鍵字是

  A.swicth

  B.cher

  C.Case

  D.default

  (22) 在C語言中,合法的字符常量是

  A.‘\084’

  B.‘\x43’

  C.‘ab’

  D.“\0”

  (23) 若已定義x和y為double類型,則表達式:x=1,y=x+3/2的值是

  A.1

  B.2

  C.2.0

  D.2.5

  (24) 合法的數組定義是

  A.int a[]="string";

  B.int a[5]={0,1,2,3,4,5};

  C.vhst s="string";

  D.char a[]={0,1,2,3,4,5};

  (25) 設a為整型變量,不能正確表達數學關系:1010&&a>15

  D.!(a<=10)&&!(a>=15)

  (26) 若t為double類型,表達式t=1,t5,t++的值是

  A.1

  B.6.0

  C.2.0

  D.1.0

  (27) 若有定義和語句:

  char s[10]:s="abcd";printf("%s\n",s);

  則結果是(以下u代表空格)

  A.輸出abcd

  B.輸出a

  C.輸出abcduuuuu

  D.編譯不通過

  (28) 若有定義和語句:

  int **pp,*p,a=10,b=20;

  pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);

  則輸出結果是:

  A.10,20

  B.10,10

  C.20,10

  D.20,20

  (29) 若有以下定義和語句:

  int u=010,v=0x10,w=10;

  printf("%d,%d,%d\n,u,v,w);

  則輸出結果是:

  A.8,16,10

  B.10,10,10

  C.8,8,10

  D.8,10,10

  (30) 若有以下定義和語句

  char c1=’b’,c2=’e’;

  printf("%d,%c\n",c2-c1,c2-’a’+"A");

  則輸出結果是:

  A.2,M

  B.3,E

  C.2,E

  D.輸出項與對應的格式控制不一致,輸出結果不確定

  (31) 若有以下定義:

  char s[20]="programming",*ps=s;

  則不能代表字符o的表達式是

  A.ps+2

  B.s[2]

  C.ps[2]

  D.ps+=2,*ps

  (32) 若ij已定義為int類型,則以下程序段中內循環(huán)體的總的執(zhí)行次數是

  for (i=5;i;i--)

  for(j=0;j<4;j++){...}

  A.20

  B.25

  C.24

  D.30

  (33) 若有以下定義和語句:

  char *s1="12345",*s2="1234";

  printf("%d\n",strlen(strcpy(s1,s2)));

  則輸出結果是

  A.4

  B.5

  C.9

  D.10

  (34) 若有以下定義和語句:

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

  則不能表示a數組元素的表達式是

  A.*p

  B.a[10]

  C.*a

  D.a[p-a]

  (35) 下面程序的輸出是

  main()

  { char *s="121";

  int k=0, a=0, b=0;

  do {k++;

  if(k%2==0) {a=a+s[k]-’0’;

  continue;}

  b=b+s[k]-’0’;

  a=a+s[k]-’0’;

  }

  while (s[k+1]);

  printf("k=%d a=%d b=%d\n",k,a,

  B.

  A.k=3 a=2 b=3

  B.k=3 a=3 b=2

  C.k=2 a=3 b=2

  D.k=2 a=2 b=3

  (36) 下面程序的輸出是

  main()

  { unsigned a=32768;

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

  }

  A.a=32768

  B.a=32767

  C.a=-32767

  D.a=-1(37) 若有以下定義:

  float x;int a,b;

  則正確的switch 語句是

  A.switch(x)

  B.switch(x)

  { case1.0:printf("*\n"); { case1,2:printf("*\n");

  case2.0:printf("**\n"); case3:printf("**\n");

  } }

  C.switch (a+

  B.

  D.switch (a+

  B.;

  { case 1:printf("\n"); { case 1:printf(."*\n");

  case 1+2:printf("**\n"); case 2:printf("**\n");

  } }

  (38) 若有定義:int x,y;char a,b,c;并有以下輸入數據(此處< CR> 代表換行符,/u代表空格):

  1u2

  AuBuC

  則能給x賦整數1,給y賦整數2,給a賦字符A,給b賦字符B,給c賦字符C 的正確程序段是

  A.scanf("x=%d y+%d",&x,&y);a=get);b=get);c=get);

  B.scanf("%d %d",&x,&y);a=get);b=get);c=get);

  C.scanf("%d%d%c%c%c,&x,&y,&a,&b,&

  C.;

  D.scanf("%d%d%c%c%c%c%c%c:&x,&y,&a,&a,&b,&b,&c,&

  C.;

  (39) 以下程序輸出的結果是

  #include

  #include

  main()

  { char w[][10]={"ABCD","EFGH","IJKL","MNOP"},K;

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

  printf("%s\n",&w[k][k]);

  }

  A.ABCD

  B.ABCD

  FGH EFG

  KL IJ

  M

  C.EFG

  D.FGH

  JK KL

  O

  (40) 若有以下的定義:

  int a[]={1,2,3,4,5,6,7,88,9,10}, *p=a;

  則值為3的表式是

  A.p+=2, *(p++)

  B.p+=2,*++p

  C.p+=3, *kp++

  D.p+=2,++*p

  (41) 假定所有變量均已正確說明,下列程序段運行后x的值是

  a=b=c=0;x=35;

  if(!a)x--;

  else if(

  B.;

  if(

  C.x=3;

  else x=4;

  A.34

  B.4

  C.35

  D.3

  (42) 在以下一組運算符中,優(yōu)先級最高的運算符是

  A.<=

  B.=

  C.%

  D.&&

  (43) 若有以下定義和語句:

  int w[2][3],(*pw)[3];

  pw=w;

  則對w數組元素非法引用是

  A.*(w[0]+2)

  B.*(pw+1)[2]

  C.pw[0][0]

  D.*(pw[1]+2)

  (44) 若有以下程序片段:

  char str[]="ab\n\012\\\"";

  printf(",strlen(str));

  上面程序片段的輸出結果是

  A.3

  B.4

  C.6

  D.12

  (45) 函數調用:strcat(strcpy(str1,str2),str3)的功能是

  A.將串str1復制到串str2中后再連接到串str3之后

  B.將串str1連接到串str2之后再復制到串str3之后

  C.將串str2復制到串str1中后再將串str3連接到串str1之后

  D.將串str2連接到串str1之后再將串str1復制到串str3中

  (46) 以下對C語言函數的有關描述中,正確的是

  A.在C中,調用函數時,只能把實參的值傳送給形參,形參的值不能傳送給實參

  B.C函數既可以嵌套定義又可以遞歸調用

  C.函數必須有返回值,否則不能使用函數

  D.C程序中有調用關系的所有函數必須放在同一個源程序文件中

  (47) 以下敘述中不正確的是

  A.在C中,函數中的自動變量可以賦初值,每調用一次,賦一次初值。

  B.在C中,在調用函數時,實在參數和對應形參在類型上只需賦值兼容。

  C.在C中,外部變量的隱含類別是自動存儲類別。

  D.在C中,函數形參可以說明為register變量。

  (48) 以下程序的輸出結果是

  #include

  subl(char a,char

  B.{char c; c=a;a=b;b=c;}

  sub2(char* a,char

  B.{char c; c=*a;*a=b;b=c;}

  sub3(char* a,char*

  B.{char c; c=*a;*a=*b;*b=c;} { char a,b;

  a=’A’;b=’B’;sub3(&a,&

  B.;puta);put

  B.;

  a=’A’;b=’B’;sub2(&a,

  B.;puta);prt

  B.;

  a=’A’;b=’B’;sub1(a,

  B.;puta);put

  B.;

  }

  A.BABBAB

  B.ABBBBA

  C.BABABA

  D.BAABBA

  (49) 設有如下定義:

  struct sk

  {int a;float b;}data,*p;

  若有p=&data;,則對data中的a域的正確引用是

  A.(*p).data.a

  B.(*p).a

  C.p->data.a

  D.p.data.a

  (50) 以下對枚舉類型名的定義中正確的'是

  A.enum a={one,two,three};

  B.enum a {one=9,two=-1,three};

  C.enum a={"one","two","three"};

  D.enum a {"one","two","three"};

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

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

  (1) 與十進制數101等值的二進制數為 【1】 。

  (2) DOS命令分為內部命令和外部命令,XCOPY命令屬于 【2】 。

  (3) 設當前盤為A盤,當前系統(tǒng)提示符為">",在不改變當前盤的情況下,顯示C盤的當前目錄的路徑,應使用命令 【3】 。

  (4) 自動批處理文件名必須是 【4】 。

  (5) 設當前盤當前目錄下有兩個文件W.TXT,現要將文件P.TXT連接到文件W.TXT的后面,若使用COPY命令,則完整的命令為 【5】 。

  (6) 請寫出以下數學式的C語言表達式 6

  ──.

  a

  ───

  b.c

  (7) 若已知a=10,b=20,則表達式!ab)

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

  else

  printf("####x=%\n",x);

  (11) 在對文件進行操作的過程中,若要求文件的位置回到文件的開頭,應當調用的函數是 11 函數.──

  (12) 若函數fun的類型void,且有以下定義和調用語句:

  #define M 50

  main()

  { int a[M];

  . . .

  fun(a);

  . . .

  }

  定義fun函數首部可以用三種不同的形式,請寫出這三種形式: 12 .13 .14

  ─ ─ ─

  (注意:①形參的名字請用q,②使用同一種風格).

  (13) 若給fun函數的形參s傳送字符串:"uuuu6354abc",則函數的返回值是 15

  ─.

  log fun(char s[]) {long n;int sign;

  for(;isspace(*s);s++); sign+(*s==’-’)?-1:1;

  if(*s==’+’‖*s==’-’s++; for(n=0;isdigit(*s);s++)

  n=10*n+(*s-’0’); return sign * n;

  (14) 以下函數用來在w數組中插入x,w數組中的數已按由小到大順序存放,n 所指存儲單元中存放數組中數據的個數.插入后數組中的數仍有序.請?zhí)羁?

  void fun (char *w,char x,int *n)

  { int i,p;

  p=0;

  w[*n]=x;

  while (x>w[p]) 16

  ──;

  for(i=*n;i>p;i--)w[i]= 17

  ─;

  w[p]=x;

  ++ *n;

  }

  (15) fun1函數的調用語句為:fun1(&a,&b,&c); 它將三個整數按由大到小的順序調整后依次放入a,b,c,三個變量中,a中放量大數.請?zhí)羁?

  void fun2 (int *x,int *y)

  { int t;

  t=*x; *x=*y;*y=t;

  }

  void fun1 (int *pa,int *pb,int *pc)

  { if(*pc>*pb) fun2( 18)

  ───;

  if(*pa<*pc)fun2(19)

  ──;

  if(*pa<*pb)fun2(20)

  ──; }

  參考答案

  一、選擇題((1)--(40)題每題1分,(41)--(50)題每題2分,共60分。

  (1)C (2)D (3)A (4)D (5)D (6)C 7)B (8)A (9)C (10)A

  (11)B (12)C (13)A (14)B (15)A (16)C (17)D (18)C (19)D (20)C

  (21)D (22)B (23)C (24)D (25)A (26)D (27)D (28)D (29)A (30)B

  (31)A (32)A (33)A (34)B (35)C (36)C (37)C (38)D (39)D (40)A

  (41)B (42)C (43)B (44)C (45)C (46)A (47)C (48)A (49)B (50)B

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

  (1) 1100101或(1100101)2

  (2) 外部命令(答 外部 不扣分)

  (3)cd c:(cd與C:中間至少要有一個空格)

  (4)AUTOEXEC.BAT

  (5)COPY W.TXT+P.TXT 或copy w.txt+p.txt w.txt

  (6)a/(b*c)或a/(a*b)或a/b/c 或a/c/b

  (7)1

  (8)###a=26,b=13,c=19

  (9)*(p+5)或p[5]

  (10)if(a<=b){x=1;printf("####x=%d\n",x);}else {y=2;printf("****y=%d\n",y);}

  或if(a>b){y=2;printf("****y=%d\n",y);}else{x=1;printf("####"x=%d\n",x);}

  或if(a<=b) printf("####"x=%d\n",x=1);else printf("****y=%d\n",y=2);

  或if(a>b) printf("****y=%d\n",y=2);else printf("####"x=%d\n",x=1);

  (11)rewind或 fseek

  (12)(13)(14) void fun(int *q); 或 void fun(q) int *q;

  void fun(int q[]); void fun(q) int q[];

  void fun(int q[M]); void fun(q) int q[M];

  說明:以上兩組答案中(A)三個答案可以任意次序 (B)標識符q可以用字母或下劃線開頭以字母、數字和下劃線組成的名字代替。(C)兩種風格可以混用。

  (15)6354

  (16)p++ 或 ++p 或 p=p+1 或p+=1或p=1+p

  (17)w[i-1]或 *(w+i-1)

  (18) pc ,pb 或 pb , pc

  (19)pc , pa 或 pa , pc

  (20)pb , pa或 pa , pb

  C語言考試題及答案 2

  一、選擇題。

  1). 下列關于棧的描述中正確的是( )

  A.在棧中只能插入元素而不能刪除元素

  B.在棧中只能刪除元素而不能插入元素

  C.棧是特殊的線性表,只能在一端插入或刪除元素

  D.棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素

  正確答案:C

  答案解析:棧是限定在一端進行插入與刪除的線性表,在棧中,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。

  2). 在一個容量為15的循環(huán)隊列中,若頭指針front=6,尾指針rear=9,則循環(huán)隊列中的元素個數為( )

  A.2

  B.3

  C.4

  D.5

  正確答案:B

  答案解析:循環(huán)隊列中,rear表示尾指針,front表示頭指針,當有元素入隊時,rear=rear+1,而元素出隊的時候,front=front+1,當rear值大于front值時,隊列中的元素個數為rear-front,當rear的值小于front時,列隊中的元素個數為rear-front+m(m表示隊列的容量)。

  3). 數據處理的最小單位是( )

  A.數據

  B.數據元素

  C.數據項

  D.數據結構

  正確答案:C

  4). 棧和隊列的共同點是( )

  A.都是先進后出

  B.都是先進先出

  C.只允許在端點處插入和刪除元素

  D.沒有共同點

  正確答案:C

  5). 在深度為5的'滿二叉樹中,葉子結點的個數為

  A.32

  B.31

  C.16

  D.15

  正確答案:C

  答案解析:滿二叉樹是指除最后一層外,每一層上的所有結點都有兩個葉子結點。在滿二叉樹中,層上的結點數都達到最大值,即在滿二叉樹的第k層上有2k-1個結點,且深度為m的滿二叉樹有2m-1個結點。

  6). 一個棧的初始狀態(tài)為空,F將元素1,2,3,A,B,C依次入棧,然后再依次出棧,則元素出棧的順序是( )

  A.1,2,3,A,B,C

  B.C,B,A,1,2,3

  C.C,B,A,3,2,1

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

  正確答案:C

  答案解析:棧是按照″先進后出″或″后進先出″的原則組織數據的。所以出棧順序是CBA321。

  C語言考試題及答案 3

  一、選擇題。

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

  A.調用printf( )函數時,必須要有輸出項

  B.使用put )函數時,必須在之前包含頭文件stdio.h

  C.在C語言中,整數可以以二進制、八進制或十六進制的形式輸出

  D.調節(jié)get )函數讀入字符時,可以從鍵盤上輸入字符所對應的ASCII碼

  正確答案:B

  答案解析:選項A,若printf函數沒有輸出項,且格式字符串中不含格式信息,則輸出的是格式字符串本身,若格式字符串含有格式信息,運行時則出現錯誤提示;選項C,在C語言中,整數可以十進制、八進制或十六進制的形式輸出;選項D,getchar函數是從標準輸入設備讀取一個字符。

  2). 以下結構體類型說明和變量定義中正確的是( )

  A.typedef struct { int n; char c; } REC; REC t1,t2;

  B.struct REC ; { int n; char c; }; REC t1,t2;

  C.typedef struct REC; { int n=0; char c=′A′; } t1,t2;

  D.struct { int n; char c; } REC; REC t1,t2;

  正確答案:A

  答案解析:定義結構體類型的一般形式為:struct 結構體名 {成員列表};struct 結構體名后不能加″;″號,所以選項B、C)錯誤,選項D中定義無名稱的結構體類型同時定義結構體變量形式應為struct t1,t2;選項A為用戶自定義類型,其為正確的定義形式。

  3). 若實體A和B是一對多的聯(lián)系,實體B和C是一對一的.聯(lián)系,則實體A和C的聯(lián)系是( )

  A.一對一

  B.一對多

  C.多對一

  D.多對多

  正確答案:B

  答案解析:由于B和C有一一對應的聯(lián)系,而A和B只間有一對多的聯(lián)系,則通過關系之間的傳遞,則A和C之間也是一對多的聯(lián)系。

  4). 關于C語言的變量,以下敘述中錯誤的是( )

  A.所謂變量是指在程序運行過程中其值可以被改變的量

  B.變量所占的存儲單元地址可以隨時改變

  C.程序中用到的所有變量都必須先定義后才能使用

  D.由三條下劃線構成的符號名是合法的變量名

  正確答案:B

  答案解析:變量是指在程序運行過程中其值可以改變的值,一個變量實質上是代表了內存中的某個存儲單元。在程序中對某個變量的操作實際上就是對這個存儲單元的操作,程序運行期間,這個分配的存儲單元不會改變,但是其值可以變化。變量命名要符合標識符的規(guī)定,其中下劃線是標識符的組成字符。程序中所有變量都必須先定義后使用。

  5). 當變量c的值不為2、4、6時,值也為″真″的表達式是( )

  A.(c==2)||(c==4)||(c==6)

  B.(c>=2 && c<=6)&& !(c%2)

  C.(c>=2 && c<=6)&&(c%2!=1)

  D.(c>=2 && c<=6) || (c!=3) || (c!=5)

  正確答案:D

  答案解析:邏輯或運算中,只要有一項為真,表達式的值就為真,故選項D中c的值不為2、4、6時,那么表達式(c>=2 && c<=6)以及(c!=3)、(c!=5)必有一個成立,表達式的值也為真。

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

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

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

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

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

  正確答案:A

  答案解析:在C語言中,應當在定義函數時指定函數值的類型,凡不加類型說明的函數,一律按整型處理。在定義函數時,對函數值說明的類型一般應該和return語句中的表達式類型一致。如果函數值的類型和return語句中的表達式類型不一致,則以函數類型為主,即函數類型決定返回值的類型。

  C語言考試題及答案 4

  一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分)

 。1)下列數據結構中,屬于非線性結構的是

  A.循環(huán)隊列

  B.帶鏈隊列

  C.二叉樹

  D.帶鏈棧

 。2)下列數據結果中,能夠按照“先進后出”原則存取數據的是

  A.循環(huán)隊列

  B.棧

  C.隊列

  D.二叉樹

 。3)對于循環(huán)隊列,下列敘述中正確的是

  A.隊頭指針是固定不變的

  B.隊頭指針一定大于隊尾指針

  C.隊頭指針一定小于隊尾指針

  D.隊頭指針可以大于隊尾指針,也可以小于隊尾指針

 。4)算法的空間復雜度是指

  A.算法在執(zhí)行過程中所需要的計算機存儲空間

  B.算法所處理的數據量

  C.算法程序中的語句或指令條數

  D.算法在執(zhí)行過程中所需要的臨時工作單元數

 。5)軟件設計中劃分模塊的一個準則是

  A.低內聚低耦合

  B.高內聚低耦合

  C.低內聚高耦合

  D. 高內聚高耦合

 。6)下列選項中不屬于結構化程序設計原則的是

  A.可封裝。

  B. 自頂向下。

  C.模塊化。

  D. 逐步求精。

 。7)軟件詳細設計產生的圖如下:

  該圖是

  A.N-S圖

  B.PAD圖

  C.程序流程圖

  D. E-R圖

  (8)數據庫管理系統(tǒng)是

  A.操作系統(tǒng)的一部分

  B.在操作系統(tǒng)支持下的系統(tǒng)軟件

  C.一種編譯系統(tǒng)

  D. 一種操作系統(tǒng)

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

  A.橢圓圖

  B.矩形

  C.菱形

  D. 三角形

 。10)有三個關系R,S和T如下:

  其中關系T由關系R和S通過某種操作得到,該操作為

  A.選擇

  B.投影

  C.交

  D.并

 。11)以下敘述中正確的是

  A.程序設計的任務就是編寫程序代碼并上機調試

  B.程序設計的任務就是確定所用數據結構

  C.程序設計的任務就是確定所用算法

  D.以上三種說法都不完整

  (12)以下選項中,能用作用戶標識符的是

  A.void

  B.8_8

  C._0_

  D.unsigned

 。13)閱讀以下程序

  #include

  main()

  { int case; float printF;

  printf(“請輸入2個數:”);

  scanf(“%d %f”,&case,&pjrintF);

  printf(“%d %f ”,case,printF);

  }

  該程序編譯時產生錯誤,其出錯原因是

  A.定義語句出錯,case是關鍵字,不能用作用戶自定義標識符

  B.定義語句出錯,printF不能用作用戶自定義標識符

  C.定義語句無錯,scanf不能作為輸入函數使用

  D.定義語句無錯,printf不能輸出case的值

  (14)表達式:(int)((double)9/2)-(9)%2的值是

  A.0

  B.3

  C.4

  D.5

 。15)若有定義語句:int x=10;,則表達式x-=x+x的值為

  A.-20

  B.-10

  C.0

  D.10

  (16)有以下程序

  #include

  main()

  { int a=1,b=0;

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

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

  }

  程序運行后的輸出結果是

  A.0,0

  B.1,0

  C.3,2

  D.1,2

  17)設有定義:int a=1,b=2,c=3;,以下語句中執(zhí)行效果與其它三個不同的是

  A.if(a>B. c=a,a=b,b=c;

  B.if(a>B. {c=a,a=b,b=c;}

  C.if(a>B. c=a;a=b;b=c;

  D.if(a>B. {c=a;a=b;b=c;}

  (18)有以下程序

  #include

  main()

  { int c=0,k;

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

  switch (k)

  { default: c+=k

  case 2: c++;break;

  case 4: c+=2;break;

  }

  printf(“%d ”,C.;

  }

  程序運行后的輸出結果是

  A.3

  B.5

  C.7

  D.9

  (19)以下程序段中,與語句:k=a>b?(b>c?1:0):0;功能相同的是

  A.if((a>b)&&(b>C.) k=1;

  else k=0;

  B.if((a>b)||(b>C. k=1;

  else k=0;

  C.if(a<=B. k=0;

  else if(b<=C.k=1;

  D.if(a>B. k=1;

  else if(b>C.k=1;

  else k=0;

  20)有以下程序

  #include

  main()

  { char s[]={“012xy”};int i,n=0;

  for(i=0;s[i]!=0;i++)

  if(s[i]>=’a’&&s[i]<=’z’) n++;

  printf(“%d ”,n);

  }

  程序運行后的輸出結果是

  A.0

  B.2

  C.3

  D.5

  (21)有以下程序

  #include

  main()

  { int n=2,k=0;

  while(k++&&n++>2);

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

  }

  程序運行后的.輸出結果是

  A.0 2

  B.1 3

  C.5 7

  D.1 2

 。22)有以下定義語句,編譯時會出現編譯錯誤的是

  A.char a=’a’;

  B.char a=’ ’;

  C.char a=’aa’;

  D.char a=’x2d’;

 。23)有以下程序

  #include

  main()

  { char c1,c2;

  c1=’A’+’8’-‘4’;

  c2=’A’+’8’-‘5’;

  printf(“%c,%d ”,c1,c2);

  }

  已知字母A的ASCII碼為65,程序運行后的輸出結果是

  A.E,68

  B.D,69

  C.E,D

  D.輸出無定值

 。24)有以下程序

  #include

  void fun(int p)

  { int d=2;

  p=d++; printf(“%d”,p);}

  main()

  { int a=1;

  fun(a); printf(“%d ”,a);}

  程序運行后的輸出結果是

  A.32

  B.12

  C.21

  D.22

  (25)以下函數findmax擬實現在數組中查找最大值并作為函數值返回,但程序中有錯導致不能實現預定功能

  #define MIN -2147483647

  int findmax (int x[],int n)

  { int i,max;

  for(i=0;i

  { max=MIN;

  if(max

  return max;

  }

  造成錯誤的原因是

  A.定義語句int i,max;中max未賦初值

  B.賦值語句max=MIN;中,不應給max賦MIN值

  C.語句if(max

  D.賦值語句max=MIN;放錯了位置

 。26)有以下程序

  #include

  main()

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

  r=p;p=q;q=r;

  printf(“%d,%d,%d,%d ”,m,n,*p,*q);

  }

  程序運行后的輸出結果是

  A.1,2,1,2

  B.1,2,2,1

  C.2,1,2,1

  D.2,1,1,2

 。27)若有定義語句:int a[4][10],*p,*q[4];且0≤i<4,則錯誤的賦值是

  A.p=a

  B.q[i]=a[i]

  C.p=a[i]

  D.p=&a[2][1]

 。28)有以下程序

  #include

  #include

  main()

  { char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];

  printf(“%d,”,strlen(p));printf(“%s ”,p);

  }

  程序運行后的輸出結果是

  A.9,One*World

  B.9,One*Dream

  C.10,One*Dream

  D.10,One*World

 。29)有以下程序

  #include

  main()

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

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

  switch(i%2)

  { case 0:switch(a[i]%2)

  {case 0:a[i]++;break;

  case 1:a[i]--;

  }break;

  case 1:a[i[=0;

  }

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

  }

  A.3 3 4 4

  B.2 0 5 0

  C.3 0 4 0

  D.0 3 0 4

 。30)有以下程序

  #include

  #include

  main()

  { char a[10]=”abcd”;

  printf(“%d,%d ”,strlen(a),sizeof(a));

  }

  程序運行后的輸出結果是

  A.7,4

  B.4,10

  C.8,8

  D.10,10

 。31)下面是有關C語言字符數組的描述,其中錯誤的是

  A.不可以用賦值語句給字符數組名賦字符串

  B.可以用輸入語句把字符串整體輸入給字符數組

  C.字符數組中的內容不一定是字符串

  D.字符數組只能存放字符串

 。32)下列函數的功能是

  fun(char * a,char * b)

  { while((*b=*a)!=’’) {a++,b++;} }

  A.將a所指字符串賦給b所指空間

  B.使指針b指向a所指字符串

  C.將a所指字符串和b所指字符串進行比較

  D.檢查a和b所指字符串中是否有’’

 。33)設有以下函數

  void fun(int n,char * s) {……}

  則下面對函數指針的定義和賦值均是正確的是

  A.void (*pf)(); pf=fun;

  B.viod *pf(); pf=fun;

  C.void *pf(); *pf=fun;

  D.void (*pf)(int,char);pf=&fun;

 。34)有以下程序

  #include

  int f(int n);

  main()

  { int a=3,s;

  s=f(a);s=s+f(a);printf(“%d ”,s);

  }

  int f(int n)

  { static int a=1;

  n+=a++;

  return n;

  }

  程序運行以后的輸出結果是

  A.7

  B.8

  C.9

  D.10

 。35)有以下程序

  #include

  #define f(x) x*x*x

  main()

  { int a=3,s,t;

  s=f(a+1);t=f((a+1));

  printf(“%d,%d ’,s,t);

  }

  程序運行后的輸出結果是

  A.10,64

  B.10,10

  C.64,10

  D.64,64

 。36)下面結構體的定義語句中,錯誤的是

  A.struct ord {int x;int y;int z;}; struct ord a;

  B.struct ord {int x;int y;int z;} struct ord a;

  C.struct ord {int x;int y;int z;} a;

  D.struct {int x;int y;int z;} a;

 。37)設有定義:char *c;,以下選項中能夠使字符型指針c正確指向一個字符串的是

  A.char str[ ]=”string”;c=str;

  B.scanf(“%s”,C.;

  C.c=get);

  D.*c=”string”;

 。38)有以下程序

  #include

  #include

  struct A

  { int a; char b[10]; double c;};

  struct A f(struct A t);

  main()

  { struct A a={1001,”ZhangDa”,1098.0};

  a=f(a);jprintf(“%d,%s,%6.1f ”,a.a,a.b,a.C.;

  }

  struct A f(struct A t)

  ( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )

  程序運行后的輸出結果是

  A.1001,ZhangDa,1098.0

  B.1001,ZhangDa,1202.0

  C.1001,ChangRong,1098.0

  D.1001,ChangRong,1202.0

 。39)若有以下程序段

  int r=8;

  printf(“%d ”,r>>1);

  輸出結果是

  A.16

  B.8

  C.4

  D.2

 。40)下列關于C語言文件的敘述中正確的是

  A.文件由一系列數據依次排列組成,只能構成二進制文件

  B.文件由結構序列組成,可以構成二進制文件或文本文件

  C.文件由數據序列組成,可以構成二進制文件或文本文件

  D.文件由字符序列組成,其類型只能是文本文件

【C語言考試題及答案】相關文章:

C語言經典例題及答案12-05

C語言試題及答案07-26

C語言模擬試題及答案03-28

2016計算機二級《C語言》無紙化考試題及答案03-28

C語言測試試題及答案08-02

C語言考前練習試題及答案03-28

C語言考試試題及答案06-12

C語言測試題及答案07-03

C語言筆試試題及答案12-05