[理学]浙江省二级C语言上机考试题库[理学]浙江省二级C语言上机考试题库
程序调试题 + 程序设计题(浙江省二级C语言上机考试题库) 1. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有
错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:运行时输入n,输出n的所有质数因子(如n=13860,则输出2、2、3、3、5、7、11)。 #include
void main()
{
int n,i; scanf("%d",&n);
/****** 1 ...
[理学]浙江省二级C语言上机考
试题
中考模拟试题doc幼小衔接 数学试题 下载云南高中历年会考数学试题下载N4真题下载党史题库下载
库
程序调试题 + 程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
题(浙江省二级C语言上机考试题库) 1. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有
错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:运行时输入n,输出n的所有质数因子(如n=13860,则输出2、2、3、3、5、7、11)。 #include
void main()
{
int n,i; scanf("%d",&n);
/****** 1 ******/
i=1; i=2
while(n>1)
if(n%i==0) { printf("%d\t",i); n/=i; }
else
/******** 2 *******/
n--; n++
}
2. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要
填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:输入的一个小写字母,将字母循环后移5个位置后输出,如‘a’变成‘f’,‘w’变
成‘b’。
#include
void main()
{
char c; c=getchar();
if(___________) c=c+5;
else if (c>='v' && c<='z') _________
putchar(c);
}
3. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要
填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:调用函数f用以求1元2次方程 x*x+5*x-2=0 的实根。
#include
#include
int f(float a,float b,float c,float *x1,float *x2)
{
if(b*b-4*a*c<0) return 1;
*x1=(-b+sqrt(b*b-4*a*c))/2/a;
*x2=(-b-sqrt(b*b-4*a*c))/2/a;
____;______
}
void main()
{
float u1,u2; float a=1,b=5,c=-2;
1
if( _______________ ) printf("实数范围内无解\n");
else printf("%.2f %.2f\n",u1,u2); }
4. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要
填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x,当x=1.7时
的值。
#include
float f(float,float*,int);
void main()
{
float b[5]={1.1,2.2,3.3,4.4,5.5};
printf("%f\n",f(1.7,b,5));
}
float f( _______1________ )
{
float y=a[0],t=1; int i;
for(i=1;i
#include
void main()
{
int n,s=0; scanf("%d",&n); n=fabs(n);
/******** 1 *******/
while(n>1){
s=s+n%10;
/******** 2 ******/
n=n%10;
}
printf("%d\n",s);
}
6. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有
错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。 #include
#include
void main()
{
char a[80]; int n[5]={0},i; gets(a);
for(i=0; a[i]!='\0'; i++)
2
/***** 1 *****/
switch(toupper(a[i]))
{
case 'a': n[0]++; break;
case 'e': n[1]++; break;
case 'i': n[2]++; break;
case 'o': n[3]++; break;
/***** 2 *****/
case 'U': n[4]++;
}
for(i=0;i<5;i++) printf("%d\n",n[i]); }
7. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要
填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:调用函数f,将1个整数首尾倒置,若程序输入12345,则输出54321;若程序输入-34567,
则输出-76543。
#include
#include
long f(long n)
{
long m,y=0; m=fabs(n);
while(m!=0){
y=y*10+m%10;
____1____
}
if(n>=0) return y;
else _____2_____
}
void main(){ printf("%ld\t",f(12345)); printf("%ld\n",f(-34567)); }
8. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要
填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:输入整数n(n>0),求m使得 2的m次方小于或等于n、2的m+1次方大于或等于
n。
#include
void main()
{
int m=0,t=1,n;
while( _____ 1 ________);
while(!(t<=n&&t*2>=n)){
_____ 2 _____
m++;
}
printf("%d\n",m);
}
9. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有
3
错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值: 3+33+333+3333+33333+333333
#include
void main()
{
int i,a,n; long t=0;
/********* 1 *******/
s=0;
scanf("%d%d",&a,&n);
for(i=1;i<=n;i++){
/******* 2 ******/
t=t*10+i;
s=s+t;
}
s=s*a;
printf("%ld\n",s);
}
10. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需
要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:函数f将数组循环左移k个元素,数组x[7]调用函数f后的输出结果为:4 5 6 7
1 2 3
#include
void f(int *a,int n,int k)
{
int i,j,t;
for(i=0;i
_______1______
void main(){ printf("%ld\n",f(30)); }
4
long f(int n)
{
if( ______2______ ) return 1;
else return f(n-1)+f(n-2);
}
12. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需
要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:输入m、n(要求输入数均大于0),输出它们的最大公约数。
#include
void main()
{
int m,n,k;
while(scanf("%d%d",&m,&n), _______1______ );
for( ____2____; n%k!=0||m%k!=0; k--);
printf("%d\n",k);
}
13. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需
要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:输出6,1000之间的完数(1个数的因子和等于其自身的数:6=1+2+3、28=1+2+4+7+14,
则6、28都是完数)。
#include
void main()
{
int i,j,s;
for(i=6;i<=1000;i++){
_____1_____
for(j=2;____2_____;j++) if(i%j==0) s+=j;
if(s==i) printf("%d\n",s);
}
}
14. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需
要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:输入1个整数后,输出该数的位数(若输入3214则输出4,输入-23156则输出5)。 #include
void main()
{
int n,k=0; scanf("%d",&n);
while( _____1_____ ){
k++;
_____2_____;
}
printf("%d\n",k);
}
15. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中
有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
5
该程序功能:输入m、n(要求输入数均大于0,且m>=n),输出它们的最小公倍数。 #include
void main()
{
int m,n,k;
/******** 1 *********/
while(scanf("%d%d",&m,&n),m<0 && n<0);
for(k=m; k%n!=0;)
/******** 2 ********/
k=k+n;
printf("%d\n",k);
}
16. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需
要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:调用函数f,将字符串中的所有字符逆序存放,然后输出。例如,输入字符串为"123456",
则程序的输出结果为"654321"。
#include
#include
void main(){ char s[60],*f(char*); gets(s); printf("%s\n",f(s)); }
___1__ f(char* x)
{
char t; int i,n;
_______2______
for(i=0;i
#include
#include
void main()
{
int n,i;
/***** 1 *****/
char str;
scanf("%d\n",&n); str=(char*)malloc(n); gets(str);
/***** 2 *****/
for(i=1;i='a'&& str[i]<='z') str[i]=str[i]-('a'-'A');
puts(str);
}
18. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需
6
要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:调用函数f,求a数组中最大值与b 数组中最小值之差。 #include
enum FLAG {positive=1,negative=-1}; float f(float *x,int n,enum FLAG flag) {
float y; int i;
____1____
for(i=1;iflag*y) y=x[i];
return y;
}
void main()
{
float a[6]={3,5,9,4,2.5,1},b[5]={3,-2,6,9,1};
printf("%.2f\n",f(a,6,positive)- ____2_____ );
}
19. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需
要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:对x=1,2,...,10,求f(x)=x*x-5*x+sin(x)的最大值。
#include
#include
#define f(x) x*x-5*x+sin(x)
void main()
{
int x; float max;
______1______
for(x=2;x<=10;x++) ______2______
printf("%f\n",max);
}
20. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中
有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标
值。
#include
#include
#include
void main()
{
int i,n;
/***** 1 *****/
struct axy { float x,y; } a;
scanf("%d",&n);
a=(float*) malloc(n*2*sizeof(float));
for(i=0;i
void main()
{
char x[80],y[26]; int i,j,ny=0; gets(x);
for(i=0;x[i]!='\0';i++)
if(x[i]>='A' && x[i]<='Z'){
for(j=0;j
#include
void main()
{
int n,s=0; scanf("%d",&n);
______ 1 ______
while(n!=0){
______ 2 ______
n=n/10;
}
printf("%d\n",s);
}
23. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中
有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:运行时输入10个数,然后分别输出其中的最大值、最小值。 #include
void main()
{
8
float x,max,min; int i;
/******** 1 *******/
for(i=0;i<=10;i++){
scanf("%f",&x);
/******* 2 ********/
if(i=1) { max=x;min=x;}
if(x>max) max=x;
if(x
#include
void main()
{
float x,eps,s=1,t=1,i=1;
scanf("%f%f",&x,&eps);
do{
/***** 1 *****/
t=-t*x/++i;
s+=t;
/***** 2 *****/
}while(fabs(t)>=eps)
printf("%f\n",s);
}
25. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需
要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:调用函数f,求二维数组a中全体元素之和。 #include
float f( _______1_______ ) {
float y=0; int i,j;
for(i=0;i
void swap(______1______)
{ /*交换两个数的位置*/
int temp;
temp = *pa; *pa = *pb; *pb = temp; }
void main()
{
int a,b,c,temp;
scanf("%d%d%d",&a,&b,&c);
if(a>b) swap(&a,&b);
if(b>c) swap(&b,&c);
if(______2______) swap(&a,&b);
printf("%d,%d,%d",a,b,c); }
27. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需
要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:调用函数f,从字符串中删除所有的数字字符。
#include
#include
#include
void f(char *s)
{
int i=0;
while(s[i]!='\0')
if(isdigit(s[i])) ____1____(s+i,s+i+1);
___2___ i++;
}
void main(){ char str[80]; gets(str); f(str); puts(str); }
28. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需
要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。 #include
void Dec2Bin(int m)
{
int bin[32],j;
for(j=0;m!=0;j++)
{
bin[j]= ______1______;
m=m/2;
10
}
for(;j!=0;j--) printf("%d", ______2______ );
}
void main(){ int n; scanf("%d",&n); Dec2Bin(n); }
29. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中
有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:将两个字符串连接起来。
#include
void main()
{
char s1[80],s2[40];
int i=0,j=0;
printf("\nInput the first string:"); scanf("%s",s1);
printf("\nInput the second string:"); scanf("%s",s2);
while (s1[i] !='\0')
/****** 1 ******/
i+1;
while (s2[j] !='\0')
/****** 2 ******/
s1[++i]=s2[++j]; /* 拼接字符到s1 */
s1[i] ='\0';
printf("\nNew string: %s",s1); }
30. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需
要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形
式输出。例如:输入十进制数79,将输出十六进制4f。
# include
# include
char trans(int x)
{
if(x<10) return '0'+x;
else _______1________
}
int DtoH(int n,char *str)
{
int i=0;
while(n!=0){
________2________
n/=16;i++;
}
return i-1;
}
void main()
{
11
int i,k,n; char *str; scanf("%d",&n);
k=DtoH(n,str);
for (i=0;i<=k;i++) printf("%c",str[k-i]); }
31. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中
有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:用递归法将一个六位整数n转换成字符串,例如输入123456,应输出字符串"123456"。 #include
void itoa(long i,char *s)
{
if(i==0) return;
/****** 1 ******/
*s='1'+i%10;
itoa(i/10,s-1);
}
void main()
{
long n; char str[7]=""; scanf("%ld",&n);
/****** 2 ******/
itoa(n,str+6);
printf("%s",str);
}
32. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中
有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:将一个char型数的高4位和低4位分离,分别输出,如22(二进制:00010110)输出为
1和6。
#include
void main()
{
char a,b1,b2,c; scanf("%d",&a);
/****** 1 ******/
b1=a<<4; /*b1存放高4位*/
c=~(~0<<4);
/****** 2 ******/
b2=a|c; /*b2存放低4位*/
printf("%d,%d",b1,b2);
}
33. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需
要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:调用find函数在输入的字符串中查找是否出现"the"这个单词。如果查到返回出现的
次数;如果未找到返回0。
#include
int find(char *str)
{
char *fstr="the"; int i=0,j,n=0;
12
while (str[i]!='\0'){
for(______1______)
if (str[j+i]!=fstr[j]) break;
if(______2______) n++;
i++;
}
return n;
}
void main(){ char a[80]; gets(a); printf("%d",find(a)); }
34. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“***** N *****”的下一行中有
错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。例如:输入
"abc123+xyz.5",应输出"abcxyz"。
#include
#include
void main()
{
char str[256]; int i,j,k=0,n;
gets(str); n=strlen(str);
for(i=0;i'z'){
/********2********/
str[n]=str[i]; n++;
}
str[k]='\0';
printf("%s\n",str);
}
35. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“***** N *****”的下一行中有
错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字符串
中的字符按逆序连接到字符串t后面。例如:输入"ABCD",则字符串t为"ABCDDCBA"。 # include
# include
void fun(char *s,char *t)
{
int i,sl; sl=strlen(s);
for(i=0;i
#define N 10
void main()
{
int i,j,min,temp; int a[N]={5,4,3,2,1,9,8,7,6,0};
printf("\nThe array is:\n"); /* 输出数组元素 */
for (i=0;i
struct STUDENT{ char name[16]; int math; int english; int computer; int average; };
void GetAverage(struct STUDENT *pst) /* 计算平均成绩 */
{
int sum=0;
sum = ______1______;
pst->average = sum/3;
}
void main()
{
int i;
struct STUDENT st[4]={{"Jessica",98,95,90},{"Mike",80,80,90},
{"Linda",87,76,70},{"Peter",90,100,99}};
for(i=0;i<4;i++)
{
GetAverage(______2______);
}
printf("Name\tMath\tEnglish\tCompu\tAverage\n");
for(i=0;i<4;i++)
{
14
printf("%s\t%d\t%d\t%d\t%d\n",st[i].name,st[i].math,st[i].english,
st[i].computer,st[i].average);
}
}
38. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需
要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:输入数组x[7],调用函数f,去除数组中的负数,输出结果为:1 3 4 6 #include
void f(int *a,int *m)
{
int i,j;
for(i=0;i<*m;i++)
if(a[i]<0){
for(j=i--;j<*m-1;j++) a[j]=a[j+1];
_____1_____;
}
}
void main()
{
int i,n=7,x[7]={1,-2,3,4,-5,6,-7};
_______2_______;
for(i=0;i
#include
void main()
{
int i,a,b,c;
for(i=100;i<=999;i++){
a=i/100;
_______1_______
c=i%10;
if(_______2_______) printf("%d is a Armstrong number!\n",i);
}
}
40. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需
要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:将字符串s中所有的字符'c'删除。
#include
void main()
15
{
char s[80]; int i,j;
gets(s);
for(i=j=0;______1______;i++)
if(s[i] != 'c')
{
s[j]=s[i];
______2______
}
s[j]='\0';
puts(s);
}
41. 在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需
要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:分别统计字符串中英文字母、数字和其他字符出现的次数。 #include
#include
void main()
{
char a[80]; int n[3]={0},i;
gets(a);
________1________
{
if(tolower(a[i])>='a' && tolower(a[i])<='z') /*统计字母个数*/
n[0]++;
else if(________2________) /*统计数字个数*/
n[1]++;
else
n[2]++;
}
for(i=0;i<3;i++) printf("%d\n",n[i]);
}
16
答案
八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案
:
1. i=2; i++;
2. c<'v' c=c-'v'+'a';
3. return 0; f(a,b,c,&u1,&u2)
4. float x,float a[],int n return y;
5. while(n!=0) n=n/10;
6. switch(tolower(a[i])) case 'u': n[4]++; 7. m=m/10; return -y;
8. !scanf("%d",&n) t=t*2;
9. long s=0; t=t*10+1;
10. t=a[0] j=1;j=eps);
25. float *x[],int m,int n a[i]
26. int* pa,int* pb a>b
27. strcpy else
28. m%2 bin[j-1]
29. i++; s1[i++]=s2[j++];
30. return 'a'+x-10; *str++=trans(n%16); 31. *s='0'+i%10; itoa(n,str+5);
32. b1=a>>4; b2=a&c;
33. j=0;j<3;j++ j==3
34. if (tolower(str[i])>='a' && tolower(str[i])<='z') str[k]=str[i]; k++;
35. t[sl+i]=s[sl-i-1]; t[sl+i]='\0';
36. if(a[min]>a[j]) min=j; temp=a[min]; a[min]=a[i]; a[i]=temp;
37. pst->math+pst->english+pst->computer &st[i] 38. *m-=1 f(x,&n)
39. b=(i-a*100)/10; pow(a,3)+pow(b,3)+pow(c,3)==i 40. s[i]!='\0' j++;
41. for(i=0;a[i]!='\0';i++) a[i]>='0' && a[i]<='9'
17
程序设计题
1. 设计程序:z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x,y取值为区间[0,10]的整数,找出使z取最小
值的x1,y1,并将x1、y1以格式"%d,%d"写入到考生目录中Paper子目录下的新建文件design.dat中。
#include
#include
void main()
{
FILE *p;
int x,y,x1,y1; float z,z1;
x1=0; y1=0;
z1=10*cos(x1-4)+5*sin(y1-2);
for(x=0;x<=10;x++)
for(y=0;y<=10;y++){
z=10*cos(x-4)+5*sin(y-2);
if(z1>z){ x1=x; y1=y; z1=z; }
}
p=fopen("design.dat","w");
fprintf(p,"%d,%d",x1,y1);
fclose(p);
}
2. 设计程序:计算27的小于1.00001的2n次方根(27的2n-2次方根不小于1.00001),将n以格
式"%d"写到考生目录中Paper子目录下的新建文件design.dat中。 #include
#include
void main()
{
FILE *p; float x=27; int n=0;
p=fopen("design.dat","w");
do{
n++;
}while(pow(x,1.0/(2*n))>=1.00001 || pow(x,1.0/(2*n-2))<1.00001);
fprintf(p,"%d",n);
fclose(p);
}
3. 设计程序:计算多项式a0+a1*x+a2*x*x+a3*x*x*x+...的值,并将其值以格式"%f"写到考生目录
中Paper子目录下的新建文件design.dat中。
#include
#include
void main()
{
FILE *p; int i; float x=1.279,t=1,y=0;
float a[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};
for(i=0;i<10;i++){
18
y+=a[i]*t;
t*=x;
}
p=fopen("design.dat","w");
fprintf(p,"%f",y);
fclose(p);
}
4. 设计程序:在正整数中找出1个最小的、被3、5、7、9除,余数分别为1、3、5、7的数,将
该数以格式"%d"写到考生目录中Paper子目录下的新建文件design.dat中。 #include
#include
void main()
{
FILE *p;
int n=1;
while(n%3!=1 || n%5!=3 || n%7!=5 || n%9!=7) n++;
p=fopen("design.dat","w");
fprintf(p,"%d",n);
fclose(p);
}
5. 设计程序:在6至5000内找出所有的亲密数对,并将每对亲密数用fprintf(p,"%6d,%6d\n",a,b);
语句写到考生目录中Paper子目录下的新建文件design.dat中。
说明:若a、b为1对亲密数,则a的因子和等于b、b的因子和等于a、且a不等于b。如:220、
284是1对亲密数,284、220也是1对亲密数。
#include
void main()
{
FILE *p; int a,b,c,k;
p=fopen("design.dat","w");
for(a=6;a<=5000;a++){
c=1;
for(k=2;k
19
#include
void main()
{
FILE *p; char *s="634,.%@\\w|SQ2",c;
int i,j,k,n=strlen(s);
p=fopen("design.dat","w");
for(i=0;is[j]) k=j;
if(k!=i){ c=s[i]; s[i]=s[k]; s[k]=c; }
}
for(i=0;i
void main()
{
FILE *p; int n=0,a,b,c;
p=fopen("design.dat","w");
for(a=1;a<=100;a++)
for(b=1;b<=100;b++)
for(c=1;c<=100;c++)
if(c/(a*a+b*b)==1) n++;
fprintf(p,"%d",n);
fclose(p);
}
8. 设计程序:将满足条件pow(1.05,n)<1e6
#include
void main()
{
float y=1.05; int n=1; FILE *p;
p=fopen("design.dat","w");
while(pow(1.05,n)>=1e6 || pow(1.05,n+1)<=1e6) n++;
fprintf(p,"%d,%.0f",n,pow(1.05,n));
fclose(p);
}
9. 设计程序:计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+„„的值,并将其值以格式
"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。
#include
20
#include
void main()
{
FILE *p;
int i; float x=2.345,t=1.0,y=0.0;
float a[10]={1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9};
p=fopen("design.dat","w");
y=a[0];
for(i=1;i<10;i++){
t*=x;
y+=a[i]*sin(t);
}
fprintf(p,"%.6f",y);
fclose(p);
}
10. 设计程序:z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间[1,6]的整数,找出使z取最小值的
x1、y1,并将x1、y1以格式"%d,%d"写入到考生目录中Paper子目录下的新建文件design.dat中。 #include
void main()
{
FILE *p; float f(float x,float y),min;
int x,y,x1,y1;
p=fopen("design.dat","w");
x1=1; y1=1;
min=f(x1,y1);
for(x=1;x<=6;x++)
for(y=1;y<=6;y++){
if(min>f(x,y)){ min=f(x,y); x1=x; y1=y; }
}
fprintf(p,"%d,%d",x1,y1);
fclose(p);
}
float f(float u,float v)
{
return (3.14*u-v)/(u+v);
}
11. 设计程序:在6至10000内找出所有的合数,并顺序将每个合数用语句“fprintf(p,"%6d",n)”
写入到考生目录中Paper子目录下的新建文件design.dat中。
说明:某数等于其诸因子之和则该数为合数,如6=1+2+3,28=1+2+4+7+14则6、28就是合数。 #include
void main()
{
FILE *p; int n,i,s;
p=fopen("design.dat","w");
for(n=6;n<=10000;n++){
21
s=1;
for(i=2;i
#include
void main()
{
float a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};
FILE *p; float x; int i,j;
for(i=0;i<3;i++){
x=a[i][0];
for(j=1;j<3;j++) if(fabs(x)
#include
#define len(x1,y1,x2,y2) sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))
void main()
{
FILE *p; int i,j; float c,minc;
float x[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};
float y[]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33};
minc=len(x[0],y[0],x[1],y[1]);
p=fopen("design.dat","w");
for(i=0;ic) minc=c;
}
fprintf(p,"%f",minc);
fclose(p);
22
}
14. 设计程序:计算表达式1+2!+3!+...+12!的值,并将计算结果以格式"%ld"写入到考生目录中
Paper子目录下的新建文件design.dat中。
#include
void main()
{
FILE *p; long s=1,k=1; int i;
p=fopen("design.dat","w");
for(i=2;i<=12;i++){
k*=i;
s+=k;
}
fprintf(p,"%ld",s);
fclose(p);
}
15. 设计程序:寻找并输出11至999之间的数m,它满足m、m*m、m*m*m均为回文数。所谓
回文数是指各位数字左右对称,例如121、676、94249等。满足上述条件的数如m=11,m^2=121,m^3=1331
皆为回文数。请编制函数int JSValue(long m)实现此功能,如果是回文数,则函数返回1,反之则返回0。
最后把结果输出到考生目录中Paper子目录下的新建文件design.dat中。 #include
#include
#include
int JSValue(long m)
{
char s[15],n; int i;
ltoa(m,s,10); n=strlen(s);
for(i=0;i
#include
void main()
23
{
FILE *p; float s,x[5]={-1.5,2.1,6.3,3.2,-0.7};
float y[5]={7,5.1,3.2,4.5,7.6}; int i,j;
p=fopen("design.dat","w");
s=0;
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
s+=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
fprintf(p,"%.4f",s);
fclose(p);
}
17. 设计程序:对x=1,2,...,10,求函数f(x)=x-10*cos(x)-5*sin(x)的最大值,并将该数以格式"%.3f"
写到考生目录中Paper子目录下的新建文件design.dat中。
#include
#include
void main()
{
FILE *p; float f(float),max,x;
p=fopen("design.dat","w");
max=f(1); x=2;
while(x<=10){
if(max
void main()
{
FILE *p; int s=0,i=0;
char *a="r235%^%34cdDW,.";
p=fopen("design.dat","w");
while(a[i]!='\0'){
s+=a[i];
i++;
}
fprintf(p,"%d",s);
fclose(p);
}
19. 设计程序:数组元素x[i]、y[i]表示平面上某点坐标,统计10个点中同处在圆
(x-1)*(x-1)+(y+0.5)*(y+0.5)=25与(x-0.5)*(x-0.5)+y*y=36内的点数k,并将变量k的值以格式"%d"写到
24
考生目录中Paper子目录下的新建文件design.dat中。
#include
#include
void main()
{
FILE *p; int i,k=0;
float x[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};
float y[]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33};
p=fopen("design.dat","w");
for(i=0;i<10;i++)
if(pow((x[i]-1),2)+pow((y[i]+0.5),2)<=25
&& pow((x[i]-0.5),2)+pow(y[i],2)<=36) k++;
fprintf(p,"%d",k);
fclose(p);
}
20. 设计程序:计算数列1,-1/3!,1/5!,-1/7!,1/9!,...的和至某项的绝对值小于1e-5时为止(该项不累
加),将求和的结果以格式"%.6"写到考生目录中Paper子目录下的新建文件design.dat中。 #include
#include
void main()
{
FILE *p; float s=1,t=1,i=3;
p=fopen("design.dat","w");
t=-t/((i-1)*i);
while(fabs(t)>=1e-5){
s+=t; i=i+2;
t=-t/((i-1)*i);
}
fprintf(p,"%.6f",s);
fclose(p);
}
21. 设计程序:计算多项式a0-a1*x+a2*x*x/2!-a3*x*x*x/3!+...的值,并将其以格式"%f"写到考生目
录中Paper子目录下的新建文件design.dat中。
#include
#include
void main()
{
FILE *p; int i; float x=1.279,t,y;
float a[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};
p=fopen("design.dat","w");
t=1.0; y=a[0];
for(i=1;i<10;i++){
t=-t*x/i;
y+=a[i]*t;
}
25
fprintf(p,"%f",y);
fclose(p);
}
22. 设计程序:在数组x的10个数中求平均值v,找出与v相差最小的数组元素并将其以格式"%.5f"
写到考生目录中Paper子目录下的新建文件design.dat中。 #include
#include
void main()
{
FILE *p; int i,k=0;
float x[10]={7.23,-1.5,5.24,2.1,-12.45,6.3,-5,3.2,-0.7,9.81},d,v=0;
for(i=0;i<10;i++) v+=x[i]; v=v/10; d=fabs(x[0]-v);
p=fopen("design.dat","w");
for(i=1;i<10;i++){
if(d>fabs(x[i]-v)){
d=fabs(x[i]-v);
k=i;
}
}
fprintf(p,"%.5f",x[k]);
fclose(p);
}
23. 设计程序:计算2的平方根、3的平方根、...、10的平方根之和,要求计算结果具有小数点后
10位有效位数,并以格式"%.10f\n"写到考生目录中Paper子目录下的新建文件design.dat中。
#include
#include
void main()
{
FILE *p;
int i; double s=0.0;
p=fopen("design.dat","w");
for(i=2;i<=10;i++) s+=sqrt(i);
fprintf(p,"%.10f\n",s);
fclose(p);
}
24. 设计程序:统计满足条件x*x+y*y+z*z==2000的所有解的个数,并将统计结果以格式"%d"写
入到考生目录中Paper子目录下的新建文件design.dat中。 说明:若a、b、c是1个解,则a、c、b也是1个解,等等。 #include
void main()
{
FILE *p; int x,y,z,k=0;
p=fopen("design.dat","w");
for(x=-45;x<=45;x++)
for(y=-45;y<=45;y++)
26
for(z=-45;z<=45;z++) if(x*x+y*y+z*z==2000) k++;
fprintf(p,"%d",k);
fclose(p);
}
25. 设计程序:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数
字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这
些四位自然数的个数cnt及这些数字的和sum到考生目录中Paper子目录下的新建文件design.dat中。 #include
void main()
{
FILE *p;
int cnt,sum;
int i,b1,b10,b100,b1000;
p=fopen("design.dat","w");
cnt=sum=0;
for(i=1000;i<5000;i++){
b1=i%10; b10=i/10%10; b100=i/100%10; b1000=i/1000;
if(b1000+b100==b10+b1 && b1000+b100==(b1-b1000)*10){
cnt++;
sum+=i;
}
}
fprintf(p,"%d,%d",cnt,sum);
fclose(p);
}
26. 设计程序:数列第1项为81,此后各项均为它前1项的正平方根,统计该数列前30项之和,
并以格式"%.3f"写到考生目录中Paper子目录下的新建文件design.dat中。
#include
#include
void main()
{
FILE *p; float s=0,a=81,i;
p=fopen("design.dat","w");
i=1;
while(i<=30){
s+=a;
a=sqrt(a);
i++;
}
fprintf(p,"%.3f",s);
fclose(p);
}
27. 设计程序:将数组a的每1行均除以该行上的主对角元素(第1行同除以a[0][0],第2行同
除以a[1][1],...),然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中。 #include
27
void main()
{
float a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};
FILE *p;
int i,j; float t;
p=fopen("design.dat","w");
for(i=0;i<3;i++){
t=a[i][i];
for(j=0;j<3;j++) a[i][j]/=t;
}
for(i=0;i<3;i++){
for(j=0;j<3;j++) fprintf(p,"%10.6f",a[i][j]);
fprintf(p,"\n");
}
fclose(p);
}
28. 设计程序:计算字符串s中每个字符的权重值,所谓权重值就是字符在字符串中的位置值与
该字符的ASCII码值的乘积。位置值从1开始依此递增。将每个字符的权重值,以格式"%d "写入到考
生目录中Paper子目录下的新建文件design.dat中。
#include
#include
void main()
{
FILE *p; int i,w;
char *s="we45*&y3r#$1";
p=fopen("design.dat","w");
i=0;
while(s[i]!='\0'){
w=(i+1)*s[i];
fprintf(p,"%d ",w);
i++;
}
fclose(p);
}
29. 设计程序:求斐波那契(Fibonacci)数列中大于t的最小的一个数,结果由函数JSValue返回,
其中斐波那契数列F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(N-1)+F(n-2)。分别计算当t=1000和t=3000
时的结果,将计算结果输出到考生目录中Paper子目录下的新建文件design.dat中。 #include
int JSValue(int t)
{
int a=0,b=1,temp;
while(a<=t){
temp=b;
b+=a;
a=temp;
28
}
return a;
}
void main()
{
FILE *p;
p=fopen("design.dat","w");
fprintf(p,"%d,%d",JSValue(1000),JSValue(3000));
fclose(p);
}
30. 设计程序:数列各项为1,1,2,3,5,8,13,21,...,求其前40项之和,并将求和的结果以格式"%d"
写到考生目录中Paper子目录下的新建文件design.dat中。
#include
void main()
{
FILE *p; long s=0,i,a[40];
p=fopen("design.dat","w");
a[0]=1; a[1]=1;
s+=a[0]+a[1];
for(i=2;i<40;i++){
a[i]=a[i-1]+a[i-2];
s+=a[i];
}
fprintf(p,"%d",s);
fclose(p);
}
31. 设计程序:x[i],y[i]分别表示平面上一个点的坐标,求下列10个点与点(1.0,1.0)的距离的总和,
并将结果以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。 #include
#include
void main()
{
FILE *p;
int i;
float x[10]={-1.5,2.1,6.3,3.2,-0.7,7.0,5.1,3.2,4.5,7.6};
float y[10]={3.5,7.6,8.1,4.5,6.0,1.1,1.2,2.1,3.3,4.4};
float s=0.0;
p=fopen("design.dat","w");
for(i=0;i<10;i++) s+=sqrt(pow((x[i]-1.0),2)+pow((y[i]-1.0),2));
fprintf(p,"%.6f",s);
fclose(p);
}
32. 设计程序:一个球从100米高度落下,每次落地后都反弹至原高度一半位置,再落下。计算
出第10次落地时小球共经过的距离,并将结果以格式"%.0f"写入到考生目录中Paper子目录下的新建文
件design.dat中。
29
#include void main()
{
FILE *fp;
float s=100,h=100;
int i;
fp=fopen("design.dat","w");
for(i=1;i<=9;i++){
s+=h;
h/=2;
}
fprintf(fp,"%.0f",s);
fclose(fp);
}
33. 设计程序:利用公式π/4?1-1/3+1/5-1/7+„„公式计算π的近似值,直到某一项的绝对值小
于1e-6为止(π/4的结果不包含此项)。将结果以格式"%.6f"写入到考生目录中Paper子目录下的新建文
件design.dat中。
#include #include
void main()
{
FILE *fp;
float n=1,t=1,pi=0;
int i;
fp=fopen("design.dat","w");
i=1;
while(fabs(n)>=1e-6){
pi+=n; i+=2;
t=-t; n=t/i;
}
pi*=4;
fprintf(fp,"%.6f",pi);
fclose(fp);
}
34. 设计程序:某公司1999年年产量11.5万件,生产能力每年提高9.8%,求出产量能超过x万
件的年份,结果由函数Year返回。计算当x=20和x=30时的结果,将计算结果输出到考生目录中Paper
子目录下的新建文件design.dat中。
#include
int Year(int x)
{
int p=11.5,y=1999;
while(p<=x){
p=p*(1+0.098);
y++;
}
30
return y;
}
void main()
{
FILE *p;
p=fopen("design.dat","w");
fprintf(p,"%d,%d",Year(20),Year(30));
fclose(p);
}
35. 设计程序:找出1000至9999之间符合条件的自然数。条件是:若一个四位数的千位数字上
的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等
于个位数字上的值,并且此四位数是偶数,统计出满足此条件的自然数的个数cnt,以格式"%d"写入到
考生目录中Paper子目录下的新建文件design.dat中。
#include
void main()
{
FILE *p;
int cnt=0;
int i,a,b,c,d;
p=fopen("design.dat","w");
for(i=1000;i<=9999;i++){
a=i/1000;
b=(i-a*1000)/100;
c=(i-a*1000-b*100)/10;
d=i%10;
if(a%2!=0 || b%2!=0 || c%2!=0 || d%2!=0) continue;
if(a<=b && b<=c && c<=d) cnt++;
}
fprintf(p,"%d",cnt);
fclose(p);
}
36. 设计程序:有数列:2/1,3/2,5/3,8/5,13/8,21/13,„„求出数列的前40项的和。将结果以格式"%.6f"
写入到考生目录中Paper子目录下的新建文件design.dat中。
#include
void main()
{
FILE *p;
int i;
float f1=1.0,f2=2.0,t1=2.0,t2=3.0,s;
float f,t;
s=t1/f1+t2/f2;
p=fopen("design.dat","w");
for(i=3;i<=40;i++){
t=f2; f2=f1+f2;
f1=t;
31
t=t2; t2=t1+t2;
t1=t;
s=s+t2/f2;
}
fprintf(p,"%.6f",s);
fclose(p);
}
37. 设计程序:求解百鸡问题。
已知公鸡每只5元、母鸡每只3元、小鸡1元3只。求出用100元买100只鸡的解。将得到的解按
公鸡、母鸡和小鸡的只数以"%d,%d,%d\n"的格式写入到考生目录中Paper子目录下的新建文件design.dat
中。
#include
void main()
{
FILE *p;
int cock,hen,chick;
p=fopen("design.dat","w");
for(cock=0;cock<=20;cock++)
for(hen=0;hen<=33;hen++)
for(chick=0;chick<=99;chick+=3)
if(cock*5+hen*3+chick/3==100 && cock+hen+chick==100)
fprintf(p,"%d,%d,%d\n",cock,hen,chick);
fclose(p);
}
38. 设计程序:求斐波那契(Fibonacci)数列中其前40项之和,其中斐波那契数列的定义为:后一
项为前两项之和,并将求和的结果以格式"%d"写到考生目录中Paper子目录下的新建文件design.dat中。
#include
void main()
{
FILE *p; long s=0,i,a[40];
p=fopen("design.dat","w");
a[0]=0; a[1]=1;
s=a[0]+a[1];
for(i=2;i<40;i++){
a[i]=a[i-1]+a[i-2];
s=s+a[i];
}
fprintf(p,"%d",s);
fclose(p);
}
39. 设计程序:在整数数组a中找出偶数放到b数组中,对b数组按从小到大的顺序进行排序后
以格式"%3d"每行3个数写到考生目录中Paper子目录下的新建文件design.dat中。 #include
void main()
{
32
FILE *p;
int i,j,temp,n=0;
int a[10]={7,6,20,3,14,88,53,62,10,29},b[10];
p=fopen("design.dat","w");
for(i=0,j=0;i<10;i++)
if(a[i]%2==0){
b[j]=a[i];
j++;
n++;
}
for(i=0;ib[j+1]){
temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;
}
for(j=0;j
本文档为【[理学]浙江省二级C语言上机考试题库】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。