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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

c语言程序设计题库.docx

1、c语言程序设计题库第二题#include void main() char ch20; int i; gets(ch); for(i=0;i=a&chi=A&chi=Z) chi=chi+32; puts(ch); 第三题#include void main() int n,i,max=0; int a20; scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); for(i=0;in;i+) if(maxai) max=ai; printf(%d,max); 第四题#include double f(int);void main() int n; scanf(

2、%d,&n); printf(%.8f,f(n);double f(int n) int i; double result=0.0; for(i=1;i=n;i+) result=result+(double)1/i; return result; 5题目标题:汽水瓶(谌海军)题目描述:有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一

3、瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输入描述:输入为一个正整数n(1=n=100),表示空汽水瓶个数。#includevoid main()int n,m=0,sum=0,i=0;scanf(%d,&n);while(n=3)m=n/3; n=n-2*m; sum=sum+m;if(n=2) sum+;else if(n2) sum=sum+i; printf(%d,sum);6题目标题:栽树(彭玉旭)题目描述:在某食堂门前有n(n200)个树坑,编号是从0n-1,开始时是没有树的。每个月,园林工人都会在编号ab(0=a=b=n-1)之间栽树(包括a,b),如果

4、树坑原来有树,则不需要从新栽树。请计算4个月后,食堂门前总共有多少棵树。输入描述:第一个整数是n ,接下来有 8个整数,分别为每个月栽树的编号。输出描述描述:食堂门前树的总数。第六题#includevoid main() int n; int a1,b1,a2,b2,a3,b3,a4,b4; int result=0; int i; scanf(%d,&n); scanf(%d%d,&a1,&b1); scanf(%d%d,&a2,&b2); scanf(%d%d,&a3,&b3); scanf(%d%d,&a4,&b4); for(i=0;i=a1&i=a2&i=a3&i=a4&i=b4)

5、result+; printf(%d,result); 7题目标题:密码破译(闫博钊)题目描述:某组织欲破获一个外星人的密码,密码由一定长度的字串组成。此组织拥有一些破译此密码的长度不同的钥匙,若两个钥匙的长度之和恰好为此密码的长度,则此密码被成功破译。现在就请你编程找出能破译此密码的两个钥匙。输入描述:输入第一行为钥匙的个数N(1N5000)输入第二行为密码的长度以下N行为每个钥匙的长度输出描述描述:若无法找到破译此密码的钥匙,则输出仅1行0 。若找到两把破译的钥匙,则输出有两行,分别为两把钥匙的编号。若有多种破译方案,则只输出一种即可。#includevoid main() int n,s

6、5000,l,i,j,sign=1,m=0; scanf(%d,&n); scanf(%d,&l); for(i=0;in;i+) scanf(%d,&si); for(i=0;in;i+) if(sign=0) break; for(j=i+1;jn;j+) if(si+sj=l) printf(%dn%d,i+1,j+1);sign=0;break; if(sign) printf(%d,m);#includevoid main()int m,n,sum,i,j,a5000;scanf(%d,&n);scanf(%d,&m);for(i=1;i=n;i+) scanf(%d,&ai);fo

7、r(i=1;in;i+) for(j=i+1;j=n;j+) sum=ai+aj; p=sum-m; if(p=0) printf(%dn%d,i,j); #include void main() int N,length; int i,j,key5000; int num1,num2,t; scanf(%d,&N); scanf(%d,&length); for(i=0;iN;i+) scanf(%d,&keyi); t=1; for(i=0;iN&t=1;i+) for(j=i+1;jN;j+) if(keyi+keyj=length) num1=i+1; num2=j+1; t=0; b

8、reak; if(t=1) printf(0); else printf(%dn%d,num1,num2);9题目标题:基因编码(闫博钊)题目描述:小可可选修了基础生物基因学。教授告诉大家uper Samuel星球上Kitty猫的基因的长度都是的正整数次幂 2k (k 8),全是由两种不同的基因单元组成的。这两种不同的基因单元分别记成 0 和 1,于是Kitty猫的基因可以写成一个 01 串表达式 S 。为了便于分析和降低数据存储量,教授发明了 ABC 编码规则。该编码规则是不断地按照 A (若S串全是0)T(S)= B (若S串全是1)CT(S1)T(S2) (否则把S串分成两个等长的子串S

9、1和S2)对Kitty猫基因01串表达式S进行改写,直至最终被改写成只含有字符“A”、“B”、“C”的符号串。例如 T(01001011) = CT(0100)T(1011) = CCT(01)T(00)CT(10)T(11) = CCCT(0)T(1)ACCT(1)T(0)B = CCCABACCBAB请你编写程序帮助小可可求出Kitty猫基因的ABC编码以协助教授开展科研工作。输入描述:测试数据以一行的形式存放Kitty猫基因的01串表达式, 字符串长度不超过500输出描述描述:对应测试数据,以一行的形式输出这个Kitty猫基因的ABC编码。#include #include void f

10、(char a,int begin,int end);int main() char a500; int length; gets(a); length=strlen(a); f(a,0,length); return 0;void f(char a,int begin,int end) int num_A=0,num_B=0; int i; for(i=begin;iend;i+) if(ai=0) num_A+; else if(ai=1) num_B+; if(num_A=end-begin) printf(A); else if(num_B=end-begin) printf(B);

11、else printf(C); f(a,begin,(end+begin)/2); f(a,(end+begin)/2,end); 10题目标题:最大公约数(闫博钊)题目描述:输入两个整数a,b(1a,b100000),请编写程序求出他们的最大公约数。输入描述:输入两个整数a b,用空格隔开输出描述描述:输出对应a,b的最大公约数#includevoid main()long a,b,c,t;scanf(%ld %ld,&a,&b);if(ab) t=a; a=b; b=t;while(b!=0) c=a%b; a=b; b=c;printf(%ld,a);11题目标题:大数相加(彭玉旭)题目

12、描述: a+b这个程序大家都会做,但是如果a和b都比较大时该怎么办呢。其实我们可以把输入一个比较大的数用字符串表示,模拟人工加法方式。如123+23 ,一个字符串是123 另外一个字符串是23,从字符串的最后开始加,得到146. 结果最大是两个字符串最长的那个值加1。现在请你计算两个不超过30位的十进制的数的和。知识点:字符串输入,字符的09的加法运算。提示:字符0的ASCII是48,注意进位处理输入描述:包行四行,每一行包含不超过30个的由09的字符组成字符串。输出描述描述:第一行加第二行的和以及第三行加第四行的和。每一个和占一行#include #include char *add_hig

13、h_jd(char *a,char *b) char *s; int lenmax,lenmin,i,key=0,m; if(strlen(b)strlen(a) s=a;a=b;b=s; lenmax=strlen(a); lenmin=strlen(b); for(i=1;i=10) alenmax-i=m%10+48; key=1; else alenmax-i=m+48; key=0; for(i=1;i=10) alenmax-lenmin-i=m%10+48; key=1; else alenmax-lenmin-i=m+48; key=0; if(key) for(i=lenma

14、x;i=1;i-) ai=ai-1; a0=1; alenmax+1=0; return a;12题目标题:字符串比对(谌海军)题目描述:有字符串a(长度=100),b(长度=10),计算b串在a串中出现的次数。解题思路:1、用gets语句从键盘输入两个字符串赋予a,b字符数组;2、建立两层嵌套循环,外循环至a串结束标志为止,内循环至b串结束标志为止;3、内循环中比对b串与a串的数据,满足条件时计数,否则break;4、所有循环结束后输出计数值。输入描述:输入为两个字符串,第一个字符串长度小于100,第二个字符串长度小于10;输出描述描述:输出为一个正整数;#include #include

15、void main() char a100,b10; int i,j,count,result; gets(a); gets(b); result=0; for(i=0;istrlen(a);i+) for(j=0,count=0;jstrlen(b);j+) if(bj=ai+j) count+; else break; if(count=strlen(b) result+; printf(%d,result); int main() char a40=0,b40=0, c40=0, d40=0, e40=0, f40=0; while(gets(a)!=NULL&gets(b)!=NULL

16、&gets(c)!=NULL&gets(d)!=NULL)/0? strcpy(e,add_high_jd(a,b); strcpy(f,add_high_jd(c,d); puts(e);/. puts(f);/. return 0;13题目标题:围圈报数(谌海军)题目描述:有n(n=100)围成一圈,顺序排号(从1排到n)。从第一个人开始报数(从1报到m(m=9),凡报到m的人退出圈子,问最后留下的是原来第几号的那位?解题思路:1、定义一个长度为100数组a,初始化为0;2、接收键盘输入值n,m,数组a的前n-1个元素赋值为1n;3、建立两层嵌套循环,外循环至退出人数为n-1为止,内循环中

17、从0循环至n,将a数组中非0的数据逢m置零,同时记录退出人数;4、循环全部结束后输出最后留下的一个a数组的非零元素的值。输入描述:输入为两个正整数,第一个=100,第二个=9;输出描述描述:输出为一个正整数; #include #define N 100void main() int aN=0; int n,m; int i; int k=0,t=0,s; scanf(%d%d,&n,&m); s=n; for(i=0;i1) if(ak%s!=0) t+; if(t=m) n-; ak%s=0; t=0; k+; for(i=0;is;+i) if(ai!=0) printf(%d,ai);

18、 14题目标题:星期几?(谌海军)题目描述:编一个程序,已知今天是星期几,计算出n天后是星期几。要求使用枚举变量。提示:枚举变量的赋值只能用枚举常量来表示,但是枚举常量均有一个整形数代表,可将改整形数存入枚举变量地址以实现外部赋值的目的。如:enum daySun,Mon,Tue,Wed,Thu,Fri,Sat d1; scanf(%d,&d1);当键盘输入1时,相当于将d1赋值为Mon,即d1=Mon枚举变量的输出,只能输出其代表的整形数,如需输出其对应的枚举常量,可借助字符串数组的方式处理;如:char *p=“Sun”,“Mon”,“Tue”,Wed,Thu,Fri,Sat; print

19、f(%s,*(p+2);其输出结果为:Tue输入描述:输入为两个正整数,第一个数n(n=6)表示今天是星期几,第二个数m(m=1000),表示求m天后是星期几;输出描述描述:输出为一个长度为3的字符串,表示星期几的名称; #includevoid main() enum daySun,Mon,Tue,Wed,Thu,Fri,Sat d; char *p=Sun,Mon,Tue,Wed,Thu,Fri,Sat; int m; scanf(%d %d,&d,&m); printf(%s,*(p+(d+m)%7); 15题目标题:abc+cba=1333(卜胜贤)题目描述:已知abc+cba=133

20、3,其中a,b,c均为一位数,编程求出所有满足条件的a,b,c所有组合。(知识点:控制语句)输入描述:无输出描述描述:输出数据为多组,每组两个整形数#includevoid main() int a,b,c; for(a=0;a10;a+) for(b=0;b10;b+) for(c=0;c10;c+) if(a*100+b*10+c)+(c*100+b*10+a)=1333) printf(%d %dn,a*100+b*10+c,c*100+b*10+a); 16题目标题:整数各位取奇数(卜胜贤)题目描述:将一个整数中的每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在

21、低位。例如,当s中的数为:87653142时,t中的数为:7531。(知识点:控制语句、函数、指针)输入描述:输入数据为一个不大于100000000的整形数;输出描述描述:输出数据为一个不大于100000000的整形数; #includevoid main() int a; int b; int sum=0; int count=0; int base=1; scanf(%d,&a); while(a!=0) b=a%10; a=a/10; if(1=b%2) sum=sum+base*b; base=base*10; count+; printf(%d,sum);17题目标题:四位反序数(卜

22、胜贤)题目描述:设是一个四位数,它的n倍恰好是其反序数(例如:123的反序数是321),编程,输出一个满足条件的。(知识点:控制语句)输入描述:输入为一个整形数n(2=n=9)输出描述描述:输出为一个四位数的整形数 #include int number(int n);void main() int n,i,t=0; scanf(%d,&n); for(i=1000;i10000;i+) if(i*n=number(i) t=i; break; printf(%d,t);int number(int n) int a1,a2,a3,a4; int result; a1=n%10; a2=n/1

23、0%10; a3=n/100%10; a4=n/1000; result=a1*1000+a2*100+a3*10+a4; return result; 18题目标题:字母翻译(卜胜贤)题目描述:编程: 求解下列式中各字母代表的数字并输出 PEAR-ARA=PEA (知识点:控制语句)输入描述:无输出描述描述:输出为四个数字,以空格分开,依次为代表P E A R 的数字#include void main() int p,e,a,r,d,b,c; for(p=1;p10;p+) for(e=0;e10;e+) for(a=1;a10;a+) for(r=0;r10;r+) d=p*1000+e

24、*100+a*10+r; b=a*100+r*10+a; c=p*100+e*10+a; if(d-b=c) printf(%d %d %d %d,p,e,a,r); 19题目标题:字符串复制(卜胜贤)题目描述:有一个字符串,包括n个字符。写一个函数,将此字符串从第m个字符开始的全部字符复制成另一个字符串。要求在主函数输入字符串及m值并输出复制结果。(知识点:控制语句、字符串、指针)输入描述:输入为一个字符串(长度小于80)及一个整形数(小于字符串的实际长度)输出描述描述:输出为一个字符串#include #include void main() int n,m,i; char str80;

25、char *p; p=str; gets(str); scanf(%d,&n); m=strlen(str); for(i=n-1;im;i+) printf(%c,*(p+i);#include #include void main() int i,j,n; char a80; gets(a); scanf(%d,&n); for(i=n-1;istrlen(a);+i) printf(%c,ai); 20题目标题:二维字符数组转换(卜胜贤)题目描述:编写函数fun, 函数的功能是: 将M行N列的二维数组中的字符数据, 按列的顺序依次放到一个字符串中。例如, 二维数组中的数据为: W W W W S S S S H H H H 则字符串中的内容应是: WSHWSHWSH。(知识点:数组、指针)输入描述:输入为一个3行4列二维字符数组数据输出描述描述:输出为一个长度为12的字符数组;#includevoid

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

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