C语言求等腰梯形面积,几道C语言的题目!

注:编译环境 VC2010,系统WIN7 64位,其他编译环境和系统未测试

1-1. 编程,输入n,输出如下例(n=5)所示的图形:

*****

*****

*****

*****

*****

# include

int main()

{

int length;

void print_parallelogram(int length);

scanf("%d", &length);

print_parallelogram(length);

return 0;

}

/**

* 打印平行四边形

* @param int length 边长

*/

void print_parallelogram(int length)

{

char element    = '*';//元素

char space      =' ';//空格

int i,j,k;

for(i=0; i

{

/** 打印空格 */

for(j=length-(i+1); j>0; j--)

{

printf("%c", space);

}

/** 打印元素 */

for(k=0; k

{

printf("%c",element);

}

printf("\n");

}

}

1-2. 编程,输入n值,输出如下例(n=4)所示的高和上底均为n的等腰梯形:

****

******

********

**********

# include

int main()

{

int length;

void print_isosceles_trapezoid(int length_of_side);

scanf("%d", &length);

print_isosceles_trapezoid(length);

return 0;

}

/**

* 打印等腰梯形

* @param int length_of_side 边长

* @turn  void

*/

void print_isosceles_trapezoid(int length_of_side)

{

char element    = '*';//元素

char space      =' ';//空格

int i,j,k;

for(i=0; i

{

/** 打印空格 */

for(j=length_of_side-(i+1); j>0; j--)

{

printf("%c", space);

}

/** 打印元素 */

for(k=0; k

{

printf("%c",element);

}

printf("\n");

}

}

1-3. 编程,输入n,输出如下例(n=3)所示的边长为n的菱形:

*

***

*****

***

*

# include

int main()

{

int length;

void print_rhombus(int length_of_side);

scanf("%d", &length);

print_rhombus(length);

return 0;

}

/**

* 打印菱形

* @param int length_of_side 边长

* @turn  void

*/

void print_rhombus(int length_of_side)

{

char element    = '*';//元素

char space      =' ';//空格

int times       = length_of_side*2-1;//循环次数

int i,j,k,n,m;

for(i=0; i

{

/** 计算 空格的数量  */

n = length_of_side-(i+1);

n = n < 0 ? -n : n;

/** 打印空格 */

for(j=n; j>0; j--){

printf("%c", space);

}

/** 计算 棱形上边点 和下边点的数量  */

m = i

/** 打印元素 */

for(k=m; k>0; k--){

printf("%c",element);

}

printf("\n");

}

}

1-4. 编程, 输入顶行字符和图形的高。输出如下例(顶行字符为'A',图形的高为5)所示的图形,

A

B C D

E F G H I

J K L M N O P

Q R S T U V W X Y

# include

int main()

{

char letter; int height;

void letter_pyramid(char letter, int height);

printf("请输入金字塔塔顶字母");

scanf("%c", &letter);

printf("请输入金字塔塔高");

scanf("%d", &height);

letter_pyramid(letter, height);

return 0;

}

/**

* 打印字母金字塔

* @param char word  塔顶字母

* @param int  height 塔高

* @return void

*/

void letter_pyramid(char letter, int height)

{

int i,j,k;

/** @TODO 对字符越界做简单处理 */

if(letter+height*height > 256)  {

printf("塔高超出限制,拜拜!!!\n");

return ;

}

for ( i = 0; i < height; i++)   {

/** 打印空格 */

for(k=height-(i+1); k>0; k--) printf("%c", ' ');

/** 打印字母 */

for ( j = 0; j < (i*2)+1; j++)

{

printf("%c", letter++);

}

printf("\n");

}

}

1-5. 编程,打印下列上三角形式的乘法九九表。

1  2  3  4  5  6  7  8  9

----------------------------

1  2  3  4  5  6  7  8  9

4  6  8 10 12 14 16 18

9 14 15 18 21 24 27

16 20 24 28 32 36

25 30 35 40 45

36 42 48 54

49 56 63

86 72

81

# include

int main()

{

void multiplication_table();

multiplication_table();

return 0;

}

/**

* @desc 打印 99乘法表

*/

void multiplication_table()

{

int n = 9,i,j,k;

for (i = 1; i <= n; i++)  printf("%3d", i);

printf("\n");

for (j = 1; j <= n; j++) printf("---");

printf("\n");

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

{

for ( j = 1; j <= n; j++)

{

if (j

printf("   ");

}else{

printf("%3d", i*j);

}

}

printf("\n");

}

}

2-1. 编程,输出200以内(含200)所有完全平方数C(满足C2=A2+B2)及其个数。

# include

int main()

{

void pythagorean_theorem();

pythagorean_theorem();

return 0;

}

/**

*  @desc 求 200以内构成勾股数的个数

*        勾股数公式(a²+ 1)²=(a²-1)²+(2a)²

*/

void pythagorean_theorem()

{

int n=200,i,a,b,c;

int square[200];//用于存放符合勾股数的数

int num=0;// 计算 勾股数的个数

for (i = 1; i*i+1 <= n; i++)

{

/** 套用勾股数定理 */

a  = (i*i+1);

b  = (i*i-1);

c  = 2*i;

if ( a*a == b*b +  c*c && b>0)

{

square[num] = a;

++num;

}

}

if (!num)

{

printf("没有找到符合要求的");return;

}

printf("200内能组成勾股数的个数%d\n",num);

printf("分别是:\n");

while (num)

{

printf("%d\n",square[--num]);

}

}

2-2. 中国古代数学家张丘建在他的《算经》中提出了著名的“百钱百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何? 编程,输出所有可能的购买方案。

# include

int main()

{

void money100_chickens100();

money100_chickens100();

return 0;

}

/**

* @desc 《算经》的“百钱百鸡问题”

*          分析得出公式:5x+3y+z/3=100, x+y+z=100;

*/

void money100_chickens100()

{

int max_x = 100/5;//鸡翁最大数

int max_y = 100/3;//鸡母最大数,取整

int x,y,z;//各种鸡个数

for (x = 0; x <= max_x; x++)

{

for (y = 0; y <= max_y; y++)

{

z = 100 - x - y;

if (x *5 + y*3 + z/3.0 == 100)

{

printf("x=%d,y=%d,z=%d\n",x,y,z);

}

}

}

}

2-3. 设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),编程,输出所有满足条件的N。

# include

int main()

{

/** 4位数9倍恰好是其反序数,所以其反序也是4位数*/

int max = 10000 /9 ;//最大的反序之前的数

int i;

int antitone(int n);

for ( i= 1001; i < max; i++){

if(i*9 == antitone(i)){

printf("%d\n", i);

}

}

return 0;

}

int antitone(int n){

int i=0;

while (n>0){

i = (n%10)+i*10;

n /=10;

}

return i;

}

2-4. 编程,求全部水仙花数。所谓水仙花数是指一个三位数,其各位数字立方的和等于该数。如:153 = 13 + 53+ 33

# include

int main()

{

int i,j,k,n,cube;

for ( i = 1; i <= 9; i++)   {

for ( j = 0; j <= 9; j++)   {

for ( k = 0; k<= 9; k++){

n = i*100+j*10+k;

cube = i*i*i + j*j*j + k*k*k;

if (n==cube)    {

printf("%d\n", n);

}

}

}

}

}

2-5. 编程,输出555555的约数中最大的三位数。

# include

int main()

{

int i ;

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

{

if (555555 % i == 0)

{

printf("%d\n", i);

break;

}

}

}

2-6. 编程,输出1000到100000之间所有满足下列条件的所有整数及其个数:整数的各位数字之和等于5。

# include

void main()

{

int min_i=1000;

/** 因为各位位数之和等于5,所以大于50000的数位数之和也大于5 */

unsigned int max_i=50000;

unsigned int n,num=0;

int figure(long number);

for(n=min_i;n<=max_i;n++){

if(figure(n)==5){

printf("%d\n",n);

num++;

}

}

printf("个数:%d\n",num);

}

int figure(long number){

int result=0;

while(number>0){

result      += number%10;

number   = number/10;

}

return result;

}

2-7.输出1000以内的全部“完全数”。

# include

void main()

{

int n=1000;

int num=0,i,j,r;

for (i = 1; i <= n; i++){

r = 0;

for (j = 1; j < i; j++){

if (i%j==0){

r +=j;

}

}

if (r==i){

num++;

printf("%d\n",i);

}

}

printf("完全数的个数:%d", num);

}

3-1. 编程,输入10个整数,然后进行查找。输入要查找的整数,若找到,则输出该数在数组中的下标位置,否则输出“can not found!”。

# include

void main()

{  int num[10],i,find,flag=0;

printf("请输入10个数\n");

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

scanf("%d", &num[i]);

}

printf("请输入要查找的数");

scanf("%d", &find);

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

if (num[i] == find) {

flag=1;

printf("下标为%d\n", i);

}

}

if (flag==0) {

printf("can not found!\n", i);

}

}

3-2.编程,输入一个字符串并删除其中的指定字符。例如,对于字符串abcdcf,指定删除c,则结果为:abdf。

#include

void main()

{

char str[80],str2[80],letter;

int i=0, j=0;

printf("请输入一个字符串\n");

gets(str);

printf("请输入字符串中要删除的字符\n");

scanf("%c",&letter);

while (str[i]!='\0'){

if (str[i] != letter)   {

str2[j++] = str[i];

}

i++;

}

str2[j]= '\0';

puts(str2);

getch();

}

3-3. 编程,输入一行字符,将其反序后再输出。

#include

void main()

{

char str[80],letter,str2[80], *p=str, *q=str2;

int len=0;

printf("请输入一个字符串\n");

gets(str);

while (*p){

p++;

}

len = p-str;

while (--len>=0){

*q++ = str[len];

}

*q = '\0';

puts(str2);

}

3-4. 编程,输入一行字符,将其中的每个字符从小到大排列后输出。

#include

void main()

{

char str[80],*s=str,temp;

int i,j,len;

scanf("%s",str);

while (*s){

s++;

}

len = s - str;

for (i = 0; i < len; i++)   {

for ( j = i+1; j < len; j++){

if (str[i]>str[j]){

temp    =   str[i];

str[i]  =   str[j];

str[j]  =   temp;

}

}

}

printf("%s",str);

getch();

}

3-5. 编程,输入两个已经按从小到大顺序排列好的字符串,将两个字符串合并为一个新的从小到大排列字符串并输出。

#include

void main()

{

char str[80],str2[80],str3[80],*p=str,*q=str2,*r=str3, *temp_p;

printf("请输入第一个顺序字符串\n");

gets(str);

printf("请输入第二个顺序字符串\n");

gets(str2);

while (*p!='\0' && *q!='\0'){

*r++ = *p

}

temp_p = *p=='\0' ? q :p;

while (*r ++ = *temp_p ++ );

*r= '\0';

puts(str3);

getch();

}

3-6. 输入一行文字,判断该行文字是否是回文。是输出:YES。否输出:NO

#include

void main()

{

char input[80],*p,*q;

p=q=input;

printf("input string:\n");

gets(input);

while(*p!='\0')p++;

p--;

while (p>=input) {

if (*p != *q) {

printf("NO");

getch();

return;

}

p--;q++;

}

printf("YES");

getch();

return;

}

3-7. 编程,输入若干个字符串,当输入字符串的长度为0时停止输入。输出最长的字符串。

#include

int strlen(char str[]){

char *p=str;

while (*p!='\0' && p++);

return p-str;

}

//把第二个字符串的值复制给第一个

void strcpy(char str1[], char str2[]){

char *p=str2, *q=str1;

while (*q++ = *p++);

}

//求最短字符串

void main()

{

char str[80],str2[80];

int len=0, max_len;

gets(str);

max_len= strlen(str);

strcpy(str2, str);

gets(str);

do{

len = strlen(str);

if (len>max_len){

max_len = len;

strcpy(str2, str);

}

gets(str);

} while (str[0]!='\0');

printf("%s", str2);

getch();

}

3-8.输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

#include

void main()

{

char str[80], *p=str;

int num=0,flag=1;

gets(str);

while (*p != '\0'){

printf("%d,",*p == ' ');

if (*p == ' '){

flag=1;

}else{

if(flag)num++;

flag=0;

}

p++ ;

}

printf("total %d words", num);

C语言面试题目之指针和数组

说明:所有题目均摘录于网络以及我所见过的面试题目,欢迎补充! 无特殊说明情况下,下面所有题s目都是linux下的32位C程序. 先来几个简单的热热身. 1.计算以下sizeof的值. char str ...

两道CTF Web的题目

1.easyphp 1.1.题目描述 题目首先是一张不存在的图片 查看源码发现只有一句话 show.php?img=aGludC5qcGc=

一套很有意思的C语言测试题目

网络上逛博客,发现了一套很有意思的测试题目: https://kobes.ca/ 大家有兴趣可以做一下,考一些关于C语言使用的细节: 中文翻译参考: https://www.cnblogs.com/l ...

java几道简单的面试题目

1.   请问以下程序会输出什么? public   class   Test   {  public   static   void   main(String[]   args)   {  Par ...

C语言经典题目

回顾一下吧: 一. 有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 解析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 常规 ...

CTF 两道web整数溢出题目&lpar;猫咪银行和ltshop&rpar;

①猫咪银行: (2018中科大hackgame) 一开始给十个CTB,而flag需要20个CTB,我们需要理财赚够20个. 理财是只能买入TDSU才可以获得收益.我们先上来直接把CTB全部换成TDSU ...

解了这14道C语言谜题后,所有人都失声了!我来带你深入了解C!

本文展示了14个C语言的迷题以及答案,代码应该是足够清楚的,而且有相当的一些例子可能是我们日常工作可能会见得到的.通过这些迷题,希望你能更了解C语言. 如果你不看答案,不知道是否有把握回答各个谜题?让 ...

几道web前端练习题目

在 HTML 语言中,以下哪个属性不是通用属性?A]B]C]D]

C&num;部分---语言经典题目——兔子生兔子

根据本月成兔=上月成兔+上月小兔:本月小兔=上月幼兔:本月幼兔=本月成兔 利用while循环: Console.WriteLine("请输入月份:"); //int m = int ...

随机推荐

Raspkate - 基于&period;NET的可运行于树莓派的轻量型Web服务器

最近在业余时间玩玩树莓派,刚开始的时候在树莓派里写一些基于wiringPi库的C语言程序来控制树莓派的GPIO引脚,从而控制LED发光二极管的闪烁,后来觉得,是不是可以使用HTML5+jQuery等流 ...

python入门到精通&lbrack;二&rsqb;&colon;基础学习&lpar;1&rpar;

摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...

10 steps to becoming the developer everyone wants

You thought it was all about programming skills. But you were wrong! Great code is fine, yet command ...

jmeter 监听的介绍

一个侦听器是一个组件,显示的结果 样本. 结果可以显示在一个树,表格,图表或简单地写入到日志中 文件. 查看的内容反应任何给定的采样器,添加的监听器” 视图 结果树 ”或“ 视图的结果表 一个测试计划 ...

Xcode6 运行程序后,右侧Debug区域的Memory显示空白解决方法

http://chenyh-blog.com/%E8%9B%8B%E7%96%BC%E7%9A%84%E5%86%85%E5%AD%98-%E7%AC%AC%E4%B8%89%E7%AF%87-sdw ...

CSS3样式linear-gradient的使用

linear-gradient linear-gradient是CSS3中新增的样式,主要用于颜色的渐变效果.MDN地址 linear-gradient在不同内核下使用方式不同,详细内容可参考w3cp ...

java 使用CXF将wsdl文件生成客户端代码命令java调用第三方的webservice应用实例

1.先下载cxf包https://download.csdn.net/download/suizhikuo/108112362.解压缩包,通过cmd命令进入到bin目录下(cd cxf\bin的路径) ...

web项目执行流程

先扫描web.xml文件 jsp请求servlet servlet  调数据/不调数据 重定向/转发       Dao(封装数据)   Biz(数据处理)     逻辑判段 返回前端界面显示

Spring的3&period;0提供了一种&colon;SpEL注入方式(了解)

1. SpEL:Spring Expression Language是Spring的表达式语言,有一些自己的语法 2. 语法 * #{SpEL} 3. 例如如下的代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值