《云南财经大学往年计算机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;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+)