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语言经典例题和答案
一、求一个随意率性边长的矩形面积.#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语言程序设计课后习题及答案C语言程序设计是计算机科学与技术专业的核心课程之一,它不仅教授了编程语言的基本知识,还培养了学生的逻辑思维能力和问题解决能力。
课后习题是巩固课堂学习内容的重要手段,以下是一些C语言程序设计的典型课后习题及答案。
习题1:基本数据类型编写一个程序,输入一个整数和一个浮点数,然后输出它们的和。
```c#include <stdio.h>int main() {int a;float b, sum;printf("请输入一个整数:");scanf("%d", &a);printf("请输入一个浮点数:");scanf("%f", &b);sum = a + b;printf("它们的和是:%f\n", sum);return 0;}```习题2:条件语句编写一个程序,根据输入的成绩判断学生的等级。
```c#include <stdio.h>int main() {float score;printf("请输入学生的成绩:");scanf("%f", &score);if (score >= 90) {printf("等级:A\n");} else if (score >= 80) {printf("等级:B\n");} else if (score >= 70) {printf("等级:C\n");} else if (score >= 60) {printf("等级:D\n");} else {printf("等级:F\n");}return 0;}```习题3:循环结构编写一个程序,计算1到100的整数之和。
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 )。
C语言例题及课后练习题汇总
1.在屏幕上显示一句话“欢迎学习C语言”。
2.求一个数的平方。
3.输入两个数,输出其中最大数。
4.编写一个C程序,输入三个整数,输出其中最大数。
5.编写一个C程序,从键盘上输入矩形的长和宽,屏幕上显示对应的矩形周长和面积。
6. 编写一个C程序,输出9的阶乘的结果。
7.从键盘输入一个大写字母,输出其对应的小写字母。
8.用条件运算符实现:输入一个英文字母,如输入小写字母,输出其对应的大写形式,如输入大写字母,则原样输出。
9. 编程题:从键盘输入三个数a、b、c,输出平均值aver。
10. 计算工资税额。
有一种工资纳税制度的规定为:如果工资超过50000元,缴纳的税额为工资总额的50%;如果工资超过10000元,纳税比例为工资总额的30%;如果工资超过7000元,纳税比例为工资总额的20%;如果工资超过5000元,纳税比例为工资总额的10%;如果工资少于等于5000元,不需纳税。
设计一个程序,按照工资数额算出需要缴纳的税额。
11.由键盘输入一个字符,判断是数字、英文字母还是其他字符。
用if语句实现。
12. 由键盘输入一个成绩,然后输出相应的等级“优”、“良”、“中”、“及格”、“不及格”。
13. 从键盘输入1~7之间的数字,输出表示一个星期中对应的某一天的英文单词。
14. 计算器程序。
用户输入运算数和四则运算符,输出计算结果。
15.输入两个数,判断两个数的关系是“大于”、“等于”或者“小于”,并输出结果。
16.从键盘任意输入三个数,按照从小到大顺序输出。
17.编写程序判断输入的一个正整数是否既是5又是7的倍数。
若是,则输出yes;若否,则输出no。
18. 用while循环输出1+2+…+100的结果。
19. 从键盘输入整数n,求1+2+…+n的结果并输出。
20. 求水仙花数。
如果一个三位数的百位数、十位数和个位数的立方和等于这个数,那么这个数就被称为水仙花数。
21. 求2+4+…+100的结果并输出。
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语言程序设计教程课后题及模拟题参考答案
main()
{ int x,y;
scanf(“%d,%d”,&x,&y);
if (x*x+y*y>1000)
printf(“%d\n”,(x*x+y*y)/100);
else
printf(“%d\n”,x+y);
}
3.输入一个整数,判断它能否同时被3、5、7整除,并输出“yes”或“no”字样。
a1=a%10 ; a=a/10;
a2=a%10; a=a/10;
a3=a%10;
printf(“%d%d%d\n”, a1, a2, a3);
}
4.编写程序,读入3个double型数据,求它们的平均值,保留此平均值小数点后1位数,对小数点后第2位数进行四舍五入,最后输出结果。
#include "stdio.h"
7. (1)10,6,4 (2)6,9,15 (3)3,60,83
8. 55
习题3
3
1-5BDABC6-10ADCAC 11-12BB
3
1.3
2.0261
3.0x10
4. 2, 1互换a,b的值
5.6.6
6.–003
8.7
7.5.0,4,c=3<Enter>
8.i=10,j=20<Enter>
9.(1) 65
#include "stdio.h"
main()
{ float a, b, h, s;
a=10;b=20;
h=5;s=(a+b)*h/2;
printf("s=%f\n" , s );
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道练习题及答案
一维数组
题目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
掌握如何定义指向函数的指针变量,以及如何通过函数指针调
用函数。
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.程序分析:请利用数轴来分界,定位。
(word完整版)C语言程序设计课后习题1-8参考答案
C语言程序设计课后习题1—8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。
运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。
数据运算包括算术运算和逻辑运算。
控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的.存储器是计算机中具有记忆能力的部件,用来存放程序和数据.输入设备是用来输入程序和数据的部件。
输出设备正好与输入设备相反,是用来输出结果的部件。
2、简述计算机的工作原理。
答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。
整个过程由控制器进行控制。
3、计算机软件系统分为哪几类?答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。
系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。
这类软件一般与具体应用无关,是在系统一级上提供的服务。
系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。
另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。
在操作系统的基础上运行。
4、什么叫软件?说明软件与硬件之间的相互关系。
答:软件是指计算机程序及有关程序的技术文档资料。
两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。
在不太严格的情况下,认为程序就是软件。
硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作.在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。
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语言经典例题100例
==============================================================
【程序3】
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{
printf("%-5d",n);
}
}
printf("\n");
}
==============================================================
k[n]=i;
}
}
if(s==0)
{
printf("%d is a wanshu",j);
}
}}
==============================================================
【程序10】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;
C语言经典练习题50道(附答案)
1.**打印Hello World**练习:编写一个C程序,打印"Hello,World!"到屏幕上。
#include<stdio.h>int main(){printf("Hello,World!\n");return0;}2.**计算两个整数的和**练习:编写一个程序,接受两个整数,然后计算它们的和并打印结果。
#include<stdio.h>int main(){int a=5,b=7;int sum=a+b;printf("Sum:%d\n",sum);return0;}3.**判断奇数或偶数**练习:编写一个程序,接受一个整数,然后判断它是否为奇数或偶数。
#include<stdio.h>int main(){int num=10;if(num%2==0){printf("%d is even.\n",num);}else{printf("%d is odd.\n",num);}return0;}4.**计算阶乘**练习:编写一个程序,计算给定整数的阶乘。
#include<stdio.h>int main(){int n=5;int factorial=1;for(int i=1;i<=n;i++){factorial*=i;}printf("Factorial of%d is%d\n",n,factorial);return0;}5.**反转字符串**练习:编写一个程序,接受一个字符串,然后反转它并打印出来。
#include<stdio.h>#include<string.h>int main(){char str[]="Hello,World!";int len=strlen(str);for(int i=len-1;i>=0;i--){printf("%c",str[i]);}printf("\n");return0;}6.**检查素数**练习:编写一个程序,判断一个整数是否为素数。
C语言程序设计部分习题及例题参考程序
C语言程序设计部分习题及例题参考程序《C语言程序设计》部分例题及课后习题参考程序1.编程计算如下分段函数:y={2x+3x≥10 4x0≤x<10 5x?6x<0[参考程序]#include <>int main(){float x,y;printf("input x:"); scanf("%f",&x);if(x>=10)y=2*x+3;else if(x>=0)y=4*x;elsey=5*x-6;printf("y=%.2f\n",y);}2.编程将从键盘输入的百分制成绩转换为等级分,转换方法如下:90以上(大于或等于90,下同)为A,80分以上为B,70分以上为C,60分以上为D,60分以下,即低于60分为E。
[参考程序]#include <>int main(){float score;char rank;printf("input a score:");scanf("%f",&score);if(score>100||score<0){printf("invalid score input\n");exit(-1);}switch((int)score/10){case 10:case 9:rank='A';break;case 8:rank='B';break;case 7:rank='C';break;case 6:rank='D';break;default:rank='E';}printf("%.2f:%c\n",score,rank);return 0;}3.编程判断以从键盘输入的三个数为边长,是否能构成三角形。
C语言课后习题答案(最终)
C语言课后习题答案(最终)第0章习题1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数:(1)128 (2)511 (3)1024 (4)65535 (5)1048575 答:(1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400(4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF2. 将下列二进制数转化为十进制数和十六进制数:(1)1100110101B (2)101101.1011B 答:(1)821、335 (2)45.6875、2D.B3. 写出下列数的原码、反码、补码:15、-20、-27/32 答:(1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.00101004. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少?答:5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。
答:结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。
如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么?答:0~65535、-128~127、-32768~32767C语言程序属于应用程序,程序代码本身存放在应用程序区,程序运行时处理的数据存计算机的内存空间主要分为3个区:系统程序区、应用程序区和数据区,其中数据区放在应用程序数据区。
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语言练习题(带详解答案)
一、编程题1.输入2个整数,求两数的平方和并输出。
#include<stdio.h>intmain(void){intta,b,s;printf("pleaseinputa,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("theresultis%d\n",s);return0;}2.输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
#include<stdio.h>#definePI3.14intmain(void){doubler,area,girth;printf("pleaseinputr:\n");scanf("%lf",&r);if(r>=0){area=PI*r*r;girth=2*PI*r;printf("theareais%.2f\n",area);printf("thegirthis%.2f\n",girth);}elseprintf("Inputerror!\n");return0;}3、已知函数y=f(x),编程实现输入一个x值,输出y值。
2x+1(x<0)y=0(x=0)2x-1(x>0)#include<stdio.h>voidmain(){intx,y;scanf(“%d”,&x);if(x<0)y=2*x+1;elseif(x>0)y=2*x-1;elsey=0;printf(“%d”,y);}4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥,90等级为A;80≤score<9,0等级为B;70≤score<8,0等级为C;60≤score<7,0等级为D;score<60,等级为E。
C语言经典编程练习题和答案详解入门必备
C语⾔经典编程练习题和答案详解⼊门必备【程序1】题⽬:有1、2、3、4个数字,能组成多少个互不相同且⽆重复数字的三位数?都是多少?1.程序分析:可填在百位、⼗位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满⾜条件的排列。
2.程序源代码:#include “stdio.h”#include “conio.h”main(){inti,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);}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;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; elsebonus=bonus10+(i-1000000)*0.01;printf(“bonus=%d”,bonus);getch();}【程序3】题⽬:⼀个整数,它加上100后是⼀个完全平⽅数,再加上168⼜是⼀个完全平⽅数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开⽅,再将该数加上268后再开⽅,如果开⽅后的结果满⾜如下条件,即是结果。
c语言题库及详解答案
c语言题库及详解答案C语言是一门广泛应用的编程语言,以其强大的功能和灵活性而受到程序员的青睐。
下面,我将提供一些常见的C语言题目及其详解答案,以帮助学习者更好地理解和掌握C语言。
1. 基础语法题题目:编写一个C程序,输出“Hello, World!”。
答案:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 变量和数据类型题题目:声明一个整型变量`a`,赋值为10,并打印其值。
答案:```c#include <stdio.h>int main() {int a = 10;printf("%d\n", a);return 0;}```3. 条件语句题题目:编写一个程序,判断一个整数是否为偶数,并打印相应的信息。
答案:```c#include <stdio.h>int main() {int num;printf("Enter an integer: ");scanf("%d", &num);if (num % 2 == 0) {printf("%d is even.\n", num);} else {printf("%d is odd.\n", num);}return 0;}```4. 循环语句题题目:使用for循环打印1到10的整数。
答案:```c#include <stdio.h>int main() {for (int i = 1; i <= 10; i++) {printf("%d ", i);}printf("\n");return 0;}```5. 数组题题目:编写一个程序,找出一个整数数组中的最大值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.在屏幕上显示一句话“欢迎学习C语言”。
2.求一个数的平方。
3.输入两个数,输出其中最大数。
4.编写一个C程序,输入三个整数,输出其中最大数。
5.编写一个C程序,从键盘上输入矩形的长和宽,屏幕上显示对应的矩形周长和面积。
6. 编写一个C程序,输出9的阶乘的结果。
7.从键盘输入一个大写字母,输出其对应的小写字母。
8.用条件运算符实现:输入一个英文字母,如输入小写字母,输出其对应的大写形式,如输入大写字母,则原样输出。
9. 编程题:从键盘输入三个数a、b、c,输出平均值aver。
10. 计算工资税额。
有一种工资纳税制度的规定为:如果工资超过50000元,缴纳的税额为工资总额的50%;如果工资超过10000元,纳税比例为工资总额的30%;如果工资超过7000元,纳税比例为工资总额的20%;如果工资超过5000元,纳税比例为工资总额的10%;如果工资少于等于5000元,不需纳税。
设计一个程序,按照工资数额算出需要缴纳的税额。
11.由键盘输入一个字符,判断是数字、英文字母还是其他字符。
用if语句实现。
12. 由键盘输入一个成绩,然后输出相应的等级“优”、“良”、“中”、“及格”、“不及格”。
13. 从键盘输入1~7之间的数字,输出表示一个星期中对应的某一天的英文单词。
14. 计算器程序。
用户输入运算数和四则运算符,输出计算结果。
15.输入两个数,判断两个数的关系是“大于”、“等于”或者“小于”,并输出结果。
16.从键盘任意输入三个数,按照从小到大顺序输出。
17.编写程序判断输入的一个正整数是否既是5又是7的倍数。
若是,则输出yes;若否,则输出no。
18. 用while循环输出1+2+…+100的结果。
19. 从键盘输入整数n,求1+2+…+n的结果并输出。
20. 求水仙花数。
如果一个三位数的百位数、十位数和个位数的立方和等于这个数,那么这个数就被称为水仙花数。
21. 求2+4+…+100的结果并输出。
22. 用for循环输出1+2+…+100的结果。
23. 计算Fibonacci数列的前30项,并输出。
24. 求具有abcd=(ab+cd)2性质的四位数。
比如:3025具有这样的性质,将它平分成两段30和25,然后加和取平方值,即 (30+25)2,恰好等于3025本身。
请求出这种性质的全部四位数。
25. 编程题:求100+99+…+1的结果并输出。
26.编程题:从键盘输入一个值,统计1到这个数之间不能被3整除的数的个数,并输出这些数。
27. 从键盘输入一个数n,判断n是否是素数。
28. 统计1~50之间不能被3整除的数的个数并输出这些数字。
29. 输出下列图形。
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
30. 输出3~100的所有素数。
31. 编程题:输出如下的九九表:
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 2
4 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81 提示:外循环变量n 从1~9 ,内循环变量m 从1~9,内循环体是输出n*m 的值。
32. 从键盘输入一个整数m ,判断其是否为素数。
33. 计算5020
111k k k k
==+∑∑的结果。
计算1!+2!+…+10! 的结果。
用循环的嵌套输出如下图形:
*
* * *
* * * * *
* * * * * * * *
* * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
35. 将数字1~10放入一个整型数组,再逆序输出。
36. 编写程序,依次将数字1、3、5、7、…、17、19放入一个整型数组,并逆序输出数组。
37. 编写一个C 程序,从键盘输入10个整数并保存到数组中,求该10个整数的最大值、
最小值及平均值。
38.编写程序,用二维数组存放以下矩阵,并输出。
1 0 0 0 1
0 1 0 1 0
0 0 1 0 0
0 1 0 1 0
1 0 0 0 1
39. 写一个函数void change(int array[],int n),可以将数组array中的n个元素逆序存放。
即array[0]与array[n-1]互换,array[1]与array[n-2]互换……。
40. 编写一个函数string_search(char str[],char c),如果字符串中包含字符c,则返回值1,否则返回值0,并验证。
41. 编写一个函数string_delete(char str[],char c),功能是删除字符串中所有的字符变量c(例如字符串“delete”删除所有的“e”,则字符串变为“dlt”),并验证。
42. 编写一个判断素数的函数,在主函数中输入一个整数,输出其是否是素数的信息。
43. 编写一个函数,用于接收用户输入的五个小数,并计算这五个数的平均值,最后将计算结果返回。
在main 函数中调用该函数,并输出结果,要求输出的平均值精确到两位小数。
44. 计算s=12!+22!+32! +42!。
45. 判别一个整型数组中各元素的值,若大于0 则输出该值,若小于等于0则输出0值(编写自定义函数)。
46. 数组a中存放了一个学生5门课程的成绩,求平均成绩(编写自定义函数)。
47. 输入正方体的长、宽、高:legth、width、heignt。
求体积volume及三个面的面积(area1=x*y、area2=x*z、area3=y*z)。
48. 编写一个函数double fun(int n),当n为偶数时,调用函数fun求1/2+1/4+...+1/n 的值,当n为奇数时,调用函数fun求1/1+1/3+...+1/n的值。
在主函数中输入n的值,调用函数fun,并输出结果。
49. 一个函数int prime(int x),如果x是素数返回值为1,否则返回0。
并用主函数验证它。
50. 用递归算法编写求Fibonacci数列第n项值的函数fib(int n),并用主函数输出它的前20项来验证该函数。
51. 编写一个程序,求三个数中的最大数,要求用带参数的宏实现。
52. 编程将用户输入的一个字符串中的大小写字母互换,即大写字母转换为小写字母,小写字母转换为大写字母。
要求定义判断是大写、小写字母的宏以及大小写相互转换的宏。
53. 求数组元素之和(用指针完成)。
54. 编写一个程序计算一个字符串的长度。
55. 设有一数列,包含10个数,已按升序排好。
现要求编一程序,它能够把从指定位置开始的n个数按逆序重新排列并输出新的完整数列。
进行逆序处理时要求使用指针方法。
试编程。
(例如:原数列为2,4,6,8,10,12,14,16,18,20,若要求把从第4个数开
始的5个数按逆序重新排列,则得到新数列为2,4,6,16,14,12,10,8,18,20。
)56.编写一程序,从键盘输入10个数存入数组data[10]中,同时设置一个指针变量p指向数data,然后通过指针变量p对数组按照从小到大的顺序排序,最后输出其排序结果。
第1章 C语言概述
2。