大一c语言期末试题及参考答案

  • 格式:docx
  • 大小:22.14 KB
  • 文档页数:13

下载文档原格式

  / 13
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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 #include void main(void) {

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;