例如,当a=45,b=12时,调用该函数后,c=1524。 #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
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 本题要求删除字符串中指定下标的字符,即把非指定下标的字符保留,所以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 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 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 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 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 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 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)在线全文阅读。
相关推荐: