C语言程序设计作业与实验报告Word下载.docx
《C语言程序设计作业与实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计作业与实验报告Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
(3)掌握浮点型变量的定义和使用方法;
(4)学习使用基本算术运算符;
(5)掌握符号常量的定义和使用方法;
(6)熟悉C语言基本输入/输出函数的用法。
2.实验步骤
(1)定义符号常量PI;
(2)定义r为浮点类型变量;
(3)用scanf进行格式化输入;
(4)根据公式计算圆面积;
(5)用printf进行格式化输出;
3.程序
评阅人:
评阅日期:
作业与实验
(二)
一、写出程序运行结果
inta=177;
intb=32767;
printf(“%o\n”,a);
printf(“%d\n”,b);
printf(“%d\n”,a+b);
结果是:
intm=32767,n=032767,a=0xabc,b=0xabc;
a-=b;
printf(“%d,%o\n”,m,n);
printf(“%x\n”,a);
3、#include<
inta;
charc=10;
floatf=100.0;
doublex=123.45;
printf(“%d%d%3.1f%4.1f\n”,a,c,f,x);
结果是_______________
【实验2】从键盘输入一个小写字符,要求输出与其对应的大写字符
1.实验目的
(1)熟悉C程序的编写、编译、运行的过程;
(2)掌握字符型变量的定义和使用方法;
(3)了解字符型数据的存储形式;
(4)学习C语言中字符输入/输出函数的用法。
2.实验步骤
(1)定义变量c1、c2为字符型变量;
(2)用getchar()输入变量c1的值;
(3)将c1转化为大写字符并赋值给c2;
(4)用putchar()输出变量c2的值;
3.程序:
作业与实验(三)
一、写出程序的执行结果
#include<
inti=2;
floatx=457.898;
printf(“i=%5d,%-8o,%u,%c\n”,i,i,i,i+’E’);
printf(“x=%10f,%10.2f,%-10.4f,%.2f,%f\n”,x,x,x,x,x);
二、改错
inta,b;
longc,d;
floate,f;
scanf(“%d%d%ld%ld%f%f”,a,b,c,d,e,f);
printf(“a=%d,b=%d,c=%d,e=%d\n”,a,b,c,e);
【实验3】基本控制结构
从键盘输入一个字符,判断它是控制字符,还是数字、大写字母、小写字母或是其它字符。
(1)进一步熟悉C语言的基本输入/输出语句;
(2)掌握关系运算符与关系表达式的使用;
(3)熟悉分支语句if的使用方法;
(1)定义一个字符型变量c;
(2)用getchar()为变量c赋值;
(3)对该字符进行判断,根据ASCII码表,可以看出;
•c是控制字符:
c<
31
•c是数字:
c>
=’0’&
&
c<
=’9’
•c是大写字母:
=’A’&
=’Z’
•c是小写字母:
=’a’&
=’z’
(3)输出判断结果。
作业与实验(四)
一、填空
已知程序
inta,b;
scanf(“%d,%d”,&
a,&
b);
if(a>
b)
if(a>
0)printf(“A”);
elseif(b>
-5)printf(“B”);
elseprintf(“C”);
printf(“*\n”);
写出当输入分别为以下四种情况时的输出结果:
(1)10,5结果是____________
(2)-5,-10结果是____________
(3)0,-3结果是____________
(4)6,7结果是____________
二、求下列程序执行的结果
1、#include<
intx=1,y=2,z=3;
if(x--)y++,z++;
elsey--;
z--;
printf(“%d,%d,%d\n”,x,y,z);
结果是___________________
2、#include<
scanf(“%d”,&
a);
20)printf(“%d,”,a);
10)printf(“%d\n”,a);
从键盘上输入30后,程序运行结果是______________
【实验4】从键盘输入一个分数,如小于60分,则输出“不及格”;
如大于60小于85分,输出“良好”;
85分以上则为“优秀”。
1.实验目的熟悉多分支选择语句的用法
2.实验要求用switch语句编写程序
3.程序
作业与实验(五)
一、写出运行结果
inti=2,j=2;
if(i)
if(j==2){i++;
j++;
printf(“\ni+j=%d”,i+j);
else{i--;
j--;
printf(“\ni-j=%d”,i-j);
for(j=1;
j<
i-1;
j++)
if(j==i)printf(“\nj=%d\n”,j);
elseprintf(“\nOK!
GOOD!
\n”);
intdata;
scanf(“%d”,&
data);
while(data)
{
printf(“%d”,data%10);
data=data/10;
}
程序运行时,输入12345,则输出结果是______________
二、写出下面四个for语句中的printf(“%d”,a);
分别被执行了多少次
1、for(a=1;
a<
11;
a++)
{if(a%3==0)break;
printf(“%d”,a);
} 执行___次
2、for(a=1;
{if(a%3==0)continue;
3、for(a=1;
{printf(“%d”,a);
if(a%3==0)break;
【实验5】编写大奖赛评分程序。
在唱歌等比赛评分时,记分规则为:
去掉一个最高分和一个最低分,再算平均分。
(假定有7个评委)
1.实验目的
(1)掌握do-while循环语句或for循环语句;
(2)学会循环与分支语句的嵌套;
(3)进一步熟悉关系运算符和关系表达式。
(1)定义4个整型变量score,max,min和sum,用于存储分数、最高、最低和分数和,初值均为0;
(2)用循环语句输入各评委打分;
(3)在循环的内嵌语句中完成分数的累加并用if语句找出最高和最低分数;
(4)循环结束,从分数和中减去最高和最低分数后求平均;
(5)输出平均分数。
作业与实验(六)
将一个数列头尾颠倒,如原数组为1,2,3,4,5,则新数组为5,4,3,2,1。
(1)掌握数组的定义方法;
(2)掌握数组初始化的方法;
(3)掌握数组元素的输入输出方法;
(4)学习通过循环实现数组的遍历。
(1)定义一个数组并初始化;
(2)通过使用for循环实现数组的第一个元素和最后一个元素对调,第二个元素和倒数第二个元素对调,依次类推;
(3)通过for循环输出数组颠倒后的结果。
作业与实验(七)
问题:
本程序输出以下结果:
123456
112345
121234
133123
146412
15101051
程序:
#include<
{ inta[6][6],i,j;
for(i=0;
i<
6;
i++)
{ for(j=0;
{ if(________)a[i][j]=1;
elseif(i<
j)a[i][j]=___________;
elsea[i][j]=_________________;
printf(“%4d”,a[i][j]);
printf(“\n”);
二、写出程序的运行结果
{ inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
3;
printf(“%d”,x[i][2-i]);
运行结果是_______________________
string.h>
{ charstr[]=”ab\n\012\\”;
printf(“%d”,strlen(str));
运行结果:
_______________________
【实验7】计算一个整型4*4的数组边框位置元素的和(即第0行、第3行和第0列、第3列元素的和)。
(1)掌握二维数组的定义方法;
(2)进一步熟悉二重循环的使用;
(3)进一步熟悉if语句在循环体中的使用;
(4)掌握二维数组元素的输入和输出。
(1)定义一个二维数组;
(2)利用二重循环为数组元素赋值;
(3)利用if语句对符合条件的元素累加;
(4)输出累加结果。
作业与实验(八)
intt(intx,inty,intc)
{ c=x*x+y*y;
returnc;
{inta=3,b=4,c=5;
printf(“%d,%d\n”,c,t(a,b,c));
运行结果是:
________________
intfunc(inta,intb)
{return(a+b);
{intx=2,y=5,z=8,r;
r=func(func(x,y),z);
printf(“%\d\n”,r);
_____________
3、#include<
voidfunc1(inti);
voidfunc2(inti);
charst[]=”hello,friend!
”;
voidfunc1(inti)
{ printf(“%c”,st[i]);
if(i<
3){i+=2;
func2(i);
}
voidfunc2(inti)
func1(i);
{ inti=0;
结果是______________
【实验8】函数
定义一个函数,判断一个数是否为素数
(1)掌握函数的定义方法;
(2)掌握函数的声明方式;
(3)掌握函数的调用方式;
(4)理解形参和实参的值传递关系。
(1)声明函数judge,以一个整型变量作为形参表示被判断的数;
(2)在main函数定义一个变量,并赋值;
(3)以此变量作为实参,调用judge函数;
(4)根据judge函数的返回值输出是否为素数的信息。
作业与实验(九)
1、#include<
Intfunc(inta,intb)
{ staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
{ intk=4,m=1,p;
p=func(k,m);
printf(“%d,”,p);
printf(“%d\n,”,p);
}
运行结果是________________________
2、#include<
intd=1;
intfun(intq)
{ intd=5;
d+=q++;
printf(“%d”,d);
{ inta=3;
fun(a);
d+=a++;
printf(“%d\n”,d);
运行结果是__________________
3、#include<
longfib(intn)
{ if(n>
2)return(fib(n-1)+fib(n-2));
elsereturn
(2);
{printf(“%d\n”,fib(3));
运行结果是_____________________
【实验9】编写一个函数,实现对一个数组元素从大到小排序。
(1)理解数组名作为实参时的地址传递关系;
(2)理解形参和实参的匹配关系;
(3)理解函数返回值的概念;
(4)掌握选择法排序的方法。
(1)在voidmain()定义一个数组并初始化;
(2)以该数组名作为实参调用排序函数sort();
(3)输出排序后数组元素的值;
(4)定义一个排序函数sort,用一个数组做形参,用选择法排序。
作业与实验(十)
写出程序运行结果
{inta[]={5,6,7,8},i;
func(a);
for(i=0;
4;
printf(“%3d”,a[i]);
func(intb[])
{intj;
for(j=0;
j++)b[j]=j;
结果是______________________________
2.#include<
{inti;
for(i=1;
=4;
f(i);
f(intj)
{staticinta=10;
intb=1;
b++;
printf(“%d+%d+%d=%d\n”,a,b,j,a+b+j);
a+=10;
结果是________________
【实验10】编写一个函数,判断某一个数是否为水仙花数。
所谓“水仙花数”是指一个三位数,其各位数字立方之和等于该数本身,例如:
13+53+33=153。
打印出所有的水仙花数。
(1)进一步熟悉循环语句的使用;
(2)进一步掌握数值传递的函数调用;
(1)定义一个以整型变量为形参的函数judge();
(2)分解形参的各位数字;
(3)如各位数字的立方和等于该数本身,则函数返回1,否则返回0;
(4)main()函数用for循环从100到999依次调用judge函数,如返回值为1,则输出该数。
作业与实验(十一)
一、判断下列语句哪些是合法的?
哪些是非法的?
(合法的在前面打勾)
已知inti,a[5],*p;
1、p=*a;
2、p=&
i;
3、p=&
(i+1);
4、p=&
i++;
5、p=&
a;
6、p=a+3;
7、p=a[3];
8、p=&
a[5];
二、选择题:
1、设有语句:
inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
则以下___不是对a数组元素的正确引用,其中0≤i<10。
A)a[p-a]B)*(&
a[i])
C)p[i]D)*(*(a+i))
2、设有语句:
charstr1[]=”string”,str2[8],*str3,*str4=”string”,则___不是对库函数strcpy的正确调用,此库函数用于复制字符串。
A)strcpy(str1,”HELLO1”);
B)strcpy(str2,”HELLO2”);
C)strcpy(str3,”HELLO3”);
D)strcpy(str4,”HELLO4”);
【实验11】指针
求一个数组中元素的最大值
(1)了解指针的概念;
(2)掌握指针运算符的用法;
(3)掌握指向数组的指针的定义与引用;
(4)明确变量的值和变量地址的不同;
(1)定义一个函数finder(),形参是一个整型指针和数组元素的个数;
(2)定义一个整型变量max,存放最大值;
(3)用for循环依次把指针指向的当前元素的值与max比较,如比max大,则把该元素的值保存到max中;
(4)返回max的值;
(5)main()函数定义一个数组,用指针方法给数组元素赋值,用数组名作为实参调用finder()函数,输出函数的返回值。