计算机系C语言编程50题(含答案).doc_第1页
计算机系C语言编程50题(含答案).doc_第2页
计算机系C语言编程50题(含答案).doc_第3页
计算机系C语言编程50题(含答案).doc_第4页
计算机系C语言编程50题(含答案).doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

。1、输入110之间的一个数字,输出它对应的英文单词。#include stdio.hmain() int x; printf(please input x(1-10):n); scanf(%d,&x); switch(x) case 1:printf(one);break; case 2:printf(two);break; case 3:printf(three);break; case 4:printf(four);break; case 5:printf(five);break; case 6:printf(six);break; case 7:printf(server);break; case 8:printf(eight);break; case 9:printf(nine);break; case 10:printf(ten);break; 2、用自然语言描述程序逻辑如下,试写程序。设置环境;定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0;i=1;如果i100,则转,否则转;令s=0,求前i个自然数之和,并放于变量s之中;sum=sum+s;i增加1,转;输出和sum,结束。#include stdio.hmain()int i,j,s;long sum=0; for(i=1;i=100;i+) s=0; for(j=1;j=i;j+) s=s+j; sum=sum+s; printf(sum=%d,sum);3、用自然语言描述的程序逻辑为:(假设正确口令为123456)设置环境;定义变量i、flag和password,并令flag=0,i=0;用户回答口令,将其赋于password变量;口令正确?如果是,则flag=1,转。否则转;回答三次口令了吗?如果没有,计数器加1后(i+),转,否则转;根据flag之值输出相应信息。#include stdio.hmain() long i=0,flag=0,password; printf(please input password:n); scanf(%ld,&password); do if(password=123456) flag=1; i+; while(i0&b0&c0&a+bc&b+ca&a+cb) if(a=b&a=c&b=c) printf(等边三角形!); else if(a=b|a=c|b=c) printf(等腰三角形!); else printf(任意三角形!); else printf(不能构成三角形!); 6、输入10个数,分别统计其中正数、负数、零的个数。#include stdio.h#define N 10main() int i,zsum=0,fsum=0,lsum=0; float x; for(i=1;i0) zsum+; else if(x=0) lsum+; else fsum+; printf(有%d个正数,%d个负数,%d个零,zsum,fsum,lsum);7、先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)#include stdio.h#include stdlib.h#include time.h#define N 100main() int i,x; randomize(); for(i=1;i=N;i+) x=random(900)+100; printf(%dt,x); if(x%3=0&x%5=0&x%7=0) printf(n*%d*n,x); 8、已知x和y存在下列对应关系,要求对输入的每个x值,计算出y值,请编程。 y=0,x=a|x=-a;y=sqrt(a*a-x*x), -axa;y=x, xa.#include stdio.h#include math.hmain() float x,y,a; printf(从键盘输入a,x:n); scanf(%f,%f,&a,&x); if(x=a|x=-a) y=0; else if(x-a&xa) y=sqrt(a*a-x*x); else y=x; printf(y=%f,y);9、计算:1/2-2/3+3/4-4/5,前100项。#include stdio.hmain() int i,t=1; float sum=0; for(i=1;i=100;i+) sum=sum+(t*i*1.0)/(i+1); t=-t; printf(%f,sum);10、从终端输入3个数a、b、c,按从大到小的顺序输出。#include stdio.h#define N 3main() int xN,i,j,temp; for(i=0;iN;i+) printf(please input di %d ge shu:,i+1); scanf(%d,&xi); for(i=0;iN-1;i+) for(j=i+1;jxi) temp=xi; xi=xj; xj=temp; for(i=0;iN;i+) printf(%dt,xi); 11、打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。#include stdio.h#include math.hmain() int i,gw,sw,bw; for(i=100;i=999;i+) gw=i%10; sw=i/10%10; bw=i/100%10; if(i=pow(gw,3)+pow(sw,3)+pow(bw,3) printf(%dn,i); 12、求下列式子的值:1-1/2+1/3-1/4+1/99-1/100,将结果输出。#include stdio.hmain() int i,t=1; float sum=0; for(i=1;i100&b100) printf(%d,%d,a/100,b/100); else printf(%d,a+b); 14、输入学生的成绩,利用计算机将学生的成绩划分出等级并输出:90100:A级;8089:B级;7079:C级;6069:D级;059:E级;#include stdio.hmain() int chengji; printf(please input chengji:n); scanf(%d,&chengji); if(chengji=90&chengji=80) printf(B); else if(chengji=70) printf(C); else if(chengji=60) printf(D); else printf(E);15、把100200之间的不能被3整除的数输出。#include stdio.hmain() int i; for(i=100;i=200;i+) if(i%3!=0) printf(%dt,i);二 数组循环部分: 16、从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。#include stdio.h#define N 5main() float xN,sum=0; int i,count=0; for(i=0;i0) count+; sum+=xi; printf(count=%d,sum=%f,count,sum);17、从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各元素的值。#include stdio.h#define N 5main() int aN,bN,i; for(i=0;iN;i+) printf(please input di %d ge shu:,i+1); scanf(%d,&ai); for(i=0;iN;i+) bi=aN-i-1; for(i=0;iN;i+) printf(%dt,bi); 18、一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。include stdio.h#include math.hmain() int x;/*x表示四位车号*/ int gw,sw,bw,qw; for(x=0;x=9999;x+) gw=x%10; /*个位*/ sw=x/10%10; /*十位*/ bw=x/100%10; /*百位*/ qw=x/1000%10; /*千位*/ if(bw=qw&gw=sw&gw!=bw&sqrt(x)=(int)sqrt(x) printf(%dt,x); 19 安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎的。在回答公安人员的问题中:甲说“乙没有偷,是丁偷的”, 乙说“我没有偷,是丙偷的”,丙说“甲没有偷,是乙偷的”,丁说“我没有偷”。请根据这四人的答话判断谁是盗窃者#include stdio.hmain() int a,b,c,d; for(a=0;a=1;a+) for(b=0;b=1;b+) for(c=0;c=1;c+) for(d=0;d=1;d+) if(b+d=1&b+c=1&a+b=1) printf(%d,%d,%d,%dn,a,b,c,d);20 百钱百鸡问题。百钱买百鸡,鸡翁一值钱三,鸡母一值钱二,鸡雏三值钱一,问鸡翁、鸡母、鸡雏各几何?*/#include stdio.hmain() int jiweng,jimu,jichou; for(jiweng=1;jiweng=33;jiweng+) for(jimu=1;jimu=50;jimu+) jichou=100-jiweng-jimu; if(jiweng*3+jimu*2+jichou*1.0/3=100) printf(%d,%d,%dn,jiweng,jimu,jichou);21 、五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛.()参加时,也参加;()和只有一个人参加;()和或者都参加,或者都不参加;()和中至少有一个人参加;()如果参加,那么和也都参加。 (程序有误)#include stdio.hmain() int a,b,c,d,e; /*用表示参加,表示未参加*/ for(a=0;a=1;a+) for(b=0;b=1;b+) for(c=0;c=1;c+) for(d=0;d=1;d+) for(e=0;e=1;e+) if(a=1) b=1; if(b=1) c=0; else c=1; if(c=1) d=1; else if(c=0) d=0; if(d|e) 22 输入一个字串,判断它是否是对称串。如”abcdcba”是对称串,”123456789”不是。#include stdio.h#include string.hmain() char s50; int i,flag=1; gets(s); for(i=0;i=strlen(s)/2-1;i+) if(si!=sstrlen(s)-i-1) flag=0;break; if(flag=1) printf(%s是对称串,s); else printf(%s不是对称串,s);23 随机产生N个大写字母输出,然后统计其中共有多少个元音字符。(设N为200)#include stdio.h#include stdlib.h#include time.h#define N 200main() int i,count=0,ch; randomize(); for(i=1;i=N;i+) ch=random(26)+65; printf(%ct,ch); if(ch=A|ch=E|ch=I|ch=O|ch=U) count+; printf(count=%d,count);24 从键盘输入长度不等的两个字串,将长串连接于短串之后输出。include string.hmain() char s150,s2100;gets(s1); /*输入长串*/ gets(s2); /*输入短串*/ puts(strcat(s2,s1);25 键盘输入两个字串,输出其中较短的那个字串,并输出它的长度。#include stdio.h#include string.hmain() char s1100,s2100; gets(s1); gets(s2); if(strlen(s1)strlen(s2) puts(s1); printf(n%d,strlen(s1); else puts(s2); printf(n%d,strlen(s2); 26 入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。、#include stdio.h#include string.hmain() char s100; int i,ywcount=0,spcount=0,szcount=0,qtcount=0; gets(s); for(i=0;i=A&si=a&si=0&si=9) szcount+; else qtcount+; printf(英文字母=%d,空格=%d,数字=%d,其他字符=%d,ywcount,spcount,szcount,qtcount);27 个字符串中的元音字母复制到另一字符串,然后输出“另一字符串”。#include stdio.h#include string.hmain() char s1100,s2100; int i,j=0; gets(s1); for(i=0;i=strlen(s1);i+) if(s1i=a|s1i=e|s1i=i|s1i=o|s1i=u) s2j=s1i; j+; puts(s2); 28 字符数组str1种下标为偶数的元素赋给另一字符数组str2,并输出str1和str2。、#include stdio.h#include string.hmain() char str1100,str2100; int i,j=0; gets(str1); for(i=0;i=strlen(str1);i=i+2) str2j=stri; j+; puts(str2);29入一行英文,已知各单词之间用1个空格或一个标点符号相隔(设第一个单词前没有空格),统计这行英文有多少个单词。#include stdio.h#include string.hmain() char s100; int i,count=0; gets(s); for(i=0;istrlen(s);i+) if(si= ) count+; printf(count=%d,count+1);30输入一行字符串,按如下规则加密:如果是英文字母则大写变小写、小写变大写,对非英文字符则保持不变。试写加密程序。#include stdio.h#include string.hmain() char s100; int i; gets(s); for(i=0;i=A&si=a&si=z) si=si-32; puts(s);31随机产生N个两位自然数,降序排列后输出。(设N为20)#include stdio.h#include stdlib.h#include time.h#define N 20main() int xN,i,j,temp; randomize(); for(i=0;iN;i+) xi=random(90)+10; for(i=0;iN-1;i+) for(j=i+1;jxi) temp=xi;xi=xj;xj=temp; for(i=0;iN;i+) printf(%dt,xi); 32求s=a+aa+aaa+aaaa+.+aa.a的值,其中a是19之间的一个数字,表达式项数从键盘输入(设不超过10项)。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。#include stdio.h#include math.hmain() int i,a,n;long t=0,s=0; scanf(%d,%d,&a,&n); s=t=a; printf(%d,t); for(i=1;in;i+) t=t+a*pow(10,i); printf(+%d,t); s=s+t; printf(=%ld,s);33求1+12+123+前n项之和,其中n是从键盘输入的一个数字(19)。#include stdio.h#include math.hmain() int n,i; long s=0; scanf(%d,&n); for(i=1;i=n;i+) s=s+i*pow(10,n-i); printf(%d,s);34小学生智商测试。让电脑随机出十道100以内整数的加法题(10分/题),小学生从键盘回答答案,统计小学生最后得分。#include stdio.h#include stdlib.h#include time.hmain() int i,x,y,sum,chengji=0; randomize(); for(i=1;i=10;i+) x=random(100)+1; y=random(100)+1; printf(%d+%d=,x,y); scanf(%d,&sum); if(x+y=sum) chengji+=10; printf(n); printf(chengji=%d,chengji);35斐氏数列是公元13世纪数学家斐波拉契发明的。即:1,2,3,5,8,13,21,34,55,89,输出其前15项。#include stdio.h#define N 15main() int x,y,z,i; x=1; y=2; printf(%dt%d,x,y); for(i=3;i=N;i+) z=x+y; printf(t%d,z); x=y; y=z; 36输入一个十进数,将其转换成N进制数(0N=0&n=0;i-) printf(%d,si); else printf(n超出范围!); 37输入n个整数,将其中最小者与第一个数对调,最大者与最后一个数对调。#include stdio.h#define N 10main() int xN,max,min,i,min_i,max_i; /*输入N个数*/ for(i=0;iN;i+) scanf(%d,&xi); /*找N个数中的最大和最小值*/ max=x0,max_i=0; min=x0,min_i=0; for(i=1;imax) max=xi; max_i=i; if(ximin) min=xi; min_i=i; /*输出原来N个数*/ printf(原来N个数如下:n); for(i=0;iN;i+) printf(%dt,xi); /*根据题意要求对换数*/ xmin_i=x0; x0=min; xmax_i=xN-1; xN-1=max; /*输出对换后的N个数*/ printf(处理后N个数如下:n); for(i=0;iN;i+) printf(%dt,xi);38将一个数组中的值按逆序重新存放。例:原来顺序为3,6,5,4,1。要求改为1,4,5,6,3 #include stdio.h#define N 5main() int i,xN,yN; for(i=0;iN;i+) printf(please input di %d ge shu :,i+1); scanf(%d,&xi); for(i=0;iN;i+) yi=xN-i-1; printf(%dt,yi); 39键盘输入四个同学的五门课成绩,求出每个学生的平均成绩,输出该数组。#include stdio.h#define M 4#define N 6main() int cjMN,i,j,sum; /*输入每个同学的门课成绩*/ for(i=0;iM;i+) for(j=0;jN-1;j+) scanf(%d,&cjij); /*求平均成绩*/ for(i=0;iM;i+) sum=0; for(j=0;jN-1;j+) sum+=cjij; cjiN-1=sum/(N-1); /*输出该数组*/ for(i=0;iM;i+) for(j=0;j=0) if(cjmax)max=cj; if(cj=0) sum+=x; count+; scanf(%d,&x); avg=sum/count; printf(avg=%f,avg);42打印以下图案: 倒三角 #include stdio.hmain() int i,j; for(i=4;i=0;i-) /*输出每行前的空格*/ for(j=0;j20-i;j+) printf( ); /*输出每行中的*号个数*/ for(j=0;j2*i-1;j+) printf(*); /*输出换行符*/ printf(n); 43求一个3*3的整型矩阵对角线元素之和。#include stdio.h#include stdlib.h#include time.hmain() int x33,i,j,sum=0; /*随机产生整型矩阵,并输出*/ randomize(); for(i=0;i3;i+) for(j=0;j3;j+) xij=random(900); printf(%dt,xij); printf(n); /*求对角线元素和*/ sum=x00+x11+x22; printf(n对角线和=%d,sum);44求满足1+2+3+n500中最大的N,并求其和,编写程序实现。#include stdio.hmain() int n=0,sum=0; while(sum=1;i-) t=t*i; printf(%d!=%ld,n,t);三、自定义函数与指针部分:46、键盘输入长方体的长宽高l、w、h,求其体积及表面积。要求用自定义函数val(l,w,h)计算长方体的体积和表面积,计算结果使用全局变量带回主函数。#include stdio.hfloat tiji,bmianji;void val(float l,float w,float h);main() float l,w,h; scanf(%f,%f,%f,&l,&w,&h); val(l,w,h); printf(tiji=%f,bmianji=%f,tiji,bmianji);void val(float l,float w,float h)tiji=l*w*h;bmianji=2*(l*w+l*h+w*h);47、找出三位自然数中的所有素数,要求判断x素数用自定义函数data(x)实现。#include stdio.hint

温馨提示

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

评论

0/150

提交评论