当前位置:首页 > 浙江省高等学校二级C语言(笔试部分真题2008-2010年)
count = no =0; while(no if(p->b==0) count++; if(count==m){ no++; p->b=no; count=0; } p++; if(p==s + n) p=s; } f(s,n); printf(“%d: %d\\n”, s[k-1].b, s[k-1].a); } (21) 程序运行时,输入5 4 3,输出 (21) 。 A、3: 5 B、2: 3 C、1: 2 D、4: 1 (22) 程序运行时,输入5 3 4,输出 (22) 。 A、3: 5 B、1: 2 C、4: 3 D、4: 2 (23) 程序运行时,输入7 5 2,输出 (23) 。 A、1: 5 B、6: 1 C、2: 3 D、2: 4 (24) 程序运行时,输入4 2 4#,输出 (24) 。 A、3: 3 B、4: 2 C、2: 4 D、4: 1 试题7 (28分) (1) 定义函数fact(n)计算n的阶乘:n!=1*2*??*n,函数形参n的类型是int, 函数类型是double。 (2) 定义函数cal(x, e)计算下列算式的值,直到最后一项的值小于e,函数形参x 和e的类型都是double,函数类型是double。要求调用自定义函数fact(n)计算n的阶乘,调用库函数pow(x, n)计算x的n次幂。 S=x+x^2/2!+x^3/3!+x^4/4!+…… (3) 定义函数main(),输入两个浮点数x和e,计算并输出下列算式的值,直到最 到最后一项的值小于精度e。要求调用自定义函数cal(x,e)计算下列算式的值。 S=x+x^2/2!+x^3/3!+x^4/4!+…… 21 计算机等级考试参考答案(二级C) 试题1~6 (每小题3分) ⑴ D ⑵ D ⑶ C ⑷ C ⑸ B ⑹ B ⑺ A ⑻ A ⑼ D ⑽ C ⑾ B ⑿ A ⒀ A ⒁ B ⒂ C ⒃ D ⒄ A ⒅ B ⒆ C ⒇ B (21)A (22)D (23)C (24)D 试题7 (28分) #include double p=1; int i; for(i=1;i<=n;i++) p=p*i; return p; } double cal(double x,double e) { double s=0,t; int i=1; do{ t=pow(x,i)/fact(i); s=s+t; i++; }while(t>=e); return s; } void main() { double x,e,s; scanf(\ s=cal(x,e); printf(\} 22 2008年秋浙江省高等学校 计算机等级考试(二级C) 说明: 考试时间为90分钟。 试题1(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入一批学生的成绩,遇负数表示输入结束,要求统计并输出各等级成绩的学生个数。成绩等级分为三级,分别为A(90-100)、P(60-89)和F(0-59)。 运行示例: Enter scores:88 71 68 70 59 81 91 0 60 77 83 -10 A:1;P:8;F:2; 【程序】 #include { int mark,a,p,f; a=p=f=0; printf(“Enter scores:”); scanf(“%d”,&mark); while(___(1)___){ if(mark>=90) a++; ___(2)___ p++; ___(3)___ f++; ___(4)___ } printf(“A:%d;P:%d;F:%d;\\n”,a,p,f); } 【供选择的答案】 (1) [A] mark>=0 [C] mark<=0 (2) [A] else if(mark>=60) [C] else (mark>=60) (3) [A] else (mark<60) [C] if(mark>0) (4) [A] scanf(\”,mark); [C] ; [B] mark>0 [D] mark<0 [B] if(mark>=60) [D] if(mark<90) [B] else [D] else if(mark<=60) [B] scanf(\”,&mark); [D] mark=getchar(); 试题2(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 23 【程序说明】 求1-999之间所有满足各位数字的立方和等于它本身的数。例如153的各位数字的立方和是13+53+33=153 运行示例: 1 153 370 371 407 【程序】 #include { int digit,j,sum,x; for(j=1;j<1000;j++){ ___(5)___ ___(6)___ do{ ___(7)___ sum=sum+digit*digit*digit; x=x/10; }while(___(8)___); if(sum= =j) printf(“%d ”,sum); } } 【供选择的答案】 (5) [A] sum=0; (7) [A] digit=x/10; (8) [A] x= =0 [B] sum=1; [B] ; [B] j!=0 [C] sum=j; [C] digit=x; [C] j= =0 [D] ; [D] digit=x; [D] x!=0 (6) [A] x=1; [B] x=j; [C] ; [D] x=sum; 试题3(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入10个整数,将它们从大到小排序后输出。 运行示例: Enter 10 integers:10 98 -9 3 6 9 100 -1 0 2 After sorted:100 98 10 9 6 3 2 0 -1 -9 【程序】 #include ___(9)___ void sort(___(10)___) { int i,index,k,t; for(k=0;k for(i=k+1;i if(a[i]>a[index]) index=i; ___(11)___ } } 24
共分享92篇相关文档