| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2889 人关注过本帖
标题:C程序设计基础---精品实训试题(适合初学深入者)
只看楼主 加入收藏
beansboy
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-12-11
收藏
 问题点数:0 回复次数:4 
C程序设计基础---精品实训试题(适合初学深入者)

实训题目

【 实验一 】

实验名称:认识 C 程序

实验目的:

1 、认识编程环境,熟悉编程界面;

2 、熟悉编程环境的基本操作;

3 、认识 C 程序的结构与 C 程序的运行、调试过程;

实验要求:

1 、在 Turbo C2.0 环境下编辑例题 1.1~1.3 ,运行并查看输出结果。

2 、参照例题,编写一个程序,输出以下信息:

*******************************************

Very good!

*******************************************

【实验二】

实验名称:顺序结构程序设计及输入、输出函数的使用

实验目的:

1、体会C程序自顶向下的编程思路。

2、熟悉输入输出函数的使用方法及用途。

实验要求:

1 、设圆半径 r=1.5 ,圆柱高 h=3 ,编写程序,求圆柱的体积。

2 、用 scanf 函数读入圆的半径和高,求任意圆柱的体积。输出计算结果,输出时要有文字说明,取小数点后 2 位数字。

3 、输入华氏温度,要求输出摄氏温度,公式为: c=5(f-32)/9 。

注意 C 表达式的写法和 C 算术运算的规则。

【 实验三 】

实验名称: if语句使用练习

实验目的:熟悉 if语句的使用格式,会用if语句解决实际问题。

实验要求:

1、有四个圆塔,圆心分别为(2,2),(-2,-2),(2,-2),(-2,2),圆半径为1。这四个塔的高度为10m,塔以外无建筑物。编写程序,输入任一点的坐标,输出该点的建筑高度,(塔外高度为0)。(注意落在塔上这一条件的描述方法)

2 、有一函数 x (x<1)

  y = 2x-1 (1 ≤ x < 10)

    3x-11 (x ≥ 10)

写一程序,输入 x 值,输出 y 值。

注意: 2x-1 、 3x-11 、 1 ≤ x < 10 的写法。

【 实验四 】

实验名称: switch语句使用练习

实验目的:熟悉 switch语句的使用格式,会用switch语句解决实际问题。

实验要求:

1、给出一百分制成绩,要求输出成绩等级:

90 分以上为 A 等

80~89 分为 B 等

70~79 分为 C 等

60~69 分为 D 等

60 分以下为 E 等

注意分数段的表示方法。

2 、输入年月日,输出该天是该年中的第几天。

例如输入 2003 年 1 月 5 日,则输出是第 5 天。

例如输入 2000 年 3 月 10 日,则输出是第 70 天。

注意二月份天数的计算。

【 实验五 】

实验名称: while语句和do-while语句的使用练习。

实验目的:熟悉 while语句和do-while语句的使用格式,会用这两个语句解决实际问题。掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。

实验要求:

1 、输出 200 以内(包含 100 )的所有能同时被 5 和 7 整除,并且各位数字是 5 的自然数。

2 、输入一串字符,以“ # ”结束,只输出其中的字母字符,并统计小写字母的个数。

3 、计算 s=1/2 2 +1/3 2 +1/4 2 + …… +1/n 2 的和,直到 1/n 2 小于 0.00001 为止。

【 实验六 】

实验名称: for语句的使用练习。

实验目的:熟悉 for语句的使用格式,会用for语句解决实际问题。掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。

实验要求:

1 、 从键盘任意输入一个数 n,判断它是否为完数(如果一个数恰好等于它的因子之和,则称为完数,如6=1+2+3)

2 、 计算并输出100(包括n)以内能被5或9整除的所有自然数的倒数之和。

3 、 一球从 100m高度落下,每次落地后反弹回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?

【 实验七 】

实验名称:循环的嵌套练习

实验目的:熟练使用循环语句解决实际问题,掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。

实验要求:

1、 输出1~100内的所有完数(如果一个数恰好等于它的因子之和,则称为完数,如6=1+2+3)

2、编写程序,输出上面的图案,

3、编写程序,解决百钱买百鸡问题。

【 实验八 】

实验名称:一维数组的应用

实验目的:

1、掌握一维数组的定义、赋值和输入输出的方法。

2、掌握一维数组的基本操作:运算、插入、删除、逆置、排序和查找等。

3、掌握与一维数组有关的算法(特别是排序算法)。

实验要求:

编写程序并上机调试运行。

1、有一组已按由小到大的顺序排好序的整数,编写程序,从键盘输入一个数,将这个数插入到这组数合适的位置,使这组数仍然有序。

2、编写程序,删除一组数中所有值为x的元素。

3、用选择法对10个整数排序。10个整数用scanf函数输入。

【 实验九 】

实验名称:二维数组的应用

实验目的:

1、掌握二维数组的定义、赋值和输入输出的方法。

2、掌握二维数组的基本操作:运算、转置、取特殊元素等。

实验要求:

编写程序并上机调试运行。

1、求一个3阶方阵A和其转置矩阵的和。

2、求一个4阶方阵的周边元素的和

4、输出一个3行4列的矩阵的最大值及其所在的行号和列号。

【 实验十 】

实验名称:字符数组的应用

实验目的:掌握字符数组的定义、赋值和输入输出的方法及其基本操作。

实验要求:

编写程序并上机调试运行:

1 、 请编写程序。判断字符串是否为回文 ? 若是,则输出: YES ;否则输出 NO 。回文是指顺读和倒读都一样的字符串。例如,字符串 LEVEL 是回文,而字符串 123312 就不是回文。

2 、 请编写一个程序,删除字符串中的数字字符。例如输入字符串:48CTYP9E6,则输出:CTYPE。

3、将一个数字字符串转换为一个整数。

【 实验十一 】

实验名称:认识函数

实验目的:

1、掌握定义、声明和调用函数的方法;

2、掌握函数实参与形参的对应关系,以及“按值传递”的方式。。

实验要求:

1、写一个判断素数的函数。

2、从键盘输入一个偶数,调用上述函数,将该偶数表示成两个素数和的形式。

3、写一函数,逆序输出一个整数的各位数字。

【 实验十二 】

实验名称:数组作为参数的函数

实验目的:

1、掌握数组作为函数参数的方法以。

2、体会数组作为函数参数时,形参与实参的传递方式

实验要求:

1、编写函数,实现数组的输入;

2、编写函数,实现数组的输出;

3、编写函数,求两个数组的和。

4、在主函数中调用以上三个函数,查看运行结果。

5、写一函数,用冒泡法对一组数据进行排序,在主函数中调用该函数,查看运行结果。

【 实验十三 】

实验名称:函数的递归调用与嵌套调用

实验目的:

1、掌握函数的递归调用和嵌套调用

2、掌握各种变量的概念和使用方法

实验要求:

1、用递归法求:

2、求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。

① 用全局变量的方法。将两个整数的最大公约数、最小公倍数都设为全局变量

② 不用全局变量,两个整数在主函数中输入,函数中的变量分别定义,在主函数中输出最大公约数和最小公倍数。

【 实验十四 】

实验名称:编译预处理

实验目的:

1、掌握宏定义的方法;

2、掌握文件包含处理方法;

实验要求:

编写程序并上机调试运行

1、定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。

说明:在程序主函数使用宏时只能用两个实参,如: SWAP(a,b),不能用三个实参。

【 实验十五 】

实验名称:认识指针

实验目的:

1、掌握指针的概念,会定义和使用指针变量;

2、学会使用指向一维数组的指针变量。

实验要求:

编写程序,并上机调试运行,完成下面的功能(都要求用指针处理)。

1、编写函数,交换两个数的值,并在主函数中调用该函数,查看运行结果。

2、编写函数,利用指针实现两个一维数组的加法运算。

3、编写函数将一个数组中的n个元素进行排序,以数组的名字做为函数参数。在主函数中调用该函数,分别传入不同的实参,实现:

① 将数组中的所有元素排序

② 只将数组中的从第3个元素开始的5个元素进行排序,其他元素不变。

【 实验十六 】

实验名称:指向二维数组的指针的使用

实验目的:

1、学会使用指向二维数组的指针变量。

2、深入理解行指针与列指针的区别与联系。

实验要求:

编写程序,并上机调试运行,完成下面的功能(都要求用指针处理)。

1、写一个函数实现一个3*3的矩阵的转置。以数组名作为函数参数,在主函数中调用该函数,并在主函数中输出已转置的矩阵。

2、输入一个二维矩阵,用不同的方法来输出其中的某个元素。(至少使用4种方法)

【 实验十七 】

实验名称:指向字符数组的指针及其他类型的指针的使用

实验目的:

1、学会使用指向字符数组的指针变量。

2、熟练使用指针处理字符串

实验要求:

编写程序,并上机调试运行,完成下面的功能(都要求用指针处理)。

1、输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大顺序输出。

2、写一个函数实现两个字符串的比较。

* 3、用指向指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。n和各整数在主函数中输入。最后在主函数中输出。

【 实验十八 】

实验名称:结构体和共用体的基本操作

实验目的:

1、掌握结构体和共用体类型变量的定义和使用

2、掌握结构体类型数组的概念和应用

实验要求:

编写程序,并上机调试运行,完成下面的功能:

1、有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5个学生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课的成绩和平均成绩)。

要求用一个 input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据,总平均分以及最高分学生的数据都在主函数中输出。

【 实验十九 】

实验名称:链表的使用

实验目的:

1、掌握链表的概念

2、掌握链表的基本操作:链表的建立、插入、删除等操作。

实验要求:

1、13人围成一圈,从第一个人开始顺时针顺序报号1、2、3,凡报到3者退出圈子,找出最后留在圈子中的人的原来的序号。

2、建立一个含有10个学生数据的链表,每个结点包含学号和年龄。输入一个年龄,删除链表中所有年龄等于该年龄的结点。

【 实验二十 】

实验名称:位运算

实验目的:

1、掌握按位运算的概念和方法,学会使用位运算符;

2、学会通过位运算实现对某些位的操作。

实验要求:

编写程序,并上机调试运行:

1、编写函数,实现逻辑右移运算

2、设计一个函数,使给出一个数的原码,能得到该数的补码,用八进制形式输入和输出。

【 实验二十一 】

实验名称:文件

实验目的:

1、掌握文件以及缓冲文件系统、文件指针的概念

2、学会使用文件打开、关闭、读、写、定位等文件操作函数

3、学会用缓冲文件系统对文件进行简单的操作

实验要求:

编写程序并上机调试运行:

1、有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。

2、将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据村如一

搜索更多相关主题的帖子: 程序设计 试题 精品 基础 初学 
2006-12-31 10:25
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 

实验一,呵呵。
#include <stdio.h>

int main(void)
{
printf("*******************************************\n");
printf(" \nVery good!\n\n");
printf("*******************************************\n");

return 0;
}


该学习了。。。
2006-12-31 13:30
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
实验2:
#include <stdio.h>
#define PI 3.1415

int main(void)
{
double radius = 1.5, h = 3;

printf("%.2f\n", PI * radius * radius * h);

return 0;
}

#include <stdio.h>
#define PI 3.1415

int main(void)
{
double radius, h;
while(scanf("%lf%lf", &radius, &h) == 2)
{
printf("%.2lf\n", PI * radius * radius * h);
}

return 0;
}

#include <stdio.h>

int main(void)
{
double c, f;
while(scanf("%lf", &f) == 1)
{
c = (5.0/9.0) * (f - 32);
printf("%.2lf\n", c);
}

return 0;
}


该学习了。。。
2006-12-31 14:59
sme008
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-5-6
收藏
得分:0 

怎么没有实验四第二题的答案 啊
有好心人会的话请发给我啊   我的邮箱是 lantian13@sina.com

2007-05-06 11:56
gufei1122
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-3-1
收藏
得分:0 


#include <stdio.h>
#define PI 3.1415

int main(void)
{
double radius, h;
while(scanf("%lf%lf", &radius, &h) == 2)
{
printf("%.2lf\n", PI * radius * radius * h);
}

return 0;
}

/*while(scanf("%lf%lf", &radius, &h) == 2)是什么意思啊,
加return 0;干什么用啊*/

/*--------4-2--------------*/

#include <stdio.h>
void main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先计算某月以前月份的总天数*/
{
 case 1:sum=0;break;
 case 2:sum=31;break;
 case 3:sum=59;break;
 case 4:sum=90;break;
 case 5:sum=120;break;
 case 6:sum=151;break;
 case 7:sum=181;break;
 case 8:sum=212;break;
 case 9:sum=243;break;
 case 10:sum=273;break;
 case 11:sum=304;break;
 case 12:sum=334;break;
 default:printf("data error");break;
}
sum=sum+day;  /*再加上某天的天数*/
 if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
  leap=1;
 else
  leap=0;
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It is the %dth day.",sum);
}

[此贴子已经被作者于2007-5-6 12:14:29编辑过]

2007-05-06 12:03
快速回复:C程序设计基础---精品实训试题(适合初学深入者)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030061 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved