C语言期中考试_答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1页共10页南京信息工程大学期中考试试卷2007-2008学年第1学期C语言程序设计课程试卷(A卷)学院专业2007年级班学号姓名得分请大家先自由练习,下午我们再一起讲试卷。一、阅读程序,回答问题:(每题5分,共55分)1.输入13,下面程序执行的结果是[1]13isaprimenumber#includestdio.h#includemath.hvoidmain(){intm,i,k;scanf(“%d”,&m);k=sqrt(m);for(i=2;i=k;i++)if(m%i==0)break;if(ik)printf(“%disaprimenumber\n”,m);elseprintf(“%disnotaprimenumber\n”,m);}2.输入2007回车后,下面程序执行的结果是[2]2007isnotaleapyear.#includestdio.hvoidmain(){intyear,leap;scanf(“%d”,&year);if((year%4==0)||(year%100==0&&year%400==0))leap=1;elseleap=0;if(leap)printf(“%disaleapyear.\n”,year);elseprintf(“%disnotaleapyear.\n”,year);}3.下面程序的功能是矩阵转置第2页共10页#includestdio.hvoidmain(){inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};intb[3][3],i,j;for(i=0;i=2;i++){for(j=0;j=2;j++)b[j][i]=a[i][j];}for(i=0;i=2;i++){for(j=0;j=2;j++)printf(%5d,b[i][j]);printf(\n);}}4.从键盘上输入1、2、3、54、32、0、-10、6、9、8,下面程序执行的结果是[4]54#includestdio.h#defineSIZE10voidmain(){intx[SIZE],i,max;printf(Enter10integers:\n);for(i=0;iSIZE;i++)scanf(%d,&x[i]);max=x[0];for(i=1;iSIZE;i++)if(maxx[i])max=x[i];printf(Max=%d\n,max);}5.从键盘输入5时,下面程序的输出结果是________[5]_________87#includestdio.hmain(){intch;scanf(%c,&ch);switch(ch-2){case0:case1:putchar(ch+4);case2:putchar(ch+4);break;case3:putchar(ch+3);第3页共10页default:putchar(ch+2);}printf(“\n”);}6.下面程序的运行结果是:[6]a=2,b=1#includestdio.hvoidmain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf(“\na=%d,b=%d”,a,b);}7.下面程序执行的结果是[7]2,11,9,7,3#includestdio.hvoidmain(){inta[5]={3,7,9,11,2};intt,i,j,m,n;n=5;m=(n-1)/2;for(i=0;i=m;i++){j=n-1-i;t=a[i];a[i]=a[j];a[j]=t;}for(i=0;i5;i++)printf(%d,,a[i]);printf(\n);}8.下面程序执行的结果是[8]31-1#includestdio.h第4页共10页voidmain(){inti=5;do{switch(i%2){case4:i--;break;case6:i--;continue;}i--;i--;printf(“%d”,i);}while(i0);}9.写出下面程序运行的结果[9]。1,-2#includestdio.hvoidmain(){inty=2,a=1;while(y--!=-1)do{a*=y;a++;}while(y--);printf(“%d,%d\n”,a,y);}10.当运行以下程序时,从键盘输入:AhaMAAhaCR(CR表示回车),则下面程序的运行结果是___[10]_____。ahAMa#includestdio.hmain(){chars[80],c='a';inti=0;scanf(%s,s);while(s[i]!='\0'){if(s[i]==c)s[i]=s[i]-32;elseif(s[i]==c-32)s[i]=s[i]+32;i++;}puts(s);//输出s数组中所有元素。}11.下面程序的运行结果是____[11]______。1345第5页共10页#includestdio.hmain(){inti=1,n=3,j,k=3;inta[5]={1,4,5};while(i=n&&ka[i])i++;for(j=n-1;j=i;j--)a[j+1]=a[j];a[i]=k;for(i=0;i=n;i++)printf(%3d,a[i]);}二、编程题:(第1-3每题10分,第4题15分,共45分)1.输入一段字符,并统计数字1~9、以及空格出现的次数。#includestdio.hmain(){charc;intletter=0,space=0,digit=0,other=0;printf(inputalineletter:\n);while((c=getchar())!=’\n’)/*读取当前字符,如不为回车符则进行统计*/{if(c=’a’&&c=’z’||c=’A’&&c=’Z’)letter++;elseif(c==’’)space++;elseif(c=’0’&&c=’9’)digit++;elseother++;}printf(letter=%d,space=%d,digit=%d,other=%d\n,letter,space,digit,other);}运行情况:inputalineletter:Myteacher'saddressis#123BeijingRoad,Shanghai.letter=38,space=6,digit=3,other=62.给出不多于5位的正整数,要求:第6页共10页(1)求出它是几位数;(2)分别输出每一位数字;(3)按逆序输出各位数字,如5832,应输出2385。main(){longintnum;intindiv,ten,hundred,thousand,ten_thousand,place;printf(input0-99999:);scanf(%ld,&num);if(num9999)place=5;elseif(num999)place=4;elseif(num99)place=3;elseif(num9)place=2;elseplace=1;printf(place=%d\n,place);/*输出位数*/printf(shuziis:);ten_thousand=num/10000;/*以下五行分别求万位、千位、百位、十位、个位数字*/thousand=(int)(num-ten_thousand*10000)/1000;hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);switch(place)/*根据位数判断应该输出哪几位数字*/{case5:printf(%d,%d,%d,%d,%d,ten_thousand,thousand,hundred,ten,indiv);/*正序输出*/printf(\ninvertis:);printf(%d%d%d%d%d\n,indiv,ten,hundred,thousand,ten_thousand);/*逆序输出*/break;case4:printf(%d,%d,%d,%d,thousand,hundred,ten,indiv);printf(\ninvertis:);printf(%d%d%d%d\n,indiv,ten,hundred,thousand);break;case3:printf(%d,%d,%d,hundred,ten,indiv);printf(\ninvertis:);printf(%d%d%d\n,indiv,ten,hundred);第7页共10页break;case2:printf(%d,%d,ten,indiv);printf(\ninvertis:);printf(%d%d\n,indiv,ten);break;case1:printf(%d,indiv);printf(\ninvertis:);printf(%d\n,indiv);break;}}运行结果:input0-99999:98765↙place=5shuziis:9,8,7,6,5invertis:567893.输入10个整数,并用冒泡法对其进行从小到大排序,并输出排序后结果。#includestdio.hvoidmain(){inta[10];inti,j,t;printf(″input10numbers:\n″);for(i=0;i10;i++)scanf(%d,&a[i]);printf(\n);for(j=0;j9;j++)for(i=0;i9-j;i++)if(a[i]a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf(″thesortednumbers:\n″);for(i=0;i10;i++)printf(″%d″,a[i]);printf(″\n″);}/*程序结束*/4.读入下表中值到数组,分别求各行数之和。12364561578924第8页共10页C语言程序设计答题纸学院专业2007年级班学号姓名得分一、阅读程序,回答问题:(每题5分,共55分)1、13isaprimenumber2、2007isnotaleapyear.3、矩阵转置4、545、876、a=2,b=17、2,11,9,7,38、31-19、1,-210、ahAMa11、1345二、编程题:(第1-3每题10分,第4题15分,共45分)1、第9页共10页2、3、第10页共10页4、

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功