C语言程序设计作业与实验报告.docx
- 文档编号:5649743
- 上传时间:2022-12-30
- 格式:DOCX
- 页数:18
- 大小:20.21KB
C语言程序设计作业与实验报告.docx
《C语言程序设计作业与实验报告.docx》由会员分享,可在线阅读,更多相关《C语言程序设计作业与实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
C语言程序设计作业与实验报告
C语言程序设计
作业与实验报告
学号:
姓名:
专业班级:
授课教师:
计算机基础教研室编
2010年3月
前言
本册是《C语言程序设计》的配套作业与上机练习,学生应根据课程进度及时认真完成并上交,期末考试后统一存档。
本册由信息与电气工程学院计算机基础教研室编写。
编者
2010年3月
作业与实验
(一)
一、改错并输出结果
1、#include
voidmain()
{
intx,y=z=5,aver;
x=7;
AVER=(x+y+z)/3;
printf(“AVER=%d\n”,aver)
}
错误语句:
正确语句:
结果:
2、#include
voidmain()
{
charc1=’a’,c2=’b’,c3=’c’;
inta=3,b=’A’
printf(“a=%db=\’%c\’\n\”end\”\n”,a,b);
printf(“a%cb%c\bc%c\tabc\n”,c1,c2,c3);
}
错误语句:
正确语句:
结果:
【实验1】基本输入输出
输入一圆半径r,根据圆面积的公式求圆面积
1.实验目的
(1)熟悉VC上机操作过程;
(2)了解C程序结构;
(3)掌握浮点型变量的定义和使用方法;
(4)学习使用基本算术运算符;
(5)掌握符号常量的定义和使用方法;
(6)熟悉C语言基本输入/输出函数的用法。
2.实验步骤
(1)定义符号常量PI;
(2)定义r为浮点类型变量;
(3)用scanf进行格式化输入;
(4)根据公式计算圆面积;
(5)用printf进行格式化输出;
3.程序
评阅人:
评阅日期:
作业与实验
(二)
一、写出程序运行结果
1、#include
voidmain()
{
inta=177;
intb=32767;
printf(“%o\n”,a);
printf(“%d\n”,b);
printf(“%d\n”,a+b);
}
结果是:
2、#include
voidmain()
{
intm=32767,n=032767,a=0xabc,b=0xabc;
a-=b;
printf(“%d,%o\n”,m,n);
printf(“%x\n”,a);
}
结果是:
3、#include
voidmain()
{
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
voidmain()
{
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);
}
结果是:
二、改错
#include
voidmain()
{
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.实验目的
(1)进一步熟悉C语言的基本输入/输出语句;
(2)掌握关系运算符与关系表达式的使用;
(3)熟悉分支语句if的使用方法;
2.实验步骤
(1)定义一个字符型变量c;
(2)用getchar()为变量c赋值;
(3)对该字符进行判断,根据ASCII码表,可以看出;
•c是控制字符:
c<31
•c是数字:
c>=’0’&&c<=’9’
•c是大写字母:
c>=’A’&&c<=’Z’
•c是小写字母:
c>=’a’&&c<=’z’
(3)输出判断结果。
3.程序
评阅人:
评阅日期:
作业与实验(四)
一、填空
已知程序
#include
voidmain()
{
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
voidmain()
{
intx=1,y=2,z=3;
if(x--)y++,z++;
elsey--;z--;
printf(“%d,%d,%d\n”,x,y,z);
}
结果是___________________
2、#include
voidmain()
{
inta;
scanf(“%d”,&a);
if(a>20)printf(“%d,”,a);
if(a>10)printf(“%d\n”,a);
}
从键盘上输入30后,程序运行结果是______________
【实验4】从键盘输入一个分数,如小于60分,则输出“不及格”;如大于60小于85分,输出“良好”;85分以上则为“优秀”。
1.实验目的熟悉多分支选择语句的用法
2.实验要求用switch语句编写程序
3.程序
评阅人:
评阅日期:
作业与实验(五)
一、写出运行结果
1、#include
voidmain()
{
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);}
if(i)
for(j=1;j if(j==i)printf(“\nj=%d\n”,j); elseprintf(“\nOK! GOOD! \n”); } 结果是: 2、#include voidmain() { 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;a<11;a++) {if(a%3==0)continue; printf(“%d”,a); } 执行___次 3、for(a=1;a<11;a++) {printf(“%d”,a); if(a%3==0)break; } 执行___次 【实验5】编写大奖赛评分程序。 在唱歌等比赛评分时,记分规则为: 去掉一个最高分和一个最低分,再算平均分。 (假定有7个评委) 1.实验目的 (1)掌握do-while循环语句或for循环语句; (2)学会循环与分支语句的嵌套; (3)进一步熟悉关系运算符和关系表达式。 2.实验步骤 (1)定义4个整型变量score,max,min和sum,用于存储分数、最高、最低和分数和,初值均为0; (2)用循环语句输入各评委打分; (3)在循环的内嵌语句中完成分数的累加并用if语句找出最高和最低分数; (4)循环结束,从分数和中减去最高和最低分数后求平均; (5)输出平均分数。 3.程序 评阅人: 评阅日期: 作业与实验(六) 将一个数列头尾颠倒,如原数组为1,2,3,4,5,则新数组为5,4,3,2,1。 1.实验目的 (1)掌握数组的定义方法; (2)掌握数组初始化的方法; (3)掌握数组元素的输入输出方法; (4)学习通过循环实现数组的遍历。 2.实验步骤 (1)定义一个数组并初始化; (2)通过使用for循环实现数组的第一个元素和最后一个元素对调,第二个元素和倒数第二个元素对调,依次类推; (3)通过for循环输出数组颠倒后的结果。 3.程序 评阅人: 评阅日期: 作业与实验(七) 一、填空 问题: 本程序输出以下结果: 123456 112345 121234 133123 146412 15101051 程序: #include voidmain() { inta[6][6],i,j; for(i=0;i<6;i++) { for(j=0;j<6;j++) { if(________)a[i][j]=1; elseif(i elsea[i][j]=_________________; printf(“%4d”,a[i][j]); } printf(“\n”); } } 二、写出程序的运行结果 1、#include voidmain() { inti; intx[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf(“%d”,x[i][2-i]); printf(“\n”); } 运行结果是_______________________ 2、#include #include voidmain() { charstr[]=”ab\n\012\\”; printf(“%d”,strlen(str));} 运行结果: _______________________ 【实验7】计算一个整型4*4的数组边框位置元素的和(即第0行、第3行和第0列、第3列元素的和)。 1.实验目的 (1)掌握二维数组的定义方法; (2)进一步熟悉二重循环的使用; (3)进一步熟悉if语句在循环体中的使用; (4)掌握二维数组元素的输入和输出。 2.实验步骤 (1)定义一个二维数组; (2)利用二重循环为数组元素赋值; (3)利用if语句对符合条件的元素累加; (4)输出累加结果。 3.程序 评阅人: 评阅日期: 作业与实验(八) 一、写出程序运行结果 1、#include intt(intx,inty,intc) { c=x*x+y*y; returnc; } voidmain() {inta=3,b=4,c=5; printf(“%d,%d\n”,c,t(a,b,c));} 运行结果是: ________________ 2、#include intfunc(inta,intb) {return(a+b);} voidmain() {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) { printf(“%c”,st[i]); if(i<3){i+=2;func1(i);} } voidmain() { inti=0;func1(i); printf(“\n”); } 结果是______________ 【实验8】函数 定义一个函数,判断一个数是否为素数 1.实验目的 (1)掌握函数的定义方法; (2)掌握函数的声明方式; (3)掌握函数的调用方式; (4)理解形参和实参的值传递关系。 2.实验步骤 (1)声明函数judge,以一个整型变量作为形参表示被判断的数; (2)在main函数定义一个变量,并赋值; (3)以此变量作为实参,调用judge函数; (4)根据judge函数的返回值输出是否为素数的信息。 3.程序 评阅人: 评阅日期: 作业与实验(九) 一、写出程序运行结果 1、#include Intfunc(inta,intb) { staticintm=0,i=2; i+=m+1; m=i+a+b; return(m); } voidmain() { intk=4,m=1,p; p=func(k,m);printf(“%d,”,p); p=func(k,m);printf(“%d\n,”,p); } 运行结果是________________________ 2、#include intd=1; intfun(intq) { intd=5; d+=q++; printf(“%d”,d); } voidmain() { 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); } voidmain() {printf(“%d\n”,fib(3));} 运行结果是_____________________ 【实验9】编写一个函数,实现对一个数组元素从大到小排序。 1.实验目的 (1)理解数组名作为实参时的地址传递关系; (2)理解形参和实参的匹配关系; (3)理解函数返回值的概念; (4)掌握选择法排序的方法。 2.实验步骤 (1)在voidmain()定义一个数组并初始化; (2)以该数组名作为实参调用排序函数sort(); (3)输出排序后数组元素的值; (4)定义一个排序函数sort,用一个数组做形参,用选择法排序。 3.程序 评阅人: 评阅日期: 作业与实验(十) 写出程序运行结果 1、#include voidmain() {inta[]={5,6,7,8},i; func(a); for(i=0;i<4;i++) printf(“%3d”,a[i]); } func(intb[]) {intj; for(j=0;j<4;j++)b[j]=j; } 结果是______________________________ 2.#include voidmain() {inti; for(i=1;i<=4;i++) 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.实验目的 (1)进一步熟悉循环语句的使用; (2)进一步掌握数值传递的函数调用; 2.实验步骤 (1)定义一个以整型变量为形参的函数judge(); (2)分解形参的各位数字; (3)如各位数字的立方和等于该数本身,则函数返回1,否则返回0; (4)main()函数用for循环从100到999依次调用judge函数,如返回值为1,则输出该数。 3.程序 评阅人: 评阅日期: 作业与实验(十一) 一、判断下列语句哪些是合法的? 哪些是非法的? (合法的在前面打勾) 已知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.实验目的 (1)了解指针的概念; (2)掌握指针运算符的用法; (3)掌握指向数组的指针的定义与引用; (4)明确变量的值和变量地址的不同; 2.实验步骤 (1)定义一个函数finder(),形参是一个整型指针和数组元素的个数; (2)定义一个整型变量max,存放最大值; (3)用for循环依次把指针指向的当前元素的值与max比较,如比max大,则把该元素的值保存到max中; (4)返回max的值; (5)main()函数定义一个数组,用指针方法给数组元素赋值,用数组名作为实参调用finder()函数,输出函数的返回值。 3.程序 评阅人: 评阅日期:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 作业 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)