还剩3页未读,继续阅读
文本内容:
5.2 填空题
(372) 设已定义chars[]=\Name\\Address\\n;则字符串s所占的字节数是_______
(373) 若有定义语句chars
[100]d
[100];intj=0i=0;且s中已赋字符串,请填空以实现字符串拷贝(注不得使用逗号表达式)while[i]{ d[j]=_________;j++;}d[j]=0;
(374) 若想通过以下输入语句使a中存放字符串1234b中存放字符5,则输入数据的形式应该是________Chara
[10]b;Scanfa=%sb=%ca%b;
(375) 对于以下递归函数f,调用f3的返回值是_____fintn{ returnn02*fn-1+fn-2:-1;}
(376) 以下函数调用语句中含有___个实参funcexp1exp2exp3exp4exp5;
(377) 下面程序的功能是在一个字符数组中查找一个指定的字符若数组中含有该字符则输出该字符在数组中第一次出现的位置下标值;否则输出-1请完成下面程序#includestdio.h#includestring.hmain{ charc=at
[50]; intnkj; getst; n=_______; fork=0;kn;k++ { if_______{j=k;break;} elsej-=1; printf%dj; }}
(378) 下面程序的功能是在三个字符串中找出最小的请填空#includestdio.h#inculdestring.h main{ chars
[20]str
[3]
[20]; inti; fori=0;i3;i++getsstr[i]; strcpys_______; ifstrcmpstr
[2]s0strcpysstr
[2]; printf%s\n________;}
(379) 下面程序段的运行结果是___charch[]=600;intas=0;fora=0;ch[a]=0ch[a]=9;a++{s=10*s+ch[a]-0;}printf%ds;
(380) 下列程序段的输出结果____intm;intfintx{ staticintk=0;x-=k++;returnx;}m=ff3;printf%dm;
(381) 下列程序段的输出是_____#include intfintm { staticintk=0; ints=0; for;k=m;k++s++; returns;}voidmain{ ints1s2; s1=f5; s2=f3; printf%d%sns1s2;}
(382) 补充下面程序函数 voidfchars[]chart[] { intk=0; whiles[k]=t[k] k++; }等价于 voidfchar*schar*t { while_____; }
(383) 下程序段的输出是_____#include stdio.hvoid fun{staticinta=5;a++;printfa=%d\na;}main{forinti=0;i2;i++fun;}
5.3 问答与设计
(384) 指出下面的函数的错误intsquarevolatileint*ptr { return*ptr**ptr; }
(385) 什么是递归recursion怎样使用递归
(386) 什么时候说明函数
(387) 为什么要说明函数原型
(388) 一个函数可以有多少个参数
(389) 什么是内部函数
(390) 如果一个函数没有返回值,是否需要加入return语句
(391) 说明为什么要禁止函数直接或间接调用自己?
(392) exit和return有什么不同
(393) 怎样把数组作为参数传递给函数
(394) 在程序退出main函数之后,还有可能执行一部分代码吗
(395) 什么时候用一条switch语句比用多条if语句更好
(396) switch语句必须包含default分支吗?
(397) switch语句的最后一个分支可以不要break语句吗
(398) 空循环nullloops和无穷循环infiniteloops有什么区别
(399) continue和break有什么区别
(400) 什么是重复处理iterativeprocessing
(401) 在C语言中表示真和假的最好方法是什么
(402) 请修改以下代码includestudio.hmain{}/*thisprogramprintsthenumberofweeksinayear./* ints s:=52; printTherearesweeksinayear;
(403) 函数名可以作实参吗?如果可以,请举例说明;如果不可以,请说明原因
(404) 如何定义和说明可变参数的函数?
(405) 如将求3次方函数a=powa
3.0;改为a=a*a*a;能够优化代码,说明原因
(406) 写函数htois,把由十六进制数字组成的字符串(前面可能包含0x或0X)转换成等价的整数值字符串中允许的数字为0~9,a~f、以及A~F
(407) 重写squeezes1s2函数,把字符串s1中与字符串s2中字符匹配的各个字符都删除掉
(408) 编写函数anys1s2,它把字符串s2中任一字符在字符串s1中的第一次出现的位置作为结果返回如果s1中没有包含s2中的字符,那么返回-1
(409) 编写一个函数setbitsxpny,返回对x做如下处理得到的值x从第p位开始的n位被置为y的最右边n位的值,其余各位保持不变
(410) 编写一个函数invertxpn,返回对x做如下处理得到的值x从第p位开始的n位被求反(即,1变成0,0变成1),其余各位保持不变
(411) 编写一个函数rightrotxn,返回将x向右循环移动n位所得到的值
(412) 在求反码时,表达式x=x-1用于把x最右边的值为1的位删除掉请解释一下这样做的道理用这一方法重写bitcount函数,使之执行得更快一点
(413) 使用条件表达式重写用于将大写字母转换成小写字母的函数lower
(414) 编写函数escapest,将字符串t拷贝到字符串s中,并在拷贝过程中将诸如换行符与制表符等等字符转换成诸如\n与\t等换码序列使用switch语句再编写一个具有相反功能的函数,在拷贝过程中将换码序列转换成实际字符
(415) 写函数expands1s2,将字符串s1中诸如a-z一类的速记等号在字符串s2中扩展成等价的完整列表abc..xyz允许处理大小写字母和数字,并可以处理诸如a-b-c与a-z0-9与-a-z等情况正确安排好前导与尾随的-
(416) 修改itoa函数使之改为接收三个变元第三个变元是最小域宽为了保证转换得的数(即字符串表示的数)有足够的宽度,在必要时应在数的左边补上一定的空格
(417) 编写一个函数ungetss,用于把整个字符串推回到输入中ungets函数要使用buf与bufp吗?它可否仅使用ungetch函数?
(418) 定义宏swaptxy,用于交换t类型的两个变元(使用分程序结构)
(419) 请比较一下值调用与引用调用的相同点和不同点
(420) 在函数调用时,实参与形参有哪几种对应关系?
(421) 用递归方法求N的阶乘
(422) 对于以下递归函数f,计算f3的值intfintk{ returnk0k*=2:fk-2+k;}
(423) 请编写函数sumnumber,返回正整数number的各位数字之和number是长整型如sum654321=21。