C语言教材例题
C语言经典例题及答案

C语言经典例题及答案C语言经典例题及答案引导语:C语言应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
以下是店铺整理的C语言经典例题及答案,欢迎参考阅读!一、求一个任意边长的矩形面积。
#includevoid main(){int w,h,sum;scanf("%d%d",&w,&h);sum=w*h;printf("area=%d ",sum);}二、求一个任意半径的圆的`面积及周长。
#define PI 3.14159#includevoid main(){float r,area,c;scanf("%f",&r);area=PI*r*r;c=2*PI*r;printf("area=%f circle=%f ",area,c);}??三、已知:w=5, y=4, z=2, 求表达式:w*y/z的值,并输出。
##includevoid main(){ int w,y,z,r;w=5;y=4;z=2;r=w*y/z;printf("%5d",r);}一、从键盘上输入三个数,求出其中的最大值,并输出。
#includevoid main(){int a,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a;if(max<b) max=b;if(max<c) max=c;printf("max=%d ",max);}??二、求sin300+sin600+cos300+cos600之和。
(注意:30*3.14159/180)#include#define PI 3.14159#includevoid main(){float a,b,sum;a=30*PI/180;b=60*PI/180;sum=sin(a)+sin(b)+cos(a)+cos(60);printf("total=%f ",sum);}三、比较两个数的大小。
C语言经典例题及答案

一、求一个任意边长的矩形面积。
#include <stdio.h>void main(){int w,h,sum;scanf("%d%d",&w,&h);sum=w*h;printf("area=%d\n",sum);}二、求一个任意半径的圆的面积及周长。
#define PI 3.14159#include <stdio.h>void main(){float r,area,c;scanf("%f",&r);area=PI*r*r;c=2*PI*r;printf("area=%f\ncircle=%f\n",area,c);}三、已知:w=5, y=4, z=2, 求表达式:w*y/z的值,并输出。
##include <stdio.h>void main(){ int w,y,z,r;w=5;y=4;z=2;r=w*y/z;printf("%5d",r);}一、从键盘上输入三个数,求出其中的最大值,并输出。
#include <stdio.h>void main(){int a,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a;if(max<b) max=b;if(max<c) max=c;printf("max=%d\n",max);}二、求sin300。
+sin600+cos300+cos600之和。
(注意:30*3.14159/180)#include <stdio.h>#define PI 3.14159#include <math.h>void main(){float a,b,sum;a=30*PI/180;b=60*PI/180;sum=sin(a)+sin(b)+cos(a)+cos(60);printf("total=%f\n",sum);}三、比较两个数的大小。
C语言全部章节习题集(参考答案)

第一章 C语言概述一、选择题:1、一个C程序的执行是从( A )。
A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、在 C 语言中,每个语句必须以( D )结束。
A. 回车符B. 冒号C. 逗号D. 分号3、C 语言规定:在一个源程序中,main函数的位置( C )。
A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后4、一个C 语言程序是由( B )。
A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成5、下列说法中错误的是( D )。
A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。
A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件二、填空题:1、C 语言只有 32 个关键字和 9 种控制语句。
2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。
3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。
4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函数 printf 完成的。
5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。
6、C 语言的标识符只能由字母、数字和下划线三种字符组成。
第三章数据类型、运算符和表达式一、选择题:1、以下选项中,不正确的 C 语言浮点型常量是( C )。
C语言经典习题实例及讲解

8 10 16 20 27
while(str[i]!='\0')
{ nc=str[i];
if(nc!=' '&& pc==' ') num++;
t h e i s d o \0
pc=nc; i++;
}
printf("\nThe number of words is:%d",num);
num=3
}
程 序 示 例(六)
例6 将一个数插入到升序的数列中,使插入后的数列仍然有 序。
printf("Input %d number:\n",N); for (i=0;i<N;i++) scanf("%d",&array[i]); printf("\n"); for (i=0;i<N-1;i++) { k=i;
for (j=i+1;j<N;j++) if(array[j]<array[k]) k=j; if (i!=k)
is:a[%d][%d]=%d\n",i,c,a[i][c]); i++; } if(find==0)printf("not been found"); }
18 12 19 13 79 65 52 38 63 88 71 49
rmax= 19 find=1
运行结果: The matrix is: 18 12 19 13 79 65 52 38 63 88 71 49 The saddle pointer is: a[0][2]=19
c语言习题及详解答案

c语言习题及详解答案C语言是一种广泛使用的编程语言,以其结构化、可移植和高效性而著称。
以下是一些C语言的习题以及相应的详解答案。
# 习题1:求和问题编写一个C程序,输入两个整数,输出它们的和。
解答:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("这两个整数的和是:%d\n", sum);return 0;}```# 习题2:判断素数编写一个C程序,判断一个整数是否为素数。
解答:```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); i++) {if (n % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d 是素数。
\n", num);} else {printf("%d 不是素数。
\n", num);}return 0;}```# 习题3:字符串反转编写一个C程序,输入一个字符串,然后输出它的反转。
解答:```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int len = strlen(str);for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```# 习题4:数组排序编写一个C程序,输入一个整数数组,然后使用冒泡排序算法对其进行排序。
100个经典c语言例题(带答案)

100个经典c语言例题(带答案)经典C源程序100例- -1 经典C源程序100例【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:m...C语言经典程序100例2009-02-26 19:44 | (分类:默认分类)经典C源程序100例- -1 经典C源程序100例【程序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.程序分析:请利用数轴来分界,定位。
单片机 c语言例题

单片机 c语言例题单片机 C 语言例题在单片机教学中,C 语言的例题是帮助学生理解和掌握单片机编程的重要工具。
通过例题的学习,学生可以更好地理解C语言语法和单片机的工作原理。
本文将介绍几个单片机 C 语言例题,帮助读者更好地了解单片机的应用。
例题一:LED 灯的闪烁以下是一个简单的单片机 C 语言例题,通过控制单片机上的LED 灯,实现灯的闪烁效果。
```c#include <reg51.h> // 单片机头文件// 主函数void main() {while(1) { // 循环执行P1 = 0x00; // 将 P1 置为低电平(LED 灯熄灭)Delay(); // 延时P1 = 0xFF; // 将 P1 置为高电平(LED 灯亮)Delay(); // 延时}}// 延时函数void Delay() {int i, j;for(i = 0; i < 800; i++) { // 大约延时 1 秒for(j = 0; j < 1000; j++) {}}}```在上述例题中,我们使用了一个延时函数 `Delay()`,通过循环控制LED 灯的亮灭状态,实现了灯的闪烁效果。
通过修改延时循环,可以改变灯闪烁的频率。
例题二:数码管显示数字以下是另一个单片机 C 语言例题,通过控制单片机上的数码管,实现数字的显示效果。
```c#include <reg51.h> // 单片机头文件sbit LED = P2^0; // 数码管的引脚定义// 数码管显示数字函数void Display(int num) {switch (num) {case 0: LED = 0xFC; break; // 数字0显示case 1: LED = 0x60; break; // 数字1显示case 2: LED = 0xDA; break; // 数字2显示case 3: LED = 0xF2; break; // 数字3显示case 4: LED = 0x66; break; // 数字4显示case 5: LED = 0xB6; break; // 数字5显示case 6: LED = 0xBE; break; // 数字6显示case 7: LED = 0xE0; break; // 数字7显示case 8: LED = 0xFE; break; // 数字8显示case 9: LED = 0xF6; break; // 数字9显示default: LED = 0xFF; break; // 其他情况,不显示数字 }}// 主函数void main() {int num = 0; // 待显示的数字while(1) { // 循环执行Display(num); // 数码管显示数字num++; // 数字自增if (num > 9) { // 数字大于9后重置为0 num = 0;}Delay(); // 延时}}// 延时函数void Delay() {int i, j;for(i = 0; i < 800; i++) { // 大约延时 1 秒 for(j = 0; j < 1000; j++) {}}}```在上述例题中,我们通过控制数码管的引脚,并编写了一个显示数字的函数 `Display()`,通过循环控制数码管显示不同的数字,实现了数字的切换和显示效果。
C语言习题课(附答案)

C语言习题课(附答案)C语言习题课一、单项选择题:1.以下A是C语言中有效的变量名称。
A._abc B.2abc C.char D.a#3变量名只能以下划线和字母开头2.下面四个说法中错误的是B。
A.for循环不仅可以和for循环嵌套,而且可以和While循环嵌套。
B.当在循环体内执行continue语句的时候,将结束整个循环。
C.while循环最少循环0次,do-while循环最少循环1次。
D.goto语句也可以实现循环的功能。
3.在while ( x )中的x与下面条件表达式等价的是DA.x = = 0 B.x= = 1 C.x! = 1 D.x ! = 04.为表示关系x≥y≥z,应使用C语言表达式AA.(x>=y)&&(y>=z)B.(x>=y)AND(y>=z)C.(x>=y>=z)D.(x>=y)&(y>=z)5.设有如下定义:int x=9,y=2,z;则语句printf(“%d\”,z= x/y);的输出结果是CA.1 B.4.5 C.4 D.3整形中的“/”是整除6.若有以下语句:static char x[ ]=”12345”;static char y[ ]={‘1’,’2’,’3’,’4’,’5’};则正确的说法是 B 。
A.x数组和y数组的长度相同B.x数组的长度大于y数组的长度C.x数组的长度小于y数组的长度D.x数组与y数组等价字符串后有一个“\\0”7.已知有定义:char ch;则下面正确的赋值语句为A。
A.ch='X' B.ch='55' C.ch="M" D.ch="55"8.以下说法中正确的是CA.C语言程序总是从第一个的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分9.C语言中,形参的缺省存储类型说明是: AA.autoB.staticC.registerD.extern10.C语言中的简单数据类型有: BA.整型实型逻辑型B.整型实型字符型C.整型字符型逻辑型D.整型实型逻辑型字符型11.以下程序段的输出结果是: CA.1 int x=3;B.3 0 do{C.1 -2 printf("%3d",x-=2);D.死循环 }while(!(--x));12.以下非法的赋值语句是: AA.n=(i=2,++i);B.j++;C.++(i+1);D.x=y>0;13.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是: DA.6.500000 B.6 C.5.500000 D.6.00000014.已知x=3,y=2,则表达式x*=y+8的值为: CA.3 B.2 C.30 D.10y+8是一个整体15.设x,y,z均为int型变量,则执行以下语句后,t的值为: Cx=y=z=1; t=++x||++y&&++z;A.不定值 B.2 C.1 D.016.为了测试字符串的实际长度,C语言规定了一个“字符串结束标志”,这个结束标志字符是: BA.‘\’ B.‘\\0’C.‘\\x’ D.‘\\9’17.C程序的三种基本结构是: AA.顺序结构、选择结构、循环结构B.逻辑结构、层次结构、网状结构C.顺序结构、逻辑结构、选择结构D.层次结构、顺序结构、循环结构18.若int i=10;执行完下面程序判断后,变量i的正确结果是D。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章【例1.1】用C语言编程在屏幕上显示“您好,欢迎学习C语言!”。
#include<stdio.h>void main(){printf("您好,欢迎学习C语言!\n");}【例1.2】用C语言编程实现通过键盘输入一个数并把它的正弦值求出来。
#include <stdio.h> /*预处理命令*/#include <math.h> /*预处理命令*/main() /*主函数*/{double x,s; /*定义两个变量*/printf("input number:\n");scanf("%lf",&x); /*输入数据给变量x*/s=sin(x); /*求变量x的正弦值*/printf("sine of %lf is %lf\n",x,s);/*输出结果*/ }【例1.3】编程实现在屏幕上显示如下两行文字Wolcome to the C language world!Everyone has been waiting for.程序example.c如下:#include<stdio.h>void main(){printf("Wolcome to the C language world!\n");printf("Everyone has been waiting for.\n");}【例1.4】输入并运行程序,写出运行结果。
#include<stdio.h>void main(){int a,b,sum;a=100;b=200;sum=a+b;printf("sum is %d\n",sum);}【例1.5】输入并运行程序,写出运行结果。
#include<stdio.h>int max(int x,int y);void main(){int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("max=%d",c);}int max(int x,int y){int z;if(x>y)z=x;elsez=y;return (z);}第二章【例 2.1】定义一个符号常量PI表示圆周率,求圆的面积。
#include<stdio.h>#define PI 3.14159void main(){int r;float s;r=1;s=PI*r*r;printf("s=%f",s);}【例2.2】给字符型变量赋数值。
#include<stdio.h>void main(){char c1,c2;c1=65;c2=66;printf("%c%c",c1,c2);}运行结果:AB【例2.3】:大小写字母转换。
#include<stdio.h>void main(){char c1,c2;c1='A'; c2='B';c1=c1+32; c2=c2+32;printf("%c%c",c1,c2);}【例2.4】假如a=12,分析:a+=a-=a*aa+=a-=a*a⇔a+=a-=(a*a)⇔a+=(a-=(a*a))⇔a+=(a=a-(a*a))⇔a+=(a=a-a*a)⇔a=a+(a=a-a*a)【例2.5】分析a=3*5,a*4的值查运算符优先级表可知,“=”运算符优先级高于“,”运算符(事实上,逗号运算符级别最低)。
所以上面的表达式等价于:(a=3*5),(a*4).所以整个表达式计算后值为:60(其中a=15)【例2.6】分析下列程序#include<stdio.h>void main(){int x,a;x=(a=3,6*3); /* a=3 x=18 */printf("%d,%d\n",a,x);x=a=3,6*a; /* a=3 x=3 */printf("%d,%d\n",a,x);}3,183,3【例2.7】假定银行定期存款的年利率为2.25%,并已知存款期为n年,存款本金为x元,试编程计算n年后可得到本利之和是多少?问题分析:本例是一个实际生活应用例题。
已知条件为存款利率,存期及本金。
要求求出若干年之后的本息之和。
程序如下:#include <stdio.h>#include <math.h>main( ){double a=0.0225;double x,y;int n;scanf("%lf",&x);scanf("%d",&n);printf("x=%lf,n=%d\n",x,n);y=x*pow((1+a),n);printf("y=%f",y);return 0;}请大家分析以上程序并上机调试,看一看程序会输出什么结果?第三章【例3.1】格式控制串的使用#include<stdio.h>void main(){int a=88,b=89;printf("%d %d\n",a,b);printf("%d,%d\n",a,b);printf("%c,%c\n",a,b);printf("a=%d,b=%d",a,b);}【例3.2】分析以下程序#include<stdio.h>main(){int a=101;long b=202;char c='a';printf("%d\n",a);printf("%4d\n",a);printf("%2d\n",a);printf("%ld\n",b);printf("%6ld\n",b);printf("%d\n",c);}【例3.3】分析以下程序#include<stdio.h>main(){int a=-1;long b=11111;printf("%d\n",a);printf("%o\n",a);printf("%4o\n",a);printf("%ld\n",b);printf("%lo\n",b);printf("%6lo\n",b);}【例3.4】分析以下程序#include<stdio.h>void main(){int a=-1;long b=11111;printf("%d\n",a);printf("%x\n",a);printf("%6x\n",a);printf("%ld\n",b);printf("%lx\n",b);printf("%6lx\n",b);}【例3.5】分析以下程序#include<stdio.h>void main(){int unsigned a=65535;int b=-2;printf("%d\n",a);printf("%u\n",a);printf("%6u\n",a);printf("%d\n",b);printf("%u\n",b);printf("%6u\n",b);}【例3.6】分析以下程序#include<stdio.h>void main(){int a=65;char b='a';printf("%d\n",a);printf("%c\n",a);printf("%d\n",b);printf("%c\n",b);printf("%4c\n",b);}【例3.7】分析以下程序#include<stdio.h>void main(){printf("%s\n","Welcome");printf("%4s\n","Welcome");printf("%8s\n","Welcome");printf("%-8s\n","Welcome");printf("%5.3s\n","Welcome");printf("%-5.3s\n","Welcome");printf("%.4s\n","Welcome");printf("%2.5s\n","Welcome");}【例3.8】分析以下程序#include<stdio.h>void main(){float f,g,a,b;double d,e,x,y;f=111.111;g=222.222;a=1111.1111;b=2222.2222;d=1234567891.1111;e=2222222222.2222;x=123456789123.111111;y=222222222222.222222;printf("%f\n",f);printf("%f\n",f+g);printf("%8.3f\n",f);printf("%08.3f\n",f);printf("%-8.3f\n",f);printf("%0.2f\n",f);printf("%2.5f\n",f);printf("%f\n",a);printf("%f\n",b);printf("%f\n",a+b);printf("%8.4f\n",a);printf("%lf\n",d);printf("%lf\n",d+e);printf("%lf\n",x);printf("%lf\n",y);printf("%lf\n",x+y);}【例3.9】分析程序,写出结果#include<stdio.h>void main(){int i=8;printf("%d\n%d\n%d\n%d\n%d\n",++i,--i,i--,-i++,-i--);}输出结果为:768-7-8【例3.10】 putchar()函数的应用#include<stdio.h>void main(){char a='B',b='o',c='k';putchar(a);putchar(b);putchar(b);putchar(c);putchar('\t');putchar(a);putchar(b);putchar('\n');putchar(b);putchar(c);}【例3.11】 scanf()的格式示例#include<stdio.h>void main(){int a,b,c;printf("input a,b,c\n");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d",a,b,c);}【例3.12】分析下列程序的运行结果#include<stdio.h>void main(){char a,b;printf("input character a,b\n"); scanf("%c%c",&a,&b);printf("%c%c\n",a,b);}【例3.13】 scanf()函数的输入格式#include<stdio.h>void main(){char a,b;printf("input character a,b\n"); scanf("%c %c",&a,&b);printf("\n%c%c\n",a,b);}【例3.14】所示#include<stdio.h>void main(){int a;printf("input a number\n");scanf("%d",&a);printf("%ld",a);}【例3.15】所示#include<stdio.h>void main(){long a;printf("input a long integer\n");scanf("%ld",&a);printf("%ld",a);}运行结果为:input a long integer12345678901234567890 当输入数据改为长整型后,输入输出数据相等。