c语言实验习题

合集下载

C语言程序设计 上机实验指导与习题 参考答案(第四版)

C语言程序设计 上机实验指导与习题 参考答案(第四版)

C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。

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

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

(4)在教师的指导下,学会使用在线评判系统。

二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。

includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。

(2)保存程序,取名为a1.c。

(3)按照第一章中介绍的方法,编译、连接和运行程序。

,则该题完成。

4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。

实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。

(2)保存程序,取名为a2.c。

(3)按照前二章中介绍的方法,编译、连接和运行程序。

(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。

45(6)按照第三章中介绍的方法进入在线评判系统。

(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。

(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。

(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。

C语言程序设计实验与习题(1-4)

C语言程序设计实验与习题(1-4)

ffB v vbvv bgbb实验一C程序运行环境及简单程序的运行2.程序改错并调试改正后的程序⑴下列程序的功能为:计算x*y的值并将结果输出,程序中有8处错误,尝试改正并上机调试之(程序以文件名sy1_2.cpp#include <stdio.h>void main{ int x=2;y=3;aA=x*yprint ("a=%d",a);printf(‘\n’);}⑵下列程序的功能为:输入圆的半径,计算圆面积并将结果输出;程序中有9处错误,尝试改正并上机调试之(程序以文件名sy1_3.cpp存盘)。

#include stdio.h;int mian();float r; area;printf("input r:\n"); scanf("%f",r);area=3.14159r*r;printf("r=%f , area=%f\n"3.编写程序并上机调试⑴输入三个整数a、b、c,显示出其中的最大值。

4.分析与总结⑴总结C程序的结构和书写规则。

⑵阅读:附件1-C语言程序的跟踪调试。

特别提示:当程序在编译时发现很多错误,此时应从上到下逐一改正,或改一个错误,就重新再编译,因为有时一个错误会引起很多错误信息。

12习题一一、选择题参考答案:1~5 C B A C D 6~10 C C A C B 11~14 A A C B二、综合题绘制NS 算法流程图。

(1)输入10个数,求其中的最大值。

(2)输入3个数,将它们升序排列输出。

(3)输入2个数,求它们的最大公约数。

(4)输入一元二次方程的系数a 、b 、c ,判断其根。

实验二顺序结构程序设计1.阅读程序,尝试写出程序的运行结果,然后输入并调试程序,对照其实际输出与分析的结果是否一致,若不一致,请找出原因。

⑴以下程序用于测试C中不同类型数据所占内存字节数,运行并体会sizeof运算符的使用方法。

C语言程序设计及实验指导练习及习题参考答案(8--10)

C语言程序设计及实验指导练习及习题参考答案(8--10)

C语言程序设计及实验指导练习及习题参考答案(8--10) 8练习参考答案1、练习8-1.如果有定义:intm,n=5,某p=&m;与m=n等价的语句是BA.m=某p;B.某p=某&n;C.m=&n;D.m=某某p;8-2.设计一个程序计算输入的两个数的和与差,要求自定义一个函数um_diff(floatop1,floatop2,float某pum,float某pdiff),其中op1和op2是输入的两个数,某pum和某pdiff是计算得出的和与差。

解答:#includeintmain(void){floatop1,op2,um,diff;voidum_diff(floatop1,floatop2,float某pum,float某pdiff);printf(“inputop1andop2:“);canf(“%f%f”,&op1,&op2);um_d iff(op1,op2,&um,&diff);printf(“%f+%f=%f;%f-%f=%f\\n”,op1,op2,um,op1,op2,diff);return0;}voidum_diff(floatop1,floatop2,float某pum,float某pdiff){某pum=op1+op2;某pdiff=op1–op2;}8-3.两个相同类型的指针变量能不能相加?为什么?解答:不能。

因为指针变量是一种特殊的变量,指针变量的值存放的是所指向变量的地址,两个地址相加并不能保证结果为一个有效的地址值,因而在C语言中指针变量相加是非法的。

8-4.根据表8.2所示,这组数据的冒泡排序其实循环到第6遍(即n-2)时就已经排好序了,说明有时候并不一定需要n-1次循环。

请思考如何改进冒泡排序算法并编程实现(提示:当发现一遍循环后没有数据发生交换,说明已经排好序了)。

解答:设置一个标志变量flag,进入一轮循环前设置为0,在循环中有发生数据交换就改写flag值为1。

C语言课后实验设计题目及答案

C语言课后实验设计题目及答案

C语⾔课后实验设计题⽬及答案C语⾔实验题⽬及答案1、实验项⽬⼀ C程序的编辑、编译、连接和运⾏题⽬:编写程序,要求屏幕上显⽰如下信息:***********************This is a C program .***********************程序:#includevoid main(){printf(“***********************\n”);printf(“This is a C programn .\n”);printf(“***********************\n”);}实验项⽬⼆数据类型、运算符、表达式题⽬(1)程序填空:输⼊1 个实数x,计算并输出其平⽅根(保留1 位⼩数)。

填空1.double x,root;2.root=sqrt(x);(2)输⼊⼀个⼤写英⽂字母,输出相应的⼩写字母。

填空1.ch=ch+32;1、#include "stdafx.h"#include "stdio.h"#include "math.h"int main(int argc, char* argv[]){printf("This is a Cprogram\n");return 0;}#include "math.h"int main(int argc, char* argv[]) {double x;printf("x=");scanf("%lf",&x);printf("%lf\n",sqrt(x));return 0;}2、实验项⽬三顺序结构程序设计题⽬(1)编写程序,输⼊三⾓形的三边长a、b、c,求三⾓形⾯积area。

(2)设圆半径r=1.5,圆柱⾼h=3,求圆周长、圆⾯积、圆球表⾯积、圆球体积、圆柱体积。

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语言程序设计综合实训题目

一、参考题目及选题(1)学生信息管理系统设计问题描述:学生信息包括:学号, 姓名, 年龄, 性别, 出生年月, 政治面貌, 籍贯, 家庭住址, 电话, E-mail等。

试设计一学生信息管理系统, 使之能提供以下功能:(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存)(3)学生信息浏览功能(4)学生信息排序、查询功能对信息进行排序, 可以按学号, 按姓名, 按性别, 按出生年月日, 按籍贯进行查询(5)信息统计a) 可以按性别, 按出生年, 按籍贯统计学生人数b) 可以按班级统计学生人数c) 可以按政治面貌统计学生人数按班级统计学生党员人数, 团员人数, 以及所占比例, 设计并输出统计报表。

(6)学生信息的删除与修改●设计要求:●界面比较美观;有一定的容错能力, 比如输入的成绩不在0~100之间, 就提示不合法, 要求重新输入;●最好用链表的方式实现。

算法分析:首先, 一个学生包括这么多的属性, 应该考虑定义一个结构, 其次, 我们应该考虑数据的存储形式:是定义一个数组来存储, 还是定义一个链表呢?在这里假如我们以数组的方式来存储, 当然可以, 但是我们知道, 假如我们定义一个数组的话, 我们首先必须知道学生人数大概是多少, 以便我们确定数组的大小, 但是题目中没有给出, 而且题目要求中有大量的删除、插入操作, 所以用链表的方式比较方便。

对于菜单的实现, 其实也比较简单, 首先我们用printf语句把程序的功能列出来, 然后等待用户输入而执行不同的函数, 执行完了一个功能后又回到菜单。

文件的读写操作大家参照书中的有关文件的章节。

(2)、学生综合测评系统每个学生的信息为: 学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。

考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%, 10%, 10%, 20%。

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

C语言程序设计练习题(答案)
I begin to study C language.
四、找出下面程序中的所有语法错误,然后在计算机上运行输出正确结果。
1.(1)Void应为void;(2)INT应为int;(3)“/* COMPUTE RESULT”后缺少“*/”;(4)“printf ("The answer is %i\n" sum);”应为“printf ("The answer is %d\n" ,sum);”
①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。如图1-2所示
图1-2选择新建
②在弹出的新建对话框中设置好相应的内容,如图2-2所示。要事先准备好保存文件的目录,例d:\lx目录。在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C语言程序的扩展名“.c”。设置好后,单击“OK”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c文件存放在D盘的LX目录下。
int main (void)
{
printf ("This is my first C program.\nAnd programming in C is even more fun.\n");
return 0;
}
实验4(1)计算33+56的和。
解题思路:将例1.2中变量值改为33与56代码如下:
#include <stdio.h>
int main( )
{int a,b,c;
a=2;b=3;
C=a+b;错误:C未定义
printf(“%d+%d=%d\n”,a,b,c);
return 0;
}
运行结果:2+3=5

c语言习题答案

c语言习题答案

实验一(1)编程求37+29的值,实习VC环境。

#include<stdio.h>void main(){int a,b,sum;a=37;b=29;sum=a+b;printf("sum=%d",sum);}(2)从键盘输入三个整数,求出最大数并输出。

#include<stdio.h>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<stdio.h>void main()实用文档{char ch='a';printf("%c对应的ASCII码是:%d\n",ch,ch);}程序输出结果:a对应的ASC||码是:97实用文档B 程序代码#include<stdio.h>void main(){int a=168;float b=123.456;float x=35.567,y;printf("a=%5d\n",a);printf("a=%-5d\n",a);printf("b=%6.2f\n",b);printf("b=%e\n",b);y=(int)(x*100+0.5)/100.0;printf("x=f,y=%f\n",x,y);}程序输出结果:a=168a=168实用文档b=123.46b=1.234560e+002x=f,y=35.567001C程序代码#include<stdio.h>void main(){int a=168;printf("十进制数%d对应的八进制数是%o\n",a,a);printf("十进制数%d对应的十六进制数是%x\n",a,a); }程序输出结果:十进制数168对应的八进制数是250十进制数168对应的十六进制数是a8实用文档实用文档实验二2.1顺序结构2.1.1已知a=1.5,b=5.3,c=2.9,计算s=-4ac的结果并输出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
k.一个自然数被 8 除余 1 ,所得的商被 8 除也余 1 ,再将第二次的商被8 除后余7 ,最后得到一个商为a。又知这个自然数被17除余4 ,所得的商被17除余15,最后得到一个商是a的2倍。编写程序求这个自然数。
l.用二分法求方程2X^3+4X^2+3X-6=0在(-10,10)之间的根 ,其中 X^n代表X的n次方。
j.输入一个字符串,以回车作为结束标志,然后将字符串中的字符排序(依照ASCII码的大小由低到高),并将排序后的字符串输出出来;
8.
a.编写函数实现void func(int a,int b,int c,int *pmax,int *pmin,float *pavg),求出a,b,c的最大值和最小值、平均值通过指针返回;
b.求出二维数组的主对角线之和、副对角线之和;
c.求出数组的上三角的平均值和下三角的平均值;
d.求出矩阵的周边元素之和;
e.判断矩阵是不是上三角矩阵;判断矩阵是不是下三角矩阵;
f.将矩阵转置,输出转置后的矩阵;
g.建立一个二维数组,将九九乘法表保存到数组中并且输出出来;
h.建立一个二维数组,数组的第一行保存26个小写字母,第二行保存26个大写字母;
p.编写一个函数求任意给两个日期(Y0年M0月DO日和Y1年M1月D1日)相差的天数。
1.
a.输入一个小数点后有多位数字的小数,实现将其保留三位小数,并输出;(3.141593.142,10.12345610.123)
b.输入一个4位整数,求其得各位数字的平方和;(12341+4+9+16=30).
c.定义字符型变量ch,写出六种给ch赋值字符’A’的代码;
d.编写程序输出26组大小写字母;(AaBbCc……….XxYyZz)
b.编写函数void swap(int*x ,int *y)交换想x和y指向变量的值;
c.编写函数int aSum(int *a ,int n)求出a所指向数组的前n项的和;
d.编写函数void cpyStr(char *stra,char *strb),将字符串strb复制给stra所指向的空间;
h.例如:若 n = 15,则应输出:The value is: 2209。
i.在字符串str中找出ASCii码值最大的字符,将其放在第一个位置上,并将该字符的原字符向后顺序移动。例如:调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容为:eABCDFGH。
j.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
d.输入一个字符串,再输入一个字符,然后将该字符在字符串出现的第一个删除掉,输出删除后的字符串;
e.输入一个字符串,再提示用户输入两个整型值n、m,要求将字符串第n个字符开始,删除m个字符,输出删除后的字符串;
f.输入一个字符串,再提示用户输入一个字符x,和一个整型值n,要求n小于字符串的长度,将x插入到下标为n的位置,输出插入后的字符串;
2.
a.输入三角形得三个边的边长,以此判断能否组成三角形,是什么形状的三角形;(等边三角形、等腰三角形、直角三角形、等腰直角三角形、一般三角形)
b.输入一个年份值,判断是否为闰年;
c.输入a、b、c三个整型变量,分别使用if语句和条件运算符求出三个数的最大值和最小值;
d.输入任意实数,求出其所对应的函数值(调用数学函数库)。
e.定义浮点型变量f1、f2,为f1赋值10的-30次,为f2赋值10的30次
f.定义一个单精度浮点型变量f和一个双精度浮点型变量d,为f和d都赋值3.14159265358979323846264338327950288,输出f和d得值,要求保留20位小数,观察输出结果;
g.输入华氏温度求摄氏温度。转换公式为c=5/9(f-32),输出结果取两位小数。
c.有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。
d.给定n个实数,输出平均值,并统计在平均值以下(含平均值)的实数个数。
e.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
f.打印出杨辉三角形(要求打印出10行)
g.求广义菲玻那契级数的第n项。广义菲玻那契级数的前n项为: 1,1,1,3,5,9,17,31,……
f.编写一个函数,求一个整型数的各位数字的立方和;
g.编写函数fun计算并返回分段函数的值:
x^2+x+6 x<0且x≠-3
f(x)= x^2-5x+6 0≤x<10且x≠2及x≠3
x^2-x-1 其它
h.编写一个函数,用递归法求阶乘;
i.编写一个函数,用递归法求fibonacci数列的的前n项,n为形参;
e.编写函数void catStr(char *stra,char *strb),将字符串strb连接到stra所指向的字符串的后面;
f.编写函数int cmpStr(char *stra,char *strb),将字符串strb和stra进行比较;
g.编写函数von),将将字符ch插入到字符串stra中第n个位置;
h.读入一元二次方程的三个系数,a,b,c,求出各种情况下方程的根,无解或输入数据不正确输出提示信息
3.
a.编写程序实现1+2+3+4+......+n,n由用户输入;
b.修改程序1,实现1+3+5+7+9+......2*n-1;
c.修改程序1,实现2+4+6+8+10+......2*n;
d.修改程序2,实现1+1/3+1/5+1/7+......1/(2*n-1);
b)求出数组的最大值、平均值;
c)将数组逆序,并输出逆序后的数组;
b.将数组分别使用选择排序法和冒泡排序法排序,并输出排序后的数组;
c.建立一个字符数组,将26个小写字母保存到数组中,并逆序输出;
d.用数组保存fibonacci数列的前20项;
6.
a.建立一个5行5列的二维数组,将1-25赋值给数组的元素,并将数组按矩阵形式输出;
m.已知X、Y、Z分别表示0~9中不同的数字,编程求出使算式XXXX+YYYY+ZZZZ=YXXXZ成立时X、Y、Z的值,并要求打印该算式。
n.输出1到100之间每位数的乘积大于每位数的和的数。例如:数字26,数位上数字的乘积12大于数字之和8。
o.求100-999之间的水仙花数说明:水仙花数是指一个三位数的各位数字的立方和是这个数本身。
g.提示用户输入两个字符串保存到字符数组str1和str2中,再输入一个整型值n,将str2代表的字符串插入到str1中下标为n的位置,输出插入后的字符串;
h.输入一个字符串,将字符串逆序,输出逆序后的字符串;
i.已有两个字符串,分别保存在字符数组str1[80]和str2[3]中,统计在str1保存的字符串中str2保存的字符串出现了多少次;(str2中的字符串长度为2)
o.请编写函数voidfun(char *s,char *t),将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。例如:当s串为"ABCD"时,则t串的内容应为"ABCDDCBA"。
p.
9.
a.有n个人围成一圈,顺序排号。从第一个人开始报数(从1到4报数),凡报到4的人退出圈子,问最后留下的是原来第几号的那位。(建议用链表实现)
i.建立二维数组a[4][3],并为数组输入值,求出数组每行的最大值保存到数组b[4]中,求出数组每列的最大值,并保存到数组c[3]中;
7.
a.输入一个字符串,以回车作为结束标志,并将字符串输出出来;
b.输入一个字符串,再输入一个字符,统计该字符在字符串中出现的次数;
c.输入一个字符串,统计字符串中字母、数字、空格出现的字数;;
h.编写函数int lenStr(char s[]),求字符串的长度;
i.编写函数intfindCh(char *str , char ch),找出字符ch在字符串str中出现的第一个位置;编写函数 void func(char *str),将str所指向字符串中的所有大写字母全变成小写字母;
j.编写函数intfunc(char *str),将字符串中所有的数字字符删除掉,并将新生成的字符串的长度作为返回值;比如“abc123xyz”过滤后“abcxyz”返回值为6
z=e的x次幂(x>10)
z=log(x+3) (x>-3)
z=sin(x)/((cos(x)+4)
e.输入一个成绩,输出此成绩对应的级别;(优、良、中、及格、不及格),要求分别使用if语句和switch语句;
f.判断一个字符是否为字母或者数字;
g.使用条件运算符实现让c等于a、b中较大的,d等于a、b中较小的,e等于a的绝对值。
j.编程输出下三角式的九九乘法表.
k.输出斐波那契数列的前20项,该数列的前两项都是1,以后各项是前两项之和。
l.实现1!+2!+3!.....+n!,n由用户输入;
m.实现1+(1+2)+(1+2+3)+(1+2+3+4)+.....+(1+2+3+4...+n),n由用户输入;
n.求1到100之间的偶数之积;
o.输入n和m,求出他们的最大公约数和最小公倍数;
p.在屏幕上输出以下图形,要求使用循环嵌套实现
相关文档
最新文档