2021年南京某大学C语言程序设计专升本样卷(十二套试卷)及答案_第1页
2021年南京某大学C语言程序设计专升本样卷(十二套试卷)及答案_第2页
2021年南京某大学C语言程序设计专升本样卷(十二套试卷)及答案_第3页
2021年南京某大学C语言程序设计专升本样卷(十二套试卷)及答案_第4页
2021年南京某大学C语言程序设计专升本样卷(十二套试卷)及答案_第5页
已阅读5页,还剩177页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计专升本精选样卷(一)

上__一、单项选择题(共50题,每题2分,共计100分)

()1、下列可作为c语言赋值的语句的是O

A、x-3,y=5

B、a=b=6

C、i一;

D、a,c

()2、设有如下定义:strucksk

(

inta;

floatb;

}data;

int*p;

若要使P指向data中的a域,正确的赋值语句是。

A、p=&a;

B、p=data.a;

C、p=&data.a;

D>*p=data.a;

()3、下列说法中不正确的是。

A、switch语句功能可以由if-else语句实现

B、若用于比较的数据类型为double,则不能用switch语句来实现

C、if-else语句的执行效率总是比switch语句高

D、case子句可以有多个语句,并且不需要用大括号””括起来

()4、以下是死循环的程序段是.

A、for(i=l;;)if(++i%2==0)continue;if(++i%3~0)break:}

B、i=32767;do{if(i<0)break;}while(++i);

C、for(i=l;;)if(++i<10)continue;

D、i=l;while(i-);

()5、设有以下程序段:inta[5]=0,*p,*q;p=a;q=a;则下列选项中,合法的运算是。

A、p+q

B、p-q

第1/182页

C、p*q

D、p%q

()6、有以下程序:

main(){

inty=l,x=2,z=3;

printf("%d,%d\n”,(++x,y++),z+2);

)

执行后的输出结果是o

A、3,5

B、2,5

C、3,3

D、1,5

()7、假定a为一个整型数组名,则元素a[4]的字节地址为

A、a+4

B、a+8

C、a+16

D、a+32

()8、一个算法应当具有五个特性,以下叙述中正确的是

A、有穷性、确定性、复杂性、有零个或多个输入、有一个或多个输出

B、有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出

C、有穷性、确定性、可行性、必须要有一个以上的输入、有一个或多个输出

D、有穷性、确定性、复杂性、有零个或多个输入、必须要多个输出

()9、下列合法的字符型常量是

A、'\xl3'

B、'\081'

C、'65'

D、

()10、以下所列的c语言常量中,错误的是

A、OxFF

B、2L

C、1.2e0.5

D、'\72'

()H、c语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为

A、void

第2/182页

B、double

C、int

D、char

()12、在c语言中,要求运算数必须是整型的运算符是。

A、>

B、++

C、!=

D、%

()13、设有下列程序段:charstrD="henoworld”;char*ptr;ptr=str;执行上面的程序段

后,*(ptr+10)的值为o

A、,\0,

B、’0'

C、不确定的值

D、'0'的地址

()14、若已定义:inta[9L*P=a;并在以后的语句中未改变p的值,不能表示a[l]地址的表达式为

()o

A、p+1

B、a+1

C、a++

D、++p

()15、以下程序段的输出结果是inta=1234;printf("%2d\n”,a);

A、12

B、34

C、1234

D、提示出错、无结果

()16、在do-while循环中,循环由do开始,用while结束,必须注意的是,在while表达式后面的不能

丢,它表示do-while循环的结束。

A、0

B、1

C、;

D、,

()17、若有说明inta[3][4];则a数组元素的非法引用是。

A、a[0][2*1]

第3/182页

B、a[l][3]

C、a[4-2][0]

D、a[0][4]

()18、如下程序,输入错误的为:

voidmain()

(

inta;

intb;

scanf("%d%d”,&a,&b);

printf(*%d%d”,a,b);

}

A、1【空格】2【回车】

B、1(Tab12【回车】

C、1【回车】2【回车】

D、1【分号】2【回车】

()19、算法指的是o

A、解决问题的方法、步骤和思路的一种描述

B、计算机程序

C、排序方法

D、数据处理

()20、下列选项中不属于c语言的数据类型是o

A、复数型

B、逻辑型

C、双精度型

D、集合型

()21、空语句仅有一个__________的语句称为空语句。

A、逗号(,)

B、句号(.)

C、分号(;)

D、冒号(:)

()22、设有定义:intnl=0,n2,*p=&n2,*q=&nl;,以下赋值语句中与n2=nl;语句等价的是

A、*p=*q;

B、p=q;

第4/182页

C、*p=&nl;

D>p=*q;

()23、下面说法正确的是o

A、任何包含数学运算的函数都只能使用单一的基本结构

B、每个C语言程序MAIN()必须定义函数,否则编译失败

C、无论什么样的复杂算法,都可以使用三种基本结构来实现

D、只要程序是使用基本结构编写的,就不会出现算法错误

()24、以下程序中,while循环的循环次数是o

main()

(

inti=0;

while(i<10)

(

if(i<l)continue;

if(i==5)break;

i++;

)

)

A、1

B、10

C、6

D、死循环

()25、c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为.

A、地址传递

B、单向值传递

C、由实参传给形参,再由形参传回给实参

D、由用户指定传递方式

()26、设intx=10,a=0,b=25;条件表达式xVl?a+10:b的值是。

A、0

B、1

C、10

D、25

()27、若有定义:inta=4,b=5;floatx=3.4,y=2.1;则下列表达式的值为

(float)(a+b)/2+(int)x%(int)y

A、5.5

第5/182页

B、55

C、5.500000

D、55.00000

()28、在c语言中,char型数据在内存中以形式存储。

A、原码

B、补码

C、ASCII码

D、反码

()29、以下选项中关于c语言常量的叙述错误的是o

A、经常被使用的变量可以定义成常量

B、常量分为整型常量、实型常量、字符常量和字符串常量

C、所谓常量,是指在程序运行过程中,其值不能被改变的量

D、常量可分为数值型常量和非数值型常量

()30、有以下的程序

#include<stdio.h>

voidfun(char*fname,char*st)

(

file*myf;

inti;

myf=fopen(fname,"w");

for(i=0;iVstrlen(st);i++)fputc(st[i],myf);

fclose(myf);

)

main()

(

fun("test,t","newworld");

fun("test,t","hello,");

)

程序执行后,文件test,t中的内容是o

A、hello,

B、newworldhello,

C、newworld

D、hello,rid

()31、数组名作为实参数传递给函数时,数组名被处理为

A、该数组的长度

B、该数组的元素个数

第6/182页

C、该数组的首地址

D、该数组中各元素的值

()32、以下不能用于实型数据的运算符是o

A、%

B、/

C、*

D、+

()33、若有说明inta[][4]={0,0};

则下面不正确的叙述是o

A、数组a的每个元素都可得到初值0

B、二维数组a的第一维大小为1

C、因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1

D、有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

()34、递归算法的执行过程一般来说可先后分成和两个阶段。

A、试探

B、递推

C、枚举

D、分析

()35、以下程序的正确运行结果是。

main()

{

intk=4,m=l,p;

p=func(k,m);

printfp);

p=func(k,m);

printf(*%d\n*,p);

)

func(inta,intb)

(

staticintm=0,i=2;

i+=m+l:

m=i+a+b;

return(m);

)

A、8,16

B、8,17

C、8,20

第7/182页

D、8,8

()36、有以下程序

main()

(

inti=O,s=0;

do

(

if(i%2)

(

i++:

continue;

)

i++;

s+=i;

}

while(i<7):

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

)

执行后输出的结果是。

A、16

B、12

C、28

D、21

()37、下列叙述中错误的是=

A、主函数main也可以带形参

B、函数中通过return返回函数值

C、调用函数必须在一条独立的语句中完成

D、一个函数中可以有多条return语句

()38>写出下列程序段运行结果。unsignedinta=3,b=10;printf("%d\n"”,aVV

2|b==l);

A、"13*

B、12

C、8

D、14

()39、下面程序段的功能是o

...inta[]={4,0,2,3,1},i,j,t;

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

t=a[i];

第8/182页

j=i;

J—;

)

while(j>=O&&t>a[j])

(

a[j+l]=a[j];

J—:

a[j+l]=t;

)

A、对数组a进行插入排序(升序)

B、对数组a进行插入排序(降序)

C、对数组a进行选择排序(升序)

D、对数组a进行选择排序(降序)

()40、有如下定义

structperson

(

charname[9];

intage;

);

structpersonclass[10]={"johu",17,"paul”,19,"mary",18,"adam"16);

根据上述定义,能输出字母m的语句是o

A、prinft("%c\n",class[3].name);

B、printf("%c\n",class[3].name[l]);

C、prinft("%c\n",class[2].name[l]);

D、printf("%c\n",class[2].name[0]);

)41、以下叙述中不正确的是

A、表达式a&二b等价于a=a&b

B>表达式a|=b等价于a=a|b

C、表达式a!=b等价于a=a!b

D、表达式a'b等价于@=@飞

()42、下列关于指针变量的描述,不正确的是o

A、在没有对指针变量赋值时,指针变量的值是不确定的

B、同类指针类型可以进行相减操作

C、在使用没有赋值的指针变量时,不会出现任何问题

D、可以通过指针变量来取得它指向的变量值

()43、若inti=10;

第9/182页

执行下列程序后,变量i的正确结果是O

switch(i)

(

case0:i+=l;

case10:i+=l;

case11:i+=l;

default:i+=l;

)

A、10

B、11

C、12

D、13

)44、有如下程序

main()

(

intx=3;

do

(

printfx一);

)

while(!x);

)

该程序的执行结果是o

A、321

B、3

C、不输出任何内容

D、陷入死循环

)45、下列选项中,表示字符串末尾的结束标志是

A、'\n'

B、

C、''0'

D、NULL

)46、下列选项中正确的语句组是o

A、chars[8];s={"Beijing"};

B、char*s;s={"Beijing"};

C、chars[8];s="Beijing";

D、char*s;s="Beijing”;

rrt.l皿,./.«-»

第10/182页

)47、仕c诺吉甲,女伺双组足乂:chararrayLJ=china;则双组array助■占用的空间为

A、5个字节

B、6个字节

C、10个字节

D、12个字节

)48、有如下程序段int*p,a=6,b=2;p=&a;a=*p+b;执行该程序段后,a的值为

A、6

B、8

C、7

D、编译出错

)49、char*s="\t\\name\\address\n”;指针s所指字符串的长度为:。

A、说明不合法

B、19

C、18

D、15

)50、c语言可执行程序从什么地方开始执行?()

A、程序中第一条可执行语句

B、程序中第一个函数

C、程序中的main。函数

D、包含文件中的第一个函数

第11/182页

【C语言程序设计专升本精选样卷(一)参考答案】

一、单项选择题

1、c

2、C

3、C

【解析】并不是所有的if-else语句的执行效率都高于switch语句,在一些特定的情况下,switch语

句可以比较简炼,同时容易阅读,因此,选项C的描述是错误的。

4、C

5、B

【解析】本题考核指针的运算。C语言中,指向同一字符串的指针之间能且只能进行减运算,减运算

后返回的是一整型数,表示指针之间的地址偏移量。

6、D

【解析】本题考查逗号表达式。逗号表达武的求解步骤是先求解表达式1,然后依次求解表达式2,直

到表达式N的值。整个逗号表达式的值就足最后一个表达式N的值。(++x,y++)这个表达式的返回值是

y++,先使用y的债,然后将y加1,所以输出第一个值为1。第二个输出的值为z+2=3+2=5。

7、C

【解析】注意:VC编译器分配给整数的内存是4字节。

8、B

【解析】算法是指为解决某个特定问题而采取的确定且有限的步骤,一个算法应当具有五个特征:有穷

性、确定性、可行性、有零个或多个输入、有一个或多个输出。本题答案B

9、A

【解析】C语言的字符常量是用单引号(')括起来的一个字符,也可以用以一个“\”开头的字符序列

来表示字符常量。其中形式\ddd表示1到3位8进制数所代表的字符;形式\xhh表示1到2位16进制数所

代表的字符。在本题中‘\xl3'表示回车符,是一个字符常量;而'\081'用8进制数所代表的字符形式

不正确,因为8进制数所表示的字符中不会出现数字“8";’65'单引号(即撇号)括起来的不是一个字

符,而是一个十进制数字;"\n"是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。

10、C

【解析】2e0.5,e后面是整型常量。

11、C

12、D

13、A

14、C

15、C

第12/182页

16、C

17、D

【解析】此题考查的是数组元素的引用。对于已定义的数组a[M][N],数组元素的正确引用必须满足

行下标小于M,列下标小于N且为正整数。此题中,选项D)中列下标值出现溢出。

18、D

19、A

20、A

【解析】在C语言中,数据类型可分为基本数据类型、构造数据类型、指针类型、空类型4大类,其中

基本类型;字符型、整型、实型(单精度型和双精度型)、枚举类型。构造类型:数组、结构体、公用

体。选项B中的逻辑型和C中双精度类型都属于基本数据类型,选项D集合类型属于构造类型;而选项A

复数型不是C语言的数据类型。

21、C

22、A

23、C

【解析】结构化程序有三种基本结构:循环结构、选择结构和顺序结构。无论什么样的复杂算法,都可

以使用三种基本结构来实现;任何包含数学运算的函数都可以使用其中的任意基本结构。C语言区别

大小写,每个C语言程序必须定义main函数。按基本结构编写,可能会出现算法错误,这之间没有因

果关系。本题答案为C选项。

24、D

25、B

26、D

27、C

【解析】在计算(float)(a+b/2时,由于通过强制类型转换将(a+b转换成了foat型,所以应先将2转换

成float型,再进行计算,得4.500000。

在计算(int)x%(int)y时,先将x和y通过强制类型转换成int型,再进行求余运算,得1。又因为

4.500000是float型,所以将1和它相加时,先将1换成float型,再计算,得到5.500000。

[知识扩展]类型转换的一般规则是:低级类型服从高级类型,并进行相应的转换。数据类型的级

别由低到高的排序表示为:char->int-unsignedflong—floatfdouble。

28、C

29、A

30、A

31、C

32、A

33、D

【解析】定义二维数组时编译器会根据给出数值的个数和列数确定二维数组的行数。不足一行补0。

第13/182页

34、B

【解析】递归是设计和描述算法的一种有力的工具。

能采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成一些规模较小

的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的

分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模稍大问题的解。特别

地,当规模N=1时,能直接得到解。

递推算法的执行过程分递推和回归两个阶段。在递推阶段,把较复杂的问题的求解推到比原问题简

单一些的问题的求解;在回归阶段,当获得最简单情况的解后,逐级返回,依次获得稍复杂问题的

解。

35、B

36、A

37、C

【解析】当函数有返回值时,调用函数可以作为一个表达式的子表达式,而不是作为一条独立的语句

存在。

38、B

39、B

【解析】本题考查数组的使用,注意插入排序方法。

40、D

41、C

42、C

【解析】没有赋值的指针变量,可能指向任何地方,如果指向系统,那么使用该指针可能导致系统崩

演。

43、D

44、B

【解析】本题x赋初值为3,当执行printf("刎”,x-);时,由于x-的作用是先运算x,再将x的值减1,

所以,printf输出的x值为3,等输出后,x的值减1变为2,继续执行,判断条件!x为假,循环只被执

行一次。

45、C

【解析】字符串末尾结束标志为'\0'

46、D

47、B

【解析】字符数组是每个元素存放一个字符型数据的数组。C语言中约定用\0作为字符串的结束标

志,它占内存空间,但不计入字符串的长度。对数组array赋初值chararray口="China”,此时系

统自动在末尾加入一个'\0’,此时数组array的长度为6,所占用的空间为6个字节,即char

array口="China”等价于chararray口={,C',,h',,,n',(a',,\0'}。若定义char

arrayD={'C','h','i','n','a',},此时数组array的长度为5个字节。

第14/182页

48、B

49、D

50、C

第15/182页

C语言程序设计专升本精选样卷(二)

得分评卷人

一、单项选择题(共50题,每题2分,共计100分)

()1、在C语言中,以下一组运算符中,优先级最高的运算符是

A、<=

B、=

C、%

D、&&

()2、已有定义:intx=3,y=4,z=5;

则表达式!(x+y)+z-l&&y+z/2的值是

A、0

B、1

C、2

D、-1

()3、设a、b、c、d、m>n均为int型变量,且a=5、b=6、c=7>d=8>m=2、n=3则逻辑表达式(m=a>

b)&&(n=c>d)运算后,n的值为。

A、0

B、1

C、2

D、3

()4、运行下面程序时,若从键盘输入数据为〃123〃,则输出结果是.

ttinclude"stdio.h"

voidmain()

(

intnum,i,j,k,place;

scanf&num);

if(num>99)place=3;

elseif(num>9)place=2;

elseplace=l;

i=num/100;

j=(num-i*100)/10;

k=(num-i*100-j*10);

switch(place)

case3:printf("%d%d%d\n”,k,j,i);

break;

第16/182页

case2:printf("%d%d\n”,k,j);

break;

case1:printf("%d\n",k);

)

)

A、123

B、1,2,3

C、321

D、3,2,1

)5、函数默认返回类型为

A、int

B、void

C、随机

D、bool

)6、下列程序中c的二进制值是ochara=2,b=4,c;c=a-b>>2;

A、00000011

B、00010100

C、00011100

D、00011000

)7、下面程序的输出结果是

#include<stdio.h>

main()

(

inta[]=l,2,3,4,5,6,7,8,9,0,*p;

P=a;

printf("%d\n”,*p+9);

)

A、0

B、1

C、10

D、9

)8、以下c语言用户标识符中,不合法的是o

A、_1

B、AaBc

C>ab

第17/182页

D、a-b

()9、下列选项中c语言中不合法的字符串常量的是o

A、"、⑵"

B、,y'

C、"\n\n"

D、"ABCD\x6d\

()10、下面各选项中,均是c语言合法标识符的选项组是o

A、33weauto

B、_23me_3ew

C、_433e_else

D、ER-DF32

()11、结构化程序设计方法的三种基本控制结构中不包括(.)o

A、循环结构

B、递归结构

C、顺序结构

D、选择结构

()12、下列各数据中,()最小。

A、11011011(二进制数)

B、76(十进制数)

C、37(八进制数)

D、2A8(十六进制数)

()13、下列语句中正确的是o

A、char*myString="Hello-World!”;

B、charmyString="Hello-World!”;

C、charmyString[ll]=wHello-World!n;

D、charnlyString[12]=z,Hello-World!*;

()14、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是

A、函数调用可以作为独立的语句存在

B、函数调用可以作为一个函数的实参

C、函数调用可以出现在表达式中

D、函数调用可以作为一个函数的形参

()15、有以下程序:

第18/182页

#include<stdio.h>

main()

(

chara='h';

a=(a>=,a&&a<=,z)?(a,a'+'a'):a;

printf("枇\n",a);

)

程序运行后的输出结果是。

A、A

B、a

C、H

D、h

()16、下列语句中,可以作为无限循环语句的是

A、for(;;)

B、for(inti=O;i<10000;i++)

C、while(false)

D、do)while(false)

()17、以下程序的输出结果是o

main()

(

chart口="student",*p;

P=t+1;

printf*p++);

printf*p++);

)

A、tu

B、st

C、ud

D、en

()18、以下程序的输出结果是o

ttinclude<stdio.h>

ttinclude<string.h>

main()

(

charstr[12]={,s,,,t,,,r,,,i,,,n,,,g,};

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

)

A、6

第19/182页

B、7

C、11

D、12

()19、关于数组的叙述中,下列说法不正确的是o

A、数组是最简单的复合数据类型,是有限元素的有序集合

B、数组的元素可以是值(基本数据类型)、对象或其他数组

C、定义数组时,必须分配内存

D、一个数组中的元素都必须是相同的类型

()20、若有以下定义的语句

structstudent

(

intage;

intnum;

);

structstudentstu[3]={{1001,20},{1002,19},{1003,21}};

main()

(

structstudent*p;

p=stu;

}则以下不正确的引用是o

A、(p++)->num

B、p++

C、(*p).num

D、p=&stu.age

()21、一个算法应该具有〃确定性〃等5个特性,下面对另外4个特性的描述中错误的是o

A、有零个或多个输入

B、有零个或多个输出

C、有穷性

D、可行性

()22、charal[]=〃abc〃,a2[80]="1234〃;将al串连接到a2串后面的语句是。

A、strcat(a2,al);

B、strcpy(a2,al);

C、strcat(al,a2);

D、strcpy(al,a2);

()23、有以下程序charfun(charx,chary)

第20/182页

if(x<y)returnx;

returny;

)

main()

(

inta='9',b='8',c='V;

printf(“枇\n",fun(fun(a,b),fun(b,c)));

)

程序的执行结果是O

A、函数调用出错

B、8

C、9

D、7

()24、下面说法正确的是。

A、结构化程序的基本结构有三种,分别是循环结构、选择结构和顺序结构

B、计算机只能执行顺序结构的C语言源程序

C、循环结构无法使用N-S流程图描述

D、一般称含有20条以内语句的算法为简单算法,超过20条则不可能是简单算法

()25、c语言中函数返回值的类型决定于

A、return语句中的表达式类型

B、调用函数的主调函数类型

C、调用、函数时临时类型

D、定义函数时所指定的函数类型

()26、设a为整型变量,不能正确表达数学关系10

A、10

B、a==ll||a==12||a==13||a==14

C、a>10&aa<15

D、!(aV=10)&&!(a>=15)

()27、下面是有关c语言字符数组的描述,其中错误的是o

A、不可以用赋值语句给字符数组名赋字符串

B、可以用输入语句把字符串整体输入给字符数组

C、字符数组中的内容不一定是字符串

D、字符数组只能存放字符串

()28、表示一条指令的存储单元的符号地址称。

第21/182页

A、标号

B、变量

C、偏移量

D、类型

()29、以下能正确定义字符串的语句是o

A、charstr[]={'\064z};

B、charstr="kx43”;

C、charstr=";

D、charstr[]="\0";

()30、以下叙述中正确的是o

A、预处理命令行必须位于源文件的开头

B、在源文件的一行上可以有多条预处理命令

C、宏名必须用大写字母表示

D、宏替换不占用程序的运行时间

()31、设

voidfl(int*m,long&n);

inta;longb;

则以下调用合法的是o

A、fl(a,b);

B、fl(&a,b);

C、fl(a,&b);

D、fl(&a,&b);

()32、若有说明和语句inta=5;a++;此处表达式a++的值是

A、7

B、6

C、5

D、4

()33、以下叙述正确的是。

A、在C语言程序中,main函数必须位于程序的最前面

B、C语言程序的每行中只能写一条语句

C、C语言本身没有输入输出语句

D、在对一个C语言程序进行编译的过程,可发现注释中的拼写错误

()34、定义结构体的关键字是。

第22/182页

A、union

B、enum

C、struct

D、typedef

()35、下面程序的运行结果是o

^include<stdio.h>

main()

(

inti,b,k=0;

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

(

b=i%2;

while(b->=0)k++;

)

printf("%d,%d”,k,b);

)

A、3,-1

B、8,-1

C、3,0

D、8,-2

()36、下列标识符不是关键字的是o

A、break

B、char

C、Swith

D、return

()37、若有以下说明和语句:intc[4][5],(*p)[5];p=c;能够正确引用c数组元素的是

__o

A、p+1

B、*(p+3)

C、*(p+l)+3

D、*(p[0]+2)

()38、以下程序段的输出结果是o

intmain(

void)

(

intnum=0,s=0;

while(numV=2)

第23/182页

num++;

s+=num;

)

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

return0;

)

A、10

B、6

C、3

D、1

()39、请读程序段:charstr[]=*abcd*,*p=str:printf(*%d\n*,*(p+4));

程序段的输出结果是o

A、68

B、0

C、字符D的地址

D、不确定的值

()40、以下对枚举类型名的定义中正确的是o

A、enuma={sum,mon,tue};

B、enuma{sum=9,mon=T,tue};

C、enuma={"sum","mon","tue"};

D、enuma{"sum","mon","tue"};

()41、以下关于运算符优先级比较,正确的是o

A、算术运算符〉逻辑运算符〉比较运算符

B、逻辑运算符》比较运算符〉算术运算符

C、算术运算符〉比较运算符〉逻辑运算符

D、以上均是错误的

()42、下面关于形参与实参的说法,正确的是o

A、形参与实参的个数、类型、顺序都应一一对应

B、形参与实参的个数可以不必相同,少一个多一个程序一样执行

C、形参与实参的类型可以不同,不影响运算结果

D、形参与实参的类型个数相同,而顺序不同,计算机可以自动进行匹配,所以形参的顺序无所

谓,只要各种形参类型的数量与实参相同即可

()43、c语言中下面哪个不是条件语句?

A、if

第24/182页

B、ifelse

C、NSLog

D、switch

()44、c语言中下面哪个不是循环语句?

A、dowhile

B、if

C、while

D、for

()45、有如下定义语句:inta[]={1,2,3,4,5},则对语句int*p=a;正确的描述是

A、语句int*p=a;定义不正确

B、语句int*p=a;初始化变量p,使其指向数组对象a的第一个元素

C、语句int*p=a;是把a[0]的值赋给变量p

D、语句int*p=a;是把a[l]的值赋给变量p

()46、以下关于c/c语言指针变量的叙述中,正确的是o

A、指针变量可以是全局变量也可以是局部变量

B、必须为指针变量与指针所指向的变量分配相同大小的存储空间

C、对指针变量进行算术运算是没有意义的

D、指针变量必须由动态产生的数据对象来赋值

()47、以下对一维数组c进行正确的定义初始化的语句是o

A、intc[10]=0;

B、intc[10]={0}*10:

C、intc[1]={0,0,0,0,0,0,0)

D、intc[10]={0};

()48、流程图里面的开始和结束用()表示。

A、矩形

B、圆

C、椭圆

D、菱形

()49、下面各语句行中,能正确进行字符串赋值操作的语句是

A、charST[5]={"ABCDE"};

B、charS[5]={'A','B','C','D','E'};

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

第25/182页

D、char*S;scanf("%S”,S);

()50、已知函数的调用形式:fread(buf,size,count,fp),参数buf的含义是

A、一个整型变量,代表要读入的数据项总数

B、一个文件指针,指向要读的文件

C、一个指针,指向要读入数据的存放地址

D、一个存储区,存放要读的数据项

第26/182页

【C语言程序设计专升本精选样卷(二)参考答案】

一、单项选择题

1、c

2、B

3、D

4、C

5、A

6、A

7、C

【解析】此题考查了指针引用一维数组元素的方法。*p+9因为运算符“*”的优先级高于“+”,所以

输出结果为P指向的元素1,然后加9,值为10。

8、D

9、B

【解析】字符串常量是由双引号括起来的一串字符,其中的双引号不可缺少。由此可知,选项A)、

C)、D)都是合法的字符串常量,而选B)是一个字符常量。

10、B

【解析】合法的标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,用户定

义的标识符不能与关键字相同。选项A),数字不能为第一个字母,auto为关键字;选项C)中,也是数

字不能为第一个字母,else为关键字;选项D)中负号不合法。

11、B

12、C

【解析】(11011011)2=(219)10;(37)8=(31)10:(2A8)16>(200)10

13、A

【解析】选项C、D的数组下标超界;对于选项B,不能将字符串赋值给字符,可以将一个字符串赋值

给字符指针,指针指向字符数组的首地址。

14、D

15、D

【解析】多元运算符问号前面表达式为真,所以(a-'A'+'a')赋值给a,括号里的运算是把大写字母变

成小写字母,所以答案应为选项D。

16、A

【解析】B的循环终止条件为10000,CD的终止条件为常量false,都不能无限循环。

17、A

18、A

第27/182页

19、C

【解析】【命题目的】考查数组的基本概念。【解题要点】定义数组时,并不分配内存,所以对数组

的定义并不要求给出其元素的个数。【考点链接】数组分配内存是通过new操作符或静态初始化来实

现的。

20、D

【解析】考查对结构体成员的引用方法。[解题要点]结构体成员的引用可以用“结构体变量名,成

员名”或者“结构体变量指针->成员名”两种方式来引用。[考点链接]结构体类型的变量、数组

和指针变量的定义。

21、B

22、A

23、D

24、A

【解析】结构化程序的基本结构为循环结构、选择结构和顺序结构,选项A正确;计算机可以执行循环

结构、选择结构和顺序结构的C语言程序,选项B错误;循环结构可以使用-S流程图描述,选项C错

误;算法复杂度是指算法在编写成可执行程序后,运行时所需要的时间资源和内存资源,并不是指算法

语句的多少,选项D错误;本题答案为Ao

25、D

【解析】函数在定义时已经可以指定其函数类型,则函数返回值类型就是该类型。

26、A

27、D

28、A

【解析】标号表示一条指令的存储单元的符号地址。

29、D

30、D

31、B

【解析】如果调用合法,则只有B满足两个参数为指针和引用的条件。

32、C

33、C

【解析】考查C语言的几个基本概念。

[解题要点]选项A)中,main函数可以放在程序的任何位置,不一定要放在程序的最前面,不论main

函数放在什么位置,程序的执行却总是从main函数开始的;选项B)中,因为C语言的语法限制不严

格,所以可以多条语句放在同一行上;选项C)是正确的,C语言中没有专门的输入输出语句,输入输

出是通过使用输入输出库函数来实现的;选项D)是错误的,因为C语言中的注释是不会被编译的。

[考点链接]掌握算法的相关特性。

34、C

第28/182页

35、D

36、C

37、D

【解析】本题中定义了一个二维数组c和一个指针数组p,并初始化让p指向c。显然此时p中的各元素

为地址,选项A中p+1,此时其中的1代表的长度是整个二维数组c的长度,故p+1将让p指向c数组后面

的元素,不能引用c数组中的成员,故选项A错误;同理选项B和选项C都不正确,选项D中p[0]指的是

指针数组中的第一个元素的地址即c的首地址,此时的1的长度代表的是数组C中一行的长度,故

p[0]+2代表的是第3行的首地址,而*(p[0]+2)将代表第3行的第一个元素的地址,所以,4个选项中选

项D符合题意。

38、B

39、B

【解析】在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志'\0',故

指向字符数组的指针P的*(p+4)的值为'\0'。由于'\0'的编码值就是0,所以本题输出为0。

40、B

41、C

【解析】本题考查运算符优先级的概念。关于运算符的优先级一直是考试的重点内容,考生应该熟练

掌握。优先级的关系是:

算术运算符》连接运算符,比较运算符,逻辑运算符

所有比较运算符的优先级相同,算术运算符和逻辑运算符有严格的执行顺序。

42、A

【解析】形参、实参个数类型、数量、顺序应相同,因为类型转换都是有条件的,如果浮点型变量向

指针型变量转换就是不可的。

43、C

44、B

45、B

46、A

【解析】存放地址的变量称为指针变量。指针变量是一种特殊的变量,它不同于一般的变量,一般变

量存放的是数据本身,而指针变量存放的是数据的地址。选项A显然是正确的。对于选项B,指针变量

和指针所指向的变量存放的内容是不一样的,只要分配够用就行了,不需要分配一样大小的存储空

间。对于选项C,指针变量加1便指向下一个存储单元,是有意义的。另外指针变量可以静态地定义。

47、D

48、C

49、C

50、C

【解析】buf是一个指针。对函数fread来说,它是读入数据的存放地址(指起始地址)。对fwrite来

说,是要输出数据的地址。

第29/182页

第30/182页

C语言程序设计专升本精选样卷(三)

得分评卷人

一、单项选择题(共50题,每题2分,共计100分)

()1、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值

A、8

B、7

C、6

D、4

()2、若有定义inta=12,n=5,则表达式a%=(n%2)运算后,a的值:

A、0

B、1

C、12

D、6

()3、有如下程序

main()

(

intx=l,a=5,b=5;

switch(x)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论