程序设计基础实验指导书Word文件下载.docx
《程序设计基础实验指导书Word文件下载.docx》由会员分享,可在线阅读,更多相关《程序设计基础实验指导书Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
}
程序无误,其运行的结果为:
(请填写)
⑵输入并编辑一个有错误的C程序。
#include“stdio.h”
{inta,b,sum
a=123;
b=456;
sum=a+b
print(“sumis%d\n”,sum);
运行后程序出现几处错误,请分别指出,并逐一更改:
⑶若k,g均为int型变量,则下列语句的输出为,:
{intk,g;
k=017;
g=111;
printf("
%d\t"
++k);
%x\n"
g++);
运行结果为:
实验2顺序结构程序设计
⑴掌握C语言中赋值语句的使用方法。
⑵掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
⑶进一步熟悉C程序的编辑、编译、连接和运行的过程。
⒉实验内容
用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。
问在键盘上如何输入?
请书写程序
#include"
{inta,b;
floatx,y;
charc1,c2;
scanf("
a=%db=%d"
&
a,&
b);
%f%e"
x,&
y);
%c%c"
c1,&
c2);
a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n"
a,b,x,y,c1,c2);
运行,并按照如下方式在键盘上输入:
a=3b=7
8.571.82
Aa
运行结果:
思考:
为什么在第三个scanf函数双引号第一个字符为空格字符,如果没有这个空格字符,而写成:
scanf(“%c%c”,&
按以上的输入、输出将如何变化?
请分析原因
实验3选择结构程序设计
⑴了解C语言表示逻辑量的方法(以0代表”假”,以非0代表”真”)。
⑵学会正确使用逻辑运算符和逻辑表达式。
⑶熟练掌握if语句和switch语句。
⑷结合程序掌握一些简单的算法。
⑸学习调试程序。
题目⑴:
有3个整数a、b、c,由键盘输入,输出其中最大的数。
题目⑵:
求三位数的水仙花数(水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。
(例如:
1^3+5^3+3^3=153))。
要求:
每道题目分别画出程序流程图,书写程序,试运行(如何输入,结果如何)。
实验4、循环结构程序设计
⑴熟悉掌握用while语句,do-while语句和for语句实现循环的方法。
⑵掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。
⑶进一步学习调试过程。
输入两个正整数m和n,求其最大公约数和最小公倍数(公约数,亦称“公因数”。
它是几个整数同时均能整除的整数。
如果一个整数同时是几个整数的约数,称这个整数为它们的“公约数”;
公约数中最大的称为最大公约数;
最小公倍数(LeastCommonMultiple,缩写,如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整数来说,指该两数共有倍数中最小的一个。
)。
输入一行字符,分别统计出其中大小写英文字母、空格、数字和其他字母的个数(注意每输入一个非空格符字符后加一个空格符所有字符输入后回车)。
题目⑶:
猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,就只剩一个桃子了。
求第一天共摘多少桃子。
实验5函数定义和使用
⑴学习C语言中函数的定义和调用方法。
⑵掌握通过参数在函数间传递数据的方法。
⑶熟悉vc集成环境对包含函数调用的程序的调试方法。
⒉实验题目
A:
修改调试题目:
调试下列程序,使之具有如下功能:
fun函数是一个判断整数是否为素数的函数,使用该函数求1000以内的素数平均值。
写出调试过程。
#include“stdio.h”
{inta=0,k;
/*a保存素数之和*/
floatav;
/*av保存1000以内素数的平均值*/
for(k=2;
k<
=1000;
k++)
if(fun(k))/*判断k是否为素数*/
a+=k;
av=a/1000;
av=%f\n"
av);
fun(intn)/*判断输入的整数是否为素数*/
{inti,y=0;
for(i=2;
i<
n;
i++)
if(n%i==0)y=1;
elsey=0;
returny;
调试以下程序并查看运行结果:
{inta=1,b=2,c;
c=max(a,b);
maxis%d\n"
c);
max(intx,inty)//请回答:
函数功能是什么?
{intx;
z=(x>
y)?
x:
y;
return(z);
题目(3):
inta=5;
intb=7;
{inta=4,b=5,c;
c=plus(a,b);
A+B=%d\n"
intplus(intx,inty)请回答:
{intz;
z=x+y;
return(x);
B、编程题目:
每道题目分别书写程序,试运行(如何输入,结果如何)。
编写函数求x的n次方的值(提示:
有一个参数的函数)
编写一个求水仙花数的函数,求3位正整数的全部水仙花数中的次大值。
所谓水仙花数是指三位整数的各位上的数字的立方和等于该整数本身。
例如:
153就是一个水仙花数:
153=13+53+33
实验6编译预处理
⑴掌握宏定义的规则,领会带参数宏定义和函数调用的区别。
⑵了解文件包含命令的功能和使用规则。
⑶了解条件编译的特点和功能。
A宏定义及其应用
⑴以下程序的运行结果是____。
#defineMIN(x,y)(x)<
(y)?
(x):
(y)
{inti=10,j=15,k;
k=10*MIN(i,j);
%d\n"
k);
⑵若有宏定义如下:
#defineX5
#defineYX+1
#defineZY*X/2
则执行以下printf语句后,输出结果是____。
inta;
a=Y;
Z);
--a);
⑶请读程序:
#include<
stdio.h>
#defineMUL(x,y)(x)*y
main()
{inta=3,b=4,c;
c=MUL(a++,b++);
上面程序的输出结果是______。
⑷以下程序的运行结果是_____.
{
incx();
incy();
incx()
{intx=0;
x=%d\t"
++x);
incy()
{staticinty=0;
\ny=%d\n"
++y);
B“文件包含”处理测试
⑴文件format.h包含以下内容:
#definePRprintf
#defineNL"
\n"
#defineD"
%D"
#defineD1DNL
#defineD2DDNL
#defineD3DDDNL
#defineD4DDDDNL
#defineS"
%S"
⑵文件file1.C包含以下内容:
format.h"
{inta,B,C,D;
charstring[]="
CHINA"
;
a=1;
B=2;
C=3;
D=4;
PR(D1,a);
PR(D2,a,B);
PR(D3,a,B,C);
PR(D4,a,B,C,D);
PR(S,string);
调试并察看运行结果。
注意文件保存的路径。
实验7数组应用编程
⑴掌握一维数组和二维数组定义、赋值和输入输出的方法。
⑵掌握字符数组和字符串函数的使用。
⑶掌握数组名作为函数参数的基本使用方式。
⑷掌握与数组有关的算法(特别是排序算法)。
输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。
{inti,n,a[10],av;
for(i=0;
n;
%d"
a[i]);
if(i%3==0)printf("
i!
=n;
av+=a[i];
av);
上面给出的程序是完全可以运行的,但是运行结果是完全错误的。
调试时请注意变量的初值问题、输出格式问题等。
请使用前面实验所掌握的调试工具,判断程序中的错误并改正。
在程序运行过程中,可以使用<
Ctrl>
+<
Break>
键