福建省计算机二级(c语言)编程含答案
- 格式:doc
- 大小:98.00 KB
- 文档页数:9
第一部分:程序修改题#include <math.h>#include <stdio.h>#include <string.h>#include <conio.h>void main(){ char str1[100], t[200];int i, j;/**/ i = 0; /**/ 改成j = 0;clrscr();strcpy(str1, "4AZ18c?Ge9a0z!");for (i = 0; i<strlen(str1); i++){/**/ if ((str1[i] %2== 0) && (i%2!=0)) /**/ 改成i%2 ==0 {t[j] = str1[i];j++;}}t[j] = '\0';printf("\n Original string: %s\n", str1);printf("\n Result string: %s\n", t);}#include <string.h>#include <conio.h>#include <math.h>#include <stdio.h>#define M 50double fun(int n){ double y = 0.0;int i,j;j=0;for(i=1;;i++){/**/ if((i<10)&&(i%3==0)) /**/ 改成i>10 {/**/ y+=1/i; /**/ 改成y+=1.0/i;j++;}if(j==n) break;}return y;}void main(){ clrscr();printf("fun(8) = %8.3lf\n", fun(8));}#include <stdio.h>void main(){/**/ int i,j;/**/ 改成int i,j,k;for(i=1;i<=6;i++){for(k=1;k<=10+i;k++)printf(" ");for(j=1;j<=7-i;j++)printf("*")/**/ : /**/ 改成;printf("\n");}getch();}#include <stdio.h>#include <conio.h>/**/int fun();/**/ 该处不是函数说明.应该去掉分号{ int hen,cock,chicken,n=0;clrscr();for(cock=0;cock<=50;cock+=1)for(hen=0;hen<=100;hen=hen+1){ chicken=2*(100-hen-2*cock);/**/ if(cock+hen+chicken=100) /**/ 赋值号改成=={ n++;printf("%d-->hen:%d,cock:%d,chicken:%d\n",n,hen,cock,chicken); if(n==20) getch();}}return n;}void main(){ int num;num=fun();printf("\n There are %d solutions.\n",num);getch();}#include <stdio.h>#include <conio.h>void main(){ int m,n,result,flag=0;/**/ char ch, /**/基本语法错误.逗号改成分号clrscr();printf("Input an expression: ");scanf("%d%c%d",&m,&ch,&n);/**/ switch ch /**/基本格式错误.改成switch(ch){ case '+': result=m+n; break;case '-': result=m-n; break;case '*': result=m*n; break;case '%': result=m%n; break;case '/': result=m/n; break;default: { printf("Error!\n"); flag=1; }}if (!flag) printf("%d %c %d = %d\n",m,ch,n,result);getch();}#include <stdio.h>#include <string.h>void main(){char s[20]="table left 100",t[20];/**/ char tab[4,2]={{'a','f'},{'b','e'},{'e','a'},{'f','b'}}; /**/ 数组定义形式错误.改成char tab[4][2]int i,j=0;strcpy(t,s);while(t[j]){for(i=0;i<=3;i++){if(t[j]==tab[i][0]){/**/ t[j]=tab[i][2]; /**/改成t[j]=tab[i][1];break;}}j++;}printf("\nThe source string: %s\n",s);printf("\nThe target string: %s\n",t);getch();}#include <stdio.h>#include <string.h>main(){char str1[128];/**/ int i,len; sum=0; /**/基本语法错误.改成int i,len, sum=0;printf("\nPlease input the string: ");gets(str1);len = strlen(str1);for(i=0; i<len; i++){/**/ if( str1[i] >= '0' || str1[i] <= '9') /**/逻辑错误.||改成&& sum++;}printf("%d\n",sum);getch();#include <stdio.h>#include <math.h>#define M 8main(){ int a[M],i;printf("Please input 8 numbers:\n");for(i=0; i<M; i++)scanf("%d", /**/ a[i] /**/);输入列表项必须指定地址.改成&a[i]printf("Inverse order is: \n");/**/ for(i=M-1; i<=0; i--) /**/ 循环判断条件表示错误.改成i>=0printf("%d ", a[i]);printf("\n" );getch();}#include <stdio.h>#include <string.h>main(){/**/ char str1 /**/;此处必须定义成字符数组.改成char str1[50]int i,len, sum=0;printf("Please input a string:\n");scanf("%s", str1);len = strlen(str1);for(i=0; i<len; i++){if( str1[i] >= 'A' && str1[i] <= 'Z')/**/ sum--; /**/ 改成sum++;}printf("%d\n",sum);getch();}#include <stdio.h>#include <math.h>/**/ #include M 5 /**/宏定义错误.改成#define M 5main(){int a[M],i;printf("Please input 5 numbers:\n");for(i=0; i<M; i++)scanf("%d", &a[i]);printf("Even numbers:\n" );for(i=0; i<M; i++)/**/ if( a[i]/2 ==0) /**/判断偶数应该改成a[i]%2 ==0printf("%d ", a[i]);printf("\n" );getch();}#include <stdio.h>#include <string.h>main(){char str1[128], str2[128];int i,len;gets(str1);len = strlen(str1);/**/ for(i=0; i>len; i++) /**/循环条件表示错误.改成for(i=0; i<len; i++) {if( str1[i] >= '0' && str1[i] <= '8')str2[i] = str1[i] + 1;else if(str1[i] == '9')str2[i] = '0';elsestr2[i] = str1[i];/**/ str2[i] = '\n'; /**/字符串的结束标识应该用'\0'表示puts(str2);getch();#include <stdio.h>#include <string.h>void main(){char s1[30]="People's Republic of ", s2[]="China";char * ps1,*ps2;/**/ ps1 = NULL; /**/指针ps1指向字符串s1.改成ps1 = s1;ps2=s2;/**/ while(*ps1 == NULL) /**/判断是否到达串尾标识.应改成*ps1!='\0' ps1++;while(*ps2)*(ps1++) = *(ps2++);printf("\n%s\n",s1);getch();}#include <stdio.h>#include <math.h>void main(){float a[3],s,area;int i;printf("Please input 3 numbers:\n");for(i=0; i<3; i++)scanf("%f",/**/ a[i] /**/);输入列表项必须指定地址/**/ if( a[0]+a[1]>a[2] || a[1]+a[2]>a[0] || a[0]+a[2]>a[1] ) /**/逻辑条件标识错误.||改成&&{s = (a[0]+a[1]+a[2])/2;area = sqrt(s*(s-a[0])*(s-a[1])*(s-a[2]));printf("area is %.2f\n",area);elseprintf("error.\n"); getch();#include <stdio.h> #include <conio.h>此处说明函数有返回值.改成int fun() ) /**/ = 改成 == getch(); }#include <stdio.h> void main() {int i;/**/ for( i=100; i<200; i++ ); /**/for 语句错误.此处去掉分号 if((i-2)%4 == 0)if( !((i-3)%7) )if( i%9 == 5 )printf("%d\n",/**/ &i /**/); 去掉地址符号&getch();#include <stdio.h>/**/ void swap(int p1,int p2) /**/改成void swap(int *p1,int *p2){int temp;temp = *p1;/**/ p1 = p2; /**/ 改成*p1 = *p2;*p2 = temp;}void main(){int a,b;printf("please input 2 numbers:\n");scanf("%d%d",&a,&b);printf("\nOriginal: a=%d b=%d\n",a,b);swap(&a,&b);printf("\nResult: a=%d b=%d\n",a,b);getch();#include <stdio.h>void main(){int b,i;/**/ int a=c=0; /**/基本语法错误.改成int a=0,c=0;/**/ for( i=0,i<=100,i+=2 ) /**/for语句语法错误.改成for( i=0;i<=100;i+=2 ) {a+=i;b=i+1;c+=b;}printf("total of even numbers: %d\n",a);printf("total of odd numbers: %d\n",c-101);getch();}#include <stdio.h>void main(){int x,y,z,i,result=520;for( x=1;x<10;x++ )for( y=1;y<10;y++ )/**/ for( z=1;z<10;z++ ) /**/z初值应为0.改成for( z=0;z<10;z++ ) {i=100*x+10*y+z+100*y+10*z+z;/**/ if (i=result) /**/逻辑关系等于应该为i==resultprintf("x=%d,y=%d,z=%d\n",x,y,z);}getch();}#include <stdio.h>#define F(x) (x*x-2.3*x+5.6)/(x+8.2)void main(){float a=6.0,b=3.0,c;/**/ int s; /**/变量类型错误.改成float s;printf("\nPlease input c: ");scanf("%f",/**/ c /**/);输入列表项必须加地址&c/**/ s=F(a,b,c); /**/printf("\ns=%.2f\n",s);getch();#include <stdio.h>void main(){int f,s,t,n;printf("\nThe list is:\n");for(n=100;n<1000;n++) {f=n%10; f 为个位数 s=(n%100)/10; s 为十位数/**/t=n%100; /**/ t 为百位数.应改成t=n/100; /**/if(t*t*t+s*s*s+f*f*f=n )/**/ =应改成== printf("%d ",n); }printf("\n"); getch(); }#include <stdio.h> void main(){ /**/ long /**/ p; int i; p=1;/**/ getch();#include <stdio.h> void main() {int a,b,c; float f; clrscr();printf("Please input a b :"); scanf("%d%d",&a,&b); f=/**/1.0*a/b /**/;c=/**/ (int) /**/ (f*100)%10;printf("\n a/b=%f The second decimal place is: %d\n",f,c); getch(); }#include <stdio.h>#include <stdlib.h>int max,min;void find_max_min(int *p,int n){int *q;max=min=*p;for(q=p; q</**/ p+n /**/; q++)if(/**/ max<*q /**/ ) max=*q;else if(min>*q) min=*q;}void main(){int i,num[10];printf("Input 10 numbers: ");for(i=0;i<10;i++) scanf("%d",&num[i]);find_max_min(/**/ num /**/,10);printf("max=%d,num=%d\n",max,min);#include <stdio.h>void main(){int a,b,k;int plu = /**/ 403 /**/;for(a=1; a<10; a++)for(b=1; b<10; b++){k = (a*10+b) * /**/ (b*10+a) /**/ ;if(k==plu) printf("A = %d, B = %d\n",a,b); }}#include <stdio.h>void main(){int n,a,b;/**/a=0;b=0;/**/scanf("%d",&n);while(/**/ n!=0 /**/){if(n>0) a++;else /**/ b++; /**/scanf("%d",&n);}printf("Positive integer: %d, negative integer: %d\n",a,b); }#include <stdio.h>#include <conio.h>int prime(int n){ int k,flag=1;for(k=2; k<=n/2+1; k++)if (n%k==0) { flag=/**/ 0 /**/ ; break;}return flag;}void main(){ int num, a;clrscr();do{ printf("Please input an even number:");scanf("%d", &num);}while(num<=6||num%2==1);for(a=2;a<=num/2+1;a++)if(prime(a) && prime(/**/ num-a /**/))printf("\n %d = %d + %d ", num, a, num-a);}#include <stdio.h>#include <math.h>/**/ main() /**/{ float x,x0,f,f1;x=1.5;do{ x0=x;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;}/**/ while /**/(fabs(x-x0)>=1e-6);printf("the root is: %.2f\n",x);}#include <stdio.h>main(){/**/ char /**/ str[20];int i;float x;printf("Please input a string:\n");scanf("%s",/**/ str /**/ );i=0;while(str[i]){str[i]=/**/ str[i]^15; /**/i++;}printf("\n Target string: %s\n", str);getch();#include <stdio.h>main( ){int a[5]={20,30,45,64,23};float m;/**/ float average(int pa[],int n); /**/ m=average(a, 5 );printf("Average=%f\n",m);getch();}float average(int pa[] ,int n){ int k;float avg=0.0;for(k=0;k<n;k++)avg=avg+/**/ pa[k] /**/;avg= avg/n;return avg;}#include <stdio.h>main(){/**/ char /**/ s[80];int i;printf("Please input a string:");for(i=0;(s[i]=getchar())!='\n';i++);s[i]='\0';for(i=0;s[i]!='\0';i++){ if(s[i]>='a'&&s[i]<='z')s[i]=s[i]-32;/**/ else if /**/( s[i]>='A'&&s[i]<='Z' ) s[i]=s[i]+32;printf("%c",s[i]);}getch();}#include <stdio.h>#include <math.h>void sort(int a[], int m){ int i, j, t,swap;for( i=0; i< /**/ m-1 /**/ ; i++ ){swap = 0;for( j=0; j < m-i-1; j++){if /**/ (a[j]<a[j+1]) /**/{swap = 1;t = a[j];a[j] = /**/ a[j+1] /**/;a[j+1] = t;}}if(!swap) break;}}void main(){int a[] = {23,55,8,32,18,2,9};int i,k = sizeof(a)/sizeof(int);sort(a,k);for(i=0;i<k;i++)printf("%d ",a[i]);printf("\n");getch();}#include <stdio.h>#include <math.h>int fun(/**/ float a,float b,float c /**/){float temp;int bTrue = 0;if(a<b){ temp = a;a = b;b = temp;}if(a<c){ temp = a;a = c;c = temp;}if( fabs(/**/ a*a /**/ - (b*b + c*c)) < 1.0e-15) bTrue = 1;return bTrue;}main(){float a,b,c;printf("Please input three numbers:\n"); scanf("%f%f%f",&a,&b,&c);if( fun(a,b,c) == 1)printf("Yes\n");elseprintf("No\n");getch();#include <stdio.h>main(){ int x;printf("Please input a number:\n");scanf("%d",/**/ &x /**/);printf("%d*%d=%d\n", x,x,/**/ x*x /**/); getch();}#include <stdio.h>#include <math.h>void sort(int a[], int m){ int i, j, k, t;for( i = 0; i < m-1; i++ ){ k = i;for( j=i+1; j< /**/ m /**/; j++)if( a[j] < a[k] ) /**/ k=j /**/;if( k != i ){ t = a[k];a[k]= a[i];a[i] = /**/ t /**/;}}}void main(){int a[] = {72,25,58,32,2,15,7,64};int i,m = sizeof(a)/sizeof(int);sort(a,m);for(i=0;i<m;i++)printf("%d ",a[i]);printf("\n");getch();#include <stdio.h>main(){float a,b,c,max;/**/float fmax(float x,float y,float z); /**/ printf("Please input 3 integer:\n");scanf("%f%f%f",&a,&b,&c);max=fmax(a,b,c);printf("The max number is:%.2f\n", max);getch();}float fmax(float x,float y,float z){float m,n;n=(y>z)?y:z;m=/**/ (x>n)?x:n; /**/return(m);}#include <stdio.h>#include <math.h>main(){int i,/**/ j /**/;int a[4][4],sum;sum=/**/0 /**/;printf("Please input 16 numbers:\n");for(i=0; i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);for(i=0;i<4;i++)/**/ sum+=a[i][0]; /**/printf("%d\n",sum);getch();}#include <stdio.h>int fun(int a[],int n,/**/int q /**/) {int left,right,mid;left= 0 ;right = n-1;while(left <= right){ mid= /**/(left+right)/2 /**/;if( q < a[mid] ) right = mid-1;else if( q > a[mid]) left = mid+1;else return mid;}return -1;}main(){ int a[]={3,4,6,11,17,22,31,45};int k,n;n = sizeof(a)/sizeof(int);k = fun(a,n,31);printf("%d\n",k);getch();}#include <stdio.h>#include <math.h>int fun(/**/float r /**/,float x,float y) {int bIn;bIn = /**/sqrt(x*x+y*y) /**/ < r ;return bIn;}main(){float r=-1,x,y;int bIn;while(r<0){ printf("Please input radius r (r>0):\n"); scanf("%f", &r);}printf("Please input the dot(x,y):\n");scanf("%f%f",&x,&y);bIn = fun(r,x,y);if(bIn == 1)printf("in the circle!\n");elseprintf("out of the Circle!\n");getch();}#include<stdio.h>/**/#include<math.h> /**/double fun(double x){/**/return x*x-2*x+6; /**/}void main(){double x,y1,y2;clrscr();printf("Please input x:");scanf("%lf",&x);y1=fun(x+8);y2=fun(/**/sin(x) /**/);printf("\nf(x+8)=%.3lf",y1);printf("\nf(sinx)=%.3lf",y2);getch();}#include<stdio.h>double fun(unsigned m,unsigned n){unsigned i;double p=1.0;for(i=1;i<=m;i++)/**/p=p*i; /**/for(i=1;i<=n;i++)/**/p=p/i; /**/for(i=1;i<=m-n;i++)p=p/i;return p;}void main(){clrscr();printf("p=%f\n",fun(13,7));getch();#include<stdio.h>int findmax(int* array,int size);void main(){int a[]={33,91,23,45,56,-12,32,12,5,90};clrscr();printf("The max is %d\n",/**/findmax(a,10) /**/); getch();}int findmax(int *array,int size){int i, /**/max=*array /**/;for(i=1; i<size; i++)if(array[i]>max) max=array[i];return max;}#include<stdio.h>unsigned sum(unsigned n){unsigned i,/**/sum=0;/**/for(i=1;i<=n;i++)sum+=i;/**/return sum;/**/}void main(){int m;clrscr();printf("Please input a unsigned integer:"); scanf("%d",&m);while(m<0){printf("Please input a unsigned integer:"); scanf("%d",&m);}printf("\nThe sum is %d\n",/**/sum(m)/**/);getch();#include<stdio.h>#include<string.h>void main(){int i,j;char str[]="1234567", /**/ k /**/;for(i=0,/**/j=strlen(str)-1 /**/;i<j;i++,j--) {k=str[i];str[i]=str[j];str[j]=k;}clrscr();printf("%s\n",str);getch();}#include<stdio.h>#include<string.h>typedef struct{int num;char name[20],sex[2];int age,score;}STU;STU mystudent[]={{1111,"Zhangqiang","m",20,80},{2104,"Liminghong","w",18,82},{3121,"Wangxingda","m",21,78},{4118,"Liushaotao","m",20,90},{1456,"Wuminghong","w",35,86}};void sort(STU* ps, int size){int i,flag,pass;/**/ STU temp; /**/for(pass=1;pass<size;pass++){flag=0;for(i=0;i<size-pass;i++)if(/**/ps[i].num>ps[i+1].num /**/){flag+=1;temp=ps[i];ps[i]=ps[i+1];ps[i+1]=temp;}if(/**/flag>size /**/) break;}}void main(){int i,size=sizeof(mystudent)/sizeof(STU);clrscr();printf("Students\' information before sort:\n\n");printf("Number Name age Sex score\n\n"); for(i=0;i<size;i++)printf("%-7d%s%10d\t%s%8d\n",(mystudent+i)->num,(mystudent+i)->name,(mystudent+i)->age,(mystudent+i)->sex, (mystudent+i)->score);sort(mystudent,size);printf("\nStudents\' information after sort:\n\n");printf("Number Name age Sex score\n\n");for(i=0;i<size;i++)printf("%-7d%s%5d\t %s%7d\n",(mystudent+i)->num,(mystudent+i)->name,(mystudent+i)->age,(mystudent+i)->sex,(mystudent+i)->score);getch();#include"stdio.h"#define ROW 3#define COL 3void main(){int a[ROW][COL],i,j,max,min;clrscr();printf("Please input the 9 integers:\n"); for(i=0;i<ROW;i++)for(j=0;j<COL;j++)scanf("%d",&a[i][j]);/**/max=min=a[0][0]; /**/for(i=0;i<ROW;i++)for(j=0;j<COL;j++){if(/**/a[i][j]>max /**/)max=a[i][j];if(a[i][j]<min)/**/min=a[i][j];/**/}printf("max=%d\n",max);printf("min=%d\n",min);getch();}#define N 5#include<stdio.h>void main(){int t=0,/**/s=0/**/,i;for(i=1;i<=N;i++){t=/**/t*10+i /**/;s+=t;}clrscr();printf("\ns=%d\n",s);getch();#include<stdio.h>long fib(int n);void main(){int k;clrscr();printf("The first 15 data of Fibonacci is:\n\n");for(k=1;k<=15;k++)printf("%d ",fib(k));printf("\n");getch();}long fib(int n){if(n==1||n==2)/**/ return 1; /**/elsereturn /**/fib(n-1)+fib(n-2) /**/;}#include <stdio.h>main(){struct stu{char name[10];float score;};/**/struct stu /**/ stu[3]={"Mary",76,"John",85,"Tom",81}; int i=0;float total=0,aver=0;while(i<3){total=total+/**/stu[i].score /**/;i++;}aver=total/3;printf("\ntotal=%.2f,aver=%.2f", total,aver); getch();#include <stdio.h>main(){int i,a[10]={9,26,35,8,6,19,69,3,5,95};int min1,min2;i=0;min1=a[0]<a[1]?a[0]:a[1];min2=a[0]>a[1]?/**/a[0]:a[1]; /**/for(i=2;i<10;i++){if(a[i]<min1){min2=min1;min1=a[i];}else if(a[i]<min2)/**/min2=a[i]; /**/}printf("min1=%d,min2=%d\n", min1,min2);getch();}#include <math.h>main(){double x,y;/**/double mysqrt(double a,double x0); /**/printf("Please input x:\n");scanf("%lf",&x);y=mysqrt(x,1.0);printf("The sqrt of %f=%f\n",x,y);getch();}double mysqrt(double a,double x0){double x1,y;x1=/**/1.0/2*(x0+a/x0); /**/if(fabs(x1-x0)>0.00001)y=mysqrt(/**/a,x1/**/);elsey=x1;return(y);}第三部分:程序设计题#include <math.h>#include <stdio.h>double fun1(double x){ /**/return (1+sin(x)+exp(x))/(1+x);/**/}void main(){clrscr();printf("fun1(0.76) = %8.3lf\n", fun1(0.76)); printf("fun1(3.00) = %8.3lf\n", fun1(3.00)); printf("fun1(3.76) = %8.3lf\n", fun1(3.76)); }#include <string.h>#include <conio.h>#include <math.h>#include <stdio.h>int fun2(int a[],int n,int b[],int c[]){/**/int i,j,t,k=0;for(i=0;i<n;i++)if(a[i]>-20)b[k++]=a[i];for(i=0;i<k;i++)c[i]=b[i];for(i=0;i<k;i++)for(j=0;j<k-i;j++)if(c[j]>c[j+1]){t=c[j];c[j]=c[j+1];c[j+1]=t;}return k;/**/}void main(){ int n = 10, i, nb;int aa[10] = {12, -10, -31, -18, -15, 50, 17, 15, -20, 20}; int bb[10], cc[10];clrscr();printf("There are %2d elements in aa.\n", n);printf("They are: ");for(i=0; i<n; i++) printf("%6d", aa[i]);printf("\n");nb = fun2(aa, n, bb, cc);printf("Elements in bb are: ");for (i=0; i<nb; i++) printf("%6d", bb[i]);printf("\n");printf("Elements in cc are: ");for(i=0; i<nb; i++) printf("%6d", cc[i]);printf("\n");printf("There are %2d elements in bb.\n", nb);}#include <math.h>#include <stdio.h>double fun1(double x){ /**/return (exp(x)+fabs(x-6))/(x+1.3);/**/}void main(){clrscr();printf("fun1(0.76) = %8.3lf\n", fun1(0.76));printf("fun1(3.00) = %8.3lf\n", fun1(3.00));printf("fun1(3.76) = %8.3lf\n", fun1(3.76));}#include <string.h>#include <conio.h>#include <math.h>#include <stdio.h>void fun2(char a[],char b[],char c[]){/**/char t[15];if(strcmp(a,b)>0){strcpy(t,a);strcpy(a,b);strcpy(b,t);}if(strcmp(a,c)>0){strcpy(t,a);strcpy(a,c);strcpy(c,t);}if(strcmp(b,c)>0){strcpy(t,b);strcpy(b,c);strcpy(c,t);}/**/}void main(){ char str1[15]="Fuzhou",str2[15]="Fujian",str3[15]="China";clrscr();fun2(str1,str2,str3);printf("The ordered strings is : %s, %s, %s\n",str1,str2,str3); getch();}#include <stdio.h>#include <math.h>double fun1(float x){/**/if(x<5) return exp(x)+0.9;else if(x==5) return 12.5;else return (sin(x)-7.8)/(2*x);/**/}void main(){float x;double y;clrscr();printf("Please input a number:\n");scanf("%f",&x);y = fun1(x);printf("fun1(%.2f)=%.2f\n",x,y);getch();#include <stdio.h>#include <math.h>void main(){int fun();int num;num=fun();printf("\nThe total of prime is %d",num); getch();}int fun(){/**/int m,i,k,n=0;for(m=101;m<=200;m=m+2){k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1)n++;}return n;/**/}#include <stdio.h>#include <math.h>double f(float x){/**/if(x>0) return (fabs(x)+3.2)/(sin(x)+2); else return 0;/**/}void main(){float x;double y;printf("Please input a number: \n");scanf("%f",&x);y = f(x);printf("f(%.3f)=%.3f\n",x,y);getch();}#include <stdio.h>#include <math.h>void fun(int a[],int m){/**/int i;a[0]=a[1]=1;for(i=2;i<m;i++)a[i]=a[i-1]+a[i-2];/**/}void main(){int a[20],i;fun(a,20);for(i=0; i<20; i++)printf("%d ",a[i]);printf("\n");getch();}#include <stdio.h>#include <math.h>double f(float x){/**/if(fabs(x)<700)return sqrt(5.8+fabs(x))/(cos(x)+2.1); else return -1;/**/}void main(){float x;double y;printf("Please input a number: \n");scanf("%f",&x);y = f(x);printf("f(%0.2f)=%0.2f\n",x,y);getch();#include <stdio.h>#include <math.h>int fun(int a[][3],int m){/**/int i,j,flag=1;for(i=0;i<m;i++)for(j=0;j<m;j++)if(a[i][j]!=a[j][i]){flag=0;break;}if(flag)return 1;else return 0;/**/}void main(){int a[3][3],i,j;int b;for(i=0; i<3; i++)for(j=0; j<3; j++)scanf("%d",&a[i][j]);b = fun(a,3);if( b == 1 )printf("Yes\n");elseprintf("No\n");getch();}#include <stdio.h>#include <math.h>double f(float x){/**/double y;if(x<2)y=x;else if(x<5)y=3-tan(3.5-x); else y=3*log10(x)-11;return y;/**/}void main(){float x;double y;clrscr();printf("Please input x :\n");scanf("%f",&x);y = f(x);printf("f(%.2f)=%.2f\n",x,y);getch();}#include <stdio.h>#include <math.h>char fun(float f){/**/float c;c=5.0/9*(f-32);if(c<0) return 'W';else if(c<25) return 'B';else if(c<35) return 'O';else return 'R';/**/}void main(){float f;char code;printf("\nPlease input the Fahrenheit temperature: "); scanf("%f",&f);code=fun(f);printf("\n%c\n",code);getch();}#include <stdio.h>#include <math.h>double f(float x){/**/float y;if(x<=1600)y=0;else if(x<=2100)y=(x-1600)*0.05;else if(x<=3100)y=(x-1600)*0.1-25; else y=(x-1600)*0.15-125;return y;/**/}void main(){float x;double y;clrscr();printf("Please input a number:\n"); scanf("%f",&x);y = f(x);printf("f(%.2f)=%.2f\n",x,y);getch();#include<stdio.h>#define ROW 4#define COL 4int fun(int a[][COL],int row,int b[]){/**/int i,j,k=0;int sum=0;for(i=0;i<row;i++)for(j=0;j<COL;j++){if(a[i][j]>0)b[k++]=a[i][j];if(a[i][j]==0)break;}for(i=0;i<k;i++)sum=sum+b[i];return sum;/**/}void main(){int sss=0, b[16]={0};int a[ROW][COL]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}}; clrscr();sss=fun(a,ROW,b);printf("Sum of positive elements is %d\n",sss);getch();}#include <stdio.h>#include <math.h>double f(float x){/**/if(x<=0)return (x+2)*exp(x);else return (x+2)*log(2*x);/**/}void main(){float x;double y;printf("Please input a number:\n");scanf("%f",&x);y = f(x);。
1、 打开程序Cprog441.c ,完成其中的函数fun (x),该函数计算数学表达式:2.1cos sin 2++x e x x的值。
例如:fun (1.65)=6.424#include <stdio.h>#include <math.h>double fun(double x){/**/return (2*sin(x)+exp(x))/(cos(x)+1.2);/**/}void main(){printf("fun(1.65) = %7.3lf\n", fun(1.65));getch();}2、 打开程序Cprog442.c ,完成其中的函数Reverse(unsigned int n),该函数的功能是:返回整数n (1<n ≤10000)的逆向值。
例如:n 为1234时,返回值为4321。
#include <stdio.h>long int Reverse(unsigned int n){/**/int a[5],i,len=0,result=0;while (n!=0){a[len++]=n%10;n/=10;}for (i=0;i<len;i++){result=result*10+a[i];}return result;/**/}void main(){unsigned int a;printf("Input a (1-10000):");scanf("%u",&a);printf("result=%ld\n",Reverse(a));getch();}3、 打开程序Cprog451.c ,完成其中的函数fun(x,n),该函数计算数学表达式:8.0)3x )(12x (3x n++- 的值。
例如:fun(2.3, 5)=9.713#include <stdio.h>#include <math.h>double fun(double x,int n){/**/return 3*pow(x,n)/((2*x -1)*(x+3)+0.8);/**/}void main(){printf("fun(2.3,5) = %7.3lf\n", fun(2.3,5));getch();}4、 打开程序Cprog452.c ,完成其中的函数DecTohex(unsigned int data, int hex[30], int *resultlen),该函数的功能是:将十进制数data 转化为对应的十六进制数,十六进制数的各位依次存储在数组hex 中,*resultlen 保存转化结果的位数。
2022年福建省厦门市全国计算机等级考试C语言程序设计真题(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、2.填空题(10题)1. 下列程序的输出结果是【】。
void fun(int *n){while((*n)--);printf("%d",++(*n));}main(){ int a=100;fun(&a) ;}2. 软件工程研究的内容主要包括:【】技术和软件工程管理。
3. 以下程序的功能是【】。
main( ){ int num[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};int sum=0,i;for(i=0;i<10;i+ +)if(num[i]>0)sum=num[i]+ sum;printf("sum=%6d",sum);}4. 已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是【】。
#include <stdio.h>main(){ char a,b;a=getchar();scanf("%d",&b);a=a-'A'+'0';b=b*2;printf("%c%c\n",a,b);}5. 已知字母A的ASCⅡ码为65。
以下程序运行后的输出结果是( )。
main(){ char a,b;a='A'+'5'-'3';b=a+'6'-'2';a='A'+'5'-'3';b=a+'6'-'2';printf("%d%c\n",a,B);}6. 在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。
2021-2022学年福建省宁德市全国计算机等级考试C语言程序设计真题(含答案)学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.以下程序段中,输出信息不能正确反映变量大小关系的是()。
A.if (x>y) printf(“x>y”);if (x<y) printf(“x<y”);else printf(“x=y”);B.if(x>=y)if(x>y) printf(“x>y”);else printf(“x=y”); else printf(“x<y”);C.if (x>y) printf(“x>y”);if (y>x) printf(“x<y”);if (x== y) printf(“x=y”);D.if (x>y) printf(“x>y”);else if(y<x) printf(“x<y”);else printf(“x=y”);2.设无向图的顶点数为n,则该图最多有()条边。
A.n-1B.n(n-1)/2C.n(n+1)/2D.03.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。
A.-369B.369C.0.369D.整数集合{1,2,3,4,5}4.以下叙述中错误的是( )。
A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B.数组名代表的是数组所占存储区的首地址,其值不可改变C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D.可以通过赋初值的方式确定数组元素的个数5. 下列程序的输出结果是#include"stdio.h”" main() { int i,a=0,b=0;for(i=1;i<10;i++) { if(i%2==0) {a ++;continue;} b++;} printf("a=%d,b=%d",a,b);}A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=56.向堆中插入一个元素的时间复杂度为________。
第一部分:程序修改题#include <math.h>#include <stdio.h>#include <string.h>#include <conio.h>void main(){ char str1[100], t[200];int i, j;/**/ i = 0; /**/ 改成j = 0;clrscr();strcpy(str1, "4AZ18c?Ge9a0z!");for (i = 0; i<strlen(str1); i++){/**/ if ((str1[i] %2== 0) && (i%2!=0)) /**/ 改成i%2 ==0 {t[j] = str1[i];j++;}}t[j] = '\0';printf("\n Original string: %s\n", str1); printf("\n Result string: %s\n", t); }#include <string.h>#include <conio.h>#include <math.h>#include <stdio.h>#define M 50double fun(int n){ double y = 0.0;int i,j;j=0;for(i=1;;i++){/**/ if((i<10)&&(i%3==0)) /**/ 改成i>10 {/**/ y+=1/i; /**/ 改成y+=1.0/i;j++;}if(j==n) break;}return y;}void main(){ clrscr();printf("fun(8) = %8.3lf\n", fun(8)); }#include <stdio.h>void main(){/**/ int i,j;/**/ 改成int i,j,k; for(i=1;i<=6;i++){for(k=1;k<=10+i;k++)printf(" ");for(j=1;j<=7-i;j++)printf("*")/**/ : /**/ 改成;printf("\n");}getch();}#include <stdio.h>#include <conio.h>/**/int fun();/**/ 该处不是函数说明,应该去掉分号{ int hen,cock,chicken,n=0;clrscr();for(cock=0;cock<=50;cock+=1)for(hen=0;hen<=100;hen=hen+1){ chicken=2*(100-hen-2*cock);/**/ if(cock+hen+chicken=100) /**/ 赋值号改成=={ n++;printf("%d-->hen:%d,cock:%d,chicken:%d\n",n,hen,cock,chicken);if(n==20) getch();}}return n;}void main(){ int num;num=fun();printf("\n There are %d solutions.\n",num); getch();}#include <stdio.h>#include <conio.h>void main(){ int m,n,result,flag=0;/**/ char ch, /**/基本语法错误,逗号改成分号clrscr();printf("Input an expression: ");scanf("%d%c%d",&m,&ch,&n);/**/ switch ch /**/基本格式错误,改成switch(ch) { case '+': result=m+n; break;case '-': result=m-n; break;case '*': result=m*n; break;case '%': result=m%n; break;case '/': result=m/n; break;default: { printf("Error!\n"); flag=1; }}if (!flag) printf("%d %c %d = %d\n",m,ch,n,result); getch();}#include <stdio.h>#include <string.h>void main(){char s[20]="table left 100",t[20];/**/ char tab[4,2]={{'a','f'},{'b','e'},{'e','a'},{'f','b'}}; /**/数组定义形式错误,改成char tab[4][2]int i,j=0;strcpy(t,s);while(t[j]){for(i=0;i<=3;i++){if(t[j]==tab[i][0]){/**/ t[j]=tab[i][2]; /**/改成t[j]=tab[i][1];break;}}j++;}printf("\nThe source string: %s\n",s);printf("\nThe target string: %s\n",t);getch();}#include <stdio.h>#include <string.h>main(){char str1[128];/**/ int i,len; sum=0; /**/基本语法错误,改成int i,len, sum=0; printf("\nPlease input the string: ");gets(str1);len = strlen(str1);for(i=0; i<len; i++){/**/ if( str1[i] >= '0' || str1[i] <= '9') /**/逻辑错误,||改成&& sum++;}printf("%d\n",sum);getch();}#include <stdio.h>#include <math.h>#define M 8main(){ int a[M],i;printf("Please input 8 numbers:\n");for(i=0; i<M; i++)scanf("%d", /**/ a[i] /**/);输入列表项必须指定地址,改成&a[i] printf("Inverse order is: \n");/**/ for(i=M-1; i<=0; i--) /**/ 循环判断条件表示错误,改成i>=0 printf("%d ", a[i]);printf("\n" );getch();}#include <stdio.h>#include <string.h>main(){/**/ char str1 /**/;此处必须定义成字符数组,改成char str1[50]int i,len, sum=0;printf("Please input a string:\n");scanf("%s", str1);len = strlen(str1);for(i=0; i<len; i++){if( str1[i] >= 'A' && str1[i] <= 'Z')/**/ sum--;/**/ 改成sum++;}printf("%d\n",sum);getch();}#include <stdio.h>#include <math.h>/**/ #include M 5/**/宏定义错误,改成#define M 5 main(){int a[M],i;printf("Please input 5 numbers:\n");for(i=0; i<M; i++)scanf("%d", &a[i]);printf("Even numbers:\n" );for(i=0; i<M; i++)/**/ if( a[i]/2 ==0) /**/判断偶数应该改成a[i]%2 ==0 printf("%d ", a[i]);printf("\n" );getch();}#include <stdio.h>#include <string.h>main(){char str1[128], str2[128];int i,len;gets(str1);len = strlen(str1);/**/ for(i=0; i>len; i++)/**/循环条件表示错误,改成for(i=0; i<len; i++) {if( str1[i] >= '0' && str1[i] <= '8')str2[i] = str1[i] + 1;else if(str1[i] == '9')str2[i] = '0';elsestr2[i] = str1[i];}/**/ str2[i] = '\n';/**/字符串的结束标识应该用'\0'表示puts(str2);#include <stdio.h>#include <string.h>void main(){char s1[30]="People's Republic of ", s2[]="China";char * ps1,*ps2;/**/ ps1 = NULL; /**/指针ps1指向字符串s1,改成ps1 = s1;ps2=s2;/**/ while(*ps1 == NULL) /**/判断是否到达串尾标识,应改成*ps1!='\0' ps1++;while(*ps2)*(ps1++) = *(ps2++);printf("\n%s\n",s1);}#include <stdio.h>#include <math.h>void main(){float a[3],s,area;int i;printf("Please input 3 numbers:\n");for(i=0; i<3; i++)scanf("%f",/**/ a[i] /**/);输入列表项必须指定地址/**/ if( a[0]+a[1]>a[2] || a[1]+a[2]>a[0] || a[0]+a[2]>a[1] ) /**/逻辑条件标识错误,||改成&&{s = (a[0]+a[1]+a[2])/2;area = sqrt(s*(s-a[0])*(s-a[1])*(s-a[2]));printf("area is %.2f\n",area);}elseprintf("error.\n");getch();}#include <stdio.h>#include <conio.h>/**/ void fun() /**/此处说明函数有返回值,改成int fun() {int large,middle,small,n=0;clrscr();for( large=0;large<=33;large++ )for( middle=0;middle<=50;middle++ )small = 2*(100-3*large-2*middle);/**/ if( large+middle+small=100 ) /**/ = 改成=={n++;printf("%d-->large:%d,middle:%d,small:%d\n",n,large,middle,small);}}return n;}void main(){int num;num = fun();printf("\n There are %d solutions.\n",num);}#include <stdio.h>void main(){int i;/**/ for( i=100; i<200; i++ );/**/for语句错误,此处去掉分号if((i-2)%4 == 0)if( !((i-3)%7) )if( i%9 == 5 )printf("%d\n",/**/ &i /**/); 去掉地址符号&getch();}#include <stdio.h>/**/ void swap(int p1,int p2) /**/改成void swap(int *p1,int *p2){int temp;temp = *p1;/**/ p1 = p2;/**/ 改成*p1 = *p2; *p2 = temp;}void main(){int a,b;printf("please input 2 numbers:\n"); scanf("%d%d",&a,&b);printf("\nOriginal: a=%d b=%d\n",a,b); swap(&a,&b);printf("\nResult: a=%d b=%d\n",a,b); getch();#include <stdio.h>void main(){int b,i;/**/ int a=c=0;/**/基本语法错误,改成int a=0,c=0;/**/ for( i=0,i<=100,i+=2 ) /**/for语句语法错误,改成for( i=0;i<=100;i+=2 ) {a+=i;b=i+1;c+=b;}printf("total of even numbers: %d\n",a);printf("total of odd numbers: %d\n",c-101);getch();#include <stdio.h>void main(){int x,y,z,i,result=520;for( x=1;x<10;x++ )for( y=1;y<10;y++ )/**/ for( z=1;z<10;z++ ) /**/z初值应为0,改成for( z=0;z<10;z++ ){i=100*x+10*y+z+100*y+10*z+z;/**/ if (i=result) /**/逻辑关系等于应该为i==resultprintf("x=%d,y=%d,z=%d\n",x,y,z);}getch();}#include <stdio.h>#define F(x) (x*x-2.3*x+5.6)/(x+8.2)void main(){float a=6.0,b=3.0,c;/**/ int s; /**/变量类型错误,改成float s; printf("\nPlease input c: ");scanf("%f",/**/ c /**/);输入列表项必须加地址&c /**/ s=F(a,b,c); /**/printf("\ns=%.2f\n",s);getch();}#include <stdio.h>void main(){printf("\nThe list is:\n");for(n=100;n<1000;n++){f=n%10; f为个位数s=(n%100)/10; s为十位数/**/t=n%100; /**/ t为百位数,应改成t=n/100;/**/if(t*t*t+s*s*s+f*f*f=n)/**/ =应改成==printf("%d ",n);}printf("\n");getch();}第二部分:程序填空题#include <stdio.h>{ /**/ long /**/ p;int i;p=1;/**/ for /**/(i=1;i<=8;i++)p=p*i;printf("\np=%ld", p); getch();}#include <stdio.h>void main(){int a,b,c;float f;clrscr();printf("Please input a b :");scanf("%d%d",&a,&b);f=/**/1.0*a/b /**/;c=/**/ (int) /**/ (f*100)%10;printf("\n a/b=%f The second decimal place is: %d\n",f,c); getch();}#include <stdio.h>#include <stdlib.h>int max,min;void find_max_min(int *p,int n){int *q;max=min=*p;for(q=p; q</**/ p+n/**/; q++)if(/**/ max<*q/**/ ) max=*q;else if(min>*q) min=*q;}void main(){int i,num[10];printf("Input 10 numbers: ");for(i=0;i<10;i++) scanf("%d",&num[i]); find_max_min(/**/ num/**/,10); printf("max=%d,num=%d\n",max,min); }#include <stdio.h>void main(){int a,b,k;int plu = /**/ 403/**/;for(a=1; a<10; a++)for(b=1; b<10; b++){k = (a*10+b) * /**/ (b*10+a)/**/ ;if(k==plu) printf("A = %d, B = %d\n",a,b); }}#include <stdio.h>void main(){int n,a,b;/**/a=0;b=0;/**/scanf("%d",&n);while(/**/ n!=0/**/){if(n>0) a++;else /**/ b++;/**/scanf("%d",&n);}printf("Positive integer: %d, negative integer: %d\n",a,b); }#include <stdio.h>#include <conio.h>int prime(int n){ int k,flag=1;for(k=2; k<=n/2+1; k++)if (n%k==0) { flag=/**/ 0/**/ ; break;} return flag;}void main(){ int num, a;clrscr();do{ printf("Please input an even number:");scanf("%d", &num);}while(num<=6||num%2==1);for(a=2;a<=num/2+1;a++)if(prime(a) && prime(/**/ num-a/**/))printf("\n %d = %d + %d ", num, a, num-a); }#include <stdio.h>#include <math.h>/**/ main()/**/{ float x,x0,f,f1;x=1.5;do{ x0=x;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;}/**/ while/**/(fabs(x-x0)>=1e-6); printf("the root is: %.2f\n",x);}#include <stdio.h>main(){/**/ char /**/ str[20];int i;float x;printf("Please input a string:\n");scanf("%s",/**/ str/**/ );i=0;while(str[i]){str[i]=/**/ str[i]^15;/**/i++;}printf("\n Target string: %s\n", str);getch();}#include <stdio.h>main( ){int a[5]={20,30,45,64,23};float m;/**/ float average(int pa[],int n);/**/ m=average(a, 5 );printf("Average=%f\n",m);getch();}float average(int pa[] ,int n){ int k;float avg=0.0;for(k=0;k<n;k++)avg=avg+/**/ pa[k]/**/;avg= avg/n;return avg;}#include <stdio.h>main(){/**/ char/**/ s[80];int i;printf("Please input a string:");for(i=0;(s[i]=getchar())!='\n';i++);s[i]='\0';for(i=0;s[i]!='\0';i++){ if(s[i]>='a'&&s[i]<='z')s[i]=s[i]-32;/**/ else if/**/( s[i]>='A'&&s[i]<='Z' )s[i]=s[i]+32;printf("%c",s[i]);}getch();}#include <stdio.h>#include <math.h>void sort(int a[], int m){ int i, j, t,swap;for( i=0; i< /**/ m-1 /**/ ; i++ ) {swap = 0;for( j=0; j < m-i-1; j++){if /**/ (a[j]<a[j+1]) /**/{swap = 1;t = a[j];a[j] = /**/ a[j+1] /**/;a[j+1] = t;}}if(!swap) break;}}void main(){int a[] = {23,55,8,32,18,2,9}; int i,k = sizeof(a)/sizeof(int); sort(a,k);for(i=0;i<k;i++)printf("%d ",a[i]);printf("\n");getch();}#include <stdio.h>#include <math.h>int fun(/**/ float a,float b,float c/**/) {float temp;int bTrue = 0;if(a<b){ temp = a;a = b;b = temp;}if(a<c){ temp = a;a = c;c = temp;}if( fabs(/**/ a*a/**/ - (b*b + c*c)) < 1.0e-15) bTrue = 1;return bTrue;}main(){float a,b,c;printf("Please input three numbers:\n");scanf("%f%f%f",&a,&b,&c);if( fun(a,b,c) == 1)printf("Yes\n");elseprintf("No\n");getch();}#include <stdio.h>main(){ int x;printf("Please input a number:\n");scanf("%d",/**/ &x/**/);printf("%d*%d=%d\n", x,x,/**/ x*x/**/);getch();}#include <stdio.h>#include <math.h>void sort(int a[], int m){ int i, j, k, t;for( i = 0; i < m-1; i++ ){ k = i;for( j=i+1; j< /**/ m/**/; j++)if( a[j] < a[k] ) /**/ k=j/**/;if( k != i ){ t = a[k];a[k]= a[i];a[i] = /**/ t/**/;}}}void main(){int a[] = {72,25,58,32,2,15,7,64};int i,m = sizeof(a)/sizeof(int);sort(a,m);for(i=0;i<m;i++)printf("%d ",a[i]);printf("\n");getch();}#include <stdio.h>main(){float a,b,c,max;/**/float fmax(float x,float y,float z); /**/ printf("Please input 3 integer:\n"); scanf("%f%f%f",&a,&b,&c);max=fmax(a,b,c);printf("The max number is:%.2f\n", max); getch();}float fmax(float x,float y,float z){float m,n;n=(y>z)?y:z;m=/**/ (x>n)?x:n;/**/return(m);}#include <stdio.h>#include <math.h>main(){int i,/**/ j /**/;int a[4][4],sum;sum=/**/0 /**/;printf("Please input 16 numbers:\n"); for(i=0; i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);for(i=0;i<4;i++)/**/ sum+=a[i][0]; /**/printf("%d\n",sum);getch();#include <stdio.h>int fun(int a[],int n,/**/int q /**/){int left,right,mid;left= 0 ;right = n-1;while(left <= right){ mid= /**/(left+right)/2 /**/;if( q < a[mid] ) right = mid-1;else if( q > a[mid]) left = mid+1;else return mid;}return -1;}main(){ int a[]={3,4,6,11,17,22,31,45};int k,n;n = sizeof(a)/sizeof(int);k = fun(a,n,31);printf("%d\n",k);getch();}#include <stdio.h>#include <math.h>int fun(/**/float r /**/,float x,float y) {int bIn;bIn = /**/sqrt(x*x+y*y) /**/ < r ; return bIn;}main(){float r=-1,x,y;int bIn;while(r<0){ printf("Please input radius r (r>0):\n");scanf("%f", &r);}printf("Please input the dot(x,y):\n");scanf("%f%f",&x,&y);bIn = fun(r,x,y);if(bIn == 1)printf("in the circle!\n");elseprintf("out of the Circle!\n");getch();}#include<stdio.h>/**/#include<math.h> /**/ double fun(double x){/**/return x*x-2*x+6; /**/ }void main(){double x,y1,y2;clrscr();printf("Please input x:"); scanf("%lf",&x);y1=fun(x+8);y2=fun(/**/sin(x) /**/); printf("\nf(x+8)=%.3lf",y1); printf("\nf(sinx)=%.3lf",y2);}#include<stdio.h>double fun(unsigned m,unsigned n) {unsigned i;double p=1.0;for(i=1;i<=m;i++)/**/p=p*i;/**/for(i=1;i<=n;i++)/**/p=p/i; /**/for(i=1;i<=m-n;i++)p=p/i;return p;}{clrscr();printf("p=%f\n",fun(13,7));getch();}#include<stdio.h>int findmax(int* array,int size);void main(){int a[]={33,91,23,45,56,-12,32,12,5,90};clrscr();printf("The max is %d\n",/**/findmax(a,10) /**/);getch();}int findmax(int *array,int size){int i, /**/max=*array/**/; for(i=1; i<size; i++)if(array[i]>max) max=array[i]; return max;}#include<stdio.h>unsigned sum(unsigned n){unsigned i,/**/sum=0;/**/for(i=1;i<=n;i++)sum+=i;/**/return sum;/**/}。
2023年福建省三明市全国计算机等级考试C语言程序设计模拟考试(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、2.填空题(10题)1. 下列程序的输出结果是______。
main(){ int i=0,a=0;while(i<20){ for(;;){ if((i%10)==0)break;else i--;}i+=11;a+=i;}printf("%d\n",A) ;}2. 类是一个支持集成的抽象数据类型,而对象是类的【】。
3. 对有14个结点的完全二叉树的结点以从上到下、从左到右的顺序进行编号后,序号最小的叶结点的序号【】。
4. 数据的逻辑结构有线性结构和______两大类。
5. 下面rotate函数的功能是:将n行n列的矩阵A转置未AT,例如:请填空#define N 4void rotate(int a[][]){ int i,j,t;for(i=0;i<N;i++)for(j=0;【】;j++){ t=a[i][j];【】; a[j][i]=t; }}6. 有以下程序main(){ int n=0,m=1,x=2;if(!n)x-=1;if(m)x-=2;if(x)x-=3;printf("%d\n",x);}执行后输出结果是【】。
7. 在数据库理论中,数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型、改变数据间联系等,不需要修改相应的应用程序,称为【】。
8.以下程序的功能是:利用指针向三个整型变量,并通过指针运算找出三个数中最大值,输出到屏幕上。
请填空main(){int x,y,z,max,*px,*py,*pz,*pmax;scanf("%d%d%d",&x,&y,&z);px=&x;py=&y;pz=&z;pmax=&max;if(*pmax<*py)*pmax=*py;if(*pmax<*pz)*pmax二*pz;printf("max=%d\n",max);}9. 下述函数统计—个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。
2022年福建省三明市全国计算机等级考试C语言程序设计测试卷(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、2.填空题(10题)1. 面向对象的模型中,最基本的概念是对象和______。
2. 以下程序的输出结果是【】。
main(){ unsigned short a=65536; int b;printfC%d\n",b=a);}3. 关系数据库管理系统能实现的专门关系运算包括选择、连接和【】。
4. 设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。
5. 软件定义时期主要包括______和需求分析两个阶段。
6.当数据的物理结构(存储结构)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的_______。
以下程序的输出结果是#include<stdio.h>void prt(int *x,int *y,int*z) {printf("%d,%d,%d\n",++*x,++*y,*(z++));} main() {int a=10,b=40,c=20;prt(&a,&b,&c);prr(&a,&b,&c);}7. 在关系模型中,把数据看成一个二维表,每一个二维表称为一个______。
8. 设有以下结构体类型:struct st{ charname[8];int num;float s[4];}student[50];并且结构体数组student中的元素都已有值。
若要将这些元素写到硬盘文件fp中,请将以下fwrite语句补充完整:fwrite(student,【】,1,fp);9. 下列程序的输出结果是______。
#include<stdio.h>main(){ int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d %d",x--,y);}10. 以下程序的输出是【】。
百度文库 - 让每个人平等地提升自我 1 编程题: 第1套 1. 打开考生文件夹中的Cprog011.C,完成其中的fun1函数,该函数的数学表达式是:
1sin1()1xxefunxx
例如:fun1(0.76) = 2.175 fun1(3.00) = 5.307 fun1(3.76) = 9.111 2. 打开考生文件夹中的Cprog012.C,完成其中的函数fun2(int a[ ], int n, int b[ ], int c[ ]),实现: (1)将数组a中大于-20的元素,依次存放到数组b中; (2)将数组b中的元素按照从小到大的顺序存放到数组c中; (3)函数返回数组b中的元素个数。 Cprog011.C double fun1(double x) { /**/ double y = 0.0; y=(1+sin(x)+exp(x))/(1+x); return y; /**/ } Cprog012.C int fun2(int a[],int n,int b[],int c[]) { /**/ int j = 0; int i,t,k; for(i=0;iif(a[i]>-20) { c[j]=b[j]=a[i]; j++; } for(i=0;ifor(k=i+1;kif(c[i]>c[k]) { t=c[i]; c[i]=c[k]; c[k]=t; } return j; /**/ } 第2套 1. 打开考生文件夹中的Cprog021.C,完成其中的函数fun1,该函数的数学表达式是:
|6|1()1.3xexfunxx
例如:fun1(0.76) = 3.582 fun1(3.00) = 5.369 fun1(3.76) = 8.931 2. 打开考生文件夹中的Cprog022.C,完成其中的函数fun2(char a[ ], char b[ ], char c[ ]),实现:将三个字符串a、b、c从小到大排序后输出。 注意:字符串比较函数为strcmp(str1,str2),字符串赋值函数为strcpy(str1,str2)。 Cprog021.C 百度文库 - 让每个人平等地提升自我 2 double fun1(double x) { /**/ double y = 0.0; y=(exp(x)+fabs(x-6))/(x+1.3); return y; /**/} Cprog022.C void fun2(char a[],char b[],char c[]) {/**/ char str[100]; if (strcmp(a,b)>0) { strcpy(str,a);strcpy(a,b);strcpy(b,str);} if(strcmp(b,c)>0) { strcpy(str,b);strcpy(b,c);strcpy(c,str);} if(strcmp(a,b)>0) { strcpy(str,a);strcpy(a,b);strcpy(b,str);}/**/} 第3套 1. 打开Cprog031.C,完成其中的函数fun1,该函数的数学表达式是:
1.231()103213xfunxxxx
=
例如:fun1(0.76) = 1.200 fun1(3.00) = 10.000 fun1(3.76) = 8.520 2. 打开Cprog032.C,完成其中的函数fun (char *s),使程序实现统计输入字符串中空格的个数。 Cprog031.C double fun1(double x) {/**/ double y = 0.0; if(x==3) y=10; else if(x<3) y=1.2; else y=2*x+1; return y; /**/ } Cprog032.C int fun(char *s) { /**/ int n=0; char *p=s; while(*p) { if(*p==' ') n++; p++; } return n; /**/} 百度文库 - 让每个人平等地提升自我 3 第4套 1. 打开程序Cprog041.C,完成其中的fun ( )函数,使其计算:
00()||3.20sin()2xfxxxx
如 输入: 12 输出: f(12.000)=10.387 输入: 32.25 输出: f(32.250)=12.935 输入: 0.113 输出: f(0.113)=1.568 2. 打开程序Cprog042.C,完成其中的fun ( )函数,使程序打印出Fibonacci数列的前20个数。该数列(1, 1, 2, 3, 5, 8, 13, ……)的第1、第2个数为1,从第3个数开始每个数等于前2个数之和。 Cprog041.C double f(float x) {/**/ double y; if (x<=0) y = 0; else y = (fabs(x)+3.2)/(sin(x)+2); return y;/**/} Cprog042.C void fun(int a[],int m) { /**/ int i; a[0]=1; a[1]=1; for(i=2; ia[i] = a[i-2] + a[i-1];/**/} 第5套 1. 打开程序Cprog051.C,完成其中的f ( )函数,使其计算: 5.8||||700()cos()2.11||700xxfxxx
如 输入: 0.4 输出: f(0.40)=0.82 输入: 1.5 输出: f(1.50)=1.24 输入: 780 输出: f(780.00)=-1.00 2. 打开程序Cprog052.C,完成其中的fun ( )函数,使其判断一个矩阵是否为对称矩阵,若矩阵对称返回1,不对称返回0。说明:矩阵a是一个二维数组,若其中的第k行第j列的元素与第j行第k列的元素相同,则称其为对称矩阵,否则为非对称矩阵。 如 输入:6 3 12 如 输入:6 9 12 3 18 8 3 18 8 12 8 7 34 8 22 输出:Yes 输出:No 百度文库 - 让每个人平等地提升自我 4 Cprog051.C double f(float x) {/**/ double y; if (fabs(x)<=700) y = sqrt(5.8+fabs(x))/(cos(x)+2.1); else y = -1; return y; /**/} Cprog052.C int fun(int a[][3],int m) { /**/ int flag =1; int i, j; for(i = 0; ifor(j = 0; jif(a[i][j] != a[j][i]) flag = 0; return flag; /**/} 第6套 1. 打开程序Cprog061.C,完成其中的f ( )函数,使其计算:
3||300()lg(||2.6)1||300xxfxxx
如 输入: 0.8 输出: f(0.80)=0.96 输入: 4.5 输出: f(4.50)=107.05 输入: 725 输出: f(725.00)=-1.00 2. 打开程序Cprog062.C,完成其中的fun ( )函数,使其实现四则运算功能。 如 输入:3.2 2.1 输出:3.20+2.10=5.30 3.20-2.10=1.10 3.20*2.10=6.72 3.20/2.10=1.52 Cprog061.C double f(float x) { /**/ double y; if (fabs(x)<=300) y = pow(x,3)/log10(fabs(x)+2.6); else y = -1; return y; /**/} Cprog062.C 百度文库 - 让每个人平等地提升自我 5 float fun(float a,char flag,float b) { /**/ float y; switch(flag) case ‘+’: y = a+b; break; case ‘-‘: y = a-b; break; case ‘*’: y = a*b; break; case ‘/’: y = a/b; return y; /**/} 第7套 1. 打开程序Cprog071.C,完成其中的f(x)函数,使对其输入的一个月工资数额,求应交税款。设应交税款的计算公式如下: 01600(1600)5%16002100()(1600)10%2521003100(1600)15%1253100xxxfxxxxx
例如 输入: 1825 输出: f(1825)=11.25 输入: 2700 输出: f(2700)=85.00 输入: 5655 输出: f(5655)=483.25 2. 打开程序Cprog072.C,完成其中的fun ( )函数,该函数将4阶矩阵A的各行中0之前的所有正数依次存放到数组b中,并返回这些正数之和。如矩阵A为 1234012131421230243132330
则调用函数fun( )后,b[0]为1,b[1]为2,b[2]为23,b[3]为32,函数返回58。 Cprog071.C double f(float x) {/**/ double y; if (x<=1600) y=0; else if (x<=2100) y = (x-1600)*0.05; else if (x<=3100) y = (x-1600)*0.1-25; else y = (x-1600)*0.15-125; return y; /**/} Cprog072.C int fun(int a[][COL],int row,int b[]) {/**/ int x=0,i,j,k=0;