当前位置:文档之家› C语言基础编程题

C语言基础编程题

C语言基础编程题
C语言基础编程题

C语言基础编程题

This model paper was revised by the Standardization Office on December 10, 2020

5-1求幂之和(15分)

本题要求编写程序,计算sum=2^1 + 2^2 + 2^3 + \cdots + 2^n sum=21+22+23++2n。可以调用pow函数求幂。

输入格式:

输入在一行中给出正整数n n(\le≤10)。

输出格式:

按照格式“result = 计算结果”输出。

输入样例:

输出样例:

#include<>

#include<>

int main()

{

int i,n,sum=0;

scanf("%d",&n);

for(i=1;i<=n;i++)

{

sum=sum+pow(2,i);

}

printf("result = %d\n",sum);

return 0;

}

5-2近似求PI(15分)

本题要求编写程序,根据下式求\piπ的近似值,直到最后一项小于给定精度eps。

\frac{\pi}{2}=1+\frac{1!}{3}+\frac{2!}{3\times 5} + \frac{3!}{3\times 5\times 7}+ \cdots +\frac{i!}{3\times 5\times \cdots \times (2\times i+1)}+

\cdots2π=1+31!+3×52!+3×5×73!++3×5××(2×i+1)i!+

输入格式:

输入在一行中给出精度eps,可以使用以下语句来读输入:

输出格式:

在一行内,按照以下格式输出\piπ的近似值(保留小数点后5位):

输入样例:

输出样例:

#include<>

#include<>

int main()

{

double a=1,b=3,i=1,j=3;

double eps,m=1,sum=0;

scanf("%le", &eps);

while(m>eps)

{

m=a/b;

sum=sum+m;

i=i+1;

j=j+2;

a=a*i;

b=b*j;

}

printf("PI = %.5lf\n",2+2*sum);

return 0;

}

5-3判断素数(15分)

输入一个正整数m,如果它是素数,输出"YES",否则,输出"NO"(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。

输入格式:

在一行中输入一个正整数m。

输出格式:

对每一组输入,在一行中输出结果并换行。

输入样例:

输出样例:

#include<>

#include<>

int main()

{

int i,j,n;

scanf("%d",&n); j=sqrt(n);

for(i=2;i<=j;i++) if(n%i==0) break; if(i>=j && n!=1) printf("YES\n"); else

printf("NO\n");

return 0;

}

5-4出生年(15分)

以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要

输出样例1:

输入样例2:

输出样例2:

#include<>

#include<>

int main()

{

int y,n,a,b,c,d,f[10],l=0; scanf("%d %d",&y,&n);

for(int i=y;i<10000;i++) {

a=i/1000;

b=i/100%10;

c=i%100/10;

d=i%10;

memset(f,0,sizeof(f)); f[a]=1;

if(f[b]!=1)

f[b]=1;

if(f[c]!=1)

f[c]=1;

if(f[d]!=1)

f[d]=1;

int sum=0;

for(int j=0;j<10;j++) {

sum=sum+f[j];

}

if(sum==n&&l==0)

{

printf("%d %04d\n",i-y,i);

l++;

}

}

return 0;

}

5-5计算函数P(n,x)(10分)

输入一个正整数repeat (0

输入一个整数n (n>=0)和一个双精度浮点数x,输出函数p(n,x)的值(保留2位小数)。

1 (n=0)

x (n=1)

((2n-1)p(n-1,x)-(n-1)*p(n-2,x))/n (n>1)

例:括号内是说明

输入样例:

1 (n=1,x= 10 (n=10,x=输出样例:

p(0,=

p(1,=

p(10,=

时间限制:400ms

内存限制:64MB

代码长度限制:16kB

判题程序:系统默认

作者:王秀

单位:福州大学

题目判定

解题程序

#include<>

int main()

{

double p(int n,double x);

int repeat,ri,n;

double x,result;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++)

{

scanf("%d %lf",&n,&x);

result=p(n,x);

printf("p(%d,%.2lf)=%.2lf\n",n,x,result); }

return 0;

}

double p(int n,double x)

{

double t;

if(n==0)

t=1;

else if(n==1)

t=x;

else

t=((2*n-1)*p(n-1,x)-(n-1)*p(n-2,x))/n;

return t;

}

5-6在数组中查找指定元素(10分)

输入一个正整数repeat (0

输入一个正整数 n (1

要求定义并调用函数search(list, n, x),它的功能是在数组list中查找元素x,若找到则返回相应元素的最小下标,否则返回-1,函数形参 list 的类型是整型指针,形参n 和x的类型是int,函数的类型是int。

输出格式语句:printf("index = %d\n", );

输入输出示例:括号内为说明,无需输入输出

输入样例:

2 (repeat=2)

3 (n=3)

1 2 -6

2 (x=2)

5 (n=5)

1 2 2 5 4

0 (x=0)

输出样例:

index = 1

Not found

时间限制:400ms

内存限制:64MB

代码长度限制:16kB

判题程序:系统默认

作者:王秀

单位:福州大学

#include<>

int main()

{

int search(int list[], int n, int x);

int n,i,a[10],res,x,repeat,index,ri;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++)

{

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

scanf("%d",&x);

res=search(a,n,x);

if(res!=-1)

printf("index = %d\n",res);

else

printf("Not found\n");

}

return 0;

}

int search(int list[], int n, int x)

{

int i,q=-1;

for(i=0;i

{

if(list[i]==x)

{

return i;

}

}

return q;

}

5-7使用函数的选择法排序(10分)

输入一个正整数 repeat (0

输入一个正整数 n (1

要求定义并调用函数 sort(a,n),它的功能是采用选择排序算法,将数组 a 的前 n 个元素按从小到大的顺序排序,函数形参 a 的类型是整型指针,形参n的类型是int,函数的类型是void。

输出格式:数据直接以空格分隔,最后的一个数据后面没有空格。

输入输出示例:括号内为说明,无需输入输出

输入样例:

输出样例:

After sorted: 1 5 6 7

After sorted: 1 2 3

After sorted: 1 2 3 4 5

时间限制:400ms

内存限制:64MB

代码长度限制:16kB

判题程序:系统默认

作者:王秀

单位:福州大学

题目判定

解题程序

#include <>

#define MAXN 10

void sort( int a[], int n ); int main()

相关主题
文本预览
相关文档 最新文档