C语言练习(1)
来源:互联网 发布:达内java培训学费 编辑:程序博客网 时间:2024/05/17 08:29
1.编程实现对键盘输入的英文名句子进行加密。用加密方法为,当内容为英文字母时其在26字母中的其后三个字母
代替该字母,若为其它字符时不变。
int _tmain(int argc, _TCHAR* argv[])
{
printf("Please input your words:/n");
char str[100];
char c;
gets(str);
for(int i=0;i<100;i++)
{
c=str[i];
if(c>='a'&&c<='z')
putchar((c-'a'+3)%26+'a');
else if(c>='A'&&c<='Z')
putchar((c-'A'+3)%26+'A');
}
return 0;
}
2.编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。
int _tmain(int argc, _TCHAR* argv[])
{
int n,m;
int i=0;
int temp[100];
printf("Please input your number:/n");
scanf("%d",&n);
printf("Please input your base number:/n");
scanf("%d",&m);
while(n!=0)
{
temp[i]=n%m;
n=n/m;
i++;
}
while(i--!=0)
printf("%d",temp[i]);
return 0;
}
3.从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要求显示100元
、50元、10元、5元、2元、1元、1角、5分、1分各多少张。
int type[9]={10000,5000,1000,500,200,100,10,5,1};
printf("Please input your money:/n");
float n;
scanf("%f",&n);
int i=0;
float m=n*100;
int number=(int)m;
printf("%d",number);
while(number!=0)
{
printf("%d ",number);
printf("the count of %f is %d/n",((float)type[i])/100,number/type[i]);
number%=type[i++];
}
return 0;
出现的问题是:当我把float m=n*100;int number=(int)m;换成int number=(int)(n*100)的时候,为什么21.4它总
是变成2139,而不是2140呢?也就是它把21.4改变成21.39差0.01呢?
4、随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。
#include<time.h>
#include<stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
int a[20];
int i,min=0,max=0,sum=0;
srand((int)time(0));
for(i=0;i<20;i++)
{
a[i]=rand()%41+10;
sum+=a[i];
if(min>a[i])min=a[i];
if(max<a[i])max=a[i];
}
printf("min=%d max=%d sum=%d ave=%f ",min,max,sum,float(sum)/20);
return 0;
}
5.编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
#include<stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
char str[100],save[100];
int start=0,max=0,heigh=0;
int i=0;
printf("Please input your numbers:/n");
gets(str);
while(str[i]!='/0')
{
if(str[i]==' ')
{
if(max<heigh)
{
max=heigh;
start=i-heigh;
}
heigh=0;
}
else
heigh++;
i++;
}
if(max<=heigh)
max=heigh; //容易忘掉,切忌
printf("max=%d ",max);
while(max-->0)
{
printf("%c",str[start++]);
}
return 0;
}
6.任何一个自然数m的立方均可写成m个连续奇数之和。例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
#include<stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
int n,j;
int sum=0,start=0;
scanf("%d",&n);
for(j=0;j<n;j++)
sum+=j;
start=sum*2+1;
for(j=0;j<n;j++)
printf("%d ",start+j*2);
return 0;
}
7.知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。
#include<stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
int a,b,c;
for(a=4;a<9;a++)
{
c=13-a;
if((c+1*10+a*100+a+1*10+c*100)==1333)
printf("a=%d,b=1,c=%d/n",a,c);
}
return 0;
}
8.编制一个完成两个数的四则运算程序。如:用户输入34+56则输出结果90.00。要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。
#include<stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
float a,b;
char mark;
scanf("%f%c%f",&a,&mark,&b);
switch(mark)
{
case '+':printf("%.2f",a+b);break;
case '-':printf("%.2f",a-b);break;
case '*':printf("%.2f",a*b);break;
case '/':printf("%.2f",a/b);break;
}
return 0;
}
9.耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。
int _tmain(int argc, _TCHAR* argv[])
{
int people[14]={0};
int i,j,now=1;
for(i=1;i<13;i++)
{
j=1;
while(j!=3){
if(people[now]==0)
j++;
if(now>13)
now=1;
else
now++;
}
people[now]=1;
printf("%d ",now);
j=0;
}
return 0;
}
printf("a=%d/n", a); /*结果输出十进制整数a=1234*/
printf("a=%6d/n", a); /*结果输出6位十进制数a= 1234*/
printf("a=%06d/n", a); /*结果输出6位十进制数a=001234*/
printf("a=%2d/n", a); /*a超过2位, 按实际值输出a=1234*/
printf("*i=%4d/n", *i); /*输出4位十进制整数*i= 12*/
printf("*i=%-4d/n", *i); /*输出左对齐4位十进制整数*i=12*/
printf("i=%p/n", i); /*输出地址i=06E4*/
printf("f=%f/n", f); /*输出浮点数f=3.141593*/
printf("f=6.4f/n", f); /*输出6位其中小数点后4位的浮点数
f=3.1416*/
printf("x=%lf/n", x); /*输出长浮点数x=0.123457*/
printf("x=%18.16lf/n", x);/*输出18位其中小数点后16位的长浮点数x=0.1234567898765432*/
printf("c=%c/n", c); /*输出字符c=A*/
printf("c=%x/n", c); /*输出字符的ASCII码值c=41*/
printf("s[]=%s/n", s); /*输出数组字符串s[]=Hello, Comrade*/
printf("s[]=%6.9s/n", s);/*输出最多9个字符的字符串s[]=Hello, Co*/
printf("s=%p/n", s); /*输出数组字符串首字符地址s=FFBE*/
printf("*p=%s/n", p); /* 输出指针字符串p=How do you do*/
printf("p=%p/n", p); /*输出指针的值p=0194*/
程序在VS2005全部运行成功,所有的程序并没有加#include "stdafx.h"头文件,编程过少故此练习。关于数组方面
并没有写出溢出处理,因为省事。
希望看题的人至少提出几条意见,最好是能简化程序,比我的程序简单请您一定写出,我的代码质量并不高,所以一定提出点意见。瞧不起的小程序,原来编起来却一裤衩毛病。。。
- c语言练习1
- c语言练习1
- C语言练习(1)
- C语言练习1
- C语言练习1
- C语言练习1
- C语言练习1
- C语言数组练习1
- C语言指针练习1
- C语言函数练习1
- C语言字符串练习1
- C语言结构练习1
- C语言入门练习1
- C语言问题练习1
- 自学C语言练习1
- c语言入门练习1
- C语言练习(1)
- C语言小练习 1
- 测试:你魅力与才气指数
- 测试:看看你的职业走向
- 遭遇超级“雷人”面试
- 对BigDecimal常用方法的归类(转)
- 发表一个有意思的创意---云计算应p2p化中提到的应用
- C语言练习(1)
- 临近春节
- 位结构体
- 指针学习笔记
- 关于子类继承父类的构造函数用法
- C#定义类使不写Public的情况分析
- 为学C语言而来
- 在夜的最深处想你
- 事情。