《浙江理工大学C语言期末试卷(共11页).doc》由会员分享,可在线阅读,更多相关《浙江理工大学C语言期末试卷(共11页).doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上C程序设计试卷一、 单选题(本题共20分,每小题2分)(1)以下C语言常量中,表达错误的是_(1)_。A 0FF B 3.2e0.5 C 5.6 D n(2)C程序的基本结构有_(2)_。A 选择、重复和模块B 顺序、选择和模块C 顺序、选择和循环D 逻辑、物理和程序(3)在C语言程序中,关于字符串的描述正确的是_(3)_。A 可定义一个字符串变量存储字符串;B 可定义一个字符变量存储任意字符串;C 可定义一个字符数组存储字符串;D 可定义一个字符指针存储字符串;(4)在C语言中,用关键字_(4)_定义双精度类型变量。A singleB doubleC floatD
2、int(5)下面叙述中不正确的是_(5)_。A 不同函数中可以使用相同名字的变量B 形式参数是局部变量C 在一个函数内部的复合语句中定义的变量在本函数范围内有效D 在一个函数内部定义的变量只能在本函数范围内有效(6)下面程序段的输出结果是_(6)_。int i=100;while(i120)i=i+1;printf(%d,i);A 100B 101C 120D 121(7)以下定义语句中正确的是_(7)_。A char a=A b=B;B float a=b=10.0; C int a=10, *b=&a;D float *a,b=&a;(8)已有定义:int i, a10, *p;,则合法的
3、赋值语句是_(8)_。A p=100;B p=a5;C p=a2+2;Dp=a+2;(9)设有定义:int a,*p1=&a; 以下scanf语句中能正确为变量a读入数据的是_(9)_。A scanf(“%d”,p1); B scanf(“%d”,a); C scanf(“%d”,&p1); D scanf(“%d”,*p1); (10)以下程序段中与语句=ab?(bc?10)0;功能等价的是_(10)_。A if(ab)&(bc) =1 else =0;B if(ab)|(bc) =1 else =0; C if(ab) =1;二、 程序填空题(本题共30分,每小题2分)阅读下列程序说明和程
4、序代码,在每小题提供的若干可选项中,挑选一个最佳的选项。(1)【程序说明】输入整数n,输出共有n层的金字塔图形。例如:【程序代码】# include void main() int i,j,n; char c=*; printf(输入层数:); scanf(%d,&n); for(i=1; (11) ;i+) for(j=1;j=n-i; (12) ) printf( ); for(j=1; (13) ;j+) printf( (14) ,c); printf(n); /换行,在内嵌循环结束后执行 (15) 【选项】(11)A i=n+1B i=nC i=2*i-1B j=2*i-1C j=2
5、*n-1D j=n(14)A %dB %sC %cD %f(15)A B )C ;D 以上选项都不正确 (2)【程序说明】输入年份判断是否闰年。【程序代码】#include main() int year,leap; scanf(%d, (16) ); if (year%4=0) if (year%100=0) if (year%400=0) leap=1; (17) leap=0; else leap=1; else (18) ; if ( (19) ) printf (%d is , (20) ); else printf (%d is not ,year); printf (a leap
6、 year.n);【选项】(16)A yearB &yearC &nD &leap(17)A else ifBelse;C elseD else if(leap=1)(18)A leap=0B leap=1C year=0D year=1(19)Ayear=1B leapC leap =0D以上选项都不正确(20)AleapB &leapCyearD&year (3)【程序说明】输入十个整数并保存在一维数组中,使数组中每个元素都增加10。【程序代码】#include main() int a10,i; (21) p=a; for (i=0;i10;i+) scanf(%d, (22) ); (
7、23) ; for (p=a;p(a+10);p+) (24) printf(n); (25) ; for (;p(a+10);p+) printf(%d ,*p); 【选项】(21)A int p10B int *p;C int p;D int a;(22)A a+B apC *pD p(23)A p+B a+C*p+D *a+(24)A *a=*a+10;B *p=*(p+10);C *p=*p+10;D *a=*(a+i);(25)A p=a0B p=*aC p=aD *p=&a三、 程序阅读题(本题共20分,每小题2分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确
8、的答案。(1)【程序说明】运行程序并回答问题。【程序代码】#include #include void main() int n,s=0; scanf(%d,&n); n=fabs(n); while(n1) s=s+n%10; n=n/10; printf(%dn,s);【选项】(26)程序运行时输入312,输出_(26)_。A 213B 6C 312D 3为。(27)程序运行时输入-5104,输出_(27)_。A-5104B4015C10D 51.04(2)【程序说明】运行程序并回答问题。【程序代码】# include void main()int a,b,c,temp;a=5;b=12;
9、c=6;printf(a=%d,b=%d,c=%dn,a,b,c);if(ab) swap(&a,&b);if(ac) swap(&a,&c);printf(a=%d,b=%d,c=%dn,a,b,c);if(bc) swap(&b,&c);printf(a=%d,b=%d,c=%dn,a,b,c);void swap(int *,int *y) int temp; temp=*; *=*y; *y=temp;【选项】(28)程序运行时,第1行输出_(28)_。 A a=5,b=12,c=6B a=%d,b=%d,c=%dC a=5.0,b=12.0,c=6.0D a=12,b=5,c=6(2
10、9)程序运行时,第2行输出_(28)_。 A a=5,b=12,c=6B a=6,b=12,c=5C a=12,b=5,c=6D a=12,b=6,c=5(30)程序运行时,第3行输出_(30)_。 A a=5,b=12,c=6B a=6,b=12,c=5Ca=12,b=5,c=6D a=12,b=6,c=5(3)【程序说明】运行程序并回答问题。【程序代码】#include void main() char s140; int i=0; printf(nInput a string); scanf(%s,s1); while (s1i !=0) if (s1i=A & s1i =) s1i=s
11、1i+32; i+; printf(n%sn,s1);【选项】(31)程序运行时,输入abc30DCA,输出_(31)_。 A 62B abc30dcaC abcD DCA(32)程序运行时,输入Face,输出_(32)_。 A Face32B FACEC faceD f(4)【程序说明】运行程序并回答问题。【程序代码】#include void main() FILE *fp; int i,j,y; scanf(%d%d,&i,&j); fp=fopen(t.dat,w); fprintf(fp,%dn,i); if (ij) =i; else =i+j; fprintf(fp,%dn,);
12、 fclose(fp); fp=fopen(t.dat,r); fscanf(fp,%d%d,&,&y); printf(=%d,y=%dn,y); fclose(fp);【选项】(33)程序运行时,输入20 12 输出_(33)_。 A =20,y=20B =20,y=12C =12,y=20D =12,y=12(34)程序运行时,输入10 35输出_(34)_。 A =45,y=45B =10,y=10C =10,y=35D =35,y=35(35)程序运行时,输入12 12输出_(35)_。 A =24,y=24B =12,y=12C =24,y=12D =12,y=24四、 程序设计题
13、(本题共30分,每小题10分)(1)编写程序,要求从键盘上输入一个数给,计算并输出分段函数y的值。y= +10 10 010 5-3 0提示:平方根函数为:sqrt( ),指数函数为: ep( ),正切函数为: tan( ),正弦函数为: sin( ),所有这些函数在math.h 头文件中。(2)从键盘输入一个正整数n,编写程序计算1/1!+1/2!+1/3!+1/n!的值并输出结果, 要求定义和调用函数fact (n)计算n的阶乘。(3)随机产生20个大于等于1小于等于100的数,并按从大到小排序。请输出排序后的数,要求每行输出5个数。浙江理工大学2005/2006下学期期末考试-C程序设计
14、试题参考答案与评分标准一、单选题(本题共20分,每小题2分)题号12345678910答案BCCBCACDAA二、程序填空题(本题共30分,每小题2分)题号11121314151617181920答案BCBCABCABC题号2122232425答案BDACC三、程序阅读题(本题共20分,每小题2分)题号26272829303132333435答案BCACDBCACD四、编程题(本题共30分,每小题10分)1、# include # include void main() float ,y; scanf(%f,&); if(10) y=+10; else if(=0) y=(sqrt(5*)+e
15、p()/(+1); else y=tan()*sin(); printf(y=%fn,y); 2、#includefloat fact(int n) float t=1.0;int i=1; while (i=n) t=t*i+; return(t); void main() int n,i ;float sum=1.0; scanf(%d,&n); for (i=2;i=n;i+) sum=sum+1.0/fact(i); printf(%fn,sum);3、#include#includevoid main() int i,j,n=0,temp,20; srand(time(NULL); printf(原始数据:n); for(i=0;i=19;i+) i=rand()%100+1; /产生20个随机数 if(i%5=0)printf(n); printf(%-6d,i); printf(n); for(i=0;i19;i+) /从大到小排序 for(j=0;j19-i;j+) if(jj+1) temp=j; j=j+1; j+1=temp; printf(排序后数据:n); for(i=0;i20;i+) if(i%5=0)printf(n); printf(%-6d,i); printf(n);专心-专注-专业
限制150内