大连工业大学历年计算机C语言专升本题目.docx

上传人:李司机 文档编号:6962094 上传时间:2024-03-26 格式:DOCX 页数:55 大小:96.29KB
返回 下载 相关 举报
大连工业大学历年计算机C语言专升本题目.docx_第1页
第1页 / 共55页
大连工业大学历年计算机C语言专升本题目.docx_第2页
第2页 / 共55页
大连工业大学历年计算机C语言专升本题目.docx_第3页
第3页 / 共55页
大连工业大学历年计算机C语言专升本题目.docx_第4页
第4页 / 共55页
大连工业大学历年计算机C语言专升本题目.docx_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《大连工业大学历年计算机C语言专升本题目.docx》由会员分享,可在线阅读,更多相关《大连工业大学历年计算机C语言专升本题目.docx(55页珍藏版)》请在三一办公上搜索。

1、历年计算机C语言专升本题目(一)(总分100分,考试时长90分钟)一、单项选择题(每小题2分,共40分)1、以下标识符中,不能作为合法的C用户定义标识符的是oA、 putcharB、 _doubleC、 _123D、INT2、下面判断正确的是oA、Char*a=china”;等价于char*a;*a=china”;B、charStr5=China;等价于CharStr口二China;C、char*S=,zchinaz;等价于Char*S;S=china;Dcharc4=abc,d4=,zabcz,;等价于Charc4=d4=,abc*;3、C语言对嵌套的if语句的规定是:else总是与配对。A

2、、与之前最近的ifB、第一个ifC、缩进位置相同的ifD、与之前最近的且尚未配对的if4、若变量已正确定义,以下while循环正常结束时,累加到pi的最后一项item的值满足OA、item的绝对值小于0.0001B、item的绝对值大于0.0001C、item的绝对值大于等于0.0001D、item的绝对值小于等于0.00015、设有以下语句:Charstrl=*string,z,str28,*str3,*str4=,stringz,;则下列选项中,不是对库函数Strcpy的正确调用,此库函数用来复制字符串。A、strcpy(strl,HELL0/);B、StrCPy(Str2,HELLO2)

3、;C、StrCPy(Str3,HELLo3);D、 StrCPy(Str4,“HELLO4);6、设有定义:longx=-1234561;则以下能够正确输出变量X值的语句是A、Printf(x=%dn”,x)B、Printf(x=%ldn”,x)C、Printf(x=lnw,x)D、Printf(x=%Dn”,x);7、下面程序输出的结果是includevoidmain()(inti,j,x=0;staticinta6=l,2,3,4,5,6;for(i=0,j=l;i5;+i,j+)x+=ai*aj;printf(%dn”,x);)A、数组a中首尾的对应元素的乘积B、数组a中首尾的对应元素的

4、乘积之和C、数组a中相邻各元素的乘积D、数组a中相邻各元素的乘积之和8、调试程序是指对程序进行A、编辑B、编译C、查错和排错D、连接9、从键盘上输入某字符串时,不可使用的函数是()。A、getchar()B、gets()C、scanf()D、fread()10、设Charstr100;inti=5;则引用数组元素的错误形式的是.A、strI+10B、*(srrC、(str+I-1)D、*(&(str+)+11、有以下程序main()(inta=666,b=888;printf(%dn”,a,b);)程序运行后的输出结果是OA、错误信息B、666C、888D、666,88812、算法具有五个特性

5、,以下选项中不属于算法特性的是oA、有穷性B、简洁性C、可行性D、确定性13设有数组定义:Chararray=zchinaz,;则数组array所占的空间为A、6字节B、5字节C、4字节D、7字节14、设有如下定义:structsk(intn;floatx;data,*p;若要使P指向data中的n域,正确的赋值语句是。A、 p=&datn;B、 *p=datn;C、 p=(structsk*)&datn;D、 p=(structsk*)datn;15、已知字母a的ascii码为65,以下程序运行后的输出结果是ftincludemain()(charcl,c2;cl=a,+8,-,4,;c2=

6、a,+,8,-,5,;printf(,%c,%dn,z,cl,c2);)A、 E,68B、 D,69C、E,DD、输出无定值16、有如下程序ftincludevoidmain()(inti,sum=0;for(i=l;i10&25D、25&1019、以下叙述中错误的是。A、对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B、数组名代表的是数组所占存储区的首地址,其值不可改变C、当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D、可以通过赋初值的方式确定数组元素的个数20、有以下结构体说明和变量的定义,且指针P指向变量a,指针q指向变量bo

7、则不能把结点b连接到结点a之后的语句是ostructnode(chardata;structnode*next;a,b,*p=&a,*q=&b;A、 3475B、 3574C1234D、 1235二、填空题(每小题2分,共20分)1、在C语言中,关系运算符中的等于表示为o2、以下程序的输出结果是omain()(intx=5,y=6;printf(,%da%d,X,y);3、若有inta32=1,2,3,4,5;,则a22的值是o4、若有定义:inta=5,b=2,c=l;则表达式a-bVcIlb=C的值是。5、c语言三个循环语句分别While语句语句和语句。6、下列程序的功能是计算圆的面积,将

8、程序补充完整。definePI=3.14159main()(floatr,s;printf(z,Enteranumberr:);s=PI*r*r;)7、在C语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、函数表达式和函数O8、若有inta32=l,2,3,4,5;,则all的值是。9、有以下程序#includemain()intn2,i,j;for(i=0;i2;i+)ni=0;for(i=0;i2;i+)for(j=0;j2;j+)nj=ni+l;printf%dn,z,nl);程序运行后的输出结果是O10、InyStrlen函数的功能是计算Str所指字符串的长度,并作为函

9、数值返回。请填空。intmystrlen(char*str)inti;for(i=0;!=0A【解析】在本题的定义方式中,系统会自动在数组最后加入一个0,表示字符数组的结束,因此数组的长度是6个字节。14、C【解析】本题主要考查了结构体变量引用成员数据的方法,主要有以下几种:结构体变量名,成员名或结构体指针-,成员名的方法来引用结构体成员。15、A【解析】cl=,+,8,一4=,+4=E,c2=A+85=A+3=D,(ASCII码为68),所以程序运行结果为E,68O16、C17、B18、D19、C20、B【解析】在被调用过程中,有这样的语句StaticSUnr,因为变量SUm是局部变量,局部

10、变量除了可以用Dinl语句声明外,还可用StatiC语句将变量声明为静态变量,它在程序运行过程中可保留变量的值,这就是说每次调用过程时,用StatiC说明的变量保持原来的值。具体过程分析如下:调用P(I),所以在被调过程中N=L执行ForNeXt循环,P(I)=Sum=I;调用P(2),所以在被调过程中N=2,执行FOrNeXt循环,P(2)=Sum=4;调用P(3),所以在被调过程中N=3,执行ForNeXt循环,P(3)=Sum=IO;调用P(4),所以在被调过程中N=4,执行FOrNeXt循环,P(4)=SUnF20;不难看出,最后输出的结果S值应为1+4+10+20=35,所以选项C)

11、正确。二、填空题1、=2、5a53、无#不存在4、05do-while语句,for语句6、scanf(%fPrintf(s=%f,s)7、参数8、09、310、,*(str+i)stril,i,三、编程题1、includeincludemain()intm,j,n-0,k;for(m=200;m=300;m+)k=sqrt(m);for(j=2;jk)if(n%8=0)printfnzz);/*fourd*/printf(,%d,z,m);n+;)2、includeincludeintmainOcharsi80,s280;inti,11,12,j;gets(si);gets(s2);ll=st

12、rlen(sl);12=strlen(s2);for(i=ll,j=0;js2j;)puts(si);returnO;)3、写法1:在函数外部定义结构体变量并且赋值,参数值为空。charname30;floatscore;a3-12,zsunnyz,89.1,8,zhenry,z,73.5,21,zlucy*,91.7;voidfunOinti,j;structst;for(i=0;i2;i+)for(j=0;jaj+l.num)t=aj;aj=aj+l;aj+l=t;)intmainOfor(i=0;i3;i+)ai. score);printf(,z%d,%s,%fn,z,ai.num,a

13、i.name,)return0;)8,henry,73.50000012,sunny,89.09999821,lucy,91.699997写法2:在主函数中定义变量,通过参数传递变量值charname30;floatscore;;voidfun(structs*a,intn)(inti,j;structst;for(i=0;in-l;i+)for(j=0;jaj+l.num)t=aj;aj=aj+l;ajl=t;intmainOstructsa3-12,SUnny”,89.1,8,“henry”,73.5,21,IUCy,91.7;inti;fun(a,3);for(i=0;iX!=0DX!=

14、13、与尸&0?1:*0)y=l;B、if(x)elseif(xO)y=l;elsey=0;elseif(x%O)y=T;elsey=0;C、 y=-lDy=0;if(x)if(x=O)if(xO)y=l;if(xi=O)y=l;elseif(x=O)y=O;elsey=-l;elsey=-l;4、结构化程序所要求的基本结构不包括()0A、顺序结构B、GOTO跳转C、选择(分支)结构D、重复(循环)结构5、若已定义:inta11=0,1,2,3,4,5,6,7,8,9,*p=a,i;其中0WiW9,则对a数组元素不正确的引用是A、apaB、*(&C、pI)、a106、下列语句合法的是OA、 4

15、+c=b=0;B、 a=+c;C、 a=2=b=6;D、 a=4+;7、已知有数组定义chara34;下列表达式中错误的是。A、a2=yzWINB、StrCPy(a2,WIN)C、a23=WD、aOl=aOl8、若a为int类型,且其值为3,则执行完表达式a+=a-a*a后,a的值是A、-3B、9C、-12D、69、判断两个字符串是否相等,正确的表达方式是oA、while(sl-s2)B、while(sl=s2)C、while(strcmp(sl,s2)=0)Dwhile(strcmp(sl,s2)=0)10、若有定义:inta34;不能表示数组元素al1oA、*(al+l)B、*11)C、(

16、*(a+l)l)Dn*(a+5)11有以下函数定义:voidfun(intn,doublex)若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是A、fun(inty,doublem);B、k=fun(10,12.5);Cfun(x,n);Dvoidfun(n,x);12、若变量均已正确定义并赋值,以下合法的c语言赋值语句是oA、x=n2.5;B、 x=5;C、 x+n=I;D、 5=x=4+l;13、若要用下面的程序片段使指针变量P指向一个存储整型变量的动态存储单元int*pp=malloc(sizeof(int);则应填入。A、intB、int*C(*int)D、(int*

17、)14、下面赋值表达式不正确的是.structstudent(longnum;charname20;stl,*p=stl,st2=101,“to;A、 stl=st2p-name=st2.nameCp-num=st2.numDn*p=st215、若有定义:inta,b,c;以下程序段的输出结果是a=ll;b=3;c=0;printf(%dn”,c=(ab,a%b);A、2B、0C、3D、116、判断关键字*不是关键字。AintB、 externC、 breakD、 main17、设有以下语句:typedefstructttcharc;inta4;cin;则下面叙述中正确的是A、可以用定义结构体

18、变量B、11是StrUet类型的变量C、可以用CIN定义结构体变量D、ClN是StrUCt11类型的变量18、以下程序的输出结果是ocharstr15=zhello!;printf(zz%dnzz,strlen(str);A、15B、14C、7D、619、下列程序的运行结果是omain()inta6,i;for(i=2;i3)%5;printf(%2d,ai);A、2323B1212C3232D222220、下列程序的输出结果是includestructabc(inta,b,c,s;main()(structabcs2=1,2,3,4,5,6;intt;t=s0.a+sl.b;printf(z

19、,%dn,t);)A、5B、6C、7D、8二、填空题(每小题2分,共20分)1、在C语言中,用转义字符,表示。答题提示:双引号/单引号/反斜线/横向跳格/回车换行2、在vc+编译环境下,c语言基本整型变量所占字节数是o3、c语言规定,不能使用c语言中的做标识符。4、C语言中,关系表达式和逻辑表达式的值是o5、C语言程序的三种基本结构是顺序结构、选择结构和。6、设有以下程序:main()intnl,n2;scanf(d,&n2);while(n2!=0)nl=n2;n2=n210;Printf(%d”,nl);)程序运行后,如果从键盘上输入1298;则输出结果为O7、在定义函数时函数名后面括号中

20、的变量名称为O8、若有说明:inta3=1,2,3,4,5,6,7;则数组a的第一维的大小为O9、以下程序运行结果是Oincludevoidmain()intx,y=l;if(y!=O)x=5;printf(z,t%dnzz,x);if(y=0)x=4;elsex=5;printft%dn,z,x);x=l;if(yO)x=4;elsex=5;printft%dn,z,x);)10、语句PUtChar(a+2);的输出结果是。三、编程题(每小题分,共40分)1、已知a,b,C都是1位整数,求当三位整数abc、Cba的和为1333时a、b、C的值。(本题10分)2、输入一个字符串和一个特定字符,

21、在字符串中删除从该特定字符开始的所有字符。例如输入字符串为abcdefg,特定字符为d,删除后的字符串为abc;输入字符串为abcdefg,特定字符为x,则输出“特定字符不存在o(本题14分)3、题目描述万里十佳歌手比赛终于开始了,评委席坐了N(N大于等于3,并且N小于80)个评委,他们商量了很久,终于找出一个公正合理的评分方法。每次歌手唱完后,每个评委自己打一个分,然后在N个评委的打分中,去掉一个最高分,一个最低分。然后再把剩下的评委的打分求平均值。但是问题是他们嫌每次拿计算器按实在太烦。作为一名计算机专业学生你用个程序帮帮他们搞定吧。输入输入有多组数据。每组2行,第一行是一个N,代表有N个

22、评委。然后第二行有N个数,每个数用空格隔开,代表每个评委的打分。当输入的N为0的时候结束输入。输出对于每组输入,输入最终这个选手的得分(小数点后面保留2位有效数字)。样例输入374363416972726749688样例输出36.OO62.20(本题16分)参考答案一、单项选择题1、A2、C3、B4、B5、D【解析】通常,引用一个数组元素可以用下标法,如sp-a和pi的形式;或指针法,如*(骨i)的形式。在本题中a0=0,a9=9,显然a10超出了数组范围。6、B7、A【解析】本题考查数组的基本知识,B、C、D在C语言中都是允许的,A选项的赋值是非法的。8、C9、C10、D11、C12A13、

23、D【解析】不论P是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型*)。14、B15、A16、C17、C【解析】将题目中的定义语句去掉前面的typedef和后面的CIN(分号保留),就是一条完整的结构体定义语句,其中StrUCt是说明符,TT是结构体名,大括号里面的是结构体成员的定义。此时要声明该结构体变量时需要使用struct加结构体名一起来声明,struct11一起构成一个结构体类型,就好像字符类型Char0若只去掉前面的typedef,就是一条结构体定义同时声明个结构体变量CIN的语句,因为CIN的前面部分是StrUCt11的完整写法,可以

24、看作是structTToC语言允许用typedef说明一种新类型名,其语法格式为:typedef类型名标识符;以后就可以用该标识符来代替被说明的类型名了。因此,当前面存在typedef时,该语句就变成了给StrUCt11的定义一个新的名称ClNo所以,此时的ClN是一个结构体类型,它相当于StrUCtTT,即可以和Char一样单独用来声明该结构体变量,而11只是一个结构体名,不能单独用来声明变量。所以,4个选项中C符合题意。18、D19、C【解析】本题程序的功能是对数组元素赋值,难点是对表达式4*(i-2*(i3)%5的分析。20、B【解析】在本题中,s0.a=l,sl.b=5,所以输出结果为

25、6。二、填空题1、单引号2、43、关键字4、0或15、循环结构6、89217、形参8、39、55,1【解析】上程序中第三个if语句有嵌套,前两个if语句没有嵌套。前两个if语句根据尸1便可得知输出结果均为5;最后一个if语句,根据条件yVO便知不成立,后续语句无法执行,只好输出前一赋值语句x=l的值。10、结果是C三、编程题1、includevoidmainOinta,b,c;for(a=l;a=9;a+)for(b=0;b=9;b+)for(c=l;c=9;c+)if(a*100b*10+c+c*100+b*10+a-1333)printf(,%d,%d,%dnzz,a,b,c);)2、ft

26、includeintmainOinti,flag=0;chars80,n;gets(s);scanf(%c,&n);Printf(特定字符是%cn,n);for(i=0;si!=0,;i+)if(si=n)si=0;fIag=I;Printf(删除特定字符枇后的字符串是,n);puts(s);break;elseflag=O;)if(flag=。)Printf(特定字符不存在);)3、ftincludeintmainOintt,n,i,max,min,sum;intscore102=0;while(scanf(zz%d,z,&n)if(n=0)break;for(i=0;in;+i)scanf

27、(,%dzz,&scorei);max=-1;min=101;sum=0;for(i=0;imax)max-scorei;if(scoreimin)min=scorei;sum+=scorei;sum一二max+min;printf(,%.21fnz,(double)sum/(n-2);)return;历年计算机C语言专升本题目(三)(总分100分,考试时长90分钟)一、单项选择题(每小题2分,共40分)1、如果要求在if后的判断条件是a不等于0,则下列选项中能正确表达这一关系的是。A、a0B、!aC、a=0D、a2、若fahr为整型变量,则能正确表示以下数学式的C语言表达式是一。A、 5*(

28、fahr-32)9B、 59*(fahr-32)C、 5(fahr-32)9D、 (fahr-32)9*53、有以下程序main()(inti=l,j=l,k=2;if(j+Ilk+)&i)printf(z,%d,%d,%dn”,i,j,k);)执行后输出结果是OA、 1,1,2B、 2,2,1C、 2,2,2D、 2,2,34、下面程序段的输出结果是x=3;doy=-;if(1y)(Printf(*);continue;)printf(Vz);while(x=2);A、#B、#*C、死循环D、输出错误信息5、在函数调用过程中,如果函数funa调用了函数funb,函数funb又调用了函数fun

29、a,贝oA、称为函数的直接递归调用B、称为函数的间接递归调用C、称为函数的循环调用D、C语言中不允许这样的递归调用6、若有代数式Ix3+lgx,则正确的C语言表达式是oA、 fabs(x*3+log10(x)B、abs(pow(x,3)+logl0(x)C、abs(pow(x,3)0)+IoglO(x)D、fabs(pow(x,3)0)log10(x)7、若有以下定义和语句:inta10=l,2,3,4,5,6,7,8,9,10,*ia=a;则不能正确表示a数组元素的表达式是oA、*iaB、 a10C、*aD、aiaa8、若已定义X和y是整型变量,x=2;,则表达式y=2.75+x2的值是。A

30、、5.5B、5C、3D、4.09、字符串XyZ在内存占用的字节数是oA、3B、4C、6D、810、以下数组定义中不正确的是.A、inta23;B、intb3=0,1,2,3;C、intc100100=0;D、inta3=1,2,1,2,3,1,2,3,4;11、以下关于宏的叙述中正确的是。A、宏名必须用大写字母表示B、宏定义必须位于源程序中所有语句之前C、宏替换没有数据类型限制D、宏调用比函数调用耗费时间12、整型变量X和y的值相等,且为非O值,则以下选项中结果为O的表达式是A、XlYB、XYC、X&YD、XCY13、下面关于形参与实参的说法,正确的是oA、形参与实参的个数、类型、顺序都应一一

31、对应B、形参与实参的个数可以不必相同,少一个多一个程序一样执行C、形参与实参的类型可以不同,不影响运算结果D、形参与实参的类型个数相同,而顺序不同,计算机可以自动进行匹配,所以形参的顺序无所谓,只要各种形参类型的数量与实参相同即可14、有以下程序structstu(charnum10;floatscore3;;main()(structstus3=20021,90,95,85,20022,95,80,75,20023,100,95,90,*p;inti;floatsum=0;P=s+2;for(i=0;iscorei;printf(z,%6.2fn”,sum);程序运行后的输出结果是OA、25

32、0.00B、250C、285.00D、28515、有以下程序ttincludemain()(intx=l,y=0;if(!x)y+;elseif(x=0)if(x)y+=2;elsey+=3;printf(%dn”,y);程序运行后的输出结果是。A、OB、2C、1D、316、下列叙述中正确的是OA、break语句只能用于switch语句体中B、continue语句的作用是使程序的执行流程跳出包含它的所有循环C、break语句只能用在循环体内和switch语句体内D、在循环体内使用break语句和continue语句的作用相同17、程序中有下面的说明和定义structabc(intX;chary

33、;structabcsi,s2;则会发生的情况是OA、编译出错B、程序将顺利编译、连接、执行C、能顺利通过编译、连接、但不能执行D、能顺利通过编译、但连接出错18、下面程序段的输出结果是oftincludemain()(floatx=l.236547;printf(/,%fn,z,(int)(x*1000+0.5)/(float)1000);)A、1.237000B、输出格式说明与输出项不匹配,输出无定值C、1.236000D、1.2419、以下能正确定义数组并正确赋初值的选项是oA、intN=5,aNLN;B、intbl2=l,2;C、intc2=1,2,3,4;D、intd32=1,2,3

34、,4;20、设有以下说明语句typedefstructintn;charch8;)per;则下面叙述中正确的是oA、PER是结构体变量名B、PER是结构体类型名C、typedefstruct是结构体类型D、struct是结构体类型名二、填空题(每小题2分,共20分)1、全局的外部变量与函数体内定义的局部变量同名时,在函数体内,变量起作用。2、实型常量有两种表示方法:小数形式和1】形式。3inta=0;a+=(a=8);求a的最后结果4、已知b=2,则表达式6+二上二3的值是O5、语句只能用在循环中,该语句的作用是结束本层本次循环,继续一下次循环,前不跳出循环。6、下列程序段的运行结果是#def

35、inesub(x,y)-ymain()inta,b,s;A=5,b=6;S=sub(a,b);printf(z,s=%dnz,s);7、一个C程序有且仅有一个函数。8、数组inta33;共定义了个数组元素。9、a=3;printf(%d,a);结果是o10、请阅读下面的程序,当用户从键盘输入helloworld时,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。voidmain()(charstr256;scanf();printf();)hello三、编程题(每小题分,共40分)1、输入3个学生4门课的成绩(60,70,65,75),(75,80,75,90),

36、(95,75,90,65),计算每个学生的总分和平均成绩并输出,结果保留一位小数。(本题10分)2、编写程序:字符串反转,如将字符串abc-123-xyz反转为zy-321-cba(本题14分)3、编写程序:使用结构体,创建一个长度为n的链表。(本题16分)参考答案一、单项选择题1、D【解析】if判断条件的值只能是O或非是i或a)就是if(!就的意思。2、A3、C【解析】首先计算if语句后面的表达式值,先计算运算符&前面括号里的“”运算。在“I”运算中先计算j+,值为1(j的值为2),为真,后面的k+将不再计算,k的值依旧为2。计算M后面的表达式i+,值为16的值变为2)。整个表达式的值为真,

37、所以执行后面的输出语句,最后输出的i、j和k的值为2、2和2。4、C5、B【解析】在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。本题描述的函数调用属于函数的间接递归调用。6、D7、B8、C9、B【解析】字符串中的每个字符占1个字节,但C程序在存储字符串时,要在最后一个有效字符后面接上1个字符串结束的标记符0O这样,存储字符串常量XyZ需要4个字节。所以解答是B。10、D11、C12D【解析】“II”为或运算符,当其左右表达式中只要一个为非零则整个表达式的值1。I是按位或,&是按位与,是按位异或,这三位运算符是按值的二进制位来比较的。13A【解析】形参、实参个数类型、数量、顺序应相同,因为类型转换都是有条件的,如果浮点型变量向指针型变量转换

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号