《西安工业大学往年计算机C语言样卷含答案解析.docx》由会员分享,可在线阅读,更多相关《西安工业大学往年计算机C语言样卷含答案解析.docx(14页珍藏版)》请在第壹文秘上搜索。
1、往年计算机C语言样卷(一)(总分150分,考试时长120分钟)题号二三四五总分阅卷人分值4020202050150得分题目包括五大部分,单项选择题,判断题,填空题,程序分析题,编程题,请按要求在规定时间内作答。考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。一、单项选择题(每小题2分,共40分)1、调试程序是指对程序进行A、编辑B、编译C、查错和排错D、连接【答案】C2、语句While(!e);中的条件!e等价于。A、 e=0B、 e!=lC、 e!=0D、【答案】A3、C语言的基本数据类型包括oA、字符型和数值型B、字符型和逻辑型C、整型和实型D、指针型和数据型【
2、答案】A4、以下叙述中正确的是oA、对于逻辑表达式:a+1Ib+,设a的值为1,则求解表达式的值后,b的值会发生改变B、对于逻辑表达式:a+Mb+,设a的值为0,则求解表达式的值后,b的值会发生改变C、else不是一条独立的语句,它只是if语句的一部分D、关系运算符的结果有三种:0,1,T【答案】C【解析】B选项和A选项中,对于逻辑表达式,其中b的值不会因为表达式的结果发生改变;D选项中,关系运算符的结果有真和假两种。因此C选项正确5、以下循环体的执行次数是_#incIudevoidmain()(inti,j;for(i=0,j=l;istaticD、extern【答案】A8、下面是有关C语言
3、字符数组的描述,其中错误的是oA、不可以用赋值语句给字符数组名赋字符串B、可以用输入语句把字符串整体输入给字符数组C、字符数组中的内容不一定是字符串D、字符数组只能存放字符串【答案】D9、以下叙述中错误的是oA、可以通过typedef增加新的类型B、可以用typedef将已存在的类型用一个新的名字来代表C、用typedef定义新的类型名后,原有类型名仍有效D、用typedef可以为各种类型起别名,但不能为变量起别名【答案】A10、下面各语句行中,能正确进行字符串赋值操作的语句是。A、charST5=fABCDEz,;B、charS5=A,B,C,D,E;C、 char*S;S=ABCDE;D、
4、 char*S;scanf(%S”,S);【答案】C11、有以下程序#includevoidfun(int*a,intn)*fun函数的功能是将a所指数组元数从大到小排序*/(intt,i,j;for(i=o;in-l;j+)for(j=j+l;jn;j+)if(aiaj)(t=ai;ai=aj;aj=t;)main()(intc10=l,2,3,4,5,6,7,8,9,0,i;fun(c+4,6);for(i=0;ici);)程序的运行结果是OA、1,2,3,4,5,6,7,8,9,0,B、0,9,8,7,6,5,1,2,3,4,C、0,9,8,7,6,5,4,3,2,1,D、1,2,3,4
5、,9,8,7,6,5,0,【答案】D12、以下函数fun形参的类型是.fun(floatx)(floaty;y=3*-4;returny;)A、intB、不确定C、 voidD、 float【答案】D13、有以下程序main()inti,s=0;for(i=l;i10;i+=2)s+=i+l;printf(%dn”,s);)程序执行后的输出结果是。A、自然数19的累加和B、自然数110的累加和C、自然数19中的奇数之和D、自然数110中的偶数之和【答案】D14、以下叙述正确的是。A、在对一个C程序进行编译的过程中,可发现注释中的拼写错误B、在C程序中,main函数必须位于程序的最前面C、C语言
6、本身没有输入输出语句D、C程序的每行中只能写一条语句【答案】C15、有以下程序#includemain()(inta=2,b=3,c=4;a*=16(b+)-(+c);printf(zz%dn”,a);程序运行后的输出结果是0A、28B、30C、15D、14【答案】A16、下面程序段的输出结果是.x=3;do(y=;if(!y)(Printf(*);continue;printfCr);while(x=2);A、#B、#*C、死循环D、输出错误信息【答案】C17、以下程序的运行结果是#includestdio.hmain()(structdate(intyear,month,day;today
7、;Printf(%dn”,sizeof(structdate);)A、6B、8C、10D、12【答案】A【解析】在解答本题时应该考虑两个问题:结构体变量的长度及SiZeof()求字节数的运算符。结构体变量的长度是其内部成员总长度之和,本题中,structdate中包含year,month,day三个整型变量。一个整型变量所占的字节数为2o18、下面程序的输出结果是omain()(unsignedintnum,k;num=26;k=l;do(k*=num%10;num/=10;)while(num);printf(/%dnz,k);)A、2B、12C、60D、18【答案】B19、以下叙述中正确的
8、是。A、语句inta8=0;是合法的B、语句inta=0;是不合法的,遗漏了数组的大小C、语句chara2=A,B;是合法的,定义了一个包含两个字符的数组D、语句Char3;a=AB;是合法的,因为数组有三个字符空间的容量,可以保存两个字符【答案】A【解析】B选项中,如给全部元素赋值,则在数组说明中,可以不给出数组元素的个数;C选项中,char2=ab不合法,应为char2=a,选项中,用字符串方式赋值比用字符逐个赋值要多占1个字节,在该选项中应为3个字节。因此A选项正确。20、有以下程序structstu(charname10;intnum;floattotalscore;);voidf(s
9、tructstu*p)(structstus2=zzsundan,z,20044,550,penghua”,20045,537,*q=s;+P;+q;*p=*q;main()(structstus3=,zyangsa11,z,20041,703,z,Iisiguoz,20042,580;f(s);printf(/,%s%d%3.Ofn,sl.name,sl.num,sl.totalscore);程序运行后的输出结果是。A、SunDan20044550BPenghua20045537CLiSiGuo20042580DSunDan20041703【答案】B二、判断题(每小题2分,共20分)()1、
10、i+表示在使用该表达式值之前将i值加1。【答案】错误()2、宏定义在行末加分号。【答案】错误()3、在if语句中,必须出现else。【答案】错误()4、do-while语句先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。【答案】正确()5、用StrCat(字符串1,字符串2)连接两个字符串函数时,字符串1的存储空间没有限制。【答案】错误()6、函数的实参可以是常量,变量或表达式【答案】正确()7、任何数组在使用前必须先定义。【答案】正确()8、在标准C语言中,在main函数中定义的变量在整个程序中都是有作用的。【答案】错误()9、C程序中如果对一维数组的
11、全部元素都赋初值,则定义数组时不必指定数组长度。【答案】正确()10、文件是否打开是可以判断的。【答案】正确三、填空题(每小题4分,共20分)1、设inta=12,则表达式a=a+a运算后,a的值是。答案02、逻辑运算符皿、L!中的优先级是O【答案】!&I门3、执行下列的程序段后,正确的结果是ointi=5;while(i=1)i一;printf(,%dz,i);【答案】无限循环#死循环4、语言的函数体一般由和构成【答案】定义语句I执行语句5、以下函数值的类型是ILfun(floatx)floaty;y=3*-4;returny;)【答案】int四、程序分析题(每小题5分,共20分)1、int
12、x=6,y=7;printf(%d,x+);printf(/%dnz,+y);程序的输出结果是o【答案】6,82、改正下列程序中不正确的语句。main()(intn;floats=l.0;for(n=10;nl;n-)s=s+ln;printf(,%6.lfnz,s);【答案】s=s+L0/n3、以下程序运行后的输出结果是o#includemain()inta=200,b=010;printf(,z%d%dn,z,a,b);)【答案】20084、下列程序段的运行结果是ointa=2,*p;p=&a;printf(,%dz,*p);【答案】2五、编程题(每小题分,共50分)1、编写程序:输入两个正整数m和n,求其最大公约数和最小公倍数。(本题12分)【答案】#includeintmain().inta,b,t,r,n;Printf(请输入两个数字:n);scanf(%d%d,&a,&b);if(a=b,令r=amodb设a=kc,b