C语言程序设计基础上机考试一题目及参考答案_第1页
C语言程序设计基础上机考试一题目及参考答案_第2页
C语言程序设计基础上机考试一题目及参考答案_第3页
C语言程序设计基础上机考试一题目及参考答案_第4页
C语言程序设计基础上机考试一题目及参考答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 .输入一用字符(可能包含空格),计算输入的字符串中整数的个数并输出2 .输入一个字符用,对字符串相同的字符只保留一个(首次出现的字符)3 .找出一个大于给定整数m且紧随m的素数。4 .统计老年人各年龄段(每10岁为一个年龄段)的人数并存到b数组中,n个人员的年龄放在a数组中。5 .计算并输出k以内最大的10个能被13或17整除的自然数之和。6 .读入一行英文文本,将其中每个单词的最后一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)o7 .求A、B两个整数数组数据的交集,并输出交集的数据。8 .输入若干个整数,且每个数均在1000至9999之间,按照每个数的后三位进

2、行升序排序,若后三位相等,则按照原数据升序排序。9 .将字符串s所有的子用t用“copy”替换,并输出替换后的字符串。10 .判断一个整数是否是回文数。所谓的回文数是指高位到地位与从低位到高位读取该数,得到的数是相同的数据。例如:1221,121是回文数。1 .输入一串可能包含空格的字符用,计算该字符串中数字(整数)的个数。2 .删除字符串中的数字字符3 .计算并输出high以内最大的10个素数之和。4 .A,B是两个整数集合,将A中和B相同的数据删除,并输出删除后的集合。5 .计算字符用s中含有字符串t的数目,并输出。6 .编程实现:在已排好序的字符串中插入一个新的字符串,使插入后仍然有序,

3、输出插入后的字符串。7 .在三位整数中寻找符合条件的整数,并依次有大到小存入数组,并输出,它既是完全平方数,又是两位数字相同。8 .判断一个整数是否是回文数。所谓的回文数是指高位到地位与从低位到高位读取该数,得到的数是相同的数据。例如:1221,121是回文数。9 .找出200以内所有的完数,并输出其因子。一个数若恰好等于它的各因子之和,称其为完数。例如:6=1+2+3,其中1、2、3为因子,6是因子和。10 .统计在字符串str中26个小写英文字母各自出现的次数。C程序设计基础上机考试一基本要求:1)所有程序不能使用外部变量2)子函数中不能出现数据的输入输出语句3)每个程序至少包含两个函数定

4、义(包括主函数)1 .输入一用字符(可能包含空格),计算输入的字符串中整数的个数并输出#include"stdio.h"#include"string.h"voidmain()(chara100;intcount;inttest1(shara);printf("输入字符用:n");gets(a);count=test1(a);printf("整数个数为:%dn",count);inttest1(chara口)inti,j,n=0;for(i=0;ai!='0'i+)if(ai>='0&

5、#39;&&ai<='9')for(j=i+1;aj!='0'j+)if(!(aj>='0'&&aj<='9')break;n+;i=j;return(n);2 .输入一个字符用,对字符串相同的字符只保留一个(首次出现的字符)#include"stdio.h"#defineN100voidtest2(charss1N)inti,j,k;for(i=0;ss1i!='0'i+)for(j=i+1;ss1j!='0'j+)if(ss1

6、j=ss1i)voidtest2(sharss1N)inti,j,k,n;n=strlen(ss1);for(i=0;i<n;i+)for(j=i+1;j<n;j+)if(ss1j=ss1i)for(k=j;ss1k!='0'k+)ss1k=ss1k+1;J-:)voidmain()voidtest2(sharss1N);charssN;printf("inputastringn");gets(ss);test2(ss);printf("outputthestringn");printf("%sn",ss)

7、;3 .找出一个大于给定整数m且紧随m的素数。素数:只能被1或自身整除的整数。2m-1。判断整数n是否为素数一一采用穷举法求解。基本算法:若m%i=0则说明m不是素数。其中i的取值范围为:#include"stdio.h"voidmain()intm,n;inttest3(intm);printf("inputanumber:mn");scanf("%d",&m);n=test3(m);printf("thefollowingnumberis%dn",n);inttest3(intm)intt=0,i;wh

8、ile(t!=1)m=m+1;i=m-1;while(i>1)if(m%i!=0)i-;elsebreak;if(i=1)t=1;/*说明m已除遍m-1至2,都除不尽,所以m是素数)*/return(m);4 .统计老年人各年龄段(每10岁为一个年龄段)的人数并存到b数组中,n个人员的年龄放在a数组中。#include"stdio.h"# defineN10# defineM10voidtest4(intaN,intbM)inti,k;for(i=0;i<N;i+)k=ai/10;bk-6+;voidmain()intaN,i;intbN=0;printf(&q

9、uot;inputage:>60and<160");for(i=0;i<N;i+)scanf("%d",&ai);if(ai<60|ai>160)printf("inputerror");i-;test4(a,b);printf("n");for(i=0;i<M;i+)printf("%d<=age<%d:%dn",(i+6)*10,(i+6+1)*10,bi);5.计算并输出k以内最大的10个能被13或17整除的自然数之和。#include&quo

10、t;stdio.h"inttest5(intk)intcount=0,sum=0;while(count<10)if(k%13=0|k%17=0)count+;sum=sum+k;k-;return(sum);voidmain()intk,x;printf("输入数字n");scanf("%d",&k);x=test(k);printf("%d以内的最大个能被或整除的自然数之和为%dn",k,x);)6 .读入一行英文文本,将其中每个单词的最后一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字

11、符串)o例如,若输入Iamastudenttotaketheexamination.,则应输出"IaMAstudenTtOtakEthEexamination."。#include"stdio.h"#include"string.h"#defineM100voidtest6(chara)inti;for(i=0;ai!='0'i+)if(ai>='a'&&ai<='z'&&(ai+1=''|ai+1='0')ai

12、=ai-32;)voidmain()charaM;printf("pleaseinputthetextn');gets(a);test6(a);printf("%s",a);)7 .求A、B两个整数数组数据的交集,并输出交集的数据。/*交集就是二个数组中相同的元素。算法是数组A每取一个元素,与数组B的所有元素相比,若相等,则将该元素存入第三个数组,*/#include"stdio.h"voidmain()inta100,b100,c100;inttext(inta,intb口,intc,intn1,intn2);/*函数声明*/intn

13、1,n2,n3,i;printf("输入A组的个数:");scanf("%d",&n1);printf("输入A组的元素:");for(i=0;i<n1;i+)scanf("%d",&ai);printf("输入B组的个数:");scanf("%d",&n2);printf("输入B组的元素:");for(i=0;i<n2;i+)scanf("%d",&bi);n3=text(a,b,C,n1

14、,n2);/*调用函数*/printf("交集:");for(i=0;i<n3;i+)printf("%d",ci);putchar(n');inttext(inta,intb,intc,intn1,intn2)inti,j,n=0;for(i=0;i<n1;i+)for(j=0;j<n2;j+)if(ai=bj)cn+=ai;return(n);8 .输入若干个整数,且每个数均在1000至9999之间,按照每个数的后三位进行升序排序,若后三位相等,则按照原数据升序排序。#include"stdio.h"vo

15、idmain()inta80,i,j,k,n;voidsort(inta,intn);printf("请输入数字的个数n");scanf("%d",&n);for(i=0;i<n;i+)scanf("%d",&ai);test8(a,n);for(i=0;i<n;i+)printf("%d",ai);voidtest8(inta,intn)inti,j,t;for(i=0;i<n-1;i+)for(j=i+1;j<n;j+)if(ai%1000>aj%1000)t=ai

16、;ai=aj;aj=t;elseif(ai%1000=aj%1000)if(ai>aj)t=ai;ai=aj;aj=t;)9 .将字符串s所有的子用t用“copy”替换,并输出替换后的字符串#include<stdio.h>#include<string.h>#defineM100#defineN50intSubString(charsub口,charS口,intpos,intlen)inti;if(pos<1|pos>strlen(S)|len<0|len>strlen(S)-pos+1)return-1;for(i=0;i<len

17、;i+)subi=Si+pos-1;subi='0'return1;)intIndex(charS口,charT,intpos)intm,n,i;charsubN;if(pos>0)n=strlen(S);m=strlen(T);i=pos;while(i<=n-m+1)SubString(sub,S,i,m);if(strcmp(sub,T)!=0)+i;elsereturni;)return0;)char*test9(chars1口,chars2口,chart口)inti,pos;chartempM;intm,n;charsM=""m=str

18、len(s1);n=strlen(s2);i=1;pos=1;while(pos<=m-n+1&&i)i=Index(s1,s2,pos);if(i!=0)SubString(temp,s1,pos,i-pos);strcat(s,temp);strcat(s,t);pos=i+n;)SubString(temp,s1,pos,m-pos+1);/乘U余申strcat(s,temp);returns;)voidmain()charstr1M,str2N,tN="copy",*str=""printf("pleaseinpu

19、tstring1n");gets(str1);printf("pleaseinputstring2n");gets(str2);str=test9(str1,str2,t);printf("%s",str);)10 .判断一个整数是否是回文数。所谓的回文数是指高位到地位与从低位到高位读取该数,得到的数是相同的数据。例如:1221,121是回文数。#include"stdio.h"inttest1(intx)intc,t=0;c=x;while(c>0)t=t*10+c%10;c=c/10;)if(t=x)return1

20、;elsereturn0;)voidmain()inta,b=0;printf("pleaseinputalongintn");scanf("%d",&a);b=test1(a);if(b=1)printf("%8dishuiwenshu",a);elseprintf("%8disnotahuiwenshu';a);)C程序设计基础上机考试二基本要求:1)所有程序不准使用外部变量2)子函数中不能出现数据的输入输出语句3)每个程序至少包含两个函数模块11 输入一串可能包含空格的字符用,计算该字符串中数字(整数)

21、的个数#include"stdio.h"#include"string.h"voidmain()chara100;intcount;inttest1(chara);printf("输入字符用:n");gets(a);count=test1(a);printf("整数个数为:dn",count);inttest1(chara)inti,j,n=0;for(i=0;ai!='0'i+)if(ai>='0'&&ai<='9')for(j=i+1;

22、aj!='0'j+)if(!(aj>='0'&&aj<='9')break;n+;i=j;return(n);12 删除字符串中的数字字符/*算法:对字符串中的每个元素进行判断是否为数字,若是,则将下一个字符移到该字符处,字符串长度-1一,*/#include"stdio.h"#include"string.h"voidfun(ch)charch30;(inti,j,len=0;len=strlen(ch);printf("%dn",len);for(i=0;

23、i<len;i+)if(chi>'0'&&chi<'9')for(j=i;j<len-1;j+)chj=chj+1;len-;i=i-1;chlen='0'voidmain()charch30;inti;printf("输入字符串:");gets(ch);fun(ch);printf("删除后的数据:n");printf("%s",ch);getch();13 计算并输出high以内最大的10个素数之和#include<conio.h>

24、#include<stdio.h>#include<math.h>intfun(inth)intsum=0,n=0,j,yes;while(h>=2&&n<10)yes=1;for(j=2;j<=h/2;j+)if(h%j=0)yes=0;continue;if(yes)sum+=h;n+;h-;return(sum);main()inthigh;printf("inputhigh",high);scanf("%d”,&high);printf("%dn",fun(high);g

25、etch();14 已知A,B是两个整数集合,将A中和B相同的数据删除,并输出删除后的集合。#include"stdio.h"voidmain()inta100,b100,c100;inttext(inta,intb,intc,intn1,intn2);intn1,n2,n3,i;printf("输入A组的个数:");scanf("%d",&n1);printf("输入A组的元素:");for(i=0;i<n1;i+)scanf("%d",&ai);printf("

26、;输入Bffl的个数:");scanf("%d",&n2);printf("输入Bffl的元素:");for(i=0;i<n2;i+)scanf("%d”,&bi);n3=text(a,b,c,n1,n2);printf("父集:");for(i=0;i<n3;i+)printf("%d",ci);putchar('n');)inttext(inta,intb,intc,intn1,intn2)inti,j,n=0;for(i=0;i<n1;i+

27、)for(j=0;j<n2;j+)if(ai=bj)break;cn+=ai;return(n);)15 计算字符用s中含有字符串t的数目,并输出。#include"stdio.h"intcount(charstr,charsubstr)intI,j,k,num=0for(I=0;strI!='0'I+)for(j=I,k=0;substrk=strj;k+,j+)if(substrk+1='0'*说明主审字符与子用相同num+break;return(num);voidmain()chars80,t80;intn;gets(s);ge

28、ts(t);printf("%dn",count(s,t);getch();16 编程实现:在已排好序的字符串中插入一个新的字符串,使插入后仍然有序,输出插入后的字符串。程序1:sort(string2)charstring280;chart;inti,j,n;n=strlen(string2);/*冒泡法排序*/for(i=0;i<n-1;i+)for(j=0;j<n-1-i;j+)if(string2j>string2j+1)t=string2j;string2j=string2j+1;string2j+1=t;)main()charstr180,st

29、r280,str80;inti,j,n;printf("Enterstring1:");gets(str1);printf("Enterstring2:");gets(str2);sort(str2);n=0;for(i=0,j=0;str1i!='0'&&str2j!='0')if(str1i<str2j)strn+=str1i+;elsestrn+=str2j+;while(str1i!='0')strn+=str1i+;while(str2j!='0')strn+

30、=str2j+;strn='0'printf("Result:");puts(str);getch();程序2:main()charch20,ch120;printf("inputstring1:");gets(ch);printf("inputstring2:");gets(ch1);sort(ch,ch1);puts(ch);getch();)sort(a,s)chara20,s20;(inti,j,k;for(k=0;sk!='0'k+)j=0;while(sk>=aj&&aj!='0')j+;for(i=strlen(a)+k;i>=j;i-)ai+1=ai;aj=sk;)17 在三位整数中寻找符合条件的整数,并依次有大到小存入数组,并输出,它既是完全平方数,又是两位数字相同。intch(int);intmain(void)inti;for(i=10;i*i<1000;i+)if(ch(i*i)printf("%dn",i*i);getch();return0;)intch(intn)chara4;sprintf(a,"%d"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论