黑龙江八一农垦大学C语言程序设计期末(含六卷).docx

上传人:夺命阿水 文档编号:1197725 上传时间:2024-03-30 格式:DOCX 页数:55 大小:145.41KB
返回 下载 相关 举报
黑龙江八一农垦大学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、D、3【答案】B5、若i、j已定义成int型,则下列程序段中内循环体的总执行次数是for(i=6;i0;i)for(j=0;jc)b=a;a=c;c=b;则C的值为oA、1B、2C、3D、不一定【答案】B3、C语言的基本数据类型包括oA、字符型和数值型B、字符型和逻辑型C、整型和实型D、指针型和数据型答案A4、假定所有变量均已正确定义,下列程序段运行后X的值是()。kl=l;k2=2;k3=3;x=15;if(!kl)X;elseif(k2)x=4;elsex=3;A、14B、4C、15就得到小写字母,所以选项B和C是正确的。选项A中(cA)%26可以求出变量C中的字母与字母A相差几位,那么小

2、写字母a的ASCll码向后移动相差的位数就是对应的小写字母,所以选项A也是正确的。14、若有定义floata=25,b.*p二&b;,则下列对赋值语句*p=a;和p4aj的正确解释为()。A、两个语句都是将变量a的值赋予变量PB、*p=a是使P指向变量a,而P=&a是将变量的值赋予变量指针PC、*p=a是将变量a的值赋予变量b,而&a是使P指向变量aD、两个语句都是使P指向变量a【答案】C15、下面程序的输出结果为omain()(inta,b;b=(a=3*5,a*4,a*5);Printf(mb);A、60B、75Cs65D、无确定值【答案】B16、下面程序的运行结果是onain()(int

3、i,j,a=0;for(i=0;i2;i+)(for(j=0;j4;j+)if(j%2)break;a+;)a+:)printfC,%dn,a);)A、4B、5C、6C、在C语言算术的书写中,运算符两侧的运算数类型必须一致D、C语言的数值常量中夹带空格不影响常量值的正确表示【答案】B【解析】C语言中的注释/*/“或者“可以放在程序中的任何位置,但是不可以加在变量名或者关键字中间,会导致该变量名和关键字不被C语言识别,选项A)正确;C语言中变量的定义必须在变量使用之前,而且定义时该变量的作用域一定要能涵盖该变量的使用,所以定义的位置不是任意的,选项B)错误;算术运算符两侧的运算数类型可以不一致,

4、如加减乘除运算符都没有对运算数类型进行限制,如果不一致,系统会对其进行相应的数据类型转换,选项C)错误;空格一般作为分隔符使用,数值常量中夹带空格就会把该数值常量分作两部分:123和123是不一样的,选项D)错误;答案选A)。知识模块:数据类型、运算符与表达式10、以下能正确定义字符串的语句是oA、charstr=,064,;B、 charstr=kx43;C、 charstr=;D、charstr=,0;【答案】D11、若有以下语句,则正确的描述是Chara=,toyou;charb=t,o,y,o,u/;A、a数组和b数组的长度相同B、a数组长度小于b数组长度C、a数组长度大于b数组长度D

5、、a数组等价于b数组【答案】C12、以下正确的函数头定义形式是oA、 doublefun(intx,inty)B、 doublefun(intx;inty)C、 doublefun(intx,inty):D、 doublefun(intx,y);【答案】A【解析】函数的形式参数之间以逗号“,”隔开,且每个变量均需说明其数据类型,圆括号后面不能有分号。只有选项A)符合要求。13、已知大写字母a的ascii码是65,小写字母a的ascii码是97,以下不能将变量C中的大写字母转换为对应小写字母的语句是oA、c=(c-,)%26+,a,B、c=c+32C、c=c-A,+aD、c=(A,+c)%26-

6、,a,【答案】D【解析】由97-65=32可知大写字母对应的小写字母之间相差32,所以将大写字母加上32D、aa+1【答案】C20、有以下程序structstu(charname10;intnum;intscore;main()(structstus5=,yangsan,20041,703,lisiguon,20042,580,wangyin,20043,680,sundan,20044,550,penghua,20045,537,*p5,*t:inti,j;for(i=0;i5;i+)pi=&si;for(i=0;i4;i+)for(j=i+l;jscorepj-score)(t=pi;pi

7、=pLj;pj=t;)printf(5d%dn,sl.score,p1-score);)执行后输出结果是。A、550550B、 680680C、 580550D、 580680【答案】C二、判断题(每小题2分,共20分)()1、关于C语言C语言是结构化程序设计语言。答案正确()2、一个变量在内存中占据一定的存储单元【答案】正确()3、在if语句中,else前一个语句可不加D、7答案A17、以下对结构体类型变量的定义中,不正确的是。A、 typedefstructaaintn;floatm;AA;AAtdl;B、 defineAstructaaintn:floatm;)tdl;C、 struct

8、intn;floatm;aa;structaatdl;D、 structintn:floatm,tdl;【答案】C18、有以下程序#includCVStdio.hmain()ints,t,a=10;doubleb=6;s=sizeof(a);t=sizeof(b);printf(n%d,%dnn,s,t);)在vc6平台上编译运行,程序运行后的输出结果是oA、2,4B、4,4C、4,8D、10,6【答案】C19、若有定义:intaa8;则以下表达式中不能代表数组元aal的地址的是A、&aa0+lB、 &aalC、 &aa0+I2、编写一个函数,从传人的m个字符中找出最长的一个字符串,并通过形参

9、指针max传回;该串地址(用*作为结束输入的标志)。注意:部分源程序给出如下。请勿改动main。,函数和其他函数中的任何内容,仅在函数ProC()的花括号中填人所编写的若干语句。试j题程序:char*proc(char(*a)81,intnum)IIvoidmain()charss1081,*max;intn,i=0;Printf(输入若干个字符串:);gets(ssi);puts(ssi);whiIe(!Strcmp(ssi,*)=0)(i+;gets(ssei);puts(ssi);)n=i;max=proe(ss,n);printf(,nmax=%sn,max);(本题14分)答案cha

10、r*proc(char(*a)81,intm)(char*max;inti=0:max=aO:for(i=0;i或#includegraphics.h0【答案】错误()7、数组名能与其它变量名相同。数组名后是用方括号括起来的常量表达式,不能用圆括号。【答案】正确()8、函数形参的存储单元是动态分配的。【答案】正确()9、以“r”方式打开一个文件时,文件指针指向文件首。答案正确()10、文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件。【答案】正确三、编程题(每小题分,共40分)1、从键盘输入n和a的值,计算a+aa+aaa+.+aa.a(n个a)的值。(本题10分)【答案】#in

11、cludevoidmainO(inti,a,n;longintsum=0,st=O;Printf(请输a和n:);scanf(%d%dw,&a,&n);for(i=l;iscore;-score=y-score;y-score=t.score;)voidbubbIeSort(STUa,intn)for(inti=1;in;i+)for(intj=0;jn-i;j+)if(aj.score0)swap(aj,&aj+1);)输出格式为每行两个数值,学号N之后有一个空格,成绩值的输出宽度占3个位置样例输入20#04057820#04268020#(MO26120#03779520#042780样例

12、输出20#03779520#04268020#04278020#04057820#040261(本题16分)【答案】ftincludettincludeconstintN=50+5;typedcfstructstudentcharno15;intscore;)STU;voidswap(STU*,STU*);voidbubbleSort(STU,int);intmain()STUstuN;intn=0;while(scanf(%s%dn,stun.no,&stun.score)!=EOF)n+;bubbleSort(stu,n);for(inti=0;ino);strcpy(-no,y-no);

13、strcpy(y-no,t.no);A、执行3次B、执行4次C、循环次数不定D、是无限循环【答案】D6、下列函数的功能是ointfunl(char*X)(char*y=x;while(*y+);return(y-l);)A、求字符串的长度B、比较两个字符串的大小C、将字符串X复制到字符串YD、将字符串X连接到字符串Y后面【答案】A7、该语句打印结果为(每个d后都有空格)printf(%d,Printf(M%d”,Printf(%d,43);A、 4321B、 434343C、 4332D、 4321【答案】C8、在C语言中,引用数组元素时,其数组下标的数据类型允许是A、整型表达式B、整型常量C

14、、整型常量或整型表达式D、任何类型的表达式【答案】C【解析】在C语言中,引用数组元素时,其数组下标的数据类型可以是整型常量,也可以是整型表达式。9、数据是信息的符号表示;信息是数据的内涵,是数据的。A、语法解释B、语义解释C、语句说明D、用法说明【答案】B10、判断两个字符串是否相等,正确的表达方式是,OA、 while(sl=s2)Bswhile(sl=s2)C语言程序设计期末(二)(总分100分.考试时长90分钟一、单项选择题(每小题2分,共40分)1、运行下面程序时,若从键盘输入5后回车,则程序的输出结果是oA、7B、6C、5D、4【答案】B2、设C语言中,一个int型数据在内存中占2个

15、字节,则UnSignCdint型数据的取值范围为OA、0-255B、 0-32767C、0-65535D、0-2147483647【答案】C3、使下列程序段输出”123,456,78,键盘输入数据,正确的输入是。inti,j,kscanf(%d3d%d,i,ftj.ftk);printf(%dddn*,i,j,k);A、12345678B、123,456,78C、123,45678D、123,*45678【答案】C4、以下if语句书写正确的是。A、 if(x=0;)printf(l,%f,x);elseprintf(%f,-x);B、if(xO)x=x+l;printf(%f,x);elsep

16、rintf(w%f,-);C、if(xO);x=x+l;printf(%fff,x);elseprintf(%f,-);D、if(xO)x=x+l;printf(%fn,x)elseprintf(,%ft-);【答案】B5、以下的for循环次数是多少次?for(x=0,y=0;(y!=123)(x12?x+10:-12;printf(*%dnff,y);)A、3B、22C、1D、O【答案】D16、有如下程序#defineN3defineMN+l#defineNUM2*M+1mainO(inti;for(i=l;i=NUM;i+)printf(%d,i);)该程序中的for循环执行的次数是oA、

17、5R、8C、7D、6【答案】B17、C语言中,定义结构体的保留字是一。A、unionB、 structC、 enumD、 typedef【答案】B18、下面程序的功能是计算1至50中是7的倍数的数值之和,请填空:main()(inti,sum=0;for(i=l;i0)total=total+score;scanf(%d,&score);I【答案】正确()5、宏定义用宏名代替一个字符串,在替换时,只是作简单的替换,不作语法检查。【答案】正确()6、Inain函数也是C语言的关键字()【答案】错误()7、指针数组的每个元素都是一个指针变量【答案】正确()8、可以用一个指针变量指向一个函数,然后通

18、过该指针变量调用此函数。【答案】正确()9、有如下程序段:inti,j=2,k,*p;&i;k=*p+j;这里出现的两个号,含义是一样的。I【答案】错误()10、C语言程序是从源文件的第一条语句开始执行的【答案】错误C、 i%7!=0D、 i%7=l【答案】A19、下列一维数组定义正确的是一。A、 x=5;intnumx;B、 constihtx=5;floatnumx;C、 constfloatx=5;intnumx;D、 constintx:x=5:intnumx;【答案】B【解析】数组的下标不能是变量,不能为非整数,定义为常量的标识符不能再用来赋值,只能在定义时初始化。20、有以下程序s

19、tructs(intn;inta20:voidf(int*a,intn)(inti;for(i=0;in-l;i+)ai+=i;)main()(inti;structss=10,(2,3,1,6,8,7,5,4,10,9;f(s.a,s.n);for(i=0;is.n;i+)printf(%d,s.ai);)程序运行后的输出结果是。A、2,4,3,9,12,12,11,11,18,9,B、3,4,2,7,9,8,6,5,11,10,C、2,3,1,6,8,7,5,4,10,9,D、1,2,3,6,8,7,5,4,10,9,【答案】Achartem20;strcpy(tern,strl);str

20、cpy(str1,str2);strcpy(str2,tern);:3、定义一个结构体变量(包括年、月、日)。编写一个函数days,计算该日期在本年中是;第几天(注意闰年问题)。由主函数将年月日传递给days函数,计算之后,将结果传回到:主函数输出。(本题16分)【答案】includestructDate(intday;intmonth;intyear;.、intmain()(voiddays(structDatedatel,int*q);structDatedatel;structDate*p;intn;Printf(请输入年份:);scanf(n%d,&datel.year);Printf

21、(请输入月份:);scanf(w%d,ftdatel.month);Printf(请输入日期:);scanf(%d,&datel.day);p=&datel;days(*p,&n);*使指针指向变量n,存放计算的总天数*/printf(%d年d月%d日是该年的第%d无。n”,datel.year,datcl.month,datel.day,n);return(0):voiddays(structDatedatel,int*q)intmonth2;三、编程题(每小题分,共40分)1、编写程序:实现求解下面的式子的结果s=l*2+2*3+3*4+20*21(本题10分)【答案】main()intm

22、,n,sum=0;for(m=l;m=20;m+)sum=sum+m*(m+l):printf(%s,sum);)2、编写程序:字符串排序。如下:请输入3个字符串,每个字符串以回车结束!:bat排序后的结果为:abt(本题14分)【答案】ttincludettinclude#includevoidswap(char*str1,char*str2);intmain()Icharstrl20,str220,str320;Printf(请输入3个字符串,每个字符串以回车结束!:n);fgets(strl,(sizeofstrl/sizeofstrl0),stdin);fgets(str2,(size

23、ofstr2/sizeofstr20),stdin);fgets(str3,(sizeofstr3/sizeofstr30).stdin);if(strcmp(strl,str2)0)swap(strl,str2);if(strcmp(sti2,str3)0)swap(str2,str3);if(strcmp(strl,str2)0)swap(str1,str2);Printfe1排序后的结果为:n);printf(%sn%sn%sn,strl,str2,str3);return0;Ivoidswap(char*strl,char*str2)if(datel.year%400=0(datel.

24、year%100!=0&datel.year0)month2=29;*判断为润年,其该年的二月为29天*/elsemonth2=28;switch(datel.month)(casecase1:*q=datcl.day;break;2:*q=31+datel.day;break;casecasecasecasecasecasecasecasecasecase)3:*q=month2+31+datel.day;break;4:*q=31*2+month2+datel.day;break;5:*q=31*2+month2+30+datel.day;break;6:*q=31*3+month2+30

25、+datel.day;break;7:*q=31*3+30*2+month2+datel.day;break;8:*q=31*4+30*2+month2+datel.day:break;9:*q=5*31+30*2+month2+datel.day;break;10:*q=5*31+3*30+month2+datel.day;break;11:*q=6*31+3*30+month2+datel.day;break;12:*q=6*31+4*30+month2+datel.day;/把计算的总天数赋值给*p/case1;case2:a+=2;default:a+=3;)printf(%d,a);

26、)A、19R、1C、6D、8【答案】A5、要求通过WhiIe循环不断读人字符,当读入字母n时结束循环,若变量已正确定义,下列正确的程序段是OA、whiIe(ch=getcharO)!=,N,)printf(n%c”、ch);Bswhile(ch=getcharO!=,N)printf(,cw,ch);C,while(ch=getchar()=,N,)printf(n%c,ch);D、while(chgetchar()=,N,)printf(w%c,ch);【答案】A6、对于Void类型函数,调用时不可作为()。A、自定义函数体中的语句R、循环体里的语句C、if语句的成分语句D、表达式【答案】D

27、7、将十进制数35转换成二进制数为一A、 100OllB、 100llOC、 IlOOOlD、 IlOOll【答案】A8、定义如下变量和数组:intk,a33=lt2,3,4,5,6,7,8,9);则下面语句的输出结果是ofor(k=0;k,使i的值为l,j的值为2.k的值为3,以下选项中正确的输入语句是。A、 SCanf(%2d%2d%2d”B、 scanf(rt%d_%d_%dwC、 scanf(w%d,%d,%dM,&i,&j,&k);D、 scanf(i=%dJ=%d,k=%d【答案】C4、下列程序的输出结果是。main()(inta=0,i;for(i=l;iy?x:y;intf2(

28、intx,inty)(returnxy?y:x;main()(inta=4,b=3,c=5,d,e,f;d=fl(a,b);d=fl(d,c);e=f2(a,b):e=f2(e,c);f=a+b+c-d-e;printfC%d.%d,%dn,d,f,e);)执行后输出的结果是OA、3,4,513、5,3,4C、5,4,3D、3,5,4【答案】C16、执行下列语句后,r的值是charch=,a;intr=6;switch(ch+5)casea,:r=r+3;case,b,:r=r+5;case*c,:r=r+5;break;default:i*/=2;A、19B、3B、反码C、原码D、ASCII

29、码【答案】D10、以下关于字符串的叙述中正确的是OA、C语言中有字符串类型的常量和变量B、两个字符串中的字符个数相同时才能进行字符串大小的比较C、可以用关系运算符对字符串的大小进行比较D、空串一定比空格打头的字符串小【答案】DIls以下一维数组a的正确定义是.Asintn=10,an;B、intn;C、WefineSIZE10SCanf(n);intaSIZE;intan;D、inta(10);【答案】C12、下面正确的函数定义形式为oAsvoidfunO;)B、voidfun(intx;intC、voidfun()D、voidfun(intx,()【答案】C【解析】选项A函数声明与函数体之间

30、没有分号;选项D形参之间用逗号隔开;选项D形参y没有类型。13、下列字符中,其ascii码值最大的是oA、6B、空格字符C、ZD、a【答案】D【解析】由ASCII码值表可知,其大小顺序由小到大依次是空格字符、数字符、大写英文字母、小写英文字母。14、对于if(表达式)语句,以下说法正确的是oA、“表达式”的值只能是整数值B、在“表达式”中不能调用返回整数的函数C、在“表达式”中不能含有函数调用D、“表达式”可以是算术表达式【答案】DD、intarray3;【答案】A20、有如下定义structpersoncharname9;intage;structpersonclass10=john,17,

31、paul,19,mary,18,adam,16);根据上述定义,能输出字母a的语句是A、printf(%cn,class3.name);B、printf(%cn,class3.name0);C、printf(%cn,class4.name1):D、printf(%cn,class4.name0);【答案】B二、判断题(每小题2分,共20分)()1、宏定义是用宏名来表示一个数,在宏代换时以该数取代宏名。【答案】错误()2、CaSe后面不必有空格,紧接着是变量表达式。【答案】错误()3、对于如下的switch语句(使用break)的一般形式,其执行流程是:首先求解表达!式,如果表达式的值与某个常量

32、表达式的值相等,则执行该常量表达式后的相应语句段;如果表达式的值与任何一个常量表达式的值都不相等,则执行default后的语句段,最后j执行break语句,跳出SWiICh语句。switch(表达式)case常量表达式1:语句段1;break;case常量表达式2:语句段2;break;case常量表达式n:语句段n;break;default:语句段n+1;break;)【答案】正确C、11D、7【答案】B【解析】考查switch语句用法。default语句是当表达式的值与任一case子句的值都不匹配时,程序执行default后面的语句。在本题中,判断switch(ch+5),其实等价于switch(,F),而在CaSe语句中,没有一个能匹配的,所以直接执行default:r=217、以下对结构体变量StUI中成员age的非法引用是Qstructstudent(charname10;intage;)stul,*p;p=stul;A、stul.ageB、p-agcC、(*p).ageD、student,age【答案】D18、以下程序结果为:。voidadd()staticintx=3;x+;printf(%dl,x);)m

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

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


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号