p*=x; s+=p/(i+1); } return s; }
函数功能为:
计算x+x2/2+x3/3+……+xn/(n+1)的值
4. #include
if(i<=0)return 0;else return 1; }
函数功能为:
判断一个整数是否是素数
5. #include
char a[10]; int i=0,rem; do{
rem=x; x=x/16;
if(rem<10)a[i]=48+rem;//'0'字符的ASCII码为48 else a[i]=65+rem; //'A'字符的ASCII码为55 i++; }while(x!=0);
while(i>0)printf(\ printf(\}
函数功能为:
将一个整数化成十六进制数
五、根据下列每个题目要求编写程序
1.编写一个函数,函数头格式为“void fun4(char *a , int b[])”,分别求出由字符指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素。 #include
if(*a>='0' && *a<='9')b[*a-48]++;
}while(*a++); }
2. 编写一个函数,函数头格式为“double Mean(double a[M][N] , int m , int n)”,要求返回二维数组a[m][n]中所有元素的平均值,假定在计算过程是采用变量v存放平均值。
#include
double Mean(double a[M][N], int m,int n ){        double v=0;        for(int i=0;i 3.       编写一个递归函数“int FF(int a[] , int n)”,求出数组a中所有元素n个元素之积并返回。 #include 4.       编写一个主函数,利用while循环,求出并显示满足不等式1+1/2+1/3+……+1/n>5的最小n值。 #include        double sum=0;        int n=1;        while(true)        {                if(sum + 1/(double)n > 5)break;               else                       sum += 1/(double)n;               n++;        }         printf(\}        5.       编写一个主函数,求满足不等式22+42+……+n2<1000的最大n值,假定分 别用i和s为取偶数值和累加值的变量,并限定使用do循环编程。 #include        int s=0,i=2;        do        {                s+=i*i;                if(s+(i+2)*(i+2)>=1000)break;               else i+=2;        }while(true);         printf(\}      6.       编写一个主函数,计算并输出n 的值,其中n值由键盘输入。 #include        int s=0,n;         printf(\请输入n的值:\       scanf(\       for(int i=1;i<=n;i++)               s+=i*i;         printf(\}      C语言程序设计形成性考核册参考答案作业三     一、             选择题  1.       在下面的(C)函数声明语句存在语法错误。  A.AA(int a,int b);     B.AA(int ,int)     C.AA(int a;int b)       D.AA(int a,int) 2.在下面的(C)不能作为函数的返回类型。 A.void      B.int     C.new      D.long 3.下面正确的函数原型语句是(B)。 A.int Function(void a);     B.void Function(int); C.int Function(a);         D.void int(double a);  4.函数调用func(exp1,exp2),exp3*exp4-exp5)中所含实参的个数为(B)个。 A.1     B.2     C.4       D.5  5.下面的标识符中,(C)是文件级作用域。  A.函数形参     B.语句标号     C.外部静态类标识符    D.自动类标识符 6.下面的标识符中,(B)具有全局级作用域。  A.函数形参     B.全局变量     C.内部静态类标识符    D.自动变量符 7.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大( C )字节。  A.1     B.2     C.4       D.8  8.假定a为一个字符数组名,则a[8]的地址比该数组的首地址大( B )个字节。 A.4     B.8     C.16       D.32  9.假定a为一个数组名,则下面的( B )表示有错误。 A.a[i]     B.*a++     C.*a       D.*(a+1)  10.用calloc函数创建具有10个整型元素的一维数组的正确语句是( C  )。 A.int *p=calloc(10,2);         B.int *p=callo(10; C.int *p=calloc(10,4);         D.int *p=malloc(10);  11.假定变量m定义为“int m=7;”,则定义p的正确语句为( B )。 A.int p=&m;     B.int *p=&m;     C.int &p=*m;       D.int *p=m;  12.假定k是一个double类型的变量,则定义指向k的变量p的正确语句为( B  )。 A.double p=&k;        B.double *p=&k;     C.double &p=*k;       D.char  *p=”Thank you!”;  13.假定一条定义语句为“int a[10],x,*pa=a;”,若要把数组a中下标为3的元素赋值给x,则不正确的语句为(  D  )。  A.x=pa[3];     B.x=*(a+3);     C.a=a[3];       D.x=*pa+3;  14.假定有定义“int b[10];int *pb;”,则不正确的赋值语句为(  C  )。 A.pb=b;     B.pb=&b[0];     C.pb=b+2;       D.pb=b[5];  15.假定指针变量p定义为“int *p=new int(100);”,要释放p所指向的动态内存,应使用语句( D  )。  A.delete[p];     B.delete *p;     C.delete &p;       D.delete []p;  16.假定指针变量p定义为“int *p=calloc(30,sizeof(int));”,要释放p所指向的动态内存,应使用语句( D  )。  A.delete[p];     B.deldete(p);     C.free[]p;       D.free(p);              二、填空题  1.在C语言中,一个函数由函数头和___函数体_______组成。  2.在函数外定义的变量称为全局变量,若没有被初始化则系统隐含对它所赋的初值为___0______。  3.如果一个函数只允许同一程序文件中的函数调用,则应在访函数定义前加上的C保留字为为___static______。  4.如果一个函数直接或间接地调用自身,这样的调用被称为__递归_____调用。 5.调用系统函数时,要先使用#include命令包含该函数的原型语句所在__头___文件。  6.函数形参的作用域是该函数的__内部___。  7.假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为__25______。 8.假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为__46______。 9.假定p所指对象的值为25,p+1所指对象的值为46,则执行“*(p++);”语句后,p所指对象的值为__46______。  10.假定a是一个指针数组,则a+1所指对象的地址比a地址大__4___字节。 11.若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为___(char*)p______。  12.假定一个数据对象为int*类型,则指向该对象的指针类型为__int**______。 13.假定p是一个指向整数对象的指针,则用___&p___表示指针变量p的地址。 14.若p指向x,则___*p___与x的等价的。  15.NULL是一个符号常量,通常作为空指针值,它值为__ ’\\0’ (ASCII码0)___。        三、写出下列每个程序运行后的输出结果 1. #include               printf(\       case 'B':case 'b':               printf(\       case 'C':case 'c':               printf(\       default:printf(\       } }  void main(){         char a1='b',a2='C',a3='f';         SB(a1);SB(a2);       SB(a3);SB('A');        printf(\}    输出结果为: GGPPBBWW  Press any key to continue    2. #include double SD(int a,int b,char op){        double x;        switch(op){        case '+':x=a+b;break;        case '-':x=a-b;break;        case '*':x=a*b;break;        case '/':if(b)x=(double)a/b;               else exit(1);               break;         default:{(\运算符错!\\n\       }        return x; }  void main(){        int x=20,y=8;         printf(\       printf(\       printf(\}    输出结果为: 12.00 160.00 2.50 Press any key to continue    3. #include        printf(\}  void main(){        int x=18,y=23;         printf(\       WF(x,y);        x=2*x;         printf(\}    输出结果为: main:x,y=18,23 subs:x,y=41,64 main:x,y=36,23 Press any key to continue    4. #include        char s[15]=\       fun(s);        printf(\}  void fun(char ss[]){        int i,n=strlen(ss);        for(i=0;i 输出结果为: 432198765  Press any key to continue    5. #include        int i,j,x;         for(i=1;i               for(j=i-1;j>=0;j--)//为x顺序向前寻找合适的插入位置                      if(x>a[j])a[j+1]=a[j];                      else break;                      a[j+1]=x;        } }  void main() {        int i;         int a[6]={20,15,32,47,36,28};        InsertSort(a,6);         for(i=0;i<6;i++)printf(\       printf(\}  输出结果为: 47 36 32 28 20 15 Press any key to continue    6. #include void main(){         int a[8]={3,5,7,9,11,13,15,17};        int i,*p=a;        for(i=0;i<8;i++){;        printf(\       if( (i+1)%4==0 )printf(\       } }  输出结果为:     3     5     7     9    11    13    15    17 Press any key to continue    7. #include void main(){         int a[]={5,10,15,20,25,30};        int b=LA(a,4);        int c=LA(a+2,3);        printf(\}  输出结果为: 50 60  Press any key to continue    8. #include        for(i=0;i void main(){         int a[]={1,2,3,4,2,4,5,2};        int b=LB(a,4)+LB(&a[3],4);        printf(\}  输出结果为: b=184  Press any key to continue    四、写出下列每个函数的功能    1. #include 函数功能为:  根据整型数组元素中是否能找到整数x,返回1或0    2. #include 函数功能为:  返回数组中前n个其值大于等于k的元素之和        3. #include        printf(\