本系列资料由"韬略宏智" 授权发布,任何网站不得转载,否则追究法律责任。
1.填空题
下列给定程序中,函数fun()的功能是:求S的值。设
S=(22/(1*3))*(42/(3*5))*(62/(5*7))* …*(2k)2/((2k-1)*(2k+1))
例如,当k为10时,函数的值应为1.533852。
试题程序:
#include <conio.h>
#include <stdio.h>
#include <math.h>
double fun(int k)
{ int n;
double s,w,p,q;
【1】;
s=1.0;
while(n<=k)
【答案】
【1】n=1 【2】return s; 【3】)
【解析】
填空1:在这个空之前定义了整型变量n,下面紧接着对n的值进行了比较,可见该语句应该是对n进行赋值,由下面的语句我们可以看到n作为级数的项数应该从1开始,所以这里对n赋初值1。
3.编程题
请编写一个函数void fun(char a[],char b[],int n),其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。
例如,输入一个字符串world,然后输入3,则调用该函数后的结果为word。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<conio.h>
#define LEN 20
void fun(char a[],char b[],int n)
{
}
main()
{ char str1[LEN],str2[LEN];
int n;
clrscr();
printf("Enter the string:\n");
gets(str1);
printf("Enter the position of the string deleted:");
scanf("%d",&n);
fun(str1,str2,n);
printf("The new string is:%s\n",str2);
}
【答案】
void fun(char a[],char b[],int n)
{
int i,j=0;
for(i=0;i<LEN;i++)
if(i!=n)
{
b[j]=a[i];
j++;
}
b[j]='\0';
}
【考点】字符串、for循环语句、查找算法和参数传递。
【解析】
void fun(char a[],char b[],int n)
{
int i,j=0;/*分别定义字符串a和b的下标(i,j)并赋初值0*/
for(i=0;i<LEN;i++)/遍历字符串a*/
if(i!=n)/*把非指定下标的字符拷贝到形参字符串b中*/
{
b[j]=a[i];
j++;
}
b[j]=‘\0’;/*赋给形参字符串b结尾标志符’\0’*/
}
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |