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

程序设计题(6)

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

例如,当a=45,b=12时,调用该函数后,c=1524。 #include #include

voidfun(inta,intb,long*c) {

*c=a/10+(b)*10+(a)*100+(b/10)*1000; }

main() {

inta,b; longc;

printf(\scanf(\fun(a,b,&c);

printf(\}

分析:本题考查:如何取出数值n的各个位;知道数值n的各个位,又如何表示该数值;指针型变量的使用。

本题中主要的问题是如何取出a和b的个位数和十位数,取出后如何表示成c中相应的位数。由于a和b都是只有两位的整数,所以分别对它们除10可得到它们的十位数,分别用10对它们求余可得到它们的个位数。得到后对应乘以1000、100、10、1就可得到c的千位数、百位数、十位数和个位数。注意:使用c时要进行指针运算。

36.请编写函数fun,其功能是:将放在字符串数组中的M个字符串(每串长度不超过N),按顺序合并组成一个新的字符串。

例如,若字符串数组中的M个字符串为{\则合并后的字符串内容应该是\#include #defineM3 #defineN20

voidfun(chara[M][N],char*b) {

inti,j,k=0;

for(i=0;i

main()

符并存放到一维数组b中,语句是b[k++]=a[i][j];。

{

charw[M][N]={\

chara[100]={\;

printf(\for(i=0;i

printf(\printf(\printf(\}

本题考查:字符串连接操作。本程序中第1个for循环的作用是对二维数组行的控制,第2个循环的作用是从同一行中取出字

37.编写函数fun,其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串放在b所指的数组中,n中存指定的下标。

例如,输入一个字符串world,然后输入3,则调用该函数后的结果为word。

21

#include #include #include voidfun(chara[],charb[],intn) { inti,k=0; for(i=0;a[i]!='\\0';i++) if(i!=n)/*将不是指定下标的字符存入数组b中*/ b[k++]=a[i]; b[k]='\\0'; } voidmain() { charstr1[LEN],str2[LEN]; intn; system(“CLS”) printf(\gets(str1); printf(\scanf(\fun(str1,str2,n); printf(\} 分析:本题考查:删除字符串中指定字符,我们一般采用保留非指定字符的方法。

本题要求删除字符串中指定下标的字符,即把非指定下标的字符保留,所以if语句条件表达式的内容是if(i!=n)。字符串最后不要忘记加上字符串结束标识'\\0'。

38.请编写函数fun,该函数的功能是:移动一维数组中的内容,若数组中又n个整数,要求把下标从0~p(含p,p小于等于n-1)的数组元素平移到数组的最后。

例如,一维数组中的原始内容:1,2,3,4,5,6,7,8,9,10;p的值为3。移动后,一维数组中的内容应为:5,6,7,8,9,10,1,2,3,4。

#include #defineN80

voidfun(int*w,intp,intn) {intx,j,ch;

for(x=0;x<=p;x++) {ch=w[0];

for(j=1;j

w[j-1]=w[j]; }

w[n-1]=ch;/*将0到p个数组元素逐一赋给数组w[n-1]*/ }

分析:本题考查:一维数组的应用。

本题要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后,可以根据输入的p值,通过for循环语句,将p+1到n-1(含n-1)之间的数组元素依次向前移动p+1个存储单元,即w[j-1]=w[j];,同时将0到p个数组元素逐一赋给数组w[n-1],也就是通过语句w[n-1]=ch;来实现此操作的。

22

main()

{inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; inti,p,n=15;

printf(\for(i=0;i

printf(\printf(\scanf(\fun(a,p,n);

printf(\for(i=0;i

printf(\printf(\}

39.请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。

例如,如二维数组中的数据为

??????

则字符串中的内容应是:WSHWSHWSHWSH #include #defineM3 #defineN4

voidfun(char(*s)[N],char*b) {inti,j,k=0;

for(i=0;i

for(j=0;j

{chara[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'

H','H','H','H'}}; inti,j;

printf(\for(i=0;i

printf(\

printf(\}

fun(w,a);

printf(\puts(a); printf(\??????

???????? ????

分析:看到程序后,很容易便能想到用循环嵌套的方法,本题中按列的顺序依次放到一个字符串中,所以列标变化慢,行标变化快。 注意第1个循环条件为i

40.编写函数fun,其功能是:根据以下公式计算s,并计算结果作为函数返回值,n通过形参传入。

??=1+

??????

++?+ ??+????+??+????+??+??+?+??例如:若n的值为11时,函数的值为1.833333

#include #include doublefun(intn) {

inti,s1=0; doubles=0.0; for(i=1;i<=n;i++)

{s1=s1+i;/*求每一项的分母*/ s=s+1.0/s1;/*求多项式的值*/ }

returns;

}

main() {intn; floatS;

system(\

printf(\scanf(\S=fun(n);

printf(\}

分析:本题考查:计算给定表达式的值,注意变量数据类型及强制转换操作。for循环语句,return语句。 此类计算表达式值的程序,首先需要根据题意分析表达式的规律,得出通项,然后再完成程序语句。 本题中表达式的规律是1+2+…+n的倒数之和,那么可以通过for循环语句来实现第1项到第n项的变化。

23

这里其实就是累加算法,方法是先根据题目要求定义变量,注意该变量的数据类型,然后对其进行初始化操作,因为该变量作用是累加器,所以初始值应为0(或0.0,这里根据变量数据类型来确定),再通过for循环语句来完成累加过程。 本题中s1用来表示每一项的分母,每一项的分母都是由前一项分母加项数。注意:由于s1定义成一个整型,所以在s=s+1.0/s1中不能把1.0写成1。

41.编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中。

例如,若s所指字符串中的内容为:\,其中字符A的ASCII码值为奇数,字符1的ASCII码值也为奇数,都应当删除,其它依此类推。最后t所指的数组中的内容应是:\。 #include #include #include voidfun(char*s,chart[]) {

inti,j=0,n; n=strlen(s); for(i=0;i

}

t[j]='\\0'; }

main() {

chars[100],t[100],Msg[]=”Pleaseenterstrings:”; printf(Msg) scanf(\fun(s,t);

printf(\}

分析:本题考查:ASCII码值为奇数或偶数的判定方法,同时掌握删除字符的思想,即重新保留非删除字符。

要删除ASCII码值为奇数的字符,也就是要保留ASCII码值为偶数的字符,由于最终是要求出剩余字符形成的新串,所以本题的算法是对原字符串从头到尾扫描,并找出ASCII码值为偶数的字符依次存入数组中。

42.请编写函数fun,该函数功能是:删除一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2223445666677899101010 删除后,数组中的内容应该是: 2345678910。

#include #defineN10

intfun(inta[],intn) {

inti,j=1;

for(i=1;i

if(a[j-1]!=a[i])/*若该数与前一个数不相同,则要保留*/

a[j++]=a[i];

returnj;/*返回不相同数的个数*/ }

main() {

inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20;

printf(\

24

for(i=0;i

43.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其它的*号全部删除。形参h已指向字符串中的第一个字母,形参p指向字符串的中最后一个字母。在编写函数时,不得使用C语言提供的字符串数。

例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****ABCDEFG********。在编写函数时,不得使用C语言提供的字符串函数。 #include #include #include

voidfun(char*a,char*h,char*p) {

inti=0; char*q=a;//将前导*号保存到a中 while(q

{a[i]=*q;q++;i++;}//继续遍历数组 while(q

a[i]=*q;//如果不是*保存到a中 i++; } q++;

}//将末尾*号保存到a中 while(*q)

{a[i]=*q;i++;q++;}

a[i]='\\0'; }

main() {

chars[81],*t,*f;

printf(\gets(s); t=f=s; while(*t) t++; t--;

while(*t=='*') t--;

while(*f=='*') f++;

fun(s,f,t);

printf(\puts(s); }

分析:本题考查:while循环语句,注意循环条件的设定;指针型变量。

本题的重点是要选择好判断条件,首先是需要判断前导*的结束,然后判断是否指向最后一个字母,最后补充尾部*,只要思路对了就可正确解答。

44.函数fun的功能是:将a、b的两个两位正整数合并成一个新的正整数放在c中。合并方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位依次放在变量c的千位和十位上。

25

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

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