程序设计c实验报告江苏理工学院Word下载.docx
《程序设计c实验报告江苏理工学院Word下载.docx》由会员分享,可在线阅读,更多相关《程序设计c实验报告江苏理工学院Word下载.docx(20页珍藏版)》请在冰豆网上搜索。
printf("
输入x:
"
);
scanf("
%d"
&
x);
if(x<
{y=x;
printf("
x=%3d,y=x=%d\n"
x,y);
}
elseif(x<
{y=2*x-1;
x=%d,y=2*x-1=%d\n"
}
else
{y=3*x-11;
x=%d,y=3*x-11=%d\n"
return0;
}
运行结果贴图:
2.给出一百分制成绩,要求输出成绩等级’A’、’B’、’C’、’D’、’E’。
90分以上为’A’,80-90分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’。
{
floatscore;
chargrade;
请输入学生成绩:
%f"
score);
while(score>
100||score<
0)
{
\n输入有误,请重输"
scanf("
switch((int)(score/10))
{case10:
case9:
grade='
A'
;
break;
case8:
B'
case7:
C'
case6:
D'
case5:
case4:
case3:
case2:
case1:
case0:
E'
成绩是%5.1f,相应的等级是%c\n"
score,grade);
3.从键盘输入1~12之间的任一数字,输出表示一年中对应该月的英文单词。
intm;
请输入月份:
\n"
m);
m=%d\n"
m);
while(m>
12||m<
\n输入有误,请重输!
switch(m)
{case12:
printf("
month:
December\n"
case11:
November\n"
case10:
October\n"
September\n"
August\n"
July\n"
June\n"
May\n"
April\n"
March\n"
February\n"
January\n"
心得体会
注意各种运算符的优先次序。
“&
&
”和“||”是双目运算符,它要求有两个运算对象;
“!
”是一目运算符,只要求有一个运算对象。
逻辑表达式的值应该是一个逻辑量“真”或“假”,逻辑运算的结果不是“0”就是“1”。
实验2
循环结构程序设计
1.熟悉掌握用while语句、do…while语句和for语句实现循环的方法;
2.掌握在程序设计中用循环的方法实现一些常用方法;
3.进一步学习调试程序。
1.n从键盘输入,当n为偶数时,求1/2+1/4+…+1/n的值;
当n为奇数时,求1/1+1/3+…+1/n的值。
intn,i;
floatsum=0;
请输入n:
n);
if(n<
输入有误,请重新输入!
if(n%2!
=1)
{for(i=1;
i<
(n/2+1);
i++)
sum=sum+1.0/(2*i);
1/2+1/4+...+1/n=%f\n"
sum);
else
{for(i=1;
(n+3)/2;
sum=sum+1.0/(2*i-1);
1/1+1/3+...+1/n=%f\n"
2.输出1,2,3,4四个数字能组成的所有无重复数字的三位数。
inti,j,k;
intm=0;
请输出1,2,3,4组成的无重复三位数:
for(i=1;
5;
for(j=1;
j<
j++)
for(k=1;
k<
k++)
{
if(i!
=j&
k!
i!
=k)
{printf("
%d%d%d"
i,j,k);
m++;
}
}
printf("
\n组合三位数的个数:
%d\n"
return0;
3.输出一个正整数的反序数,例如输入4578,则应输出8754。
intx;
请输入一个数字:
反序的数字:
while(x!
=0)
x%10);
x/=10;
While与do…while区别为前者先判断条件表达式,后执行循环体语句;
后者先执行循环体,然后在检查条件是否成立,若成立,再执行循环体。
在while中不要忽略给i和sum赋初值,否则它们的值是不可预测的。
While、do…while、for,都可以用break语句跳出循环,用continue语句结束本次循环。
实验3
利用数组处理批量数据
4学时
1.掌握一维数组和二维数组的定义、赋值和输入输出的方法;
2.掌握字符数组和字符串函数的使用;
3.掌握与数组有关的算法。
1.输入一个3*3的整型矩阵,统计其中正数、负数以及零的个数并输出。
inta[3][3];
inti,j;
intsum_0=0,sum_1=0,sum_2=0;
请输入3*3矩阵:
for(i=0;
3;
{for(j=0;
%5d"
a[i][j]);
for(i=0;
{for(j=0;
a[i][j]);
}
{
for(j=0;
{if(a[i][j]<
sum_2++;
elseif(a[i][j]>
sum_1++;
elsesum_0++;
0有:
%d个\n"
sum_0);
正数有:
%d个\n负数有:
sum_1,sum_2);
2.从键盘输入10个数,找出10个整数中的最大数并与第一个数交换位置,找出最小数与最后一个数交换位置,输出变换后的结果。
inta[10];
intmax=0,min=0;
inti,temp;
请输入10个整数:
10;
a[i]);
if(a[i]>
a[min])
min=i;
temp=a[min];
a[min]=a[0];
a[0]=temp;
if(a[i]<
a[max])
max=i;
temp=a[max];
a[max]=a[9];
a[9]=temp;
变换后的10个数:
%3d"
a[i]);
3.从键盘输入一字符串s,将该字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t数组中。
#include<
string.h>
chars[50];
chart[50];
inti;
请输入字符串:
%s"
s);
memset(t,0,sizeof(t));
for(i=0;
strlen(s)/2;
i++)
{t[i]=s[i*2];
t[i]='
\0'
%s\n"
t);
一位数组在比较大小排序时用“起泡法排序”,二维数组用“打擂台算法”
在字符数组的初始化中如果初值个数小于数组长度,则只将这些字符数组赋给数组中前面的那些元素,其余的元素自动定位空字符。
注意字符串的两端实用双撇号而不是单撇号括起来的。
实验4
用函数实现模块化程序设计
1.掌握定义、声明函数的方法;
2.掌握调用函数时实参和形参的对应关系,以及“值传递”的方式;
3.熟悉函数的嵌套调用和递归调用的方法;
4.熟悉全局变量和局部变量的概念和用法。
1.函数intflag(intx0,intx1,intd[])的功能是找出x0至x1之间所有能被3整除的数存入d数组中,返回d数组中元素的个数。
编写main函数,调用flag函数求出15~50之间所有满足条件的整数。
intflag(intx0,intx1);
inta,b,n;
请输入区间范围:
%d~%d"
a,&
b);
n=flag(a,b);
能被3整除的数的个数是:
n);
intflag(intx0,intx1)
intd[40],m,i=0;
m=x0;
for(;
m<
=x1;
m++)
{if(m%3==0)
{
d[i]=m;
i++;
return(i);
2.函数voidmove(inta[],intn,intm)的功能是将有n个元素的数组a中前面各数顺序向后移m个位置,最后m个数变成最前面m个数。
编写main,调用move函数,输出变换后的结果。
voidmain()
voidmove(inta[10],intn,intm);
intn,m;
请输入你要的数组长度\n"
输入你要交换的数组:
n;
输入你要交换前多少个数字:
move(a,n,m);
voidmove(inta[10],intn,intm)
int*p,array_end;
if(m>
p=a+n-1;
array_end=*(a+n-1);
for(p;
p>
a;
p--)
*p=*(p-1);
*a=array_end;
m--;
3.函数voidjssort(inta[],intn)的功能是对a数组中前n个元素的后三位的大小进行升序排序。
要求:
在main中输入a数组的10个元素;
调用函数jssort实现对a数组的排序;
输出排序后的各元素。
测试数据:
6012,5099,9012,7025,8088,9096,8080,3046,5082,2345
运行结果:
6012,9012,7025,3046,8080,5082,8088,9096,5099,2345
源程序代码如下:
{voidjssort(intb[]);
voidwritedat(intb[]);
inta[10],i;
请输入需要排序的数组:
jssort(a);
writedat(a);
voidjssort(intb[])
inti,j,min,t;
9;
{min=i;
for(j=i+1;
if(b[min]%1000>
b[j]%1000)min=j;
if(min!
=i)
{t=b[min];
b[min]=b[i];
b[i]=t;
voidwritedat(intb[])
{inti;
排序后的数组:
for(i=0;
b[i]);
了解了如何定义函数,如何调用函数,明白全局变量的应用范围。
区别内部函数与外部函数。
学会运用函数。
实验5
用指针处理链表
1.掌握指针的概念,会定义和使用指针变量;
2.掌握结构体类型变量定义和使用;
3.掌握链表的概念和操作方法。
1.综合教材第9章例9.9(建立链表的函数creat)、例9.10(输出链表的函数print)和第9章习题第7题(删除链表中结点的函数del)、第8题(插入结点的函数insert),再编写一个主函数,先后调用这些函数。
用5个函数组成一个程序,实现链表的建立、输出、删除和插入,在主函数中指定需要删除和插入的结点的数据。
链表是常见的数据结构,它是动态的进行存储分配的结构,链表中各元素在内存中的地址可以是不连续的。
链表这种结构必须利用指针变量才能实现。