教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 综合文档 >

c语言复习题及参考答案(7)

来源:网络收集 时间:2026-08-23
导读: double fun(double x,int y) { ; double z; for(i=1,z=1; ;i++) z=z*x; ; } 12、下面的程序通过函数average计算数组中各元素的平均值。 float average(int pa[],int n) { int i; float avg=0.0; for(i=0;i avg=avg+

double fun(double x,int y) {

; double z;

for(i=1,z=1; ;i++) z=z*x;

; }

12、下面的程序通过函数average计算数组中各元素的平均值。 float average(int pa[],int n) { int i; float avg=0.0; for(i=0;i

avg=avg+ ; avg= ; return avg; } void main( )

{ int i,a[5]={2,4,6,8,10}; float mean;

mean=average( ,5); printf(―%f\\n‖,mean); }

13、以下程序根据输入的x ,求1到x的累加和。

float fun(int n) {int i;float c; ; for (i=1;i<=n;i++) c+=i;

; };

void main( ) {int x;

scanf(―%d‖, ); printf(―%f\\n‖,fun(x)); } }

四、程序改错题

1、下面的程序完成数值1到N之间的偶数之和。在main()函数中输入N值,并输出求和结果。在sum()函数中完成偶数累加,并把累加结果作为函数值返回。请更改程序中的五个错误。

- 31 -

注意:不得增行或删行,也不得更改程序结构。 #include int sum(int m) { int x,s; do { x=m%2; switch(x) { case 0:s=s+m; case 1:break; } m++; } while(m>2) return; }

void main( ) { int n;

printf(‖请输入N的值:‖); scanf(‖%d‖,n);

printf(‖偶数之和为%d‖,sum(n)); }

( )改为:( ) ( )改为:( ) ( )改为:( ) ( )改为:( ) ( )改为:( )

2、下面的程序完成统计字符串中大写字母的个数。在main()函数中输入一字符串(字符个数不超过80个),并输出统计结果。在UpperNum()函数中统计字符串str中的大写字母个数,并作为函数值返回。请更改程序中的五个错误。

注意:不得增行或删行,也不得更改程序结构。 #include int UpperNum(char str[]) { int n,i=0; while((str+i))

{ if (str[i]>= \ } return i; }

void main( ) {char str[];

- 32 -

i++;

n++;

printf(\ scanf(―%s‖,str);

printf(\}

( )改为:( ) ( )改为:( ) ( )改为:( ) ( )改为:( ) ( )改为:( )

五、编程题(以下各题均用函数实现)

1、求出100—10000之间有多少个整数,它们的各位数字之和等于5。 2、写一个函数,将两个字符串连接。

3、编程,设u、v取值为区间[-20,20]的整数,找出使f(u,v)取最大值的u和v。f(u,v)=(3.8*u*u+6.2*v-2*u)/(-1.2*6+3*v)。要求定义和调用函数计算f(u,v)的值。

4、编程,输入3个整数x、y、z,计算并输出s=x!+y!+z!。要求定义1个求阶乘的函数。

第八章

一、单项选择题

1、变量的指针,其含义是指该变量的________。

A、值 B、地址 C、名 D、一个标志

2、若有语句:int *point,a=4; 和 point=&a; 下面均代表地址的一组选项是 。 A、a,point,*&a B、&*a,&a,*point C、*&point,*point,&a D、&a,&*point ,point 3、若有说明:int *p,m=5,n; 以下正确的程序段的是________。

A、p=&n; B、p=&n; C、scanf(\D、p=&n; scanf(\ scanf(\ *p=n; *p=m; 4、下面程序段的运行结果是________。 char *s=\ s+=2;printf(\

A、cde B、 字符 'c' C、字符'c'的地址 D、无确定的输出结果 5、设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是 _______。

A、c=*p1+*p2; B、p2=c C、p1=p2 D、c=*p1*(*p2); 6、若有说明;int *p,m=5,n;以下正确的程序段的是________。 A、p=&n; scanf(\ B、p=&n; scanf(\C、scanf(\ *p=n; D、p=&n; *p=m;

7、若有说明语句char a[]=\ 则以下不正确的叙述是 __。 A、a+1表示的是字符t的地址 B、p指向另外的字符串时,字符串的长度不受限制 C、p变量中存放的地址值可以改变 D、a中只能存放10个字符

- 33 -

8、下面程序的运行结果是 _______。

#include #include void main( )

{ char *s1=\ char *s2=\ s1+=2;s2+=2;

printf(\ }

A、负数 B、零 C、正数 D、不确定的值 9、下面程序的运行结果是_______。

#include #include void fun(char *w,int n) {char t,*s1,*s2; s1=w;s2=w+n-1;

while(s1

void main( ) {char *p; p=\ fun(p,strlen(p)); puts(p); }

A、7654321 B、1714171 C、1711717 D、7177171 10、若有定义 :int a[5],*p=a; ,则对a数组元素的正确引用是_________。 A、*&a[5] B、a+2 C、*(p+5) D、*(a+2)

11、若有定义:int a[2][3], 则对 a 数组的第 i 行 j 列元素地址的正确引用为______。 A、*(a[i]+j) B、(a+i) C、*(a+j) D、a[i]+j 12、若有定义: int a[10],*p=a; ,则 p+5 表示_______。

A、元素a[5]的地址 B、元素a[5]的值 C、元素a[6]的地址 D、元素a[6]的值 13、设变量定义为 int a[4]={1,4,7,8},*p=&a[2];,则*p的值是 。 A、&a[2] B、4 C、 7 D、 1

14、若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为 。

A、p+1 B、a+1 C、a++ D、++p

15、要使指针变量p指向二维数组A的第一个元素(0行0列元素),正确的赋值表达式是 。

A、p=A或p=A[0][0] B、p=A[0]或p=A[0][0] C、p=A[0]或p=&A[0][0] D、p=A或p=&A[0][0] 16、下列说法正确的是 。

- 34 -

A、空指针也称为void 指针,是一种不指向任何数据的指针。 B、空指针也称为无类型指针,是一种可指向任何类型数据的指针。 C、除了void指针外,任何非空指针都指向某种既定类型的数据。 D、void指针也称为无类型指针,是一种不指向任何数 …… 此处隐藏:2073字,全部文档内容请下载后查看。喜欢就下载吧 ……

c语言复习题及参考答案(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/404309.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)