官术网_书友最值得收藏!

第一部分 考研真題精選

一、選擇題

1以下均是合法變量名的是(  )。[武漢科技大學(xué)2019研]

A.#name   total

B.node  value_max

C._var  long

D.stu-code   a+b

【答案】B

【解析】C語言中變量名只能包含數(shù)字,字母和下劃線,且只能以字母和下劃線開始。A項含非法字符#,錯誤;C中l(wèi)ong為關(guān)鍵字,變量不能以關(guān)鍵字命名;D中含非法字符-和+。

2以下選項中不屬于C語言類型的是(  )。[武漢科技大學(xué)2019研]

A.short int

B.unsigned long int

C.char

D.bool

【答案】D

【解析】C語言中沒有bool型,只有C++才有boolean型,也稱bool。C語言中一般用“0”表示“假”,用“1”表示“真”。

3若有聲明語句:int x; char y[20]; double z; 則正確的輸入語句是(  )。[武漢科技大學(xué)2019研]

A.scanf("%d%c%le\n",&x,&y,&z);

B.scanf("%2d%s%lf",&x,&y,&z);

C.scanf("%d%s%lf",&x,y,&z);

D.scanf("%x%s%3.2f",&x,y,&z);

【答案】C

【解析】y為一維數(shù)組名,指向數(shù)組首元素的地址,因此不需要再使用取地址運算符&,AB錯誤;D中%3.2f表示長度為3,小數(shù)為2位,但是小數(shù)點也占一位,因此D錯誤,答案選C。

4若a、b和t都為int變量,則下面不能交換變量a和b值的是(  )。[武漢科技大學(xué)2019研]

A.t=a; a=b; b=t;

B.a(chǎn)=t; t=b; b=a;

C.t=b; b=a; a=t;

D.a(chǎn)=a+b; b=a-b; a=a-b;

【答案】B

【解析】B中首先把t的值賦值給了a,則a的值已經(jīng)被取代了,后面執(zhí)行b=a,則ab的值都等于t的值。

5若有定義:int a=1,b=2; float x=3,w; 則合法的switch語句是(  )。[武漢科技大學(xué)2019研]

A.

switch(a)
{
  case 1:w=a/b; break;
  case 2: w=a%b; break;
}

B.

switch(b)
{
  case 1:z=a%b;
  case 2: z=a/b; break;
}

C.

switch(x)
{
  case 2:w=a%b; break;
  case 1:w=a/b; break;
}

D.

switch(a+b);
{
  case 3:
  case 2:w=a%b; break;
}

【答案】A

【解析】B中,變量z未定義;C中x為浮點型,switch后面的表達(dá)式不能是浮點型,只能是整型和字符型;D中swith表達(dá)式后面不能加分號,答案選A。

6對下述程序段的描述正確的是(  )。[武漢科技大學(xué)2019研]

scanf("%d,%d",&a,&b);
if(a>b)
  a=b;b=a;
else
  a++; b++;
printf("a=%d,b=%d",a,b);

A.若輸入4,5則輸出a=5,b=6

B.若輸入5,4則輸出a=4,b=5

C.若輸入5,4則輸出a=5,b=5

D.有語法錯誤,不能通過編譯

【答案】D

【解析】if(表達(dá)式)后面如果沒有用花括號括起來,那么if的子語句只包括第一條語句,即在程序中只有a=b是屬于if語句塊的,if和else中間隔了一條語句b=a,編譯無法通過。

7以下正確的描述是(  )。[武漢科技大學(xué)2019研]

A.從多層循環(huán)嵌套中退出時,只能使用break語句

B.在循環(huán)體內(nèi)使用continue和break語句,作用相同

C.只能在循環(huán)體內(nèi)和switch體內(nèi)使用break語句

D.continue語句的作用是結(jié)束整個循環(huán)的執(zhí)行

【答案】C

【解析】從多層嵌套中退出不是只能使用break語句,也可以使用return或者程序自己執(zhí)行完,A錯誤;在循環(huán)體內(nèi)continue代表不執(zhí)行該次循環(huán)中的剩余未執(zhí)行語句,break代表直接跳出本層循環(huán),BD錯誤,答案選C。

8如果有定義:int x=0,s=0; 則下面程序段的執(zhí)行結(jié)果是(  )。[武漢科技大學(xué)2019研]

while(!x!= 0)
  s+=x++;
printf(“%d”,s);

A.1

B.0

C.無限循環(huán)

D.控制表達(dá)式非法,無法編譯

【答案】B

【解析】while后面的表達(dá)式中,首先執(zhí)行!運算符,然后再執(zhí)行!=運算符,第一次判斷中,x=0則!x!=0滿足條件,進(jìn)入循環(huán)中,執(zhí)行s+=x++,x++是先運算,再自加,執(zhí)行完后s=0,x=1,再回到while的判斷條件,判斷為false,跳出循環(huán),輸出s的值為0,答案選B。

9下面各語句中,能正確進(jìn)行字符串操作的語句是(  )。[武漢科技大學(xué)2019研]

A.char a[10]={'A','B','C','D','\0'};

B.char a[10];  a="ABCDE";

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

D.char *s; scanf("%s", s);

【答案】A

【解析】B項中,字符數(shù)組的數(shù)組名指向數(shù)組的首元素地址,初始化后不可再被更改;CD兩項中的字符指針在定義時均沒有進(jìn)行初始化,對其賦值是非法的,答案選A。

10以下能對數(shù)組value進(jìn)行正確初始化的語句是(  )。[武漢科技大學(xué)2019研]

A.int value[2][]={{1,1},{2,2}};

B.int value[][3]={{1,,3},{4,5,6}};

C.int value[2][3]={1,2,3,4,5,6};

D.int value[][3]={{1},{4,6,}};

【答案】C

【解析】二維數(shù)組的定義必須指定列數(shù),可以不用指定行數(shù),A錯誤;數(shù)組value為int型數(shù)組,不能給數(shù)組里面的元素賦空值,BD錯誤,答案選C。

11函數(shù)fun和實參數(shù)組的聲明形式為:void fun(char ch,float x[]); float a[5];

以下對函數(shù)的調(diào)用語句中,正確的是(  )。[武漢科技大學(xué)2019研]

A.fun("a",a[]);

B.t=fun('D',a);

C.fun('65',2.8);

D.fun(32,a[5]);

【答案】B

【解析】調(diào)用函數(shù)fun需要傳入兩個實參,第一個實參的類型是char字符型,第二個實參的類型是float數(shù)組型,只有選項B滿足條件。其中C項'65'本身有語法錯誤,D項在傳遞數(shù)組時只需要數(shù)組名即可。

12設(shè)有定義int a[3][3];和函數(shù)調(diào)用語句sort(a,3); 則正確的函數(shù)聲明是(  )。[武漢科技大學(xué)2019研]

A.void sort(int a,n);

B.void sort(int a[][],int n);

C.void sort(int a[][3],int n);

D.void sort(int a[][3],n);

【答案】C

【解析】根據(jù)函數(shù)調(diào)用語句可以知道sort函數(shù)有兩個參數(shù),第一個參數(shù)的類型是一個二維int型數(shù)組,第二個參數(shù)是一個int型數(shù)據(jù),所以A錯誤;B中因為二維數(shù)組一定要指定列數(shù),B錯誤;D中形參n沒有指定數(shù)據(jù)類型,錯誤;答案選C。

13有函數(shù)定義:int func(int *p),x和y是int型變量,則正確的調(diào)用是(  )。[武漢科技大學(xué)2019研]

A.y=func(x);

B.func(x);

C.func()=x;

D.y=func(&x);

【答案】D

【解析】根據(jù)func函數(shù)的定義可以知道調(diào)用func函數(shù)需要傳入一個指針,且該指針的指向類型是int型,只有D傳入的是指向int型數(shù)據(jù)的指針,答案選D。

14已知書籍結(jié)構(gòu)定義如下,則對結(jié)構(gòu)變量bk的正確賦值是(  )。[武漢科技大學(xué)2019研]

struct BOOK
{
  struct
  {
    int year,month,day;
  }publish;
}bk;

A.bk.year=1998;  bk.month=11;  bk.day=11;

B.publish.year=1998;  publish.month=11;  publish.day=11;

C.year=1998;  month=11;  day=11;

D.bk.publish.year=1998;  bk.publish.month=11;  bk.publish.day=11;

【答案】D

【解析】變量bk是結(jié)構(gòu)體BOOK的一個結(jié)構(gòu)體變量,該變量含有一個成員變量publish,publish也是一個結(jié)構(gòu)體變量,該結(jié)構(gòu)變量含三個成員變量,分別是year、month、day,結(jié)構(gòu)體變量中的成員變量不可直接訪問,必須以結(jié)構(gòu)體變量名.成員變量名形式訪問,所以只能通過bk.publish.year形式訪問到最內(nèi)層的變量并為其賦值,答案選D。

15對于以下定義,能打印出字母h的語句是(  )。[武漢科技大學(xué)2019研]

struct person{ char title[20];  int code;};

struct person book[5]={"Physics",17,"Math",18,"English",20,"History",18};

A.printf("%c",book[0].title[1]);

B.printf("%c",book[1].title[4]);

C.printf("%c",book[2].title[7]);

D.printf("%c",book[3].title[6]);

【答案】A

【解析】person是一個自定義結(jié)構(gòu)體類型,該結(jié)構(gòu)體含有兩個成員變量,分別是一個字符數(shù)組和一個int數(shù)據(jù),BC選項打印出來的是'\0';D選項打印出來的是y,只有A打印出來的是h,答案選A。

16與十進(jìn)制1100等值的十六進(jìn)制數(shù)是(  )。[華南理工大學(xué)2018研]

A.44A

B.44C

C.54A

D.54C

【答案】B

【解析】1100轉(zhuǎn)換成二進(jìn)制為0100 0100 1100,因此轉(zhuǎn)換為十六進(jìn)制為44C。

17設(shè)int a=3;,下列哪一個表達(dá)式的值等于0(  )。[華南理工大學(xué)2018研]

A.a(chǎn)&&(a>0)

B.!a||a

C.a(chǎn)%=a

D.a(chǎn)>=a

【答案】C

【解析】A中a!=0且a>0所以表達(dá)式的值為1;B中||表示或,所以值也為1;D中表達(dá)式值也為1;答案選C。

18在C語言中,當(dāng)函數(shù)的返回值缺省時,表示該函數(shù)返回值的類型是(  )。[華南理工大學(xué)2018研]

A.char

B.float

C.long

D.int

【答案】D

【解析】在C語言中,當(dāng)函數(shù)的返回值缺省時,函數(shù)返回值的類型默認(rèn)為int型。

19十六進(jìn)制形式輸出整數(shù)的格式說明符是(  )。[華南理工大學(xué)2018研]

A.%u

B.%ld

C.%x

D.%o

【答案】C

【解析】A表示輸出的是無符號整型;B表示輸出的是有符號長整型;D表示輸出的是八進(jìn)制。

20若有說明:int *p,m=5,n;,以下正確的程序段是(  )。[華南理工大學(xué)2018研]

A.

p=&n;
  scanf("%d",n);

B.

p=&n;
  scanf("%d",*p);

C.

scanf("%d",&n);
  p=n

D.

p=&n;
  *p=n;

【答案】D

【解析】scanf語句中第二個參數(shù)應(yīng)該是變量的地址,AB錯誤;C中p為指針變量,不可以直接把一個int型變量賦值給指針型,C錯誤;答案選D。

21兩次運行下面的程序,如果從鍵盤上分別輸入6和4,則輸出的結(jié)果是(  )。[華南理工大學(xué)2018研]

void main(void)
{
  int x;
  scanf(“%d”,&x);
  if(x++>5) printf(“%d”,x);
  else printf(“%d\n”,x--);
}

A.7和5

B.6和3

C.7和4

D.6和4

【答案】A

【解析】當(dāng)輸入6時,判斷x++>5為真,進(jìn)入if語句塊,此時x=7,輸出7;當(dāng)輸入4時,進(jìn)入else語句塊,此時x=5,然后因為--是先運算后自減,所以先輸出5,后x的值為4,答案選A。

22以下敘述中不正確的是(  )。[華南理工大學(xué)2018研]

A.在不同的函數(shù)中可以使用相同名字的變量

B.函數(shù)中的形式參數(shù)是局部變量

C.在一個函數(shù)內(nèi)定義的變量只能在本函數(shù)范圍內(nèi)有效

D.在一個函數(shù)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效

【答案】D

【解析】在一個函數(shù)的復(fù)合語句中定義的變量只在該復(fù)合語句中有效。

23設(shè)有下列程序

ff( )
{
  int c=9;
  static int a=1, b=4;
  if (b == 4)
    {a+=c; b++;}
  else
    {a+= c; b-- ;}
  printf (“a=%d,b=%d\n”, a, b);
}
main ( )
{ ff( ); ff( ); }

則該程序執(zhí)行后,顯示的結(jié)果為(  )。[華南理工大學(xué)2018研]

A.a(chǎn)=10,b=5

a=19,b=5

B.a(chǎn)=10,b=4

a=19,b=5

C.a(chǎn)=10,b=4

a=19,b=4

D.a(chǎn)=10,b=5

a=19,b=4

【答案】D

【解析】第一次調(diào)用ff()時,c=9,a=1,b=4,程序進(jìn)入if語句塊,執(zhí)行完后a=10,b=5;第二次調(diào)用ff(),因為a、b是靜態(tài)變量,所以a、b的值不會重新初始化,所以進(jìn)入else語句塊,執(zhí)行完后a=19,b=4,答案選D。

24以下數(shù)組定義中不正確的是(  )。[華南理工大學(xué)2018研]

A.int a[2][3];

B.int b[][3] = {0};

C.int c[100][100] = {0};

D.int d[3][] = {{1}, {1, 2, 3},{1}};

【答案】D

【解析】定義二維數(shù)組時一定要指定數(shù)組的列數(shù),可以不指定數(shù)組的行數(shù),D錯誤。

25若有定義:int *p,*s,c;,且各變量已正確賦值,則非法的賦值表達(dá)式是(  )。[華南理工大學(xué)2018研]

A.p = s

B.c = *s

C.*s = &p

D.p = &c

【答案】C

【解析】C中p為指針變量,則&p表示的是指針的地址,若要賦值,則左邊變量應(yīng)該是一個二級指針,而*s代表的是s所指向地址的變量值,這個變量是一個int型,顯然不正確。

26若有以下說明:

int w[3][4]={{0,1},{2,4},{5,8}};

int (*p)[4]=w;

則數(shù)值為4的表達(dá)式是(  )。[華南理工大學(xué)2018研]

A.*w[1]+1

B.p++,*(p+1)

C.w[2][2]

D.p[1][1]

【答案】D

【解析】A中*w[1]表示的的是數(shù)值2,則表達(dá)式的值為3,錯誤;B中p+1表示指向二位數(shù)組第二行的首元素地址,而*(p+1)代表的是第三行首元素值,B錯誤;C中表示的是數(shù)值0,答案選D。

27下列函數(shù)的功能是(  )。[華南理工大學(xué)2018研]

int fun1(char *x)
{
  char *y=x;
  while(* y++);
  return (y-x-1);
}

A.求字符串的長度

B.比較兩個字符串的大小

C.將字符串X復(fù)制到字符串Y

D.將字符串X連接到字符串Y后

【答案】A

【解析】while后面的表達(dá)式是指針依次遍歷直到碰到\0,此時y指向字符串最后一個元素的后一個位置,但是由于y++,因此y會繼續(xù)后移一位,而x指向字符串的頭部,后面的y-x-1顯然是用于計算字符串的長度。

28feof函數(shù)用來判斷文件是否結(jié)束,如果文件沒有結(jié)束,則返回值是(  )。[華南理工大學(xué)2018研]

A.-1

B.0

C.1

D.EOF

【答案】B

【解析】此題考查feof函數(shù)的定義與作用。

29設(shè)有說明:FILE *fp; char *filename ="paper";

對于fp=fopen(filename,"rb+");語句,下面說法正確的是(  )。[華南理工大學(xué)2018研]

A.打開名為filename的文件讀寫

B.打開名為paper的文件讀寫

C.打開名為filename的文件只讀

D.打開名為paper的文件只讀

【答案】B

【解析】filename只是一個字符指針變量的名字,不是文件的名字AC錯誤;rb+表示打開二進(jìn)制文件,且該文件可以讀寫,答案選B。

30若變量a,b,c的取值分別是1,2,3,則表達(dá)式“!((b+c)>(a+4))”的值是(  )。[北京航空航天大學(xué)2018研]

A.0

B.1

C.2

D.3

【答案】B

【解析】首先b+c等于5,a+4也等于5,因此(b+c)>(a+4)為“假”,即0,對0取非結(jié)果為1,因此答案為B。

31以下關(guān)于循環(huán)語句的敘述中,正確的是(  )。[北京航空航天大學(xué)2018研]

A.for循環(huán)語句的三個部分必須都要有表達(dá)式

B.while循環(huán)語句的循環(huán)體內(nèi)至少要有一條語句

C.do…while循環(huán)語句的循環(huán)體至少會被執(zhí)行一次

D.continue語句可以退出包含它的整個循環(huán)體

【答案】C

【解析】for循環(huán)的三個表達(dá)式都可以省略,但是之間的分號不能省略,同時要有退出循環(huán)的機(jī)制,因此A項錯誤;while循環(huán)語句的循環(huán)體內(nèi)可以為空,并不違反相應(yīng)語法,只不過循環(huán)什么也不執(zhí)行,因此B項錯誤;continue語句只是不執(zhí)行本次循環(huán)的剩余語句,而并非退出整個循環(huán),因此D項錯誤,答案選C。

32對于下列代碼:

switch(option)
{
  case 'H':printf("Hello ");
  case 'W':printf("Welcome ");
  case 'B':printf("Bye");
  break;
}

若option的取值為'W',則該代碼段的輸出結(jié)果是(  )。[北京航空航天大學(xué)2018研]

A.Welcome

B.Welcome Bye

C.Hello Welcome Bye

D.以上結(jié)果都不對

【答案】B

【解析】由于option為'W',所以首先應(yīng)該輸出Welcome,但是由于該語句后面沒有break語句來終止選擇語句switch,因此會繼續(xù)執(zhí)行下面的語句,直到遇上break,所以最后輸出Welcome Bye,答案為B。

33若有以下變量的聲明語句:

int i=1,a[]={0,2,4},*b;

b=&i;

則下列選項中,其結(jié)果與表達(dá)式“*(a+1)”相等的是(  )。[北京航空航天大學(xué)2018研]

A.a(chǎn)[0]

B.*a+i

C.*(a+b)

D.*(a+*b)

【答案】D

【解析】a指向數(shù)組的首元素,因此*(a+1)表示取數(shù)組第二個元素的值,為2。A項,a[0]=0,不相等;B項,*a為數(shù)組第一個元素的值為0,再加上i=1,因此結(jié)果為1,不相等;C項,a和b都是指針,相加沒有意義,錯誤;D項,*b的值i的值,即1,*(a+1)表示取數(shù)組第二個元素的值為2,相等,因此答案選D。

34若已知有如下宏定義

#define  CANBERRA(x,y)  ((x-y)/(x+y))

則以下表達(dá)式中,返回結(jié)果值最大的是(  )。[北京航空航天大學(xué)2018研]

A.CANBERRA(3.0,2.0);

B.CANBERRA(4.0,1.0);

C.CANBERRA(1.0+2.0,0.0+2.0);

D.CANBERRA(1.0+2.0,1.0+1.0);

【答案】C

【解析】A項中為1.0/5.0,結(jié)果為0.2;B項中為3.0/5.0,結(jié)果為0.6;C項中的宏替換后為(1.0+2.0-0.0+2.0)/(1.0+2.0+0+2.0)=1.0;D項中宏替換后為(1.0+2.0-1.0+1.0)/(1.0+2.0+1.0+1.0)=0.6,因此最后答案為C。

35對于以下C程序,其正確的是(  )。[北京航空航天大學(xué)2018研]

#include<stdio.h>
int main()
{
  char str1[]="Hello";
  char str2[]="Hello";
  if(str1==str2)
    printf("Equal\n");
  else
    printf("Unequal\n");
  return 0;
}

A.Unequal

B.Equal

C.該程序無法通過編譯

D.該程序運行時出錯

【答案】A

【解析】首先該程序符合語法規(guī)則,因此不會編譯時產(chǎn)生錯誤,其次字符數(shù)組str1和str2都為指針常量,將他們直接用關(guān)系運算符進(jìn)行比較肯定是不相等的,但是它們所指的字符串是相等的,因此最后輸出Unequal。

36已知有以下sample.c程序的定義:

/*sample.c*/
#include<stdio.h>
int main(int argc,char *argv[])
{
  printf("%c",*++argv[2]);
  return 0;
}

將該程序編譯成可執(zhí)行文件sample后,若在命令行下輸入如下命令:

sample  January  February  March

則該命令正確的輸出是(  )。[北京航空航天大學(xué)2018研]

A.J

B.a(chǎn)

C.F

D.e

【答案】D

【解析】根據(jù)命令行的輸入可知,四個字符串賦給相應(yīng)的指針數(shù)組,所以argv[2]表示第三個字符串February,再進(jìn)行++操作,指針指向字符串的第二個字符e,最后進(jìn)行取值操作,結(jié)果為e,答案為D。

37以下程序運行后的輸出結(jié)果是(  )。[中央財經(jīng)大學(xué)2018研]

int main()
{
  double d;
  float f;
  long l;
  int i;
  i=f=l=d=20/3;
  printf("%d %ld %.1f %.1f\n",i,l,f,d);
  return 0;
}

A.6 6 6.0 6.0

B.6 6 6.7 6.7

C.6 6 6.0 6.7

D.6 6 6.7 6.0

【答案】C

【解析】賦值運算符是自右向左結(jié)合的,所以首先執(zhí)行d=20/3=6,同時i、l、f也全為6,在進(jìn)行輸出時,f和d要保留一位小數(shù),所以答案選C。

38若有定義和語句:char s[10];s="abcd";printf("%s\n",s);,則結(jié)果是(  )。[中央財經(jīng)大學(xué)2018研]

A.輸出abcd@#$

B.輸出a

C.輸出abcd

D.編譯不通過

【答案】D

【解析】在定義一維字符數(shù)組時,s為數(shù)組名,指向數(shù)組首元素的地址,為地址常量,不可更改,因此語句s="abcd"是非法的,編譯不會通過。

39以下敘述錯誤的是(  )。[中央財經(jīng)大學(xué)2018研]

A.在程序中凡是以“#”開始的語句行都是預(yù)處理命令行

B.預(yù)處理命令行的最后不能以分號表示結(jié)束

C.#include MAX是合法的宏定義命令行

D.C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進(jìn)行的

【答案】D

【解析】在C語言中,凡是以“#”開頭的行都稱為編譯預(yù)處理命令行,為了區(qū)別C語句,后面是不加分號的。編譯預(yù)處理是在編譯程序?qū)源程序進(jìn)行編譯前執(zhí)行的,而不是在程序執(zhí)行過程中進(jìn)行的。

40若有如下宏定義:

#define  N  2

#define  y(n)  ((N+1)*n)

則執(zhí)行下列語句:z=4*(N+y(5));后的結(jié)果是(  )。[中央財經(jīng)大學(xué)2018研]

A.語句有錯誤

B.z值為68

C.z值為60

D.z值為180

【答案】B

【解析】y(5)=15,z=4*(N+y(5))=4*17=68,答案選B。

41有如下說明

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

則數(shù)值為9的表達(dá)式是(  )。[中央財經(jīng)大學(xué)2018研]

A.*p+9

B.*(p+8)

C.*p+=9

D.p+8

【答案】B

【解析】A中*p=1,*p+9=10,A錯誤。C中*p得到的是一個常量,常量不可以被賦值,C錯誤。D中p是地址,p+8仍然表示一個地址。因此B項正確,p+8指向元素9,進(jìn)行取值得9。

42若有以下說明和語句:

struct worker
{
  int no;
  char *name;
}work,*p=&work;

則以下引用方式不正確的是(  )。[中央財經(jīng)大學(xué)2018研]

A.work.no

B.(*p).no

C.p->no

D.work->no

【答案】D

【解析】結(jié)構(gòu)體變量訪問成員變量的引用方式采用“.”,而結(jié)構(gòu)體指針采用“->”,因此AC是正確的,B項中*p表示結(jié)構(gòu)體變量,因此可以用“.”,所以答案選擇D。

43以下不合法的用戶標(biāo)識符是(  )。[四川大學(xué)2017研]

A.J2_KEY

B.Double

C.4d

D._8_

【答案】C

【解析】標(biāo)識符只能包含數(shù)字,字母,下劃線,且不能以數(shù)字開頭,選項C錯誤。

44算法具有五個特性,以下選項中不屬于算法特征性的是(  )。[四川大學(xué)2017研]

A.有窮性

B.簡潔性

C.可行性

D.確定性

【答案】B

【解析】一個算法應(yīng)該具有五個重要特征:有窮性;確切性;輸入性;輸出性;可行性。因此簡潔性并不屬于算法特征。

45已定義如下函數(shù):

fun(int *p)

{return *p;}

該函數(shù)的返回值是(  )。[四川大學(xué)2017研]

A.不確定的值

B.形參p中存放的值

C.形參p所指存儲單元中的值

D.形參p的地址值

【答案】C

【解析】p是一個指向int型的指針變量,*p表示的是p所指向內(nèi)存存放的變量,是一個int型,所以return *p表示返回p所指存儲單元中的值,答案選C。

46在C語言中,形參的缺省存儲類型是(  )。[四川大學(xué)2017研]

A.a(chǎn)uto

B.register

C.static

D.extern

【答案】A

【解析】形參是局部變量,缺省類型為auto型。

47語句:printf("%d",(a=2)&&(b=-2));的輸出結(jié)果是(  )。[四川大學(xué)2017研]

A.無輸出

B.結(jié)果不確定

C.-1

D.1

【答案】D

【解析】a=2為真,b=-2也為真,所以輸出1,答案選D。

主站蜘蛛池模板: 商河县| 辽阳县| 萨嘎县| 西林县| 保德县| 宁海县| 安岳县| 蓝田县| 保山市| 尼玛县| 白河县| 远安县| 资源县| 扶绥县| 桂东县| 祁东县| 温州市| 太仆寺旗| 绵阳市| 连州市| 开封县| 建始县| 静安区| 普兰县| 洪湖市| 翁牛特旗| 来凤县| 全南县| 日喀则市| 霍山县| 化州市| 博客| 安阳市| 万源市| 阿鲁科尔沁旗| 大方县| 陵水| 武宁县| 咸阳市| 栾城县| 衢州市|