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 ...

随机推荐

如何使用Sitemap和menu创建网站导航

1.添加Sitemap文件 将Sitemap内容替换为如下示例代码: <?xml version="1.0" encoding="utf-8" ?> ...

如何对Backbone&period;Collection进行过滤操作

首先我想说的是这篇文章的题目起的很怪,因为我不知道起个什么名字比较好.渲染列表是我们应用中最常见的操作了吧,在运用Backbone的应用中,我们一般会把列表作为一个Collcetion,然后指定一个V ...

OSPF虚链路配置&period;示例1

在OSPF 网络中,区域0为骨干区域,其它的为非骨干区域,非骨干区域必须与骨干区域直接相连. 根据拓扑图可看到区域1与骨干区域0直接相连而区域2与骨干区域没有直接相连,这种情况下我们可以创建一条虚 ...

在C&num;中使用NPOI2&period;0操作Excel2003和Excel2007

Excel2003: #region Excel2003 /// /// 将Excel文件中的数据读出到DataTable中(xls) /// ...

android 转帖留链接

Android开发:用Drawable XML绘制带阴影效果的圆形按钮          http://evis.me/2013/05/android-dev-render-button-with-s ...

Windows Phone开发(9):关于页面状态

原文:Windows Phone开发(9):关于页面状态 按照一般做法,刚学会如何导航,还是不够的,因为要知道,手机里面的每个页面,就如同Web页面一样,是无状态的. 啥是无状态?如果我们玩过Web开 ...

虚拟机Q&amp&semi;A

Q1:虚拟机运行一段时间后,各个版本的第一台虚拟机容量变大,增大容量可以接受 原因:不详 解决方法:用备份镜像替换当前镜像 1.1G Jun 24 17:07 win7_sp1_32_0.qcow2 ...

nginx负载均衡精简配置实例

[root@localhost ~]# vim nginx.conf user nginx; worker_processes ; error_log /var/log/nginx/error.log ...

R下载package的一些小问题

1.Error in install.packages : unable to create ‘C:/Users/???/Documents/R/win-library\3.5 采用管理员身份运行,先 ...

C&plus;&plus;primer习题--第1章

本文地址:http://www.cnblogs.com/archimedes/p/cpp-primer-chapter1-ans.html,转载请注明源地址. [习题 1.3] 编一个程序,在标准输出 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值