50道C++编程练习题及解答

合集下载

C语言50道例题答案

C语言50道例题答案

50道C语言例题答案1.键盘上输入n个数,输出最大值最小值.# include <stdio.h># define M 30main(){ int a[M],n,i,max,min;printf("请输入n(n<%d):",M);scanf("%d",&n);printf("请输入这%d个数:\n",n);for(i=0;i<n;i++)scanf("%d",&a[i]);max=min=a[0];for(i=0;i<n;i++){if(a[i]>max)max=a[i]; }for(i=0;i<n;i++){if(a[i]<min)min=a[i]; }printf("这%d个数中最大的数为:%d\n",n,max);printf("这%d个数中最小的数为:%d\n",n,min);}2. 求这样一个三位数,该三位数等于其每位数字的阶乘之和。

#include<stdio.h>int fab(int n){ int i,j=1;for(i=1;i<=n;i++)j=j*i;return j;}main(){ int i,s1,s2,s3;for(i=100;i<999;i++){s1=i/100;s2=(i-s1*100)/10;s3=i%10;if(i==(fab(s1)+fab(s2)+fab(s3)))printf("the number is:%d\n",i);}}3.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

# include <stdio.h>main(){ int n;float t=0 ,s=2,k=1,m;for(n=1;n<=20;n++){ t=t+s/k;m=s; s=s+k;k=m;}printf("%f\n",t);}4.输入整数N,求N的阶乘# include <stdio.h>main(){int n,i,s=1;printf("请输入您要计算的数n:");scanf("%d",&n);for(i=1;i<=n;i++)s=s*i;printf("%d!=%d\n",n,s);}5.输入一串正整数,倒序输出# include <stdio.h># define M 100main(){ int i,j;char a[M];printf("请输入一列数字:\n");for(i=0;i<M;i++){scanf("%c",&a[i]);if(a[i]=='\n')break;}printf("则该列数字倒序输出为:");for(j=i;j>=0;j--)printf("%c",a[j]);printf("\n");}6. 求100~100000之间所有数字之和为5的整数的个数# include <stdio.h>main(){ long int i,a1,a2,a3,a4,a5,j=0;for(i=100;i<100000;i++){ a1=i/10000;a2=(i-a1*10000)/1000;a3=(i-a1*10000-a2*1000)/100;a4=(i-a1*10000-a2*1000-a3*100)/10;a5=i-a1*10000-a2*1000-a3*100-a4*10;if(a1+a2+a3+a4+a5==5)j=j+1; }printf("整数100至100000之间所有数字之和为5的整数的总个数为:%ld\n",j);}7. 输入字符串,打印除小写元音字母之外的。

C语言编程题经典40题(附解答)

C语言编程题经典40题(附解答)
字符串
字符串在C语言中通常表示为字符数组。可以通过字符数组来存储和操作字符串。字符串的常用函数 包括strcpy()、strcat()、strlen()等。
03
进阶题目
函数与递归
总结词
理解函数定义、参数传递、递归调用等概念,掌握函数的使用方法。
题目1
编写一个函数,判断一个整数是否为素数。
题目2
编写一个函数,计算斐波那契数列的第n项。
培养逻辑思维
C语言强调结构化和严谨 的编程风格,学习C语言 有助于培养逻辑思维和问 题解决能力。
为什么选择这40道题目
经典题目
精选的40道题目均来自经典的C语言题目库,具有较高的代表性和难 度。
覆盖面广
题目涵盖了C语言的主要知识点,包括数据类型、控制结构、函数、 指针等,有助于全面提升编程能力。
难度适中
实现二叉树的基本操作(创建、插 入、删除、遍历)
题目12
实现堆排序算法
04
THANKS
感谢观看
01
02
文件打开
使用fopen()函数打开文件,并返回一 个FILE类型的指针。
03
文件读取
使用fscanf()、fgets()等函数从文件中 读取数据。
文件关闭
使用fclose()函数关闭文件。
05
04
文件写入
使用fprintf()、fputs()等函数将数据写 入文件。
动态内存分配
总结词
动态内存分配允许程序员在运行时根 据需要分配或释放内存,提高了程序 的灵活性和可扩展性。
数组与字符串
01
理解数组的概念和使用方法
02
掌握字符串的存储和操作
03
熟悉数组和字符串的常用函数

c编程试题及答案

c编程试题及答案

c编程试题及答案1. 请写出C语言中声明一个整型变量的语句。

答案:int a;2. 在C语言中,如何定义一个函数?答案:返回类型函数名(参数列表) {// 函数体}3. 请解释C语言中的指针是什么?答案:指针是一种特殊的变量,其存储的是另一个变量的内存地址。

4. 在C语言中,如何使用指针来交换两个变量的值?答案:```cvoid swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}```5. 请写出C语言中数组的定义方式。

答案:类型数组名[数组大小];6. 在C语言中,如何使用循环来遍历数组?答案:```cfor (int i = 0; i < 数组大小; i++) {// 访问数组元素:数组名[i]}```7. 请解释C语言中的结构体是什么?答案:结构体是一种用户自定义的数据类型,它允许将不同的数据类型组合成一个单一的数据结构。

8. 如何在C语言中定义一个结构体?答案:```cstruct 结构体名 {类型成员1;类型成员2;// ...};```9. 在C语言中,如何声明一个结构体变量?答案:```cstruct 结构体名变量名;```10. 请解释C语言中的文件操作。

答案:C语言提供了一系列的函数来实现文件的打开、读取、写入和关闭。

11. 如何在C语言中打开一个文件?答案:```cFILE *fp;fp = fopen("文件路径", "模式");```其中,"模式"可以是"r"(只读)、"w"(只写)、"a"(追加)等。

12. 在C语言中,如何读取文件中的数据?答案:```cint c;while ((c = fgetc(fp)) != EOF) {// 处理字符 c}```13. 如何在C语言中写入数据到文件?答案:```cfputc('字符', fp);```14. 在C语言中,如何关闭一个文件?答案:fclose(fp);15. 请写出C语言中使用条件语句的格式。

c编程练习题(打印版)

c编程练习题(打印版)

c编程练习题(打印版)C语言编程练习题一、基础练习1. 编写一个程序,计算并输出两个整数的和、差、乘积和商。

提示:使用scanf函数输入两个整数,使用算术运算符进行计算。

2. 编写一个程序,计算并输出一个圆的面积。

提示:圆的面积公式为A = π * r * r,其中 r 是圆的半径。

3. 编写一个程序,计算并输出一个矩形的周长和面积。

提示:矩形的周长公式为 P = 2 * (l + w),面积公式为 A = l * w,其中 l 是长度,w 是宽度。

4. 编写一个程序,判断一个整数是奇数还是偶数。

提示:使用模运算符 % 来判断。

二、控制结构练习1. 编写一个程序,根据用户输入的分数,输出对应的等级。

提示:90分以上为 A,80-89分为 B,70-79分为 C,60-69分为D,60分以下为 F。

2. 编写一个程序,实现简单的猜数字游戏。

提示:程序随机生成一个1到100之间的整数,用户输入猜测的数字,程序根据用户输入给出提示(太高、太低或正确)。

3. 编写一个程序,实现一个简单的计算器。

提示:程序提示用户输入运算符(+、-、*、/)和两个操作数,然后输出计算结果。

三、数组练习1. 编写一个程序,实现对一个整数数组的排序。

提示:可以使用冒泡排序、选择排序或插入排序算法。

2. 编写一个程序,找出一个字符串数组中最长的字符串。

提示:遍历字符串数组,比较每个字符串的长度。

3. 编写一个程序,实现字符串的反转。

提示:可以使用数组的索引特性来实现。

四、函数练习1. 编写一个函数,计算一个数的阶乘。

提示:使用递归或循环来实现。

2. 编写一个函数,实现字符串的复制。

提示:不使用库函数,手动复制字符串。

3. 编写一个函数,判断一个字符串是否为回文字符串。

提示:回文字符串是指正读和反读都一样的字符串。

五、指针练习1. 编写一个程序,使用指针交换两个整数的值。

提示:注意指针变量的赋值和解引用。

2. 编写一个程序,实现字符串的连接。

C语言编程题及答案(精心整理)

C语言编程题及答案(精心整理)

)(*)(*)(*c s b s a s s ---C 语言编程题1.(*)求分数序列:1/2,2/3,3/5,5/8,8/13,13/21...... 前20项的和。

main(){float i=1,j=2,t=0,s,n,m;for(n=1;n<=20;n++)s=i/j,m=i,i=j,j=m+j,t=t+s;printf("t=%f",t);}2.(*)从键盘输入一个字符串,再将其逆序输出。

(如:输入abcde ,输出edcba ) main(){int i;char c[10];scanf("%s",c);for(i=9;i>=0;i--)printf("%c",c[i]);}3.(*)已知abc+cba=1333,其中a 、b 、c 均为一位数,例如:617+716=1333, 518+815=1333, 试编程求出符合这一规律的a 、b 、c ,并输出结果。

main(){int a,b,c,x,y;for(a=1;a<=9;a++)for(b=0;b<=9;b++)for(c=1;c<=9;c++){ x=100*a+10*b+c;y=100*c+10*b+a;if(x+y==1333)printf("x=%d,y=%d",x,y);}}4.(*)利用海伦公式求三角形面积,三边长a,b,c 由键盘输入。

若输入的三边长不能构成 三角形,输出相应提示信息。

海伦公式如下:其中s=(a+b+c)/2三角形面积= #include"math.h"main(){ float a,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));if(a+b>c&&a+c>b&&b+c>a)printf("area=%f",area);else.1 .printf("no");}5.(*)编程求出1!+2!+3!+…+8!+9!+10!的值并输出。

50道C++编程练习题及解答

50道C++编程练习题及解答

50道C/C++编程练习题1、输入3个数,求最大值int main(){ int a,b,c,m;cin>>a>>b>>c;m=a;if(b>m) m=b;if(c>m) m=c;cout<<m;}2、编程序,求方程ax2+bx+c=0的根#include<iostream>#include<cmath>using namespace std;int main(){double a,b,c,d,x1,x2;cin>>a>>b>>c;if(a==0)if(b==0) cout<<"error\n";else cout<< "x="<<-c/b<<endl;else{ d=b*b-4*a*c;if(fabs(d)<=1e-6)cout<<"x1=x2="<<-b/(2*a)<<endl;else if(d>1e-6){ x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);cout<<"x1="<<x1<<",x2="<<x2<<endl; }else cout<<"方程无实根\n";}}3、输入一个成绩,打印相应的等级int main(){ int a;cin >> a;if(a>=90) cout<<"A";else if(a>=80) cout<<"B";else if(a>=70) cout<<"C";else if(a>=60) cout<<"D";else cout<<"E";} 4、输入3个double类型的值,判断这3个值是否可以表示一个三角形的三条边。

C语言经典编程100题(答案版)

C语言经典编程100题(答案版)

C语言经典程序100题(答案版)【程序1】题目:企业发放的奖金根据利润提成。

利润(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.程序源代码:1.#include"stdio.h"2.#include"conio.h"3.main()4.{5.long int i;6.int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;7.scanf("%ld",&i);8.bonus1100000*0.1;9.bonus2bonus1+100000*0.75;10.bonus4bonus2+200000*0.5;11.bonus6bonus4+200000*0.3;12.bonus10bonus6+400000*0.15;13.if(i<100000)14.bonus i*0.1;15.else if(i<200000)16.bonus bonus1+(i-100000)*0.075;17.else if(i<400000)18.bonus bonus2+(i-200000)*0.05;19.else if(i<600000)20.bonus bonus4+(i-400000)*0.03;21.else if(i<1000000)22.bonus bonus6+(i-600000)*0.015;23.else24.bonus bonus10+(i-1000000)*0.01;25.printf("bonus%d",bonus);26.getch();27.}【程序2】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

50道C和和编程练习题及解

50道C和和编程练习题及解

50道C和和编程练习题及解50道C语言编程练习题及解在学习和掌握C语言编程过程中,通过练习题可以提高自己对语法规则和编程思维的理解。

下面是50道C语言编程练习题及解,希望能对大家的学习有所帮助。

1. 编写一个程序,输出"Hello, World!"。

```c#include <stdio.h>int main() {printf("Hello, World!");return 0;}```2. 编写一个程序,计算并输出1到100之间所有数字的和。

```c#include <stdio.h>int main() {int sum = 0;for(int i = 1; i <= 100; i++) {sum += i;}printf("Sum: %d", sum);return 0;}```3. 编写一个程序,判断一个数字是否为奇数。

```c#include <stdio.h>int main() {int num;printf("Enter a number: ");scanf("%d", &num);if(num % 2 == 0) {printf("Even number");} else {printf("Odd number");}return 0;}```4. 编写一个程序,找出数组中的最大值。

```c#include <stdio.h>int findMax(int arr[], int size) {int max = arr[0];for(int i = 1; i < size; i++) {if(arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {23, 45, 12, 67, 89};int size = sizeof(arr) / sizeof(arr[0]);int maxValue = findMax(arr, size);printf("Max value: %d", maxValue);return 0;}```5. 编写一个程序,判断一个字符串是否为回文串。

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语言程序试题及答案

基础的c语言程序试题及答案

基础的c语言程序试题及答案基础的C语言程序试题及答案1. 题目:编写一个C语言程序,计算并输出1到100之间所有奇数的和。

答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 != 0) {sum += i;}}printf("1到100之间所有奇数的和为:%d\n", sum);return 0;}```2. 题目:编写一个C语言程序,实现一个简单的计算器,能够进行加、减、乘、除运算。

答案:```c#include <stdio.h>int main() {double num1, num2;char operator;double result;printf("请输入第一个数字:");scanf("%lf", &num1);printf("请输入运算符(+,-,*,/):"); scanf(" %c", &operator);printf("请输入第二个数字:");scanf("%lf", &num2);switch (operator) {case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':if (num2 != 0) {result = num1 / num2;} else {printf("除数不能为0\n");return 1;}break;default:printf("无效的运算符\n");return 1;}printf("%.2lf %c %.2lf = %.2lf\n", num1, operator, num2, result);return 0;}```3. 题目:编写一个C语言程序,实现字符串的反转。

C语言经典练习题50道(附答案)

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 语言练习题(所提供的源程序均采用自定义函数方式解决,如不采用函数方式,也可直接在main 函数中借鉴该思想编程,因时间有限,所有程序未能一一验证,仅供参考使用) 1、定义一个函数 int fun(int a,int b,int c),它的功能是:若 a,b,c 能构成等边三角形函数返回 3,若能构成等腰三角形函数返回 2,若能构成一般三角形函数返回 1,若不能构成三角形函数返回 0。

#include <stdio.h>int fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。

#include <stdio.h>void fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。

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

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

一、编程题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语言编程50题(含答案)

计算机系C语言编程50题(含答案)

1、输入1~10之间的一个数字,输出它对应的英文单词。

#include"stdio.h"main(){int x;printf("please input x(1-10):\n");scanf("%d",&x);switch(x){case 1:printf("one");break;case 2:printf("two");break;case 3:printf("three");break;case 4:printf("four");break;case 5:printf("five");break;case 6:printf("six");break;case 7:printf("server");break;case 8:printf("eight");break;case 9:printf("nine");break;case 10:printf("ten");break;}}2、用自然语言描述程序逻辑如下,试写程序。

①设置环境;②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0;③i=1;④如果i≤100,则转⑤,否则转⑧;⑤令s=0,求前i个自然数之和,并放于变量s之中;⑥sum=sum+s;⑦i增加1,转④;⑧输出和sum,结束。

#include"stdio.h"main(){int i,j,s;long sum=0;for(i=1;i<=100;i++){s=0;for(j=1;j<=i;j++){s=s+j;}sum=sum+s;}printf("sum=%d",sum);}3、用自然语言描述的程序逻辑为:(假设正确口令为123456)①设置环境;②定义变量i、flag和password,并令flag=0,i=0;③用户回答口令,将其赋于password变量;④口令正确?如果是,则flag=1,转⑥。

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>int factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d 的阶乘是:%d\n", num, factorial(num)); return 0;}```3. 编写一个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 是素数。

c语言程序基础练习题500道(附答案)

c语言程序基础练习题500道(附答案)

1.下列四组选项中,均不是C语言关健字的选项是( A )。

A) define B) gect C) include D) whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。

A)160 B)-0xcdf C) -01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x3.下面四个选项中,均是不合法的转义符的选项是( B )。

A) '\"' B) '\1011' C) '\011' D) '\abc''\\' '\' '\f' '\101''xf' '\A' '\}' 'x1f'4.下面不正确的字符串常量是( A )。

A)'abc' B)"12'12" C)"0" D)" "5.以下选项中不合法的用户标识符是( A )。

A)abc.c B)file C)Main D)PRINT6.C语言提供的合法关键字是( D )。

A) swithB) cherC) CaseD)default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del-word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真"的表示是用( C )。

A) true B) 整型值0 C)非另整型值D) T9若有以下定义char s='\092';则该语句( b )A)使s的值包含一个字符B)定义不合法,s的值不确定C)使s的值包含4个字符D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。

C语言编程练习题附答案

C语言编程练习题附答案

C语言编程练习题附答案1.从键盘输入20个整数,使用冒泡排序将它们从大到小排列并输出。

includeint main() {int a[20]。

i。

j。

t;printf("请任意输入20个整数\n");for (i = 0.i < 20.i++)scanf("%d"。

&a[i]);printf("\n");for (i = 0.i < 19.i++)for (j = 0.j < 19 - i。

j++)if (a[j] < a[j + 1]) {t = a[j];a[j] = a[j + 1];a[j + 1] = t;printf("按照从大到小的顺序排列为\n");for (i = 0.i < 20.i++)printf("%d,"。

a[i]);printf("\n");return 0;2.从键盘输入20个整数,使用选择排序将它们从大到小排列并输出。

includedefine N 20int main() {int a[N]。

i。

j。

max。

k;printf("请任意输入20个整数\n");for (i = 0.i < N。

i++)scanf("%d"。

&a[i]);printf("\n");for (i = 0.i < N - 1.i++) {k = i;for (j = i + 1.j < N。

j++)if (a[i] < a[j])k = j;max = a[k];a[k] = a[i];a[i] = max;printf("按照从大到小的顺序排列为\n");for (i = 0.i < N。

i++)printf("%d,"。

C语言编程题带答案

C语言编程题带答案

C语言编程题带答案#include <stdio.h>int main() {// 第一题:计算两个整数的和int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);int sum = num1 + num2;printf("两个整数的和为:%d\n", sum);// 第二题:判断一个数是否为奇数int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("该数是偶数\n");} else {printf("该数是奇数\n");}// 第三题:计算一个数的阶乘int n, factorial = 1;printf("请输入一个正整数:");scanf("%d", &n);for (int i = 1; i <= n; i++) {factorial *= i;}printf("%d的阶乘为:%d\n", n, factorial); // 第四题:判断一个数是否为质数int flag = 1;printf("请输入一个正整数:");scanf("%d", &num);if (num <= 1) {flag = 0;} else {for (int i = 2; i * i <= num; i++) {if (num % i == 0) {flag = 0;break;}}}if (flag == 1) {printf("该数是质数\n"); } else {printf("该数不是质数\n"); }return 0;}。

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

50道C/C++编程练习题1、输入3个数,求最大值int main(){ int a,b,c,m;cin>>a>>b>>c;m=a;if(b>m) m=b;if(c>m) m=c;cout<<m;}2、编程序,求方程ax2+bx+c=0的根#include<iostream>#include<cmath>using namespace std;int main(){double a,b,c,d,x1,x2;cin>>a>>b>>c;if(a==0)if(b==0) cout<<"error\n";else cout<< "x="<<-c/b<<endl;else{ d=b*b-4*a*c;if(fabs(d)<=1e-6)cout<<"x1=x2="<<-b/(2*a)<<endl;else if(d>1e-6){ x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);cout<<"x1="<<x1<<",x2="<<x2<<endl;}else cout<<"方程无实根\n";}}3、输入一个成绩,打印相应的等级int main(){ int a;cin >> a;if(a>=90) cout<<"A";else if(a>=80) cout<<"B";else if(a>=70) cout<<"C";else if(a>=60) cout<<"D";else cout<<"E";}4、输入3个double类型的值,判断这3个值是否可以表示一个三角形的三条边。

int main(){double a,b,c;cin>>a>>b>>c;if(a+b>c && b+c>a && c+a>b)cout<<"可以构成三角形";elsecout<<"不可以构成三角形";}5、输入20个数,求其最大、最小和平均值int main(){int i;int a,max,min,s;cin>>a;max=min=a; s=a;for(i=1;i<20;i++){ cin>>a;if(a>max) max=a;if(a<min) min=a;s=s+a;}cout<<max<<","<<min<<","<<s/20.0<<endl; }6、输入若干个数,设输入的第一个数为后面要输入的数的个数,求平均值及最大值。

int main(){int a,m,s=0;cin>>n;cin>>a;m=a; s=a;for(int i=1; i<n; i++){ cin>>a;s +=a;if(a>m) m=a;}cout<<"平均值:"<<(double)s/n<<",最大值:"<<m<<endl;}7、输入若干个数,输入-999表示结束,求平均值及最大值。

#include<iostream>#include<iomanip>#include<cstdlib>using namespace std;int main(){ int n, count, sum, max;double ave;count = 0;cin >> n;sum = 0; max = n;while( n != -999 ){ sum = sum + n;if( n > max ) max = n;count++;cin >> n;}if( count != 0 ){ ave=static_cast<double>(sum) / count; cout<<setiosflags(ios::fixed)<<setprecision(2);cout<<"平均值为:"<<ave<<" 最大值为:"<<max<<endl;}}8、求和 s=1*1 + 2*2 + 3*3 +...+ 100*100int main(){ int i,t;double s=0;for(i=1; i<=100; i++){ t=i*i;s=s+t;}}9、印度国王的奖励,求和 s=20+ 21+ 22+...+ 263 int main(){ double t=1,s=0;for(int i=0; i<=63; i++){ s=s+t;t=2*t;}cout<<s/1.4e8<<endl;}10、求和 s=1! + 2! + 3! +...+ 10!int main(){ int i;long t,s;t=1; s=0;for(i=1; i<=10; i++){ t=t*i;s=s+t;}}11、求 e=1 + 1/1! + 1/2! + 1/3! + ...int main() { int i;double t,e;i=1; t=1; e=1;while(t>=1e-7){ t=t/i;e=e+t;i=i+1;}cout<<e;}12、求PI值,PI/4 = 1 - 1/3 + 1/5 - 1/7 + ... int main(){ int i,k;double pi,t;i=1; t=1; pi=0; k=1;while(fabs(t)>1e-8){ pi=pi+t;i=i+2;k=-k;t=double(k)/i;}cout<<4*pi;}13、求PI值,PI/2 = 1 + 1/3 + 1/3*2/5 + 1/3*2/5*3/7 + ...#include<iostream>#include<cstdlib>int main(){int i,j;double pi,t;i=0; j=1; t=1; pi=0;while(t>1e-18){ pi=pi+t;i=i+1;j=j+2;t=t*i/j;}cout<<setprecision(17)<<2*pi;}14、输入20个数,统计其中正数、负数和零的个数。

int main(){int a,n=0,m=0,s=0;for(int i=1; i<=20; i++){ cin >> a;if(a>0) n++;else if(a<0) m++;else s++;}cout<<n<<" "<<m<<" "<<s;}15、输入若干个整数,计算其中的奇数之和与偶数之和,假设输入0表示结束。

int main(){ int a,n=0,m=0;cin>>a;while(a!=0){ if(a%2 == 0) n += a;;else m += a;cin >> a;}cout<<n<<" "<<m;}16、写一函数,计算x的y次方(假设x、y都为正整数)。

int pow(int x, int y){ int s=1;for(int i=1; i<=y; i++)s = s * x;return s;}17、求水仙花数(一个三位数,其各位数字立方和等于该数字本身)int main(){ int i,a,b,c;for(i=100;i<=999;i++){ a=i/100;b=i/10%10;c=i%10;if(i==a*a*a+b*b*b+c*c*c)cout<<i<<endl;}}int main(){ int i,a,b,c;for(a=1;a<=9;a++)for(b=0;b<=9;b++)for(c=0;c<=9;c++){ i=a*100+b*10+c;if(i==a*a*a+b*b*b+c*c*c)cout<<i<<endl;}}18、编写一个函数,确定一个整数是否为完全数(一个数,等于他的因子之和)。

用这个函数确定和打印1到1000之间的所有完全数。

int perfect(int n){ int i,s=1;for(i=2;i<=n/2;i++)if(n%i==0) s=s+i;if(s==n) return 1;else return 0;}int main(){ int n;for(n=2;n<=1000;n++)if perfect(n)cout<<n<<endl;}19、写一函数,求斐波那契数列的第n项。

int fib(int n){int i,f1,f2,f;if(n==1||n==2) return 1;f1=1; f2=1;for(i=3; i<=n; i++){ f=f1+f2;f1=f2;f2=f;}return f;}20、写一个函数,取一个整数值并返回将此整数的各数字反序的数值int reverse(int n){ int s=0;while(n){ s = s * 10 + n % 10;n /= 10;};return s;}21、写一个函数,将一个整数的各位数字的反序打印void show(int n){ while(n){ cout << n % 10 << " ";n /= 10;};}void show(int n){ if(n < 10) cout << n;else{ cout << n % 10 << " ";show(n / 10);}}22、写一个函数,将一个整数的各位数字的按顺序打印出来void show(int n){int k = 1, m = n;while(m > 10){ k *= 10; m /= 10; }while(n){ cout << n / k << " ";n %= k;k /= 10;};}void show(int n){ int a[10], i=0;while(n){ a[i] = n % 10;n /= 10;i++;}for(int j=i-1; j>=0; j--)cout<<a[j]<<" ";}void show(int n){ if( n < 10 ) cout << n;else{ show( n / 10 );cout << " " << n % 10;}}23、求一个整数的各位数之和的函数int sum(int n){ int s = 0;while(n){ s += n % 10;n /= 10;};return s;}24、写一函数,判断某个数是否素数,以及求1-1000之内的素数#include<iostream>#include<cmath> #include<stdlib.h>using namespace std;bool isprime(int n){ float k=sqrt(float(n));for(int i=2; i<=k; i++)if(n%i==0) return false;return true;}int main(){ for(int n=2; n<=1000; n++)if(isprime(n)) cout<<setw(5)<<n;}25、用筛法求1-1000之内的素数#include<iostream>#include<cmath>#include<stdlib.h>#include<iomanip>using namespace std;int main(){int i,k,a[1001];for(i=2; i<=1000; i++) a[i]=1;float s=sqrt(float(1000));for(i=2; i<=s; i++)if(a[i]==1){ k=2*i;while(k<=1000){ a[k]=0;k=k+i;}}for(i=2; i<=1000; i++)if(a[i]==1) cout<<setw(5)<<i;}26、判断某一年是否闰年的函数bool IsLeapYear(int y){ return (y%4 == 0 && y%100 != 0)||(y%400 == 0);}27、写一个函数,交换两个整型变量的值void swap(int *p, int *q){ int t;t=*p; *p=*q; *q=t;}void swap(int &a, int &b){ int t;t=a; a=b; b=t;}28、求两个数的最大公约数,欧几里德算法(辗转相除法)int gcd(int m, int n){ int k;while(n!=0){ k=m%n; m=n; n=k; }return m;}int gcd(int m, int n){ int k;while((k=m%n)!=0){ m=n; n=k; }return n;}int gcd(int m, int n){ while(m!=n){ if(m>n) m=m-n;else n=n-m;}return m;}29、求两个数的最小公倍数int lcm(int m, int n){ int t,s;if(m<n) { t=m; m=n; n=t; }s=m;while(s%n != 0) s=s+m;}int lcm(int m, int n){return m*n/gcd(m,n);}30、百钱买百鸡问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,百钱买百鸡,问鸡翁、母、雏各几何?int main(){int cock,hen,chick;for(cock=0; cock<=20; cock++)for(hen=0; hen<=33; hen++){ chick=100-cock-hen;if(5*cock+3*hen+chick/3.0==100)cout<<setw(4)<<cock<<setw(4)<<hen <<setw(4)<<chick<<endl;}}31、编一程序,输入一行字符串,统计其中的小写英文字母的个数。

相关文档
最新文档