for(i=1;i<=n;i++) { tmp=tmp*i; sum+=1.0/tmp; } return sum; }
二级 C_第13套上机题
【参考答案】在形参ss所指字符串数组中查找与形参t所指字符串相同的
串,找到后返回该串在字符串数组中的位置 (1)N (2)i (3) -1
【参考答案】从整数10到55之间,查找能被3整除且有一位上的数值是5的
数,把这些数放在b所指的数组中 (1)a2=k/10; (2)return i;
【参考答案】将字符串尾部的*号全部删除,前面和中间的*号不动。 void fun( char *a ) {
while(*a!='\\0') a++;
a--; /*指针a指向字符串的尾部*/ while(*a=='*')
a--;/*指针a指向最后一个字母*/
*(a+1)='\\0'; /*在字符串最后加上结束标志符*/ }
二级 C_第14套上机题
【参考答案】统计形参s所指的字符串中数字字符出现的次数,并存放在
形参t所指的变量中
(1) s[i] (2) '9' (3)*t=n
【参考答案】实现两个变量值的交换,规定不允许增加语句和表达式。 (1)t = *x ; *x = y ;
(2)return(t) ;或return t;
【参考答案】求出1~1000之间能被7或11整除,但不能同时被7和11整除的
所有整数,并将其放在a所指的数组中 void fun (int *a, int *n) {
int i,j=0;
for(i=1;i<=1000;i++)
/*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,
并放入数组a中*/
if((i%7==0||i==0)&&iw!=0) a[j++]=i; *n=j; }
二级 C_第15套上机题
【参考答案】下式前n项的和,当形参n的值为10时,函数返回:-
0.204491
(1) 1 (2) 2*i (3) (-1)
【参考答案】判断一个整数是否为素数,若是素数返回1,否则返回0。 (1)k++; (2)if(m==k)
【参考答案】找出一维整型数组元素中最大的值及其所在的下标,并通过
形参传回
void fun(int a[],int n, int *max, int *d) {
int i;
*max=a[0]; *d=0;
for(i=0;i 素的下标放入指针d所指的单元*/ if(*max {*max=a[i];*d=i;} } 二级 C_第16套上机题 【参考答案】计算 的前n项。若x=2.5,函数值为12.182340。 (1)1.0 (2)1 (3)i 【参考答案】找出100~n(不大于1000)之间三个位上的数字都相等的所有 整数,把这些整数放在s所指的数组中 (1)k=i; (2)b=k; 【参考答案】计算并输出给定10个数的方差例如,给定的10个数为95.0、 89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,则输出为S =11.730729。。 double fun(double x[10]) { double x1=0.0,s=0.0; int i; for(i=0;i<10;i++) x1=x1+x[i]; x1=x1/10; /*求10个数的平均值*/ for(i=0;i<10;i++) s=s+(x[i]-x1)*(x[i]-x1); return sqrt(s/10); /*求10个数的方差*/ } 二级 C_第17套上机题 【参考答案】在形参ss所指字符串数组中,将所有串长超过k的字符串中 后面的字符删除,只保留前面的k个字符 (1) [M] (2) N (3)'\\0' 【参考答案】当给指定精度的变量eps输入0.0005时,应输出Pi= 3.140578。 π/2=1+1/3+1/3×2/5+1/3×2/5×3/7+1/3×2/5×3/7×4/9+ (1)t=1.0; (2)return(s*2); 【参考答案】使字符串的前导*号不得多于n个,若多于n个,则删除多余 的*号;若少于或等n个,则不做处理,字符串中间和尾部的*号不删除。 void fun( char *a, int n ) { int i=0; int k=0; char *p,*t; p=t=a; /*开始时,p与t同时指向数组的首地址*/ while(*t=='*') /*用k来统计前部星号的个数*/ {k++;t++;} if(k>n)/*如果k大于n,则使p的前部保留n个星号,其后的字符依次存入 数组a中*/ { while(*p) { a[i]=*(p+k-n); i++; p++; } a[i]='\\0'; /*在字符串最后加上结束标识位*/ } } 二级 C_第18套上机题 【参考答案】把形参s所指字符串中下标为奇数的字符右移到下一个奇数 位置 (1) 1 (2) s[k]或*(s+k) (3) c 【参考答案】表达式 s=aa… aa-…- aaa - aa -a (1)long s=0, t=0; (2)t=t/10; 【参考答案】统计在tt所指的字符串中'a'到'z'26个小写字母各自出现的 次数,并依次放在pp所指的数组 void fun(char *tt, int pp[]) { int i; for(i=0;i<26;i++) pp[i]=0; /*初始化pp数组各元素为0*/ for(;*tt!='\\0';tt++) if(*tt>='a'&&*tt<='z') pp[*tt-'a']++; } 二级 C_第19套上机题 【参考答案】查找含有形参substr所指子串的所有字符串,并输出,若没 找到则输出相应信息 (1) N (2) substr (3) 0 【参考答案】 (1)fun(int x,int y, int z)或int fun(int x,int y,int z) (2)return j; 【参考答案】只删除字符前导和尾部的*号,串中字母间的*号都不删除。 void fun( char *a, int n,int h,int e ) { int i,j=0; for(i=h;i 除*/ a[j++]=a[i]; a[j]='\\0'; /*在字符串最后加上结束标识*/ } 二级 C_第20套上机题 【参考答案】首先从素数2开始,将所有2的倍数的数从数表中删去(把数 表中相应位置的值置成0); (1)a[i] (2)a[i] (3)0 【参考答案】为一个偶数寻找两个素数,这两个素数之和等于该偶数,并 将这两个素数通过形参指针传回主函数。 (1)y=1; (2)d=a-i; 【参考答案】计算并输出n(包括n)以内所有能被5或9整除的自然数的倒数 之和。 double fun(int n) { int i; double sum=0.0; for(i=1;i<=n;i++) if(i%5==0||i%9==0) sum+=1.0/i; return sum; } 二级 C_第21套上机题 【参考答案】将形参s所指字符串中下标为奇数的字符取出,并按ASCII码 大小递增排序,将排序后的字符存入形参p所指字符数组中,形成一个新 串。 (1)while(fabs(t)>=num) (2)t=s/n; 【参考答案】用下面的公式求π的近似值,直到最后一项的绝对值小于指 定的数(参数num)为止。 (1)t=i (2) i (3) '\\0'或0 【参考答案】删除一个字符串中指定下标的字符。 void fun (char a[], char b[], int n) { int i,k=0; for(i=0;a[i]!='\\0';i++) if(i!=n) /*将不是指定下标的字符存入数组b中*/ b[k++]=a[i]; b[k]='\\0'; /*在字符串最后加上结束标识*/ } 二级 C_第22套上机题 【参考答案】直到 <10-6。若x=2.5,函数值为12.182494。