C语言上机题库三_第1页
C语言上机题库三_第2页
C语言上机题库三_第3页
C语言上机题库三_第4页
C语言上机题库三_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持!软件学院/信息学院C语言上机试题大家学习C语言是为了使用,不是为了考试,所以我希望你们能先自己动手做做,然后再参考一下答案。我知道有些同学喜欢死记硬背,也许可以把这些题目的答案都背下来,但是那样做一点好处都没有。大学里, 别把分数看得那么重要。找工作没人在乎你到底考了多少分。能诚实的对待考试,正确的看待分数,真才实学 才是最应该得到的。大家可以到,一般我晚上开)特别声明:岀题老师请您注意!去年C语言笔试卷子时,有些题目是只有软件学院/信息学院的同学需要做的, 但是卷头写的是“此题只有信息学院的同学做” ,小心呀,今年别才岀

2、现这样的错误了!别忘了软件学院!!第三部分-复杂的数组/字符串处理:3-1.编程,任意输入10个整数,按从小到大的顺序输出。mai n()int nu m10,i,j,temp;for(i=0;i10;i+)sca nf(%d,&nu mi);for(i=0;i10;i+)for(j=i+1;jnu mj)temp=nu mj; nu mj=nu mi;nu mi=temp; for(i=0;i10;i+)pri ntf(%4d, nu mi);3-2.编程,任意输入10个人的成绩,按从大到小的顺序排列。运行程序时,只要输入名次,计算机就能输出该名次对应的成绩。mai n()int nu m1

3、0,i,j,temp;for(i=0;i10;i+)sca nf(%d,&nu mi);for(i=0;i10;i+)for(j=i+1;j10;j+)if(nu mi nu mj) temp=nu mj; nu mj=nu mi; nu mi=temp; puts(M ing Ci:);sca nf(%d,&j);prin tf(%4d, numj-1);本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持!3-3.编程,输入10个人的序号和成绩,对成绩从小到大排序,输出排序后的序号和成绩。mai n()int num210,i,j,temp;for(i=0;i10;i+)

4、printf(Input Num %d :,i+1);scan f(%d, &nu m1i);num0i=i+1;for(i=0;i10;i+)for(j=i+1;j num1j)temp=nu m0j; nu m0j=nu m0i; nu m0i=temp;temp=nu m1j; nu m1j=nu m1i; nu m1i=temp;for(i=0;i10;i+)pri ntf(n%4d (No = %2d), num1 i,n um0i);3-4.编程,输入10个人的序号和成绩,对成绩从从大到小进行排序,输出排序后的序号和成 绩。mai n()int num210,i,j,temp;fo

5、r(i=0;i10;i+)printf(Input Num %d :,i+1);scan f(%d, &nu m1i); num0i=i+1; for(i=0;i10;i+)for(j=i+1;j10;j+) if(n um1i num1j)temp=nu m0j; nu m0j=nu m0i; nu m0i=temp; temp=nu m1j; nu m1j=nu m1i; nu m1i=temp;for(i=0;i10;i+)pri ntf(n%4d (No = %2d), num1i, num0i);本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持!3-5.编程,输

6、入10个整数及其序号,求出 10个整数的最大值、次大值、最小值和次小值,并 输出它们原来输入时的序号。mai n()int num210,i,j,temp;for(i=0;i10;i+)printf(Input Num %d :,i+1);scan f(%d, &nu m1i); num0i=i+1; for(i=0;i10;i+)for(j=i+1;j num1j) temp=nu m0j; nu m0j=nu m0i; nu m0i=temp;temp=nu m1j; nu m1j=nu m1i; nu m1i=temp;printf(nMax : %4d (No = %2d),num19

7、,num09);prin tf(n Seco nd Max : %4d (No = %2d), nu m18, num08);prin tf(nMin : %4d (No = %2d), num10, num00);prin tf(n Seco nd Min : %4d (No = %2d), num11 ,n um01);3-6.编程,输入10个整数,然后进行查找。输入要查找的整数,若找到,则输出该数在数组中的下标位置,否则输出can n ot found !”。mai n()int num210,i,j,temp;for(i=0;i10;i+)printf(Input Num %d :,i

8、+1); scan f(%d, &nu m1i); num0i=i+1; for(i=0;i10;i+)for(j=i+1;j num1j)3本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持!temp=nu mOj; nu mOj=nu mOi; nu mOi=temp;temp=nu m1j; nu m1j=nu m1i; nu m1i=temp;prin tf(nFi nd :”);scan f(%d, &temp);for(i=0,j=0;i10;i+)if(nu m1i=temp)printf(nFound %4d (No = %2d),num1i,num0i),

9、j=1;if(j=0)pri ntf(nCan n ot foun d!);3-7 编程,输入一个字符串并删除其中的指定字符。例如,对于字符串abcdcf,指定删除c,则结果为:abdf。#in clude mai n()char strA80=,ch;int i,j;printf(Input string :);gets(strA); prin tf(I nput char :);ch=getch()for(i=0;istrle n( strA);i+)if( strAi=ch)for(j=i;jstrle n( strA);j+)strAj=strAj+1;prin tf(Output :

10、); puts(strA);本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持!3-8.编程,输入一行字符,将其反序后再输出。#in elude mai n()char strA80,strB80,temp;int i,j;gets(strA);for(i=0;istrle n(strA);i+)strBstrle n( strA)-1-i=strAi;strBstrle n(strA)=O:puts(strB);3-9.编程,输入一行字符,将其中的每个字符从小到大排列后输出。#in clude mai n()char str80,temp;int i,j;gets(str

11、);for(i=0;istrle n( str);i+)for(j=0;ji;j+)if(stristrj)temp=stri;stri=strj;strj=temp;puts(str);3-10.编程,输入一行字符,将其中的每个字符从大到小排列后输出。#in clude mai n()char str80,temp;int i,j;gets(str);本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持! for(i=0;istrle n( str);i+)for(j=0;jstrj) temp=stri;stri=strj;strj=temp; puts(str);3-1

12、1.编程,找出一个二维数组中的鞍点,即该位置上的元素是该行上的最大值,是该列上的 最小值。二维数组也可能没有鞍点。mai n()int a1010=1,2,3,14,4,3,2,11,2,0,5,7,8,4,2,11,m=4, n=4;int i,j,k,l,re=O;for(i=0;im;i+)for(j=0;j n ;j+) for(k=0;km;k+)if(akjaij)break;for(l=0;laij)break;if(k=m & l=n)re+;printf(n a%d%d=%d is An Dian,i,j,aij);if(re=0)puts(No An Dian!);3-12

13、.编程,按学生的序号输入10名学生的成绩,按照分数由高到低的顺序输出学生的名次、序号和成绩,要求成绩相同的学生具有相同的名次。mai n()int nu m10,i,j,k,temp;for(i=0;i10;i+)sca nf(%d,&nu mi);for(i=0;i10;i+)for(j=i+1;j10;j+)if(nu mi nu mj) temp=nu mj; nu mj=nu mi; nu mi=temp; 本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持!for(i=0;i10;i+)k=i+1;if(nu mi=nu mi_1)k=temp;printf(n%

14、2d : %4d,k,numi);temp=k;3-13.编程,输出所有不超过n (取n256)的、其平方具有对称性质的正整数_(也称为回文数)。mai n()int i,j,n,k;for(i=1;i10000)k=10000;else if(j1000)k=1000;else if(j100)k=100;else if(j10)k=10;else k=1;n=0;don+=k*(j%10);j/=10;k/=10;while(k0);if(n=i*i)pri ntf(n%3d : %5d,i,i*i);3-14.编程,输入两个已经按从小到大顺序排列好的字符串,将两个字符串合并为一个新的从

15、小到大排列字符串并输出。#in clude mai n()char strA80,strB80,temp;本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持!int i,j,k;gets(strA);gets(strB);strcat(strA,strB);for(i=0;istrle n( strA);i+)for(j=0;ji;j+)if(strAistrAj)temp=strAi;strAi=strAj;strAj=temp;puts(strA);3-15.编程,输入两个已经按从小到大顺序排列好的字符串,合并两个字符串,使合并后的字 符串中字符从大到小排列并输出。#i

16、n clude mai n()char strA80,strB80,temp;int i,j;gets(strA);gets(strB);strcat(strA,strB);for(i=0;istrle n( strA);i+)for(j=0;jstrAj)temp=strAi;strAi=strAj;strAj=temp;puts(strA);3-16 .编程,输入两个字符串s1和s2,在s1中删除任何s2中有的字符。例如,s1 :“abc123ad ”, s2: “a1”,则输出“ bc23d ”。8本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持!#in elude

17、 mai n()char strA80,strB80;int i,j,k;gets(strA);gets(strB);strcat(strA,strB);for(i=0;istrle n( strB);i+)for(j=0;jstrle n( strA);j+)if(strAj=strBi)for(k=j;kstrle n(strA);k+)strAk=strAk+1;puts(strA);3-17.编程,输入一行文字,判断该行文字是否是回文。例如,读入: MA DAM I MAD AM输出:YES读入:ABCDBA.输出:NO#in clude mai n()char strA80,strB

18、80,temp;int i,j;gets(strA);for(i=0;istrle n(strA);i+)strBstrle n( strA)-1-i=strAi;strBstrle n(strA)=0;if(!strcmp(strA,strB)pri ntf(Yes);else prin tf(No);3-18.编程,输入若干个字符串,当输入字符串的长度为0时停止输入。输出最长的字符串。#in clude mai n()本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持!char strA80=,strB80=;int i;dogets(strA);if(strlen(s

19、trA) strlen(strB) )strcpy(strB,strA);while( strlen(strA)!=0);prin tf(L on gest word :);puts(strB);3-19.编程,输入若干个字符串,当输入字符串的长度为0时停止输入,输出最大字符串。#in clude mai n()char strA80=,strB80=;int i;dogets(strA);if( strcmp(strA,strB)0 )strcpy(strB,strA);while( strle n( strA)!=0 );prin tf(Biggest word :);puts(strB)

20、;3-20. “ 1898要发就发”。将不超过2004的所有素数从小到大排成第一行,第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数之差。编程,输出第二行数中满足下列 条件的整数:第二行数中若干个连续整数的和恰好是1898。第一行:2 3 5 7 11 13 17 . 1979 1987 1993第二行:1 2 2 424.86暂无答案3-21.用空格分开的字符串称为单词。输入多行字符串,直到遇到了单词stop时才停止。最后输出单词的数量。#in clude mai n()本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持!char strA80=;int i,n

21、=O;dogets(strA);n+;while(strcmp(strA,stop); printf(Total: %2d words,n);3-22.编程,输入两个字符串s1、s2和s1中任意字符 k,在s1中的指定字符 k的位置处插入字符串s2并输出。#in clude mai n()char strA80,strB80,ch;int i,j,lenA,lenB;puts(I nput s1);gets(strA);puts(I nput s2);gets(strB);puts(Input k);ch=getch();len A=strle n(strA);le nB=strle n(st

22、rB);for(i=0;i=i;j-)strAj+le nB=strAj;for(j=0;jle nB;j+)strAi+j=strBj;len A+=le nB;i+=le nB;puts(strA);3-23.任意输入一个4位自然数,输出该自然数的各位数字组成的最大数。例如,输入1593,则输出为9531。mai n()int a4 ,n ,m,i,j;本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持! printf(Input n :”);scan f(%d, &n);for(i=0;i4;i+)ai=n%10; n/=10;for(i=0;i4;i+)for(j=

23、i+1;j4;j+)if(aiaj) n=ai;ai=aj;aj=n;prin tf(%d,m=a0*1000+a1*100+a2*10+a3);3-24.编程,输入两个已经按从小到大顺序排列好的字符串,将两个字符串合并为一个新的从 小到大排列字符串,并删除重复的字符,然后输出该字符串。#in elude mai n()char strA80,strB80,temp;int i,j,k;gets(strA);gets(strB);strcat(strA,strB);for(i=0;istrle n( strA);i+)for(j=0;ji;j+)if(strAistrAj)temp=strAi

24、;strAi=strAj;strAj=temp;for(i=0;istrle n( strA);i+)for(j=i+1,k=0;jstrle n( strA);j+)if(strAi!=strAj)k=j-i-1;break; if(k!=0)for(j=i;jstrle n(strA);j+)strAj=strAj+k;puts(strA);3-25.编程,输入五个字符串,请将它们按从小到大的顺序排列后输出。mai n()本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持!char a6 80;int i,j;for(i=0;i5;i+)pri ntf(stri ng

25、%d:,i+1);gets(ai);for(i=0;i5;i+)for(j=i+1;j0)strcpy(a5,ai);strcpy(ai,aj);strcpy(aj,a5); for(i=0;i5;i+)puts(ai);3-26.编程,输入五个字符串,请将它们按从大到小的顺序排列后输出。mai n()char a6 80;int i,j;for(i=0;i5;i+)pri ntf(stri ng %d:,i+1);gets(ai); for(i=0;i5;i+)for(j=i+1;j5;j+)if(strcmp(ai,aj)0) strcpy(a5,ai);strcpy(ai,aj);str

26、cpy(aj,a5); for(i=0;i5;i+)puts(ai);3-27.编程,将输入的两行字符串连接后,将新串中全部空格移到串首后输出。#in clude mai n()char strA80,strB80,temp;int i,j;gets(strA);gets(strB);strcat(strA,strB);for(i=0;istrle n( strA);i+)if(strAi=)for(j=i;j=0;j-)strAj+1=strAj; strA0=;本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持!puts(strA);3-28.编程,输入两个字符串si、

27、s2,将si复制到s2并输出si和s2。复制时,若字符串si中存在缩写形式(如:a - z )应转换为字符串s2中的完整形式(abedxyz)。“ -”号之前的字符必须小于“-”号之后的字符才是合法的缩写形式。例如,s仁abe-fg,则s2=abcdefg,如果s仁abc-af,贝U s2=abc-af。应能够处理任意可显示的ASCII字符。这道题比较复杂应该给你们加上注释不好意思忘了加呵呵mai n()char strA80,strB80=;int i,j,k,m,s=O;gets(strA);for(i=0;i=strAi+1 | strAi+1=0)strBi+s=strAi;elsek

28、=strAi+1-strAi-1;for(m=1;mk;m+)strBi+s+m-1=strAi-1+m;s+=k-2;puts(strB);3-29.编程,输入字符串,输出字符串中每个字符所出现的次数。如:输入字符串:abcedabcdcd则输出: a=2 b=2 c=3 d=3 e=1mai n()char str80;int a256=0,i,temp;本文档为精品文档,如对你有帮助请下载支持,如有问题请及时沟通,谢谢支持!puts(l nput stri ng);gets(str);for(i=0;stri!=0;i+)temp=stri;atemp+;puts(”);for(i=0;i256;i+)if(ai!=O)pri ntf(%c=%d ;,i,ai);3-30.编程,输入一个长度不超过100的字符串,删除串中的重复字符后输出。如:输入字符串:abacaeedabcdcd则输出:abced#in clude mai n()char str100,temp;int i,j,k;gets(str);for(i=0;istrle n( str);i+)for(j=0;ji;j+)i

温馨提示

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

评论

0/150

提交评论