C语言实验题目
c语言编程题库100题

c语言编程题库100题1. 计算两个整数的和编写一个C程序,接收两个整数作为输入并计算它们的和,并将结果输出。
2. 计算两个整数的差编写一个C程序,接收两个整数作为输入并计算它们的差,并将结果输出。
3. 计算两个整数的乘积编写一个C程序,接收两个整数作为输入并计算它们的乘积,并将结果输出。
4. 计算两个整数的商编写一个C程序,接收两个整数作为输入并计算它们的商,并将结果输出。
5. 判断一个整数是否为偶数编写一个C程序,接收一个整数作为输入并判断它是否为偶数,并将结果输出。
6. 判断一个整数是否为质数编写一个C程序,接收一个整数作为输入并判断它是否为质数(只能被1和自身整除的数),并将结果输出。
7. 计算一个整数的阶乘编写一个C程序,接收一个整数作为输入并计算它的阶乘,并将结果输出。
8. 计算一个整数的平方根编写一个C程序,接收一个整数作为输入并计算它的平方根,并将结果输出。
9. 判断一个字符串是否为回文字符串编写一个C程序,接收一个字符串作为输入并判断它是否为回文字符串(正向和反向读取都相同的字符串),并将结果输出。
10. 排序一个整数数组编写一个C程序,接收一个整数数组作为输入并对其进行排序,并将结果输出。
11. 求两个整数之间的最大公约数编写一个C程序,接收两个整数作为输入并计算它们的最大公约数,并将结果输出。
......(依此类推,共100道题)这是一个C语言编程题库,包含100道不同类型的题目。
你可以选择其中的题目进行练习和实践,通过解决这些问题来提升自己的C语言编程能力。
每道题目都有具体的描述和要求,你可以按照题目要求编写相应的代码,并运行测试。
如果遇到问题,可以参考相关的解法或向他人寻求帮助。
通过不断地练习和学习,你将逐渐掌握C语言的编程技巧和思维方式,提高自己在编程领域中的能力。
祝你编程愉快!。
C语言实验题目()

求两个数之和。
在两种情况下完成:①数据在程序内部定义变量时赋初值,或者通过赋值语句赋值。
②数据通过scanf( )函数输入。
静态输入:#include <stdio.h>void main(){int a=1,b=2,s;s=a+b;printf("这两个数的和是%d\n",s);}动态输入:#include <stdio.h>void main(){int a,b,s;printf("请您输入两个数:");scanf("%d,%d",&a,&b);s=a+b;printf("这两个数的和是%d\n",s);}设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆柱表面积、圆柱体积。
要求用scanf 输入数据,输出计算结果。
#include <stdio.h>void main(){float r,h,l,s,sq,vz;float pi=3.1415926;printf("请输入圆的半径r,圆柱高h:");scanf("%f,%f",&r,&h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vz=pi*r*r*h;printf("圆的周长为l=%6.2f\n",l);printf("圆的面积为s=%6.2f\n",s);printf("圆柱的表面积为sq=%6.2f\n",sq);printf("圆柱的体积为vz=%6.2f\n",vz);}输入a、b、c三个整数,求出其中最大者,并连同三个源数据一起输出。
#include <stdio.h>int max(int x,int y,int z){int max;if(x>y){if(x>z)max=x;elsemax=z;}else{if(y>z)max=y;elsemax=z;}return(max);}void main(){int max(int x,int y,int z);int a,b,c,w;printf("请您输入三个整数:");scanf("%d,%d,%d",&a,&b,&c);printf("您输入的三个数是:%d,%d,%d\n",a,b,c);w=max(a,b,c);printf("这三个数中最大的是:%d\n",w);}给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。
c语言实验题目

实验3 顺序结构编程 (2)实验4 if分支结构编程 (3)实验5 if分支结构和switch分支结构编程 (5)实验6 分支结构嵌套和for循环编程练习 (10)实验7和while和do-while练习 (13)实验8 for循环嵌套练习 (16)实验9 函数设计编程练习 (19)实验10函数设计编程练习 (21)实验11 数组编程练习 (24)实验3 顺序结构编程实验题目1 输入两个整型数x,y,求x,y之和、差、积、x/y的商和余数提示: (1)定义整形变量变量int x,y;(2)和、差、积、商和求余数的运算符分别是+、-、*、/、%(3)输入两个整型数可以调用scanf()函数scanf("%d %d", &x,&y);实验题目2 按下列要求编写程序,对变量a,b,c进行unsigned int型说明,将65赋给a,66赋给b,67赋给c,对变量a,b,c用%c格式输出显示提示: (1)定义变量unsigned int a ,b,c;(2)字符型数据输出的格式控制符是%c(3)C语言中的赋值符号是=“65赋给a”表示为a = 65;实验题目3 输入三角形的三条边的边长,求三角形的面积从键盘输入三个整数,判断能否构成三角形的三边,如果能就计算输出三角形面积,按照下图给出的公式计算三角形的面积:s=(a+b+c)/2a,b,c代表三角形的三条边提示1、开根号的数学库函数是sqrt,例如y=sqrt(x),表示求变量x开根号,并把结果赋值给变量y。
2、调用数学库函数必须用如下命令#include <math.h>要求:(1)存储三角形三边的变量用double型(2)打印三角形面积时小数保留两位%.2lf实验题目4 已知半径r=3.4cm,编程求圆的周长和面积:提示: (1)定义浮点型变量使用关键字float;(2)浮点型数据输出的格式控制符是%f(3)C语言中没有∏这个符号,编写程序时直接使用3.14159。
C语言实训题及参考答案

C语言实训题及参考答案第一题:编写一个程序,将输入的两个整数进行加法运算,并输出结果。
参考答案:```c#include <stdio.h>int main() {int num1, num2, result;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);result = num1 + num2;printf("加法结果:%d", result);return 0;}```第二题:编写一个程序,判断输入的整数是否为偶数,并输出“是”或“否”。
参考答案:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("是");} else {printf("否");}return 0;}```第三题:编写一个程序,计算输入字符串的长度,并输出结果。
参考答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];int length;printf("请输入一个字符串:");scanf("%s", str);length = strlen(str);printf("字符串长度:%d", length);return 0;}```第四题:编写一个程序,将输入的字符串反转,并输出结果。
参考答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];int i, length;printf("请输入一个字符串:");scanf("%s", str);length = strlen(str);for (i = length - 1; i >= 0; i--) {printf("%c", str[i]);}return 0;}```第五题:编写一个程序,将输入的数组元素按从小到大的顺序排序,并输出结果。
C语言实验报告范例

C语言实验报告范例
实验题目:C语言实现银行家算法
实验目的:掌握C语言实现银行家算法的基本思想,并能熟练应用矩阵处理实现银行
家算法的功能。
实验内容:
1. 利用C语言实现银行家算法的核心思想,利用矩阵处理实现其核心功能模块。
2. 银行家算法是一种负责实现“当前分配”的基于矩阵的编程模型。
该算法可以通
过利用安全状态来识别一次可行解,从而解决请求和分配资源的冲突问题。
3. 根据上述信息,我们设计了C语言实现银行家算法的基本框架,包括初始化步骤、可行性检查步骤、回滚步骤以及主步骤。
4. 在初始化步骤中,我们采用矩阵存储技术,将银行家算法中的各个参数保存起来,具体过程中采用数组存储。
5. 在可行性检查步骤中,我们判断当前系统状态是否处于安全状态,如果处于安全
状态,则继续完成下一步余额检查;否则,处理发生冲突时,回滚处理。
6. 在主步骤中,我们过程中判断若系统处于可行状态,则继续分配资源;否则,则
执行回滚操作,将系统恢复到上一状态。
实验结果和结论:
通过实验,我们学会了如何使用C语言来实现银行家算法,进而通过实现矩阵处理,
实现了该算法的核心功能模块。
此外,我们还学习了安全状态机制,进行系统可行性检查,和完成系统的分配工作,以达到有效地实现银行家算法的目的。
本次实验结论如下:
1. 通过C语言实现银行家算法中的核心功能模块,使系统的可行性检查得以有效实现;
2. 利用矩阵存储来实现系统的可行性检查,从而有效地节省时间和提高资源分配的
效率;
3. 通过回滚处理,有效地解决资源请求和分配冲突问题,使系统能够有效地实现安
全状态。
C语言课后实验设计题目及答案

设 total:桃子的总数
x1 :前一天的桃子数
x2 : 后一天的桃子数
day: 天数
计算公式:x1=(x2+1)*2 第1天的桃子数是第2天桃子数加1后的2倍。
(2)求1-1/2+1/3-1/4+⋯⋯,输入1个正整数n(n<=100),计算并输出1-1/2+1/3-1/4+⋯⋯的前n项和(保留3位小数)。
实验项目四 分支结构程序设计
题目
(1)输入四个整数,输出其中的最小值。
实验报告
1、主程序:
// zx.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
}
2、主程序:
// s.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
int main(int argc, char* argv[])
{
x=x*x*x*x;return(x);
}
int main(int argc, char* argv[])
{
float x;
printf("请输入X=");
scanf("%f",&x);
double s;
C 语言 实验 + 答案 4题
}while(fabs(x1-x0)>1e-5);
printf("the root of equation is %5.2f\n",x1);
}
第四题:
第一个:
#include<stdio.h>
void main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
(3)用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。
在得到正确结果后,请修改程序使所设的x初始值由1.5改变为100、1000、10000,再运行,观察结果,分析不同的x初值对结果有没有影响,为什么?
修改程序,使之能输出对迭代的次数有无影响。
{
x1=(x2+1)*2;
x2=x1;
day--;
}
printf("total=%d\n",x1);
}
第二个:
#include<stdio.h>
void main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{
x1=(x2+2)*2;
x2=x1;
day--;
}
printf("total=%d\n",x1);
if(m%i==0)
printf("%5d",i);
printf("\n");
}
}
}
第三题:
#include<stdio.h>
#include<math.h>
C语言实验题及参考答案
实验一1、计算整数各位数字之和(10 分)输入一个3 位正整数,将其每一位的数字相加,输出和输入格式:输入一个3 位正整数。
变量数据类型为unsigned 。
输出格式:输出整数每一位相加后的整数和。
输入样例:输出样例:【参考答案】#include "" int main(){ unsigned int a,ge,shi,bai,sum;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/100;sum=ge+shi+bai;printf("%d\n",sum);return 0;}2、计算代数表达式(10 分)求:输入格式:输入角度x。
变量数据类型为double 。
π 为。
输出格式:输出y 的值,精确到小数点后2 位。
输入样例:输出样例:【参考答案】#include <>#include <>#define PIint main(){double x,y;scanf("%lf",&x); y=sqrt((sin(60*PI/180)+1)*(sin(30*PI/180)+1)/cos(x*PI/180));printf("%.2lf",y);return 0;}3、逆序的三位数 (10 分)程序每次读入一个正3 位数,然后输出按位逆序的数字。
有结尾的0 时,输出不应带有前导的0。
比如输入700,输入格式:每个测试是一个3 位的正整数。
输出格式:输出按位逆序的数。
输入样例:输出样例:注意:当输入的数字含输出应该是7。
【参考答案】#include ""int main(){ int a,ge,shi,bai,b;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/100;b=ge*100+10*shi+bai;printf("%d\n",b);return 0;}4、求整数均值 (10 分)本题要求编写程序,计算4 个整数的和与平均值。
c语言上机实验题及参考答案
5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}
C语言在线实验第5次(第七章函数)-题目与答案
第五次实验题目-第七章函数教学目标31.一元二次方程的系数:a、b、c由主函数输入,编写函数求方程的根。
#include <stdio.h>#include <math.h>void root(double a, double b, double c){ double delta,x1,x2,m,n;if (fabs(a) <= 1e-6){if (fabs(b) <= 1e-6)puts("Not an equation");elseprintf("x=%.2lf",-c/b);return;}else{delta=b*b - 4*a*c;m = -b / (2*a);n = sqrt(fabs(delta)) / (2*a);x1 = m + n;x2 = m - n;if (fabs(delta) <= 1e-6)printf("x1=%.2lf, x2=%.2lf", x1, x1);else if (delta < 0)printf("x1=%.2lf+%.2lfi, x2=%.2lf-%.2lfi",m,n,m,n);elseprintf("x1=%.2lf, x2=%.2lf", x1, x2);}}int main( ){ double a,b,c;scanf("%lf%lf%lf",&a,&b,&c);root(a,b,c);return 0;}教学目标32.输入一串字符,统计其中英文字母的个数,编写统计英文字母个数的函数。
#include<stdio.h>int numberOfLetter(char str[]) {int i=0;int num = 0;//统计字母个数while (str[i]!=’\0’) {if ((str[i]>='A'&& str[i]<='Z')||( str[i]>='a'&& str[i]<='z')) num++;i++;}return num;}int main( ) {char str[100];int letterNum;printf("Enter a string: ");gets(str);letterNum = numberOfLetter(str);printf("Number of letters is %d.\n", letterNum);return 0;}教学目标33. 求100以内所有素数的和。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.
3. 4.
实验例题: 实验例题:*** 实验步骤: 实验步骤:
启动VC++ 6.0,单击各菜单项 熟悉 单击各菜单项,熟悉 环境. 启动 单击各菜单项 熟悉VC++ 6.0环境. 环境 将源程序输入到计算中; 将源程序输入到计算中 对源程序进行编译,如编译的结果有错误信息提示 回到编辑区, 如编译的结果有错误信息提示,回到编辑区 对源程序进行编译 如编译的结果有错误信息提示 回到编辑区 对源程序进行修改; 对源程序进行修改 没有错误之后,选择 选择Build 菜单下的 菜单下的Build命令 产生最后的可执 命令,产生最后的可执 没有错误之后 选择 命令 行程序. 行程序. 选择Build 菜单下的 菜单下的Execute命令 或单击 图标 !),运行可执 命令(或单击 选择 命令 运行可执 行程序. 行程序. 对运行结果进行检查,如果不正确 继续修改.直至完全正确. 如果不正确,继续修改 对运行结果进行检查 如果不正确 继续修改.直至完全正确.
读入的数据: 读入的数据:a=3 b=5 , 输出结果: 输出结果: a=3,b=5
读入的数据: 读入的数据: a=5 b=3 , 输出结果: 输出结果: a=5,b=3
格式控制字符对输入结果的影响 #include <stdio.h> void main() { int a; float x; scanf("%d%f",&a,&x); printf("a=%d , x=%f \n" ,a , x); }
结果: 结果: "\n"的作用是:使得下一次的输出,从下一行的行首开始. n"的作用是 使得下一次的输出,从下一行的行首开始. 的作用是:
转义字符测试程序样板
#include <stdio.h> /*测试 "\a"的作用 */ /*测试 a"的作用 void main() {
printf(" 没有"\a"时:"); a"时 printf(" hello!\n"); hello! printf("有 a"时 printf("有"\a"时:"); printf("\ hello\ printf("\ahello\a\n");
5. 6. 7.
实验结果: 程序的运行结果或程序的功能) 实验结果:(程序的运行结果或程序的功能) 实验过程中遇到的问题及解决方法: 实验过程中遇到的问题及解决方法: 通过实验,还有哪些问题需要解决? 通过实验,还有哪些问题需要解决?
实验步骤: 实验步骤:
I. II.
打开计算机, 打开计算机,启动 WindowsXP 成功; 成功; 在桌面上寻找VC++6.0图标 如果找到,双击它; 在桌面上寻找VC++6.0图标,如果找到,双击它; 图标, 如果找不到,单击桌面下部的"开始",弹出一个 如果找不到,单击桌面下部的"开始",弹出一个 菜单,将鼠标移到"所有程序",显示出一个程序 菜单,将鼠标移到"所有程序",显示出一个程序 列表,鼠标移到程序列表上,寻找到"Microsoft 列表,鼠标移到程序列表上,寻找到"Microsoft visual studio",弹出下一级的程序列表,找到 studio",弹出下一级的程序列表 弹出下一级的程序列表, "Microsoft visual C++ 6.0",单击它.启动 6.0",单击它 单击它. visual C++ 6.0成功; 6.0成功 成功; 首先认识界面上的各部分名称及功能, 首先认识界面上的各部分名称及功能,可以单击 主菜单上的各项, 主菜单上的各项,弹出各下拉菜单了解每一菜单 项的功能. 可以对照实验辅导书) 项的功能.(可以对照实验辅导书)
变量顺序与输入数据顺序对输入结果的影响; 变量顺序与输入数据顺序对输入结果的影响; #include <stdio.h> void main() { int a, b; scanf("%d%d",&a,&b); printf("a=%d , b=%d \n" ,a,b); } 输入数据: 输入数据: 35 输入数据: 输入数据: 53
实验一
1. 2.
I. II. III. IV. V. VI.
熟悉visual 熟悉visual c++ 6.0环境 6.0环境 了解上机调试程序步骤: 了解上机调试程序步骤:
输入源程序; 输入源程序; 编译,链接; 编译,链接; 如果有错误,则回到编辑状态,进行修改; 如果有错误,则回到编辑状态,进行修改; 再编译,链接,直到没有错误; 再编译,链接,直到没有错误; 运行目标程序; 运行目标程序; 查看运行结果; 查看运行结果;
3.
将给定的一个程序输入到计算机中,进行调 将给定的一个程序输入到计算机中 进行调 试.
实验例题
#include <stdio.h> #include <stdlib.h> #include <math.h> #define n 4 void main() { int i , j , k; for( i=0 ; i<=n ; i++) { for( j=0 ; j<n-i ; j++) printf(" "); for( k=0 ; k<2*i +1; k++) printf(" B" ); printf("\n"); }
printf( "现在开始输出:\n" ); "现在开始输出 现在开始输出: printf( "按%%d格式输出 x:" ); "按%%d格式输出 printf( "y=%d \n",y ); n", printf( "按%%d格式输出 long z:" ); "按%%d格式输出 z: printf( "z=%d \n",z ); n", printf( "按%%d格式输出 char ch:" ); "按%%d格式输出 ch: printf( "ch=%d \n",ch ); } n", printf("x=%d \n",x); n", printf( "按%%d格式输出 float y:" ); "按%%d格式输出 y:
2.%f 等
其他的每一个格式符,依此测试.
实验题目三: 实验题目三:
仿照printf语句 测试scanf语句的各种格式的 仿照printf语句,测试scanf语句的各种格式的 语句, 功能; 功能;
1.
2.
3.
4.
变量顺序与输入数据顺序之间的关系对输入结果 的影响; 的影响; 格式控制字符与输入数据之间的关系对输入结果 的影响; 的影响; 格式控制字符之间有无显示分隔符对输入数据的 格式的影响; 格式的影响; 在格式控制字符的% 在格式控制字符的%后面添加域宽与否对输入数 据的格式和输入数据的结果有何影响. 据的格式和输入数据的结果有何影响.
输入数据: 输入数据: 3 5.6 输入数据: 输入数据: 5.6 3
读入的数据: 读入的数据: a=3 x=5.6 输出结果: 输出结果: a=3,x=5.6 ,
读入的数据: 读入的数据: a=5 x=0.6 输出结果: 输出结果: a=5,x=0.6 ,
格式控制字符之间有无显示分隔符对输入的影响
for( i=n ; i>=0; i--) { for( j=0 ; j<=n-i; j++) printf(" "); for ( k=0 ; k<2*i-1; k++) printf(" B" ); printf( "\n" ); } }
仿照前面的实验步骤,将本 仿照前面的实验步骤 将本 程序的实验结果执行出 来.
1.%d的作用 程序样板 . 的作用 程序样板) 的作用(程序样板
printf( "有域宽的%%d格式输出 x:" ); "有域宽的 有域宽的%%d格式输出 printf("x=%6d \n",x); n", printf( "有域宽的%%d格式输出 x:" ); "有域宽的 有域宽的%%d格式输出 printf("x=%printf("x=%-6d \n",x); n", printf( "有域宽的%%d格式输出 x:" ); "有域宽的 有域宽的%%d格式输出 printf("x=%2d \n",x); n", }
} 结果: a"的作用是 响铃. 的作用是: 结果:转义字符 "\a"的作用是:响铃.
实验题目二
测试每一个格式控制符在 printf中的意义和作用 中的意义和作用
1.%d的作用 程序样板 . 的作用 程序样板) 的作用(程序样板
#include <stdio.h> void main() { int x; x=1268; float y; long z; char ch; ch='A'; y=205.873461; z=12345678;
格式控制字符% 格式控制字符%后面添加域宽与否对输入的影响