二级C笔试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
试题5(每小题3分,共12分)
【程序】
int f1(int n)
{ if(n==1) return 1 ;
else return f1(n-1) + n;
}
int f2(int n)
{ switch(n){
case 1:
case 2:return 1;
default: return f2(n-1) + f2(n-2);
}
}
void f3(int n)
{ printf(“%d”,n%10);
if(n/10 !=0) f3(n/10);
}
void f4(int n)
{ if (n/10 !=0) f4(n/10);
printf(“%d”, n%10);
}
#include
main()
{ printf(“%d\n”,f1(4));
printf(“%d\n”,f2(4));
f3(123);
printf(“\n”);
f4(123);
printf(“\n”);
}
(17) 程序运行时,第1行输出(17) 。
A、10
B、24
C、6
D、1
(18) 程序运行时,第2行输出(18) 。
A、1
B、3
C、2
D、4
(19) 程序运行时,第3行输出(19) 。
A、123
B、3
C、321
D、1
(20) 程序运行时,第4行输出(20) 。
A、1
B、123
C、3
D、321 试题6(每小题3分,共12分)
#include
struct num{ int a,b;};
void f(struct num s[], int n)
{ int index, j, k;
struct num temp;
for(k=0;k< n-1;k++){
index=k;
for(j=k+1;j if(s[j].b temp=s[index]; s[index]=s[k]; s[k]=temp; } } main() { int count, i, k, m, n, no; struct num s[100],*p; scanf(“%d%d%d”, &n, &m, &k); for(i=0;i s[i].a=i+1; s[i].b=0; } p=s; 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 ⒄ A ⒅ B ⒆ C ⒇ B (21)A (22)D (23)C (24)D 试题7 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!+…… #include #include double fact(int n) { 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("%lf%lf",&x,&e); s=cal(x,e); printf("s=%f\n",s); } 一、程序阅读与填空(24小题,每小题3分,共72分) 【程序说明】 计算并输出下式的值,要求精确到最后一项的绝对值小于10-3(保留4位小数)。 ⋯+-+- =10 1 71411s 运行示例: sum = 0.8361 【程序】 #include #include { int denominator = 1, flag = 1; double item, sum=0; ___(1)____ while(____(2)___){ ___(3)____ denominator =denominator + 3; flag = -flag; } printf("sum=___(4)____\n", sum); }