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语言实验题目

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语言课后实验设计题目及答案
算法提示
设 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题

C 语言 实验 + 答案  4题
x1=x0-f/f1;
}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语言上机实验题及参考答案

c语言上机实验题及参考答案
4、编写程序,求1-3+5-7+...-99+101的值。(文件名为44.c。备注:程序运行结果为51,关于符号转换的问题可以参考教科书上的例6.6)
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语言程序设计练习题(答案)

C语言程序设计练习题(答案)

C语言程序设计练习题(答案)1.1上机实训项目实验1实验步骤1、进入VC环境从“开始”→“程序”→“Microsoft Visual Studio 6.0”→“Microsoft Visual C++ 6.0”,这时进入VC集成环境的主菜单窗口,屏幕显示如图1_1所示。

图1-1 VC集成环境的主菜单窗口2、VC环境下C程序的编辑、连接和运行(1)新建一个源程序①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。

如图1-2所示图1-2 选择新建② 在弹出的新建对话框中设置好相应的内容,如图2-2所示。

要事先准备好保存文件的目录,例d:\lx 目录。

在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C 语言程序的扩展名“.c ”。

设置好后,单击“OK ”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c 文件存放在D 盘的LX 目录下。

图1-3 新建对话框的设置③ 在图1-4的工作区中,输入源程序2.设置源程序的文件名,扩展名一定要为“.c ”且一定要输入扩展名1.单击该处3.设置存放目录图1-4 输入、编辑源程序④输入源程序文件后可在主菜单栏中选择“文件”(FILE),并在其下拉菜单中选择“保存”(SAVE),如图1-5所示。

图1-5 保存源程序⑤源程序的编译如图2-6所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“编译example.c”(Compile example.c),或者单击工具栏上的“编译”按钮,如图1-6所示。

在单击“编译”后,屏幕上会出现一个如图1-7所示的对话框。

内容是“This build command requires an activeproject worksapce,Would you like to create a default project worksapce?”,要创建一个默认的项目工作区,单击“是(Yes)”,表示同意,将开始编译;单击“No ”,表示不同意,将取消编译。

[VIP专享]C程序设计实验题目(上)

[VIP专享]C程序设计实验题目(上)

实验一 简单的C/C++程序练习1.编程序求某位学生的平均分。

要求输入该生4门课的成绩,程序即可输出其平均分。

运行结果示例:练习2.编程序求半径为r 、高为h 的圆柱体的体积。

要求输入r 和h 的值,程序即可输出体积。

要求:将π值定义为符号常量,例如:# define PI 3.14运行结果示例:练习3.编写程序,求函数 的值。

要求输入x ,程序即可输40cos 2)3lg(2⨯++=πx y 出y 的值。

要求:将π值定义为符号常量,例如:# define PI 3.14运行结果示例:练习4.输入一字符,编程序判断输入字符的种类(字母、数字、其它)。

要求:利用if 条件语句编程。

运行结果示例:*练习5.编写程序,输入一个3位整数,依次输出该数的正(负)号和百位、十位、个位数字。

运行结果示例:实验二 顺序与分支程序设计练习1.编写程序,求函数 的值。

要求输入x ,程序即可输出︒⨯++=30sin 53x e x y πy 的值。

要求:将π值定义为符号常量,例如:# define PI 3.14159运行结果示例:练习2.编写程序,实现下列分段函数的求值:| x |x<5y = 3x2-2x+15≤x<20x /5x≥20要求:利用if条件语句(嵌套)编程。

练习3.编写程序,将输入的3个整数按降序输出。

运行结果示例:要求:利用条件表达式进行判别。

练习4.编写程序,输入上网的时间计算上网费用,计算的方法如下:25元<10小时费用= 每小时2.5元10~50小时每小时2元≥50小时同时,为了鼓励多上网,每月收费最多不超过130元。

要求:使用switch语句编程。

*练习5.编写程序,能够计算两个数的+、-、*、/ 的简易计算器。

提示:利用switch条件语句编程。

运行结果示例:实验三循环程序设计一.实验目的1.掌握各种循环语句的程序设计。

三.实验内容练习1.输出50-100之间所有奇数的累加和。

C语言实验题及参考答案

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语言培训上机实验题目

C语言培训上机实验题目

安装Visual C ++6.0下载请从群里下载Microsoft Visual Studio.rar。

将下载的文件Microsoft Visual Studio.rar解压后即可使用。

请直接运行文件“Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE”实验一认识C语言【实验目的】1.熟悉C程序设计编程环境Visual C ++,掌握运行一个C程序设计的基本步骤,包括编辑、编译、连接和运行。

编辑:编写源程序文件.c编译:生成目标文件.obj连接:生成可执行文件.exe运行:执行.exe文件。

2.掌握C语言程序设计的基本框架,能够编写简单的C程序。

3.了解程序调试的思想,能找出并改正C程序中的语法错误。

【实验内容】1-1 在磁盘上新建一个文件夹,用于存放C程序,文件夹的名字可以是学号,如D:\3050888。

1-2 编程示例,在屏幕上显示一个短句“Hello World!”。

源程序# include <stdio.h>void main( ){printf("Hello World! \n");}运行结果Hello World!作为第一个实验,在Visual C++编程环境下,以上述C语言源程序为例,介绍运行一个C 程序的基本步骤,请读者按照以下步骤操作。

(1)启动VC++执行“开始”—>“程序”—>“Microsoft Visual Studio 6.0”—> “Microsoft Visual C++ 6.0”,进入VC++编程环境(如图1.1所示)。

图1.1 VC++窗口(2)新建文件执行“文件/File”—>“新建/New”,单击“文件/Files”选项卡(如图 1.2所示),先在“文件/File name”栏中输入test,把C源(程序)文件命名为test.cpp,在“目录/Location”框中选择你已经建立的文件夹,如,D:\3050888,然后选中“C++ Sourse Files”,单击“确定”按钮,在D:\3050888下就新建了文件test.cpp,并显示编辑窗口和信息窗口(如图1.3所示)。

C语言上机实验例题

C语言上机实验例题

实验一 C语言的运行环境、运行过程和表达式的使用一、目的与要求1、了解Dos、Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。

2、了解在该系统上如何编辑、编译、连接和运行一个C程序。

3、通过运行简单的C程序,初步了解C源程序的特点。

4、掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。

5、学会使用C的有关算术运算符,以及包含这些运算符的表达式二、实验例题【例1】编程实现在屏幕上显示如下三行文字Hello, world !Wolcome to the C language world!Everyone has been waiting for.在Turbo C的集成环境下,键入如下源文件。

敲Alt+F组合键打开File菜单,File菜单中Write to或save as选项可将默认noname.c文件名改为任意文件名。

程序example.c如下:main(){printf("Hello,World!\n");printf("Wolcome to the C language world!\n");printf("Everyone has been waiting for.\n");}然后用Ctrl+F9执行example.c,用Alt+F5查看结果,即在屏幕上显示题目要求的三行文字。

按回车键重新返回Turbo C的编辑环境。

注意,在运行程序之前最好先存盘。

【例2】输入并运行程序,写出运行结果。

main(){int a,b,sum;a=123;b=456;sum=a+b;printf(“sum is %d\n”,sum);}运行方法同上,最后结果为:sum is 579。

【例3】输入并运行程序,写出运行结果。

main(){int a,b,c;int max(int,int);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;else z=y;return(z);}这个程序的功能是对于任意输入的两个整数,输出较大的那个数。

C语言程序设计教程上机实验--学生版(精品)

C语言程序设计教程上机实验--学生版(精品)

实验一上机操作初步一、实验内容:说明:前三题为必做题目,后两题为选做题目。

1、输出入下信息:(实验指导书P79)*************************Very Good*************************2、计算两个整数的和与积。

(实验指导书P81)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。

(书P3)4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。

二、参考答案:1、#include <stdio.h>void main( ){ printf(“********************\n”);printf(“ Very Good\n”);printf(“********************\n”);}2、#include <stdio.h>void main( ){ int a,b,c,d;printf(“Please enter a,b:”);scanf(“%d,%d”,&a,&b);c=a+b;d=a*b;printf(“%d+%d=%d\n”,a,b,c);printf(“%d*%d=%d\n”,a,b,d);}3、#include <stdio.h>#include <math.h>void main( ){ double x,s;printf(“Please input value of x:”);scanf(“%lf”,&x);s=cos(x);printf(“cos(%lf)=%lf\n”,x,s);}4、#include <stdio.h>void main( ){ printf(“==================================\n”);printf(“ 1 输入数据 2 修改数据\n”);printf(“ 3 查询数据 4 打印数据\n”);printf(“===================================\n”);}5、#include <stdio.h>void main( ){ int x,y,t;printf(“Please enter x and y:”);scanf(“%d%d”,&x,&y);t=x; x=y; y=t;printf(“After swap:x=%d,y=%d\n”,x,y);}实验二简单的C程序设计一、实验内容:说明:前四题为必做题目,后两题为选做题目。

C语言实验题及参考答案

C语言实验题及参考答案

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,输出应该是7。

输⼊格式:每个测试是⼀个3位的正整数。

输出格式:输出按位逆序的数。

输⼊样例:输出样例:【参考答案】#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语言实验题

C语言实验题
printf("%c",a[i]);}
return 0;
}
矩阵转置
题目描述:输入N*N的矩阵,输出它的转置矩阵。
输入:第一行为整数N(1≤N≤100)。
接着是一个N*N的矩阵。
输出:转置矩阵。
样例输入:2
1 2
1 2
样例输出:1 1
2 2
代码:#include<stdio.h>
int main()
{int a[100][100];
输入:输入三边a、b、c
输出:输出面积,保留3位小数。
样例输入:1 2 2.5
样例输出:0.950
代码:int main()
{
float f,c;
scanf("%f",&f);
c=5*(f-32)/9;
printf("%.2f",c);
return 0;
}
一元二次方程
题目描述:解一元二次方程ax2+bx+c=0的解。
scanf("%d",&a[i][j]);}
for(i=0;i<n;i++)
{for(j=0;j<=i;j++)
s=s+a[i][j];}printf("%d",s);return 0;
}
单词统计
题目描述:从键盘输入一行字符,统计其中单词的个数,各单词以空格分隔,且空格数可以是多个。
输入:输入只有一行句子。仅有空格和英文字母构成。
输出:输出数据只有一个,即摄氏温度,保留2位小数。
样例输入:32.0
样例输出:0.00

c语言第一次作业

c语言第一次作业

c语⾔第⼀次作业⼀、PTA实验作业题⽬1.温度转换本题要求编写程序,计算华⽒温度150°F对应的摄⽒温度。

计算公式:C=5×(F−32)/9,式中:C表⽰摄⽒温度,F表⽰华⽒温度,输出数据要求为整型。

1.实验代码int fahr,celsius;fahr = 150;celsius = 5*(fahr-32)/9;printf("fahr = 150, celsius = %d\n",celsius);2 设计思路主要描述题⽬算法。

第⼀步:定义华⽒温度fahr和摄⽒温度celsius第⼆步:输⼊题⽬中给定的华⽒温度150第三步:写出计算公式celsius = 5*(fahr-32)/9第四步:输出fahr和celsius的值3.本题调试过程碰到问题及解决办法错误:单词stdio拼写错误,写成studio。

解决⽅法:从头看了⼀下程序,发现错误之后改掉,继续看⼀下有没有其他错误,提交后答案正确。

4.本题PTA实验结果题⽬2.将x的平⽅赋值给y假设x的值为3,计算x的平⽅并赋值给y,分别以“y = x ∗ x”和“x ∗ x = y”的形式输出x和y的值。

1.实验代码int x,y;x=3;y=x*x;printf("%d = %d * %d\n",y,x,x);printf("%d * %d = %d",x,x,y);2. 设计思路主要描述题⽬算法。

第⼀步:定义整数x,y第⼆步:给出x的值x=3第三步:给出公式y=x*x第四步:输出9=3*3和3*3=93.本题调试过程碰到问题及解决办法(1)误解题⽬,认为是输出y=3*3和3*3=y解决⽅法:重新阅读了⼏遍题⽬,改了多次并与同学交流讨论理解题⽬意思(2)错误:没有⽤公式y=x*x,直接在输出语句中计算y解决⽅法:多次修改,试了⼏遍,根据提交后给出的错误的提⽰⼀直调试,最后终于答案正确。

C语言实验题

C语言实验题
• 男性成人时身高 = (faHeight + moHeight) * 0.54(cm) • 女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm)
此外,如果喜爱体育锻炼,那么可增加身高2%, 如果有良好的卫生饮食习惯,那么可增加身高 1.5%。
实验2: 选择结构编程练习 ——身高预测
实验2:选择结构编程练习 ——简单的计算器程序
要求用switch语句编程设计一个简单的计算器 程序。要求根据用户从键盘输入的表达式:
操作数1 运算符op 操作数2 计算表达式的值,指定的算术运算符为加
(+)、减(-)、乘(*)、除(/)。
例4.8:计算器程序
编程设计一个简单的计算器程序,要求根据 用户从键盘输入如下形式的表达式:
scanf("%c%c%d",&a,&b,&c);
printf("%c,%c,%d\n",a,b,c);
}
A) 1 2 34
B) 1, 2, 34
C) ’1’,’2’,34
D) 12 34
实验1: 熟悉上机环境和顺序结构编程 练习——键盘输入与屏幕输出练习
问题2:与上面程序的键盘输入相同的情况下, 要使上面程序的输出语句在屏幕上显示1 2 34, 则应修改程序中的哪条语句?怎样修改?
#include <time.h>
srand(time(NULL)); magic = rand() % 100 + 1;
#include <stdlib.h> #include <stdio.h> #include <time.h> main() {

PAT《C语言程序设计》题目集参考答案(上)

PAT《C语言程序设计》题目集参考答案(上)

PAT《C语言程序设计》题目集参考答案(上) PAT《C语言程序设计》题目集参考答案(上)参考答案1. 1011 A+B和C (15分)```c#include <stdio.h>int main() {int T, i;long long A, B, C;scanf("%d", &T);for (i = 1; i <= T; i++) {scanf("%lld %lld %lld", &A, &B, &C);if (A + B > C) {printf("Case #%d: true\n", i);} else {printf("Case #%d: false\n", i);}}return 0;}```2. 1024 科学计数法 (20分)```c#include <stdio.h>#include <string.h>int main() {char str[10010];scanf("%s", str);int len = strlen(str);if (str[0] == '-') {printf("-");}int pos = 0; // 记录E的位置 while (str[pos] != 'E') {pos++;}// 输出整数部分if (str[i] == '.') {continue;}printf("%c", str[i]);}int exp = 0; // 指数for (int i = pos + 2; i < len; i++) {exp = exp * 10 + (str[i] - '0');}if (exp == 0) { // 指数为0,直接输出return 0;}if (str[pos + 1] == '-') { // 指数为负数,补零 printf("0.");for (int i = 0; i < exp - 1; i++) {printf("0");}printf("%c", str[1]);printf("%c", str[i]);}} else { // 指数为正数for (int i = 1; i < pos; i++) {if (str[i] == '.') {continue;}printf("%c", str[i]);if (i == exp + 2 && pos - 3 != exp) { printf(".");}}for (int i = 0; i < exp - (pos - 3); i++) { printf("0");}}return 0;}3. 1046 划拳 (15分)```c#include <stdio.h>int main() {int n, aFail = 0, bFail = 0;scanf("%d", &n);for (int i = 0; i < n; i++) {int a, aHan, b, bHan;scanf("%d %d %d %d", &a, &aHan, &b, &bHan); if (a + bHan == aHan && a + bHan != b) {bFail++;} else if (a + bHan == b && a + bHan != aHan) { aFail++;}}printf("%d %d", aFail, bFail);return 0;}4. 1071 小赌怡情 (15分)```c#include <stdio.h>int main() {int T, K;scanf("%d %d", &T, &K);for (int i = 0; i < K; i++) {int n1, b, t, n2;scanf("%d %d %d %d", &n1, &b, &t, &n2);if (T < t) {printf("Not enough tokens. Total = %d.\n", T); continue;}if ((n1 < n2 && b == 1) || (n1 > n2 && b == 0)) { T += t;printf("Win %d! Total = %d.\n", t, T);} else {T -= t;printf("Lose %d. Total = %d.\n", t, T); if (T == 0) {printf("Game Over.\n");break;}}}return 0;}```5. 1076 Wifi密码 (15分)```c#include <stdio.h>int main() {int n;scanf("%d", &n);char ssid[4], password[10010];for (int i = 0; i < n; i++) {scanf("%s %s", ssid, password);if (password[0] == '0') {printf("%c", password[2]); } else if (password[0] == '1') { printf("%c", password[4]); } else if (password[0] == '2') { printf("%c", password[6]); } else if (password[0] == '3') { printf("%c", password[8]); }}return 0;}```6. 1084 外观数列 (20分)```c#include <stdio.h>#include <string.h>int main() {int D, N, count;scanf("%d %d", &D, &N);char str[10010];sprintf(str, "%d", D);for (int i = 1; i < N; i++) {char next[20010] = "\0";int len = strlen(str);int j = 0;while (j < len) {int count = 1;while (j + 1 < len && str[j] == str[j + 1]) { count++;j++;}char temp[10];sprintf(temp, "%d%c", count, str[j]);strcat(next, temp);j++;}strcpy(str, next);}printf("%s", str);return 0;}```7. 1088 三人行 (20分)```c#include <stdio.h>int gcd(int a, int b) {return b == 0 ? a : gcd(b, a % b);}void simplify(int numerator, int denominator) { int flag = 0; // 标记是否输出符号if (numerator < 0) {numerator = -numerator;flag = !flag;}if (denominator < 0) {denominator = -denominator;flag = !flag;}if (flag) {printf("(-");}if (numerator == 0) {printf("0");} else if (numerator >= denominator) {printf("%d", numerator / denominator);if (numerator % denominator != 0) {printf(" ");printf("%d/%d", numerator % denominator, denominator); }} else {printf("%d/%d", numerator, denominator);}if (flag) {printf(")");}}void printResult(int a, int b, int numerator, int denominator) { simplify(a, b);printf(" + ");simplify(numerator, denominator);printf(" = ");simplify(a * denominator + b * numerator, b * denominator); printf("\n");}int main() {int a, b, c, d;scanf("%d/%d %d/%d", &a, &b, &c, &d);int numerator1, denominator1, numerator2, denominator2; // 加法numerator1 = a * d + b * c;denominator1 = b * d;printResult(a, b, c, d);// 减法numerator2 = a * d - b * c;denominator2 = b * d;printResult(a, b, -c, d);// 乘法int numerator3 = a * c;int denominator3 = b * d;simplify(a, b);printf(" * ");simplify(c, d);printf(" = ");simplify(numerator3, denominator3); printf("\n");// 除法int numerator4 = a * d;int denominator4 = b * c;simplify(a, b);printf(" / ");simplify(c, d);printf(" = ");if (c == 0) {printf("Inf");} else {simplify(numerator4, denominator4); }return 0;}```8. 1092 最好吃的月饼 (20分)```c#include <stdio.h>int main() {int N, M;scanf("%d %d", &N, &M);int count[10010] = {0};for (int i = 0; i < M; i++) {int num;scanf("%d", &num);count[num]++;}// 找出最大销量int maxCount = 0;for (int i = 1; i <= N; i++) { if (count[i] > maxCount) { maxCount = count[i];}}// 输出销量最大的月饼int flag = 0;for (int i = 1; i <= N; i++) { if (count[i] == maxCount) { if (flag) {printf(" ");}printf("%d", i);flag = 1;}}return 0;}```9. 1099 build A Binary Search Tree (30分) ```c#include <stdio.h>#include <stdlib.h>#include <algorithm>#include <queue>using namespace std;struct Node {int data;int left;int right;} nodes[110];int values[110], index = 0;void inOrder(int root) {if (root == -1)return;inOrder(nodes[root].left);nodes[root].data = values[index++]; inOrder(nodes[root].right);}void bfs(int root) {queue<int> q;q.push(root);int flag = 0;while (!q.empty()) {int front = q.front();q.pop();if (flag)printf(" ");printf("%d", nodes[front].data); flag = 1;if (nodes[front].left != -1)q.push(nodes[front].left);if (nodes[front].right != -1)q.push(nodes[front].right);}}int main() {int N;scanf("%d", &N);for (int i = 0; i < N; i++) {scanf("%d %d", &nodes[i].left, &nodes[i].right); }for (int i = 0; i < N; i++) {scanf("%d", &values[i]);}sort(values, values + N);inOrder(0);bfs(0);return 0;}```10. 1101 Quick Sort (25分)```c#include <stdio.h>#include <algorithm>#include <stack>using namespace std;int a[100010], b[100010]; // b数组记录在该元素左边的所有元素中最大的元素int result[100010];stack<int> s;int main() {int n;scanf("%d", &n);for (int i = 0; i < n; i++) {scanf("%d", &a[i]);if (i == 0) {b[i] = -1;} else {b[i] = max(b[i - 1], a[i - 1]);}}int minVal = 0x7FFFFFFF; // 最小值,默认为无穷大for (int i = n - 1; i >= 0; i--) {if (i == n - 1) {if (a[i] < minVal) {result[i] = a[i];minVal = a[i];}} else {if (a[i] < minVal && a[i] >= b[i]) { result[i] = a[i];minVal = a[i];}}}int count = 0;for (int i = 0; i < n; i++) {if (result[i] != 0) {count++;s.push(result[i]);}}printf("%d\n", count);while (!s.empty()) {printf("%d", s.top());s.pop();if (!s.empty()) {printf(" ");}}return 0;}```11. 1104 Sum of Number Segments (20分) ```c#include <stdio.h>int main() {int n;scanf("%d", &n);double num, sum = 0;scanf("%lf", &num);sum += num * i * (n - i + 1);}printf("%.2f", sum);return 0;}```12. 1112 Stucked Keyboard (20分)```c#include <stdio.h>#include <string.h>int main() {int k;char s[10010];scanf("%d %s", &k, s);int len = strlen(s);int count[128] = {0}; // 记录字符出现的次数int isPrint[128] = {0}; // 记录字符是否已经输出过count[s[i]]++;}char prev = '\0';for (int i = 0; i < len; i++) {if (count[s[i]] % k != 0) { // 出现次数不是k的倍数,输出该字符 printf("%c", s[i]);isPrint[s[i]] = 1;} else { // 出现次数是k的倍数,如果之前没有输出过,输出一次if (!isPrint[s[i]]) {printf("%c", s[i]);isPrint[s[i]] = 1;}}if (s[i] != s[i + 1]) { // 上一个字符和当前字符不同,说明之前已经输出过isPrint[s[i]] = 0;}}return 0;}```13. 1113 Integer Set Partition (25分) ```c#include <stdio.h>#include <stdlib.h>#include <algorithm>using namespace std;int main() {int n;scanf("%d", &n);int a[100010], sumL = 0, sumR = 0; for (int i = 0; i < n; i++) {scanf("%d", &a[i]);}sort(a, a + n);for (int i = 0; i < n / 2; i++) {sumL += a[i];}for (int i = n / 2; i < n; i++) {sumR += a[i];}printf("%d %d", n % 2, sumR - sumL); return 0;}```14. 1114 Family Property (25分)```c#include <stdio.h>#include <algorithm>using namespace std;struct Person {int id;int fid, mid;int k;int cid[6];int flag;} person[1005];struct Family {int id;int people;double area;double perArea;int flag;} family[10000];int father[10000];bool cmp(Family a, Family b) { if (a.perArea != b.perArea) {return a.perArea > b.perArea; } else {return a.id < b.id;}}int find(int x) {while (x != father[x]) { x = father[x];}while (a != father[a]) { int z = a;a = father[a];father[z] = x;}return x;}void Union(int a, int b) { int faA = find(a);int faB = find(b);if (faA > faB) {father[faA] = faB; } else if (faA < faB) { father[faB] = faA; }}int main() { int n;scanf("%。

C语言程序设计实验指导书参考答案1

C语言程序设计实验指导书参考答案1

上级实验参考答案#include "stdio.h"#include"math.h"int main(){ int i;double a, b;for(i=0;i<=100000;++i){a=sqrt(i+100);b=sqrt(i+168);if((int)a==ceil(a)&&(int)b==ceil(b))printf("%d\n",i);}}实验2 基本数据类型、运算和表达式一、实验目的1)掌握C 语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。

2)掌握不同的类型数据之间赋值的规。

3)学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加++ )和自减--)运算符的使用。

4 )进一步熟悉C 程序的编辑、编译、连接和运行的过程。

二、实验内容1. 变量的定义[题目1117:变量定义,按要求完成程序]下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。

void main(){int a, b; /*定义整型变量a 和b*/int i, j; /*定义实型变量i 和j */a=5;b=6;i=3.14;j=i*a*b;printf("a=%d,b=%d,i=%f,j=%f\n", a, b, i,j);}[具体操作步骤]1)将代码补充完整;2)在TC 或VC++上运行通过;3)在JudgeOnline 实验系统上提交;2. 赋值表达式与赋值语句[题目1118:赋值表达式与赋值语句,写出程序运行结果]阅读下面程序,写出运行结果:void main(){ float a;int b, c;char d, e;a=3.5;b=a;c=330;d=c;e='\\';printf("%f,%d,%d,%c,%c", a,b,c,d,e);}运行结果为:3.500000,3,330,J,\[提示]赋值语句具有类型转换的功能,但可能会改变数据。

C语言实验报告(一)

C语言实验报告(一)

C语言程序设计实验报告2013--2014学年第二学期 2013 级专业:班级:学号:姓名:一、实验题目:顺序结构二、实验目的:(略)三、实验内容1. 程序验证(略)2.程序设计1)编写程序,已知圆半径radius=1.25,求圆周长和面积。

源代码: #include <stdio.h>#include <math.h>#define PI 3.14159void main( ){double r,l,s;r=1.25;l=2.0*PI*r;s=PI*r*r;printf("l=%f,s=%f\n",l,s);}运行结果:2)编写程序完成单个字母的大小写转换。

源代码:#include <stdio.h>void main(){char c;c='a';c=c-32;printf("%c\n",c);}运行结果:3)任意从键盘输入一个三位整数,要求正确分离出它的个位、十位和百位数,并分别在屏幕上显示。

源代码:#include<stdio.h>void main(){int x,l,m,n;printf("请输入一个三位数\n");scanf("%d",&x);l=x/100;m=(x/10)%10;n=x%10;printf("l=%d\n,m=%d\n,n=%d\n",l,m,n);}运行结果:(学习的目的是增长知识,提高能力,相信一分耕耘一分收获,努力就一定可以获得应有的回报)。

c语言实验一

c语言实验一

实验一:熟悉Turbo C运行环境【目的与要求】1、了解TC环境下C语言的运行环境,熟悉编译系统的操作环境。

2、了解在该系统上如何编辑和运行一个C程序。

3、通过运行简单的C程序,初步了解运行C语言程序的操作过程。

【实验内容】1、题目:由键盘输入两个整数,计算并输出两个数之和。

2、程序代码:#include “stdio.h”void main(){int a,b,sum;printf(“Please input two integer numbers:\n”);scanf(“%d%d”,&a,&b);sum=a+b;printf(“%d+%d=%d”,a,b,sum);}3、具体操作:(1)输入程序,按Ctrl+F9。

若在运行后有词法或语法错误,则根据提示进行修改,再进行调试,直到没有语法错误。

(2)运行后,依下列不同的方式输入数据,查看程序执行结果。

① 12<Spacebar>34 ↙② 12 ↙34 ↙③ 12<Tab>34 ↙【实验分析与讨论】1、总结C程序的基本结构和书写规则。

2、分析调试过程中常见的错误提示和解决策略。

3、掌握调试过程中问题解决的方法和思路【DIY】一、改错:实现求三个数的平均值。

#include <stdio.h>void main(){ float a,b,c,sum;float average;a=10; b=20; c=35;average==sum/3;printf(“the average is %4d”,average);}二、填空:实现从键盘中读取两个浮点型数据,相乘之后输出结果,要求结果须保留4位小数。

#include“stdio.h”void main(){ ___1___ a,b,c;printf(“please enter two numbers”); scanf(“%f%f”,&a,&b);c=___2___;printf(“c=___3___”,c);}三、编程1、编写程序,实现对两个整数进行四则运算。

C语言正式上机题

C语言正式上机题

C语⾔正式上机题C语⾔上机实验题⽬1 打印图形1.输⼊n值,打印下列图形:**************** 当n = 4时2.输⼊n值,打印下列⾼和上底均为n 的等腰梯形:**************************** 当n = 4时3.输⼊n值,打印下列⾼和下底均为n 的等腰梯形:**************************** 当n = 4时4.输⼊n值,打印下列⾼和上底均为n的等腰空⼼梯形:****** ** ** ************** 当n = 5时5.输⼊n值,打印下列⾼和下底均为n的等腰空⼼梯形:************** ** ** ****** 当n=5时6.编写程序打印下列上三⾓形式的乘法九九表:1 2 3 4 5 6 7 8 9 ——————————————————1 2 3 4 5 6 7 8 94 6 8 10 12 14 16 1825 30 35 40 4536 42 48 5449 56 6364 72817.编写程序打印下列乘法九九表:1 2 3 4 5 6 7 8 9 ——————————————————8164 7249 56 6336 42 48 5425 30 35 40 4516 20 24 28 32 369 12 15 18 21 24 274 6 8 10 12 14 16 181 2 3 4 5 6 7 8 98.编程打印数字⾦字塔:11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 5 4 3 2 11 2 3 4 5 6 7 6 5 4 3 2 11 2 3 4 5 6 7 8 7 6 5 4 3 2 11 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 9.编程打印数字⾦字塔:1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 11 2 3 4 5 6 7 8 7 6 5 4 3 2 11 2 3 4 5 6 7 6 5 4 3 2 11 2 3 4 5 6 5 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 110.输⼊n值,打印边长为n的空⼼正六边形:******* ** ** ** ** ** ** ** ** ******* 当n = 6时11.编写程序输出下⾯的图形,要求输⼊顶⾏字符和图形的⾼。

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

{ int max; if(x>y) { if(x>z) max=x; else max=z; } else { if(y>z) max=y; else max=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。90 分以上为 A,80-89 分为 B, 70-79 分为 C,60-69 分为 D,60 分以下为 E。要求输入一个成绩并打印出对应的等级制 成绩。要求用 switch 语句完成。 #include <stdio.h> void main() { int grade,c; printf("请您输入一个成绩:"); scanf("%d",&grade); while(grade>100||grade<0) { printf("您输入了一个错误的成绩!请重新输入\n"); scanf("%d",&grade); } c=grade/10;
int n; for(n=1;n<=10;n++) { t=t*n; s=s+t; } printf("1!+2!+3!+...+10!的和是:%ld\n",s); } 1!+2!+3!+...+10!的和是:4037913 设数列为 1,3,5,7,9,11,13,15,17,19,动态输入在数组 array 中,然后顺序打印 输出该数列,再逆序打印输出该数列。 #include <stdio.h> #define N 10 void main() { int array[10]; printf("请您输入 10 个整数:\n"); int i=0; for(i=0;i<N;i++) scanf("%d",&array[i]); printf("您输入的 10 个整数的顺序排列是:\n"); for(i=0;i<N;i++) printf("%-4d",array[i]); printf("\n"); printf("您输入的 10 个整数的逆序排列是:\n"); for(i=N-1;i>=0;i--) printf("%-4d",array[i]); printf("\n"); } 将 3x3 阶二维数组的关于主对角线对称的元素互换。二维数组的第 1 至 3 行元素分别为 1、 2、3、4、5、6、7、8、9。用矩阵形式分别输出互换前、后的数组元素值。 #include <stdio.h> void main() { int i,j,t,array[3][3]={1,2,3,4,5,6,7,8,9}; printf("Before Exchanged:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%5d",array[i][j]); printf("\n");
} n--; printf("当 n 是%d 时,M 的值为%f\n",n,M); } 100 匹马驮 100 担货,大马一匹驮 3 担,中马一匹驮 2 担,小马一匹驮 0.5 担,计算大、中、 小马数目并输出。 #include <stdio.h> void main() { int big,mid,small,sum=0; for(big=0;big<33;big++) for(small=0;small<100;small+=2) for(mid=0;mid<50;mid++) { if(3*big+2*mid+small/2==100&&big+mid+small==100) { printf("big:%d\t,mid:%d\t,small:%d\n",big,mid,small); sum++; } } printf("一共有%d 种组合方式\n",sum); } 求 sum=1!+2!+3!+...+10! ,并输出结果。 #include <stdio.h> void main() { float s=0,t=1; int n; for(n=1;n<=10;n++) { t=t*n; s=s+t; } printf("1!+2!+3!+...+10!的和是:%e\n",s); } 注意该程序的结果为:1!+2!+3!+...+10!的和是:4.037913e+006 是以科学计数法表示的结果,因为 int 的定义范围只能以此表示,如果用 long int 来输出, 则可以得到正常表示的结果 #include <stdio.h> void main() { long s=0,t=1;
switch(c) { case 10: case 9: grade='A';break; case 8: grade='B';break; case 7: grade='C';break; case 6: grade='D';break; default: grade='E'; } printf("您输入的成绩的等级为:%C\n",grade); } 计算当 n 为何值时,不等式 sum=1 + 1/2 + 1/3 +… + 1/n >limit 成立,输出 n 对应的 sum(limit 从键盘输入,要求用 while、或 do... while 语句,limit=10) 。 #include <stdio.h> void main() { float n=0,sum=0,limit=0; printf("请输入一个 limit 的值:"); scanf("%f",&limit); while (sum<=limit) { n++; sum=sum+1/n; } printf("此时 sum 的值是:%f\n",sum); printf("此时 n 的值为%f\n",n); } 计算 M=11+ 22+ 33+…+ NN,直到 N 等于 15 为止,输出 N 和对应的 M。 (要求用 for 语句 做) #include <stdio.h> void main() { int n; float M; M=0.0; for(n=1;n<10;n++) { M=M+(n+10*n); } for(n=10;n<=15;n++) { M=M+;3;i++) for(j=0;j<i;j++) { t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t; } printf("After Exchanged:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%5d",array[i][j]); printf("\n"); } }
求两个数之和。在两种情况下完成: ①数据在程序内部定义变量时赋初值,或者通过赋值语句赋值。 ②数据通过 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)
相关文档
最新文档