浙江省二级C语言上机考试题库

更新时间:2024-02-02 03:33:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

程序调试题 + 程序设计题(浙江省二级C语言上机考试题库)

1. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:运行时输入n,输出n的所有质数因子(如n=13860,则输出2、2、3、3、5、7、11)。 #include void main() { int n,i;

scanf(\ /****** 1 ******/ i=1; i=2 while(n>1); if(n%i==0)

{ printf(\ else

/******** 2 *******/ n--; i++ }

1. i=2; i++;

2. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入的一个小写字母,将字母循环后移5个位置后输出,如‘a’变成‘f’,‘w’变成‘b’。

#include void main() {

char c;

c=getchar();

if(______N_____)

c=c+5;

else if (c>='v' && c<='z')

_____N____ putchar(c); }

2. c<'v' c=c-'v'+'a'

3. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:调用函数f用以求1元2次方程 x*x+5*x-2=0 的实根。 #include #include

int f(float a,float b,float c,float *x1,float *x2)

1

{ 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; if( _______________ ) printf(\实数范围内无解\\n\ else printf(\ %.2f\\n\}

3. return 0; f(a,b,c,&u1,&u2)

4. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:调用函数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(\}

float f( _______1________ ) { float y=a[0],t=1; int i; for(i=1;i

t=t*x; y=y+a[i]*t; } _____2_____ }

4. float x,float a[ ],int n return y;

5. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:运行时输入n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。 #include #include void main() { int n,s=0; scanf(\

2

/******** 1 *******/ while(n>1)

{

s=s+n;

/******** 2 ******/ n=n; }

printf(\}

5. while(n!=0) n=n/10;

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++) /***** 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(\}

6. switch(tolower(a[i])) case 'u': n[4]++;

7. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:调用函数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;

3

____1____ } if(n>=0) return y; else _____2_____ }

void main(){ printf(\7. m=m/10; return -y;

8. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入整数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(\}

8. scanf(\ t=t*2;

9. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值: 3+33+333+3333+33333+333333 #include void main() { int i,a,n; long t=0;

/********* 1 *******/ s=0;

scanf(\ for(i=1;i<=n;i++){ /******* 2 ******/ t=t*10+i; s=s+t; }

s=s*a;

printf(\}

9. long s=0; t=t*10+1;

4

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

void main() { int i,x[7]={1,2,3,4,5,6,7}; f(x,7,3); for(i=0;i<7;i++) printf(\ printf(\}

10. t=a[0] j=1;j

11. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\N ____\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:数列的第1、2项均为1,此后各项值均为该项前二项之和。计算数列第30项的值。 #include _______1______

void main(){ printf(\long f(int n) {

if( ______2______ ) return 1; else return f(n-1)+f(n-2); }

11. long f(int); n<=2

12. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\N ____\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入m、n(要求输入数均大于0),输出它们的最大公约数。 #include void main() { int m,n,k;

5

while(scanf(\ for( ____2____; n%k!=0||m%k!=0; k--); printf(\}

12. m<=0 || n<=0 k=m

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(\ } }

13. s=1; j

14. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\N ____\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入1个整数后,输出该数的位数(若输入3214则输出4,输入-23156则输出5)。 #include void main() { int n,k=0; scanf(\ while( _____1_____ ){ k++;

_____2_____; }

printf(\}

14. n!=0 n=n/10

15. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入m、n(要求输入数均大于0,且m>=n),输出它们的最小公倍数。 #include void main() { int m,n,k;

/******** 1 *********/

6

while(scanf(\ for(k=m; k%n!=0;) /******** 2 ********/ k=k+n;

printf(\}

15. while(scanf(\ k=k+m;

16. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\N ____\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:调用函数f,将字符串中的所有字符逆序存放,然后输出。例如,输入字符串为\,则程序的输出结果为\。

#include #include

void main(){ char s[60],*f(char*); gets(s); printf(\___1__ f(char* x) { char t; int i,n; _______2______

for(i=0;i

16. char* n=strlen(x);

17. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。

#include #include #include void main() { int n,i; /***** 1 *****/ char str; scanf(\ str=(char*)malloc(n); gets(str); /***** 2 *****/ for(i=1;i='a'&& str[i]<='z') str[i]=str[i]-('a'-'A'); puts(str); }

17. char* str; for(i=0;i

18. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\N ____\是根据程序功能需

7

要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:调用函数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(\}

18. y=x[0]; f(b,5,negative)

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(\}

19. max=f(1); if(max

20. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。

#include #include #include void main() { int i,n; /***** 1 *****/ struct axy { float x,y; } a;

8

scanf(\ a=(float*) malloc(n*2*sizeof(float)); for(i=0;i

20. struct axy { float x,y; } *a; scanf(\

21. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入1个字符串,按字母出现次序输出其中所出现过的大写英文字母。如运行时输入字符串\,应输出\。

#include 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

21. if(y[j]==x[i]) break; for(i=0; i

22. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\N ____\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。 #include #include void main() { int n,s=0; scanf(\ ______ 1 ______ while(n!=0){ ______ 2 ______ n=n/10; }

9

printf(\}

22. n=abs(n); s=s+n;

23. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:运行时输入10个数,然后分别输出其中的最大值、最小值。 #include void main() { float x,max,min; int i; /******** 1 *******/ for(i=0;i<=10;i++){ scanf(\

/******* 2 ********/ if(i=1) { max=x;min=x;} if(x>max) max=x; if(x

printf(\}

23. for(i=1;i<=10;i++){ if(i==1) { max=x;min=x;}

24. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入x和正数eps,计算多项式1-x+x*x/2!-x*x*x/3!+...的和直到末项的绝对值小于eps为止。

#include #include void main() { float x,eps,s=1,t=1,i=1; scanf(\ do{ /***** 1 *****/ t=-t*x/++i; s+=t; /***** 2 *****/ }while(fabs(t)>=eps) printf(\}

24. t=-t*x/i++; }while(fabs(t)>=eps);

25. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\N ____\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

10

该程序功能:调用函数f,求二维数组a中全体元素之和。 #include

float f( _______1_______ ) { float y=0; int i,j; for(i=0;i

void main() { float a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*b[3]; int i; for(i=0;i<3;i++) b[i]=___2___; printf(\}

25. float *x[],int m,int n a[i]

26. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\N ____\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入三个整数,按由小到大的顺序输出这三个数。 #include

void swap(______1______) { /*交换两个数的位置*/ int temp;

temp = *pa; *pa = *pb; *pb = temp; }

void main() {

int a,b,c,temp;

scanf(\ if(a>b) swap(&a,&b); if(b>c) swap(&b,&c);

if(______2______) swap(&a,&b); printf(\}

26. int* pa,int* pb a>b

27. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\N ____\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:调用函数f,从字符串中删除所有的数字字符。 #include #include #include void f(char *s)

11

{ 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); } 27. strcpy else

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; }

for(;j!=0;j--) printf(\}

void main(){ int n; scanf(\28. m%2 bin[j-1]

29. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:将两个字符串连接起来。 #include void main() {

char s1[80],s2[40]; int i=0,j=0;

printf(\ printf(\ while (s1[i] !='\\0') /****** 1 ******/ i+1;

while (s2[j] !='\\0') /****** 2 ******/

s1[++i]=s2[++j]; /* 拼接字符到s1 */ s1[i] ='\\0';

printf(\}

12

29. i++; s1[i++]=s2[j++];

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() { int i,k,n; char *str; scanf(\ k=DtoH(n,str); for (i=0;i<=k;i++) printf(\}

30. return 'a'+x-10; *str++=trans(n);

31. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:用递归法将一个六位整数n转换成字符串,例如输入123456,应输出字符串\。 #include

void itoa(long i,char *s) {

if(i==0) return; /****** 1 ******/ *s='1'+i; itoa(i/10,s-1); }

void main() {

long n; char str[7]=\ /****** 2 ******/

13

itoa(n,str+6); printf(\}

31. *s='0'+i; itoa(n,str+5);

32. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:将一个char型数的高4位和低4位分离,分别输出,如22(二进制:00010110)输出为1和6。

#include void main() {

char a,b1,b2,c; scanf(\ /****** 1 ******/

b1=a<<4; /*b1存放高4位*/ c=~(~0<<4);

/****** 2 ******/

b2=a|c; /*b2存放低4位*/ printf(\}

32. b1=a>>4; b2=a&c;

33. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\N ____\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:调用find函数在输入的字符串中查找是否出现\这个单词。如果查到返回出现的次数;如果未找到返回0。

#include int find(char *str) { char *fstr=\ 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(\33. j=0;j<3;j++ j==3

34. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“***** N *****”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。例如:输入\,应输出\。

14

#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(\}

34. if (tolower(str[i])>='a' && tolower(str[i])<='z') str[k]=str[i]; k++;

35. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“***** N *****”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字符串中的字符按逆序连接到字符串t后面。例如:输入\,则字符串t为\。

# include # include void fun(char *s,char *t) { int i,sl; sl=strlen(s); for(i=0;i

void main(){ char s[100],t[100]; scanf(\35. t[sl+i]=s[sl-i-1]; t[sl+i]='\\0';

36. 在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:用选择法对10个整数按升序排序。 #include #define N 10 void main() { int i,j,min,temp; int a[N]={5,4,3,2,1,9,8,7,6,0}; printf(\ /* 输出数组元素 */

15

for (i=0;i

for (i=0;i

for (j=i+1;j

temp=a[min]; a[min]=a[j]; a[j]=temp; /* 数据交换 */ }

printf(\ /* 输出排序结果 */ for (i=0;i

36. if(a[min]>a[j]) min=j; temp=a[min]; a[min]=a[i]; a[i]=temp;

37. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\N ____\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。 #include

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]={{\ {\ for(i=0;i<4;i++) {

GetAverage(______2______); }

printf(\ for(i=0;i<4;i++) {

printf(\ st[i].computer,st[i].average); } }

37. pst->math+pst->english+pst->computer &st[i]

38. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\N ____\是根据程序功能需

16

要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入数组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

38. *m-=1 f(x,&n)

39. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\N ____\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:找出100~999之间所有的Armstrong数。所谓Armstrong数是指这个3位数各位上数字的立方和等于自身。例如:371=3*3*3+7*7*7+1*1*1,那么371就是Armstrong数。

#include #include void main() { int i,a,b,c; for(i=100;i<=999;i++){ a=i/100; _______1_______ c=i; if(_______2_______) printf(\ } }

39. b=(i-a*100)/10; pow(a,3)+pow(b,3)+pow(c,3)==i

40. 在考生目录的Paper子目录下,有Modify.c文件,该文件中\N ____\是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:将字符串s中所有的字符'c'删除。 #include void main() {

17

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); }

40. s[i]!='\\0' j++;

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(\}

41. for(i=0;a[i]!='\\0';i++) a[i]>='0' && a[i]<='9'

18

答案:

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(\ t=t*2; 9. long s=0; t=t*10+1; 10. t=a[0] j=1;j

15. while(scanf(\ k=k+m; 16. char* n=strlen(x);

17. char* str; for(i=0;i

19. max=f(1); if(max=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); 31. *s='0'+i; 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'

19

程序设计题

1. 设计程序:z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x,y取值为区间[0,10]的整数,找出使z取最小值的x1,y1,并将x1、y1以格式\写入到考生目录中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(\ fprintf(p,\ fclose(p); }

2. 设计程序:计算27的小于1.00001的2n次方根(27的2n-2次方根不小于1.00001),将n以格式\写到考生目录中Paper子目录下的新建文件design.dat中。

#include #include void main() { FILE *p; float x=27; int n=0; p=fopen(\ do{ n++; }while(pow(x,1.0/(2*n))>=1.00001 || pow(x,1.0/(2*n-2))<1.00001); fprintf(p,\ fclose(p); }

3. 设计程序:计算多项式a0+a1*x+a2*x*x+a3*x*x*x+...的值,并将其值以格式\写到考生目录中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++){

20

y+=a[i]*t; t*=x; } p=fopen(\ fprintf(p,\ fclose(p); }

4. 设计程序:在正整数中找出1个最小的、被3、5、7、9除,余数分别为1、3、5、7的数,将该数以格式\写到考生目录中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(\ fprintf(p,\ fclose(p); }

5. 设计程序:在6至5000内找出所有的亲密数对,并将每对亲密数用fprintf(p,\语句写到考生目录中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(\ for(a=6;a<=5000;a++){ c=1; for(k=2;k

6. 设计程序:将字符串s中的所有字符按ASCII值从小到大重新排序后,将排序后的字符串写入到考生目录中Paper子目录下的新建文件design.dat中。

#include

21

#include void main() { FILE *p; char *s=\ int i,j,k,n=strlen(s); p=fopen(\ for(i=0;is[j]) k=j; if(k!=i){ c=s[i]; s[i]=s[k]; s[k]=c; } } for(i=0;i

注意:在Turbo C下编译运行正确,在Visual C++6.0下编译运行有错,将指针s改为数组即可。 7. 设计程序:a、b、c为区间[1,100]的整数,统计使等式c/(a*a+b*b)=1成立的所有解的个数,并将统计数以格式\写入到考生目录中Paper子目录下的新建文件design.dat中,(若a=1、b=3、c=10是1个解,则a=3、b=1、c=10 也是解)。

#include void main() { FILE *p; int n=0,a,b,c; p=fopen(\ 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,\ fclose(p); }

8. 设计程序:将满足条件pow(1.05,n)<1e6

#include #include void main() { float y=1.05; int n=1; FILE *p; p=fopen(\ while(pow(1.05,n)>=1e6 || pow(1.05,n+1)<=1e6) n++; fprintf(p,\ fclose(p); }

9. 设计程序:计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+??的值,并将其值以格式\写入到考生目录中Paper子目录下的新建文件design.dat中。

#include

22

#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(\ y=a[0]; for(i=1;i<10;i++){ t*=x; y+=a[i]*sin(t); } fprintf(p,\ fclose(p); }

10. 设计程序:z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间[1,6]的整数,找出使z取最小值的x1、y1,并将x1、y1以格式\写入到考生目录中Paper子目录下的新建文件design.dat中。

#include void main() { FILE *p; float f(float x,float y),min; int x,y,x1,y1; p=fopen(\ 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,\ fclose(p); }

float f(float u,float v) { return (3.14*u-v)/(u+v); }

11. 设计程序:在6至10000内找出所有的合数,并顺序将每个合数用语句“fprintf(p,\”写入到考生目录中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(\ for(n=6;n<=10000;n++){

23

s=1; for(i=2;i

12. 设计程序:将数组a的每1行均除以该行上绝对值最大的元素,然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中。

#include #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)

13. 设计程序:数组元素x[i]、y[i]表示平面上某点坐标,统计所有各点间最短距离,并将其值以格式\写到考生目录中Paper子目录下的新建文件design.dat中。

#include #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(\ for(i=0;ic) minc=c; } fprintf(p,\ fclose(p);

24

}

14. 设计程序:计算表达式1+2!+3!+...+12!的值,并将计算结果以格式\写入到考生目录中Paper子目录下的新建文件design.dat中。

#include void main() { FILE *p; long s=1,k=1; int i; p=fopen(\ for(i=2;i<=12;i++){ k*=i; s+=k; } fprintf(p,\ 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

void main() {

FILE *p;long m;

p=fopen(\ for(m=11;m<1000;m++) {

if(JSValue(m)&&JSValue(m*m)&&JSValue(m*m*m)) fprintf(p,\ }

fclose(p); }

16. 设计程序:x[i],y[i]分别表示平面上1个点的x、y坐标,求下列5点各点间距离总和,并将该数以格式\写到考生目录中Paper子目录下的新建文件design.dat中。

#include #include void main()

25

{ 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(\ 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,\ fclose(p); }

17. 设计程序:对x=1,2,...,10,求函数f(x)=x-10*cos(x)-5*sin(x)的最大值,并将该数以格式\写到考生目录中Paper子目录下的新建文件design.dat中。

#include #include void main() { FILE *p; float f(float),max,x; p=fopen(\ max=f(1); x=2; while(x<=10){ if(max

float f(float x){ return x-10*cos(x)-5*sin(x); }

18. 设计程序:累加a字符串中各个字符的ASCII码值,然后将累加和以格式\写到考生目录中Paper子目录下的新建文件design.dat中。

#include void main() { FILE *p; int s=0,i=0; char *a=\ p=fopen(\ while(a[i]!='\\0'){ s+=a[i]; i++; } fprintf(p,\ 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的值以格式\写到

26

考生目录中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(\ 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,\ fclose(p); }

20. 设计程序:计算数列1,-1/3!,1/5!,-1/7!,1/9!,...的和至某项的绝对值小于1e-5时为止(该项不累加),将求和的结果以格式\写到考生目录中Paper子目录下的新建文件design.dat中。

#include #include void main() { FILE *p; float s=1,t=1,i=3; p=fopen(\ t=-t/((i-1)*i); while(fabs(t)>=1e-5){ s+=t; i=i+2; t=-t/((i-1)*i); } fprintf(p,\ fclose(p); }

21. 设计程序:计算多项式a0-a1*x+a2*x*x/2!-a3*x*x*x/3!+...的值,并将其以格式\写到考生目录中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(\ t=1.0; y=a[0]; for(i=1;i<10;i++){ t=-t*x/i; y+=a[i]*t; }

27

fprintf(p,\ fclose(p); }

22. 设计程序:在数组x的10个数中求平均值v,找出与v相差最小的数组元素并将其以格式\写到考生目录中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(\ for(i=1;i<10;i++){ if(d>fabs(x[i]-v)){ d=fabs(x[i]-v); k=i; } } fprintf(p,\ fclose(p); }

23. 设计程序:计算2的平方根、3的平方根、...、10的平方根之和,要求计算结果具有小数点后10位有效位数,并以格式\写到考生目录中Paper子目录下的新建文件design.dat中。

#include #include void main() { FILE *p; int i; double s=0.0; p=fopen(\ for(i=2;i<=10;i++) s+=sqrt(i); fprintf(p,\ fclose(p); }

24. 设计程序:统计满足条件x*x+y*y+z*z==2000的所有解的个数,并将统计结果以格式\写入到考生目录中Paper子目录下的新建文件design.dat中。

说明:若a、b、c是1个解,则a、c、b也是1个解,等等。 #include void main() { FILE *p; int x,y,z,k=0; p=fopen(\ for(x=-45;x<=45;x++) for(y=-45;y<=45;y++)

28

for(z=-45;z<=45;z++) if(x*x+y*y+z*z==2000) k++; fprintf(p,\ 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(\ cnt=sum=0; for(i=1000;i<5000;i++){ b1=i; b10=i/10; b100=i/100; b1000=i/1000; if(b1000+b100==b10+b1 && b1000+b100==(b1-b1000)*10){ cnt++; sum+=i; } }

fprintf(p,\ fclose(p); }

26. 设计程序:数列第1项为81,此后各项均为它前1项的正平方根,统计该数列前30项之和,并以格式\写到考生目录中Paper子目录下的新建文件design.dat中。

#include #include void main() { FILE *p; float s=0,a=81,i; p=fopen(\ i=1; while(i<=30){ s+=a; a=sqrt(a); i++; } fprintf(p,\ fclose(p); }

27. 设计程序:将数组a的每1行均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中。

#include

29

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(\ 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,\ fprintf(p,\ } fclose(p); }

28. 设计程序:计算字符串s中每个字符的权重值,所谓权重值就是字符在字符串中的位置值与该字符的ASCII码值的乘积。位置值从1开始依此递增。将每个字符的权重值,以格式\写入到考生目录中Paper子目录下的新建文件design.dat中。

#include #include void main() { FILE *p; int i,w;

char *s=\ p=fopen(\ i=0; while(s[i]!='\\0'){ w=(i+1)*s[i]; fprintf(p,\ 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;

30

} return a; }

void main() {

FILE *p;

p=fopen(\

fprintf(p,\ fclose(p); }

30. 设计程序:数列各项为1,1,2,3,5,8,13,21,...,求其前40项之和,并将求和的结果以格式\写到考生目录中Paper子目录下的新建文件design.dat中。

#include void main() { FILE *p; long s=0,i,a[40]; p=fopen(\ 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,\ fclose(p); }

31. 设计程序:x[i],y[i]分别表示平面上一个点的坐标,求下列10个点与点(1.0,1.0)的距离的总和,并将结果以格式\写入到考生目录中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(\ for(i=0;i<10;i++) s+=sqrt(pow((x[i]-1.0),2)+pow((y[i]-1.0),2)); fprintf(p,\ fclose(p); }

32. 设计程序:一个球从100米高度落下,每次落地后都反弹至原高度一半位置,再落下。计算出第10次落地时小球共经过的距离,并将结果以格式\写入到考生目录中Paper子目录下的新建文件design.dat中。

31

#include void main() { FILE *fp; float s=100,h=100; int i; fp=fopen(\ for(i=1;i<=9;i++){ s+=h; h/=2; } fprintf(fp,\ fclose(fp); }

33. 设计程序:利用公式π/4≈1-1/3+1/5-1/7+??公式计算π的近似值,直到某一项的绝对值小于1e-6为止(π/4的结果不包含此项)。将结果以格式\写入到考生目录中Paper子目录下的新建文件design.dat中。

#include #include void main() { FILE *fp; float n=1,t=1,pi=0; int i; fp=fopen(\ i=1; while(fabs(n)>=1e-6){ pi+=n; i+=2; t=-t; n=t/i; } pi*=4; fprintf(fp,\ 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++; }

32

return y; }

void main() {

FILE *p;

p=fopen(\

fprintf(p,\ fclose(p); }

35. 设计程序:找出1000至9999之间符合条件的自然数。条件是:若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此四位数是偶数,统计出满足此条件的自然数的个数cnt,以格式\写入到考生目录中Paper子目录下的新建文件design.dat中。

#include void main() {

FILE *p; int cnt=0; int i,a,b,c,d; p=fopen(\ for(i=1000;i<=9999;i++){ a=i/1000; b=(i-a*1000)/100; c=(i-a*1000-b*100)/10; d=i; if(a%2!=0 || b%2!=0 || c%2!=0 || d%2!=0) continue; if(a<=b && b<=c && c<=d) cnt++; }

fprintf(p,\ fclose(p); }

36. 设计程序:有数列:2/1,3/2,5/3,8/5,13/8,21/13,??求出数列的前40项的和。将结果以格式\写入到考生目录中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(\ for(i=3;i<=40;i++){ t=f2; f2=f1+f2; f1=t;

33

t=t2; t2=t1+t2; t1=t; s=s+t2/f2; } fprintf(p,\ fclose(p); }

37. 设计程序:求解百鸡问题。

已知公鸡每只5元、母鸡每只3元、小鸡1元3只。求出用100元买100只鸡的解。将得到的解按公鸡、母鸡和小鸡的只数以\的格式写入到考生目录中Paper子目录下的新建文件design.dat中。

#include void main() { FILE *p; int cock,hen,chick; p=fopen(\ 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,\ fclose(p); }

38. 设计程序:求斐波那契(Fibonacci)数列中其前40项之和,其中斐波那契数列的定义为:后一项为前两项之和,并将求和的结果以格式\写到考生目录中Paper子目录下的新建文件design.dat中。

#include void main() { FILE *p; long s=0,i,a[40]; p=fopen(\ 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,\ fclose(p); }

39. 设计程序:在整数数组a中找出偶数放到b数组中,对b数组按从小到大的顺序进行排序后以格式\每行3个数写到考生目录中Paper子目录下的新建文件design.dat中。

#include void main() {

34

}

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(\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

fclose(p);

35

本文来源:https://www.bwwdw.com/article/q3fw.html

Top