下面的函数是完成1~n的累加,完成函数。
a(int k)
{if(k<=0)printf("error\n");
if(k==1) 【18】 ;
else 【19】 ;}
第1题:
字符串str由数字字符‘0’和‘1’组成(长度不超过8个字符),可看作二进制数,请补充函数fun(),该函数的功能是:把str字符串转换成十进制数,结果由函数返回。例如,输入“1001”,结果输出:9。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio.h>
include<stdlib.h>
include<string.h>
int fun(char *str)
{
int n;
char *p=str;
【 】;
p++;
while (*p)
{
n=【 】;
p++;
}
return【 】;
}
main()
{
char str[9];
int i;
int n;
printf ("Enter a string made up of '0' and
'1' digital character:");
gets (str);
if (strlen(str)>8)
{
printf ("Error:string too longer!
please input again !\n\n");
exit(0);
}
for(i=0;str[i];i++)
if(str[i]<'0'||str[i]>'1')
{
printf("Error:%c not is '0'and
'1' digital character !\n\n",
str[i]);
exit(0);
}
printf("The original string:");
puts(str);
n=fun(str);
printf("\n%s is convered to decimal
number:%d\n\n",str,n);
}
第2题:
阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。
[说明]
函数int psort(int a[],int n)实现将含n个整数的数组a[]的不同元素按从小到大顺序存于数组a[]中。实现方法是从未确定的元素列中找到最小元素并将a[]的第i最小元素交换至a[i]位置。如该最小元素比已确定的最后一个最小元素大,则将它接在已确定的元素序列的后面;否则,忽视该元素。
[C函数]
int psort(int a[],int n)
{int i,J,k,P;
for(i=0,k=0;i<(1);i++){
for(j=i+1, (2) ;j<n; j++)
if(a[p]>a[j])
p=j;
if(p!=i){
t=a[p];
a[p]=a[i];
a[i]=t;
}
if( (3) ) k++;
else if( (4) <a[i])
(5)=a[i];
}
return k;
}
int a[]={5,7,5,6,4,3,4,6,7};
main()
{int k,n;
for(k=0;k<(Sizeof a)/Sizeof(int);k++)
printf("%5d",a[k]);
printf ("\n\n");
n=psort(a,(sizeof(a))/sizeof(int));
for(k=0;k<n;k++)
printf("%5d",a[k]);
printf("\n\n");
}
第3题:
第4题:
请补充函数fun(),该函数的功能是计算下面公式SN的值:
例如:当N=50时,SN=71.433699。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<conio.h>
include<stdio.h>
double fun(int n)
{
double s=1.0,S1=0.0;
int k;
for(【l】;k<=n;k++)
{
s1=s;
【 】;
}
return【 】;
}
main()
{
int k=0;
double S;
clrscr();
printf("\nPlease input N=");
scanf("%d",&k);
s=fun(k);
printf("\ns=%lf",s);
}
第5题:
试题14
以下程序调用fun函数把x中的值插入到a数组下标为k的数组元素中。主函数中,n存放a数组中数据的个数。请填空。
#include <stdio.h>
void fun(int s[], int *n, int k, int x)
{ int i;
for(i=*n-1; i>=k; i- - ) s[ ___ ]=s[i];
s[k]=x;
*n=*n+______;
}
main()
{ int a[20]={1,2,3,4,5,6,7,8,9,10,11}, i, x=0, k=6, n=11;
fun(a, &n, k, x);
for(i=0; i<n; i++) printf(“%4d”,a[i]); printf(“\n”);
}