安徽理工大学2023年C语言程序设计专升本样卷及答案_第1页
安徽理工大学2023年C语言程序设计专升本样卷及答案_第2页
安徽理工大学2023年C语言程序设计专升本样卷及答案_第3页
安徽理工大学2023年C语言程序设计专升本样卷及答案_第4页
安徽理工大学2023年C语言程序设计专升本样卷及答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

南昌航空大学2023年C语言程序设计专升本样卷(一)

总分:100分考试时间:90分钟

注意事项:

>题目包括三大部分,单项选择题,判断题,编程题,请按要求在规定时间内作答。

>考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反

馈。

一、单项选择题(每小题2分,共40分)

1、在计算机中,用()位二进制码组成一个字节。

A、8

B、16

C、32

D、64.

2、以下不正确的语句:设有intp.q)是o

A、p*=3;

B、p/=q;

C、p十=3;

D、p&&=q;

3、设有以下语句:inta=l,b=2,c;c=a"(bVV2);执行后,c的值为。

A、6

B、7

C、8

D、9

4、有以下程序

#include<stdio.h>

main()

(

inta=5,b=4,c=3,d=2;

if(a>b>c)

printf(,,%d\nr,,d);

elseif((c-1>=d)==1)

printf(M%d\nM,d+1);

else

printf(M%d\nM,d+2);

)

执行后输出的结果是________o

A、2

B、3

C、4

D、编译时有错,无结果

5、下面说法正确的是o

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

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

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

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

简单算法

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

素的是O

A、p+1

B、*(p+3)

C、*(p+l)+3

D、*(p[0]+2)

7、在c语言系统中,假设int类型数据占2个字节,则double、long、

unsignedint、char类型数据所占字节数分别多少()。

A、8,2,4,1

B、2,8,4,1

C、4,2,8,1

D、8,4,2,1

8、如果用数组名作为实参,则传递给形参的是o

A、数组的首地址

B、第一个元素的值

C、数组元素的个数

D、数组中全部元素的值

9、在c语言中,‘a'和'a”存储所占用的字节数分别是o

A、1,1

B、1,2

C、2,1

D、2,2

10、对下述程序的判断中,正确的是O

main()

char*p,s[256];

p=s;

while(strcmp(s,*theend"))

printf(,rinputthestring:n);

gcts(s);

while(*p)putchar(*p++);

}

)

A、此程序循环接收字符串并输出,直到接收到字符串“theend”为止

B、此程序循环接收字符串,接收到字符串“theend”则输出,否则程序

终止

C、此程序循环接收字符串并输出,直到接收字符串“theend"为止,但

因为代码有错误,程序不能正常工作

D、此程序循环接收字符串并将其连接在一起,直到接收字符串“the

end”为止,输出连接在一起的字符串

11、下面说法正确的是O

A、char*x,y,**str同时定义了三个变量,符合语法规范

B、数组说明符的一对方括号中只能使用常量数值

C、单精度浮点值乜可以作为数组下标

D、若有定义floatarr[2]则printf(H%2.lfw,array[0.5])是合法的语

12、c语言规定,在一人源程序中,main函数的位置________。

A、必须在最开始

B、必须在系统调月的库函数的后面

C、可以任意

D、必须在最后

13、下列标识符,不合法的是o

A、abc

B、_d

C、123

D、el

14、若各选项中所有变量已正确定义,函数fun中通过return语句返回一个函

数值,以下选项中错误的程序是O

A、main(){...x-fun(2,10);...}floatfun(inlA,int

b){……}

B、floatfun(intA,intb){...}

main()

{...x=fun(i,j);...}

C、floatfun(intint);main()

{...x=fun(2,10);...}floatfun(intA,intb){....}

nodep;

以下叙述中正确的是o

A、p是指向structnode结构变量的指针的指针

B、NODEp;语句出错

C、p是指向structnode结构变量的指针

D、p是structnode结构变量

18、下列程序的输出结果是______o

main()

{

inti;

for(i=0;i<2;i+-)add();

}

add()

(

intx=0;

staticinty=0;

printf(,,%d,%d\n,,x,y);

x++;

y=y+2;

}

A、0,00,0

B、0,00,2

C、0.01,0

D、0,01,2

19、若要定义a为3X4的二维数组,正确的定义语句是—

A、floata(3,4);

B、floata[3][4];

C、floata(3)(4);

D、floata[3,4];

20、下列程序的输出结果是o

structstu

(

charnum[10];

floatscore[3];

}

intmain()

structstus[3]二

{{"20021”,90,95,85},{“20022",95,80,75},{“20023",100,95,90}};

structstu*p=s;

inti;

floatsum=0;

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

sum-sum+p->score[i];

}

printf("%6.2fM,sum);

return0;

}

A、260.00

B、270.00

C、280.00

D、285.00

二、判断题(每小题2分,共20分)

()1、求余数运算符%的两边只能是整型的数据。

()2、case后面必须有空格,紧接着是常量表达式。

()3、在c语言中,当一个逻辑表达式的值为"假"时,该表达式的值一定是0

()4、循环体如果包含一个以上语句,应该用花括弧括起来,以复合语句的形式出现。

()5、printf("格式控制字符串”,输出项表列)中,"格式控制字符串”必须用英文状态下

的双引号括起来。

()6、用scanf()函数输入实型数时,既可以指定宽度,又可以规定精度。

()7、指向数组元素的指针只可指向数组的首元素

()8、对于一个具体的函数来说,实参与形参必须一一对应。

()9、一个c源程序可由一个或多个函数组成。()

()10、文件指针和位置指针都是随着文件的读写操作在不断改变。

三、编程题(每小题分,共40分)

1、编写程序:输入任意一个整数,并将其反转后输出,比如:

输入一个整数:12345

反转后的整数:54321(本题10分)

2、编程判断输入的字符串是否为“回文”。所谓“回文”是指顺读和倒读都一

样,如abcba。(本题14分)

3、说明一个枚举类型enummonth它的枚举元素为Jan、Feb、…、Dec。编写能

显示上个月名称的函数last_month。例如,输入Jan时能显示Dec。再编写另

一个函数printmon用于打印枚举变量的值枚举元素。最后编写主函数调用上

述函数生成一张12个月份及其前一个月份的对照表,使用结构体实现(本题

16分)

[2023年C语言程序设计专升本样卷(一)参考答案】

一、单项选择题

1、A

【解析】在计算机中,8位二进制码组成一个字节。

2、D

3、D

4、B

【解析】第二个if语句中的表达式%-1>=d”的值为逻辑值1,所以该条件成立。

5、A

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

可以执行循环结构、选择结构和顺序结构的C语言程用,选项B错误;循环结构可以使用-

S流程图描述,选项C错误;算法复杂度是指算法在编写成可执行程序后,运行时所需要的

时间资源和内存资源,并不是指算法语句的多少,选项D错误;本题答案为Ao

6、I)

【解析】本题中定义了一个二维数组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[()]+2)将代表第3行的第一个元素的地址,所以,4个选项中选项D符合题意。

7、D

8、A

【解析】将数组传递给函数时,实际上是传递数组第一个元素的地址给函数,即数组的

首地址。

9、B

10、C

11、A

【解析】定义数组时,一对方括号内为整型数据类型,可以是变量也可以是常量,选项B

错误;访问数组时,数组下标为整型数据,选项C,D错误。在选项A中,定义了3个变量,

类型为char的变量x,类型为char的变量y类型为char的变量str本题答案为A

选项。

12、C

【解析】C程序总是从main函数开始执行,但main函数在程序中的位置可以是任意的。

13、C

【解析】123不是合法的标识符,标识符不能以数字开头。

14、A

15、B

16、A

17、C

【解析】在C语言中,typcdef用于说明一种新的类型名,本题中的node被定义为一种结

构体类型名,NODE被定义为指向这种结构体变量的指针,我们可以用它来定义一个指向该类

型结构体变量的指针。

18、B

19、B

20、B

二、判断题

1正确

2、正确

3、正确

4、正确

5、正确

6、错误

7、错误

8、正确

9,正确

10、错误

三、编程题

1、ftinclude<stdio.h>

intmain()

(

intn,rcvcrsedNumbcr=0,remainder;

printf("输入一个整数:");

scanf("%d",&n);

while(n!=0)

{

remainder=n%10;

reversedNumber=reversedNumber*10+remainder;

n/=10;

)

printf("反转后的整数:%dn,reversedNumber);

return0;

}

2、^include

voidmain()

(

inti,n;

chara[20];

prinif("请输入字符串:”);

gets(a);

n=strlcn(a);

for(i=0;i=n)

printf("是回文.\n");

)

3、#include<stdio.h>

enummonth{Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec);

char*name[12]=("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug”「Sep",

"Oct","Nov","Dec"};

voidlast_month(enummonthml)

(

enummonthm2=(enummonth)(((int)ml-l+12)%12);

printf("%s",name[(int)m2]);

)

voidprintmon(enummonthm)

(

printfname[(int)m]);

)

intmainO

(

enummonthm;

for(m=Jan;m<=Dec;m=(enummonth)(m+1))

printmon(in);

printf("Xn");

for(m=Jan;m<=Dec;m=(enummonth)(m+1))

lastmonth(m);

}

南昌航空大学2023年C语言程序设计专升本样卷(二)

总分:100分考试时间:90分钟

注意事项:

>题目包括三大部分,单项选择题,判断题,编程题,请按要求在规定时间内作答。

>考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反

馈。

一、单项选择题(每小题2分,共40分)

1、按照标识符的要求,下列选项中,()符号不能组成标识符。

A、连接符

B、下划线

C、大小写字母

D、数字字符

2、以下选项中不合法的用户标识符是o

A、abC.C

B、file

C、Main

D、PRINTF

3、若给定条件表达式(m)?(a++):(a-)则下列选项中和表达式m等价的是

_____________________O

A、(M=0)

B,(M==l)

C、(M!=0)

D、(M!=l)

4、以下叙述中正确的是。

A、逻辑"或''(即运算符|I)的运算级别比算犬运算要高

B、C语言的关系表达式:0VxV10完全等价于:(0Vx)&&(xV10)

C、逻辑"非“(即运算符!)的运算级别是最低的

D、由&&构成的逻辑表达式与由||构成的逻辑表达式都有“短路”现象

5、下面程序的输出结果是.

main()

{

inti,k=0,a=0,b=0;

for(i=l;i<=4;i-+)

(

k++;

if(k%2=0)

a=a+k;

continue;

b=b+k;

a=a+k;

)

printf("k-%da-%db-%d\n0,k,a,b);

}

A、k=5a=10b=4

B、k二3a=6b=4

C.k=4a=10b=3

D、k=4a=10b=4

6、设有语句:"inta=l,b=2,*pl=&a,*p2;&b;",则使指针pl指向变量b的赋值

语句是o

A、pl=*p2

B、*pl=p2

C、pl=p2

D、*pl=*p2

7、设变量定义为"inta,b;

",执行下列语句时,输入(),则a和b的值都是10.\nscanf(Ma=%d,b=%dw,&a,

&b);

A、1010

B、10,10

C、a=10b=10

D、a=10,b=10

8、执行完语句int[]x=newint[25];后,则下列哪项说法是正确的

A、x[24]值为0

B、x[24]值未定义

C、x[25]值为0

D、x[0]值为空

9、下述c语言转义符中()是非法的。

A、’\b,

B、'\037'

C、'\0xf'

D、、一

10、下面关于编译预处理命令,正确的是O

A、SdefinecharCHAR

B、#DefineE0.0000034

C、##defineFALSE0

D、-defineDIM26

11、定义如下变量和数组:inti;intx[3][3]={12,3,4,5,6,7,8,9}则下

M

面语句的输出结果是________ofor(i=0;i<3;i++)printf("%d,x[i][2-

1]);

A、258

B、147

C、357

D、369

12、以下函数fun形参的类型是.

fun(floatx)

(

floaty;

y=3*x-4;

returny;

)

A、int

B、不确定

C、void

D、float

13、已知小写英文字母"a”的ascii码值为61h,现字母被存放在某个存储单

元中,若采用偶校验(假设最高位作为校验位),则该存储单元中存放的十六进制

数是。

A、66H

B、E6H

C、67H

D、E7H

14、一个c语言程序是由—构成。

A、语句

B、行号

C、数据

D、函数

15、阅读下面的程序

main()

(

inti,j;

floatx,y;

scanf(w%f,%fH,&i,&j);

scanf("%f,%f",&x,&y);

printf(wi=%d,j=%d\n",i,j);

printf(Hx=%f,y=%f\nw,x,y);

如果从键盘上输入32,18V回车〉12.5,-4.3V回车〉则程序的运行结果是

A、i-32,J-18

B、i=0,j=0

x=12.500000,y=-4.300000x=12.500000,y=-4.300000

C、i=30,j=16

D、i=0,j=0

x=12.5,y=-4.3x=12.5,y=-4.3

16、假定等级和分数有以下对应关系:等级:a分数:85〜100等级:b

分数:60〜84等级:c分数:60以下对于等级grade输出相应的分数

区间,能够完成该功能的程序段是.

A、switch(grade)

(

caserA':printf(M85―100\n**);

caserB':printf(M60—84\rT);

casefC':printf(M60以下\nw);

default:printf("等级错误!\nH);

)

B、switch(grade)

(

caserA*:printf(r,85—100\n'*);break;

case'B':printf("60―84\nM);

caserC':printf(M60以下\n°);

default:printf(n等级错误!\n");

)

C、switch(grade)

(

case'A':printf("85—100\n'*);break;

case'B':printf("60--84\nM);break;

case'C':printf("60以下\n°);

default:printf("等级错误!\nM);

D、switch(grade)

(

case'A':printf(M85—100\n");break;

case'B':printf("60-84\n");break;

case'C:printf(n60以下\n'r);break;

default:printf(H等级错误!\nH);)

17、有如下定义

structperson

{

charname[9];

intage;

}

structpersonclass[10]={Hjohn'\17,,,paulM,19,Mmaryw,18,

"adam",16};

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

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

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

C、printf(w%c\nH,class[4].name[l]);

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

18、有以下程序:

main()

(

inta=l,b=0;

if(-a)b++;

elseif(a=0)b+=2;

elseb+=3:printf(M%d\n",b);

)

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

A、0

B、1

C、2

D、3

19、avg功能是求整形数组中的前若干个元素的立均值,设数组元素个数最多不

超过则下列函数说明语句错误的是O

A、intavg(int*a,intn);

B、intavg(inta[10],intn);

C、intavg(inta,intn);

D、intavg(inta[],intn);

20、以下选项中,能定义m为合法的结构体变量的是o

A、typedefstructabc(

doublea;charb;}m;

B、struct{

doublea;charb;)m;

C、structABC{

doublea;charb;}ABCm;

D、typedefABC(

doublea;charb;)ABCm;

二、判断题(每小题2分,共20分)

()1、宏定义和文件包含都是C语言中的编译预处理命令,对它们的处理是在编译前完

成的

()2、在c语言中外是只能用于整数运算的运算符。

()3、省略else的if语句的一般形式如下,若表达式的值为“真",则执行语句1;

否则,就什么也不做。if(表达式)语句1

()4、break语句只能用在循环语句中。

()5、用strcat(字符串1,字符串2)连接两个字符串函数时,

温馨提示

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

评论

0/150

提交评论