欢迎来到天天文库
浏览记录
ID:6416973
大小:64.50 KB
页数:6页
时间:2018-01-13
《2006年秋c语言讲稿》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、2006年秋浙江省高等学校试题1(每小题3分,共12分)【程序说明】输入一行字符,统计并输出其中英文字母、数字和其他字符的个数。运行示例:Entercharacters:f(x,y)=3x+5y-10letter=5,digit=4,other=6【程序】#includevoidmain(){intdigit,i,letter,other;(1)ch;digit=letter=other=0;printf("Entercharacters:");while((2)!='')if((3))letter++;(4)(ch>='0'
2、&&ch<='9')digit++;elseother++;printf("letter=%d,digit=%d,other=%d",letter,digit,other);}(1)A、*B、floatC、doubleD、char(2)A、(ch=getchar())B、ch=getchar()C、getchar(ch)D、putchar(ch)当输入的字符不是回车符时执行循环,这是典型语句,背过!(3)A、(ch>='a'&&ch<='z')&&(ch>='A'&&ch<='Z')B、(ch>='a'&&ch<='z')
3、
4、(ch>='A'&
5、&ch<='Z')C、ch>='a'&&ch<='Z'D、ch>='A'&&ch<='z'判断是否为字母(大写或小写),这是典型语句!(4)A、ifB、elseC、elseifD、ifelse注意配对,所以A错误。试题2(每小题3分,共12分)【程序说明】输入一个整数,将它逆序输出。要求定义并调用函数reverse(longnumber),它的功能是返回number的逆序数。例如reverse(12345)的返回值是54321。运行示例:Enteraninteger:-123Afterreversed:-321【程序】#include6、h>voidmain(){longin;longreverse(longnumber);printf("Enteraninteger:");scanf("%ld",&in);/*6*/printf("Afterreversed:%ld",(5));}longreverse(longnumber){intflag;(6);flag=number<0?-1:1;if((7))number=-number;while(number!=0){res=(8);number/=10;}returnflag*res;}(5)A、reverse()B、inC、7、reverse(in)D、reverse从/*6*/那里我们知道形式参数是in,所以这里应该选C。(6)A、res=0B、longresC、longres=0D、res因为这里res的取值达到了54321,超过一般整数的范围,所以要用long型,因此考虑在B和C中选。结合(8)res要有初值,所以选C。(7)A、number>0B、number<0C、number!=0D、number==0语句if((7))number=-number;的作用相当于取绝对值函数abs,所以选B。(8)A、number%10B、res*10+number%10C、n8、umber/10D、res*10+number/10由下一句number/=10;可以推断这里是求余,先排除CD。仔细思考选B。试题3(每小题3分,共12分)【程序说明】输入一个3行2列的矩阵,分别输出各行元素之和.运行示例:Enteranarray:631-8312sumofrow0is9sumofrow1is-7sumofrow2is15【程序】#includevoidmain(){intj,k,sum=0;inta[3][2];printf("Enteranarray:");for(j=0;j<3;j++)for(k=09、;k<2;k++)scanf("%d",(9));for(j=0;j<3;j++){(10)for(k=0;k<2;k++)sum=(11);printf("sumofrow%dis%d",(12),sum);}}(9)A、a[j][k]B、a[k][j]C、&a[j][k]D、&a[k][j]双层循环,输入数组,根据Scanf的语法,首先排除AB;根据行列关系推断这里是C。(10)A、;B、sum=-1;C、sum=1;D、sum=0;每次初值为0,否则会各行累加。(11)A、sum+a[j][k]B、sum+a[j][j]C、sum+a[k10、][k]D、0BC只会累加对角线上的元素,所以错误。D显然不对。因此选A。(12)A、kB、jC、0D、1注意,J表示行,
6、h>voidmain(){longin;longreverse(longnumber);printf("Enteraninteger:");scanf("%ld",&in);/*6*/printf("Afterreversed:%ld",(5));}longreverse(longnumber){intflag;(6);flag=number<0?-1:1;if((7))number=-number;while(number!=0){res=(8);number/=10;}returnflag*res;}(5)A、reverse()B、inC、
7、reverse(in)D、reverse从/*6*/那里我们知道形式参数是in,所以这里应该选C。(6)A、res=0B、longresC、longres=0D、res因为这里res的取值达到了54321,超过一般整数的范围,所以要用long型,因此考虑在B和C中选。结合(8)res要有初值,所以选C。(7)A、number>0B、number<0C、number!=0D、number==0语句if((7))number=-number;的作用相当于取绝对值函数abs,所以选B。(8)A、number%10B、res*10+number%10C、n
8、umber/10D、res*10+number/10由下一句number/=10;可以推断这里是求余,先排除CD。仔细思考选B。试题3(每小题3分,共12分)【程序说明】输入一个3行2列的矩阵,分别输出各行元素之和.运行示例:Enteranarray:631-8312sumofrow0is9sumofrow1is-7sumofrow2is15【程序】#includevoidmain(){intj,k,sum=0;inta[3][2];printf("Enteranarray:");for(j=0;j<3;j++)for(k=0
9、;k<2;k++)scanf("%d",(9));for(j=0;j<3;j++){(10)for(k=0;k<2;k++)sum=(11);printf("sumofrow%dis%d",(12),sum);}}(9)A、a[j][k]B、a[k][j]C、&a[j][k]D、&a[k][j]双层循环,输入数组,根据Scanf的语法,首先排除AB;根据行列关系推断这里是C。(10)A、;B、sum=-1;C、sum=1;D、sum=0;每次初值为0,否则会各行累加。(11)A、sum+a[j][k]B、sum+a[j][j]C、sum+a[k
10、][k]D、0BC只会累加对角线上的元素,所以错误。D显然不对。因此选A。(12)A、kB、jC、0D、1注意,J表示行,
此文档下载收益归作者所有