




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江科技学院考试试卷 专业班级 学号 姓名 装订线 浙江科技学院2010 - 2011 学年第 2 学期考试试卷 A 卷 考试科目 C语言程序设计 考试方式 闭 完成时限 2小时 拟题人 题库 审核人 批准人 2011年6月25日建工、生化、艺术、轻工、理学 学院 2010 年级 理工科专业题序一二三四五总分加分人复核人得分签名命题:说明:1. 应将全部答案写在答卷纸对应的题号处;否则作无效处理;2. 编程题应写明题号,若答卷纸不够,请写在背面,不要另添卷纸;3. 考试完成后,必须将试卷与答卷同时交回。得分一、判断题(本大题共12小题,每题小1分,共12分)1. 在定义数组时,数组的长度可以用整型常量或者整型变量表示。2. 执行“int x=3,y=4; float z;z=x/y;”后,z的值为0.75。3. C语言中,关系表达式的值是1和0,分别表示“真”和“假”。4. else语句一定要与if语句配对使用,程序中else语句的个数一定小于或者等于if语句的个数。5. C语言是一种结构化程序设计语言,结构化程序由顺序、选择、循环三种基本结构组成。6. 函数中可以使用多个return语句,也可以没有return语句。如果使用多个return语句可以向主函数返回多个值。7. 使用”w”方式打开一个已经存在的文本文件,将在该文件原有数据的基础上添加新的数据。8. 定义语句“char s=“Hello”;”和“char s=H, e, l, l, o;”定义的两个字符数组是等价的。9. 调用函数时,若实参是一个数组名,则向函数传送的是数组的首地址。10. 使用dowhile 语句实现循环时,不管条件真假,都将首先无条件的执行一次循环。11. 假定int类型变量占用两个字节,若有定义:int x10=0,2,4;,则数组x在内存中所占字节数是6。 12. 语句“c=*p+”的执行过程是p所指向的存储单元的值赋值给变量c,然后p变量自增。得分二、单选题(本大题共20小题,每题1分,共20分)1. 一个C程序总是从( )开始执行。A.书写顺序的第一个函数B.书写顺序的第一条执行语句C.主函数main()D.不确定2. 程序设计一般包含以下4个步骤,其中首先应该完成的是( )。A.设计数据结构和算法B.建立数学模型C.编写程序D.调试运行程序3. 以下不能正确计算代数式值的C语言表达式是( )。A.1/3*sin(1/2)*sin(1/2)B.sin(0.5)*sin(0.5)/3C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)4. 下列语句执行后,变量n的值是( )。for(i=1;i=10 or a=0|a=10 &a=10|ab)&(n=cd)运算后,n的值为( )。A.0B.1C.2D.语法错误8. 下列程序段不是死循环的是( )。 A.int i=100; while(1) i=i%100+1; if(i100)break; B.int k=0;do+k; while(k=0);C.for( ; ;);D.int s=36;while(s) s;9. 已知int x=10, y=20, z=30;,以下语句执行后x、y、z的值是( )。if (xy) z=x; x=y; y=z;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. 请阅读以下程序:#include void main() float a,b; scanf (%f,&a); if(a0.0) b=0.0; else if (a5.0) & (a!=2.0) b=1.0/(a+2.0); else if (a10.0) b=1.0/a; else b=10.0; printf(%fn,b);若运行时输入2.0,则上面程序的输出结果是( )。A.0.000000B.0.500000C.1.000000D.0.25000011. 有以下程序段:int n=0,p;doscanf(%d,&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函数调用语句中对结构体成员的引用不正确的是( )。 struct pupil char name20; int age; int sex; pup5,*p;A.scanf(%d,p.age);B.scanf(%s,);C.scanf(%d,&pup0.age);D.scanf(%d,&(pup1.sex);13. 有如下数组定义语句“int a23=1,2,3,4,5,6;”,则*(a+1)+2的值是( )。A.2B.6C.元素2的地址D.元素6的地址14. 执行以下程序后,输出结果是( )。 main() int a10=1,2,3,4,5,6,7,8,9,0,*p; p=a; printf(“%d ”,*p); printf(“%dn”,*(p+8);A.1 0B.1 7C.1 8D.1 915. 有如下程序,执行后的输出结果是( )。 #define M 3#define N M+1#define NN N*N/2main() printf(“%dn”,NN);A.3B.4C.6D.816. 设x,y,i,j均为整型变量,且x=10,y=3,则执行i=x; j=y;语句后,i和j的值是( )。 A.10,3B.9,3C.9,2D.10,217. 下面程序的输出结果为( )。void main() char *p; char s= ABCD; for(p=s;ps+4;p+) printf(%sn,p); A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA18. 表达式“strcmp(Windows98,Windows95)”的值为( )。A.0B.大于0C.小于0D.无法比较19. 返回值为void的函数,其含义是( )。A.调用函数之后,被调用的函数没有返回值B.调用函数之后,被调用的函数不返回C.调用函数之后,被调用的函数返回值为任意类型D.以上三种说法均不正确20. 求0到50的总和,不正确的程序段是( )。 A.int i,sum;sum=0; for(i=0;i51;i+) sum+=i; B.int i,sum;for(i=0,sum=0;i51;sum+=i+);C.int i,sum;i=0;sum=0; for(i50) break; sum+=i;得分三、程序填空题(本大题共4小题,每空2分,共24分)1. 以下程序的功能是计算:s=1+12+123+1234+12345。请填空。#include void main()int t=0,s,i;_(1)_; for( i=1; i=5; i+) t=i+_(2)_;s=s+t; printf(s=%dn,s);(1)A.s=0B.s=1C.int n=0D.int n=1(2)A.nB.n*10C.t*10D.t2. 下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。请选择填空。#include void main() long int num; do scanf(%ld,&num); if(_(3)_ ) printf(num=%ldn,num); while (_(4)_ );(3)A.num%100/10=3B.num/100%10=3C.num%10/10=3D.num/10%10=3(4)A.! numB.num=0C.numD.num=13. 函数fun实现把数字字符从源字符串中删除,其余字符保持原样。void fun( char s ) int i=0,j; while ( (5) )if ( (si=0 &si=9) ) for ( j= i ; sj!=0; j+ ) (6) ;else i+; (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 #include main()int i; int isprime(int m); for(i = 50; i = 70; i+) if(_(7)_) printf(%d , i);int isprime(int m) int i, k; k = (int)sqrt(double)m); for(i = 2; i = k; i+) if(m % i = 0) _(8)_; _(9)_;(7)A.isprime (m) != 0B.isprime (i) != 0C.isprime (m) = 0D.isprime (i) = 0(8)A.return 0B.return 1C.return i = kD.return(9)A.returnB.return 0C.return 1D.return i score;while(_(11)_)if(maxscore)max=p-score;_(12)_;return(max);(10)A.malloc(6)B.head-nextC.NULLD.head(11)A.p=NULLB.p!=NULLC.head=NULLD.head!=NULL(12)A.p=p-nextB.head=head-nextC.p= head-nextD.head= p-next得分四、程序阅读题(本大题共6小题,每小题4分,共24分)1. 运行以下程序后若从键盘上输入:65 4,则输出结果为( )。#include void main() int m,n; printf(Enter m,n: );scanf(%d%d,&m,&n); while(m!=n) while(mn) m-=n; while(mn) n-=m; printf(m=%dn,m);A.m=3B.m=2C.m=0D.m=12. 下列程序运行时分别输入“ABCABC”和“ABBBA”,输出的结果分别是( )。 #include#include#define N 100void main()char sN;int n,i=0;scanf(%s,s);n=strlen(s);while(in/2&si=sn-i-1)i+;if(in/2) printf(No);else printf(Yes);A.Yes和NoB.Yes和YesC.No和YesD.No和No3. 下列程序运行时输入“welcome 2 4”,输出的结果是( )。#include#include#define N 100void middel(char *s,int m,int n);void main()char sN;int m,n;scanf(%s%d%d,s,&m,&n);middel(s,m,n);printf(%s,s);void middel(char *s,int m,int n)char *p1,*p2;p1=s+m;p2=s+m+n;while(*p2!=0)*p1=*p2;p1+;p2+;*p1=0;A.wemeB.weeC.wmeD.wome4. 下列程序运行后的输出结果是( )。 #include main( ) int y=18,i=0,j,a8; do ai=y%2; i+; y=y/2; while(y0); for(j=i-1;j=0;j-) printf(%d,aj); printf(n);A.0100B.1001C.10010D.以上答案都不是5. 下列程序运行后的输出结果是( )。#include void f(int *x,int *y) int t;t=*x;*x=*y;*y=t;main() int a9=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,B.8,7,6,5,4,3,2,1,C.5,6,7,8,1,2,3,4,D.1,2,3,4,5,6,7,8,6. 下列程序运行后的输出结果是( )。 #includeint k = 1;void Fun();void main() int j;for(j = 0; j 2; j+)Fun();printf(k=%d, k);void Fun() static int k = 1; printf(k=%d, k);k+;A.k=1,k=2,k=1B.k=1,k=1,k=2C.k=1,k=1,k=1D.k=1,k=2,k=3得分五、程序设计题(本大题共2小题,每小题10分,共20分)1. 按下面要求编写程序:(1)定义函数cal_power(x, n)计算x的n次幂(即xn),函数返回值类型是double.(2)定义函数main(),输入浮点数x和正整数n,计算并输出下列算式的值。要求调用函数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月25日建工、生化、艺术、轻工、理学 学院 2010 年级 理工科专业题序一二三四五总分加分人复核人得分签名得分一、判断题(本大题共12小题,每题小1分,共12分)请在各小题正确选项的对应位置上填“”,A表示正确,B表示错误。123456789101112AB得分二、单选题(本大题共20小题,每题1分,共20分)请在各小题正确选项的对应位置上填“”。12345678910ABCD11121314151617181920ABCD得分三、程序填空题(本大题共5小题,每空2分,共24分)请在各小题正确选项的对应位置上填“”。123456789101112ABCD得分四、程序阅读题(本大题共6小题,每小题4分,共24分)请在各小题正确选项的对应位置上填“”。123456ABCD得分五、程序设计题(本大题共2小题,每小题10分,共20分)浙江科技学院2010 - 2011 学年第 2 学期考试试卷 A 卷 考试科目 C语言程序设计 考试方式 闭 完成时限 2小时 拟题人 题库 审核人 批准人 2011年6月25日建工、生化、艺术、轻工、理学 学院 2010 年级 理工科专业参考答案及评分标准一、判断题(本大题共12小题,每题小1分,共12分)。123456789101112AB二、单选题(本大题共20小题,每题1分,共20分)12345678910ABCD11121314151617181920ABCD三、程序填空题(本大题共5小题,每空2分,共24分)123456789101112ABCD四、程序阅读题(本大题共6小题,每小题4分,共24分)123456ABCD五、程序设计题(本大题共2小题,每小题10分,共20分)1答:#include double cal_power(double x,int n)/1分 double p = x; int i;/1分 for(i=1;in;i+) p=p*x;/2分 return p; /1分void main() double x, s=0; /1分 int i,n; scanf(%lf,%d,&x,&n);/1分 for(i=1;i=n;i+) s=s+1/cal_power(x,i);/2分 printf(%lf,s);/1分2答:#include #include void main() FILE *p; int n,i,s;/1分if(p=fopen(design.dat,w)=NULL)/1分 printf(cannot open filen); exit(0); for(n=6;n=1000;n+)/1分 s=0;/1分 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.主函数是程序启动时唯一的入口22. N-S图与传统流程图相比较,其主要优点是( )。A.杜绝了程序的无条件转移B.具有顺序、选择和循环三种基本结构C.简单、直观D.有利于编写程序23. C语言中运算对象必须是整型的运算符是( )。A.%=B./C./D.=24. 已知char c=A; int i=l, j;,执行语句j=!c&i+;后,则i和j的值是( )。A.1,1B.1,0C.2,1D.2,025. 以下能正确定义一维数组的选项是( )。A.int a5=0,1,2,3,4,5;B.char a=0,1,2,3,4,5;C.char a=A,B,C;D.int a5=0123;26. 若有以下说明语句(已知int占2个字节,long 占4个字节),则下面printf的输出结果是( )。 union uarea int x; long y; ;struct str char s20; union uarea z;main() printf(“%dn”,sizeof(struct str);A.24B.26C.20D.3027. 有以下程序:#include void main() int a=15,b=21,m=0; switch(a%3) case 0: m+;break; case 1: m+; switch(b%3) default:m+;break; case 0: m+;break; printf(%dn,m);程序运行后的输出结果是_( )。A.1B.2C.3D.428. 已知int i,a;,执行语句i=(a=2*3,a*5),a+6; 后,变量i的值是( )。A.6B.12C.30D.3629. 有如下数组定义语句“int a23=1,2,3,4,5,6;”,则*(*(a+1)+2)的值是( )。A.2B.6C.元素2的地址D.元素6的地址30. 已知链表结点定义语句为“struct nodeint num; struct node *next;”, 在下图所示的链表中,head为头指针,如果要删除p1所指的结点,在执行语句“free(p1);”前,需要执行的语句是( )。head100110021003NULLp1A.p1=p1-next;B.head=p1;C.p1=head;D.head=p1-next;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. 已有定义:char a=xyz,b=x,y,z;,以下叙述中正确的是 ( )。A.数组a和b的长度相同B.a数组长度小于b数组长度C.a数组长度大于b数组长度D.上述说法都不对33. 以下对C语言函数的有关描述中,正确的是( )。A.调用函数时,实参个数与形参个数可以不同B.函数既可以嵌套定义又可以递归调用C.函数可以有返回值,也可以没有返回值D.C程序中有调用关系的所有函数必须放在同一个源程序文件中34. 下列程序段的输出结果为( )。int *ptr; int arr=6,7,8,9,10; ptr=arr; *(ptr+2)+=2; printf(%d,%dn,*ptr,*(ptr+2); A.8,10B.6,8C.7,9D.6,1035. 下列程序的输出结果是( )。#includevoid main () int y; double d=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.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值37. 以下程序运行后的输出结果是( )。main()char a7=a00a00; int i,j;i=sizeof(a); j=strlen(a);printf(%d %dn,i,j); A.2 2B.7 6C.7 2D.6 238. 执行以下程序后,输出结果是( )。 main() int y=11;while(-y) y-;printf(“%dn”,y-); A.-1B.1C.8D.039. 下列程序段的输出结果是( )。char c,k;c=b; k=4;switch(c) case a: k=1;case b: k=2;case c: k=3;printf(%d ,k);A.1B.2C.3D.440. 已知有如下的宏定义:“#define S x+y”,则下列语句执行后的输出结果是( )。int x=10,y=20;printf(“%d”,S*S); A.900B.230C.420D.140得分三、程序填空题(本大题共4小题,每空2分,共24分)6. 输入1个正整数n,计算并输出 s的前n项的和。请填空。S=1/2-2/3+3/4-4/5+(-1)n-1n/(n+1)#includevoid main( ) int k, flag=1,n; float s=0; scanf(“%d”,&n); for (k=1;k=n;k+) s=s+ _(1)_ ;_(2)_;printf(“sum=%fn”,s);(1)A.1.0*k/(k+1)B.flag*n/(n+1)C.-k/(k+1)D.1.0*k/(k+1)*flag(2)A.flag=-1B.s=-sC.flag=-flag D.k=-k7. 输入一个正整数,按照从高位到低位的顺序输出各位数字, 请填空。运行示例:Enter an integer: 1902The digits are: 1 9 0 2 #include void main( ) int digit, number, power, t; printf(Enter an integer:);scanf(%d, &number);number = number = 10B.power = 100C.t != 0D.number != 0(5)A.power = 0B.digit != 0C.number != 0D.power = 1(6)A.number /= power;B.number %= 10;C.number %= power;D.number /= 10;8. 输入一个整数,求它的各位数字之和及位数。例如,17的各位数字之和是8,位数是2。请填空。运行示例:Enter an integer:-153sum = 9, count = 3#include main() int count = 0, data, sum = 0; printf(Enter an integer:); scanf(%d, &data); if(data 0) data = -data; do sum = sum +_(7)_; _(8)_; count+; while(_(9)_); printf(sum = %d, count = %dn, sum, count);(7)A.data % 10B.data mod 10C.data /10D.data(8)A.data = data % 10B.data /10C.data = data /10D.data % 10(9)A.data % 10 != 0B.data != 0C.!dataD.data / 10 != 09. 本程序用于动态建立一个链表。链表中每个结点包括学号、成绩及指向下一结点的指针,整个链表共10个结点。#include#include#define NULL 0struct student/*结点定义*/int num; /*学号*/float score; /*分数*/_(10)_; /*指针域*/;void main( ) struct student *head=NULL,*p1,*p2; int n=0; dop1=(struct student *)malloc(sizeof(struct student ); printf(“请输入学生的学号和成绩:n”); scanf(“%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023-2029年中国装修板材行业市场深度评估及投资战略规划报告
- 中国大楔角Ⅴ带项目投资可行性研究报告
- 中国海南养老地产行业市场发展监测及投资潜力预测报告
- 卧铺车行业深度研究分析报告(2024-2030版)
- 中国智控台灯行业市场运行态势与投资战略咨询报告
- 2025年中国风冷模块机组行业市场深度研究及投资策略研究报告
- 2025年中国声光组合信号器市场深度评估及行业投资前景咨询报告
- 2025-2030年中国病理诊断行业市场全景调查及未来趋势研判报告
- 山西转型综改示范区管委会事业单位真题2024
- 皮底行业深度研究分析报告(2024-2030版)
- 呼吸科肺炎护理查房
- 2025年云南省中考语文试卷真题
- 2025春季学期国开电大专科《机械制图》一平台在线形考(形成性任务1至4)试题及答案
- 文具店创业计划书文具店创业准备计划书范文
- 银川永宁县社区工作者招聘笔试真题2024
- 单位办公室文员考试试题及答案
- 浙江省强基联盟2024-2025学年高二下学期5月联考试题 物理 PDF版含解析
- 自来水考试试题大题及答案
- (2025)发展对象考试题库与答案
- 北京师范大学《微积分(2)》2023-2024学年第二学期期末试卷
- 海关总署在京直属事业单位招聘考试真题2024
评论
0/150
提交评论