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

C語言

C語言考試題及答案

時間:2025-05-04 09:08:56 雪桃 C語言 我要投稿

2024年C語言考試題及答案

  在各個領(lǐng)域,我們都經(jīng)?吹皆囶}的身影,試題是考核某種技能水平的標(biāo)準(zhǔn)。你所了解的試題是什么樣的呢?下面是小編整理的2024年C語言考試題及答案,希望對大家有所幫助。

2024年C語言考試題及答案

  C語言考試題及答案 1

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

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

  (1) 所謂“裸機”是指

  A.單片機

  B.單板機

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

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

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

  A.軟盤

  B.硬盤

  C.光盤

  D.內(nèi)存

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

  A.操作系統(tǒng)

  B.語言處理程序

  C.工具軟件

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

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

  A.為8個二進制位

  B.為16個二進制位

  C.為32個二進制位

  D.與CPU芯片的型號有關(guān)

  (5) 打印當(dāng)前屏幕內(nèi)容應(yīng)使用的控制鍵是

  A.Scroll-Lock

  B.Num-Lock

  C.PgDn

  D.PrtSc(Print Screen)

  (6) 能將高級語言源程序轉(zhuǎn)換成目標(biāo)程序的是

  A.調(diào)試程序

  B.解釋程序

  C.編譯程序

  D.編輯程序

  (7) 二進制數(shù)1110111.11轉(zhuǎn)換成十進制數(shù)是

  A.119.375

  B.119.75

  C.119.125

  D.119.3

  (8) 十六進制數(shù)FF.1轉(zhuǎn)換成十進制數(shù)是

  A.255.0625

  B.255.125

  C.127.0625

  D.127.125

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

  A.不能讀但能寫

  B.不能讀也不能寫

  C.只能讀不能寫

  D.能讀寫

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

  A.終止當(dāng)前操作

  B.系統(tǒng)復(fù)位

  C.暫停標(biāo)準(zhǔn)輸出設(shè)備的輸出

  D.結(jié)束命令行

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

  A.駐留在外存,需要時再裝入內(nèi)存

  B.常駐內(nèi)存,包含所有內(nèi)部命令

  C.不能處理外部命令

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

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

  A.REN *.PAS *.?AS

  B.REN PAS P

  C.REN *.PAS *.P

  D.REN *.PAS *.P??

  (13) 設(shè)當(dāng)前盤中文件XY.C的路徑為\A\B\XU,當(dāng)前目錄為\A\B。為了查看文件XY.C的內(nèi)容,應(yīng)使用命令

  A.TYPE XU\XY.C

  B.TYPE \XU\XY.C

  C.DIR XU\XY.C

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

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

  A.PROMPT

  B.PROMPT $p$g

  C.PROMPT $$

  D.PROMPT C\>

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

  A.C:\A

  B.C:A.BAT

  C.A.BAT

  D.\A.BAT

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

  A.TYPE A:\>AB

  B.DIR >AB

  C.DIR A:\>AB

  D.DIR \>AB

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

  A.ABCXYZ

  C.ABC>XYZPRN

  (18) 在當(dāng)前盤當(dāng)前目錄下有一個文件A.BAT,其內(nèi)容為

  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) 設(shè)A盤為啟動盤,其目錄結(jié)構(gòu)為

  其中文件AUTOEXEC.BAT的內(nèi)容如下:

  MD \XYZ

  CD \DOS\USER

  則由A盤啟動成功后,A盤的當(dāng)前目錄是

  A.\DOS\USER

  B.\XYZ

  C.根目錄

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

  A.swicth

  B.cher

  C.Case

  D.default

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

  A.‘\084’

  B.‘\x43’

  C.‘a(chǎn)b’

  D.“\0”

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

  A.1

  B.2

  C.2.0

  D.2.5

  (24) 合法的數(shù)組定義是

  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) 設(shè)a為整型變量,不能正確表達數(shù)學(xué)關(guān)系: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);

  則結(jié)果是(以下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);

  則輸出結(jié)果是:

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

  則輸出結(jié)果是:

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

  則輸出結(jié)果是:

  A.2,M

  B.3,E

  C.2,E

  D.輸出項與對應(yīng)的格式控制不一致,輸出結(jié)果不確定

  (31) 若有以下定義:

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

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

  A.ps+2

  B.s[2]

  C.ps[2]

  D.ps+=2,*ps

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

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

  則輸出結(jié)果是

  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數(shù)組元素的表達式是

  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;并有以下輸入數(shù)據(jù)(此處< CR> 代表換行符,/u代表空格):

  1u2

  AuBuC

  則能給x賦整數(shù)1,給y賦整數(shù)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) 以下程序輸出的結(jié)果是

  #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數(shù)組元素非法引用是

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

  上面程序片段的輸出結(jié)果是

  A.3

  B.4

  C.6

  D.12

  (45) 函數(shù)調(diào)用:strcat(strcpy(str1,str2),str3)的功能是

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

  B.將串str1連接到串str2之后再復(fù)制到串str3之后

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

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

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

  A.在C中,調(diào)用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參

  B.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用

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

  D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個源程序文件中

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

  A.在C中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次,賦一次初值。

  B.在C中,在調(diào)用函數(shù)時,實在參數(shù)和對應(yīng)形參在類型上只需賦值兼容。

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

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

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

  #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) 設(shè)有如下定義:

  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) 與十進制數(shù)101等值的二進制數(shù)為 【1】 。

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

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

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

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

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

  ──.

  a

  ───

  b.c

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

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

  else

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

  (11) 在對文件進行操作的過程中,若要求文件的位置回到文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是 11 函數(shù).──

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

  #define M 50

  main()

  { int a[M];

  . . .

  fun(a);

  . . .

  }

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

  ─ ─ ─

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

  (13) 若給fun函數(shù)的形參s傳送字符串:"uuuu6354abc",則函數(shù)的返回值是 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) 以下函數(shù)用來在w數(shù)組中插入x,w數(shù)組中的數(shù)已按由小到大順序存放,n 所指存儲單元中存放數(shù)組中數(shù)據(jù)的個數(shù).插入后數(shù)組中的數(shù)仍有序.請?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函數(shù)的調(diào)用語句為:fun1(&a,&b,&c); 它將三個整數(shù)按由大到小的順序調(diào)整后依次放入a,b,c,三個變量中,a中放量大數(shù).請?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)標(biāo)識符q可以用字母或下劃線開頭以字母、數(shù)字和下劃線組成的名字代替。(C)兩種風(fēng)格可以混用。

  (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). 下列關(guān)于棧的描述中正確的是( )

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

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

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

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

  正確答案:C

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

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

  A.2

  B.3

  C.4

  D.5

  正確答案:B

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

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

  A.數(shù)據(jù)

  B.數(shù)據(jù)元素

  C.數(shù)據(jù)項

  D.數(shù)據(jù)結(jié)構(gòu)

  正確答案:C

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

  A.都是先進后出

  B.都是先進先出

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

  D.沒有共同點

  正確答案:C

  5). 在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為

  A.32

  B.31

  C.16

  D.15

  正確答案:C

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

  6). 一個棧的初始狀態(tài)為空,F(xiàn)將元素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

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

  C語言考試題及答案 3

  一、選擇題。

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

  A.調(diào)用printf( )函數(shù)時,必須要有輸出項

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

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

  D.調(diào)節(jié)get )函數(shù)讀入字符時,可以從鍵盤上輸入字符所對應(yīng)的ASCII碼

  正確答案:B

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

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

  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

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

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

  A.一對一

  B.一對多

  C.多對一

  D.多對多

  正確答案:B

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

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

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

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

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

  D.由三條下劃線構(gòu)成的符號名是合法的變量名

  正確答案:B

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

  5). 當(dāng)變量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語言中,函數(shù)返回值的類型最終取決于

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

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

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

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

  正確答案:A

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

  C語言考試題及答案 4

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

 。1)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是

  A.循環(huán)隊列

  B.帶鏈隊列

  C.二叉樹

  D.帶鏈棧

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

  A.循環(huán)隊列

  B.棧

  C.隊列

  D.二叉樹

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

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

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

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

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

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

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

  B.算法所處理的數(shù)據(jù)量

  C.算法程序中的語句或指令條數(shù)

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

 。5)軟件設(shè)計中劃分模塊的一個準(zhǔn)則是

  A.低內(nèi)聚低耦合

  B.高內(nèi)聚低耦合

  C.低內(nèi)聚高耦合

  D. 高內(nèi)聚高耦合

  (6)下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是

  A.可封裝。

  B. 自頂向下。

  C.模塊化。

  D. 逐步求精。

 。7)軟件詳細(xì)設(shè)計產(chǎn)生的圖如下:

  該圖是

  A.N-S圖

  B.PAD圖

  C.程序流程圖

  D. E-R圖

  (8)數(shù)據(jù)庫管理系統(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)有三個關(guān)系R,S和T如下:

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

  A.選擇

  B.投影

  C.交

  D.并

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

  A.程序設(shè)計的任務(wù)就是編寫程序代碼并上機調(diào)試

  B.程序設(shè)計的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)

  C.程序設(shè)計的任務(wù)就是確定所用算法

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

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

  A.void

  B.8_8

  C._0_

  D.unsigned

 。13)閱讀以下程序

  #include

  main()

  { int case; float printF;

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

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

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

  }

  該程序編譯時產(chǎn)生錯誤,其出錯原因是

  A.定義語句出錯,case是關(guān)鍵字,不能用作用戶自定義標(biāo)識符

  B.定義語句出錯,printF不能用作用戶自定義標(biāo)識符

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

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

  }

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

  A.0,0

  B.1,0

  C.3,2

  D.1,2

  17)設(shè)有定義: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.;

  }

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

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

  }

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

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

  }

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

  A.0 2

  B.1 3

  C.5 7

  D.1 2

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

  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,程序運行后的輸出結(jié)果是

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

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

  A.32

  B.12

  C.21

  D.22

 。25)以下函數(shù)findmax擬實現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯導(dǎo)致不能實現(xiàn)預(yù)定功能

  #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;中,不應(yīng)給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);

  }

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

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

  }

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

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

  }

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

  A.7,4

  B.4,10

  C.8,8

  D.10,10

 。31)下面是有關(guān)C語言字符數(shù)組的`描述,其中錯誤的是

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

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

  C.字符數(shù)組中的內(nèi)容不一定是字符串

  D.字符數(shù)組只能存放字符串

 。32)下列函數(shù)的功能是

  fun(char * a,char * b)

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

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

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

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

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

 。33)設(shè)有以下函數(shù)

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

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

  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;

  }

  程序運行以后的輸出結(jié)果是

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

  }

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

  A.10,64

  B.10,10

  C.64,10

  D.64,64

 。36)下面結(jié)構(gòu)體的定義語句中,錯誤的是

  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)設(shè)有定義: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; )

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

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

  輸出結(jié)果是

  A.16

  B.8

  C.4

  D.2

  (40)下列關(guān)于C語言文件的敘述中正確的是

  A.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進制文件

  B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進制文件或文本文件

  C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進制文件或文本文件

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

【C語言考試題及答案】相關(guān)文章:

C語言試題及答案07-26

C語言經(jīng)典例題及答案06-19

C語言習(xí)題及答案09-24

2017年計算機C語言考試題及答案08-06

C語言模擬試題及答案09-19

C語言筆試題及答案02-13

C語言模擬試題及答案06-17

2017計算機二級《C語言》考試題及答案09-29

計算機二級《C語言》備考試題及答案06-18