C语言WORD文档.docx
- 文档编号:12119156
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:33
- 大小:20.05KB
C语言WORD文档.docx
《C语言WORD文档.docx》由会员分享,可在线阅读,更多相关《C语言WORD文档.docx(33页珍藏版)》请在冰豆网上搜索。
C语言WORD文档
1.输入一个大写字母,输出字母表中它前面的字母和后面的字母。
#include
voidmain()
{
charc;
scanf("%c",&c);
if(c=='a'||c=='A')
printf("没有前面的字母");
elseif(c=='z'||c=='Z')
printf("没有后面的字母");
else
{
printf("%c\n",c-1);
printf("%c\n",c+1);
}
}
2.输入一个字符,若是大写字母,则转换成小写字母输出;若是小写字母,则直接输出。
#include
voidmain()
{
charc;
scanf("%c",&c);
if(c<=97)
printf("%c",c+32);
else
printf("%c",c);
}
3.输入一个字符,若是小写字母,则转换成大写字母输出;若是大写字母,则转换成小写字母输出。
#include
voidmain()
{
charc;
scanf("%c",&c);
if(c>=65&&c<=90)
printf("%c",c+32);
else
printf("%c",c-32);
}
4.试编程序,求一个整数任意次方的最后三位数之和。
即求yx的最后三位数,要求x,y从键盘输入,使用循环实现,不能使用数学库函数。
#include
voidmain()
{
intx,y,n=1,i,k,j;
scanf("%d%d",&x,&y);
for(i=1;i<=y;i++)
{
n*=x;
}
printf("%d\n",n);
k=n%1000;
j=k%10+((k%100)/10)+((k%1000)/100);
printf("%d",j);
}
5.编写函数,求出n个a之积。
调用该函数,输入两个正整数n和a,求43421KLnaaaaaaaaaa++++之和。
#include
intf(intn,inta)
{
ints=1;
inti;
for(i=1;i<=n;i++)
s*=a;
returns;
}
main()
{
intn,a,i;
ints=0;
scanf("%d%d",&n,&a);
for(i=1;i<=n;i++)
{
s=s+f(i,a);
}
printf("%d\n",s);
}
6.利用循环找出并输出所有的“水仙花数”。
“水仙花数”是一个三位数,其各位数字的立方和等于该数本身。
如333351153++=,所以153是“水仙花数”。
#include
voidmain()
{
inta,b,c,i,j,k;
for(i=100;i<=999;i++)
{
a=i/100;
b=i/10%10;
c=i%10;
k=a*a*a+b*b*b+c*c*c;
if(i==k)
printf("%3d\n",i);
}
printf("\n");
}
7.编写计算阶乘的函数,并计算组合数Cmn=m!
n!
(m−n)!
。
m和n由键盘
获得。
#include"stdio.h"
longf(intn)
{
intk=1;
longi;
for(i=1;i<=n;i++)
k*=i;
returnk;
}
longg(intm,intn)
{
longd;
d=f(m)/(f(n)*f(m-n));
returnd;
}
voidmain()
{
intm,n;
longd;
scanf("%d%d",&m,&n);
d=g(m,n);
printf("%ld",d);
}
8.判断一个数是否是素数,该数由键盘输入。
#include"stdio.h"
#include"math.h"
voidmain()
{
intn,i,k;
scanf("%d",&n);
k=(int)sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)break;
if(i==k+1)
printf("YES!
\n");
else
printf("NO!
\n");
}
9.编写函数intfun(charstr[])并在主函数中调用它。
此函数的功能是判别字符串str是否为“回文”,若是,返回1,否则返回0(回文是指正反序相同的字符串,如“13531”、“madam”是回文,“1353”、“mrs”不是回文)。
#include"stdio.h"
#include"string.h"
intfun(charstr[])
{
inti,j,n;
n=strlen(str);
for(i=0,j=n-1;i<=(n-1)/2;i++,j--)
if(str[i]!
=str[j])break;
if(i>j)
return1;
else
return0;
}
intmain()
{
chara[80];
gets(a);
if(fun(a)==1)
printf("yes!
\n");
else
printf("no!
\n");
}
10.输出斐波那契数列的前40项。
斐波那契数列是个整数数列,其定
义为:
fn=
1n=1,n=2fn−1+fn−2n>2#include
voidmain()
{
inti,a[40]={1,2};
for(i=2;i<40;i++)
{
a[i]=a[i-1]+a[i-2];
}
for(i=0;i<40;i++)
printf("%d\n",a[i]);
}
11.试编程序,求一个整数任意次方的最后三位数之和。
即求yx的最
后三位数,要求x,y从键盘输入,使用循环实现,不能使用数学库函数。
#include
voidmain()
{
intx,y,n=1,i,k,j;
scanf("%d%d",&x,&y);
for(i=1;i<=y;i++)
{
n*=x;
}
printf("%d\n",n);
k=n%1000;
j=k%10+((k%100)/10)+((k%1000)/100);
printf("%d",j);
}
12.编写函数,求s=s1+s2+s3+s4,其中:
s1=1+12+13++150s2=1+12+13++1100s3=1+12+13++1150s4=1+12+13++1200#include"stdio.h"
doublefn(intn)
{
inti;
doubleh=1;
for(i=1;i<=n;i++)
h+=1/i;
return(h);
}
voidmain()
{
ints1,s2,s3,s4;
doubles;
s1=50;
s2=100;
s3=150;
s4=200;
s=fn(s1)+fn(s2)+fn(s3)+fn(s4);
printf("%f",s);
}
13.输入整数a和b,若22ba+大于100,则输出22ba+的值,否则输出a+b的值。
#include"stdio.h"
voidmain()
{
inta,b,s;
s=a*a+b*b;
if(s>100)
printf("%d",s);
else
printf("%d",a+b);
}
14.统计字符串中单词的个数,字符串由键盘获得,最多输入99个字符,单词与单词之间用空格符分隔,单词与单词之间可能有多个空格。
#include
#include
voidmain()
{
inti,num=0,word=0;
charstring[99],c;
printf("pleaseinput\n");
gets(string);
for(i=0;(c=string[i])!
='\0';i++)
if(c=='')
word=0;
elseif(word==0)
{
word=1;
num++;
}
printf("%d\n",num);
}
15.编写函数voidmyStrCpy(chars2[],chars1[]),并在主函数中调用它。
此函数将字符数组s1中的字符串拷贝到字符数组s2中去。
#include
voidmyStrCpy(chars2[],chars1[])
{inti;
for(i=0;i s2[i]=s1[i]; } voidmain() { chars1[80],s2[30]; gets(s1); myStrCpy(s2,s1); printf("%s\n",s2); } 16.编写程序,输入一个整数,判断它能否被3、5、7整除,并根据情况输出下列信息: (1)能同时被3、5、7整除。 (2)能同时被3、5、7中的两个数整除,并输出这两个数。 (3)只能被3、5、7中的一个数整除,输出该数。 (4)不能被3、5、7中的任何一个数整除。 #include voidmain() { intx; scanf("%d",&x); if(x%3==0&&x%5==0&&x%7==0) printf("能被3,5,7中的任何一个数整除\n"); elseif(x%3==0&&x%5==0) printf("能同时被3,5,7中的两个数整除,分别是3,5\n"); elseif(x%3==0&&x%7==0) printf("能同时被3,5,7中的两个数整除,分别是3,\n"); elseif(x%5==0&&x%7==0) printf("能同时被3,5,7中的两个数整除,分别是5,7\n"); elseif(x%3==0&&x%5! =0&&x%7! =0) printf("只能被3,5,7中的一个数整除,是3\n"); elseif(x%3! =0&&x%5==0&&x%7! =0) printf("只能被3,5,7中的一个数整除,是5\n"); elseif(x%3! =0&&x%5! =0&&x%7==0) printf("只能被3,5,7中的一个数整除,是7\n"); else printf("不能被3,5,7中的任何一个数整除\n"); } 17.求99的个、十、百位上数字之和。 #include"stdio.h" voidmain() { inta,b,c,i,n,s; for(i=2,n=9;i<=9;i++) n*=9; a=n%10; b=n%100/10; c=n%1000/100; s=a+b+c; printf("%d\n",s); } 18.编写函数voidmyStrCat(char*s2,char*s1),并在主函数中调用它。 该函数实现将字符串ch2复制到字符串ch1的末尾,实现ch1与ch2的连接。 #include voidmyStrCat(char*s1,char*s2) { while(*s1! ='\0') s1++; while(*s2! ='\0') { *s1=*s2; s1++; s2++; } *s1='\0'; } voidmain() { charch1[80],ch2[30]; printf("inputch1\n"); gets(ch1); printf("inputch2\n"); gets(ch2); myStrCat(ch1,ch2); printf("%s\n",ch1); } 19.输出10至99之间,十位与个位的积大于十位与个位的和的所有 数。 #include"stdio.h" voidmain() { inti,m,n; for(i=10;i<100;i++) { n=i%10; m=i/10; if((m*n)>(m+n)) printf("%3d",i); } } 20.判断一个数是否是完数(其因子之和等于该数本身),该数由键盘 输入。 #include"stdio.h" voidmain() { intn,i,a,s=0; scanf("%d",&n); for(i=1;i { a=n%i; if(a==0) s+=i; } if(n==s) printf("yes"); else printf("no"); } 21.求 1+12 +13 +14 ++1n的值,n的值由键盘获得。 #include"stdio.h" voidmain() { inti,n; doublesum=0; scanf("%d",&n); for(i=1;i<=n;i++) sum+=1.0/i; printf("%f",sum); } 22.输入一个字符,若是小写字母,则转换成大写字母输出;若是大写字母,则直接输出。 #include voidmain() { charc; scanf("%c",&c); if(c<=97) printf("%c",c+32); else printf("%c",c); } 23.统计字符串中字符为数字的个数,字符串由键盘获得。 #include #include voidmain() { inti,num=0; charstring[99],c; printf("pleaseinput\n"); gets(string); for(i=0;(c=string[i])! ='\0';i++) if(c>=48&&c<=57) num++; printf("%d\n",num); } 24.利用循环打印下列九九乘法表: 123456789---------12345678946810121416189121518212427162024283236253035404536424854495663647281 #include voidmain() { inti,j,k,n; for(n=1;n<=9;n++) printf("%3d",n); printf("\n"); for(n=1;n<=9;n++) printf("-"); printf("\n"); for(i=1;i<=9;i++) {for(j=1;j printf(""); for(k=i;k<=9;k++) printf("%3d",i*k); printf("\n"); } } 25.分别输出100以内(不包括100)所有偶数的和与所有奇数的和。 #include voidmain() { inti,j,m=0,n=0; for(i=1;i<100;i+=2) m+=i;printf("%d\n",m); for(j=0;j<100;j+=2) n+=j;printf("%d\n",n); } 26.利用嵌套循环输出以下图形(行与行之间无空行,列与列之间无空列): (15分)###### ##### #### ### ## # #include voidmain() { inti,j,k; for(i=1;i<7;i++) { for(j=1;j printf(""); for(k=i;k<7;k++) printf("#"); printf("\n"); } } 27.编写函数voidmyStrCat(char*s2,char*s1),并在主函数中调用它。 该函数实现将字符串ch2复制到字符串ch1的末尾,实现ch1与ch2的连接。 (15分) #include voidmyStrCat(char*s1,char*s2) { while(*s1! ='\0') s1++; while(*s2! ='\0') { *s1=*s2; s1++; s2++; } *s1='\0'; } voidmain() { charch1[80],ch2[30]; printf("inputch1\n"); gets(ch1); printf("inputch2\n"); gets(ch2); myStrCat(ch1,ch2); printf("%s\n",ch1); } 28.输入某学生的考试成绩等级A、B、C、D,要求按照等级输出对应的分数段。 A级对应分数段为80-100,B级对应分数段为70-79,C级对应分数段为60-69,D级对应分数段为60分以下。 #include voidmain() { chars; printf("pleaseinput"); s=getchar(); if(s=='A') printf("80-100"); elseif(s=='B') printf("70-80"); elseif(s=='C') printf("60-70"); elseif(s=='D') printf("<=60"); } 29.通过循环按行优先顺序为一个5×5的二维数组a赋1到25的自然数,然后输出该数组的左下半三角。 #include voidmain() { inta[5][5],i,j; for(i=0;i<5;i++) { for(j=0;j<5;j++) { a[0][j]=j+1; a[1][j]=j+6; a[2][j]=j+11; a[3][j]=j+16; a[4][j]=j+21; } } for(i=0;i<5;i++) {for(j=0;j<5;j++) if(i>=j) printf("%3d",a[i][j]); printf("\n"); } } 30.利用指针编写程序,将一个一维数组a[10]中的最大元素和首元素 换位,最小元素和末元素换位。 数组元素由键盘获得。 #include voidmain() { inta[10],*p=a; inti,t; printf("pleaseinput\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) if(*(p+i)>*p) { t=*(p+i); *(p+i)=*p; *p=t; } for(i=9;i>=0;i--) if(*(p+i)<*(p+9)) { t=*(p+i); *(p+i)=*(p+9); *(p+9)=t; } for(i=0;i<10;i++) printf("%d\n",a[i]); } 31.利用嵌套循环输出以下图形(行与行之间无空行,列与列之间无空列): # ## ### #### #include voidmain() { inti,j,k; for(i=1;i<5;i++) { for(j=1;j<5-i;j++) printf(""); for(k=5-i;k<5;k++) printf("#"); printf("\n"); } } 32.输入一个两位数,将这个数的十位数和个位数互换后输出。 比如输入58则输出85,输入21则输出12 #include voidmain() { intm,n; scanf("%d",&m); n=(m%10)*10+m/10; printf("%d",n); } 33.将一个一维数组a[10]中的最大元素和最小素互换。 数组元素由键盘获得。 #include voidmain() { inta[10],min,max; inti,mini=0,maxi=0; printf("pleaseinput\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); min=a[0],max=a[0]; for(i=0;i<10;i++) {if(a[i]>max) { max=a[i]; maxi=i; } elseif(a[i] { min=a[i]; mini=i; } } a[maxi]=min; a[mini]=max; for(i=0;i<10;i++) printf("%d\n",a[i]); } 34.统计字符串中小写字母的个数,字符串由键盘获得。 #include #include voidmain() { inti,num=0; chars
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 WORD 文档