适用于计算机科学与技术专业各方向)
学分: 学时: 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 完成服务器端监听...