c语言编程题经典题目_c语言程序编程题目

投档分数 2025-05-04 10:24:39

10道经典的C语言例题(含参考程序)

1.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个“水仙花数”,因为153=1^3+5^3+3^3。

c语言编程题经典题目_c语言程序编程题目c语言编程题经典题目_c语言程序编程题目


c语言编程题经典题目_c语言程序编程题目


c语言编程题经典题目_c语言程序编程题目


#include

#include

int main()

{int bai_wei,shi_wei,ge_wei,i,sum=0;

for(i=100;i<1000;i++)

{bai_wei=i/100;

shi_wei=(i%100)/10;

ge_wei=i%10;

if(i==pow(bai_wei,3)+pow(shi_wei,3)+pow(ge_wei,3))

{printf("%d ",i);

sum++;

if(sum%5==0)

printf(" ");

}}

printf(" ");

return 0;

}2.请输入任意两个整数x和y,求其公约数和小公倍数。

#include

int main()

{int x,y,min,max,i;

printf("请输入任意两个整数:");

scanf("%d%d",&x,&y);

min=x>y?y:x;

max=x>y?x:y;

for(i=min;i>0;i--)

if(x%i==0&&y%i==0)

{printf("这两个整数的公约数为:%d ",i);

break;

}for(i=max;i<=xy;i++)

if(i%x==0&&i%y==0)

{printf("这两个整数的小公倍数为:%d ",i);

break;

}return 0;

}3.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

#include

#include

#define N 50

int main()

{int sum1=0,sum2=0,sum3=0,sum4,i=0;

char str[N];

printf("请输入一串字符串:");

scanf("%s",str);

for(i=0;i

{if((str[i]>='a'&&str[i]='A'&&str[i]<='Z'))

sum1++;

if(str[i]==' ')

sum2++;

if(str[i]>='0'&&str[i]<='9')

sum3++;

}sum4=strlen(str)-sum1-sum2-sum3;

printf("英文字母的个数:%d ",sum1);

printf("空格的个数:%d ",sum2);

printf("数字的个数:%d ",sum3);

printf("其他符号的个数:%d ",sum4);

return 0;

}4.求s=a+aa++a+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

#include

#include

int main()

{int a,n,s=0,i,x=0,y=0;

printf("请输入整数a的值:");

scanf("%d",&a);

printf("请输入相加的个数n:");

scanf("%d",&n);

for(i=0;i

{x=y+2pow(10,i);

y=x;

s=s+x;

}printf("s=%d ",s);

return 0;

}5.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3。编程找出1000以内的所有完数。

#include

int main()

{int sum=0,i,j;

printf("在1000以内的完数有:");

for(i=2;i<=1000;i++)

{for(j=1;j

if(i%j==0)

sum=sum+j;

if(sum==i)

printf("%d ",i);

sum=0;

}printf(" ");

return 0;

}6.输入一个不多于5位的正整数,要求:1、求它是几位数;2、逆序打印出个位数字。

#include

int pows(int a,int n)

{int sum=1,i;

for(i=0;i

sum=suma;

return sum;

}int main()

{int n,i,k,x;

printf("n=");

scanf("%d",&n);

for(i=1;i<6;i++)

if(n/pows(10,i)==0)

{printf("%d ",i);

k=i;

break;

}for(i=0;i

{x=n/pows(10,i)%10;

printf("%d",x);

}printf(" ");

return 0;

}7.输入一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

#include

int main()

{int n,a[5],i=0;

printf("请输入一个5位数:");

scanf("%d",&n);

while(n!=0)

{a[i]=n%10;

n=n/10;

i++;

}if(a[0]==a[4]&&a[1]==a[3])

printf("这个数是回文数 ");

else

printf("这个数不是回文数 ");

return 0;

}8.利用递归算法,将所输入的5个字符,以相反顺序打印出来。

#include

void digui(char a[],int n)

{if(n==1)

printf("%c",a[0]);

else

{printf("%c",a[n-1]);

digui(a,n-1);

}}

int main()

{char str[5];

printf("请输入5个字符:");

scanf("%s",str);

digui(str,5);

printf(" ");

return 0;

}9.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…球出这个序列的前20项之和。

#include

int main()

{int i,a=1,b=1;

float sum=0.0;

for(i=1;i<=20;i++)

{sum=sum+(float)(a+i)/b;

b=a+i;

a=i;

}printf("sum=%f ",sum);

return 0;

}10.利用递归算法求5!。

#include

int digui(int n)

{if(n==1)

return 1;

else

return ndigui(n-1);

}int main()

{int n,sum;

printf("n:");

scanf("%d",&n);

sum=digui(n);

printf("sum=%d ",sum);

return 0;

}

急求c语言编程题目

rand()函数是按指定的顺序来产生整数,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机,有时候也叫伪随机数,使用 rand() 生成随机数之前需要用随机发生器的初始化函数 srand(unsigned seed)(也位于 stdlib.h 中) 进行伪随机数序列初始化,seed 又叫随机种子,通俗讲就是,如果每次提供的 seed 是一样的话,后每一轮生成的几个随机值也都是一样的,因此叫伪随机数,所以需要每次提供不同的 seed 达到完全的随机,我们通常用时间函数 time(NULL) 作为 seed ,因为时间值每秒都不同,这个函数需要包含以下头文件:

#include

1理论太泛,下面用例子分析理解。

举例分析

先来理解以下伪随机数,编译以下代码:

#include

#include

#include

int main()

{srand(1);

int i;

for (i = 0; i < 10; i++)

printf("%d, ", rand()%11);

}1

23

45

67

89

10

运行结果

8, 9, 9, 1, 7, 5, 5, 10, 1, 0,

可以的这个

666

C语言编程题目?

是D,

char

ch要用来接收一个字符,而不是字符串,所以A被排除

函数的返回值类型是void,就是说没有返回值,B项不合要求,排除

C项中'65'是一个不合法的字符,如果不是转义字符的话单引号里不能有多于一个的字符,而'65'里有两个了,不合法,排除

D项是可以的,个32是直接向char型变量里赋ASCII值,就是把一个空格放到ch中,是合法的,第二个32是可以放进float型变量里的,小数部分因为没有,所以用0补了

int

k=0;

种:k++

//

k的值不变,然后再加;

第二种:k+=1//

等价于k=k+1;

第三种:++1//

每次在赋予的值中加1,一般应用于循环语句中。

第四种:k+1//

这种就等于所定义的值加1就可以了。

++1没有意义是错误的,自加自减,不能用于常量上面,应该是++K,如果就k值的终结果来说,k+1与其他三个不同,因为其他的三个都对k进行了运算后k的值为1,而后一个只是做了整体的运算没有对k的值改变,所以与其他三个不同

接1楼的解释:++

就是自增!k++

就是把

k的值增加1然后赋给k

而k+1

是计算出当前的值!并没有执行赋值作,所以k+1

k值没有变化!

k+=1

+=

一看就知道

将+1后的值=k!

++k

同k++

是一样的!~

k++

k+=1

++1

k+1

k++的意思

k的值先运

运算后在原基础上加一

k+=1的意思

k=k+1

++1

这个感觉是错的

(这个与上面的不同)

k+1

的意思

k的值在加上1

++1是错误表达式,

k++是表示在k的基础上再加1,只有变量才能用“++”,如果时常量,则用自加自减都是错的,希望你能明白!

大学福音经典编程题适用于专升本

C语言100道适用专升本超有用

1.十进制数转任意进制数

2.数字三角形

3,编程求某年第 n 天的日期。

4.求周岁

5.编程求出使该算式成立时的这两个数

6.功能:(较难不用看) 编程求任意给两个日期(年 月日)相的天数。

7.把一个数的二进制奇数位和偶数位交换

8.题目要求找出数组中的两个单身狗

9,数字字符串转换为整数

10.升序的数组插入一个数,还保持升序

11.输入年月判断该月多少天

12 .遍历法求名次

13.谁是凶手

14.输入一个整数数组,实现一个函数,来调整数组中的奇数和偶数的位置,奇数在前偶数在后

15.1元一瓶汽水,两个空瓶可以换一瓶,问20元可以喝多少瓶

16.打印一个菱形,输如n的打印2n -1行的菱形

17.输入一个整数找出紧跟在他后面的素数

18.计数求和,Sn=2+22+222+2222+22222

19.输入两个数求小公倍数和公因数,代码中有详解

20.一个数 +100之后是完全平方数,+168还是一个完全平方数

21.数字金字塔

22.字符串左旋

23.[稍难不用看] 要求:写一个函数判断一个字符串是否是另一个字符串旋转后得到的

24.给数组删除重复的元素

25.C语言编程题求1! + 2! + 3! + 4!....+N

26.C语言编程题求斐波那契数(循环法与递归法

27.C语言编程输入n,k求n的k次幂(递归与非递归)

28.(递归)输入一个数,把他的每一位相加在输出出来;

29,实现函数把字符数组的元素逆序 如“abc“,逆序成“cba“

30.递归拆分整数

31.设计以函数打印乘法口诀表

32构造一函数判断是否为素数100-200之间(只能被自己和1整除的数)

33.打印二进制数的奇数位和偶数位;分别打印二进制序列

34.计算M和N二进制中不同的位数,例如 1和7 有两位不同;

35输出1900到2000之间的所有闺年

36,猴子吃桃问题

37.选择排序法 升序排列

38.冒泡排序法

39.求33矩阵对角元素的和

40.把整数数组中的元素值逆序存放

41.杨辉三角形

42.折半查找---必须建立在有序的数组中

43,计算3行80个字符 的类型个数

44.原文与密码

45模拟strcat字符串连接函数

46.模拟strlen(3种方法)

47模拟strcmp

48.模拟字符串拷贝函数strcpy

49.strncpy的模拟

50.strncat模拟实现

51模拟strncmp

52.(较难些可以不看)模拟寻找子串的函数strstr

53.内存拷贝函数

54.判断一个数是不是素数:

53.33矩阵的转置

56任何比2大的偶数,总能表示两个素数

57.输入四位数字输出四个字符

58.把a数组的内容拷贝到b数组每拷贝三个放1个

59.输入一串字符串把其中长的字母拷贝放到另一个数组

60.16进制转换位10进制

61.输入10个整数,的和后一个位置上的交换小的和前面的那个交换

62.报数问题n个人从1报数到3,每次报数到3的那个元素被清空

63.输入多个字符串,排序后输出

64.(难可不看)输入一个字符串,将连续的数字字符串放到另一个二维数组中

65.结构体指针问题

66.三天打鱼两天晒网,第 N 天是打鱼还是晒网?

67.输入多个字符串,然后输出短的字符串

68.3 个数,有两个数一样, 找另一个数

69.有 1000 人捐款, 捐到 10 万就停止捐款。 统计捐款人数和总额

70.指定位置字符串逆序

71.水仙花数

72.求素数因子

73.判断一个数是不是完全平方数?

74.蠕虫问题

75.结构体排序学生情况

76.求一元二次方程的根, ax 方+bx + c=0,ab,c 自己输入

77.累加100--999之间个位数为7的素数女78斐波那契兔子

78迭代求平方根

79.累加二维数组边缘元素的和

80.逗号表达式方面小题

81.白马百担问题

82.八进制转10进制

83.func(func(x++,y++),func(--x,--y));函数调用问题

84.水手分桃子

85挖素数

86.两个有序递增 的数组存到另一个数组还是有序的

87.把字符串中的空格去掉女88.将b字符串的内容插入到a字符串,a字符串保持升席

89.用递归的方法把字符串逆序

90分解质因数

.10进制转16进制

92.10进制转8进制

93.计算并输出n以内10个素数的和

94.完数

95打印X型图案

96.打印空心正方形

97.判断一个数组是否有序

98.整形数组删除指定的数字

99.给字符数组每个元素中间添加一个空格

100.旋转字符

101.求sinx近似值

C语言实例 一个很好的编程题

今天在某qq群见到有人问下面这个题目,当时没太多思路,跟他讨论了下,突然想出了做法。

于是,马上编程实践,没想到,不久就把它实现了。好有成就感。。。

1+11+111+1111+..........+11.....11(后为2009个1) 求和有几个1

(以上为10进制数)

我的:

1 #include stdlib.h

2 #include stdio.h

3 #define size 2009

45 void main()

6 {

7 int result[size] = {0};//存结果中每位所得到的进位值

8 int count = 0;//结果中1的个数

9 int numOfbit=size;//存现在判断的位不加进位的值

10

11 for(int i=0;isize;i++)

12 {//循环判断结果中每位是否为1,并处理进位

13 if(1 == (numOfbit + result[i])%10)

14 {//判断此位是否为1

15 count++;

16 }

17

18 if(numOfbit9)

19 {//处理进位

20 int val = numOfbit%10;

21 int bit = i+1;//要进位的对应位下标

22 do

23 {

24 result[bit] += val%10;

25 val = val%10;

26 bit++;

27 }

28 while(val=10);

29 }

30 numOfbit--;

31 }

32

33 printf("结果中1的个数为%d

",count);

34 }

版权声明:本文内容由互联。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发 836084111@qq.com 邮箱删除。