浙江科技学院历届c语言试卷_第1页
浙江科技学院历届c语言试卷_第2页
浙江科技学院历届c语言试卷_第3页
浙江科技学院历届c语言试卷_第4页
浙江科技学院历届c语言试卷_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2010-2011学年第2学期考试试卷A卷考试科目C语言程序设计考试方式闭完成时限2小时拟题人题库审核人批准人2011年6月25日建工、生化、艺术、轻工、理学学院2010年级理工科专业题序一二三四五总分加分人复核人得分签名命题:说明:1. 应将全部答案写在答卷纸对应的题号处;否则作无效处理;2. 编程题应写明题号,若答卷纸不够,请写在背面,不要另添卷纸;3. 考试完成后,必须将试卷与答卷同时交回。3一、判断题(本大题共12小题,每题小1分,共12分)1. 在定义数组时,数组的长度可以用整型常量或者整型变量表示。2. 执行intx=3,y=4;floatz;z=x/y;后,z的值为0.75。3.

2、 C语言中,关系表达式的值是1和0,分别表示“真”和“假”4. else语句一定要与if语句配对使用,程序中else语句的个数一定小于或者等于if语句的个数。5. C语言是一种结构化程序设计语言,结构化程序由顺序、选择、循环三种基本结构组成。号学级班业专6. 函数中可以使用多个return语句,也可以没有return语句。如果使用多个return语句可以向主函数返回多个值。7. 使用”W方式打开一个已经存在的文本文件,将在该文件原有数据的基础上添加新的数据。8. 定义语句chars=Hello;和chars=H,e,l,l,6;定义的两个字符数组是等价的9. 调用函数时,若实参是一个数组名,则

3、向函数传送的是数组的首地址。10. 使用dowhile语句实现循环时,不管条件真假,都将首先无条件的执行一次循环。11. 假定int类型变量占用两个字节,若有定义:intx10=0,2,4;,则数组x在内存中所占字节数是612. 语句“c=*p+”的执行过程是p所指向的存储单元的值赋值给变量c,然后p变量自增。3二、单选题(本大题共20小题,每题1分,共20分)1. 一个C程序总是从()开始执行。A.书写顺序的第一个函数B.书写顺序的第一条执行语句C.主函数main()D.不确定2. 程序设计一般包含以下4个步骤,其中首先应该完成的是(A.设计数据结构和算法B.建立数学模型C.编写程序D.调试

4、运行程序.23. 以下不能正确计算代数式(sin。50值的C语言表达式是()3A.1/3*sin(1/2)*sin(1/2)C.pow(sin(0.5),2)/34. 下列语句执行后,变量n的值是(for(i=1;i10或a=10ora=10&a100)break;?C.for(;);B.执行后i的值是2D.死循环”的C语言表达式是()B. a=0|a=10|a=0);n=2,则逻辑表达式(m=ab)&(n=cd)语法错误D.ints=36;while(s)s;9. 已知intx=10,y=20,z=30;,以下语句执行后x、y、z的值是()。if(xy)z=x;x=y;y=z;A.x=10,

5、y=20,z=30B.x=20,y=30,z=30C.x=20,y=30,z=10D.x=20,y=30,z=2010. 请阅读以下程序:#includevoidmain()floata,b;scanf(%f,&a);if(a0.0)b=0.0;elseif(a5.0)&(a!=2.0)b=1.0/(a+2.0);elseif(a10.0)b=1.0/a;elseb=10.0;printf(%fn,b);若运行时输入2.0,则上面程序的输出结果是()。A.0.000000B.0.500000C.1.000000D.0.25000011. 有以下程序段:intn=0,p;doscanf(%d,&

6、p);n+;while(p!=12345&n3);此处do-while循环的结束条件是()。A. p的值不等于12345并且n的值小于3B. p的值等于12345并且n的值大于等于3C. p的值不等于12345或者n的值小于3D. p的值等于12345或者n的值大于等于312. 若有如下定义,则下面在scanf函数调用语句中对结构体成员的引用不正确的是()。structpupilcharname20;intage;A.C.13.A.14.intsex;pup5,*p;scanf(%d,p.age);scanf(%d,&pup0.age);B.D.有如下数组定义语句“inta23=1,2,3,4

7、,5,6;执行以下程序后,输出结果是(main()A.15.B.6C.)。scanf(%s,);scanf(%d,&(pup1.sex);”,则*(a+1)+2元素2的地址的值是(D.)。元素6的地址inta10=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf(“%d有如下程序,执行后的输出结果是(#define#define#definemain()printf(A.16.A.10,17.”,*p);printf(“%dnB.17执行后的输出结果是(NM+1NNN*N/2%nd”,NN);B.4i,j均为整型变量,且B.9,3F面程序的输出结果为()。v

8、oidmain()char*p;chars=ABCD;”,*(p+8);x=10C.)。C.y=3,C.D.D.i=xj=?y;语句后,i和j的值是()。9,2D.10,2for(p=s;ps+4;p+)printf(%sn,p);A.ABCDB.AC.D.ABCDBCDABCCDAB18 .表达式“strcmp(Windows98,Windows95)的值为()。A.0B.大于0C.小于0D.无法比较19 .返回彳I为void的函数,其含义是()。A. 调用函数之后,被调用的函数没有返回值B. 调用函数之后,被调用的函数不返回C. 调用函数之后,被调用的函数返回值为任意类型D. 以上三种说法

9、均不正确20 .求0到50的总和,不正确的程序段是()。A.inti,sum;sum=0;for(i=0;i51;i+)sum+=i;C.inti,sum;i=0;sum=0;for(i51)sum+=i;i+;,三、程序填空题(本大题共4得分一1.以下程序的功能是计算:#includevoidmain()intt=0,s,i;一(1)一;for(i=1;i=5;i+)t=i+_(2)一;s=s+t;printf(s=%dn”,s);(1) A.s=0C.intn=0(2) A.nC. t*10B.inti,sum;for(i=0,sum=0;i50)break;sum+=i;小题,每空2分,

10、共24分)s=1+12+123+1234+12345。请填空。B.s=1D.intn=1B. n*10D.t2.F面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。请选择填空。#includevoidmain()longintnum;doprintf(num=%ldn”,num);scanf(%ld”,&num);if(一(3)一)while(一(4)一);(3) A.num%100/10=3C.num%10/10=3(4) A.!numC. numB.num/100%10=3D.num/10%10=3B.num=0D. num=13. 函数fun实现把数字字符从源字

11、符串中删除,其余字符保持原样。voidfun(chars)inti=0,j;while()if(si=0&si=9)for(j=i;sj!=0;j+)(6);elsei+;(5) A.si=0B.si0C.si!=0D.si=0(6) A.sj-1=sjB.sj=sj-1C.sj+1=sjD.sj=sj+14. 输出50到70之间的所有素数,其中函数isprime(m)用于判断m是否为素数,若m为素数则返回1,否则返回0素数就是只能被1和自身整除的正整数。请填空。#include#includemain()inti;intisprime(intm);for(i=50;i=70;i+)if(一(

12、7)一)printf(%d,i);intisprime(intm)inti,k;k=(int)sqrt(double)m);for(i=2;i=k;i+)C. NULLD.headif(m%i=0)8)_;9)_;7)A.isprime(m)!=0B.isprime(i)!=0C.isprime(m)=0D.isprime(i)=08)A.return0B.return1C.returni=kD.return9)A.returnB.return0C.return1D.returniscore;11)while(if(maxscore)max=p-score;12)return(max);10)

13、A.malloc(6)B.head-nextB. p!=NULLD. head!=NULLB. head=head-next(11) A.p=NULLC.head=NULL(12) A.p=p-nextC.p=head-nextD.head=p-next#include四、程序阅读题(本大题共6小题,1.运行以下程序后若从键盘上输入:每小题654分,共24分)4回车),则输出结果为(voidmain()intm,n;printf(Enterm,n:,);scanf(%d%d,&m,&n);while(m!=n)while(mn)m-=n;while(mn)n-=m;printf(m=%dn”,

14、m);1. m=3B.m=2C.m=0D.m=12. 下列程序运行时分别输入“ABCABC”和“ABBBA”,输出的结果分别是(#include#include#defineN100voidmain()charsN;intn,i=0;scanf(%s”,s);n=strlen(s);while(in/2&si=sn-i-1)i+;if(in/2)printf(No);elseprintf(Yes);A.Yes和NoB.Yes和YesC.No和YesD.No和No3. 下列程序运行时输入welcome24,输出的结果是()。#include#include#defineN100voidmidde

15、l(char*s,intm,intn);voidmain()charsN;intm,n;scanf(%s%d%d,s,&m,&n);middel(s,m,n);printf(%s,s);voidmiddel(char*s,intm,intn)char*p1,*p2;p1=s+m;p2=s+m+n;while(*p2!=0)*p1=*p2;p1+;p2+;*p1=0;D.womeA.wemeB.weeC.wme4. 下列程序运行后的输出结果是()。#includemain()inty=18,i=0,j,a8;doai=y%2;i+;y=y/2;while(y0);for(j=i-1;j=0;j-

16、)printf(%d,aj);printf(n);0100B.1001C.100105. 下列程序运行后的输出结果是(#includevoidf(int*x,int*y)intt;t=*x;*x=*y;*y=t;main()inta9=1,2,3,4,5,6,7,8,i,*p,*q;p=a;q=&a7;while(*p)f(p,q);p+;q-;for(i=0;i8;i+)printf(%d,ai);A.8,2,3,4,5,6,7,1,C.5,6,7,8,1,2,3,4,6. 下列程序运行后的输出结果是(#includeintk=1;voidFun();voidmain() intj;for(

17、j=0;j2;j+)Fun();printf(k=%d,k);voidFun() staticintk=1;printf(k=%d,”,k);k+;A.k=1,k=2,k=1C.k=1,k=1,k=1 1五、程序设计题(本大题共得分D.以上答案都不是)。B.8,7,6,5,4,3,2,1,D.1,2,3,4,5,6,7,8,)。B.k=1,k=1,k=2D.k=1,k=2,k=32小题,每小题10分,共20分)1.按下面要求编写程序:(1)定义函数cal_power(x,n)计算x的n次幂(即xn),函数返回值类型是double.(2)定义函数main(),输入浮点数x和正整数n,计算并输出下

18、列算式的值。要求调用函数cal_power(x,n)计算x的n次幂。2.下面程序的功能是:在6至1000内找出所有的合数,并按从小到大的顺序将每个合数按%6d格式写入到D盘根目录下新建的文件“design.dat中。说明:某数等于其诸因子之和则称该数为合数,如6=1+2+3,28=1+2+4+7+14则6、28就是合数。2010-2011学年第2学期考试试卷A卷考试科目C语言程序设计考试方式闭完成时限2小时拟题人题库审核人批准人2011年6月空日建工、生化、艺术、轻工、理学学院2010年级理工科专业题序一二三四五总分加分人复核人得分签名得分O号学得分|一、判断题(本大题共12小题,每题小1分,

19、共12分)请在各小题正确选项的对应位置二一上填A表示正确,B表示错误。123456789101112AB12345678910ABCD11121314151617181920ABCD二、单选题(本大题共20/4题,每题1分,共20分)请在各小题正确选项的对应位置上填得分三、程序填空题(本大题共5小题,每空2分,共24分)请在各小题正确选项的对应位置上填y123456789101112ABCD级班业专得分位置上填四、程序阅读题(本大题共6小题,每小题4分,共24分)请在各小题正确选项的对应123456ABCD程序设计题(本大题共2小题,每小题10分,共20分)7(写不下请写反面,不要另加纸张)2

20、010-2011学年第2学期考试试卷A卷考试科目C语言程序设计考试方式闭完成时限2小时拟题人题库 审核人批准人2011年6月25日建工、生化、艺术、轻工、理学学院2010年级理工科专业参考答案及评分标准、判断题(本大题共12小题,每题小1分,共12分)123456789101112AVVVVVVBVVVVVV、单选题(本大题共20小题,每题1分,共20分)12345678910AVBVVVVCVVDVVV11121314151617181920AVVVBVCVVDVVVV三、程序填空题(本大题共5小题,每空2分,共24分)123456789101112AVVVBVVVCVVVVDVV四、程序阅

21、读题(本大题共6小题,每小题4分,共24分)123456AVBVCVVDVV五、程序设计题(本大题共2小题,每小题10分,共20分)1 .答:#includedoublecal_power(doublex,intn)doublep=x;inti;for(i=1;in;i+)p=p*x;returnp;voidmain()doublex,s=0;inti,n;scanf(%lf,%d,&x,&n);for(i=1;i=n;i+)s=s+1/cal_power(x,i);printf(%lf”,s);2 .答:#include#includevoidmain()FILE*p;intn,i,s;if

22、(p=fopen(design.dat,w)=NULL) printf(cannotopenfilen);exit(0);for(n=6;n=1000;n+) s=0;for(i=1;iy?x:y求x,y两个数中的大数。23 .C语言的编译预处理就是对源程序进行初步的语法检查。24 .已知一个字符在内存中占1个字节,字符串Program”在内存中占7个字节二、单选题(本大题共20小题,每题1分,共20分)21. 以下说法中错误的.是()。A. 一个C程序可以由一个或多个函数构成B. 一个C程序必须有而且只能有一个main()函数C. 在计算机上编辑C程序时,每行只能写一条语句D. 主函数是程序

23、启动时唯一的入口22. N-S图与传统流程图相比较,其主要优点是()A.杜绝了程序的无条件转移B.具有顺序、选择和循环三种基本结构C.简单、直观D.有利于编写程序23. C语言中运算对象必须是整型的运算符是()。A.%=B./C./D.=24. 已知charc=A;inti=l,j;,执行语句j=!c&i+;后,则i和j的值是()。2 , 1D. 2 , 0char a=0,1,2,3,4,5;int a5=0123;long 占 4 个字节),则下面printf 的输出结果是( )。A.1,1B.1,0C.25. 以下能正确定义一维数组的选项是()。A.inta5=0,1,2,3,4,5;B

24、.C.chara=A,B,C;D.26. 若有以下说明语句(已知int占2个字节,unionuareaintx;longy;structstrchars20;unionuareaz;main()printf(“%dn”,sizeof(structstr);A.24B.26C.20D.3027. 有以下程序:#includevoidmain()inta=15,b=21,m=0;switch(a%3)case0:m+;break;case1:m+;switch(b%3)default:m+;break;case0:m+;break;printf(%dn,m);程序运行后的输出结果是A.1B.2C.

25、3D.428.已知inti,a;,执行语句i=(a=2*3,a*5),a+6;后,变量i的值是()。A.6B.12C.30D.3629.有如下数组定义语句“inta23=1,2,3,4,5,6;,则*(*(a+1)+2)的值是()。A.2B.6C.元素2的地址D.元素6的地址30 .已知链表结点定义语句为structnodeintnum;structnode*next;,在下图所示的链表中,head为头指针,如果要删除p1所指的结点,在执行语句“free(p1);”前,需要执行的语句是()。headA. p1=p1-next;B. head=p1;C. p1=head;D.head=p1-ne

26、xt;31 .如果要从C盘根目录下的文件“abc.txt”中读取数据,已知文件指针为fp,则打开该文件的语句是()A.fp=fopen(c:abc.txt,r);B.fp=fopen(c:abc.txt,W);C.fp=fopen(c:abc.txt,r);D.fp=fopen(c:abc.txt,W);32.已有定义:chara=xyz,b=x,y,z;,以下叙述中正确的是()。A.数组a和b的长度相同B.a数组长度小于b数组长度C.a数组长度大于b数组长度D.上述说法都不对33 .以下对C语言函数的有关描述中,正确的是()。A. 调用函数时,实参个数与形参个数可以不同B. 函数既可以嵌套定

27、义又可以递归调用C. 函数可以有返回值,也可以没有返回值D. C程序中有调用关系的所有函数必须放在同一个源程序文件中34 .下列程序段的输出结果为()。int*ptr;intarr=6,7,8,9,10;ptr=arr;*(ptr+2)+=2;printf(%d,%dn,*ptr,*(ptr+2);C. 7,9D. 6,10A.8,10B.6,835.下列程序的输出结果是()。#includevoidmain()inty;doubled=3.4,x;x=(y=d/2.0)/2;printf(%0.2lf,%d,x,y);A.0.00,1B.0.85,1.7C.0.50,1D.以上都不对36.A

28、. 数组的长度C. 数组每一个元素的地址)。当调用函数时,实参是一个数组名,则向函数传送的是(B.数组的首地址D.数组每个元素中的值37. 以下程序运行后的输出结果是()。main()chara7=a00a00;inti,j;i=sizeof(a);j=strlen(a);printf(%d%dn,i,j);D.A.22B.76C.7238. 执行以下程序后,输出结果是()。main()inty=11;while(-y)y-;printf(“%dn”,y-);A.-1B.1C.8D.39. 下列程序段的输出结果是()。charc,k;c=b;k=4;switch(c)casea:k=1;cas

29、eb:k=2;casec:k=3;printf(%d”,k);A.1B.2C.3D.440.已知有如下的宏定义:“#defineSx+y”,则下列语句执行后的输出结果是(intx=10,y=20;printf(d,S*S);A.900B.230C.420D.1401三、程序填空题(本大题共4小题,每空2分,共24分)得分6.输入1个正整数n,计算并输出s的前n项的和。请填空。|S=1/2-2/3+3/4-4/5+(-1)n-1n/(n+1)#includevoidmain()intk,flag=1,n;floats=0;scanf(%d,&n);for(k=1;k=n;k+)s=s+_(1);

30、(2);printf(sum=%f,s);(1) A.1.0*k/(k+1)C.-k/(k+1)(2) A.flag=-1C.flag=-flagB.flag*n/(n+1)D.1.0*k/(k+1)*flagB.s=-sD.k=-k7.输入一个正整数,按照从高位到低位的顺序输出各位数字,Enteraninteger:1902Thedigitsare:1902#include请填空。运行示例:voidmain()intdigit,number,power,t;printf(Enteraninteger:);scanf(%d,&number);number=number= 100number !

31、= 0digit != 0power = 1number %= 10;number /= 10;17 的各位数字之和是8,位数是2。请填空。( 3) A.t=1;B.C.;D.( 4) A.t=10B.C.t!=0D.( 5) A.power=0B.C.number!=0D.(6)A.number/=power;B.C.number%=power;D.8.输入一个整数,求它的各位数字之和及位数。例如,运行示例:Enteraninteger:-153sum=9,count=3#includemain()intcount=0,data,sum=0;printf(Enteraninteger:);s

32、canf(%d,&data);if(data0)data=-data;dosum = sum +7)8)count+;while(9);printf(sum = %d, count = %dn, sum, count);7)A.data % 10B.data mod 10C.data /10D.data8)A.data = data % 10B.data /10C.data = data /10D.data % 109)A.data % 10 != 0B.data != 0C.!dataD.data / 10 != 09. 本程序用于动态建立一个链表。链表中每个结点包括学号、成绩及指向下一结点

33、的指针,整个链表共10个结点。#include#include#define NULL 0struct student/* 结点定义 */int num;/* 学号 */* 分数 */floatscore;10)/*指针域*/;voidmain()structstudent*head=NULL,*p1,*p2;intn=0;dop1=(structstudent*)malloc(sizeof(structstudent);printf(“请输入学生的学号和成绩:n”);scanf(“%d,%f”,&p1-num,&p1-score);n=n+1;if(n=1)head=p1;elsep2-ne

34、xt=p1;(11)while(nnext=p1-nextB.p2-next=p1C.p2=p1D.p2=p1-next(12)A.p1-next=NULLB.p1-next!=NULLC.head=NULLD.head!=NULL1得分,四、程序阅读题(本大题共7.下列程序的运行结果是(#include6小题,每小题)。4分,共24分)voidmain()inta=-1,b=4,k;k=(a+=0)&(!(b-=0);A.8.printf(%d %d%d n,k,a,b);1 -1 4B.C. 1 0 3D.下列程序的运行结果是#includevoidmain()intx=3;doprint

35、f(%d”,x-=2);while(!(-x);A.B.1和-2C. 3 和 0D.死循环9.下列程序的运行结果是#includevoidswap(intx,inty)inttemp;temp=x;x=y;y=temp;voidmain()inti,a=1,3,5,7,9;swap(a0,a1);for(i=0;i5;i+)printf(“%”d,ai);A.13579B.3157910. 下列程序的运行结果是()。#includevoidmain()inti,j,x=0;for(i=0;i2;i+)x+;for(j=0;j3;j+)if(j%2)continue;x+;x+;printf(x

36、=%dn,x);A.x=4B.x=611. 下列程序运行后的输出结果是(#includevoidmain()inta10=1,3,5,7,9,0,2,4,6,8;inti,j,t;i=0;while(i9)j=0;while(jaj+1)C.97531D.13597t=aj;aj=aj+1;C.x=8)。D.x=12j+;i+;A.C.12.aj+1=t;for(i=0;i10;i+)printf(%d,ai);下列程序运行后的输出结果是(B.D.#includeintfun(intn)staticinty=0;n+=y;y+=n;returny;main()inti,j;for(i=1;i3;i+)j=fun(i);print

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论