计算题C语言代码
c语言实操题
c语言实操题下面为C语言上机考试中可能出现的代码问题(基础):(喜欢的话记得分享给身边的小伙伴哦!点点赞,谢谢啦!)1、求300-800之间,能被3整除或者能被5整除的数的总个数。
# include<stdio.h>intmain(){int i, s=0;for(i=300;i<=800;i++){if(i%3==0||i%5==0)s++;}printf("%d\n", s);return0;}2、输入一个十进制数,分别输出该数对应的八进制与十六进制数。
(输出三行第一行为八进制数,第二行为十六进制数,十六进制字母取小写字符,最后一行为空)# include<stdio.h>intmain(){inti;scanf("%d",&i);printf("%o\n%x\n", i, i);return0;}3、输入两个正整数m和n,求其最大公约数和最小公倍数。
(输入正整数以空格隔开,输出两行,第一行为最大公约数,第二行为最小公倍数)# include<stdio.h>intmain(){int m, n, x, y,z;scanf("%d %d",&x,&y);m = x;n = y;while(y!=0){z = x%y;x = y;y = z;}printf("%d\n%d\n", x, m*n/x);return0;}4、输入一个整数n(1<=n<=10),然后输入n个整数,并保存到数组中,再输入一个整数m,输出m在数组中的下标,如果不存在则输出"Not present!"。
例:输入:545 12 75 36 9812输出:1# include<stdio.h>intmain(){int i, n, m, k,a[10];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]) ;scanf("%d",&m);for(i=0;i<n;i++){k = i;if(m==a[i]){printf("%d\n",i);break;}}if(k==n-1&&a[n-1]!=m)printf("Notpresent!\n");return0;}5、用循环语句实现以下图形。
c语言处理数学题
c语言处理数学题C语言可以用于处理各种数学问题,包括算术运算、函数、方程求解等等。
下面是一些使用C语言处理数学问题的示例:1.算术运算C语言提供了基本的算术运算符,如加、减、乘、除等,可以用于进行基本的数学运算。
例如,下面的代码演示了如何使用C语言计算两个数的和:c复制代码#include<stdio.h>int main() {int a = 5;int b = 10;int sum = a + b;printf("The sum of %d and %d is %d\n", a, b, sum);return0;}2.函数C语言也提供了许多数学函数,如sin、cos、tan、sqrt等,可以用于进行更复杂的数学运算。
例如,下面的代码演示了如何使用C语言的sqrt函数计算一个数的平方根:c复制代码#include<stdio.h>#include<math.h>int main() {double x = 16;double y = sqrt(x);printf("The square root of %lf is %lf\n", x, y);return0;}3.方程求解C语言也可以用于求解各种方程。
例如,下面的代码演示了如何使用C语言求解一个一元二次方程:c复制代码#include<stdio.h>#include<math.h>int main() {double a = 1;double b = -2;double c = 1;double delta = b * b - 4 * a * c;if (delta < 0) {printf("No real solutions\n");} else if (delta == 0) {double x = -b / (2 * a);printf("One real solution: x = %lf\n", x);} else {double x1 = (-b + sqrt(delta)) / (2 * a);double x2 = (-b - sqrt(delta)) / (2 * a);printf("Two real solutions: x1 = %lf, x2 = %lf\n", x1, x2); }return0;}。
30题C语言
16、编写一个程序实现功能如下:输出由字符 w 构造成的形如 W 的图形。(自
定义函数实现)
w
ww
w
w
ww
w
wwww
ww
ww
ww
ww
17、 母牛的故事 (自定义函数实现)
题目描述 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年 初也生一头小母牛。请编程实现在第 n 年的时候,共有多少头母牛? 输入描述 输入数据每个测试实例包括一个整数 n(0<n<55),n 的含义如题目中描述。 输出描述 对于每个测试实例,输出在第 n 年的时候母牛的数量。 样例输入 5 样例输出 6
题目描述 青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和 一个最低分,然后计算平均得分,请编程输出某选手的得分。 输入描述 输入数据的第一个数是 n (2<n<100),表示评委的人数,然后是 n 个评委的打分。 输出描述 对于每组输入数据,输出选手的得分,结果保留 2 位小数,每组输出占一行。 样例输入 4 100 99 98 97 样例输出 98.50
4 18 78 8 11 81 12 4 84
15、 不容易的徐老汉
(用自定义函数实现) 题目描述 徐老汉这两年辛辛苦苦养了不少羊,到了今年夏天,由于高温干旱,实在没办法 解决牲畜的饮水问题,就决定把这些羊都赶到集市去卖。从黄泥板村到交易地点 要经过 N 个收费站,收费员说由于羊是 4 条腿,所以也要收过路费。 由于徐老汉没钱,收费员就将他的羊拿走一半,看到老汉泪水涟涟,犹豫了一下, 又还给老汉一只。 巧合的是,后面每过一个收费站,都是拿走当时羊的一半,然后退还一只,等到 老汉到达市场,就只剩下 3 只羊了。 你能帮忙算一下老汉最初有多少只羊吗? 输入描述 每组输入数据包含一个整数 a(0<a<=30),表示收费站的数量。 输出描述 对于每个测试实例,请输出最初的羊的数量。 样例输入 1 2 样例输出 4 6
C语言编程题精选及答案
for(c=1;c<=r;c++)
printf("*");
printf("\n");
}
}
}
5、
#include <>
void main()
{
int n,r,c;
printf("请输入行数:");
scanf("%d",&n);
if(n<0)
printf("行数错误!\n");
C语言学习2010-11-30 15:49:22阅读27评论0字号:大中小订阅
1、
#include <>
#include <>
void main()
{
float x,y;
printf("Please input x:");
scanf("%f",&x);
y=2*x+1;
y=(float)pow(y+1,2);
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 5 6 5 4 3 2 1
15.编程打印图形(考虑将输出的行数由输入的值来控制):
1 2 3 4 5 6 5 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 3 2 1
1 2 3 2 1
40.在1—500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数。
41.编程将1...100间能被2、3、5分别整除的数的和求出来并输出。注意,在判断时要按照2、3、5的先后次序来确定优先顺序,如6既能被2整除,又能被3整除,则只算到能被2整除的这种情况里。
计算器编程c语言
计算器编程 c语言用C语言设计计算器程序源代码#include <dos.h> /*DOS接口函数*/#include <math.h> /*数学函数的定义*/#include <conio.h> /*屏幕操作函数*/函数*/#include <stdio.h> /*I/O#include <stdlib.h> /*库函数*/变量长度参数表*/#include <stdarg.h> /*图形函数*/#include <graphics.h> /*字符串函数*/#include <string.h> /*字符操作函数*/#include <ctype.h> /*#define UP 0x48 /*光标上移键*/#define DOWN 0x50 /*光标下移键*/#define LEFT 0x4b /*光标左移键*/#define RIGHT 0x4d /*光标右移键*/#define ENTER 0x0d /*回车键*/void *rar; /*全局变量,保存光标图象*/使用调色板信息*/struct palettetype palette; /*int GraphDriver; /* 图形设备驱动*/int GraphMode; /* 图形模式值*/int ErrorCode; /* 错误代码*/int MaxColors; /* 可用颜色的最大数值*/int MaxX, MaxY; /* 屏幕的最大分辨率*/double AspectRatio; /* 屏幕的像素比*/void drawboder(void); /*画边框函数*/初始化函数*/void initialize(void); /*计算器计算函数*/void computer(void); /*改变文本样式函数*/ void changetextstyle(int font, int direction, int charsize); /*窗口函数*/void mwindow(char *header); /*/*获取特殊键函数*/int specialkey(void) ;设置箭头光标函数*//*int arrow();/*主函数*/int main(){设置系统进入图形模式 */initialize();/*运行计算器 */computer(); /*系统关闭图形模式返回文本模式*/closegraph();/*/*结束程序*/return(0);}/* 设置系统进入图形模式 */void initialize(void){int xasp, yasp; /* 用于读x和y方向纵横比*/GraphDriver = DETECT; /* 自动检测显示器*/initgraph( &GraphDriver, &GraphMode, "" );/*初始化图形系统*/ErrorCode = graphresult(); /*读初始化结果*/如果初始化时出现错误*/if( ErrorCode != grOk ) /*{printf("Graphics System Error: %s\n",显示错误代码*/grapherrormsg( ErrorCode ) ); /*退出*/exit( 1 ); /*}getpalette( &palette ); /* 读面板信息*/MaxColors = getmaxcolor() + 1; /* 读取颜色的最大值*/MaxX = getmaxx(); /* 读屏幕尺寸 */MaxY = getmaxy(); /* 读屏幕尺寸 */getaspectratio( &xasp, &yasp ); /* 拷贝纵横比到变量中*/计算纵横比值*/ AspectRatio = (double)xasp/(double)yasp;/*}/*计算器函数*/void computer(void){定义视口类型变量*/struct viewporttype vp; /*int color, height, width;int x, y,x0,y0, i, j,v,m,n,act,flag=1;操作数和计算结果变量*/float num1=0,num2=0,result; /*char cnum[5],str2[20]={""},c,temp[20]={""};定义字符串在按钮图形上显示的符号 char str1[]="1230.456+-789*/Qc=^%";/**/mwindow( "Calculator" ); /*显示主窗口 */设置灰颜色值*//*color = 7;getviewsettings( &vp ); /* 读取当前窗口的大小*/width=(vp.right+1)/10; /* 设置按钮宽度 */设置按钮高度 */height=(vp.bottom-10)/10 ; /*/*设置x的坐标值*/x = width /2;设置y的坐标值*/y = height/2; /*setfillstyle(SOLID_FILL, color+3);bar( x+width*2, y, x+7*width, y+height );/*画一个二维矩形条显示运算数和结果*/setcolor( color+3 ); /*设置淡绿颜色边框线*/rectangle( x+width*2, y, x+7*width, y+height );/*画一个矩形边框线*/设置颜色为红色*/setcolor(RED); /*输出字符串"0."*/outtextxy(x+3*width,y+height/2,"0."); /*/*设置x的坐标值*/x =2*width-width/2;设置y的坐标值*/y =2*height+height/2; /*画按钮*/for( j=0 ; j<4 ; ++j ) /*{for( i=0 ; i<5 ; ++i ){setfillstyle(SOLID_FILL, color);setcolor(RED);bar( x, y, x+width, y+height ); /*画一个矩形条*/rectangle( x, y, x+width, y+height );sprintf(str2,"%c",str1[j*5+i]);/*将字符保存到str2中*/outtextxy( x+(width/2), y+height/2, str2);移动列坐标*/x =x+width+ (width / 2) ;/*}y +=(height/2)*3; /* 移动行坐标*/x =2*width-width/2; /*复位列坐标*/}x0=2*width;y0=3*height;x=x0;y=y0;gotoxy(x,y); /*移动光标到x,y位置*/显示光标*/arrow(); /*putimage(x,y,rar,XOR_PUT);m=0;n=0;设置str2为空串*/strcpy(str2,""); /*当压下Alt+x键结束程序,否则执行下面的循环while((v=specialkey())!=45) /**/{当压下键不是回车时*/while((v=specialkey())!=ENTER) /*{putimage(x,y,rar,XOR_PUT); /*显示光标图象*/if(v==RIGHT) /*右移箭头时新位置计算*/if(x>=x0+6*width)如果右移,移到尾,则移动到最左边字符位置*//*{x=x0;m=0;}else{x=x+width+width/2;m++;否则,右移到下一个字符位置*/} /*if(v==LEFT) /*左移箭头时新位置计算*/if(x<=x0){x=x0+6*width;m=4;} /*如果移到头,再左移,则移动到最右边字符位置*/else{x=x-width-width/2;m--;} /*否则,左移到前一个字符位置*/if(v==UP) /*上移箭头时新位置计算*/if(y<=y0){y=y0+4*height+height/2;n=3;} /*如果移到头,再上移,则移动到最下边字符位置*/else{y=y-height-height/2;n--;} /*否则,移到上边一个字符位置*/if(v==DOWN) /*下移箭头时新位置计算*/if(y>=7*height){ y=y0;n=0;} /*如果移到尾,再下移,则移动到最上边字符位置*/else{y=y+height+height/2;n++;} /*否则,移到下边一个字符位置*/putimage(x,y,rar,XOR_PUT); /*在新的位置显示光标箭头*/ }将字符保存到变量c中*/c=str1[n*5+m]; /*判断是否是数字或小数点*/if(isdigit(c)||c=='.') /*{如果标志为-1,表明为负数*/if(flag==-1) /*{将负号连接到字符串中*/strcpy(str2,"-"); /*flag=1;} /*将标志值恢复为1*/将字符保存到字符串变量temp中*/ sprintf(temp,"%c",c); /*将temp中的字符串连接到str2中*/strcat(str2,temp); /*setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2);显示字符串*/outtextxy(5*width,height,str2); /*}if(c=='+'){将第一个操作数转换为浮点数*/num1=atof(str2); /*将str2清空*/strcpy(str2,""); /*做计算加法标志值*/act=1; /*setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2);显示字符串*/outtextxy(5*width,height,"0."); /*}if(c=='-'){如果str2为空,说明是负号,而不是减号*/ if(strcmp(str2,"")==0) /*设置负数标志*/flag=-1; /*else{将第二个操作数转换为浮点数*/num1=atof(str2); /*将str2清空*/strcpy(str2,""); /*act=2; /*做计算减法标志值*/setfillstyle(SOLID_FILL,color+3);画矩形*/ bar(2*width+width/2,height/2,15*width/2,3*height/2); /*显示字符串*/outtextxy(5*width,height,"0."); /*}}if(c=='*'){将第二个操作数转换为浮点数*/num1=atof(str2); /*strcpy(str2,""); /*将str2清空*/做计算乘法标志值*/act=3; /*setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width /2,3*height/2);显示字符串*/outtextxy(5*width,height,"0."); /*}if(c=='/'){将第二个操作数转换为浮点数*/num1=atof(str2); /*strcpy(str2,""); /*将str2清空*/做计算除法标志值*/act=4; /*setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2);outtextxy(5*width,height,"0."); /*显示字符串*/}if(c=='^'){将第二个操作数转换为浮点数*/num1=atof(str2); /*将str2清空*/strcpy(str2,""); /*做计算乘方标志值*/act=5; /*设置用淡绿色实体填充*/ setfillstyle(SOLID_FILL,color+3); /*画矩形*/ bar(2*width+width/2,height/2,15*width/2,3*height/2); /*显示字符串*/outtextxy(5*width,height,"0."); /*}if(c=='%'){将第二个操作数转换为浮点数*/num1=atof(str2); /*strcpy(str2,""); /*将str2清空*/做计算模运算乘方标志值*/act=6; /*setfillstyle(SOLID_FILL,color+3); /*设置用淡绿色实体填充*/画矩形*/ bar(2*width+width/2,height/2,15*width/2,3*height/2); /*显示字符串*/outtextxy(5*width,height,"0."); /*}if(c=='='){将第二个操作数转换为浮点数*/num2=atof(str2); /*根据运算符号计算*/switch(act) /*{case 1:result=num1+num2;break; /*做加法*/case 2:result=num1-num2;break; /*做减法*/case 3:result=num1*num2;break; /*做乘法*/case 4:result=num1/num2;break; /*做除法*/case 5:result=pow(num1,num2);break; /*做x的y次方*/case 6:result=fmod(num1,num2);break; /*做模运算*/ }设置用淡绿色实体填充*/ setfillstyle(SOLID_FILL,color+3); /*覆盖结果区*/ bar(2*width+width/2,height/2,15*width/2,3*height/2); /*将结果保存到temp中*/sprintf(temp,"%f",result); /*outtextxy(5*width,height,temp); /*显示结果*/}if(c=='c'){num1=0; /*将两个操作数复位0,符号标志为1*/num2=0;flag=1;strcpy(str2,""); /*将str2清空*/设置用淡绿色实体填充*/ setfillstyle(SOLID_FILL,color+3); /*覆盖结果区*/ bar(2*width+width/2,height/2,15*width/2,3*height/2); /*显示字符串*/outtextxy(5*width,height,"0."); /*}如果选择了q回车,结束计算程序*/if(c=='Q')exit(0); /*}putimage(x,y,rar,XOR_PUT); /*在退出之前消去光标箭头*/返回*/return; /*}/*窗口函数*/void mwindow( char *header ){int height;cleardevice(); /* 清除图形屏幕 */setcolor( MaxColors - 1 ); /* 设置当前颜色为白色*//* 设置视口大小 */ setviewport( 20, 20, MaxX/2, MaxY/2, 1 );height = textheight( "H" ); /* 读取基本文本大小 */settextstyle( DEFAULT_FONT, HORIZ_DIR, 1 );/*设置文本样式*/settextjustify( CENTER_TEXT, TOP_TEXT );/*设置字符排列方式*/输出标题*/outtextxy( MaxX/4, 2, header ); /*setviewport( 20,20+height+4, MaxX/2+4, MaxY/2+20, 1 ); /*设置视口大小*/ 画边框*/drawboder(); /*}画边框*/void drawboder(void) /*{定义视口类型变量*/struct viewporttype vp; /*setcolor( MaxColors - 1 ); /*设置当前颜色为白色 */setlinestyle( SOLID_LINE, 0, NORM_WIDTH );/*设置画线方式*/将当前视口信息装入vp所指的结构中*/getviewsettings( &vp );/*画矩形边框*/rectangle( 0, 0, vp.right-vp.left, vp.bottom-vp.top ); /*}/*设计鼠标图形函数*/int arrow(){int size;定义多边形坐标*/int raw[]={4,4,4,8,6,8,14,16,16,16,8,6,8,4,4,4}; /*设置填充模式*/setfillstyle(SOLID_FILL,2); /*/*画出一光标箭头*/fillpoly(8,raw);测试图象大小*/size=imagesize(4,4,16,16); /*分配内存区域*/rar=malloc(size); /*存放光标箭头图象*/getimage(4,4,16,16,rar); /*putimage(4,4,rar,XOR_PUT); /*消去光标箭头图象*/return 0;}/*按键函数*/int specialkey(void){int key;等待键盘输入*/while(bioskey(1)==0); /*key=bioskey(0); /*键盘输入*/只取特殊键的扫描值,其余为0*/ key=key&0xff? key&0xff:key>>8; /*return(key); /*返回键值*/}。
c语言五则运算代码
c语言五则运算代码C语言是一种广泛应用于计算机编程的编程语言,它具有灵活、高效的特点,常被用于进行各种数学计算和表达式求值。
本文将围绕C语言的五则运算(加法、减法、乘法、除法、取余)展开,探讨其在实际编程中的应用。
一、加法运算加法运算是最基本的数学运算之一,在C语言中使用加号(+)来表示。
在实际编程中,加法运算常用于计算两个数的和。
例如,我们可以编写一个程序,实现输入两个数并计算它们的和:```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:\n");scanf("%d %d", &a, &b);sum = a + b;printf("它们的和为:%d\n", sum);return 0;}```二、减法运算减法运算是计算两个数之差的操作,在C语言中使用减号(-)来表示。
我们可以编写一个程序,实现输入两个数并计算它们的差:```c#include <stdio.h>int main() {int a, b, difference;printf("请输入两个整数:\n");scanf("%d %d", &a, &b);difference = a - b;printf("它们的差为:%d\n", difference);return 0;}```三、乘法运算乘法运算是计算两个数的积的操作,在C语言中使用星号(*)来表示。
我们可以编写一个程序,实现输入两个数并计算它们的积:```c#include <stdio.h>int main() {int a, b, product;printf("请输入两个整数:\n");scanf("%d %d", &a, &b);product = a * b;printf("它们的积为:%d\n", product);return 0;}```四、除法运算除法运算是计算两个数的商的操作,在C语言中使用斜杠(/)来表示。
C语言编程习题和答案
C语⾔编程习题和答案1题:/*九九乘法表:*/#includeint main(void){int i,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%dx%d=%2d ",i,j,i*j); printf("\n");} return 0;}2题:/*求n的阶乘之和:*/#includeint main(void){int i,n,s,k,j;scanf("%d",&n);for(s=1,i=1;i<=n;i++)s*=i;printf("%d!=%d\n",n,s);for(s=1,i=1;i<=n;i++){for(k=0,s=1,j=1;j<=i;j++)s=s*j,k+=s;}printf("他们的n阶之和为%d\n",k); return 0;}3题:/*求兔⼦繁殖问题:*/#includeint main(void){int a=1,b=1,i=3,n,c;printf("\n请输⼊⼀个繁殖时间(单位为⽉): "); scanf("%d",&n); while(i<=n){c=a+b;a=b;b=c;i++;}printf("他们繁殖的兔⼦数为:%d(只)\n",c); return 0;}1题:/*猴⼦吃桃:*/#includeint main(void){int i,a=1,s=0;for(i=9;i>=1;i--){s=(a+1)*2;a=s;} printf("s=%d个\n",s); return 0;}2题:/*求分数之和:*/#includeint main(void){float k,i,a=1,b=2,sum=0.0;printf("这前20个分数分别是:");for(i=1,sum=0;i<=20;i++){sum+=b/a;printf("%.f/%.f ",b,a);k=b,b=(a+b),a=k;}printf("\n他们的和为:sum=%.2f\n",sum); return 0;}3题/*判断是否是⽔仙花数:*/#includeint main(void){int a,j,k,s;printf("请输⼊⼀个数:");scanf("%d",&a);for(;a<100||a>999;){printf("\n输⼊有误,请重新输⼊⼀个三位数:"); scanf("%d",&a);} j=a/100,k=a%100/10,s=a%10;if(a==j*j*j+k*k*k+s*s*s)printf("\n%d是⽔仙花数。
C语言基本编程题
复习题C程序设计编程题1.输入2个整数,求两数的平方和并输出。
#include <stdio.h>void main(){ intt a ,b,s;printf("please input a,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("the result is %d\n",s);}2. 输入一个圆半径(r),当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
#include <stdio.h>#define PI 3.14void main(){ float r ,s , l;printf("please input r:\n");scanf("%f”,&r);if (r>=0){s=pi*r*r;l=2*i*r ;printf("the area is %f\n",s);printf("the circumference is %f\n",l);}elseprintf("input error!\n");}3、函数y=f(x)可表示为:2x+1 (x<0)y= 0 (x=0)2x-1 (x>0)编程实现输入一个x值,输出y值。
#include <stdio.h>void main(){ int x,y;scanf(“%d”,&x);if(x<0) y=2*x+1;else if(x>0) y=2*x-1;else y=0;printf(“%d”,y);}4、编写一个程序,从4个整数中找出最小的数,并显示此数。
#include <stdio.h>void main( ){int a,b,c,d,t;scanf (“%d,%d,%d,%d ”,&a,&b,&c,&d);if (a>b){t=a; a=b; b=t;}if (a>c){t=a; a=c; c=t;}if (a>d){t=a; a=d; d=t;}printf (“min = %d \n”,a);}5.有一函数当x<0时y=1,当x>0时,y=3,当x=0时y=5,编程,从键盘输入一个x值,输出y值。
c语言编程计算题
c语言编程计算题一、题目:求两个数的最大公约数和最小公倍数要求:1.输入两个整数a和b(a>b)。
2.使用辗转相除法求最大公约数,使用最小公倍数等于两数之积除以最大公约数的公式求最小公倍数。
3.输出结果,包括最大公约数和最小公倍数。
参考解答:#include<stdio.h>intmain(){inta,b,gcd,lcm;printf("请输入两个整数:\n");scanf("%d%d",&a,&b);if(a<b){inttemp=a;a=b;b=temp;}gcd=a;while(b!=0){gcd=gcd*b%b;b--;}lcm=a*b/gcd;printf("最大公约数是:%d\n",gcd);printf("最小公倍数是:%d\n",lcm);return0;}二、题目:求一个数的阶乘要求:1.输入一个正整数n。
2.使用循环语句计算n的阶乘,即n!=n*(n-1)*...*2*1。
3.输出结果。
参考解答:#include<stdio.h>intmain(){intn;printf("请输入一个正整数:\n");scanf("%d",&n);longlongfactorial=1;for(inti=1;i<=n;i++){factorial*=i;}printf("%d的阶乘为:%lld\n",n,factorial);return0;}三、题目:求斐波那契数列的前n项和要求:1.输入一个正整数n,表示斐波那契数列的项数。
2.使用循环语句和累加器求斐波那契数列的前n项和。
具体来说,第i项的值等于前两项的值之和,即f(i)=f(i-1)+f(i-2)。
将每一项的值累加到结果中即可。
3.输出结果。
C语言基础编程题
5-1 求幂之和(15分)本题要求编写程序,计算sum=2^1 + 2^2 + 2^3 + \cdots + 2^n sum=21+22+23+⋯+2n 。
可以调用pow函数求幂。
输入格式:输入在一行中给出正整数n n(\le≤10)。
输出格式:按照格式“result = 计算结果”输出。
输入样例:输出样例:#include<>#include<>int main(){int i,n,sum=0;scanf("%d",&n);for(i=1;i<=n;i++){sum=sum+pow(2,i);}printf("result = %d\n",sum);return 0;}5-2 近似求PI (15分)本题要求编写程序,根据下式求\piπ的近似值,直到最后一项小于给定精度eps。
\frac{\pi}{2}=1+\frac{1!}{3}+\frac{2!}{3\times 5} +\frac{3!}{3\times 5\times 7}+ \cdots +\frac{i!}{3\times 5\times\cdots \times (2\times i+1)}+ \cdots2π=1+31!+3×52!+3×5×73! +⋯+3×5×⋯×(2×i+1)i!+⋯输入格式:输入在一行中给出精度eps,可以使用以下语句来读输入:输出格式:在一行内,按照以下格式输出\piπ的近似值(保留小数点后5位):输入样例:输出样例:#include<>#include<>int main(){double a=1,b=3,i=1,j=3;double eps,m=1,sum=0;scanf("%le", &eps);while(m>eps){m=a/b;sum=sum+m;i=i+1;j=j+2;a=a*i;b=b*j;}printf("PI = %.5lf\n",2+2*sum);return 0;}5-3 判断素数(15分)输入一个正整数m,如果它是素数,输出"YES",否则,输出"NO"(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。
100个经典C语言编程例子(答案另附)
100个经典C语言编程例子(答案另附)1:计算 A+B 的问题时间限制:1000MS 内存限制:10000K总提交数:1347 正确数:655问题描述输入两个整数 a 和 b ,计算 a+b 的结果并输出。
输入两个整数输出一个整数输入样例1 2输出样例32:Hello World!时间限制:1000MS 内存限制:65536K总提交数:848 正确数:693问题描述编写第一个C语言程序。
在屏幕上输出:Hello World!输入程序没有输入输出Hello World!输入样例输出样例Hello World!提示1、输出的内容要与题目的要求完全一样,不能多字符也不能少字符。
3:两个整数的值互换时间限制:1000MS 内存限制:65536K总提交数:1235 正确数:530问题描述输入两个整数a,b ,将 a 和 b 的值互换,并输出。
例如:输入: 2 5输出: 5 2输入两个整数输出两个整数输入样例2 5输出样例5 2提示注意输入和输出的格式,两个数据之间用一个空格隔开。
问题来源4:计算三门课程总分和平均分时间限制:1000MS 内存限制:65536K总提交数:1190 正确数:482问题描述输入三门课程的成绩,输出总分和平均分。
要求:(1)输入三个数,用空格隔开。
输入的数可以是小数。
(2)输出两个数,用空格隔开。
输出的数保留两位小数。
例如:输入: 75 80 90输出: 245.00 81.67 输入输入三个数,用空格隔开。
输入的数可以是小数。
输出输出两个数,用空格隔开。
输出的数保留两位小数。
输入样例75 80 90输出样例245.00 81.67问题来源5:鸡兔同笼问题时间限制:1000MS 内存限制:65536K总提交数:872 正确数:443问题描述这个问题,是我国古代著名趣题之一。
大约在1500年前,《孙子算经》中就记载了这个有趣的问题。
书中是这样叙述的:“今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。
c语言编程题及答案
c语言编程题及答案1. 输入输出题题目:编写一个程序,要求从键盘输入两个整数,然后输出它们的和。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:\n");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和为:%d\n", sum);return 0;}```2. 条件语句题题目:编写一个程序,要求从键盘输入一个整数,判断它是否为正数、负数还是零,并输出相应的提示信息。
答案:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:\n"); scanf("%d", &num);if (num > 0) {printf("这是一个正数。
\n"); } else if (num < 0) {printf("这是一个负数。
\n"); } else {printf("这是零。
\n");}return 0;}```3. 循环语句题题目:编写一个程序,要求计算并输出1到100之间所有偶数的和。
答案:```c#include <stdio.h>int main() {int i, sum;sum = 0;for (i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("1到100之间所有偶数的和为:%d\n", sum);return 0;}```4. 数组题题目:编写一个程序,要求定义一个包含10个整数的数组,并逐个从键盘输入数组元素的值,然后对数组进行逆序输出。
c语言程序设计试题及答案
c语言程序设计试题及答案试题1:编写一个C程序,输入一个正整数n,并计算1+2+3+...+n的值。
程序代码如下:```c#include <stdio.h>int main() {int n, sum = 0;printf("请输入一个正整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++) {sum += i;}printf("1+2+3+...+%d的值为:%d\n", n, sum);return 0;}```试题2:编写一个C程序,判断一个输入的整数是奇数还是偶数。
程序代码如下:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数。
\n", num);} else {printf("%d是奇数。
\n", num);}return 0;}```试题3:编写一个C程序,将输入的摄氏度转换为华氏度。
程序代码如下:```c#include <stdio.h>int main() {float celsius, fahrenheit;printf("请输入摄氏度:");scanf("%f", &celsius);fahrenheit = (celsius * 9) / 5 + 32;printf("%.2f摄氏度 = %.2f华氏度。
\n", celsius, fahrenheit); return 0;}```试题4:编写一个C程序,计算斐波那契数列的第n项。
c语言必做100题
c语言必做100题1. 编写一个C程序,输出“Hello, World!”。
2. 编写一个C程序,计算并输出1到100的和。
3. 编写一个C程序,判断一个数是否为素数。
4. 编写一个C程序,将一个字符串反转。
5. 编写一个C程序,实现二分查找算法。
6. 编写一个C程序,实现插入排序算法。
7. 编写一个C程序,实现选择排序算法。
8. 编写一个C程序,实现冒泡排序算法。
9. 编写一个C程序,实现快速排序算法。
10. 编写一个C程序,实现希尔排序算法。
11. 编写一个C程序,将一个二维数组转置。
12. 编写一个C程序,计算一个数的阶乘。
13. 编写一个C程序,实现斐波那契数列。
14. 编写一个C程序,计算两个数的最大公约数。
15. 编写一个C程序,计算两个数的最小公倍数。
16. 编写一个C程序,计算一个数的平方根。
17. 编写一个C程序,计算一个数的立方根。
18. 编写一个C程序,实现矩阵乘法运算。
19. 编写一个C程序,实现字符串的查找和替换。
20. 编写一个C程序,实现栈的基本操作(入栈、出栈、查看栈顶元素)。
21. 编写一个C程序,实现队列的基本操作(入队、出队、查看队首元素)。
22. 编写一个C程序,实现链表的基本操作(插入、删除、倒置)。
23. 编写一个C程序,实现二叉树的前序、中序和后序遍历。
24. 编写一个C程序,实现图的深度优先搜索算法。
25. 编写一个C程序,实现图的广度优先搜索算法。
26. 编写一个C程序,实现最短路径算法(Dijkstra算法或Floyd算法)。
27. 编写一个C程序,实现最小生成树算法(Prim算法或Kruskal算法)。
28. 编写一个C程序,实现拓扑排序算法。
29. 编写一个C程序,实现优先队列。
30. 编写一个C程序,实现哈希表的基本操作(插入、查找、删除)。
31. 编写一个C程序,实现堆的基本操作(插入、删除、查找最大值)。
32. 编写一个C程序,实现最大堆排序算法。
C语言经典例程100例(经典c程序100例)
C语⾔经典例程100例(经典c程序100例)⼩编注:以下代码因为编辑器等原因,需要将原来空⽩区域⽤tab或空格替换即可运营。
【程序1】题⽬:有1、2、3、4个数字,能组成多少个互不相同且⽆重复数字的三位数?都是多少?1.程序分析:可填在百位、⼗位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满⾜条件的排列。
2.程序源代码main(){int i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); }}【程序2】题⽬:企业发放的奖⾦根据利润提成。
利润(I)低于或等于10万元时,奖⾦可提10%;利润⾼于10万元,低于20万元时,低于10万元的部分按10%提成,⾼于10万元的部分,可可提成7.5%;20万到40万之间时,⾼于20万元的部分,可提成5%;40万到60万之间时⾼于40万元的部分,可提成3%;60万到100万之间时,⾼于60万元的部分,可提成1.5%,⾼于100万元时,超过100万元的部分按1%提成,从键盘输⼊当⽉利润I,求应发放奖⾦总数?1.程序分析:请利⽤数轴来分界,定位。
注意定义时需把奖⾦定义成长整型。
2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03; else if(i<=1000000) bonus=bonus6+(i-600000)*0.015; else bonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}【程序3】题⽬:⼀个整数,它加上100后是⼀个完全平⽅数,再加上168⼜是⼀个完全平⽅数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开⽅,再将该数加上268后再开⽅,如果开⽅后 的结果满⾜如下条件,即是结果。
101道C语言编程题参考答案
printf("%.2f",2*x-1);
else
printf("%.2f",3*x-11);
}
1074 这个月有多少天? 54%(290/542) 46% 03分支结构
22.#include <stdio.h>
2.#include<stdio.h>
int main()
{
printf("hello world!");
return 0;
}
1004 两个整数的值互换 43%(530/1235) 58% 01C语言基础
3.#include <stdio.h>
int main()
{
int a,b,t;
11.#include<stdio.h>
main()
{
char n;
int x;
scanf("%c",&n);
x='a'-'A';
printf("%d %c",n,n-x);
}
1071 保留两位小数 72%(335/467) 29% 02顺序结构
12.#include "stdio.h"
case 'E':printf("14");break;
case 'F':printf("15");break;
}
}
1008 求华氏温度所对应的摄氏温度 73%(407/556) 27% 02顺序结构
C语言编程练习题绝对经典
马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人解方程组编写程序,采用穷举法求出结果;编写程序,根据以下公式求e 的值;要求用两种方法计算:1for 循环,计算前50项 2while 循环,直至最后一项的值小于10-4从键盘中输入一个数字不限位数,用循环语句编程判断并输出这个数字的位数;猴子吃桃子问题;猴子第一天摘下若干个桃,当即只一半,又多吃一个;第二天早上又将剩下的一半吃掉一半,双多吃一个;以后每天早上都吃了前天剩下的一半零一个,到第10天早上只剩下最后一个桃;问第一天摘了几个桃;编程打印九九乘法表青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分去掉一个最高分和一个最低分;从键盘中输入一个数字可以包含小数点,其位数在60位以下,求其整数的有效位数,如输入0123.456,返回值为整数有效位数为31输入数据为浮点型,不用数组,不用字符串,只有变量的算术运算实现此功能;2使用数组来进行编程;使用数组,编写一个十进制正整数转换为任意进制数的转换工具;大进制向小进制的转换;方法是相除去余10进制327转八进制:327/8=40余数为740/8=5余数为0于是八进制数为507第一位5是最后的商使用数组,编写一个任意进制正整数转换为十进制的转换工具;以2,10进制互转为例,其他请举一反三:二进制数1101转十进制:1×2的三次幂+1×2的二次幂+0×2的一次幂+1×2的零次幂=8+4+0+1=1310个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12,2,8,22,16,4,10,6,14,20;然后按下列规则调整,所有小孩同时把自己的糖果分一半给右边的小孩,糖块数变为奇数的人,再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块;编写一个函数,用以求x2-5x+4的值,x 做为函数的形参,调用此函数,求:y1=22-5×2+4Y2=x+152-5x+15+4Y3=sinx2-5sinx+4sinx 可以加载”math.h ”库函数后使用,函数说明为 doublesindoublex编写一个函数,使给定的一个二维数组N ×N 行列互换N>3;从键盘中输入一个不超过40个字符的字符串,再输入一个位数,删除对应位数的字符,然后输出删除指定字符后的字符串11111111!2!3!4!5!!e n ≈++++++⋅⋅⋅⋅⋅⋅+要求:1用puts输出指示信息2用gets接收字符串如果有一个正整数从左、右来读都是一样的,则称为回文式数简称回数;比如101,32123,999都是回数;数学中有名的“回数猜想”之迷,至今未解决;回数猜想:任取一个数,再把它倒过来,并把这两个数相加,然后把这个和数再倒过来,与原和数相加,重复此过程,一定能获得一个回数;例:68倒过来是8668+86=154154+541=605605+506=1111回数编程,输入任意整数,按上述方法产生一个回数,为简便起见,最多计算7步,看是否能得到一个回数; 要求:主函数中接收键盘数据,必须用scanf“%ld”,&变量名接收整型变量,显示该数与其倒数的和,输出每一步计算步骤;子函数1,计算该数的倒数;子函数2,验证和是否为回数,是则主函数打印“经过n次计算,得到回数”,超过7次未能得到回数,显示,“经过n次计算,未得到回数”求Sn=a+aa+aaa+------+aaaaaaan个a,其中a和n都从键盘中输入,如从键盘中输入2,5,则计算S5=2+22+222+2222+22222;include"stdio.h"voidmain{inta,n,i=1;longs=0,t=0;printf"a=";scanf"%d",&a;printf"n=";scanf"%d",&n;whilei<=n{t=t+a;s=s+t;a=a10;++i;}printf"sum=%d",s;}两个乒乓球队进行比赛,各出三人;甲队为A,B,C三人,乙队为X,Y,Z三人;已抽签决定比赛名单,有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比,编程找出三对选手的对手名单;注:使用穷举法include"stdio.h"intmain{inti,j,k;fori=1;i<=3;++i{forj=1;j<=3;++j{fork=1;k<=3;++k{ifi==j||j==k||i==kcontinue;ifi=1&&k=1&&k=3{printf"Avs%c\n",i+'X'-1;printf"Bvs%c\n",j+'X'-1;printf"Cvs%c\n",k+'X'-1;return0;}}}}return0;}编写一个函数,函数说明为:charlastcharcharstr功能:求一个字符串的最后一个字符,如果是空串,则返回空字符;再利用该函数编程,输入两个字符串,输出第一字符串的最后一个字符和第二个字符串的最后一个字符;韩信点兵;韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10;编程求韩信至少有多少兵include"stdio.h"voidmain{inti;fori=1;;i++{ifi%5==1&&i%6==5&&i%7==4&&i%11==10{printf"%d",i;break;}}}用递归方法计算下列函数的值:fxx,n=x-x2+x3-x4+......-1n-1xnn>0要求:1写出递归函数的原型2编写程序4用递归法将一个整数转换成字符形式输出;例如输入483,应输出字符串“483”;其程序如下,请验证,并修改程序,增加显示出输入数字的位数的功能,并使输出结果与下图一致; voidconvertlongn{longi;ifi=n/10=0converti;putcharn%10+'0';}main{longnumber;scanf"%ld",&number;ifnumber<0{putchar'-';number=-number;}convertnumber;}利用以下公式,编程计算π的值,直到最后一项的绝对值用函数fabs小于0.0001为止;程序1题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数都是多少1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4;组成所有的排列后再去掉不满足条件的排列;2.程序源代码:include"stdio.h"include"conio.h"main{inti,j,k;printf"\n";fori=1;i<5;i++/以下为三重循环/forj=1;j<5;j++fork=1;k<5;k++{ifi=k&&i=j&&j=k/确保i、j、k三位互不相同/printf"%d,%d,%d\n",i,j,k;}getch;}===========================================程序2题目:企业发放的奖金根据利润提成;利润I低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数1.程序分析:请利用数轴来分界,定位;注意定义时需把奖金定义成长整型;2.程序源代码:include"stdio.h"include"conio.h"main{longinti;intbonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf"%ld",&i;bonus1=1000000.1;bonus2=bonus1+1000000.75;bonus4=bonus2+2000000.5;bonus6=bonus4+2000000.3;bonus10=bonus6+4000000.15;ifi<=100000bonus=i0.1;elseifi<=200000bonus=bonus1+i-1000000.075;elseifi<=400000bonus=bonus2+i-2000000.05;elseifi<=600000bonus=bonus4+i-4000000.03;elseifi<=1000000bonus=bonus6+i-6000000.015;elsebonus=bonus10+i-10000000.01;printf"bonus=%d",bonus;getch;}===========================================程序3题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果;请看具体分析:2.程序源代码:include"math.h"include"stdio.h"include"conio.h"main{longinti,x,y,z;fori=1;i<100000;i++{x=sqrti+100;/x为加上100后开方后的结果/y=sqrti+268;/y为再加上168后开方后的结果/ifxx==i+100&&yy==i+268/如果一个数的平方根的平方等于该数,这说明此数是完全平方数/ printf"\n%ld\n",i;}getch;}===========================================程序4题目:输入某年某月某日,判断这一天是这一年的第几天1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天;2.程序源代码:include"stdio.h"include"conio.h"main{intday,month,year,sum,leap;printf"\npleaseinputyear,month,day\n";scanf"%d,%d,%d",&year,&month,&day;switchmonth/先计算某月以前月份的总天数/{case1:sum=0;break;case2:sum=31;break;case3:sum=59;break;case4:sum=90;break;case5:sum=120;break;case6:sum=151;break;case7:sum=181;break;case8:sum=212;break;case9:sum=243;break;case10:sum=273;break;case11:sum=304;break;case12:sum=334;break;default:printf"dataerror";break;}sum=sum+day;/再加上某天的天数/ifyear%400==0||year%4==0&&year%100=0/判断是不是闰年/leap=1;elseleap=0;ifleap==1&&month>2/如果是闰年且月份大于2,总天数应该加一天/sum++;printf"Itisthe%dthday.",sum;getch;}===========================================程序5题目:输入三个整数x,y,z,请把这三个数由小到大输出;1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小;2.程序源代码:include"stdio.h"include"conio.h"main{intx,y,z,t;scanf"%d%d%d",&x,&y,&z;ifx>y{t=x;x=y;y=t;}/交换x,y的值/ifx>z{t=z;z=x;x=t;}/交换x,z的值/ify>z{t=y;y=z;z=t;}/交换z,y的值/printf"smalltobig:%d%d%d\n",x,y,z;getch;}===========================================程序6题目:用号输出字母C的图案;1.程序分析:可先用''号在纸上写出字母C,再分行输出;2.程序源代码:include"stdio.h"include"conio.h"main{printf"HelloC-world\n";printf"\n";printf"\n";printf"\n";printf"\n";getch;}===========================================程序7题目:输出特殊图案,请在c环境中运行,看一看,VeryBeautiful1.程序分析:字符共有256个;不同字符,图形不一样;2.程序源代码:include"stdio.h"include"conio.h"main{chara=176,b=219;printf"%c%c%c%c%c\n",b,a,a,a,b;printf"%c%c%c%c%c\n",a,b,a,b,a;printf"%c%c%c%c%c\n",a,a,b,a,a;printf"%c%c%c%c%c\n",a,b,a,b,a;printf"%c%c%c%c%c\n",b,a,a,a,b;getch;}============================================================== 程序8题目:输出99口诀;1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列;2.程序源代码:include"stdio.h"include"conio.h"main{inti,j,result;printf"\n";fori=1;i<10;i++{forj=1;j<10;j++{result=ij;printf"%d%d=%-3d",i,j,result;/-3d表示左对齐,占3位/}printf"\n";/每一行后换行/}getch;}===========================================程序9题目:要求输出国际象棋棋盘;1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格;2.程序源代码:include"stdio.h"include"conio.h"main{inti,j;fori=0;i<8;i++{forj=0;j<8;j++ifi+j%2==0printf"%c%c",219,219;elseprintf"";printf"\n";}getch;}==============================================================程序10题目:打印楼梯,同时在楼梯上方打印两个笑脸;1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数;2.程序源代码:include"stdio.h"include"conio.h"main{inti,j;printf"\1\1\n";/输出两个笑脸/fori=1;i<11;i++{forj=1;j<=i;j++printf"%c%c",219,219;printf"\n";}getch;}.:.:经典c程序100例==11--20:.:.经典c程序100例==11--20程序11题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....2.程序源代码:include"stdio.h"include"conio.h"main{longf1,f2;inti;f1=f2=1;fori=1;i<=20;i++{printf"%12ld%12ld",f1,f2;ifi%2==0printf"\n";/控制输出,每行四个/f1=f1+f2;/前两个月加起来赋值给第三个月/f2=f1+f2;/前两个月加起来赋值给第三个月/}getch;}==============================================================程序12题目:判断101-200之间有多少个素数,并输出所有素数;1.程序分析:判断素数的方法:用一个数分别去除2到sqrt这个数,如果能被整除,则表明此数不是素数,反之是素数;2.程序源代码:include"stdio.h"include"conio.h"include"math.h"main{intm,i,k,h=0,leap=1;printf"\n";form=101;m<=200;m++{k=sqrtm+1;fori=2;i<=k;i++ifm%i==0{leap=0;break;}ifleap{printf"%-4d",m;h++;ifh%10==0printf"\n";}leap=1;}printf"\nThetotalis%d",h;getch;}===========================================程序13题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身;例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方;1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位;2.程序源代码:include"stdio.h"include"conio.h"main{inti,j,k,n;printf"'waterflower'numberis:";forn=100;n<1000;n++{i=n/100;/分解出百位/j=n/10%10;/分解出十位/k=n%10;/分解出个位/ifi100+j10+k==iii+jjj+kkkprintf"%-5d",n;}getch;}===========================================程序14题目:将一个正整数分解质因数;例如:输入90,打印出90=2335;程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:1如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可;2如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步;3如果n不能被k整除,则用k+1作为k的值,重复执行第一步;2.程序源代码:/zhengintisdividedyinshu/include"stdio.h"include"conio.h"main{intn,i;printf"\npleaseinputanumber:\n";scanf"%d",&n;printf"%d=",n;fori=2;i<=n;i++whilen=i{ifn%i==0{printf"%d",i;n=n/i;}elsebreak;}printf"%d",n;getch;}===========================================程序15题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B 表示,60分以下的用C表示;1.程序分析:a>ba:b这是条件运算符的基本例子;2.程序源代码:include"stdio.h"include"conio.h"main{intscore;chargrade;printf"pleaseinputascore\n";scanf"%d",&score;grade=score>=90'A':score>=60'B':'C';printf"%dbelongsto%c",score,grade;getch;}===========================================程序16题目:输入两个正整数m和n,求其最大公约数和最小公倍数;1.程序分析:利用辗除法;2.程序源代码:include"stdio.h"include"conio.h"main{inta,b,num1,num2,temp;printf"pleaseinputtwonumbers:\n";scanf"%d,%d",&num1,&num2;ifnum1<num2/交换两个数,使大数放在num1上/{temp=num1;num1=num2;num2=temp;}a=num1;b=num2;whileb=0/利用辗除法,直到b为0为止/{temp=a%b;a=b;b=temp;}printf"gongyueshu:%d\n",a;printf"gongbeishu:%d\n",num1num2/a;getch;}===========================================程序17题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数;1.程序分析:利用while语句,条件为输入的字符不为'\n'.2.程序源代码:include"stdio.h"include"conio.h"main{charc;intletters=0,space=0,digit=0,others=0;printf"pleaseinputsomecharacters\n";whilec=getchar='\n'{ifc>='a'&&c<='z'||c>='A'&&c<='Z'letters++;elseifc==''space++;elseifc>='0'&&c<='9'digit++;elseothers++;}printf"allinall:char=%dspace=%ddigit=%dothers=%d\n",letters,space,digit,others;getch;}===========================================程序18题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字;例如2+22+222+2222+22222此时共有5个数相加,几个数相加有键盘控制;1.程序分析:关键是计算出每一项的值;2.程序源代码:include"stdio.h"include"conio.h"main{inta,n,count=1;longintsn=0,tn=0;printf"pleaseinputaandn\n";scanf"%d,%d",&a,&n;printf"a=%d,n=%d\n",a,n;whilecount<=n{tn=tn+a;sn=sn+tn;a=a10;++count;}printf"a+aa+...=%ld\n",sn;getch;}==============================================================程序19题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”;例如6=1+2+3.编程找出1000以内的所有完数;1.程序分析:请参照程序<--上页程序14.2.程序源代码:include"stdio.h"include"conio.h"main{staticintk10;inti,j,n,s;forj=2;j<1000;j++{n=-1;s=j;fori=1;i<j;i++{ifj%i==0{n++;s=s-i;kn=i;}}ifs==0{printf"%disawanshu",j;fori=0;i<n;i++printf"%d,",ki;printf"%d\n",kn;}}getch;}==============================================================程序20题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米第10次反弹多高1.程序分析:见下面注释2.程序源代码:include"stdio.h"include"stdio.h"main{floatsn=100.0,hn=sn/2;intn;forn=2;n<=10;n++{sn=sn+2hn;/第n次落地时共经过的米数/hn=hn/2;/第n次反跳高度/}printf"thetotalofroadis%f\n",sn;printf"thetenthis%fmeter\n",hn;getch;}.:.:经典c程序100例==21--30:.:.经典c程序100例==21--30程序21题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个;以后每天早上都吃了前一天剩下的一半零一个;到第10天早上想再吃时,见只剩下一个桃子了;求第一天共摘了多少;1.程序分析:采取逆向思维的方法,从后往前推断;2.程序源代码:include"stdio.h"include"conio.h"main{intday,x1,x2;day=9;x2=1;whileday>0{x1=x2+12;/第一天的桃子数是第2天桃子数加1后的2倍/x2=x1;day--;}printf"thetotalis%d\n",x1;getch;}===========================================程序22题目:两个乒乓球队进行比赛,各出三人;甲队为a,b,c三人,乙队为x,y,z三人;已抽签决定比赛名单;有人向队员打听比赛的名单;a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单;1.程序分析:判断素数的方法:用一个数分别去除2到sqrt这个数,如果能被整除,则表明此数不是素数,反之是素数;2.程序源代码:include"stdio.h"include"conio.h"main{chari,j,k;/i是a的对手,j是b的对手,k是c的对手/fori='x';i<='z';i++forj='x';j<='z';j++{ifi=jfork='x';k<='z';k++{ifi=k&&j=k{ifi='x'&&k='x'&&k='z'printf"orderisa--%c\tb--%c\tc--%c\n",i,j,k;}}}getch;}===========================================程序23题目:打印出如下图案菱形1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列;2.程序源代码:include"stdio.h"include"conio.h"main{inti,j,k;fori=0;i<=3;i++{forj=0;j<=2-i;j++printf"";fork=0;k<=2i;k++printf"";printf"\n";}fori=0;i<=2;i++{forj=0;j<=i;j++printf"";fork=0;k<=4-2i;k++printf"";printf"\n";}getch;}===========================================程序24题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和;1.程序分析:请抓住分子与分母的变化规律;2.程序源代码:include"stdio.h"include"conio.h"mainintn,t,number=20;floata=2,b=1,s=0;forn=1;n<=number;n++{s=s+a/b;t=a;a=a+b;b=t;/这部分是程序的关键,请读者猜猜t的作用/ }printf"sumis%9.6f\n",s;getch;}===========================================程序25题目:求1+2+3+...+20的和1.程序分析:此程序只是把累加变成了累乘;2.程序源代码:include"stdio.h"include"conio.h"main{floatn,s=0,t=1;forn=1;n<=20;n++{t=n;s+=t;}printf"1+2+3...+20=%e\n",s;getch;}===========================================程序26题目:利用递归方法求5;1.程序分析:递归公式:fn=fn_142.程序源代码:include"stdio.h"include"conio.h"main{inti;intfact;fori=0;i<5;i++printf"\40:%d=%d\n",i,facti;getch;}intfactjintj;{intsum;ifj==0sum=1;elsesum=jfactj-1;returnsum;}===========================================程序27题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来;1.程序分析:2.程序源代码:include"stdio.h"include"conio.h"main{inti=5;voidpalinintn;printf"\40:";palini;printf"\n";getch;}voidpalinnintn;{charnext;ifn<=1{next=getchar;printf"\n\0:";putcharnext;}else{next=getchar;palinn-1;putcharnext;}}===========================================程序28题目:有5个人坐在一起,问第五个人多少岁他说比第4个人大2岁;问第4个人岁数,他说比第3个人大2岁;问第三个人,又说比第2人大两岁;问第2个人,说比第一个人大两岁;最后问第一个人,他说是10岁;请问第五个人多大1.程序分析:利用递归的方法,递归分为回推和递推两个阶段;要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人10岁,再往回推;2.程序源代码:include"stdio.h"include"conio.h"agenintn;{intc;ifn==1c=10;elsec=agen-1+2;returnc;}main{printf"%d",age5;getch;}===========================================程序29题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字;1.程序分析:学会分解出每一位数,如下解释:这里是一种简单的算法,师专数002班赵鑫提供2.程序源代码:include"stdio.h"include"conio.h"main{longa,b,c,d,e,x;scanf"%ld",&x;a=x/10000;/分解出万位/b=x%10000/1000;/分解出千位/c=x%1000/100;/分解出百位/d=x%100/10;/分解出十位/e=x%10;/分解出个位/ifa=0printf"thereare5,%ld%ld%ld%ld%ld\n",e,d,c,b,a;elseifb=0printf"thereare4,%ld%ld%ld%ld\n",e,d,c,b;elseifc=0printf"thereare3,%ld%ld%ld\n",e,d,c;elseifd=0printf"thereare2,%ld%ld\n",e,d;elseife=0printf"thereare1,%ld\n",e;getch;}===========================================程序30题目:一个5位数,判断它是不是回文数;即12321是回文数,个位与万位相同,十位与千位相同;1.程序分析:同29例2.程序源代码:include"stdio.h"include"conio.h"main{longge,shi,qian,wan,x;scanf"%ld",&x;wan=x/10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;ifge==wan&&shi==qian/个位等于万位并且十位等于千位/printf"thisnumberisahuiwen\n";elseprintf"thisnumberisnotahuiwen\n";getch;}.:.:经典c程序100例==31--40:.:.经典c程序100例==31--40程序31题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母;1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母;2.程序源代码:include"stdio.h"include"conio.h"voidmain{charletter; printf"pleaseinputthefirstletterofsomeday\n"; whileletter=getch='Y'/当所按字母为Y时才结束/ {switchletter{case'S':printf"pleaseinputsecondletter\n"; ifletter=getch=='a'printf"saturday\n";elseifletter=getch=='u'printf"sunday\n";elseprintf"dataerror\n";break;case'F':printf"friday\n";break;case'M':printf"monday\n";break;case'T':printf"pleaseinputsecondletter\n"; ifletter=getch=='u'printf"tuesday\n";elseifletter=getch=='h'printf"thursday\n";elseprintf"dataerror\n";break;case'W':printf"wednesday\n";break;default:printf"dataerror\n";}}getch;}=========================================== 1.求下列分段函数的值;2.求下列分段函数的值;a、b由键盘输入3.求分段函数的值4.求分段函数的值⎪⎩⎪⎨⎧<=>+=0ln 01012X x X X e Y x5.计算:s=1+1/1+1/2+……+1/n,其中n 由键盘输入;6.用台劳级数求e 的近似值,直到最后一项小于10-6e=1+1/1+1/2+1/3+……7.求s=1-2+3-4+5……+99-1008.输出200~1000之间能被7整除的数,并统计其个数;9.任意输入100个整数,分别统计其中的正数、负数和零的个数;10.任意输入N 个数,统计其中的正数个数和负数个数;11.任意输入aNN 个数,找出并输出其中的最大数和最小数,以及它们的下标;12.求数组a88中,主对角线和次对角线上各元素之和;13.任意输入N 个数,将它们由大到小排序输出;14.编程打印下列的杨辉三角形;设10行11112113311464115101051……15.以“”为字符,打印一个正三角形;16.以“”为字符,打印一个6行的倒正三角形;17.打印10~1000之间满足下列条件的所有数:正序读和反序读都相同,例如:55、232等;18.从键盘任意输入一个大于0且小于1000的整数,然后输出此整数的所有整数因子;例如:输入12,输出1,2,3,4,6,12;19.编写一个函数,将字符串中的元音字母输出;例如字符串为“boyandgirl”,则输出为:oai20.从键盘上任意输入一个字符串S,输出其中的数字字符;例如输入为:sd12we$55abc8,则输出结果为:1255821.编写一个函数,将两个字符串连接起来;不能用strcat函数;22.编写一个函数:完成判断方阵aNN是否关于主对角线对称相等,若对称则返回1,否则返回0;23.输入10个学生包括姓名和成绩的信息,找出成绩最高的,然后输出该学生的姓名和成绩;24.输入10个学生包括姓名、计算机、英语的信息,找出二门课的平均成绩最高的学生,然后输出该学生的姓名和成绩;25.函数intaddintaNN,intbN的功能是将a数组中每行的最小元素放入b数组中,编写该函数实现之;26.函数intaddintaNN,intbN的功能是将a数组中每行的最大元素放入b数组中,编写该函数实现之;27.函数intaddintaNN,intbN的功能是将a数组中每列的最小元素放入b数组中,编写该函数实现之;28.编写一函数:intsubstringcharstr,charsub,判断字符串sub是否是字符串str的子串,若是子串,则返回子串的位置,否则返回-1;29.函数voidcompchars1,s2的功能是比较字符串s1和字符串s2,若字符串s1大于字符串s2,则函数返回1,若字符串s1等于字符串s2,则函数返回0,若字符串s1小于字符串s2,则函数返回-1;要求:不能调用库函数strcmp30.函数voiddelechars的功能是删除字符串s中的所有数字字符和非字母字符,并将字符串压缩;例如原字符串为:abc12ef5ghij8%%yz,处理后的字符串为:abcefghijyz;。
c语言编程大题
三、编程题1、输入一个半径值,分别计算圆周长、圆面积与球的体积。
要求使用符号常量定义圆周率。
#include<stdio、h>int main(){printf("计算圆周长面积求面积\n");float r,c,s,v;scanf("%f",&r);# define PI 3、14159265c=2*PI*r;s=4*PI*r*r;v=4/3*PI*r*r*r;printf("周长就是%、2f\n",c);printf("表面积就是%、2f\n",s);printf("体积就是%、2f\n",v);return 0;}2、假设今天就是星期三,编程求20天之后就是星期几?#include<stdio、h>int main(){printf("今天就是星期三,20天后就是星期几?\n");int i;i=23%7;printf("20天后就是星期%d\n",i);return 0;}3、从键盘输入一个字符,然后将其按字符与整数这两种形式输出。
#include<stdio、h>int main(){printf("输入一个字符\n");char i;scanf("%c",&i);printf("整数形式就是%d\n",i);printf("字母形式就是%c\n",i);return 0;}4、输入一个大写英文字母,将它转化为小写输出。
#include<stdio、h>int main(){printf("请输入一个大写英文字母\n");char ch;scanf("%c",&ch);printf("%c\n",ch+32);return 0;}5、求一元二次方程ax^2+bx+c=0方程的两个实根。
c语言随机生成10道加法题
c语言随机生成10道加法题要在C语言中随机生成10道加法题,我们可以使用rand()函数来生成随机数,并结合循环语句来生成10道题目。
下面是一个示例代码:c.#include <stdio.h>。
#include <stdlib.h>。
#include <time.h>。
int main() {。
int i;int operand1, operand2, result;// 设置随机数种子。
srand(time(0));for (i = 1; i <= 10; i++) {。
// 生成两个随机操作数。
operand1 = rand() % 100;operand2 = rand() % 100;// 计算结果。
result = operand1 + operand2;// 输出题目和答案。
printf("第%d题: %d + %d = ?\n", i, operand1, operand2);printf("答案: %d\n\n", result);}。
return 0;}。
上述代码中,我们使用srand()函数设置随机数种子,以确保每次运行程序时生成的随机数序列不同。
然后,使用for循环生成10道题目。
每次循环中,使用rand()函数生成两个随机操作数,然后计算它们的和。
最后,输出题目和答案。
请注意,上述代码中的随机数范围是0到99之间的整数。
你可以根据需要调整范围。
另外,这只是一个简单的示例代码,你可以根据自己的需求进行修改和扩展。
c语言课后习题代码
第四章1.编程实现:输入一个字母,假设为小写,则把它变成大写输出。
代码如下:#include<stdio.h>main(){char c;printf("Please input a character:");scanf("%c",&c);if(c>='a'&&c<='z')printf("The result is :%c\n",c-32);}2.由键盘输入3个数a、b、c,编程输出其中最小的数。
代码如下:#include<stdio.h>main(){int a,b,c,t;printf("Please input three numbers:");scanf("%d%d%d",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}printf("The minimum is :%d\n",a);}3.由键盘输入三个数a、b、c,用条件运算符求出最大值和最小值。
代码如下:#include<stdio.h>main(){int a,b,c,min,max;printf("Please input three numbers:");scanf("%d%d%d",&a,&b,&c);max=min=a;//初始化最大值与最小值为a//求出最大值max=max>b ? max:b;max=max>c ? max:c;//求出最小值min=min>b ? b:min;min=min>c ? c:min;printf("The maximum is :%d,the minimum is :%d\n",max,min);}4. 编写程序,实现功能:从键盘上输入1,2,3,4,分别显示excellent ,good,pass,fail。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int question_get1();
int question_get2();
int type;
void main( void )
{
int answer,Lever;
srand( (unsigned)time( NULL ) );
out:
printf("1.一位数运算!2.两位数运算!\n");
scanf("%d",&Lever);
printf( "请选择要测试的题目种类:" );
printf( "\n1.加法\n2.减法\n3.乘法\n4.除法\n" );
scanf( "%d", &type );
while( 1 )//实现系统循环
{
int temp;
char flag;
while(Lever==1)
{
answer = question_get1();//调用一位数运算函数
printf( "请给出你的答案:\n" );
break;//要跳出此次while循环
}
while(Lever==2)
{
answer = question_get2();//调用二位数运算的函数
printf( "请给出你的答案:\n" );
break;//要跳出此次while循环
}
fflush( stdin );
scanf( "%d", &temp );//储存测试者输入的结果
while( temp!=answer )//判断结果的对错错误时实现循环运算{
printf( "\n笨蛋,you are wrong! again!\n" );
fflush( stdin );//继续运算
scanf( "%d", &temp );
}
printf( "\n天才!you are rigth! Very good!\n" );
printf( "press 1 to go on,press 2 to exit,press 0 to end!\n" );//选择菜单fflush( stdin );
scanf( "%c", &flag );
while( flag!='1' && flag!='2'&&flag!='0' )//选择菜单判断{
printf( "press 1 to go on,press 2 to exit,press 0 to end!\nelse no working!\n" );
fflush( stdin );
scanf( "%c", &flag );
}
if ( flag=='2' )
goto out;//回到out实现整个系统的循环
else if(flag=='0')
break;//结束本程序
}
}
int question_get1()//子函数一位数运算
{
int a,b,c;
if( type==1 )
{
a=rand()%10;//在10以内产生随机数
b=rand()%10;//在10以内产生随机数
printf( "%d + %d = ?", a, b );
return(a+b);
}
else if( type==2 )
{
b=rand()%10;//在10以内产生随机数
c=rand()%10;//在10以内产生随机数
printf( "%d - %d = ?", b+c, b );
return(c);
}
else if( type==3 )
{
a=rand()%10;//在10以内产生随机数
b=rand()%10;//在10以内产生随机数
printf( "%d * %d = ?", a, b );
return(a*b);
}
else
{
b=rand()%10;
c=rand()%9+1;
printf( "%d / %d = ?", b*c, b );
return(c);
}
}
int question_get2()//子函数二位数运算
{
int a,b,c;
if( type==1 )
{
a=rand()%100;//在100以内产生随机数
b=rand()%100;//在100以内产生随机数
printf( "%d + %d = ?", a, b );
return(a+b);
}
else if( type==2 )
{
b=rand()%100;//在100以内产生随机数
c=rand()%100;//在100以内产生随机数
printf( "%d - %d = ?", b+c, b );
return(c);
}
else if( type==3 )
{
a=rand()%100;//在100以内产生随机数
b=rand()%100;//在100以内产生随机数
printf( "%d * %d = ?", a, b );
return(a*b);
}
else
{
b=rand()%10;
c=rand()%10+1;
printf( "%d / %d = ? ", b*c , c );
return(b);
}
}。