大一c语言期末试题及参考答案Word格式文档下载.docx
- 文档编号:16761193
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:16
- 大小:19.02KB
大一c语言期末试题及参考答案Word格式文档下载.docx
《大一c语言期末试题及参考答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《大一c语言期末试题及参考答案Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
3.0)
(2)!
(a+b)+c-1&
&
b+c/2(
1)
(3)(a^b)+(c>
>
1+d)(0x1b
(4)a+=b%=a=b(17)
(5)a=2,b=a*++b(2
三
程序改错10
(1)
求两个浮点数的平方和及平方差
calculate
(float
x,float
y,float
*sub);
添加函数原型声明
main
()
{
a,b;
floatadd_reasult,sub_result;
scanf
(“%f,%f”,a,b);
add_result=calculate(a,b,&
sub_result);
printf(
“a*a+b*b=%d,a*a-b*b=%d\n”,add_result,sub_result);
}
*sub)添加函数类型
float*temp;
应该直接定义为变量
temp;
sub=a*a-b*b;
*sub=a*a-b*b;
temp
=
a*a+b*b;
return
*temp;
return
temp
(2)
统计
N
个字符中大写字母和数字字符的个数
#define
N5
Count(char
*str,int
*result);
添加函数声明
string[N][80];
chari;
Capital_Count=0,Num_Count=0;
需要初始化为
for(i=0;
i<
N;
i++)
scanf(
“%s”,&
string[i])
去掉&
符
for(I=0;
I<
I++)
Capital_Count+=Count(string[I],&
Num_Count);
Printf(“Capital
count
:
=%d,numbercount=%d\n”
Capital_Count,Num_Count)
*str,
*result)
inttemp,I
int
temp=0,i;
temp
应该初始化为
80;
If(str[I]>
=’A’&
str[I]<
=’Z’)
Temp++;
’0’||str[I]<
’9’)
*result++;
四
程序填空10
(答案参考书中
p85~86)
3
(1)利用公式sin
x=x-x
/3!
+x
x=0.5,n=20
#include<
main()
y,s,x,d,t;
n,I,j;
scanf(“%d%f”,&
n,&
x);
s=1.0;
____________________________;
for(I=2;
n;
d=t=__________________________;
for(j=1;
_______________;
j++)
d=________________;
t=________________;
s=(-1)*s;
y+=_____________________;
(2)利用库函数
*strstr(char
*sl,char
*s2)在给定字符串中查找
子串最后(最右)一次出现的位置。
如果
S2
并没有出现在
S1
的任何地方,函
数返回一个
NULL
指针。
如果第二个参数是一个空字符串,函数就返回
S1;
注:
库函数
strstr(char*s1,char*s2),这个函数在
中查找子字符
串
第一次出现的起始位置,并返回一个指向该位置的指针。
并没有出
现在
的任何地方,函数返回一个
NULL
如果第二个参数是一个空字符
串,函数返回
(答案见书中
p196~197)
string.h>
void
main(void)
str[80]=”ABCdabcdfgabc”;
*p;
p=my_strrstr(str,”abc”);
printf(“%s
\n”,p);
p=my_strrstr(str,”
“);
printf(“%s\n”,p);
*my_strrstr(char
*s1,char*s2)
*last;
*current;
_________________________;
if(________________________)
last=current=_____________;
While(______);
last=current;
current=_______;
last;
五.写输出结果(20
分)
(1)
fun(int*,int);
a[]={5,6,7,8},i;
fun(a,4);
4;
printf("
%d\n"
a[i]);
fun(int
*b,int
n)
i;
b[i]=i*2;
return;
2
4
6
(2)
i,j,max;
row=0,column=0;
a[3][3]={{1,2,3},{2,-3,4},{9,4,7}};
max=a[0][0];
3;
for(j=0;
j<
if(a[i][j]>
max)
max=a[i][j];
row=i+1;
column=j+1;
max=%d,row=%d,column=%d\n"
max,row,column);
(书中例题
5.5,p123)
max=9,row=3,column=1
(3)
n=1;
func();
static
x=5;
y;
y=n;
main:
x=%d,y=%d,n=%d\n"
x,y,n);
func()
x=4;
y=10;
x=x+2;
n=n+2;
y=y+n;
func:
x=5,y=1,n=1
x=6,y=13,n=3
x=5,y=1,n=3
(4)
struct
person
name[20];
count;
};
person
leader[3]={{"
li"
0},{"
zhang"
wang"
0}};
name[20],m,n;
for(m=1;
m<
7;
m++)
scanf("
%s"
name);
for(n=0;
n<
n++)
if
(!
strcmp(name,leader[n].name))
leader[n].count++;
break;
\n"
);
for(m=0;
m
%s:
leader[m].name,leader[m].count);
当程序运行时,键入情况如下:
Li
Wang
Lei
Zhang
写出程序的输出结果。
(基本上是书中例题)
Li:
Zhang:
1
Wang:
(5)
#include<
*name[]={"
capital"
"
index"
large"
small"
a,b,n=4;
for(a=0;
a<
n-1;
a++)
for(b=a+1;
b<
b++)
if(strcmp(name[a],name[b])>
0)
temp=name[a];
name[a]=name[b];
name[b]=temp
}在此之前是书中的例题
7.19
%s\n"
name[a]+a);
输出时应该能够识别指针及偏移情况
capital
ndex
rge
ll
六、编写程序(35
求一元二次方程
ax
+bx+c=0
的根,实系数
a,b,c
从终端输入,只考虑两
个不同实根和两个相同的实根(9
3.4,p66`67)
math.h>
a,b,c;
x1,x2;
x3,x4;
m;
input
the
numbers:
a,b,c"
%f%f%f"
&
a,&
b,&
c);
if(a==0)
is
error!
m=b*b-4*a*c;
if(m>
x1=(-b+sqrt(m))/(2*a);
x2=(-b-sqrt(m))/(2*a);
x1:
%.2fx2:
%.2f\n"
x1,x2);
else
if(m==0)
x1=x2=(-b+sqrt(m))/(2*a);
x1=x2=%.2f\n"
x1);
else
x3=-b/(2*a);
x4=sqrt(m)/(2*a);
x1=%.2f+%.2fi\n"
x3,x4);
x2=%.2f-%.2fi\n"
(2)编写一个函数,求
s=a+aa+aaa+--------+aaaaaaaaa-----a,其中
a
是一
个数字,例如
2+22+222+2222(此时
n=4)。
主函数
和
n
的输入,调用所函数
和输出所求的
累加和;
编写的函数完成计算。
(9
注意:
不得使用全局变量,注意程序结构
(书中习题
3:
4。
16)
long
Cal(long
a,long
n);
longsn=0;
longa,n;
please
n:
"
%d%d"
sn
Cal(a,n);
a+aa+aaa+...+aa...a=%ld\n\n"
sn);
sn=0,m=0;
m=m*10+a;
sn+=m;
sn;
(3)从十个字符串中找出所要的某个字符串,若能找到则把他删除,然后输出
新字符串;
若未找到则输出“”can
not
fond”.(9
s[10][80];
s2[80];
i,j;
num=0;
enter
string:
10;
gets(s[i]);
s2
gets(s2);
if(strcmp(s[i],s2)==0)
for(j=i;
9-num;
strcpy(s[j],s[j+1]);
i--;
num++;
10-num;
puts(s[i]);
(4)一个班有
个同学,修
门课从键盘输入他们的性名、学号、性别和成绩。
1)按平均成绩从高到底打印全班的成绩单。
2)求第三门课的平均分
3)找出平均分在
90
以上或全部功课在
85
以上的女生。
要求:
输入、输出、计算、排序和查找分别用函数实现,主函数只是调用这些
函数。
不得使用全局变量。
5
Student
number;
sex;
score[5];
aver;
Input(struct
Student
*stu);
Average(struct
*stu,float
*aver);
Sort(struct
Search(struct
score);
stu[N];
score=85.0;
aver3;
Input(stu);
Sort(stu);
Average(stu,&
aver3);
average3
aver3);
Search(stu,score);
*stu)
aver=0;
name:
gets(stu[i].name);
number
sex:
stu[i].number,&
stu[i].sex);
score(5):
5;
%f"
stu[i].score[j]);
aver
+=stu[i].score[j];
stu[i].aver
aver/5;
getchar();
N-1;
for(j=i+1;
if(stu[i].aver<
stu[j].aver)
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
NameNumbSexscore(5)aver\n"
%8s
%d%d%.2f%.2f%.2f%.2f%.2f
stu[i].name,
stu[i].number,
stu[i].sex,
stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],s
tu[i].score[4],
stu[i].aver);
*average3)
sum3=0;
sum3
+=
stu[i].score[2];
*average3=sum3/N;
score)
flag
=1;
\naver>
90score>
85\n"
flag&
(stu[i].score[j]>
if(stu[i].aver>
90.0&
flag)
\n\n"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大一 语言 期末 试题 参考答案