高级程序 C程序 设计课内实验指导书

发布 2021-04-24 21:04:28 阅读 7876

适用于计算机科学与技术专业各方向)

学分: 学时: 20 学时 )

信息技术学院。

2023年 2 月。

一、 实验教学目的及任务。

高级程序设计是一门实践性很强的课程,通过本实验教学环节的训练,使学生进一步理解和掌握c程序设计语言及程序设计方法,掌握上机调试方法,为后续课程奠定程序设计基础。

二、 实验课的基本理论与实验技术知识。

该课程设计应用《高级程序设计》课程理论教学中所学习的c语言的语法结构与程序设计方法,其中语法有多种数据类型、表达式和基本控制结构,程序设计方法包括自顶向下、结构化和模块化设计方法。

三、 考核方式及成绩评定标准。

由平时成绩(40%)和期末考试成绩(60%)构成,计入《高级程序设计》课程的总评成绩。

四、 实验教材及主要参考资料。

谭浩强 《c程序设计》 清华大学出版社 2023年出版。

谭浩强 《c程序设计题解与上机指导》 清华大学出版社 2023年出版。

李春葆 《c语言学与练》 清华大学出版社 2023年出版。

五、 实验项目。

实验一函数递归调用及数组名作为函数参数。

目的和要求】

1.进一步掌握模块化程序设计的概念;

2.掌握函数的递归调用的方法;

3.掌握数组名作为函数实现参数的“地址传递” 。

重点和难点】

重点:函数的递归调用,数组名作为函数参数。

难点:函数的递归调用,数组名作为函数参数。

实验内容】编程序并上机调试。

1. 用递归方法求n!

n的值由键盘输入。

2. 写几个函数:

1)输入某班n(n<=30)个学生的成绩(成绩为-1时结束),统计学生成绩数;

2)将学生成绩降序排列;

3)输出排序后的学生成绩。

提示:1)输入学生成绩的函数首部可定义为:

int input_score(int score)

函数返回值为输入的成绩数。

2)排序学生成绩的函数首部可定义为:

void sort_score(int score,int n)

int score为学生成绩 int n为成绩数。

3)输出排序后的学生成绩的函数首部可定义为:

void output_score(int score,int n) 参数含义同(2)

4) 主函数定义:

#define n 30

void main()

int score[n];

int n;

n=input_score(score);

sort_score(score, n);

output_score(score,n)

进阶题。1、 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意的整数。(习题8.17)

2、 写几个函数:

1) 输入10个职工的年龄和职工号(均为整型数据);

2) 按职工号由小到大顺序排序,年龄也随之调整;

3) 要求输入一个职工号,用折半查找法找出该职工的年龄,从主函数输入要查询的职工号,输出该职工年龄。

习题8.15)

实验二变量的作用域、存储类型及多文件操作。

目的和要求】

1. 掌握全局变量和局部变量、动态变量、静态变量的概念、定义和特点;

2. 了解并掌握内部函数、外部函数的概念定义和特点;

3. 了解并掌握多文件程序的编译和运行。

重点和难点】

重点:变量的作用域和存储类型的;多文件程序的编译和运行。

难点:灵活应用变量的作用域和存储类型特点;多文件程序的编译和运行。

实验内容】1.请看图1所示程序,并回答以下问题。

1)试写出程序中每一个标号中所涉及的变量的意义及取值。

2)试人工分析程序的输出,并将输出写在下:

3)将程序上机调试运行,将运行输出写在下面:

4)如果结果不一样,试分析其原因。

2.编程序并上机调试。

1) 求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数,用另一个函数根据求出的最大公约数求最小公倍数。(习题8.1)

不用全局变量,分别用两个函数求最大公约数和最小公倍数。两个数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。

用全局变量的方法,分别用两个函数求最大公约数和最小公倍数,但其值不由函数带回。将最大公约数和最小公倍数都设为全局变量,在主函数中输出它们的值。

3. 输入一个字符串(不超过80个字符),然后再输入一个字符,要求程序将字符串中该字符删去。使用多文件操作实现。

如: 输入字符串: i am a student.

输入字符:a

删除字符a后的字符串: i m student.

#include <>

void main()

extern void enter_string(char str)

extern void delete_string(char str,char c);

extern void print_string(char str)

char c;

char str[80];

enter_string(str);

printf("enter a character to delete:")

c=getchar();

delete_string(str,c);

print_string(str);

#include <>

void enter_string(char str)

gets(str);

void delete_string(char str,char ch)

int i,j;

for(i=j=0; str[i]!=0' ;i++)

if(str[i] !ch)

str[j++]str[i];

str[j] =0';

void print_string(char s)

puts(s);

进阶题。1.写一函数,输入一个十六进制数,输出相应的十进制数。

2.用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数(8.10)。以下为该题程序,请根据提示,补充程序,使之完整。

#include <>

#include <>

void main()

int alphabetic(char);

int longest(char)

int i;

char line[100];

printf("input one line:");

gets(line);

printf("the longest word is :"

for(i=longest(line);alphabetic(line[i]);i++)

printf("%c",line[i]);

printf("");

int alphabetic(char c)

/此函数的功能是判断变量c是否为字母,如果是返回1,否则返回0,请将此函数补充完整。

/longest()函数可参考教材例7.8

int longest(char string)

int len=0,i,length=0,word=0,place=0,point;

for(i=0;i<=strlen(string);i++)

if( alphabetic(string[i]))

if(word ==0)

point =i; /point记录单词的起始下标。

word = 1;

elselen单词字母数加1

elsereturn(place);

1) 把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。

2) 把两个函分别放在两个程序文件中,作为两个文件进行编译、连接和运行。

实验三编译预处理。

目的和要求】

1.掌握宏定义的方法;

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

3.掌握条件编译的方法。

重点和难点】

重点:“文件包含”处理;

难点:带参数的宏定义和条件编译。

实验内容】编程序并上机调试:

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

2、 设计输出实数的格式,包括:①一行输出一个实数;②一行内输出两个实数;③一行内输出三个实数;实数用“%6.2f”格式输出。(习题9.6)

用一个文件print_包含以上用#define命令定义的格式。在自己的文件(自己命名)中用#include命令将print_文件包含进来。在程序中用scanf函数读入三个实数给f1、f2、f3。

然后用上面定义的三种格式分别输出:①f1;②f1、f2;③f1、f2、f3。

3、 用条件编译方法实现以下功能:

输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如'a'变成'b'……z'变成'a',其他字符不变)。用#define命令来控制是否要译成密码。例如:

若#define change 1则输出密码。若#define change 0则不译成密码,按原码输出。

实验四指针初步。

目的和要求】

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

2.能正确使用数组的指针和指向数组的指针变量;

重点和难点】

重点:指针的概念和定义,数组的指针和指向数组的指针变量。

难点:数组的指针和指向数组的指针变量应用。

实验内容】编程序并上机调试。

2 高级语言程序设计 C 实验

2013年11月。c语言是计算机专业及其计算机应用专业一门重要的专业基础课,而该课程的实验环节是学习本课程的有力保证,通过本课程的的系列实验,要求学生能够熟悉c语言的编辑 编译和运行的全过程,并通过自己设计程序和上机调试等环节,一方面,可以加深对课堂知识的理解 另一方面,主要是为了培养和提高学生的程...

高级程序设计实验指导书

目录。1 前言 1 2 实验要求 1 3 实验一 1 4 实验二 6 5 实验三 9 6 实验四 10 7 实验五 14 8 实验六 16 9 实验七 17 10 实验八 24 11 实验九 26 12 参考文献 28 13 实验报告格式 29 实验要求。1 按要求完成实验内容,完成每个实验中的练习...

C高级程序设计试卷

得分统计表 一 编程题 6小题,共100分 使用socket套接字类及类中提供的方法编写同步tcp程序,并完成服务器端和客户端的通信。注 服务器ip使用 127.0.0.1 端口号为 8889 程序最终运行效果如下图所示。服务器端程序最终效果 客户端程序最终效果 请完成如下操作 1 完成服务器端监听...