《高级语言》实验指导书 联系客服

发布时间 : 星期二 文章《高级语言》实验指导书更新完毕开始阅读ea21dfb577232f60dccca128

《高级语言程序设计》实验指导书

scanf(\ scanf(\

printf(\ c=strlen(a); d=strlen(b); if(c>d)

for(k=0;k

{ ch=a[k];a[k]=b[k];b[k]=ch;} printf(\ printf(\ }

相关知识:程序中的strlen()是库函数,功能是求字符串的长度,它的原型保存在头文件\中。调试时注意库函数的调用方法,不同的字符串输入方法,通过错误提示发现程序中的错误。

10.阅读下面的程序,然后回答后面的问题: #include

#include void main( )

{ char s1[80], s2[40]; int i = 0, j = 0;

printf(\ scanf(\

printf(\ scanf(\ while (s1[i]!= '\\0' ) i++;

while (s2[j]!= '\\0' ) s1[i++]=s2[j ++]; s1[i]= '\\0';

printf(\}

编辑、运行该程序,然后分别输入 Country 和side。请问: ① 程序执行的结果是什么? ② 该程序的功能是什么?

相关知识:① 串结束符?\\0?;② 自编写库函数。

11.填空完成下面程序,使其功能是对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。程序如下:

#include

void main ( )

{ char str1[100],str2[100]; int i,s;

printf(\ printf(“\\n Input string 2:\\n”);gets(str2);

16

《高级语言程序设计》实验指导书

i= (1) ;

while((str1[i]==str2[i])&&(str1[i]!= (2) )) i++; s= (3) ; printf(\ }

12.填空完成下面程序,使其的功能是统计从终端输入字符中每个大写字母的个数。用#号作为输入结束标志。程序如下:

#include #include void main ( )

{ int num[26],i; char c;

for (i=0;i<26;i++) num[i]=0;

while ( (1) != '#') /* 统计从终端输入的大写字母个数*/ if (isupper(c)) num[c-65] (2) ;

for (i=0;i<26;i++) /* 输出大写字母和该字母的个数*/ if (num[i])printf(\ (3) ,num[i]); }

13.编写程序,输入若干个字符串,求出每个字符串的长度,并打印最长一个字符串的内容。以“stop”作为输入的最后一个字符串。

相关知识:

① 字符数组的输入输出可以有两种方法:

? 逐个字符输入输出。用格式符“%c”输入或输出一个字符,此时输入输出函数

中的输入输出项是数组元素名,而不是字符数组名;

? 将整个字符串一次输入或输出。用“%s”格式符,意思是输出字符串(string),

此时输入输出函数中的输入输出项是字符数组名,而不是数组元素名。写成下面这样是不对的:printf(\,c[0]);

② gets()函数和scanf()函数输入字符串的区别,puts()函数和printf()函数输出字符串

的区别;

③ 求每个字符串的长度函数strlen()的使用,字符串比较函数strcmp()的使用; ④ 二维数组处理多个字符串。

14.编写程序,输入字符串s1和s2以及插入位置f,在字符串s1?中的指定位置f处插入字符串s2。如:输入\、\和位置3,则输出:\。 三、实验重点、难点

1. 一维数组

2. 二维数组和多维数组

3. 字符数组

四、操作要点

Run菜单中Go to cursor::调试程序时使用, 选择该项可使程序运行到光标所在行。光标所在行必须为一条可执行语句, 否则提示错误。其热键为F4。Trace into:在执行一条调用其它用户定义的子函数时, 若用Trace into项, 则执行长条将跟踪到该子函数内部去执行, 其热键为F7。 五、注意事项

17

《高级语言程序设计》实验指导书

1. 2. 3. 4. 5. 6. 对应该有花括号的复合语句,忘记加花括号 在不该加分号的地方加了分号 引用数组元素时误用圆括号 引用数组元素超界

对二维或多维数组定义和引用的方式不对 误以为数组名代表整个数组

7. 混淆字符数组与字符指针的区别

实验五 函数与编译预处理

一、实验目的及要求

1. 掌握函数定义的方法;

2. 掌握函数实参与形参的对应关系以及“值传递”的方式; 3. 掌握函数的嵌调用和递归调用的方法;

4. 掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。 5. 学习对多文件程序的编译和运行。 二、实验任务

1. 阅读下面程序,通过调试该程序,熟悉函数的调用方法及单步跟踪键F7和F8的不

同。

#include void main()

{ void fun(int i, int j, int k); int x,y,z; x=y=z=6; fun(x,y,z);

printf(\}

void fun(int i, int j, int k) { int t;

t=(i+j+k)*2;

printf(\}

2. 阅读下面程序,注意在调试时F11和F10的区别,还要注意函数调用过程中形参、

实参的关系。 #include void main()

{ int x=10,y=20;

void swap (int ,int);

printf(\swap(x,y);

printf(\ }

void swap (int m,int n)

18

《高级语言程序设计》实验指导书

{ int temp;

printf(\temp=m;m=n;n=temp;

printf(\}

把用户自定义函数swap()中的形式参数m和n对应改成x和y,使其与实参变量同名,再用F7跟踪程序的运行,看看有什么变化。

相关知识:形参具有“用之则建,用完则撤”的特点。在函数定义时,函数名后面圆括号内的参数称为形参;在函数调用时,函数名后面圆括号内的参数称为实参。对于实参,在调用函数中对其进行定义时,不仅指明它的类型,而且系统还为其分配存储单元。而对于形参,定义时仅仅只是指明它的类型,并不在内存中为它们分配存储单元,只是在调用时才为其分配临时存储单元,函数执行结束,返回调用函数时,该存储单元立即撤销。

3. 下面程序是实现求素数的,请填空完成该程序,并上机运行测试。

#include #include void main() { int m;

; /* 申明求素数函数 */ printf(\scanf(\

; /* 调用求素数函数 */ }

void prime(int n) { int i,k; k=sqrt(n);

for(i=2;i<=k;i++)

if (n%i==0) break; if(i>=k+1)

printf(\else printf(\ }

4. 下面程序的功能是从键盘上输入的若干个数并求出最大值。请填空完成该程序。

#include void main( ) { int i;

int s[10], max;

/* Findmax()函数的申明 */ ; printf(\ /* 输入10个数据到s数组中 */ ; /* 调用Findmax函数 */ ; for (i=0;i<10; i++)

19