云南财经大学往年计算机C语言模拟(共六卷)含答案解析.docx

上传人:夺命阿水 文档编号:1078171 上传时间:2024-03-13 格式:DOCX 页数:32 大小:167.88KB
返回 下载 相关 举报
云南财经大学往年计算机C语言模拟(共六卷)含答案解析.docx_第1页
第1页 / 共32页
云南财经大学往年计算机C语言模拟(共六卷)含答案解析.docx_第2页
第2页 / 共32页
云南财经大学往年计算机C语言模拟(共六卷)含答案解析.docx_第3页
第3页 / 共32页
云南财经大学往年计算机C语言模拟(共六卷)含答案解析.docx_第4页
第4页 / 共32页
云南财经大学往年计算机C语言模拟(共六卷)含答案解析.docx_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《云南财经大学往年计算机C语言模拟(共六卷)含答案解析.docx》由会员分享,可在线阅读,更多相关《云南财经大学往年计算机C语言模拟(共六卷)含答案解析.docx(32页珍藏版)》请在课桌文档上搜索。

1、往年计算机C语言模拟(一)(怠分Ioo分,考试时长90分钟题号二三总分阅卷人分值402040100得分题目包括三大部分,单项选择题,填空题,编程题,请按要求作答。答卷必须用蓝色或者黑色纲笔、圆珠笔,不许用铅笔或者红笔作答。考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。一、单项选择题(每小题2分,共40分)1、下列字符中,ascii码值最小的是。A、aB、ACXD、Y【答案】B【解析】a、A、x、Y对应的ASCU码值分别是OOonl0、0001100.100011K1001101,故正确答案为B。2、若变量已正确说明为门Oal型,要通过语句SCanf(%f%f%f”

2、,Gab濯c);给a赋予W,0,b赋予22.0,c赋予33.0,下列不正确的输入形式是。A、IOV回车22V回车33V回车B、10.0,22.0,33.0V回车C、10.0V回车22.033.OV回车D、1022V回车33V回车【答案】B【解析】在C语言中,当一次输入多个数据的时候,数据之间要用间隔符,合法的间隔符可以是空格、制表符和回车符。逗号不是合法的间隔符。3、当把以下四个表达式用作if语句的控制表达式时,有个选项与其它三个选项含义不同,这个选项是OA、k%2B、k%2=lCx(k%2)!=0D、!k%2=l【答案】D4、执行以下循环语句时,下列说法正确的是。X=-1;do(X=X*X;

3、while(x=0);A、循环体将执行一次B、循环体将执行两次C、循环体将执行无限次D、系统将提示有语法错误【答案】A5、二维数组a的每个元素是由6个字符组成的串,其行下标i=0,L,8,列下标j=l,2,,10。若a按行先存储,元素a8,5的起始地址与当a按列先存储时的元素()的起始地址相同。设每个字符占一个字节。A、 8,5B、 A3,10C、A5,8D、A0,9【答案】B【解析】二维数组A0:8,1:10,设起始地址为0,数组元素Ai,j按行存储公式为:Loc(Ai,j)=Ll+(i-l)U2d+(j-l)Xd,数组元素Ai,j按列存储公式为:Loc(Ai,j)=Ll+(j-l)U2d+

4、(i-l)d,可得i=3,j=106、以下选项中,不能作为合法常量的是。A、1.234e04B、1.234e0.4C、 1.234e+4D、1.234e0【答案】B【解析】C语言的语法规定,字母e(E)之前必须有数字,且e(E)后面的指数必须是整数,而选项B)中,e(E)后面的指数是小数,所以不合法。7、设有如下程序段chars20=bcjing,*p;p=s;则执行p=s;语句后,以下叙述正确的是。A、可以用*p表示s0B、S数组中元素的个数和P所指字符串长度相等C、S和P都是指针变量D、数组S中的内容和指针变量P中的内容相等【答案】A8、在C语言中,要求运算数必须是整数的运算符是OA、B、

5、%C、/main()(int num=O;while(num,O11068two , three ; two=-l , three “two” , *three*) “two , threeD、D【答案】B13、下面描述正确的是。A、两个字符串包含的字符个数相同时,才能比较字符串B、字符个数多的字符串比字符个数少的字符串大C、字符串STOP与STOP”相等D、字符串That小于字符串The【答案】D14、以下对枚举类型名的定义中正确的是A、 enuma=oneB、 enumaone=9C、 enuma=one”D、 enumaone”【答案】B15、卜面程序的输出结果是一D、无限次【答案】D1

6、7、若有以下说明语句:StrUCtstudent(intnum;charname;floatscore;stu;则下面的叙述不正确的是:()A、StrUCt是结构体类型的关键字B、stiuctstudent是用户定义的结构体类型C、num,SCOrC都是结构体成员名D、SUl是用户定义的结构体类型名【答案】D18、下列程序的输出结果是ointfun(intx,inty,int*cp,int*dp)*cp=x+y;*dp=x-y;)main()(inta,b,c,d;a=30;b=5O;fun(a,b,&c,&d);printf(*%d,%dn*,c,d);)A、50,30B、30,50C、80

7、,-20D、80,20【答案】C19、若二维数组a有m行n列,则下面能够正确引用元素aij的为。A、 *(a+j*n+i)B、 *(a+i*n+j)C、*(*(a+i)+j)D、*(*a+i)+j【答案】C20、若有下列说明和语句,则对结构体变量St中成员i的引用方式不正确的是structstuinti;intname;)st,*p:P=&st;A、st.iB、*p.iC、(*p).iD、p-i【答案】B【解析】本题主要考查结构指针:P=&st,访问结构体的成员,可以通过结构变量访问,即st.i,也可以用等价的指针形式即(*p).i和p-i。二、填空题(每小题2分,共20分)1、若i为整型变量

8、,且i%2=0的值为1,则变量i为数。【答案】偶2、刎怎么实现(两位数)左右对齐【答案】%2d和%-2d3、&0II2的值为。【答案】,1(或真案4、C语言源程序经过编译后,生成文件的后缀名是【答案】.c5、下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。intn=0,ch;ch=getchar();while()if(_)n+;c=getchar();【答案】ch!=n,ch=O,0chV;96、写出下列程序的运行结果。#includestdio.hmain()(inta=l,2,3,-4,5);intm,n,*p;p=feaO;=*(p+l);n=*(p+4);prin

9、tf(*%d%d%d*,*p,m,n);【答案】1257、在SCanf函数中,用符号表示变量的地址。【答案】&8、若有inta32:l,2,3,4,5;,则all的值是。【答案】O9、下列程序段的运行结果是ocharsi20=abcdef,s25=,abc;strcpy(sl,s2);printf(%cm,sl5);【答案】f10、下列程序段的运行结果是。charsi20=zabcdef*ts25=*abc*;strcpy(si,s2);printf(*%c*,sl2);【答案】c三、编程题(每小题分,共40分)1、编写程序:计算并输出一维数组a10中的最大值。(本题10分)【答案】#incl

10、udemain()inta10,ifmax=0;for(i=0;i=9;i+)SCanf(%d,ai);if(maxai)max=ai;printf(*%d*,max);getch();I2、任意输入两行字符串,把第二行字符串连接到第一行字符串末尾(不用StrCat函数)。(本题14分)【答案】#includeincludeintmain()1.charsl80,s280;inti,11,12,j;gets(si);gets(s2);ll=strlen(sl);12=strlen(s2);for(i=ll,j=0;j12;i+,j+)sli=s2j;)puts(si);return0;3、通过

11、函数调用实现:讲结构体数组中的三个元素按num成员进行升序排列。要求:数组元素依次赋初值为:12,SUnny”,89.1、8,heny”,73.5、21lucy91.7o结构体定义如下:structsintnum;charname30;floatscore;:(本题16分)【答案】写法1:在函数外部定义结构体变量并且赋值,参数值为空。charname30;floatscore;a3=12,SUnny”,89.1,8,*henry*,73.5),21,*lucy*,91.7;voidfunOinti,j;structst;for(i=0;i2;i+)for(j=0;jaj+l.num)(t=aj

12、;aj=aj+l;aj+l=t;)intmain()inti;funO;for(i=0;i3;i+)printf(*%d,%s,%fn*,ai.num,ai.name,ai.score);returnO;21,lucy,91.6999978,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=a

13、j+l;aj+l=t;)intmain()Istructsa3=12,*sunny*,89.1),8,“henry”,73.5,21,*lucy*,91.7;inti;fun(a,3);for(i=0;i设有intX,y;以下语句判断X和y是否相等,正确的说法是该语句oif(x=y)Printf(Xisequaltoy.;A、语法错B、不能判断X和y是否相等C、编译出错D、能判断X和y是否相等【答案】B2、有以下程序段intk=0,a=l,b=2,c=3;k=ac?c:k;执行该程序段后,k的值是OA、3B、2C、1D、0【答案】B3、if语句的基本形式是:if(表达式)语句,以下关于表达式值

14、的叙述中正确的是A、必须是逻辑值B、必须是整数值C、必须是正数D、可以是任意合法的数值【答案】D4、下面关于break语句的描述中,不正确的是A、break可以用于循环体内B、break语句可以在for循环语句中出现多次Cbreak语句可以在switch语句中出现多次D、break语句可用于if条件判断语句内【答案】D【解析】本题考查的是break语句的使用。break可以结束switch语句和for循环语句,但是不能使用在条件判断语句内。5、下列定义数组的语句中,正确的是mk-)k+;elsek;A、12B、11C、10D、9【答案】C7、具有相同类型的指针变量p与数组a,不能进行的操作是。

15、A、 p=a;B、 *p=a0;C、 p=&a0;D、 P=&a;【答案】D8、算法可使用下面方法来描述。A、 N-S图B、 PAD图C、伪代码D、以上都是0【答案】D9、下面关于编译预处理命令,正确的是oA、 definecharCHRB、 #DefineE0.0000034C、糊defineFALSE0D、defineDIM26【答案】D【解析】无参宏定义的一般格式:#define标识符语言符号字符串,其中:“define”为Atypedefstruct宏定义命令;标识符为所定义的宏名,通常用大写字母表示,以便于与变量区别;“语言(符号字符串”可以是常数、表达式、格式串(格式串是用双引号括

16、起来的字符串)等,选项intred;ABC错误,选项D正确;本题答案为D。intgreen;10、inta10;intblue;合法的数组元素的最小下标值为一COLOR;A、10COLORcl:B、9B、structcolorclC、1(D、0intred;【答案】Dintgreen;11、设有以下函数:intblue;voidfun(intn,char*s);C、structcolor()intred;则下面对函数指针的定义和赋值均正确的是。intgreen;A、void(*pf)();pf=fun;intblue;B、void*pfO;pf=fun;cl;C、void*pfO;*pf=fu

17、n;D、stiuctDxvoid(*pf)(int,char);pf=&fun;(【答案】Aintred;12、微机中的32指的是ointgreen;A、微机型号码intblue;B、机器字长cl;C、内存容量【答案】BD、存储单位15、有以下程序:则输出结果是。【答案】Rmain()【解析】字长越长,计算机一次处理的信息位就越多,精度就越高,字长是计算机性能(的一个重要指标。目前,微机的字长以32位、64位为主。inti,s=l;13、下列定义数组的语句,正确的是三for(i=l;i50;i+)if(!(i%5)&!(!i%3)s+=i;A、intN=10;intxN;Printf(%dr,

18、s);B、defineN10;intxN;C、intx0.10;A、409D、intx;B、277【答案】BC、1【解析】数组说明的一般形式为:类型说明符数组名常量表达式;其中类型说明符可D、91以是任一种基本数据类型或构造数据类型,数组名是定义的数组标识符。常量表达式表【答案】D示数据元素的个数,也就是数组的长度,必须是整型常量。16、下列程序的输出结果是14、以下选项中不能正确把Cl定义成结构体变量的是o#includemain()intfun2(doublex,doubley)inti,a=O,b=O;(for(i=l;ip6);charch;【答案】Cdoublef;20、下面定义结构

19、变量的语句中错误的是。b;A、structstudent则结构变量b占用内存的字节数是Ointnum;charname20;A、1s;B、2B、structC、7intnum;charname20;D、11s;【答案】DCstructstudent【解析】结构体变量所占用内存的字节数是其所有成员所占用内存字节数之和。本题中intnum;charname20;整型变量i所占用的内存是2字节,字符型变量Ch所占用的内存是1字节,双精度型变);量f所占用的内存是8字节,三者相加即可。structstudents;18、有下列程序:intfunl(doublea)structstudentintnum

20、;charname20;returna*=a;);students;【答案】D二、填空题(每小题2分,共20分)1、若a=l,b=2,c=3,d=4,则表达式ab?a:cd?c:d的值是【答案】42、设inta=5,b=6;则表达式(+a=b)?+a:b的值是。【答案】73、有intx=3,y=-4,z=5;则表达式(x&y)=(XIZ)的值为【答案】14、C语言的源程序拓展名为()编译后生成0链接后生成()【答案】.cI.obj.cxe5、main()inta,b;for(a=l,b=l;a=20)break;if(b%3=l)(b+=3;continue;)b-=5;)程序的输出结果a的值

21、为o【答案】86、改正下列程序中不正确的语句。main()(intn;floats=l.0;for(n=10;nl;n)s=s+ln;printf(*%6.lfn*,s);)【答案】s=s+l.0/n7、局部变量又称内部变量,是在函数定义的变量。【答案】内部#内8、若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输此请写出完整的的输出语句O【答案】printf(a=%d,b=r,a,b);9、卜.面程序段的运行结果是。i=l;a=0;s=l;do(a=a+s*i;s=-s;i+;)while(i=10);Printf(a=%d,a);【答案】a=

22、-510、程序结果是#includevoidswap(int*,int);voidmain()(inta=3,b=5;swap(&a,b);printf(*a=%d,b=%d*,a,b);)voidswap(int*x,inty)(inttemp;temp=*x;*x=y;y=temp;)【答案】a=5,b=5三、编程题(每小题分,共40分)1、编写程序:求1700之间的奇数和及偶数的和。(本题10分)【答案】ftincludemain()intSUInI=0,SUIn2=0,a,b;for(a=l;a=100;a+)if(a%2=0)suml+=a;elsesum2+=a;printf(*%

23、d,%d*,suml,sum2);)2、有一篇文章,共有多行文字(不超过10行),最后一行为。nd。要求分别统计出其中英文大写字母、小写字母、空格以及其它字符的个数。统计结果不包括最后一行的end。(本题14分)【答案】Sincludeincludeintmain()chars1080;inti=0,j,space=0,lwr=0,upr=0,number=0,other=0;while(1)gets(si);if(strcmp(si,end)!=。)i+;elsebreak;for(i=i-lji=0;i)for(j=0;sij!=0,:j+)if(sij=)space+;elseif(si

24、j=a&sij=,A,&sij=*0,&sij=9)number+;elseother+;)printf(大写字母有%d个n,upr);Printf(小写字母有%d个n”,Iwr);Printf(数字有d个n”,number);Printf(空格有为d个n”,space);Ptintf(其他字符有%d个,other);)3、建立一个链表每个结点包括学号、姓名、性别、年龄、地址。输入一个学号打印该学号的学生的所有信息。如无此学号,则输出“没有找到“,使用结构体实现(本题16分)【答案】ftincludeftincludestructnodclongNo;charName10;charsex;in

25、tage;st*uctnode*ncxt;);node*createlink()structnode*h,*p,*q;longnum;h=(structnode*)malIoc(sizeof(structnode);P=q=h;Printf(请输入学生学号(输入0退出输入)!n);scanf(*%ldz,&num);while(num!=0)p=(structnode*)malIoc(sizeof(structnode);p-No=num;Printfc请输入学生姓名,n);scanf(%s”,p-Name);Printf(请输入学生年龄和性别,n);scanf(飞d,%c”,p-age,&p

26、-sex):q-next=p;q=p;Printf(请输入学生学号(输入。退出输入)!n);scanfC*%ldzz,&num);p-next=NULL;returnh;voidfind(structnode*phead,longnum)stiuctnode*p;if(phead-nextNULL)Printf(没有找到.n);return;p=phead-next;while(p!=NULUp-No!=num)p=p-next:if(P=NULL)Printf(没有找到.n);return;elsePrintf(学生的姓名,%s,年龄,%d,性别,%c*,p-Name,p-age,p-sex

27、);)intmainOlongnum;structnode*phead;phead=createlink();Printf(请输入要查找的学生的学号:n);SCanf(%ld,fenum);find(phead,num);往年计算机C语言模拟(三)(总分IOD分,考试时长90分钟)题号二三总分阅卷人分值402040100得分题目包括三大部分,单项选择题,填空题,编程题,请按要求作答。答卷必须用蓝色或者黑色钢笔、圆珠笔,不许用铅笔或者红笔作答。考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。一、单项选择题(每小题2分,共40分)1、下列关于八进制与十六进制的描述中,错

28、误的是。A、八进制是一种逢八进一的机制B、八进制由0-8这此符号来描述C、十六进制是一种逢十六进一的机制D、十六进制由0-9、A-F这些符号来描述【答案】B【解析】八进制是由0-7这八个符号来描述的。2、有如下嵌套的if语句if(ab)if(ac)k=a;elsek=c;elseif(bc)k=b;elsek=c;以下选项中与上述if语句等价的语句是。Ak=(ab)?a:b;k=(bc)?b:c;k=(ab)?(bc)?a:b):(bc)?b:c);C、k=(ab)?(ac)?a:c):(bc)?b:c);Dxk=(ab)?a:b;k=(ac)?a;c【答案】C3、以下叙述中正确的是OA、对于

29、逻辑表达式:a+1Ib+,设a的值为1,则求解表达式的值后,b的值会发生改变B、对于逻辑表达式:a+&b+,设a的值为0,则求解表达式的值后,b的值会发生改变C、else不是一条独立的语句,它只是if语句的一部分D、关系运算符的结果有三种:0,1,TT【解析】B选项和A选项中,对于逻辑表达式,其中b的值不会因为表达式的结果发生改变;D选项中,关系运算符的结果有真和假两种。因此C选项正确4、卜.列语句哪些不属于循环语句?AsforB、 whileC、 dowhileD、if【答案】D5、已知p,pl为指针变量,a为数组名,j为整型变量,下列赋值语句中不正确的是A、 p=&j,p=pl;B、 p=

30、a;C、 p=&aj;D、 p=10;【答案】D6、5列四个数中与十进制数(163)10不相等的数是oA、(A3)16B、(10100011)2C、(000101100011)8421BCDD、(233)8【答案】D【解析】本题主要考查的知识点为各进制数之间的转换。要点透析选项A、B、C对应的十进制数均为(163)10,而选项D(233)8=(010011011)2(163)10,故选项D为正确答案。7、有以下程序:main()inta=l,2,3,4,5,6,7,8,9,0),*p;for(p=ajp(*p).aC、p-data.aD、p.data,a【答案】B18、有如下程序main()i

31、nty=3,x=3,z=l;printf(*%d%dn*,(+x,y+),z+2);)运行该程序的输出结果是。Ax34B、42C、43D、33【答案】D【解析】逗号表达式(+x,y+)的值应该是y+的值,由于y+是先引用后自增,所以y+的值是3。19、在C语言中对一维整型数组的正确定义为oA、inta(10);B、intn=10,an;C、intn;an;D、tdefineN10intaN;【答案】D20、有以下程序structstucharname10;intnum;);voidf(char*name,intnum)structstus2=*sundan*,20044,*penghua*,20045;num=s0.num;strcpy(name,s0.name);mainO(structstus2=*yangsan*,20041,*lisiguo*,20042,*p;P=&sl;f

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

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


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号