第二卷(共30分)
说明:程序填空题,在空栏处填入适当的字符、语句,以构成一个正确的C语言程序。每空栏3分,两大题共10个空栏,全对得30分。
试题一:
下面的程序是将一个十六进制数字字符串转换成与它等价的十进制整数值并输出。十六进制数的字符是从0到9和a到f或A到F。主函数负责收集字符,并判别它们是否是十六进制字符,函数htoi负责转换工作。
#include
#define maxline 100
#define eof -1
#define yes 1
#define no 0
int htoi();
main()
{ int c,i,isdigit;
char t[maxline];
i=0;
isdigit=no;
while((c=_______________)!=eof&&i
{ isdigit=yes;
t[i++]=___________;
}
else if(isdigit==yes)
{ isdigit=no;
t[i]=’\0’;
printf(“%d”,______________);
i=0;
}
}
}
int htoi(char *s)
{ int i,n;
n=0;
for(i=0;s[i]!=’\0’;i++)
{ if(s[i]>=’0’&&s[i]<=’9’) n=n*16+s[i]-______________;
if(s[i]>=’a’&&s[i]<=’f’) n=n*16+s[i]-‘a’+10;
if(s[i]>=’A’&&s[i]<=’F’) n=n*16+s[i]-‘A’+10;
}
return___________;
}
试题二:
以下程序的功能是应用近似公式计算 e
计算每项分母的值,共取nmax项之和作为e 的近似值。
近似公式:
e =1+x+x /2!+ x /3!+……+ x /(nmax-1)!
float f2(int n)
{ if(n==1)
return 1;
else return____________________;
}
float f1(float x,int n)
{ int i;float j=______________;
for(i=1;___________;i++)
j=j*x;
return j;
}
#define nmax 20
main()
{ float x,exp=1.0;int n;
printf(“input x value:”);
scanf(“%f”,&x);
printf(“%f\n”,x);
for(n=1;n
printf(“x=%f,exp(x)=%f\n”,x,_______________);
}
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
责任编辑:cyth