ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:36.38KB ,
资源ID:2314930      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2314930.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言上机练习题.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言上机练习题.docx

1、C语言上机练习题C语言上机考试练习题(1)说明:我们已经学习完成了基本数据类型、基本控制语句,以及数组、函数这些知识了,请同学们看看附件中的这些题目是否能够快速编写出来?可能有个别题目与过去的练习有些重复,请尽量不要去参考过去的答案。如果现在编写起来困难还很多,那你就要加倍努力了。1、编写一个程序,判定一个字符串是否是另一个字符串的子串,若是,返回子串在主串中的位置。要求:(1)在主函数中输入两个字符串,调用子函数cmpsubstr()判断,并在主函数输出结果。(2)子函数的返回值为-1表示未找到,否则返回子串的位置(起始下标)。#include#includevoid main() int

2、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=0)retu

3、rn(-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; c

5、har *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=(in

6、t)x/r; *(y1+i)=0; len2=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函数,并输出该函数返回的

7、统计结果。5、编写程序实现将键盘输入的一行字符按单词倒排输出。如键盘输入“I love you”,屏幕显示“you love I”。要求:(1) 编写一个函数intinvertion(char ch1, char ch2)实现按单词倒排字符串,第一个形参ch1接受实参传过来的原字符串,倒排后的新字符串通过第二个形参返回主函数,函数中还需要统计该字符串中共有多少个单词,函数最后返回字符串中包含的单词个数。(2) 主函数中输入字符串,调用子函数invertion,输出倒排后的字符串及字符串中包含的单词个数。#include#include#include#includevoid main() in

8、t invertion(char ch1, char 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+);

9、len1=len; for(i=0;*(ch1+i)!=0;i+) if(*(ch1+i)!= ) *(str+t)=*(ch1+i); /将ch1的单词转移到str上/ t+; else sum+; /单词个数加一/ *(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)

10、=0; return(sum);6、编写一个主函数以及一个函数maxlong(str)。要求是:(1)函数maxlong(str)找出字符串str中包含的第一个最长单词(用字符数组进行存储),并返回主调函数。(2)在主函数中输入一个字符串,假定输入字符串中只含字母和空格,空格用来分割不同单词;以该字符串作为参数调用maxlong函数,并输出返回的结果。#include#include#include#includevoid main() char *maxlong(char *str); char str100,*str0; gets(str); str0=maxlong(str); puts

11、(str0);char *maxlong(char *str) char *word,*str0; int t=0,i,max=0; for(i=0;*(str+i)!=0;i+) if(*(str+i)!= )t+;/t为单词字母个数/ else if(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);/将

12、最大的单词赋给str0/ *(str0+i)=0; return(str0);7、编写一个函数ad(a, m, n)找出一个m行n列的二维数组a中的“鞍点”;在主函数中输入二维数组的值(假设数组中任意两个数都不相等),并将它作为实参调用ad函数。所谓“鞍点”是指该位置上的元素在该行上最大,在该列上最小;一个二维数组中可能没有鞍点。#include#include#include#includevoid main() int *input(int m,int n); void print(int*p,int m,int n); int ad(int *p,int m,int n); int *p,m,n; while(!ad(p,m,n) printf(请输入行数:m,列数:n.n); m=n=7; p=input(m,n); print(p,m,n);int ad(int *p,int m,int n)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1