大一c语言期末试题及参考答案
- 格式:docx
- 大小:22.14 KB
- 文档页数:13
2004级信息学院《C 语言设计》考试试题
、判断下列语句或程序的对错。
10分 V
main ()
{
float a,b ;
float add_reasult, sub_result ; scanf (“%f,%f ”,a,b) ;
add_result=calculate(a,b,&sub_result) ; printf( “a*a+b*b=%d,a*a n ”,add_result,sub_result)
}
float calculate (float x,float
二 计算下列表达式的值 10分 设 unsigned int a=10,b=17,c=5,d=3;
float f ;
(1)f=b/c
( 3.0 ) (2)!(a+b)+c-1&&b+c/2 ( 1 ) (3)(aS)+(c»1+d) ( 0x1b ) (4)a+=b%=a=b ( 17 ) (5)a=2,b=a*++b
( 2 )
三 程序改错
10分
1) 求两个浮点数的平方和及平方差 sub); 添加函数原型声明
1 int x=y=z=' 0';
2 #include
号;
3 printf( “ %s n ”, ”c (X) y,z 没有定义
(X)不能有分号, language ”);
(V)
#开头的结尾均不能有分
4 float a[100]; int *p=a;
X) 数据类型不匹配 5 char str[20]; 6 int
data[4]={0,1,2,3,4}; 7 float x=1.45e+310L; 8 int xyz-1=2; 9 int x=‘ xae ' ;
10 int *p,a[2][3] ; p=a ;
(X) (X)数值越界
五个元素,但是只有四个单元
(X)
X) 数据类型不匹配
#include
float calculate (float x,float y,float float *temp; 应该直接定义为变量 float temp;
y,float *sub) 添加函数类型
sub=a*a-b*b ; *sub=a*a-b*b; temp = a*a+b*b;
return *temp; return temp
}
(2) 统计N 个字符中大写字母和数字字符的个数
#include
#define N 5
Count(char *str,int *result); 添加函数声明main ()
{
char string[N][80];
char i;
int Capital_Count =0,Num_Coun=t 0;需要初始化为0 for(i=0;i for(I=0;I Capital_Count+=Count(string[I] ,&Num_Count); Printf( “Capital count n” ,Capital_Count,Num_Count) ; } Count(char *str, int *result) { int temp,I ; int temp=0,i ;temp 应该初始化为0 for(I=0;I<80;I++) { If(str[I]>= 'A'&& str[I]<= 'Z') Temp++; If(str[I]> '0'||str[I]< '9') *result++; } return temp; } 四程序填空10 分 ( 答案参考书中p85~86) 3 ( 1)利用公式sin x=x-x /3!+x x=0.5,n=20 #include main() { float y,s,x,d,t; int n,I,j; scanf( “%d%”f ,&n,&x); s=1.0; for(I=2;I { d=t= _____________________________ ; for(j=1; _______________ ;j++) { d= __________________ ; t= _________________ ; } s=(-1)*s; y+= ______________ ; } (2)利用库函数char *strstr(char *sl,char *s2) 在给定字符串中查找子串最后(最右)一次出现的位置。如果S2并没有出现在S1的任何地方,函 数返回一个NULL 指针。如果第二个参数是一个空字符串,函数就返回S1; 注:库函数char strstr(char*s1, char*s2), 这个函数在S 1中查找子字符串S2第一次出现的起始位置,并返回一个指向该位置的指针。如果S2并没有出 现在S1的任何地方,函数返回一个NULL指针。如果第二个参数是一个空字符串,函数返回S1; ( 答案见书中p196~197) #include char str[80]= ”ABCdabcdfgabc”; char *p; p=my_strrstr(str, ”abc”); printf( “%s n”,p); p=my_strrstr(str, ” “); printf( “%s n”,p); } char *my_strrstr(char *s1,char*s2) char *last; char *current;