浙江师范大学C语言程序设计考试卷_第1页
浙江师范大学C语言程序设计考试卷_第2页
浙江师范大学C语言程序设计考试卷_第3页
浙江师范大学C语言程序设计考试卷_第4页
浙江师范大学C语言程序设计考试卷_第5页
已阅读5页,还剩6页未读, 继续免费阅读

下载本文档

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

文档简介

1、浙江师范大学C语言程序设计考试卷(20072008学年第 2 学期)考试形式笔试(闭卷) 使用学生 全校07级理科(非行知)专业考试时间120分钟出卷时间 2008 年05月31日说明:考生应将全部答案都写在答题纸上,否则作无效处理。试题1(每小题2分,共8分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一行字符,统计并输出英文字符、阿拉伯字母字符和其他字符的个数。【运行示例】请输入一个字符串:f(x,y)=3*x*x+5*y+b英文字符 阿拉伯字母字符 其他字符7 2 9【程序】#include <stdio.h>void main()

2、 (1) ch;int charnum=0,digitnum=0,other=0;printf("请输入一个字符串:n");while( (2) 'n')if (3) charnum+; (4) (ch>='0' && ch<='9')digitnum+;elseother+;printf("英文字符t阿拉伯字母字符t其他字符n");printf("%dt%dt%dn",charnum,digitnum,other);(1)A、*B、floatC、charD、

3、double(2)A、(ch=getchar()!=B、ch=getchar()!=C、(ch=getchar()=D、ch=getchar()=(3)A、(ch>='a' && ch<='z' && ch>='A' && ch<='Z')B、(ch>='a' && ch<='z' | ch>='A' && ch<='Z')C、(ch>

4、=a && ch<=Z)D、(ch>=A && ch<=z)(4)A、elseB、elseifC、else ifD、if试题2(每小题2分,共8分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一个整数,判断这个整数是否为回文数。(所谓回文数,就是从左读到右和从右读到左得到相同的结果。)【运行示例】请输入一个整数:4575445754是回文数字【程序】#include <stdio.h>void main()int num,tempnum,revnum,curnum;revnum=0;pri

5、ntf("请输入一个整数:n");scanf("%d",&num);num=num<0?-num:num; (5) while(num>0)curnum= (6) revnum= (7) (8) if(revnum=tempnum)printf("%d是回文数字",tempnum);elseprintf("%d不是回文数字",tempnum);(5)A、;B、tempnum = num;C、tempnum = 0;D、num = tempnum;(6)A、tempnum/10;B、curnum%

6、10;C、tempnum%10;D、num%10;(7)A、revnum*10+curnum;B、revnum+curnum;C、revnum+curnum*10;D、num/10;(8)A、num-;B、num/10;C、num = num%10;D、num /= 10;试题3(每小题2分,共6分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】验证哥德巴赫猜想,即任何一个大于等于4的偶数都能够表示成为两个素数的和。要求用函数isprime判断一个整数是否为素数,并在main函数中调用。【运行示例】请输入一个大于等于4的偶数:66满足歌德巴赫猜想:6=1+

7、56满足歌德巴赫猜想:6=3+3【程序】#include <stdio.h>#include <math.h>int isprime(int number)int i,k;k=sqrt(number);for(i=2;i<=k;i+)if (number%i=0) (9) ; return 1;void main()int n,p,q;doprintf("请输入一个大于等于4的偶数:");scanf("%d",&n);while (10) ;for(p=1;p<=n/2;p+)q=n-p;if ( (11) )

8、printf("%d满足歌德巴赫猜想:%d=%d+%dn",n,n,p,q);(9)A、return 1B、return falseC、return 0D、return i(10)A、(n<4 | n%2!=0)B、(n<4 && n%2!=0)C、(n>=4 && n%2=0)D、(n>=4 | n%2=0)(11)A、isprine(p) | isprime(q)B、isprime(p) && isprime(q)C、isprime(p+q)D、isprime(n) && ispri

9、me(p) | isprime(q)试题4(每小题2分,共10分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】函数arraysort用选择法对实型数组进行从小到大排序;函数arraysearch在数组中查找指定的数据。在main函数中调用实现数组排序和搜索。【运行示例】输入数据:9.9 7.7 8.8 5.5 6.6 3.3 4.4 2.2 0 1.1输入你要查找的数据:4.4找到了,在排序后的数组中下标是4【程序】#include <stdio.h>#include <math.h>#define ARRAYLEN 10void

10、 arraysort(float a,int n)int i,j;float t;for(i=0;i<n-1;i+)for(j= (12) ;j<n;j+)if( (13) ) t=ai; ai=aj; aj=t; int arraysearch(float a,int n,float searchdata)int i;for(i=0;i<n;i+)if ( (14) )return i;return -1;void main()float scoreARRAYLEN,findscore;int i,searchresult;printf("输入数据:n"

11、);for(i=0;i<ARRAYLEN;i+)scanf("%f",&scorei);arraysort(score,ARRAYLEN);printf("输入你要查找的数据:");scanf("%f",&findscore);searchresult= (15) ;if ( (16) )printf("找到了,在排序后的数组中下标是%d",searchresult);elseprintf("数据不存在",searchresult);(12)A、i-1B、i+C、i+1D、

12、n-1(13)A、ai=ajB、ai>ajC、ai<=ajD、ai!=aj(14)A、fabs(ai-searchdata)=0B、fabs(ai-searchdata)<1E-5C、ai=searchdataD、ai=searchdata(15)A、arraysearch(score,ARRAYLEN,findscore)B、arraysearch(score,ARRAYLEN,findscore)C、arraysearch(*score,ARRAYLEN,findscore)D、arraysearch(&score,ARRAYLEN,findscore)(16)A

13、、searchresult != 0B、searchresult = 0C、searchresult > 0D、searchresult >= 0试题5(每小题2分,共8分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】找出一个二维矩阵中的所有鞍点。(所谓鞍点,就是矩阵中的某些元素,它是所在行最小的元素,同时又是所在列最大的元素,一个矩阵的可能没有鞍点,也可能多个。)【运行示例】行号 列号 值1 2 43找到1个鞍点【程序】#include <stdio.h>#define N 4#define M 5int main()int a

14、NM=55,46,19,34,67,86,54,43,90,45,39,79,29,50,31,89,64,36,45,87; int i,j,k,cnt=0,min,minpos; printf("行号t列号t值n"); for( i = 0 ;i< N;i+) (17) minpos = 0; for(j=1;j<M;j+) if (aij < min) min = aij; (18) for(k = 0 ;k< N;k+) if (akminpos>min) (19) if( (20) ) printf("%dt%dt%dn&q

15、uot;, i, minpos, min); cnt = cnt + 1; printf ("n找到%d个鞍点",cnt);(17)A、min = aii;B、min = a00;C、min = ai0;D、min = a0i;(18)A、minpos = j;B、;C、minpos = i;D、minpos = M;(19)A、break;B、continue;C、;D、min=akminpos;(20)A、minpos = jB、minpos = 1C、k >= ND、k != N试题6(每小题2分,共8分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑

16、选一个正确答案。【程序说明】一个字符串的逆序输出。【运行示例】输入:hello world输出:dlrow olleh【程序】#include <stdio.h>void inverstr(char *str)char *p,*q,c;for(q=str; (21) ;q+); (22) for(p=str; (23) p+,q-)c=*p; (24) *q=c;void main()char s100;gets(s);inverstr(s);puts(s);(21)A、*q=nB、*q!=nC、q!= NULLD、*q!=0(22)A、q = str;B、;C、q-;D、*q =

17、 0;(23)A、p<q;B、q<p;C、p=q;D、p!=q;(24)A、p=q;B、&p=&q;C、*q=*p;D、*p=*q;试题7(每小题2分,共8分)#include <stdio.h>void main()int k;for(k=5;k<=10;k+)if (k%3=0)continue;/*第8行*/printf("%d ",k);(25)程序的输出是( 25 )A、5 6 7 8 9 10B、5 7 8 10C、5 7 8D、6 9(26)将第8行中的“continue”改为“break”后,程序的输出是( 26

18、 )A、5 7 8 10B、6 9C、5D、5 6 7 8 9 10(27)将第8行中的“continue;”改为“;”后,程序的输出是( 27 )A、5 7 8 10B、5 6 7 8 9 10C、6 9D、5(28)将第8行全部删除后,程序的输出是( 28 )A、5B、5 6 7 8 9 10C、5 7 8 10D、6 9试题8(每小题2分,共8分)#include <stdio.h>int c;int f(int a)int b=0;int c=3;/*第6行*/b=b+1;c=c+1;return(a+b+c);void main()int a=2,i;for(i=0;i&

19、lt;3;i+)printf("%d,",f(a);(29)程序的输出是( 29 )A、7,8,9,B、5,6,7,C、7,7,7,D、4,5,6,(30)将第6行改为“static c=3;”后,程序的输出是( 30 )A、7,8,9,B、5,6,7,C、7,7,7,D、5,5,5,(31)将第6行改为“c=3;”后,程序的输出是( 31 )A、7,8,9,B、7,7,7,C、7,7,7D、7,8,9(32)第6行改为“;”后,程序的输出是( 32 )A、7,7,7,B、4,4,4,C、4,5,6,D、7,8,9,试题9(每小题2分,共6分)#include <st

20、dio.h>#include <string.h>#define N 10struct votechar *sex;char *answer;int count(struct vote *p,char *s,char *a)int i,t=0;for(i=0;i<N;i+,p+)if (strcmp(p->sex,s)=0 && strcmp(p->answer,a)=0)t=t+1;return t;void main()struct vote vresultN="female","normal",&

21、quot;female","good","male","good","female","excellent","male","good","male","normal","female","good","female","bad","male","good","male"

22、;,"bad"char s6,a9;int t=0;scanf("%s %s",s,a);t=count(vresult,s,a);printf("%d persons, %.2f percentn",t,100.0*t/N);(33)程序运行时,输入male excellent,输出( 33 )A、3 persons, 30.00 percentB、0 persons, 0.00 percentC、0 persons, 0 percentD、0 persons, 00.00 percent(34)程序运行时,输入female goo

23、d,输出( 34 )A、3 persons, 30 percentB、3 persons, 30.00 percentC、2 persons, 20.00 percentD、2 persons, 20 percent(35)程序运行时,输入male good,输出( 35 )A、3 persons, 30.00 percentB、4 persons, 40.00 percentC、3 persons, 3 percentD、4 persons, 40 percent试题10(共8分)有一个函数:写一段程序,输入x,输出y的值。试题11(共10分)编写程序,计算e=1+1/1!+1/2!+1/3

24、!+1/n!,直到最后一项小于0.00001.试题12(共12分)在c:有一个学生信息文件student.txt,内容是学生的学号和成绩,格式如下图:其中学号为整数,成绩为实数。要求定义和调用函数getfailinfo,从文件中选择不及格(<60分)的学生信息并保存到c:failinfo.txt文件中。 浙江师范大学C语言程序设计考试卷参考答案(20072008学年第 2 学期)考试形式笔试(闭卷) 使用学生 全校07级理科(非行知)专业考试时间120分钟出卷时间 2008 年05月31日试题1试题9(每小题2分,共70分)题号12345答案CABCB题号678910答案DADCA题号1112131415答案BCBBA题号1617181920答案DCAAC题号2122232425答案DCADB题号2627282930答案CBDCA题号3132333435答案BCBCA试题10(共8分)#include <stdio.h>void main()float y,x; printf("input x=");scanf(&

温馨提示

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

评论

0/150

提交评论