77范文网 - 专业文章范例文档资料分享平台

《C语言程序设计》练习题(6)

来源:网络收集 时间:2019-04-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

#include

char *pp[2][3]={ \ \ \ \ \ \ main ( )

{ printf(\ /* ① */ printf(\ /* ② */

printf(\ /* ③ */ printf(\ /* ④ */ printf(\ /* ⑤ */ }

① A) a B) d C) i D) m ② A) a B) d C) i D) m ③ A) h B) l C) q D) w ④ A) k B) o C) u D) z

⑤ A) ijkl B) mnopqr C) stuvw D) xyz 【2.49】下面程序的输出结果是____。 #include struct str1 { char c[5]; char *s; };

void main( )

{ struct str1 s1[2]={ {\ struct str2

{ struct str1 sr; int d;

}s2={\ struct str1 *p[2]; p[0]=&s1[0]; p[1]=&s1[1];

printf(\ /* ① */ printf(\ /* ② */ }

① A) LMN B) MN C) N D) IJK ② A) O B) P C) Q D) R

【2.50】以下程序的输出结果是____。 #include struct st { int x, *y; }*p;

int s[]={10, 20, 30, 40};

struct st a[]={1, &s[0], 2, &s[1], 3, &s[2], 4, &s[3]}; void main() { p=a;

printf(\ }

26

A) 10 B) 11 C) 20 D) 21

【阅读程序题参考答案】 【2.1】参考答案:D

注释:程序中除法运算的两个操作数均是整型,运算结果也是整型。 【2.2】参考答案:B

注释:C语言允许在程序块(分程序)中说明变量。 【2.3】参考答案:C

注释:变量i中的负号传送给变量n后,因n是无符号数,已不作为负号处理。 【2.4】参考答案:D

注释:对变量x的――操作是后缀形式,变量x的减1操作要在执行完 printf函数之后才进行,所以变量x的值在输出的时候仍然保持原值10。 【2.5】参考答案:B

注释:C语言在执行printf()时,对函数中的表达式表列的处理顺序是从后向前,即先处理n- -,再处理n++,最后处理n,而且每一个表达式作为一个处理单元,也就是说在不同的表达式中自增自减运算是单独考虑的。 【2.6】参考答案:A 注释:逗号表达式的结果是用逗号分开的最后一个表达式的值,此题由于 c=='A'的值是0, 所以逗号表达式的值为0。 【2.7】参考答案: C

注释:在输出格式描述\中,m是输出总长度,n是实际字符的个数,这里m没有给出,则输出总长度就是实际输出字符的个数。 【2.8】参考答案: C 【2.9】参考答案:B 【2.10】参考答案:C 【2.11】参考答案:B 【2.12】参考答案:D 【2.13】参考答案:A 【2.14】参考答案: C 【2.15】参考答案:A 【2.16】参考答案: C

注释:在switch语句中,case本身仅起到语句标号的作用,不会改变语句的流程,执行break语句才能退出当前的switch语句。 【2.17】参考答案: D

注释:siwtch语句的表达式中,变量c是后缀的增一运算,第一次执行do-while循环时,执行case 'A'后面的语句。

【2.18】参考答案: D 【2.19】参考答案: B 【2.20】参考答案: B

注释:fabs()是浮点数绝对值函数。 【2.21】参考答案: A 【2.22】参考答案: C

注释:C语言允许在程序块(分程序)内说明变量,如果在程序块内说明的变量和程序块外的变量同名,在块外说明的变量在块内是不可见的。可将此题和【2.11】进行比较,加深理解。 【2.23】参考答案: C

27

【2.24】参考答案: B

【2.25】参考答案: ① D ② A 【2.26】参考答案:D 【2.27】参考答案: B

注释:输出结果为字符串长度。 【2.28】参考答案: D

注释:字符串拷贝函数strcpy()要求的两个参数都是字符串首地址。本题中第二个参数是字符串常量,接受这个字符串的第一个参量不是直接给出字符数组名,而是进行了地址运算后的结果。由于str字符串的长度是13,除2取整后是6,第一个参数给出的地址是字符数组str的首地址加6,也就是原来字符串中第二个空格的位置,把\从该处放入,字符串str变为\she\。

【2.29】参考答案: C

注释:main函数调用func函数时,第一个实参使用的是逗号表达式的值,也就是x+y的结果。由于对变量x、y、z进行的是后缀运算,所以函数func的参数值是13和8。 【2.30】参考答案: C

【2.31】参考答案: ① C ② A ③ C 【2.32】参考答案: B

注释:函数fun进行了递归调用,实际进行的运算是5×4×3×2×1×3×10。主函数内说明的局部变量w屏蔽了外部变量w,所以在主函数中外部变量w是不可见的,在调用printf函数时表达式\中w的值是10。 【2.33】参考答案: D

注释:main函数三次调用了函数funa,在funa函数中的静态变量c仅在第一次调用时进行了初始化,再次调用时不再对静态变量赋初值。 【2.34】参考答案: B

注释:main函数和num函数中都说明了变量a和b,由于它们是内部变量,所以它们分别在说明它们的函数内有效。外部变量x和y在函数num之后被说明,而在num函数中又要引用它们,所以在num函数中用关键字\说明变量x和y是一个外部变量,也就是通知计算机这两个变量在fun函数以外被说明,此处不是定义两个int型变量。 【2.35】参考答案: D

注释:函数f中的变量c是静态变量,仅在第一次调用函数f时它被初始化为3, 第二次调用函数f时c的值是4,第三次调用函数f时c的值是5。 【2.36】参考答案: D 【2.37】参考答案: D

注释:程序中有三个\分别在三个不同的函数中,这三个\都是自动变量,所以三个\分别局部于三不同的函数,在三个函数中对\的操作互不影响。 【2.38】参考答案: A 【2.39】参考答案: A

注释:*(++p)和*++p都是指针变量值前加1,第一次指向a[1],第二次指向a[2]; a+3是a[3]的地址。

【2.40】参考答案: ① D ② A

注释:如果FMT定义为\,则输出的16进制数据用小写字母表示。 【2.41】参考答案: A

注释:语句\表示将数组a中元素a[0]的地址赋给指针变量p,则p就是指向数组首元素a[0]的指针变量,\是取数组首元素的地址。对于指向数组首址的指针,p+i(或a+i)是数组元素a[i]的地址,*(p+i)(或*(a+i))就是a[i]的值。

28

【2.42】参考答案: B 【2.43】参考答案: D 【2.44】参考答案: D 【2.45】参考答案: A

注释:变量g是指向函数的指针,(*g)(a, b)是调用指针g所指向的函数。 【2.46】参考答案: C

注释:p是指针,pp是指向指针的指针。 【2.47】参考答案: A 注释:对于指向数组的指针变量可以做下标运算,p[i]和alpha[i]都是指向字符串的首地址,*p[i]取出字符串的第一个字符。

【2.48】参考答案: ① D ② A ③ D ④ D ⑤ B 注释:pp是一个二维指针数组,pp+1指向数组的第二维,*(pp+1)是第二维的起始地址,**(pp+1)是第二维第一个元素的地址,***(pp+1)是第二维第一个元素的内容,所以,①的参考答案应选D。*(pp+1)+1是第二维第二个元素的地址,*(*(pp+1)+1)是第二维第二个元素,(*(*(pp+1)+1))[4]则是第二维第二个元素所指字符串下标为4的元素,即是字符w,故③应当选D。 【2.49】参考答案: ① B ② C 【2.50】参考答案:D

三、程序填空题

导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。

【3.1】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2, 求π值。 #include double pi(long n) { double s=0.0; long i;

for(i=1; i<=n; i++) s=s+ ① ; return( ② ); }

【3.2】下面的程序的功能是求一维数组中的最小元素。 #include

void findmin(int *s, int t, int *k) { int p;

for(p=0, *k=p; p

void main()

{ int a[10], i, *k=&i; for(i=0; i<10; i++)

29

scanf(\ findmin(a, 10, k);

printf(\ }

【3.3】下面程序的功能是计算1-3+5-7+ …… -99+101的值。 void main()

{ int i, t=1, s=0;

for(i=1; i<=101; i+=2) { ① ; s=s+t; ② ; }

printf(\ }

【3.4】有以下程序段: s=1.0;

for(k=1; k<=n; k++) s=s+1.0/(k*(k+1)); printf(\

填空完成下述程序,使之与上述程序的功能完全相同。 s=0.0; ① ; k=0; do

{ s=s+d; ② ;

d=1.0/(k*(k+1)); }while( ③ ); printf(\

【3.5】下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 #include void main()

{ float x, amax, amin; scanf(\ amax=x; amin=x; while( ① )

{ if(x>amax) amax=x; if( ② ) amin=x; scanf(\ }

printf(\ }

【3.6】下面程序的功能是输出1到100之间每位数的乘积大于每位数的和的数。例如数字26,

30

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《C语言程序设计》练习题(6)在线全文阅读。

《C语言程序设计》练习题(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/613793.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: