《浙江科技学院c语言历年试卷.docx》由会员分享,可在线阅读,更多相关《浙江科技学院c语言历年试卷.docx(30页珍藏版)》请在第一文库网上搜索。
1、浙江科技学院2010-2011学年第2学期考试试卷A卷考试科目C语言程序设计考试方式闭完成时限2小时拟题人题库审核人批准入2011年6月25日建工、生化、艺术、轻工、理学学院2010年级理工科专业题序二三四五总分加分人复核人得分签名命题:说明:1 .应将全部答案写在答卷纸对应的题号处;否则作无效处理;2 .编程题应写明题号,若答卷纸不够,请写在背面,不要另添卷纸;3 .考试完成后,必须将试卷与答卷同时交回。一、判断题(本大题共12小题,每题小1分,共12分)1 .在定义数组时,数组的长度可以用整型常量或者整型变量表示。2 .执行intx=3,y=4;f1oatz;z=xy;”后,Z的值为0.7
2、5。3 .C语言中,关系表达式的值是1和0,分别表示“真”和“假4 .e1se语句一定要与if语句配对使用,程序中e1se语句的个数一定小于或者等于if语句的个数。5 .C语言是一种结构化程序设计语言,结构化程序由顺序、选择、循环三种基本结构组成。6 .函数中可以使用多个return语句,也可以没有return语句。如果使用多个returii语句可以向主函数返回多个值。7 .使用w”方式打开一个已经存在的文本文件,将在该文件原有数据的基础上添加新的数据。8 .定义语句achars=HeHo”;”和“chars=H6e%T,%6o,;定义的两个字符数组是等价的。9 .调用函数时,若实参是一个数组
3、名,则向函数传送的是数组的首地址。10 .使用dowhi1e语句实现循环时,不管条件真假,都将首先无条件的执行一次循环。11 .假定hit类型变量占用两个字节,若有定义:intx10=04;,则数组X在内存中所占字节数是6。12 .语句“c=*p+”的执行过程是P所指向的存储单元的值赋值给变量c,然后P变量自增。二、单选题(本大题共20小题,每题1分,共20分)1.一个C程序总是从()开始执行。A.书写顺序的第一个函数B.书写顺序的第一条执行语句D.不确定C.主函数main()A.设计数据结构和算法C.编写程序3.A.13*sin(12)*sin(12)C.pow(sin(0.5),2)34
4、.下列语句执行后,变量n的值是(for(i=1;i=10ora=0a=10&a=10ab、c、d、m、n均为int型变量,且a=5b=6C=7、d=8m=2n=2,则逻辑表达式(m=ab)&(I1=Cd)运算后,n的值为()。A.0B.1C.2D.语法错误8 .下列程序段不尽死循环的是()oA.inti=100;B.intk=0;whi1e(1)do+k;)whi1e(k=0);i=i%100+1;if(i100)break;)C.fr(;);D.ints=36;whi1e(s)s;9 .已知intx=10,y=20,z=30;,以下语句执行后x、yZ的值是()。if(y)z=;=y;y=z;
5、A.x=10,y=20,z=30B.x=20,y=30,z=30C.x=20,y=30,z=10D.x=20,y=30,z=2010 .请阅读以下程序:#inc1udevoidmain()f1oata,b;scanf(n%fa);if(aO.O)b=0.0;e1seif(a5.0)&(a!=2.0)b=1.0(a+2.0);e1seif(a,则上面程序的输出结果是()oA.0.000000B.0.500000C.1.000000D.0.250000IX.有以下程序段:intn=0,p;doscanf(%dn,&p);n+;whi1e(p!=12345&n3);此处dowhi1e循环的结束条件是
6、()oA. p的值不等于12345并且n的值小于3B. p的值等于12345并且n的值大于等于3C. P的值不等于12345或者n的值小于3D. P的值等于12345或者n的值大于等于312 .若有如下定义,则下面在SCai1f函数调用语句中对结构体成员的引用不氐碗的是()ostructpupi1(charname20;intage;intsex;pup5,*p;A.scanf(%d,p.age);B.scanf(%sn,pup0.name);C.scanf(%dM,&pupO.age);D.scanf(n%dM,&(pup1.sex);13 .有如下数组定义语句Eta23=1,2,3,4,5
7、,6;,贝!*(a+1)+2的值是()。A.2B.6C.元素2的地址D.元素6的地址14 .执行以下程序后,输出结果是()omain()inta10=1,2,3,4,5,6,7,8,9,0,*p;P=a;printfC%d”/p);printf(w%dn,*(p+8);)A.10B.17C.18D.1915 .有如下程序,执行后的输出结果是()o#defineM3#defineNM+1#defineNNN*N2main()printfC%dn,NN);)A.3B.4C.6D.816 .设x,y,i,j均为整型变量,且X=I0,y=3,则执行i=x-;j=-y;语句后,i和j的值是()oA.10
8、,3B.9,3C.9,2D.10,217 .下面程序的输出结果为()ovoidmain()char*p;chars=,ABCD,;for(p=s;ps+4;p+)printf(n%sn,p);A.ABCDB.AC.DD.ABCD18.BCDBCCDCBDDA表达式strcmp(,Windows98,Windows95)的值为(ABCABA)oA.0B.大于0C.小于0D.无法比较19.A.B.C.D.20.A.返回值为VOid的函数,其含义是()o调用函数之后,被调用的函数没有返回值调用函数之后,被调用的函数不返回调用函数之后,被调用的函数返回值为任意类型以上三种说法均不正确求0到50的总和,
9、不亚颂的程序段是()ointi,sum;B.inti,sum;sum=0;for(i=0,sum=0;i51;sum+=i+);C.for(i=0;i51;i+)sum+=i;inti,sum;D.inti,sum=0;i=0;sum=0;for(i=0;i+)for(i50)break;sum+=i;三、程序填空题(本大题共4小题,每空2分,共24分)1.以下程序的功能是计算:s=1+12+123+1234+123450请填空。#inc1udevoidmain()intt=O,s,i;(1)for(i=1;i=5;i+)t=i+(2)s=s+t;)printf(s=%dn,s);(1)A.s
10、=0B.s=1C.intn=0D.intn=1(2)A.nB.n*10C.t*10D.t2 .下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。请选择填空。#inc1udevoidmain()1ongintnum;doscanf(M%1dM,&num);if(3)printf(,num=%1dn,num);whi1e(一(4)一);(3)A.num%100/10=3B.num100%10=3C.num%10/10=3D.num10%10=3(4)A.InumB.num=0C.numD.num=13 .函数fm实现把数字字符从源字符串中删除,其余字符保持原样。void
11、fun(chars)iti=0,j;whi1e()if(si=,0,si=,9,)for(j=i;sj!=,O5;j+);e1sei+;B.si50,)(5) A.si=0C.si!=50,D.si=5O5(6) A.sU-1=sUB.sU=s-1C.s+1=sUD.sU=sU+14.输出50到70之间的所有素数,其中函数isprime(m)用于判断m是否为素数,若m为素数则返回1否则返回0。素数就是只能被1和自身整除的正整数。请填空。#inc1ude#inc1udemain()inti;intisprime(intm);for(i=50;i=70;i+)if(_(7)printf(n%d,i
12、);)intisprime(intm)inti,k;k=(int)sqrt(doub1e)m);for(i=2;i=k;i+)if(m%i=0)(8)_;_(9);(7) A.isprime(m)!=0C.isprime(m)=0(8) A.return0C.returni=k(9) A.returnC.return15.下列程序中f函数用于在链表中查找最高分。structnode/*结点定义*/intnum;/*学号*/intscore;/*成绩*/structnode*next;/*指针域*/B.isprime(i)!=0D.isprime(i)=0B.return1D.returnB.return0D.returni=k请填空。intf(structnode*he