下载

1下载券

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 2013级中国海洋大学C语言上机题库及答案

2013级中国海洋大学C语言上机题库及答案.doc

2013级中国海洋大学C语言上机题库及答案

rose那个夏天
2019-02-21 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《2013级中国海洋大学C语言上机题库及答案doc》,可适用于IT/计算机领域

中国海洋大学C语言上机考试题库以及答案(套)编写函数longfun(longx),它的功能是:将长整型参数x中每一位上为偶数的数依次取出,构成一个新数返回。高位仍在高位,低位仍在低位。例如:下面程序运行时输入:,程序输出:#include<stdioh>longfun(longx){inti,j,m,nfor(i=,m=,n=x>i){j=xif(j==){m=mn*jn=n*}x=(xj)}returnm}voidmain(){longa,bprintf("Enteranumber:")scanf("ld",a)b=fun(a)printf("b=ldn",b)}编写函数voidfun(intk,int*p),功能是:将参数k(≤k≤)所有的不相同质因子升序写入p所指的一维数组中,以作为所有质因子的结束标志。例如:下面程序运行时若输入,输出:若输入,输出:若输入,输出。#include<stdioh>#include<stringh>intcheck(intx){intifor(i=i<xi)if(xi==){returnbreak}if(i==x)return}voidfun(intk,int*p){intcheck(intx)inti,j=for(i=i<=ki){if(check(i)==ki==){pj=ij=}}pj=}voidmain(){intx,a={},ido{printf("Enteranumber():")scanf("d",x)}while(x<)fun(x,a)for(i=ai!=i)printf("d",ai)printf("n")}编写函数voidfun(int*x,intn),功能是:求出长度为n的数组x中的最大数与次最大数,并把最大数和a对调,次最大数与a对调,其余的数保持不变。下面程序运行时若输入:,则输出:。#include<stdioh>#defineNvoidfun(int*x,intn){}voidmain(){intaN,ifor(i=i<Ni)scanf("d",ai)fun(a,N)for(i=i<Ni)printf("d",ai)printf("n")}数组x中保存有n个整数,编写函数intfun(int*x,intn,float*w),对数组x进行如下操作:从第个元素起对每个元素求一个平均埴,并将这些均值依次存放在w所指的数组中。函数返回平均值的个数。例如:若输入n为,个数据为:,则只为前个求均值,输出结果为:#include<stdioh>intfun(int*x,intn,float*w){inti,j,sfor(i=i<(n)i){s=for(j=i*j<(i*)j)s=s*(xj)*(wi)=s}return(n)}voidmain(){inta,i,n,mfloatbprintf("Inputanumber:")scanf("d",n)for(i=i<ni)scanf("d",ai)m=fun(a,n,b)for(i=i<mi)printf("f",bi)printf("n")}编写函数intfun(intx,longinty),功能:计算满足表达式xxxxn<y的最大的n并作为函数返回值带回。例如,当x=,y=时,程序输出。#include<stdioh>#include<stringh>intfun(intx,longinty){inti,s=for(i=s<yi)s=spow(x,i)returni}voidmain(){intxlongyscanf("dld",x,y)printf("n=dn",fun(x,y))}编写函数intfun(char(*ss)N,intm,char*s),功能是:形参ss指向一个m行N列的二维字符数组,每行存放一个字符串。求出最长的字符串,复制到s所指的字符数组中,然后返回此最长字符串的长度。#defineN#include<stdioh>#include<stringh>intfun(char(*ss)N,intm,char*s)inta,istrcpy(s,ss)for(i=i<mi)if(strlen(s)<strlen(ssi))strcpy(s,ssi)a=strlen(s)return(a)}voidmain(){charaN,bNinti,lenfor(i=i<i)gets(ai)len=fun(a,,b)printf("len=d,str=sn",len,b)}编写函数intcountw(char*str),统计字符串str中单词的个数。单词之间以空格,逗号,句号作分隔,数字也看做单词。单词之间可能不止一个分隔符。如输入:It's:o'clock,Iamlate屏幕上输出"Therearewords"#include<stdioh>intcountw(char*str){inti,jfor(i=,j=strii){if(stri==''(stri!=''stri!=','stri!=''))jif(stri==','(stri!=''stri!=','stri!=''))jif(stri==''(stri!=''stri!=','stri!=''))j}if(str!=''str!=','str!='')jreturnj}voidmain(){charsgets(s)printf("Therearedwordsn",countw(s))}编写函数voidfun(char*str),功能:字符串str中单词以空格作分隔,如果单词之间不止一个空格,则删除多余的空格,使单词之间只保留一个空格。字符串开始的空格也只保留一个。例如,程序运行时若输入:It's:o'clock,Iamlate输出:It's:o'clock,Iamlate#include<stdioh>voidfun(char*str){inti,jfor(i=strii){if(stri=='')if(stri==''){for(j=istrjj)strj=strji=i}}}voidmain(){charsputs("Enterastring:")gets(s)fun(s)puts(s)}函数voidfun(intx,intk,int*p)的功能是:求出比x大的最初k(k<)个素数,放入p所指数组中。例如:程序运行时输入:,输出:#include<mathh>#include<stdioh>intcheck(intx){intiif(x<)returnfor(i=i<=sqrt(x)i){if(xi==)break}if(i>sqrt(x))returnreturn}voidfun(intx,intk,int*p){inti,jp=xfor(i=i<ki){for(j=picheck(j)j)pi=jpi=pi}}voidmain(){inta,b,n,iscanf("dd",a,b)fun(a,b,n)for(i=i<bi)printf("d",ni)puts("")}编写函数intfun(inta,intb),在a,b范围内统计满足下面条件的数的个数。条件:该数是素数,且该数逆序后形成的数也是素数。例如,在,范围内满足条件,则下面程序运行时输入,输出:num=。#include<mathh>#include<stdioh>intcheck(intx){intiif(x<)returnfor(i=i<xi){if(xi==){returnbreak}}if(i==x)return}intnixu(intx){inty=while(x){y=*yxx=x}return(y)}intfun(inta,intb){inti,n=for(i=ai<=bi)if(check(i)check(nixu(i)))nreturnn}voidmain(){intnum,a,bscanf("dd",a,b)num=fun(a,b)printf("num=dn",num)}编写函数voidfun(char*s),功能:在s所指字符串中每两个字母之间加一个*,其余字符保持不变。例如,下面程序运行时,若输入:Ihadbook输出:Ih*a*db*o*o*k#include<stdioh>#include<stringh>voidfun(char*s){inti,jfor(i=sii)if(((si>=si<=)||(si>=si<=))((si>=si<=)||(si>=si<=))){for(j=strlen(s)j>ij)sj=sjsj='*'}}voidmain(){charxgets(x)fun(x)puts(x)}编写函数intfun(intk),功能:从个红球,个白球,个黑球中任意取出k(≤k≤)个球作为一组进行组合。在每组中,可以没有红球和白球,但必须要有黑球。不同组合的数目作为函数值返回。例如,若k为时,正确的组合数是若k为时,正确的组合数是或k为时,正确的组合数是。#include<stdioh>intfun(intk){inti,j,h,sfor(i=,s=i<=i)for(j=j<=j)for(h=h<=h)if(ijh==k)sreturns}voidmain(){intx,nscanf("d",x)n=fun(x)printf("n=dn",n)}编写函数voidfun(char*str),功能:对形参str所指字符串中的字符按ASCII码升序排序。例如,下面程序运行时输入:TheCProgrammingLanguage<回车>输出:CLPTaaaeegggghimmnnorru#include<stdioh>#include<stringh>voidfun(char*str){intj,ichartfor(i=strii){for(j=ij<strlen(str)j)if((int)stri>(int)strj){t=stristri=strjstrj=t}}}voidmain(){charsgets(s)fun(s)puts(s)}请编写函数voidfun(int*a,intn,inty),它的功能是:把y值插入到有n个数的a数组中,a数组中的数已按由大到小的次序排好,y的值从键盘读入。插入后,数组中的数仍然有序。对照下面三种情况运行程序:)插在最前)插在最后)插在中间若输入数,输出输入数,输出输入数,输出#include<stdioh>voidfun(int*a,intn,inty){inti,jfor(i=i<ni){if(y>ai)break}for(j=nj>ij)aj=ajai=y}voidmain(){inti,a={,,,,,,,,,},xvoidfun(int*,intn,inty)scanf("d",x)fun(a,,x)for(i=i<i)printf("d",*(ai))}编写函数intfun(char*s,char*s),在字符串s中统计字符串s出现的次数并返回。若s在s中未出现,则返回。例如:若输入的字符串s为:abaaAabcaabbabca,字符串s为:ab,则程序输出:n=若输入的字符串s为:abaaAabcaabbabca,字符串s为:abd,则程序输出:Nofind#include<stringh>#include<stdioh>intfun(char*s,char*s)inti,j,n=for(i=i<=strlen(s)strlen(s)i){for(j=j<strlen(s)j)if(sij!=sj)breakif(j==strlen(s))n}returnn}voidmain(){chara,bintnprintf("Pleaseinputthefirststring:")gets(a)printf("Pleaseinputthesecondstring:")gets(b)n=fun(a,b)if(n==)printf("Nofindn")elseprintf("n=dn",n)编写函数intfun(char*str),功能是:统计字符串str中不同字符的个数并做为函数值返回。例如,下面程序运行时若输入:Oneworld,Onedream!输出:n=#include<stdioh>intfun(char*str){inti,j,nfor(i=,n=strii){for(j=j<ij){if(stri==strj)break}if(i==j)n}returnn}voidmain(){charsintngets(s)n=fun(s)printf("n=dn",n)}编写函数intfun(intm,intn,int*p),要求将范围m,n之间所有的fibonacci数写入p所指的一维数组中,fibonacci数的个数通过函数返回值带回。例如,,之间的fibonacci数有个,它们是:,之间有个,它们是:。#include<stdioh>intfun(intm,intn,int*p){inti,j,s,a={,}for(i=i<i)ai=aiaifor(i=,j=,s=i<i){if(ai>=mai<=n){pj=aijs}}returns}voidmain(){inta,b,n,c,iscanf("dd",a,b)n=fun(a,b,c)for(i=i<ni)printf("d",ci)printf("nn=dn",n)}编写函数char*fun(char*s,char*s,intn),将字符串s中后面的n个字符复制到s所指数组中,若s不足n个字符,则用*在前端补齐至n个字符,写入s中。函数返回字符串s的指针。例如,下面程序运行时,若输入:“abcd”和,则输出“cd”若输入:“abcd”和,则输出“**abcd”#include<stdioh>#include<stringh>char*fun(char*s,char*s,intn){intl,il=strlen(s)if(l>=n)strcpy(s,sln)else{strcpy(snl,s)for(i=i<nli)si='*'}return(s)}voidmain(){charc,cgets(c)fun(c,c,)puts(c)puts(fun(c,c,))}编写函数voidfun(char*s,char*b,char*c),逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串应为:aBcdeFgH。#include<stdioh>#include<stringh>voidfun(char*a,char*b,char*c){inti,ls,lsls=strlen(a)ls=strlen(b)for(i=i<(ls>lsls:ls)i)ci=(ai>biai:bi)for(i=(ls>lsls:ls)i<(ls>lsls:ls)i){if(ls>ls)ci=aielseci=bi}ci=''}voidmain(){chars,s,sgets(s)gets(s)fun(s,s,s)puts(s)}编写函数voidfun(char*s),将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符和非数字字符原有的前后次序。例如,若输入:numisouc,OK执行结果为:numisouc,OK#include<stdioh>#include<stringh>voidfun(char*s){inti,j=,k=chart,tfor(i=i<strlen(s)i){if(si>||si<){tj=sij}else{tk=sik}}for(i=i<strlen(s)i)if(i<j)si=tielsesi=tij}voidmain(){charagets(a)fun(a)puts(a)}

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/31

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利