C语言经典例题和答案

合集下载

C语言编程题带答案

C语言编程题带答案

C语言编程题带答案C 语言作为一门广泛应用的编程语言,在学习过程中,通过编程题的练习可以更好地掌握其语法和逻辑。

下面为您带来几道 C 语言编程题以及详细的答案解析。

题目一:求两个整数的和要求编写一个 C 语言程序,输入两个整数,计算并输出它们的和。

```cinclude <stdioh>int main(){int num1, num2, sum;printf("请输入第一个整数:");scanf("%d",&num1);printf("请输入第二个整数:");scanf("%d",&num2);sum = num1 + num2;printf("这两个整数的和是:%d\n", sum);return 0;```解析:在这个程序中,首先使用`printf`函数提示用户输入两个整数,然后通过`scanf`函数获取用户输入的值并存储在变量`num1`和`num2`中。

接下来,将这两个数相加并将结果存储在变量`sum`中,最后使用`printf`函数输出结果。

题目二:判断一个数是否为奇数编写一个 C 语言程序,输入一个整数,判断它是否为奇数,如果是奇数输出“是奇数”,否则输出“不是奇数”。

```cinclude <stdioh>int main(){int num;printf("请输入一个整数:");scanf("%d",&num);if (num % 2!= 0) {printf("是奇数\n");} else {printf("不是奇数\n");return 0;}```解析:在这个程序中,使用取余运算符`%`来判断一个数是否能被2 整除。

如果取余结果不为 0,说明该数不能被 2 整除,即为奇数;否则,不是奇数。

题目三:计算 1 到 100 的累加和编写一个 C 语言程序,计算 1 到 100 的累加和。

```cinclude <stdioh>int main(){int sum = 0, i;for (i = 1; i <= 100; i++){sum += i;}printf("1 到 100 的累加和是:%d\n", sum);return 0;```解析:这里使用了`for`循环从 1 迭代到 100,每次迭代都将当前的数字加到变量`sum`中,最终得到 1 到 100 的累加和。

计算机系C语言编程10题及答案

计算机系C语言编程10题及答案

计算机系C语言编程10题及答案1)/* 输入10个数,分别统计其中正数、负数、零的个数。

*/#include "stdio.h"#define N 10main(){int i,zsum=0,fsum=0,lsum=0;float x;for(i=1;i<=N;i++){printf("请输入第%d个数:",i);scanf("%f",&x);if(x>0)zsum++;else if(x==0)lsum++;elsefsum++;}printf("有%d个正数,%d个负数,%d个零",zsum,fsum,lsum);}2)/* 先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。

(设N为100)*/ #include "stdio.h"#include "stdlib.h"#include "time.h"#define N 100main(){int i,x;randomize();for(i=1;i<=N;i++){x=random(900)+100;printf("%d\t",x);if(x%3==0&&x%5==0&&x%7==0)printf("\n*%d*\n",x);}}3)/* 计算:1/2-2/3+3/4-4/5……,前100项和*/#include "stdio.h"main(){int i,t=1;float sum=0;for(i=1;i<=100;i++){sum=sum+(t*i*1.0)/(i+1);t=-t;}printf("%f",sum);}4)/* 打印出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其各位数字立方之和等于该数本身*/#include "stdio.h"#include "math.h"main(){int i,gw,sw,bw;for(i=100;i<=999;i++)gw=i%10;sw=i/10%10;bw=i/100%10;if(i==pow(gw,3)+pow(sw,3)+pow(bw,3))printf("%d\n",i);}}5)/* 把100~200之间的不能被3整除的数输出。

C语言经典例题和答案

C语言经典例题和答案

一、求一个随意率性边长的矩形面积.#include <stdio.h>void main(){int w,h,sum;scanf("%d%d",&w,&h);sum=w*h;printf("area=%d\n",sum);}二、求一个随意率性半径的圆的面积及周长.#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);}一、从键盘上输入三个数,求出个中的最大值,并输出.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>#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);}三、比较两个数的大小.假如x大于y,则输出:x>y,不然输出:x<y. #include <stdio.h>void main(){int x,y;scanf("%d,%d",&x,&y);if(x>y)printf("x>y\n");elseprintf("x<y\n");}一、输入a.b.c三个值,按从小到大排序输出.if(a>b){ t=b;b=a;a=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%3d%3d%3d\n",a,b,c);}.二、求天然数1~10之和..#include <stdio.h>void main(){int i,sum;i=1;sum=0;while(i<=10){sum=sum+i;i++;}printf("sum=%d\n",sum);}三、输入10个整数,统计出正数之和以及负数之和.(求奇数之和以及偶数之和){int sum1=0,sum2=0,i,x;i=1;while(i<=10){ scanf("%d",&x);if(x%2==0)sum1=sum1+x;elsesum2=sum2+x;i++;}printf("sum1=%d\nsum2=%d\n",sum1,sum2);}一、输入一个0~6的整数,转换成礼拜输出.#include <stdio.h>main(){ int a;scanf("%d",&a);switch(a){case 0: printf("Sunday");break;case 1: printf("Monday");break;case 2: printf("Tuesday");break;case 3: printf("Wednesday");break;case 4: printf("Thursday");break;case 5: printf("Friday");break;case 6: printf("saturday");break;default: printf("I am sorry.You are wrong.\n"); }}.二、输入一个整数,将列位数字反转后输出.如:输入365,则输出显示为563. #include <stdio.h>void main(){int x,r;scanf("%d",&x);printf("conver is:");while(x!=0){ r=x%10;printf("%d",r);x=x/10;}printf("\n");}三、输入一个整数,求出它的所有因子.#include <stdio.h>void main(){int x,i;scanf("%d",&x);for(i=1;i<=x;i++)if(x%i==0)printf("%3d",i);}一、求100 ~ 200之间的素数.#include <stdio.h>#include <math.h>void main(){int j=0,x,n,i;for(x=100;x<=200;x++){n=sqrt(x);for(i=2;i<=n;i++){ if(x%i==0)break;}if(i>n){printf("%5d",x);j++;}if(j%5==0)printf("\n");}}二、编程输出三角形的9×9乘法表. #include <stdio.h>void main(){int i,j;for(i=1;i<10;i++){for(j=1;j<=i;j++)printf("%d*%d=%d ",i,j,i*j); printf("\n");}}三、求随意率性二个数的最大公约数. #include <stdio.h>main(){ int a,b,m,n,q;scanf("%d%d",&m,&n);a=m; b=n;if(a>b)a=b;b=z;}do{ q=b%a;b=a;a=q;}while(q!=0);printf("%d\n",b);}一、应用轮回语句求1217151311-++-+-n (直到第100项的和). #include <stdio.h>void main(){ int i,t=1;float s=1,p=0,n=1;for(i=1;i<=100;i++){ p=p+s;n=n+2;t=-t;s=t/n;}printf("%f\n",p);}二、编写求 S=∑=51n n !.#include <stdio.h>void main(){ int x,y=0,n,i;for(n=1;n<=5;n++){ x=1;for(i=1;i<=n;i++)}printf("%d\n",y);}三、应用公式求 cosx 的近似值(精度为10-6):)!2()1(!6!4!21cos 20642n x x x x x n n n ∑∞=-=-+-= #include <stdio.h>#include <math.h>void main(){ float n=1,t=1,pi=0,s=1,x,i=1;scanf("%f",&x);while(fabs(t)>=1e-6){ pi+=t;n=n*i*(i+1);s=-s*x*x;i++;t=s/n;}printf("%f",pi);}一、用选择法对10个整数排序(由大到小).#include <stdio.h>void main(void){ int a[10],i,j,t;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(a[j]>a[j+1])a[j]=a[j+1];a[j+1]=t;}for(i=0;i<10;i++)printf("%6d",a[i]);printf("\n");}二、输入 10个学生的一门课成绩,用一维数组存放其成绩,统计并输出不合格人数及其百分比. #include <stdio.h>void main(void){ int i,count=0;float score[10],percent;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)if(score[i]<60)count++;percent=(float)count/10;printf("%d,%5.1f",count,percent);}三、编程实现N阶方阵转置.#include <stdio.h>void main(){ int a[3][3],b[3][3],i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[j][i]=a[i][j];printf("\n");{ for(j=0;j<3;j++)printf("%4d",b[i][j]);printf("\n");}}一、把输入的一个字符串按逆序从新排序其字符,并输出.#include <stdio.h>#include <string.h>void main(){ char a[80],k;int i,j;gets(a);for(i=0,j=strlen(a)-1;i<j;i++,j--){ k=a[i];a[i]=a[j];a[j]=k;}puts(a);}二、从键盘输入一个字符串.请求分离统计出个中英文大写字母.小写字母.数字.空格.以及其它字符的个数#include <stdio.h>void main(){ int i,a=0,b=0,c=0,d=0,e=0;char q[20];gets(q);for(i=0;q[i]!='\0';i++){if(q[i]>='0'&&q[i]<='9')a++ ;else if(q[i]>='a'&&q[i]<='z')b++;else if(q[i]>='A'&&q[i]<='Z')c++;else if(q[i]==' ')d++;else e++;}printf("%3d%4d%3d%3d%3d",a,b,c,d,e);}三、输入五个英文单词,请找出它们之中按字典排序法排在最前的一个词. #include <stdio.h>#include <string.h>void main(){ char a[5][30],b[30];int i,j,k;for(i=0;i<5;i++)gets(a[i]);for(i=0;i<5;i++){ k=i;strcpy(b,a[i]);for(j=i+1;j<5;j++)if(strcmp(a[j],b)<0){ k=j;strcpy(b,a[j]);}if(k!=i){ strcpy(b,a[i]);strcpy(a[i],a[k]);strcpy(a[k],b);}puts(a[i]);}printf("\n");}一.编写一函数,将字符串中的小写字母转换为大写字母,主函数输入字符串并输出成果.#include <stdio.h>char change (char a[]){ int i;for(i=0;a[i]!='\0';i++)if(a[i]>='a'&&a[i]<='z')a[i]=a[i]-32;}void main(){ char b[80];gets(b);change(b);puts(b);}二.编写一函数求N!.在主函数中输入N,挪用函数求N!,输出成果.#include <stdio.h>int sum(int n){ int i,pi=1;for(i=1;i<=n;i++)pi=pi*i;return(pi);}void main(){ int p=0,n;scanf("%d",&n);p=sum(n);printf("%d\n",p);}三.编写一个函数,求二维数组所有元素的和,请求二维数组的行.列以及数组经由过程函数参数传递,并经由过程主函数挪用求2行3列的数组的所有元素之和.#include <stdio.h>int num(int a[2][3], int n,int m){ int sum=0,i,j;for(i=0;i<n;i++)for(j=0;j<m;j++)sum=sum+a[i][j];return(sum);}void main(){ int a[2][3],i,j;int p=0,n=2,m=3;for(i=0;i<2;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);p=num(a,n,m);printf("%d",p);}一.编写程序,经由过程函数求6 –300以内的素数的和.#include <stdio.h>#include <math.h>void main( ){int i,sum=0;int per(int);for(i=6;i<=300;i++)sum=sum+per(i);printf("SUM=%d\n",sum);}int per(int n){ int k,i;k=sqrt(n);for(i=2;i<=k;i++)if(n%i==0)break;if(i>=k+1)return n;elsereturn 0;}/* 8265*/二.求sin300.+sin600+cos300+cos600之和.(自编sin和cos函数) #include <stdio.h>#include <math.h>void main( ){ float y,x30,x60;float sin1(float);float cos1(float);x30=30*PI/180;x60=60*PI/180;y=sin1(x30)+cos1(x30)+sin1(x60)+cos1(x60);printf("SUM=%f\n",y);}float sin1( float x){ float sum=0,t=x;int i=1,f=1;do{sum=sum+t;i=i+2;f=-f;t=t*f*x*x/(i*(i-1));}while(fabs(t)>1e-6);return sum;}float cos1(float x){ float sum=0,t=1;int i=0,f=1;do{sum=sum+t;i=i+2;f=-f;t=t*f*x*x/(i*(i-1));}while(fabs(t)>1e-6);return sum;}/*SUM=2.608201*/三 .编写函数,求级数S=1+2+3+...n,并在主函数中求:)7654321()654321()54321()4321()321(+++++++++++++++++++++++=y#include <stdio.h>int f(int);void main( ){ float s;s=(float)(f(3)+f(4)+f(5))/(f(5)+f(6)+f(7));printf("SUM=%f\n",s);}int f(int a){int sum=0,i;for(i=1;i<=a;i++)sum=sum+i;return sum;}/* SUM=0.484375*/一、编写一个函数,求一维数组的平均值.最大值.#include <stdio.h>void main( ){int a[5],i,max;void maxave(int w[5],int *p,float *q);float ave=0;for(i=0;i<5;i++)scanf("%d",&a[i]);maxave(a,&max,&ave);printf("MAX=%d,AVER=%f\n",max,ave);}void maxave(int w[5],int *p,float *q){int i;*p=w[0];for(i=1;i<5;i++)if(*p<w[i])*p=w[i];for(i=0;i<5;i++)*q=*q+w[i];*q=*q/5;}二、输入10个数,编写一个函数,按降序对其排序,统计个中大于平均值的数的个数. #include <stdio.h>int sort(int w[],int n);void main( ){ int i,a[10],count=0;for(i=0;i<10;i++)scanf("%d",&a[i]);count=sort(a,10);for(i=0;i<10;i++)。

C语言练习题(带详解答案)

C语言练习题(带详解答案)

1、编程题1.输入2个整数,求两数的平方和并输出。

#include <stdio.h>int main(void){ 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);return 0;}2. 输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。

#include <stdio.h>#define PI 3.14int main(void){ double r ,area , girth;printf("please input r:\n");scanf("%lf",&r);if (r>=0){ area =PI*r*r;girth =2*PI*r ;printf("the area is %.2f\n", area);printf("the girth is %.2f\n", girth);}elseprintf("Input error!\n");return 0;}3、已知函数y=f(x),编程实现输入一个x值,输出y值。

2x+1 (x<0)y= 0 (x=0)2x-1 (x>0)#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.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。

c语言习题及详解答案

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程序,输入一个整数数组,然后使用冒泡排序算法对其进行排序。

c语言经典习题及答案

c语言经典习题及答案

c语言经典习题及答案C语言经典习题及答案C语言是一门广泛应用于计算机科学领域的编程语言,具有简洁、高效的特点。

作为一名学习C语言的学生或者程序员,经典习题的练习是非常重要的。

本文将介绍几个C语言的经典习题,并给出相应的答案。

习题一:编写一个程序,判断一个整数是否为素数。

解答:素数是只能被1和自身整除的整数。

我们可以用一个循环来判断一个数是否为素数。

具体代码如下:```c#include <stdio.h>int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i <= num / 2; i++) {if (num % 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;}```习题二:编写一个程序,输入一个整数n,输出1到n之间所有的完数。

解答:完数是指除了它本身以外的所有因子之和等于它本身的数。

我们可以用一个循环来判断每个数是否为完数。

具体代码如下:```c#include <stdio.h>int isPerfectNumber(int num) {int sum = 0;for (int i = 1; i <= num / 2; i++) {if (num % i == 0) {sum += i;}}if (sum == num) {return 1;} else {return 0;}}int main() {int n;printf("请输入一个整数:");scanf("%d", &n);printf("%d到%d之间的完数有:", 1, n); for (int i = 1; i <= n; i++) {if (isPerfectNumber(i)) {printf("%d ", i);}printf("\n");return 0;}```习题三:编写一个程序,输入一个正整数n,输出n的阶乘。

100个经典C语言编程例子(答案另附)

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语言200道练习题及答案

C语言200道练习题及答案
数组与字符串练习题
一维数组
题目1
题目2
题目3
题目4
求一维数组中的最大值 和最小值。
将一维数组中的元素逆 序存放。
查找一维数组中指定的 元素,并返回其下标。
求一维数组中所有元素 的和。
二维数组
题目5
题目6
求二维数组中所有元素的最大值和最小值 。
将二维数组转置,即行列互换。
题目7
题目8
查找二维数组中指定的元素,并返回其位 置。
C语言200道练习题 及答案
汇报人:XX
目录
• 基础知识练习题 • 数组与字符串练习题 • 函数与模块化练习题 • 指针与内存管理练习题 • 数据结构与算法练习题 • 综合应用练习题
01
基础知识练习题
变量与数据类型
声明整型变量并赋值
int a = 10;
声明字符型变量并赋值
char c = 'A';
代码优化
通过减少不必要的计算、消 除冗余代码等方式对代码进 行优化。
并行计算与多线程
了解并行计算和多线程的基 本概念,探索在程序中应用 并行计算和多线程技术提高 性能的可能性。
THANKS
感谢观看
掌握如何使用malloc()、calloc() 等函数在堆区动态分配内存空间

动态内存释放函数
了解如何使用free()函数释放之前 分配的内存空间,以避免内存泄漏 。
内存分配失败处理
熟悉在动态内存分配过程中,如何 处理分配失败的情况,如检查返回 值是否为NULL等。
05
数据结构与算法练习题
结构体与联合体
01
掌握如何定义指向函数的指针变量,以及如何通过函数指针调
用函数。

C语言经典编程实例100题答案

C语言经典编程实例100题答案

C语言经典编程实例100题答案1. 打印Hello World!#include <stdio.h>int main() {printf("Hello World!");return 0;}2. 计算两个数的和#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个数的和为:%d", sum);return 0;}3. 输入一个数,判断是否为正数、负数或零#include <stdio.h>int main() {int num;printf("请输入一个数:"); scanf("%d", &num);if (num > 0) {printf("正数");}else if (num < 0) {printf("负数");}else {printf("零");}return 0;}4. 判断一个数是否为素数#include <stdio.h>int main() {int num, i, flag = 0;printf("请输入一个数:");scanf("%d", &num);for (i = 2; i <= num / 2; ++i) { if (num % i == 0) {flag = 1;break;}}if (flag == 0)printf("%d是素数", num); elseprintf("%d不是素数", num); return 0;}5. 求斐波那契数列的第n项#include <stdio.h>int fibonacci(int n) {if (n <= 1)return n;return fibonacci(n - 1) + fibonacci(n - 2);}int main() {int n;printf("请输入要求第几项:");scanf("%d", &n);printf("第%d项的值为:%d", n, fibonacci(n));return 0;}6. 判断一个数是否为回文数#include <stdio.h>int main() {int num, reversedNum = 0, remainder, originalNum; printf("请输入一个数:");scanf("%d", &num);originalNum = num;while (num != 0) {remainder = num % 10;reversedNum = reversedNum * 10 + remainder; num /= 10;}if (originalNum == reversedNum)printf("%d是回文数", originalNum);elseprintf("%d不是回文数", originalNum);return 0;}7. 打印九九乘法表#include <stdio.h>int main() {int i, j;for (i = 1; i <= 9; ++i) {for (j = 1; j <= i; ++j) {printf("%d * %d = %d\t", j, i, j * i);}printf("\n");}return 0;}8. 输入一个数,判断是否为偶数#include <stdio.h>int main() {int num;printf("请输入一个数:");scanf("%d", &num);if (num % 2 == 0)printf("偶数");elseprintf("奇数");return 0;}9. 冒泡排序#include <stdio.h>void bubbleSort(int array[], int size) { int i, j, temp;for (i = 0; i < size - 1; ++i) {for (j = 0; j < size - i - 1; ++j) {if (array[j] > array[j + 1]) {temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}}}int main() {int array[] = {5, 2, 8, 12, 1};int size = sizeof(array) / sizeof(array[0]); bubbleSort(array, size);printf("排序后的数组:");for (int i = 0; i < size; ++i) {printf("%d ", array[i]);}return 0;}10. 判断一个数是否为完数#include <stdio.h>int main() {int num, i, sum = 0;printf("请输入一个数:");scanf("%d", &num);for (i = 1; i < num; ++i) {if (num % i == 0) {sum += i;}}if (sum == num)printf("%d是完数", num); elseprintf("%d不是完数", num); return 0;}......(一共100题答案)这些是C语言经典编程实例的部分答案,希望对您有所帮助。

100个经典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 语言经典习题及其答案详解第二章基本数据类型和表达式2.1 单项选择题1.下列字符列中,可以作为“字符串常量”的是()① ABC ②“ABC“ ③‘abc’ ④‘a’ 「解」C 程序中,一个字符率常量是表示一个字符序列,书写时,用双引号字符前后括住这个字符序列。

所以只有“ABC”是一个正确的字符率常量,其余都不是。

其中,ABC 可作为标识符,字符列‘abc’不能出现在C 程序中,‘a’是一个字符常量。

所以解答是②。

2.在以字节存储字符的系统中,‘\n ’在内存占用的字节数是()①1 ②2 ③3 ④4「解」一般来说,一个字符在内存中只占 1 个字节,‘\n’是转义字符,其意义是换行符,它作为一个字符存储,在内存也只占1 个字节。

所以解答是①。

3.字符串“xyz”在内存占用的字节数是()①3 ②4 ③6 ④8「解」字符串中的每个字符占 1 个字节,但 C 程序在存储字符串时,要在后一个有效字符后面接上1 个字符串结束的标记符‘\0’。

这样,存储字符串常量“xyz”需要 4 个字节。

所以解答是②。

4.在以下字符列中,合法的长整型常数是()① 0L ② 4962710 ③ 0.054838743 ④2.1869el0「解」为表示不同范围的整数,整型数据分短整型、基本型和长整型,并对三种整型内部表示的高位的不同理解,又分别分成无符号和带符号两种。

若要明确指明一个整数是长整型的,必须在整数之后接上字符‘L’。

所以0L 是一个长整型的整型常量,而4962710 是基本整型数据,而对于用 2 个字节表示一个基本整型数据的系统来说,该整数将因超出范围而是一个错误的整数;0.054839743 和2.1869el0 都是double 型的实数。

所以解答是①。

5.一个char 型数据,它的值在内存中存放的是()①ASCll 代码值②BCD 代码值③内码值④ 十进制代码值「解」计算机存储字符,通常是存储字符的某种代码值。

C语言题目及答案

C语言题目及答案

目录1.Climb the Taishan Mountain(II)2.Peach3.逆序输出数列4.逆序数5.计算高度6.分解质因数7.输出数字8.Problem B:数字之和9.换零钱10.素数求和11.求阶乘和11.Problem F:求一批正整数中的偶数和12.统计各种字符个数13.求最大公约数14.求最大公约数15.零起点学算法101——统计字母数字等个数16.网站泄密17.老外买瓷砖18.堆瓷砖19.新年大酬宾20.定制瓷砖21.句子比较大小22.鹦鹉学舌3——C语言初学者百题大战之十三23.鹦鹉学舌2——C语言初学者百题大战之十二24.百鸡问题25.零起点学算法89——程序设计竞赛26.零起点学算法89——程序设计竞赛27.Problem A:计算数列和28.找钱问题29.Median30.素月31.输入任意N个数,求和32.多项式求和33.人口问题34.数字菱形Climb the Taishan Mountain(II)Time Limit:1000MS Memory Limit:65536KTotal Submit:753 Accepted:495DescriptionLabor day is coming.Since the holiday is long,Many students are planning to have a tour. The Taishan Mountain is very beautiful, so WangPeng and his classmates want to climb the Taishan Mountain. Mountaineering sports is WangPeng's avocation, so he is very excited. Suddenly, a very amusing idea comes to him. The Taishan Mountain has many stairs, and he can climb the mountain one step by 2 stairs or by 1 stairs. How many ways does he have to climb the mountain? For example, the stairs is 2, he has 2 ways.The first one is the first step by 1 stair, and the next step by 1 stair.And the second way is only one step by 2 stairs.InputThe input is including many test cases. Every line is one test case with a integer number N(N<=40). N is the stairs of the Taishan Mountain.OutputYou should output how many ways WangPeng can climb the mountain, each case output a line.Sample Input123Sample Output123#include<stdio.h>int main(){int n,i,j,a[41];while(scanf("%d",&n)!=EOF){a[0]=1;a[1]=2;{a[i]=a[i-1]+a[i-2];}printf("%d\n",a[n-1]);}}PeachTime Limit:1000MS Memory Limit:65536KTotal Submit:689 Accepted:495DescriptionAlmost all young man know Monkey Sun whose name is Sun Wukong. One day he steals many peaches from the kingdom of heaven. First day, he ate a half of the peaches, then ate another one of the left peaches.The next day, he ate a half of the left peaches, then another one.Until the n-th day ,before he ate he found only one peach. Please help Sun Wukong to calculate how many peaches he took from the kingdom of heaven.InputThe input file contains one or more test cases, each line is the days N(1 < n < 30). OutputFor each test case, output a line indicating the number of peaches Monkey Sun had the first day.Sample Input24Sample Output422#include<stdio.h>int main(){int n,t,i,s;while(scanf("%d",&n)!=EOF){t=1;s=0;{s=(t+1)*2;t=s;}printf("%d\n",t);}}循环练习a+b——C语言初学者百题大战之二十二Time Limit:1000MS Memory Limit:65536KTotal Submit:3739 Accepted:2513Description终于到循环结构了。

C语言经典例题100例

C语言经典例题100例

Tubro C programming for HNCRE 20051题:100个学生一起买小吃,共花钱100元,其中每个大学生花5元,每个中学生花3元,每3个小学生花1元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生为0的解)?程序:main( ){ int a,b,c;for(a=1;a<=20;a++)for(b=1;b<=33;b++){ c=100—a—b;if((20*a+33*b+c/3)= =100)printf(“%d,%d,%d\n”,a,b,c);}getch( );}答案:6种:3,20,77;4,18,78;8,11,81;11,6,83;12,4,84.2题:50个小学生按1至50序号顺时针围成一圈,做出局游戏,老师站在圈外逆时针从最后一个人数起,每数到5时,这人从圈里出来,继续数1,2,3,4,5,数到第5个学生时,他就出局,已出局的位置不再参加记数,直至所有的学生出局为止,问最后一个出局的学生序号是多少号?程序:main(){int i,k,sum,l,t=0;int a[50];clrscr();for(i=1;i<=50;i++)a[i]=1;for(k=1,sum=0,l=0;k<=50;k++){for(i=50;i>0;i--){sum+=a[i];if(sum==5) {sum=0;l++;a[i]=0;}if(l==49) {t=1;break;}}if(t==1)break;}for(i=1;i<=50;i++){if(a[i]==1) printf("%d",i);}getch();}答案:32号3题:50元兑换成5元,2元和1元的计算方法有多少种?程序:main( ){ int x,f,t,n;x=0;f=0;while(f<=10){t=0;while (t<=25){n=50—f*5—T*2;if(n>=o) x++;t++:}f++;}printf(“%d”,x);}答案:1464.A、B、C三个正整数,当满足1/A*A+1/B*B=1/C*C关系时,称为倒勾股数。

c语言入门经典习题答案

c语言入门经典习题答案

c语言入门经典习题答案C语言作为一门经典的编程语言,广泛应用于软件开发、系统编程等领域。

对于初学者来说,通过解决一些经典的C语言习题,可以加深对C 语言语法和编程思想的理解。

以下是一些C语言入门习题及其答案,供学习者参考。

1. 打印“Hello, World!”```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 计算两个整数的和```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("%d + %d = %d\n", a, b, sum);return 0;}```3. 判断一个数是否为素数```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;}```4. 计算圆的面积```c#include <stdio.h>#include <math.h>int main() {double radius, area;printf("请输入圆的半径:");scanf("%lf", &radius);area = M_PI * radius * radius;printf("圆的面积是:%.2f\n", area); return 0;}```5. 求一个数的阶乘```c#include <stdio.h>int factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}int main() {int num, fact;printf("请输入一个整数:");scanf("%d", &num);fact = factorial(num);printf("%d 的阶乘是:%d\n", num, fact);return 0;}```6. 打印九九乘法表```c#include <stdio.h>int main() {for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {printf("%d*%d=%d\t", j, i, i * j); }printf("\n");}return 0;}```7. 字符串反转```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);int len = strlen(str);for (int i = len - 1; i >= 0; i--) {printf("%c", str[i]);}printf("\n");return 0;}```8. 计算数组的平均值```c#include <stdio.h>int main() {int arr[5] = {10, 20, 30, 40, 50};float sum = 0, avg;for (int i = 0; i < 5; i++) {sum += arr[i];}avg = (float)sum / 5;printf("数组的平均值是:%.2f\n", avg);return 0;}```这些习题覆盖了C语言的基础知识点,包括基本的输入输出、条件判断、循环、函数、数组等。

C语言程序设计实例分析30道(含答案)

C语言程序设计实例分析30道(含答案)
#include<stdio.h>
int main()
{
int i,x,y,z;
for(i=100;i<1000;i++)
{
x=i%10;
y=i/10%10;
z=i/100%10;
if(i==(x*x*x+y*y*y+z*z*z))
printf("%d\n",i);
}
return 0;
}
【题目12】:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
【程序分析】:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束,另外打印出即可。
(2)但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n.重复执行第二步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
高于100万元时,超过100万元的部分按1%提成。
从键盘输入当月利润I,求应发放奖金总数?
【程序分析】:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
【程序源代码】:
#include<stdio.h>
int main()
{
double i;
double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
{
int score;
char grade;
printf("请输入分数:");
scanf("%d",&score);
grade=(score>=90)?'A':((score>=60)?'B':'C');

c语言字符串经典例题

c语言字符串经典例题

c语言字符串经典例题含解答共5道当提到经典的C 语言字符串例题时,通常涉及字符串的基本操作、处理、以及一些算法。

以下是其中的5道经典例题及其解答:1. 逆序输出字符串题目:编写一个程序,输入一个字符串,然后逆序输出该字符串。

解答:```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("Enter a string: ");gets(str);printf("Reversed string: ");for (int i = strlen(str) - 1; i >= 0; i--) {printf("%c", str[i]);}return 0;}```2. 统计字符串中的字符个数题目:编写一个程序,输入一个字符串,统计其中字母、数字和其他字符的个数。

解答:```c#include <stdio.h>#include <ctype.h>int main() {char str[100];printf("Enter a string: ");gets(str);int letters = 0, digits = 0, others = 0;for (int i = 0; str[i] != '\0'; i++) {if (isalpha(str[i]))letters++;else if (isdigit(str[i]))digits++;elseothers++;}printf("Letters: %d\n", letters);printf("Digits: %d\n", digits);printf("Other characters: %d\n", others);return 0;}```3. 查找字符串中的子字符串题目:编写一个程序,输入一个主字符串和一个子字符串,判断子字符串是否在主字符串中,并输出匹配位置。

c语言习题及答案

c语言习题及答案

c语言习题及答案一、基础习题1. 编写程序,提示用户输入两个整数,然后计算并输出它们的和。

```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两个整数的和为:%d\n", sum);return 0;}```2. 编写程序,将摄氏温度转换为华氏温度,并输出结果。

转换公式为:华氏温度 = 摄氏温度 × 9/5 + 32。

```c#include <stdio.h>int main() {float celsius, fahrenheit;printf("请输入摄氏温度:");scanf("%f", &celsius);fahrenheit = celsius * 9 / 5 + 32;printf("华氏温度为:%.2f\n", fahrenheit);return 0;}```3. 编写程序,判断一个数是否为素数。

素数是只能被1和自身整除的数。

```c#include <stdio.h>int main() {int num, i, isPrime = 1; // 假设输入的数是素数printf("请输入一个正整数:");scanf("%d", &num);for (i = 2; i <= num / 2; ++i) {if (num % i == 0) {isPrime = 0; // 修改标志变量表示不是素数break;}}if (isPrime == 1)printf("%d 是素数。

c语言习题及答案

c语言习题及答案

【习题1】一、判断并改错1.1 C程序执行的入口是main()函数,所以main函数必须放在程序的开头。

错误:main函数可以放在程序的任何位置。

并不限定在程序的开头。

1.2 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。

错误:不可以交叉出现,数据说明部分在执行语句部分的前面。

1.3 scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。

正确1.4 注释内容太多会影响程序的执行效率。

错误:不会影响程序的执行效率。

因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。

二、编程题2.1 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。

提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f2.2 输入两个整数,输出其中最大者。

提示:模仿例1.3【习题2】一、单项选择题1.1下面四个选项中,均是不合法的用户标识符的选项是(C)。

A)BA、x_0、doB)float、1a0、_YC)x-y、goto、123D)_123、tmp、CHAR1.2下列选项中不正确的常数的选项是(D)。

A)0x12F B)-1.23E-2 C)12.0 D)03881.3下面正确的字符常量是(B)。

A)"a" B)'\\' C)"\n" D)"\376"1.4下面正确的字符串常量是(C)。

A)'a' B)'376' C)"\\n" D)3761.5 表达式'A'+4*25.0-'b'的正确结果是(B )。

A)67 B)67.0 C)不确定 D)67L1.6 执行printf("%x",100);后的输出结果是(C )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、求一个任意边长的矩形面积。

#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);}三、比较两个数的大小。

如果x大于y,则输出:x>y,否则输出:x<y。

#include <stdio.h>void main(){int x,y;scanf("%d,%d",&x,&y);if(x>y)printf("x>y\n");elseprintf("x<y\n");}一、输入a、b、c三个值,按从小到大排序输出。

#include <stdio.h>void main(){int a,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a>b){ t=b;b=a;a=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%3d%3d%3d\n",a,b,c);}.二、求自然数1~10之和。

#include <stdio.h>void main(){int i,sum;i=1;sum=0;while(i<=10){sum=sum+i;i++;}printf("sum=%d\n",sum);}三、输入10个整数,统计出正数之和以及负数之和。

(求奇数之和以及偶数之和)#include <stdio.h>void main(){int sum1=0,sum2=0,i,x;i=1;while(i<=10){ scanf("%d",&x);if(x%2==0)sum1=sum1+x;elsesum2=sum2+x;i++;}printf("sum1=%d\nsum2=%d\n",sum1,sum2);}一、输入一个0~6的整数,转换成星期输出。

#include <stdio.h>main(){ int a;scanf("%d",&a);switch(a){case 0: printf("Sunday");break;case 1: printf("Monday");break;case 2: printf("Tuesday");break;case 3: printf("Wednesday");break;case 4: printf("Thursday");break;case 5: printf("Friday");break;case 6: printf("saturday");break;default: printf("I am sorry.You are wrong.\n");}}.二、输入一个整数,将各位数字反转后输出。

如:输入365,则输出显示为563。

#include <stdio.h>void main(){int x,r;scanf("%d",&x);printf("conver is:");while(x!=0){ r=x%10;printf("%d",r);x=x/10;}printf("\n");}三、输入一个整数,求出它的所有因子。

#include <stdio.h>void main(){int x,i;scanf("%d",&x);for(i=1;i<=x;i++)if(x%i==0)printf("%3d",i);}一、求100 ~ 200之间的素数。

#include <stdio.h>#include <math.h>void main(){int j=0,x,n,i;for(x=100;x<=200;x++){n=sqrt(x);for(i=2;i<=n;i++){ if(x%i==0)break;}if(i>n){printf("%5d",x);j++;}if(j%5==0)printf("\n");}}二、编程输出三角形的9×9乘法表。

#include <stdio.h>void main(){int i,j;for(i=1;i<10;i++){for(j=1;j<=i;j++)printf("%d*%d=%d ",i,j,i*j);printf("\n");}}三、求任意二个数的最大公约数。

#include <stdio.h>main(){ int a,b,m,n,q;scanf("%d%d",&m,&n);a=m; b=n;if(a>b){ int z;z=a;a=b;b=z;}do{ q=b%a;b=a;a=q;}while(q!=0);printf("%d\n",b);}一、利用循环语句求 1217151311-++-+-n (直到第100项的和)。

#include <stdio.h>void main(){ int i,t=1;float s=1,p=0,n=1;for(i=1;i<=100;i++){ p=p+s;n=n+2;t=-t;s=t/n;}printf("%f\n",p);}二、编写求 S=∑=51n n !。

#include <stdio.h>void main(){ int x,y=0,n,i;for(n=1;n<=5;n++){ x=1;for(i=1;i<=n;i++)x=x*i;y=y+x;}printf("%d\n",y);}三、利用公式求 cosx 的近似值(精度为10-6):)!2()1(!6!4!21cos 20642n x x x x x n n n ∑∞=-=-+-= #include <stdio.h>#include <math.h>void main(){ float n=1,t=1,pi=0,s=1,x,i=1;scanf("%f",&x);while(fabs(t)>=1e-6){ pi+=t;n=n*i*(i+1);s=-s*x*x;i++;t=s/n;}printf("%f",pi);}一、用选择法对10个整数排序(由大到小)。

#include <stdio.h>void main(void){ int a[10],i,j,t;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(a[j]>a[j+1]){ t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=0;i<10;i++)printf("%6d",a[i]);printf("\n");}二、输入 10个学生的一门课成绩,用一维数组存放其成绩,统计并输出不及格人数及其百分比。

#include <stdio.h>void main(void){ int i,count=0;float score[10],percent;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)if(score[i]<60)count++;percent=(float)count/10;printf("%d,%5.1f",count,percent);}三、编程实现N阶方阵转置。

#include <stdio.h>void main(){ int a[3][3],b[3][3],i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[j][i]=a[i][j];printf("\n");for(i=0;i<3;i++){ for(j=0;j<3;j++)printf("%4d",b[i][j]);printf("\n");}}一、把输入的一个字符串按逆序重新排序其字符,并输出。

相关文档
最新文档