C语言上机练习题(1) _828701982(15页).doc
《C语言上机练习题(1) _828701982(15页).doc》由会员分享,可在线阅读,更多相关《C语言上机练习题(1) _828701982(15页).doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-C语言上机练习题(1) _828701982-第 15 页C语言上机考试练习题(1)说明:我们已经学习完成了基本数据类型、基本控制语句,以及数组、函数这些知识了,请同学们看看附件中的这些题目是否能够快速编写出来?可能有个别题目与过去的练习有些重复,请尽量不要去参考过去的答案。如果现在编写起来困难还很多,那你就要加倍努力了。1、编写一个程序,判定一个字符串是否是另一个字符串的子串,若是,返回子串在主串中的位置。要求:(1)在主函数中输入两个字符串,调用子函数cmpsubstr()判断,并在主函数输出结果。(2)子函数的返回值为-1表示未找到,否则返回子串的位置(起始下标)。#include#i
2、ncludevoid main()int cmpsubstr(char *s1,char *s2);char str120,str250;char *s1=str1,*s2=str2;gets(str1);gets(str2);printf(%d,cmpsubstr(s1,s2);int cmpsubstr(char *s1,char *s2)int i,d,a=0,situation=0;d=strlen(s1);for(i=0;*(s2+i)!=0;i+)if(*(s1+a)=*(s2+i)a+;if(a=d)situation=1;break;else a=0;if(situation=
3、0)return(-1);else return(i-d+2);2、输入一个字符串,内有数字和非数字字符,如:a123x456 17960?302tab5876,将其中连续的数字作为一个整数,依次存放到数组a中。例如,123放在a0中,456放在a1中等等,统计共有多少个整数,并输出这些整数。要求:(1)在主函数中输入字符串,并输出结果。调用子程序处理字符串。(2)子函数的返回值为整数的个数。#include#includevoid main()int search(char *str,int *sum);char str100;int d,sum20,i;gets(str);d=search
4、(str,sum);for(i=0;i=0&*(str+i)=0&*(str+i-1)=0&*(str+i-1)=9)return(t+1);else return(t);3、编写一个主函数和子函数tran(x, r),要求是:函数tran(x, r)将十进制整数x转换成r进制数y(r在之间),x和r的值由主调函数(即主函数)传入,y的值需要返回主调函数进行输出。要求:y的值利用字符数组进行存储,数组的每一个元素存放y的一位数字字符。#include#include#include#includevoid main()char* tran(int x,int r);int x,r;char *
5、y;printf(Please input x & r =n);scanf(%d,%d,&x,&r);y=tran(x,r);puts(y);char* tran(int x,int r)int len1,len2,i,t;char *y1,*y2;len1=2+(int)log(double)x)/log(double)r);y1=(char*)malloc(len1*sizeof(char);for(i=0;x!=0;i+)t=x%r;if(t10)*(y1+i)=(char)(t+48);else *(y1+i)=(char)(t+87);x=(int)x/r;*(y1+i)=0;len
6、2=strlen(y1);y2=(char*)malloc(len2*sizeof(char);for(i=0;ilen2;i+)*(y2+i)=*(y1+len2-i-1);*(y2+i)=0;return(y2);4、编写一个主函数和函数tran(x),要求是:(1)函数tran(x)产生支付指定金额x(如234.78元)的各种面额人民币的数量(注意:尽量支付大面额的人民币),要求按元、5元、元、元、角、角、分、分八种面额进行统计,产生的结果存放在数组中返回主函数。(2)在主函数中输入一金额,并以该金额调用tran函数,并输出该函数返回的统计结果。5、编写程序实现将键盘输入的一行字符按单词
7、倒排输出。如键盘输入“I love you”,屏幕显示“you love I”。要求:(1) 编写一个函数intinvertion(char ch1, char ch2)实现按单词倒排字符串,第一个形参ch1接受实参传过来的原字符串,倒排后的新字符串通过第二个形参返回主函数,函数中还需要统计该字符串中共有多少个单词,函数最后返回字符串中包含的单词个数。(2) 主函数中输入字符串,调用子函数invertion,输出倒排后的字符串及字符串中包含的单词个数。#include#include#include#includevoid main()int invertion(char ch1, char
8、ch2);int len;char *ch1,*ch2;ch1=(char*)malloc(100);ch2=(char*)malloc(100);gets(ch1);len=invertion(ch1,ch2);puts(ch2);printf(%dn,len);int invertion(char ch1, char ch2)int i,j,t=0,len1,len,sum=0;char *str;str=(char*)malloc(10);for(i=0,len=0;*(ch1+i)!=0;i+,len+);len1=len;for(i=0;*(ch1+i)!=0;i+)if(*(ch1
9、+i)!= )*(str+t)=*(ch1+i);/将ch1的单词转移到str上/t+;elsesum+;/单词个数加一/*(ch2+len1)= ;len1=len1-t;for(j=0;jt;j+)*(ch2+j+len1)=*(str+j);/将str转移到ch2上/t=0;len1-;sum+;/最后一个单词转移到ch2上/*(ch2+len1)= ;len1=len1-t;for(j=0;jt;j+)*(ch2+j+len1)=*(str+j);*(ch2+len)=0;return(sum);6、编写一个主函数以及一个函数maxlong(str)。要求是:(1)函数maxlong(
10、str)找出字符串str中包含的第一个最长单词(用字符数组进行存储),并返回主调函数。(2)在主函数中输入一个字符串,假定输入字符串中只含字母和空格,空格用来分割不同单词;以该字符串作为参数调用maxlong函数,并输出返回的结果。#include#include#include#includevoid main()char *maxlong(char *str);char str100,*str0;gets(str);str0=maxlong(str);puts(str0);char *maxlong(char *str)char *word,*str0;int t=0,i,max=0;fo
11、r(i=0;*(str+i)!=0;i+) if(*(str+i)!= )t+;/t为单词字母个数/elseif(tmax)/比较t与之前最大的单词个数的大小/word=(str+i-t);max=t;t=0;/t初始化/if(tmax)/最后一个单词在循环中没有比较/word=(str+i-t);max=t;str0=(char*)malloc(max+1);for(i=0;imax;i+)*(str0+i)=*(word+i);/将最大的单词赋给str0/*(str0+i)=0;return(str0);7、编写一个函数ad(a, m, n)找出一个m行n列的二维数组a中的“鞍点”;在主函
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言上机练习题1 _82870198215页 语言 上机 练习题 _828701982 15
限制150内