C程序设计教程与实验实验答案
c程序设计实验参考答案
main( )
{ float a,b,c;
float s,v;
scanf("%f,%f,%f,%f",&a,&b,&c);
s=a+b+c;
v=s/3.0;
printf("\n%7.1f,%7.1f",s,v);
}
实验五参考答案
一.1、a=10,b=30,c=10
}
2、main()
{int i;
double m=100000,n,s;
n=0.01;
s=0;
for(i=1;i<=30;i++)
{s+=n;
n=n*2;
}
printf("%f %f\n",s,m*30 );
}
实验八参考答案:
一.1、s=12345
2、7,
5,
3,
3、<1,2>=6
二.1、% for(j=k;j>0;j--)
第4行改为scanf("%d",&a[i]);
第12行改为printf("av=%d\n",av);
四.1、分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,取出其中两种作为参考。
方法一:起泡排序
从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比
{ case 10:
case 9: ch='A'; break;
case 8: ch='B'; break;
c语言程序设计案例教程 实验项目-设计性题目参考答案
C语言程序设计案例教程(含实验)设计性实验的程序参考答案实验项目一 C程序的编辑、编译、连接和运行题目:编写程序,要求屏幕上显示如下信息:************************ This is a C program .************************程序:#include <stdio.h>void main(){printf(“***********************”);printf(“* This is a C program .*”);printf(“***********************”);}实验项目二数据类型、运算符、表达式题目(1)程序填空:输入1 个实数x,计算并输出其平方根(保留1 位小数)。
填空1.double x,root;2.root=sqrt(x);(2)输入一个大写英文字母,输出相应的小写字母。
填空1.ch=ch+32;实验项目三顺序结构程序设计题目(1)编写程序,输入三角形的三边长a、b、c,求三角形面积area。
程序代码:#include <stdio.h>#include <mach.h>main(){float a,b,c,s,arer;printf(" 请输入三角形的三个边a,b,c:\n");scanf("%f,%f,%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("三角形的边为a=%7.2f, b=57.2f, c=%7.2f\n",a,b,c);printf("三角形的面积area=%7.2\n ",area);(2)设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
C语言程序设计练习指导书实验答案
(2)以下程序输入圆的半径,求圆面积。请将程序中的5处语法错误和逻辑错误改正。
#include "stdio.h"
void main()
{ int r;
float s;
printf("Enter r:");
scanf("%d", &r);
s=3.14159*r*r;
}
}
(2)已知鸡兔共有30只,脚共有90个,下面程序的功能计算并输出鸡兔各有多少只,请改正程序中的错误。
#include "stdio.h"
void main()
{ int x,y;
for(x=1;x<=30;x++)
{ y=30-x ;
if(2*x+4*y==90)printf("%d,%d\n",x,y) ;
0 x<0
y= x 0<=x<10
10 10<=x<20
-0.5x+20 20<=x<40
#include "stdio.h"
void main()
{ int a=1,b=2,c=3;
float d=4,e;
e=a/((b+c)*d);
printf("%f\n",e);
}
3.2 顺序结构程序设计
1、改错题
(1)以下程序计算并输出长方形面积和体积,请改正程序中的错误。
printf("s=%f\n",s);
}
2、填空题
C程序设计实验报告(答案)
C程序设计实验报告(答案)《C程序设计》实验报告班级:学号:学期:2009--2010学年第⼆学期姓名:《C程序设计》实验报告学期:2009--2010学年第⼆学期教师姓名:教研室:软件⼯程教研室实验1 熟悉C语⾔程序的运⾏环境,掌握数据描述1.1 实验⽬的1.了解在开发环境中如何编辑、编译、连接和运⾏⼀个C语⾔程序。
2.通过运⾏简单的C语⾔程序,初步了解C语⾔程序的结构特点。
3.掌握C语⾔数据类型的概念,学会使⽤C语⾔的相关运算符构成表达式。
1.2 实验预习1.熟悉Turbo C的启动和退出及Turbo C中的编辑、编译、连接和运⾏命令。
2.了解下列命令及函数:include、main、printf、scanf。
3.熟悉Turbo C环境下每个菜单项的功能及相关命令对应的操作。
4.各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。
int、short (int)、long (int)、unsigned (int)、float、double、char、void 5.各类运算符的优先级和结合规则。
6.常量与变量的区别和联系。
表1-1 Turbo C主菜单项功能表表1-2 Turbo C提⽰⾏功能表表1-3 Turbo C快捷操作表4.熟悉Turbo C环境下的块操作。
表1-4 基本光标命令功能操作表表1-5 快速光标移动命令功能操作表表1-6 插⼊与删除命令功能操作表表1-7 块操作命令功能操作表表1-8 其他命令功能操作表1.3 实验任务1.输⼊下列程序,记录在Turbo c 下的操作⽅法。
#includemain(){printf(“I am a student!”);}环境的启动操作:我的电脑—磁盘(各机房磁盘⽬录有所不同)—Turbo C⽂件夹—tc。
Exe 。
程序的编译⽅法:快捷键是 Alt+F9 ;菜单操作是Compile—compile to OBJ程序的保存⽅法:快捷键是 F2 ;菜单操作是 File--Save程序的运⾏⽅法:快捷键是Ctrl+F9;菜单操作是 Run运⾏结果的查看:快捷键是 Alt+F5 ;菜单操作是 Run—User Screen环境的退出操作:快捷键是 Alt+X ;菜单操作是 File--Quit4.现欲将编好的上例程序以⽂件名my.c保存⾄当前⽬录下,请阐述⽅法;当重新进⼊TC对其进⾏简单修改后欲将其另存⾄C 盘SY⽂件夹下(SY⽂件夹请⾃⾏创建),叙述⽅法。
c语言程序设计实验.设计.习题.答案.顺序结构与逻辑运算
}
实验四部分
4-1-a该程序的功能是:输入两个数:a、b,判断a*a+b*b的值,若a*a+b*b的值等于3或1,则y=a+b;若a*a+b*b的值等于0,则y=b-a;若a*a+b*b的值等于其他值,则输出“eerror”;最后输出y的值。
运行结果画面:
#include<stdio.h>
main()
{
int a,M;
scanf("%d",&a);
M=a>0?a:-a;
printf("abs(a)=%d\n",M);
}
4-4运行结果画面:
#include<stdio.h>
main()
{
int c,t,m;
printf("input the number of coat and trousers your want buy:\n");
scanf("%d",&x);
h=x/60;
m=x%60;
printf("%d小时%d分钟",h,m);
}
3-7我使用的算法:进行千分位转换,四舍五入。
运行结果画面:
#include<stdio.h>
main()
{
double x;
scanf("%lf",&x);
printf("%7.2f\n",x);
怎样终止调试状态(程序复位)?在菜单栏中选择“调试”,然后选择“StopDebugging”。
单步调试状态下,向下运行一条语句的操作方法(分两种情况回答,第一种,跟踪到自定义函数内部,第2种,不跟踪到自定义函数内部):第一种选择“Step Into”,跟踪到自定义函数内部;第2种选择“Step over”,不跟踪到自定义函数内部
C语言程序设计实验指导含答案
C语言程序设计实验指导含答案实验一:C语言程序设计基础实验内容:本实验主要以C语言的基础语法为主,通过一些简单的示例和练习来帮助学生熟悉C语言的基本概念和语法规则。
实验步骤:1. 编写一个简单的C程序,输出"Hello, World!"。
要求程序能够顺利编译并执行。
答案:#include <stdio.h>int main(){printf("Hello, World!");return 0;}2. 基于上一题的程序,修改代码,要求程序输入一个整数,并将其乘以2输出。
答案:#include <stdio.h>int main(){int num;printf("请输入一个整数:");scanf("%d", &num);printf("乘以2的结果为:%d", num * 2);return 0;}3. 编写一个C程序,输入一个圆的半径,计算并输出其面积和周长。
要求保留2位小数。
答案:#include <stdio.h>#define PI 3.14159int main(){float radius;printf("请输入圆的半径:");scanf("%f", &radius);float area = PI * radius * radius;float circumference = 2 * PI * radius;printf("圆的面积为:%.2f\n", area);printf("圆的周长为:%.2f\n", circumference);return 0;}实验二:循环和判断语句实验内容:本实验主要通过不同的练习来帮助学生熟悉和掌握C语言中的循环和判断语句的使用方法。
《C语言程序开发》实验报告和参考答案
《C语言程序开发》实验报告和参考答案1实实验报告课程名称:C语言程序开发学生姓名:学生学号:专业班级:指导教师:实验日期:2目录实验一循环结构程序设计(一)求1+2+3+.......+100,1100nn(二)输出100~200之间的不能被3整除的数。
实验二数组及其应用(一)有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
(二)输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
实验三函数及其应用(一)有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。
问第4个学生岁数,他说比第3个学生大2岁。
问第3个学生,又说比第2个学生大2岁。
问第2个学生,说比第1个学生大2岁。
最后问第1个学生,他说是10岁。
请问第5个学生多大。
(二)用选择法对数组中10个整数按由小到大排序,一维数组名作函数参数。
实验四指针及其应用(一)将若干字符串按字母顺序(由小到大)输出。
(二)有a个学生,每个学生有b门课程的成绩。
要求在用户输入学生序号以后,能输出该学生的全部成绩。
用指针函数来实现。
3实验一循环结构程序设计实验题目:(一)求1+2+3+.......+100,1100nn(二)输出100~200之间的不能被3整除的数。
实验目的1.掌握循环语句的执行过程及用法2.初步掌握循环程序设计的基本技巧3.掌握用while语句,do-while语句和for语句实现循环的方法4.掌握多重循环的使用(一)实验步骤1.题目分析2.源程序代码3.运行结果(二)实验步骤:1.题目分析源程序代码3.运行结果4实验二数组及其应用实验题目:(一)有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
(二)输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
实验目的1.掌握一维数组的定义及其元素的引用方法2.掌握利用一维数组实现一些常用算法的基本技巧3.掌握二维数组的定义及其应用4.掌握字符数组和字符串函数的使用5.掌握有关二维数组的基本编程技巧(一)实验步骤:1.题目分析2.源程序代码:3.运行结果(二)实验步骤:1.题目分析2.源程序代码3.运行结果5实验三函数及其应用实验题目:(一)有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。
C语言程序设计实验实验指导书及答案
实验一熟悉C程序运行环境班级学号姓名成绩一、实验目的1. 熟悉C语言Visual C++6.0 调试环境。
2. 掌握C程序的编辑、调试及运行。
二、实验内容项目 1. 调试并运行下面程序,并写出运行结果:#include <stdio.h>int main(){printf( “Good morn\ing”)!;printf( “Hello,world!\n ”);return 0;}运行结果(注意,按照屏幕输出格式写):项目 2. 调试并运行下面程序,并写出运行结果:#include <stdio.h>int main(){int a , b , sum; /* 定义变量*/a=23; b=56; /* 为变量赋值*/sum=a+b; /* 计算两个变量的和*/printf( “sum is %d\n”,sum); /* 输出计算结果*/return 0;}运行结果:项目 3. 调试并运行下面程序,并写出运行结果:#include <stdio.h>int max(int,int);int main(){int a , b , c; /* 定义变量*/a=23; b=56; /* 为变量赋值*/c=max(a,b); /* 调用max 函数,将得到的值赋给c*/ printf( “max is %d\n ”,c); /* 输出 c 的值*/return 0;}int max(int x,int y) /* 定义max 函数,函数值为整型*/ {int z; /* 定义变量*/if(x>y)z=x;elsez=y;return(z); /* 将z 的值返回*/}运行结果:三、提高部分3.试想,如果求10 个数中的最大者,则程序该如何编写。
程序代码运行结果:...常熟理工学院电气与自动化工程学院3 《C 语言程序设计》实验指导书实验二数据及其运算班级学号姓名成绩一、实验目的4.掌握C数据类型的概念、熟悉整型、字符型和实型基本类型的常量的用法;学会三种基本类型变量的定义、赋值和使用方法。
C语言程序设计实验指导书课后答案
实验一(1)编程求37+29的值,实习VC环境。
#include<>void main(){(int a,b,sum;a=37;b=29;sum=a+b;printf("sum=%d",sum);&}(2)从键盘输入三个整数,求出最大数并输出。
#include<>》void main(){int a,b,c,y;int max(int x,int y);printf("input a,b,and c:");】scanf("%d,%d,%d",&a,&b,&c);y=max(a,b);y=max(y,c);printf("\nmax=%d\n",y);}&int max(int x,int y){int z;if(x>y) z=x;else z=y;~return(z);}(3)通过上机实践,运行下列程序并分析输出结果。
!A 程序代码#include<>void main(){char ch='a';…printf("%c对应的ASCII码是:%d\n",ch,ch);}程序输出结果:a对应的ASC||码是:97B 程序代码#include<>\void main(){int a=168;float b=;float x=,y;~printf("a=%5d\n",a);printf("a=%-5d\n",a);printf("b=%\n",b);printf("b=%e\n",b);y=(int)(x*100+/;}printf("x=f,y=%f\n",x,y);}程序输出结果:a=168《a=168b==+002x=f,y=`C程序代码#include<>void main(){int a=168;(printf("十进制数%d对应的八进制数是%o\n",a,a);printf("十进制数%d对应的十六进制数是%x\n",a,a); }程序输出结果:十进制数168对应的八进制数是250&十进制数168对应的十六进制数是a8、,实验二顺序结构已知a=,b=,c=,计算s=-4ac的结果并输出。
c程序设计实验参考答案
c程序设计实验参考答案在计算机科学领域中,C程序设计是一门重要的课程,通过实验来加深对C语言的理解和应用,提高编程技巧和问题解决能力。
本文将提供一些C程序设计实验的参考答案,帮助学生更好地完成实验任务。
1. 实验一:基础语法练习实验目的:熟悉C语言的基础语法,掌握变量定义、运算符使用和基本IO操作等。
```c#include <stdio.h>int main() {int a = 5, b = 3;int sum, product;sum = a + b;product = a * b;printf("The sum of a and b is %d\n", sum);printf("The product of a and b is %d\n", product);return 0;}```2. 实验二:条件语句和循环结构实验目的:学习和掌握if-else语句、switch-case语句以及while和for循环的基本用法。
```c#include <stdio.h>int main() {int score;printf("Please enter your score: ");scanf("%d", &score);if (score >= 90) {printf("Excellent!\n");} else if (score >= 80) {printf("Good job!\n");} else if (score >= 70) {printf("Keep it up!\n");} else {printf("You need to work harder!\n");}int i;for (i = 1; i <= 10; i++) { if (i % 2 == 0) {printf("%d ", i);}}printf("\n");int j = 1;while (j <= 10) {if (j % 2 != 0) {printf("%d ", j);}j++;}printf("\n");return 0;}```3. 实验三:数组和字符串实验目的:熟悉数组和字符串的定义、初始化和基本操作,学习使用数组和字符串解决问题。
C语言程序设计习题解析与实验指导(含答案)
样采用指数形式,但尾数部分被省略了,也不合法;答案 C 采用小数形式,其小数部分可以省略;
答案 D 表示的是整型常量。因此本题选择答案 C。
3. 下列不合法的常量是
。
A.'\x4A'
B." "
C. .8e0
D.'\483'
【参考答案】D
【解析】此题考查的是各种数据类型常量的表示方法:答案 A 是一个转义字符常量,“\x”后
的程序叫做目标程序。由于计算机只能识别二进制码,因此用机器语言编写的源程序就是计
算机能直接识别并运行的目标程序,二者之间无需经过任何翻译;而用汇编语言编写的源程
序需要经过汇编程序汇编才能得到对应的目标程序;用高级语言编写的源程序经过相应的编
译器编译或者用解释的方式得到目标程序,不同语言对应的编译程序或者说编译器不一样。
一、单选题
1.以下哪一个可以作为正确的变量名
。
A. R&D
B._filename C.for D.$X;
【参考答案】B
【解析】此题考查的是标识符的命名规则:标识符是以字母或下划线开头,后面跟字母、
数字、下划线的任意字符序列。答案 A 中的变量名使用了“&”号,不符合要求;答案 C
是关键字,而用户自定义标识符不能使用关键字;答案 D 的变量名以“$”开头,不符合以
2
主教材习题答案及解析 1-3 章
输入设备:键盘、光电笔、扫描仪、鼠标、摄像头、数码相机、手写输入板、游戏杆、 麦克风;
输出设备:打印机、音响、显示器、绘图仪; 既是输入设备又是输出设备:U 盘、SD 卡、光盘、触摸屏、硬盘。 【解析】根据输入设备、输出设备、外存储器的功能以及这些硬件本身的功能区分。 4.简述源程序与目标程序的关系。 【参考答案】 程序员用某种编程语言所编写的程序称为源程序;计算机能直接执行的程序称为目标程 序。目标程序的操作码和操作数都是 0/1 序列,而源程序却不一定是 0/1 序列。源程序必须 转换为目标程序计算机才能读懂并执行。 用机器语言编写的源程序就是目标程序;用汇编语言编写的源程序必须用汇编程序经过 汇编得到目标程序;用高级语言(不是全部)编写的源程序必须用特定的编译程序经过编译 得到目标程序。但并非所有的高级语言编写的源程序都会被编译为目标程序,有的高级语言 例如 BASIC 语言的源程序就是通过解释方式执行程序的,就是边扫描边解释,逐句输入逐 句翻译,计算机一句句执行,并不产生目标程序。 【解析】根据教材 1.2.2 小节的知识。 5.简述 C 程序的开发过程。 【参考答案】 一个 C 程序从编写到执行出结果一般需要 6 个步骤:编辑、预处理、编译、链接、装 载和执行。下面是这几个步骤所完成的任务。 (1)编辑 编辑是通过输入设备将 C 语言源程序录入到计算机中,生成扩展名为“.c”的源文件。 (2)预处理 预处理是指通过预处理器对程序中的预处理指令(它们是为优化代码而设计的)进行转 译。每条预处理指令以符号“#”开头。 (3)编译
高级语言程序设计(C)实验与练习答案
#include <stdio.h>
main()
{
int x;
float y;
printf("enter x,y:");
scanf("%d%f",&x,&y);
printf("x+y=%.1f\n",x+y);
}
(2)下列程序的功能为:设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据r、h,输出计算结果,输出时要求有文字说明,取小数点后2位数字。
printf("%d - %d=%d\n",a,b,m);
printf("%d * %d=%d\n",a,b,f);
printf("%d / %f=%f\n",a,2,d);
}
运行结果:
2.改错题
(1)下列程序的功能为:计算x*y的值并将结果输出;请纠正程序中存在错误(程序中有8处错误),使程序实现其功能,程序以文件名sy1_2.c存盘。
#include "stdio.h"
main()
{
int x,y;
printf("请输入两个整数\n");
scanf("%d%d",x, y);
printf("初始状态下的x:%d y: %d\n");
x=x+y
y=x-y;
x=x-y;
printf("最终状态下的x:%d y: %d/n",x,y);
x=2.0*a*b/((a+b)*(a+b));
《C语言程序设计》实验设计习题答案
实验三3.4编写程序,用getchar函数读入两个字符c1,c2,然后分别用putchar函数输出void main(){char c1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);putchar('\n');printf("%c %c\n",c1,c2);}3.5把790分钟换成用小时和分钟表示,然后输出。
void main(){int s=790;printf("%d小时",s/60);printf("%d分钟",s%60);}3.6将读入三个数a,b,c,然后交换它们的值,把a的值给b,把b的值给c,把c的值给a.main(){int a,b,c,t;scanf("%d,%d,%d",&a,&b,&c);t=a;a=b;b=c;c=t;printf("%d,%d,%d",a,b,c);3.7输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后输出此数,验证处理是否真确。
#include<stdio.h>void main(){float x,s,a;int z;scanf("%f",&x);a=100*x+0.5;z=(int)(a);s=z/100.0;printf("%.2f\n",s); }main(){int a,b,t;double c;scanf("%lf",&c);b=100*c;t=1000*c;a=t%10;if (a>=5) b=b+1;else b=b+0;c=1.0*b/100;printf("%7.2lf/n",c); return 0;}void main(){int x,y;scanf("%d",&x);if(x<0&&x>-5) y = x ; if(x==0) y = x-1;if(x<10&&x>0) y = x+1; printf("%d",y);}实验四4.2不嵌套if语句void main(){int x,y;scanf("%d",&x);if(x<0&&x>-5) y = x ;if(x==0) y = x-1;if(x<10&&x>0) y = x+1;printf("%d",y);}法二:嵌套if语句void main(){int x,y;scanf("%d",&x);if((x>-5)&&(x<0)) y=x;else if(x==0) y=x-1;else if(x<10&&x>0) y=x+1;printf("%d",y);}4.3如下程序运用条件运算符求变量的绝对值?void main(){int a,M;scanf("%d",&a);M=a>0?a:-a;printf("abs(a)=%d",M);4.4某服装店经营套服,也可单件出售,若买的不少于50套,每套80元,不足50套的每套90元,只买上衣每件60元,只买裤子每条45元,(读入所买上衣C和裤子t的件数,计算应付款m。
C++程序设计习题与实验教程参考答案(习题部分)
第1章概述一、选择题题号 1 2 3 4答案 B B B A二、填空题1.主或main2.# include<iostream.h> 或# include”iostream.h”3.①编译②连接(构件)4.{ }5.;6.①.cpp ②.obj ③.exe三、编程题#include<iostream.h>void main(){cout<<"我的姓名是XX,"<<’\n’<<”我的学号为XXX”<<endl;}第2章数据类型与表达式一、选择题题号 1 2 3 4 5 6 7 8 9 答案 A A D C C B A C C 题号10 11 12 13 14 15 16 17 18 答案 A D D D D B C B B勘误:3. 其中“a=(m+n,m--n);”改为“a=(m+n,m-n);”二、填空题1.double2.1.53.①fabs() ②math.h4.?:5.06.x>5&&!(x%2) 或x>5&&x%2!=07.true 或18.b%a==0&&c%a==09.(float)x 或float(x)10.5.411.①1 ②212.①4 ②5勘误:a和b的值分别为①、②。
13.①20 ②32 ③32 ④16 ⑤2014.①A ②B15.①3 ②116.9.017.1318.4三、编程题1.交换两个整数的位置#include<iostream.h>void main(){int x,y,t;cin>>x>>y;cout<<x<<’\t’<<y<<endl;t=x;x=y;y=t;cout<<" 交换后的两个数为:"<< x<<’\t’<<y<<endl;}2.求三角形面积#include <iostream.h>#include <math.h>void main (void){int a,b,c;double s,area;cout<<" 输入三角形三边长a,b,c:"<<endl;cin>>a>>b>>c;s=(a+b+c)/2.0 ;area=sqrt(s*(s-a)*(s-b)*(s-c));cout<<"三角形面积为:"<<area<<endl;}第3章流程控制语句一、选择题题号 1 2 3 4 5 6 7 8 9 10 答案 C B B D D C C B C B题号11 12 13 14 15 16 17 18 19 20 答案 D A C A D C D B B A 题号21 22 23 24 25 26 27 28 29 30 答案 A C B C A B D A D D勘误:3. A选项改为“if(x>3)if(y>5)z=6;else z=7”7. 其中“合法的”改为“不合法的”二、填空题1.switch2.字符型3.44.①5 ②3 ③y=05.1,**6.5,y=-87.2,3,y=58.3,09.4,0,B10.1,2,311.5,0,D12.0,5,5013.①1 ②514.***15.①@@### ②###16.012340123417.357111318.319.①y1*y2>0 ②x1=x,y1=3*x1*x1*x1-5*x1+13 ③x2=x20.①n<999 ②b=n/10%10 ③(a+b+c)%5==0勘误:“各个数位的数字之和等于5的整数”改为“各位数字之和是5的倍数的整数”21.①1 2 ②1 522.(100-cock-hen)%3==0)勘误:for(cock=0;cock<=20;cock++)for(hen=0;hen<=33;hen++)23.①n++ ②r>eps24.①isprime=1 ②j>125.①int r=1 ②break26.①x<=200 ②x%2==027.①c!=' ' ②c>='A'&&c<='Z'||c>='a'&&c<='z' ③c=cin.get()28.①s=0 ②t+=i勘误:“t=1”改为“t=0”29.①s2=1 ②n ③s1+=n%10 30.①9 ②min>s ③n/=10三、编程题1.从大到小排列3个整数#include <iostream.h>void main(){int a,b,c,d;cin>>a>>b>>c;if(a<b){ d=a; a=b;b=d; }if(a<c){ d=a; a=c;c=d; }if(b<c){ d=b; b=c;c=d; }cout<<a<<'\t'<<b<<'\t'<<c<<'\n';}2.100~300满足条件的数#include <iostream.h>void main(){int k=0;for(int i=101;i<300;i+=2)if((i*i)%6==3){cout<<i<<'\t';k++;if(k%5==0)cout<<'\n';}cout<<'\n';}3.逆序显示16进制数#include <iostream.h>void main(){int a,k,n;cin>>a;k=a;while(k){n=k%16;k/=16;switch(n){case 10:cout<<'A';break;case 11:cout<<'B';break;case 12:cout<<'C';break;case 13:cout<<'D';break;case 14:cout<<'E';break;case 15:cout<<'F';break;default:cout<<n;}}cout<<'\n';}第4章数组一、选择题题号 1 2 3 4 5 6 7 8 9 10 11 答案 D D B B B C D B A B B 题号12 13 14 15 16 17 18 19 20 21 22 答案 D C B A D B A A B C C勘误:15. 其中“s3[20]=”abc””改为“s3[20]=”abc ””(字符c后有一个空格)二、填空题1.①3 ②242.首地址3.①i ②i+j ③i/7 ④i%7 ⑤i*7+j4.①7 ②8 ③7 ④505.①字符(char)型②cin.getline(str,80);6.1234567.FMBS勘误:“for(int i=0;i<4;i++,p++)cout<<*p[i];”改为“for(int i=0;i<4;i++)cout<<*s[i];”8.①a:5 d:1 e:4 f:1 g:1②i:1 l:1 m:1 o:3 r:3③ s:2 u:1 y:39.①It is 4:30 pm. ②I ③43010.①<100: 3 ②<200: 2 ③<300: 5 ④<400: 2 ⑤ <500: 311.D8012.①500 ②800 ③90013.①26 ②2014.①s2+31 ②n ③t%2+'0' ④!strcmp(s1,p2) 15.①num[i++] ②s=0 ③flag=1 ④j<=k16.①i<len1 ②j>=len2 ③b[k]=b[k-1] ④++i%5==0 17.①pa>=a&&pb>=b ②j+k+carry ③ps++ ④p<ps18.①t[n++] ②continue ③t[k+1]=t[k] ④n++19.①*p1 ②*p1++ ③p1++,p2++ ④*p1='\0' 20.①n/10%10 ②i==j||j==k||i==k ③i*i==n ④(i+1)%5==0 21.①char *p3 ②*p1>='A'&&*p1<='Z'||*p1>='a'&&*p1<='z'③p2++ ④char (*p4)[20]22.①&a[i] ②*p[k]<*p[j] ③int *t ④*p[i]三、编程题1.交换一维数组中的最大元素与最小元素的位置#include<iostream.h>void main(void ){int a[6]={18,16,19,15,11,8};int i,max,min,j,k,t;cout<<"原数组为:\n";for(i=0;i<6;i++)cout<<a[i]<<'\t';cout<<endl;for(j=k=0,max=min=a[0],i=1;i<6;i++){if(max<a[i])max=a[i],j=i;if(min>a[i])min=a[i],k=i;}t=a[j],a[j]=a[k],a[k]=t;cout<<"交换后的数组为:\n";for(i=0;i<6;i++)cout<<a[i]<<'\t';cout<<endl;}2.二维数组右移一列#include<iostream.h>#define ROW 3#define COL 4void main(void){int a[ROW][COL]={1,2,3,4,5,6,7,8,9,10,11,12},i,j,t;cout<<"移动前的数组为:\n";for(i=0;i<ROW;i++){for(j=0;j<COL;j++)cout<<a[i][j]<<'\t';cout<<'\n';}for(i=0;i<ROW;i++){t=a[i][COL-1];for(j=COL-1;j>0;j--)a[i][j]=a[i][j-1];a[i][j]=t; // a[i][0]=t;}cout<<"移动后的数组为:\n";for(i=0;i<ROW;i++){for(j=0;j<COL;j++)cout<<a[i][j]<<'\t';cout<<'\n';}}3.统计字符串中种类字符的个数#include<iostream.h>void main(){char str[50],*p=str;int con=0,num=0,eng=0,oth=0;cout<<"请输入一个字符串:";cin.getline(str,50);while(*p){if(*p<32)con++;else if(*p>='0'&&*p<='9')num++;else if(*p>='A'&&*p<='Z'||*p>='a'&&*p<='z')eng++;else oth++;p++;}cout<<str<<"中有控制字符"<<con<<"个,数字字符"<<num<<"个,英文字母"<<eng<<"个,其它字符"<<oth<<"个。
c语言程序设计实验题答案
c语言程序设计实验题答案【篇一:c语言程序设计及实验指导练习及习题参考答案(8--10)】8练习参考答案1、练习8-1. 如果有定义:int m, n = 5, *p = m; 与m = n 等价的语句是 b 。
a.m = *p; b. *p = *n; c. m = n; d. m = **p;8-2. 设计一个程序计算输入的两个数的和与差,要求自定义一个函数sum_diff(float op1, float op2, float *psum, float *pdiff),其中op1 和op2 是输入的两个数,*psum 和*pdiff 是计算得出的和与差。
解答:#include stdio.hint main (void){float op1, op2, sum, diff;void sum_diff(float op1, float op2, float *psum, float *pdiff);printf(“input op1 and op2: “);scanf(“%f%f”, op1, op2);sum_diff(op1, op2, sum, diff);printf(“%f+%f=%f; %f-%f=%f \n”,op1,op2,sum,op1,op2,diff);return 0;}void sum_diff(float op1, float op2, float *psum, float *pdiff){*psum = op1 + op2;*pdiff = op1 – op2;}8-3. 两个相同类型的指针变量能不能相加?为什么?解答:不能。
因为指针变量是一种特殊的变量,指针变量的值存放的是所指向变量的地址,两个地址相加并不能保证结果为一个有效的地址值,因而在c 语言中指针变量相加是非法的。
8-4. 根据表8.2 所示,这组数据的冒泡排序其实循环到第6 遍(即n-2)时就已经排好序了,说明有时候并不一定需要n-1 次循环。
c语言程序设计实验教程课后答案
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>struct Student {char name[50];int score;};int main() {struct Student students[3] = {{"Alice", 85},{"Bob", 90},{"Charlie", 78}};int i;printf("学生成绩列表:\n");for (i = 0; i < 3; i++) {printf("%s: %d\n", students[i].name, students[i].score);}return 0;}```问题4:编写一个C程序,实现字符串的反转。
C程序设计教程与实验实验答案
}
}
b[k]='\0';
puts(b);
}
Sy8-7
#include<stdio.h>
void main()
{
char s[30],*p=s;
int a,*q=&a,i;
gets(s);
*q=0;
for(;*p!='\0';p++)
if(*p>='0'&&*p<='9')
*q=(*q)*10+(*p-'0');
}
for(i=0;i<26;i++)
printf("%2c",'a'+i);
printf("出现的次数为:\n");
for(i=0;i<26;i++)
printf("%2d",a[i]);
printf("\n");
}
Sy8-4
#include<stdio.h>
main()
{
int a[8],*p;
int i,j,t,k;
*A=*A-26;
}
++A;
}
}
zlrJm(char *Z)
{
char *A=Z;
while(*A!='\0')
{
if('a'<=*A<='z'||'A'<=*A<='Z')
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int t,*max,*min,*end,*q;
end=p+n;
max=min=p;
for(q=p+1;q<end;q++)
{if(*q>*max) max=q;
if(*q<*min) min=q;
}
t=*max;
*max=*min;
*min=t;
}
Sy8-2
#include<stdio.h>
int len(char s[])
Sy8-1
#include<stdio.h>
void main()
{
int i;
static int a[8]={10,5,4,0,12,18,20,46};
void jhmaxmin();
printf("Original array:\n");
for(i=0;i<8;i++)
printf("%5d",a[i]);
num=num+k;
}
return(num);
}
Sy8-6
#include<stdio.h>
main()
{
int i,k=0;
char a[80],b[80],*p;
p=a;
gets(p);
while(*p)
{
for(i=1;p[i-1]!='\0';p++,k++,i++)
{
if(k%4==0) {b[k]=' ';k++;}
}
for(i=0;i<26;i++)
printf("%2c",'a'+i);
printf("出现的次数为:\n");
for(i=0;i<26;i++)
printf("%2d",a[i]);
printf("\n");
}
Sy8-4
#include<stdio.h>
main()
{
int a[8],*p;
int i,j,t,k;
void main()
{
iБайду номын сангаасt i,a[26];
char ch,str[80],*p=str;
gets(str);
for(i=0;i<26;i++)
a[i]=0;
while(*p!='\0')
{
ch=*(p++);
ch=ch>'A'&&ch<='Z'?ch+'a'-'A':ch;
if('a'<ch<='z'||'A'<=ch<='Z') a[ch-'a']++;
{
char mj[50];
printf("请输入一段需加密的字符:\n");
gets(mj);
printf("字符加密后为:");
zlrjm(mj);
puts(mj);
printf("字符解密后为:");
zlrJm(mj);
puts(mj);
}
Sy8-9
#include<stdio.h>
#include<string.h>
printf("\n字符中的数字为:%d\n",a);
}
Sy8-8
#include<stdio.h>
zlrjm(char *Z)
{
char *A=Z;
while(*A!='\0')
{
if('a'<=*A<='z'||'A'<=*A<='Z')
{
*A=*A+3;
if(*A>'Z'&&*A<'a'||*A>'z')
b[k]=*p;
}
}
b[k]='\0';
puts(b);
}
Sy8-7
#include<stdio.h>
void main()
{
char s[30],*p=s;
int a,*q=&a,i;
gets(s);
*q=0;
for(;*p!='\0';p++)
if(*p>='0'&&*p<='9')
*q=(*q)*10+(*p-'0');
char *zlr(char *A,char *B)
{
int i;
int lA=strlen(A),lB=strlen(B);
for (i=0;i<lB;i++)
A[lA+i]=*B++;
A[lA+i]='\0';
return A;
}
main()
{
char a[50],b[50];
char *t=a;
printf("/n");
jhmaxmin(a,8);
printf("Array after swapwing max and min: \n");
for(i=0;i<8;i++)
printf("%5d",a[i]);
printf("\n");
}
void jhmaxmin(int p[],int n)
printf("请输入两个字符串:\n请输入a字符串:\n");
gets(a);
printf("请输入b字符串:\n");
gets(b);
t=zlr(a,b);
printf("连接后的字符串为: %s\n",t);
*(p+k)=*(p+i);
*(p+i)=t;
}
}
for(i=0;i<8;i++)
printf("%5d",*(p+i));
}
Sy8-5
#include<stdio.h>
#include<string.h>
chnum(char*p);
void main()
{
char s[6];
int n;
gets(s);
p=a;
printf("Input the numbers:");
for(i=0;i<8;i++)
scanf("%d",p+i);
t=*p;
for(i=0;i<8;i++)
{
for(j=i;j<8;j++)
if(j==i||*(p+j)<t)
{
t=*(p+j);
k=j;
}
if(k!=i)
{
t=*(p+k);
{
char *p=s;
while (*p!='\0')p++;
return p-s;
}
main()
{
char s[80];
gets(s);
printf("\"%s\"include %d characters.\n",s,len(s));
}
Sy8-3
#include<stdio.h>
#include<string.h>
*A=*A-26;
}
++A;
}
}
zlrJm(char *Z)
{
char *A=Z;
while(*A!='\0')
{
if('a'<=*A<='z'||'A'<=*A<='Z')
{
*A=*A-3;
if(*A>'Z'&&*A<'a'||*A>'z'||*A<'A')
*A=*A+26;
}
++A;
}
}
main()
if(*s=='-') n=-chnum(s+1);
else n=chnum(s);
printf("%d\n",n);
}
chnum(char *p)
{
int num=0,k,len,j;
len=strlen(p);
for(;*p!='\0';p++)
{
k=*p-'0';
j=(--len);
while(j-->0) {k=k*10;}