计算机二级C试题12. 编写程序,计算出1到500之间所有满足下列条件的整数的和:该整数的所有因子
(包括1,但不包括整数本身)之和等于整数本身。
#include "stdio.h"
void main()
{ int sum=0,i,j,s;
for(i=1;i
#include "stdio.h"
void main()
{ int i,a,b,c,sum=0;
for(i=100;i
#include "stdio.h"
void main()
{ int i;
float x,min,ma...
12. 编写程序,计算出1到500之间所有满足下列条件的整数的和:该整数的所有因子
(包括1,但不包括整数本身)之和等于整数本身。
#include "stdio.h"
void main()
{ int sum=0,i,j,s;
for(i=1;i<=500;i++)
{ s=0;
for(j=1;j<=i/2;j++)
if(i%j==0) s=s+j;
if(i==s) sum=sum+i;
}
printf("%d\n",sum);
}
13. 编写程序,界面如下。统计在所有3位数中,其个位、十位、百位上的数码相加等于9的数据个数。点击“运行“按钮输出结果。〈image.gif>
#include "stdio.h"
void main()
{ int i,a,b,c,sum=0;
for(i=100;i<=999;i++)
{ a=i/100;
b=(i-100*a)/10;
c=i-100*a-10*b;
if(a+b+c==9)sum++;
}
printf(" %d " ,sum);
}
14. 设计如图所示的运行界面,从键盘输入一批不少于10个数的任意数据,点击“计算”按钮,将实现如下功能:去掉其中的最大数和最小数,输出剩余数据的平均值(保留两位小数)。〈image001.gif>
#include "stdio.h"
void main()
{ int i;
float x,min,max,sum=0,ave;
scanf("%f",&x);
max=x; min=x; sum=sum+x;
for(i=1;i<10;i++)
{ scanf("%f",&x);sum=sum+x;
if(x>max) max=x;
if(x
17. 编写程序,计算出1000到5000之间能被3整除但不能被13整除的整数的所有的整数的平方根的和。保留4位小数
#include "stdio.h "
#include "math.h "
void main()
{ int i; float sum=0;
for(i=1000;i<=5000;i++)
if(i%3==0&&i%13!=0)sum=sum+sqrt(i);
printf("%5.4f" ,sum);
}
18. 编写程序,界面如下。统计在所有3位数中,其个位、十位、百位上的数码相加等于21的数据个数。点击“运行”按钮输出结果。〈image115.gif>
#include "stdio.h "
void main()
{ int i,a,b,c, sum=0;
for(i=100;i<=999;i++)
{ a=i/100;
b=(i-100*a)/10; /* b=(i%100)/10; */
c=i-100*a-10*b; /* c=i%10 ; */
if(a+b+c==21) sum++;
}
printf(" %d " ,sum);
}
19. 编写程序,计算出1000到9900之间所有能被3和7同时整除的整数之和。
#include "stdio.h "
void main()
{ int i;
long sum=0;
for(i=1000;i<=9900;i++)
if(i%3==0 && i%7==0) sum=sum+i;
printf("%ld" ,sum);
}
20. 设计如图所示的运行界面,从键盘输入不少于10个数的任意数据,点击“计算”按钮,输出这些数据中最小的5个数 的平均值(保留两位小数)。
21. 编写程序,从键盘输入一个3位正整数,试求其个、十、百位数之和(例如:136的各位数之和为10)。
要求:用可视化程序设计出如下界面,点击“确认”按钮输出运算结果
#include "stdio.h"
void main()
{ int i,a,b,c, sum=0;
printf(" enter i: " );
scanf("%d" ,&i);
a=i/100;
b=(i-100*a)/10; /* b=(i%100)/10; */
c=i-100*a-10*b; /* c=i%10 ; */
sum=a+b+c;
printf(" i=%d,sum=%d " ,i,sum);
}
22. 编写程序,计算并输出下面数列前n(设n=45)项中所有偶数项的和。
1*2*3,3*4*5,5*6*7,……,(2n-1)*2n*(2n+1),……
#include "stdio.h "
void main()
{ int n;
long sum=0;
for(n=2;n<=45;n=n+2)
sum=sum+(2*n-1)*(2*n)*(2*n+1);
printf("%ld" ,sum);
}
23. 编写程序,计算下面数列前n项(设n=50)中奇数项的和。结果取4位小数。
1/(1*2*3),1/(2*3*4),1/(3*4*5),……,1/(n(n+1)(n+2),……
#include "stdio.h "
void main()
{ int n;
float sum=0;
for(n=1;n<=50;n=n+2)
sum=sum+1.0/(n*(n+1)*(n+2));
printf("%5.4f" ,sum);
}
24. 编写程序,计算并输出下面数列前n(设n=15)项的和。用科学技术法表示结果,尾数取4位小数。
1!,2!,3!,4!,……,n!,……(其中,!表示求阶乘)。
#include "stdio.h "
void main()
{ int n;
float sum=0,p=1;
for(n=1;n<=15;n++)
{p=p*n; sum=sum+p;}
printf("%5.4e" ,sum);
}
25. 编写程序,计算并输出下面数列前30项的和。
1*2*3,3*4*5,5*6*7,……,(2n-1)*2n*(2n+1),……
#include "stdio.h "
void main()
{ int n;
long sum=0;
for(n=1;n<=30;n++)
sum=sum+(2*n-1)*(2*n)*(2*n+1);
printf("%ld" ,sum);
}
26. 编写程序,计算并输出下面数列前40项的和,结果取6位小数,小数点后第5位四舍五入。
2/3,4/5,6/7,8/9,10/11,12/13,14/15,……,(2n)/(2n+1)
要求:
在运行程序时,使用文本框或InputBox输入n值,并用适当的方法输出运算结果。
#include "stdio.h "
void main()
{ int n;
float sum=0;
for(n=1;n<=40;n++)
sum=sum+2.0*n/(2*n+1);
sum=(int)(sum*10000+0.5)/10000.0;
printf("%f" ,sum);
}
27. 编写程序,求下面数列前40项的和。结果取4位小数。
1,1/2^4,1/3^4,1/4^4,……,1/n^4,……(其中,^表示幂运算)
#include "stdio.h" (1.0823)
#include "math.h"
void main()
{ int n;
float sum=0;
for(n=1;n<=40;n++)
sum=sum+1.0/pow(n,4);
printf("%5.4f" ,sum);
}
28. 编写程序,计算并输出下面数列前n项(设n=50)的和。
1*2,-2*3,3*4,-4*5,……,(-1)^(n-1)*n*(n+1),……(其中,^表示幂运算)
#include "stdio.h "
void main()
{ int n,s=1;
int sum=0;
for(n=1;n<=50;n++)
{ sum=sum+s*n*(n+1); s=-s;}
printf("%d" ,sum);
}
29. 编写程序,计算并输出下面
数列前n (设n=45)项中所有奇数项的和。
1*2,2*3,3*4,4*5,……,n*(n+1),……
#include "stdio.h "
void main()
{ int n;
int sum=0;
for(n=1;n<=45;n=n+2)
sum=sum+n*(n+1);
printf("%d" ,sum);
}
30. 编写程序,计算下面数列前n项(设n=50)中奇数的和。结果取4位小数。
1/(1*2*3),1/(2*3*4),1/(3*4*5),……,1/(n(n+1)(n+2)),……
#include "stdio.h"
void main()
{ int n;
float sum=0;
for(n=1;n<=50;n=n+2)
sum=sum+1.0/(n*(n+1)*(n+2));
printf("%5.4f" ,sum);
}
31. 编写程序,求下面数列前50项的和。结果取4位小数。
1,1/(3*3),1/(5*5),1/7*7),……,1/(2n-1)*(2n-1),……
#include "stdio.h "
void main()
{ int n;
float sum=0;
for(n=1; n<=50; n++ )
sum=sum+1.0/((2*n-1)*(2*n-1));
printf("%5.4f" ,sum);
}
32. 编写程序,计算并输出如下数列前35项的和。
-1*2*3,2*3*4,-3*4*5,……,(-1)^n*(n*(n+1)*(n+2)),……
(其中,(-1)^n表示-1的n次方)
#include "stdio.h "
void main()
{ int n,s=-1;
int sum=0;
for(n=1;n<=35;n++)
{ sum=sum+s*n*(n+1)*(n+2); s=-s; }
printf("%d" ,sum);
}
33. 编写程序,计算并输出下面数列中前n(设n=8)项的和。结果取四位小数。
1/1!,1/2!,1/3!,1/4!,……,1/n!,……(其中,!表示求阶乘)
#include "stdio.h "
void main()
{ int n;
float sum=0,p=1;
for(n=1;n<=8;n++)
{ p=n*p; sum=sum+1.0/p; }
printf("%5.4f" ,sum);
}
34. 编写程序,计算并输出下列前35项的和,结果取4位小数。
1/2,2/3,3/4,4/5,5/6,6/7,7/8,……n/(n+1),……
#include "stdio.h "
void main()
{ int n;
float sum=0;
for(n=1;n<=35;n++)
sum=sum+1.0*n/(n+1);
printf("%5.4f" ,sum);
}
35. 编写程序,界面如下。点击“运行”按钮输出下列三角形(要求用双循环实现):〈 image111.gif>
A
BBB
CCCCC
DDDDDDD
#include "stdio.h"
void main()
{
int i,j,k;
for(i=0;i<=3;i++)
{
for(k=1;k<=3-i;k++)
printf(" ");
for(j=0;j<=2*i;j++)
printf("%c",'A'+i);
printf("\n");
}
}
36. 编写程序,界面如下。点击“运行“按钮以弹出对话框的形式输出下列三角形(要求用双循环实现):
ABCDE
ABCD
ABC
AB
A
#include "stdio.h"
void main()
{
int i,j,k;
for(i=0;i<=4;i++)
{ for(j=0;j<=4-i;j++)
printf("%c",'A'+j);
printf("\n");
}
}
37. 编写程序,界面如下。点击“执行”按钮在对话框下面输出下列三角形(要求用双循环实现):
AAAAAAA
BBBBB
CCC
D
#include "stdio.h"
void main()
{
int i,j,k;
for(i=0;i<=3;i++)
{
for(k=1;k<=i;k++)
printf(" ");
for(j=0;j<=6-2*i;j++)
printf("%c",'A'+i);
printf("\n");
}
}
38. 编写程序,界面如下。点击“运行”按钮在对话框游面输出下列三角形(要求用双循环实现)〈image127.gif> A
ABC
ABCDE
ABCDEFG
#include "stdio.h"
void main()
{
int i,j,k;
for(i=0;i<=3;i++)
{ for(j=0;j<=2*i;j++)
printf("%c",'A'+j);
printf("\n");
}
}
39. 编写程序,界面如下。点击“OK”按钮输出下列三角形(要求用双循环实现):
1234567
12345
123
1
#include "stdio.h"
void main()
{
int i,j,k;
for(i=0;i<=3;i++)
{
for(k=1;k<=i;k++)
printf(" ");
for(j=0;j<=6-2*i;j++)
printf("%c",'1'+j);
printf("\n");
}
}
40. 编写程序,建立一个有10个元素组成的一维数组(数据自定),然后从键盘输入一个数据,如果数组中有与输入数据相同的元素,则删除所有这样的元素,并且后面的元素依次前移。
要求:用可视化程序设计出如下界面,点击“确定”按钮输出运算结果。〈image049.gif>
#include "stdio.h"
void main()
{ int s[11]={1,2,3,2,4,2,5,7,8,9};
int k=0,i,x;
printf("input x:");
scanf("%d",&x);
for(i=0;i<=9;i++)
if(s[i]==x) k++; else s[i-k]=s[i];
for(i=0;i<10-k;i++)printf("%d ",s[i]);
}
41. 编写程序,建立一个有10个元素组成的一维组数(数据自定),然后从键盘输入一个数据,如果数据组中有与输入数据相同的元素,则删除所有这样的元素,后面的元素依次前移,否则将输入数据插入到数组的中间位置。要求:用可视化程序设计出如下界面,点击“确定”按纽,在另一个对话框中输出运算结果〈image049.gif>
#include "stdio.h"
void main()
{ int s[11]={1,2,3,2,4,2,5,7,8,9};
int k=0,i,x;
printf("input x:");
scanf("%d",&x);
for(i=0;i<=9;i++)
if(s[i]==x) k++; else s[i-k]=s[i];
if(k!=0)
{ for(i=0;i<=9-k;i++)
printf("%d ",s[i]);
printf("\n"); }
else
{for(i=9;i>=5;i--) s[i+1]=s[i];
s[i+1]=x;
for(i=0;i<=9+1;i++)printf("%d ",s[i]);
}
}
42. 编写程序,建立一个有10个元素组成的一维数组(数据自定),然后从键盘输入一个数据,如果数组中有与输入数据相同的元素,则删除所有这样的元素,后面的元素依次前移,否则将输入的数据添加到数组的末尾。
要求:用可视化程序设计出如下界面,点击“确定”按钮,在另一个对话框中输出运算结果。
#include "stdio.h"
void main()
{ int s[11]={1,2,3,2,4,2,5,7,8,9};
int k=0,i,x;
printf("input x:");
scanf("%d",&x);
for(i=0;i<=9;i++)
if(s[i]==x) k++; else s[i-k]=s[i];
if(k!=0)
{ for(i=0;i<=9-k;i++)
printf("%d ",s[i]);
printf("\n"); }
else
{ s[i]=x;
for(i=0;i<=9+1;i++) printf("%d ",s[i]);
printf("\n");
}
}
43. 编写一个处理二维数组的通用过程(函数或子程序),该过程可以对任意数值型二维数组求它最后一行和第一列中各元素平方根之和(即先求各元素的平方,然后再对该平方根求和,注意避免数组元素的重复计算)。已知两个数组A和B(数据附后),编写主程序针对这两个数组分别调用以上过程得到两个结果SA和SB,要求主程序最后输出(3*SA)/(5*SB)。(结果要求保留3位小数)
A 数组的数据如下:
33, 41, 53, 63
16, 32, 91, 70
42, 28, 42, 26
82, 22, 14, 56
B 数组的数据如下:
14, 12, 82, 33, 51
22, 61, 22, 12, 17
43, 12, 89, 20, 40
44. 设计如下所示的运行界面,A表示一个一维数组,要求按[确定]按钮后将该数组循环右移一位输出,用可视化编程实现。 〈image081.gif>
45. 写一个处理二维数组的通用过程(函数或子程序),该过程可以对具有n*n结构的数值型二维数组求它两条对角线上各元素平方根之和(即先求各元素的平方根,然后再对该平方根求和,注意避免数组元素的重复计算)。已知两个数组A和B(数据附后),编写主程序针对这两个数组分别调用以上过程得到两个结果SA和SB,要求主程序(7*SA)/(3*SB)。(结果要求保留3位小数)
A数组的数据如下:
21, 11, 13
56, 34, 69
24, 31, 23
B数组的数据如下:
14, 12, 82, 33
22, 61, 22, 12
43, 12, 89, 20
32, 76, 23, 15
46.设计如图所示的运行界面,点击“运行”按钮,完成如下功能:由程序随机产生一个“5×5的二维数组,并且使每个数组元素n为0-100之间的正整数,输出数组中所有元素的平均值。 〈image027.gif>
#include "stdio.h"
#include "stdlib.h"
void main()
{
int i,j,x,a[5][5],s[25];
int k,sum=0;float ave;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
while(x=rand())
if(x>0&&x<100)
{ a[i][j]=x;
sum=sum+a[i][j];
break;}
}
ave=sum/(5*5.0);
printf("ave=%f \n",ave);
}
47. 编写一个处理二维数组的通用过程(函数或子程序),该过程可以对任意数值型二维数组求它两列中各元素平方根之和(即先求各元素的平方根,然后再对该平方根求和)。已知两个数组A和B(数据附后),编写主程序针对这两个数组分别调用以上过程得到两个结果SA和SB,要求主程序最后输出(2*SA)/(3*SB)。(结果要求保留3位小数)
A数组的数据如下:
34, 12, 8, 3, 21
1, 6, 16, 18, 7
13, 2, 99, 10, 4
B数组的数据如下:
1, 21, 3
16, 43, 19
4, 31, 66
2, 22, 76
48. 编写程序,电脑自动生产一个二维数组A(N,N),(N取5),计算每一行元素值的和。
要求:用可视化程序设计出如下界面,点击“计算”按钮,输出结果。
〈image087.gif>例图:输出结果可以如下图所示(仅做示例)〈image089.gif〉
49. 设计如图所示的运行界面,点击“运行”按钮,完成如下功能: 由程序随机产生一个4×6的二维数组,并分别输出数组中的最大元素及其两个下标的位置。(注:小数点后保留2位有效数字)〈image035.gif>
#include "stdio.h"
#include "stdlib.h"
void main()
{
int i,j,x,a[4][6];
int r,w,max=0;
for(i=0;i<4;i++)
for(j=0;j<6;j++)
{ x=rand();
a[i][j]=x;
}
for(i=0;i<4;i++)
for(j=0;j<6;j++)
if(a[i][j]>max)
{ max=a[i][j]; r=i; w=j; }
printf("最大值:%d 行:%d 列:%d \n",max,r,w);
}
50. 设计如图所示的运行界面,点击“运行”按钮,完成如下功能: 由程序随机产生一个5×5的二维数组,并且使每个数组元素n为0—100之间的正整数,把小于所有元素平均值的数据存放到一个一维数组中并输出之。〈image029.gif>
#include "stdio.h"
#include "stdlib.h"
void main()
{
int i,j,x,a[5][5],s[25];
int k,sum=0,ave;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
while(x=rand())
if(x>0&&x<100)
{ a[i][j]=x;
sum=sum+a[i][j];
break;}
}
ave=sum/(5*5);
k=0;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(a[i][j]
#include "stdio.h"
#include "stdlib.h"
void main()
{
int i,j,x,max=0,a[5][5];
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
while(x=rand())
if(x>0&&x<=100)
{ a[i][j]=x;
break;}
}
for(i=2,j=0;j<5;j++)
if(a[i][j]>max) max=a[i][j];
printf("第三行元素最大值:%d\n",max);
}
52. 设计如图所示的运行界面,点击“运行”按钮,完成如下功能: 由程序随机产生一个5×5的二维数组,并且使每个数组元素n为0—100之间的正整数,输出第三行元素中的最大者。〈image017.gif>
53. 设计如图所示的运行界面,点击“运行”按钮,完成如下功能: 由程序随机产生一个6×6的二维数组,并输出数组中的最小元素及最小元素所在列的所有元素之积。(注:小数点后保留两位有效数字)
#include "stdio.h"
#include "stdlib.h"
void main()
{
int i,j,x,a[6][6];
int r,w,min=32767;
double s=1;
for(i=0;i<6;i++)
for(j=0;j<6;j++)
{ x=rand();
a[i][j]=x;
}
for(i=0;i<6;i++)
for(j=0;j<6;j++)
if(a[i][j]
55. 编写程序,界面如下:用循环和表达式生成下列数组,且在对话框下面输出该数组(或者用另外的对话框输出)。
2 3 4 5
6 7 8 9
10 11 12 13
56. 设计如图所示的运行界面,点击“运行”按钮,完成如下功能:由程序随机产生一个5×5的二维数组,并且使每个数组元素n为0——100之间的正整数,输出数组中所有元素的平均值。
#include "stdio.h"
#include "stdlib.h"
void main()
{
int i,j,x,a[5][5];
int sum=0,ave;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
while(x=rand())
if(x>0&&x<=100) {a[i][j]=x; break;}
}
for(i=0;i<5;i++)
for(j=0;j<5;j++)
sum=sum+a[i][j];
ave=sum/(5*5);
printf("ave=%d\n",ave);
}
57. 设计如下所示的运行界面,A表示一个一维数组,要求按[确定]按钮后将该数组循环右移一位输出,用可视化编程实现。
58. 已知在文本文件下载文件“20061.txt”右击,选择“目标另存为”)中共有500个记录,每个记录是一个用“xx.xx”格式表示的实数,编程求出文件中第16个记录的实数是多少。
#include "stdio.h"
void main()
{FILE *fp1;
int m=0;float x;
fp1=fopen("20061.txt","r");
while(!feof(fp1))
{fscanf(fp1,"%f",&x);m++;
if(m==16){ printf("%f\n" ,x);break;}
}
fclose(fp1);
}
59. 已知在文本文件下载文件“20061.txt” (右击,选择“目标另存为”)中共有600个记录,每个记录是一个用“xx.xx”格式表示的实数,编程求出文件中其值小于30的最大实数首次出现第几个记录。
#include "stdio.h"
void main()
{ FILE *fp1;
int n=0,m=0;float x,max=0;
fp1=fopen("20061.txt","r");
while(!feof(fp1))
{fscanf(fp1,"%f",&x);m++;
if(x>max && x<30) {max=x;n=m;}
}
printf("%d\n" ,n);
fclose(fp1);
}
60.已知在文本文件下载文件“20062.txt”(右击,选择“目标另存为”)中共有500个记录,每个记录是用以下格式表示的5项数据(各数据间以空格分开):
学号 姓名 机试成绩 笔试成绩 平时成绩
nnnnnnnnn cccccc nn nn nn
(说明:n表示整型;c表示字符型;n的个数表示数据位数,例如nn表示两位整数,c的个数表示字符位数)
求出前360人的平时成绩的平均成绩。
#include "stdio.h"
void main()
{ FILE *fp1;
int i,jcj,bcj,pcj,sum=0;long xh;
char xm[6];float ave;
fp1=fopen("20062.txt","r");
for(i=1;i<=360;i++)
{fscanf(fp1,"%ld%s%d%d%d",&xh,&xm,&jcj,&bcj,&pcj) ;
sum=sum+pcj;
}
ave=sum/360.0;
printf("%f\n" ,ave);
fclose(fp1);
本文档为【计算机二级C试题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。