重庆理工大学C语言程序实验报告.docx
《重庆理工大学C语言程序实验报告.docx》由会员分享,可在线阅读,更多相关《重庆理工大学C语言程序实验报告.docx(13页珍藏版)》请在冰点文库上搜索。
重庆理工大学C语言程序实验报告
重庆理工大学C语言程序实验报告
《程序设计基础C》
实验报告
教学班级:
学号:
姓名:
课程教师:
实验辅导教师:
重庆理工大学计算机学院
2021年2月
程序设计基础C实验报告
实验5循环程序设计
教学班级:
学号:
姓名:
实验日期:
2021年5月28日实验地点:
4-210(机房)实验成绩:
___________一、实验目的
(1)了解C语言循环结构的使用范围。
(2)学会正确使用逻辑运算符和逻辑表达式。
(3)熟练掌握C语言的三种循环结构:
whilc语句、do?
?
whilc语句、for语句的特点和使用方法。
(4)能够编写一些有实际应用意义的循环结构程序。
二、实验内容
1.基本内容
题目1:
计算1-3+5-7+......-99+101的值。
(提示:
注意符号的变化)
#includevoidmain(){}
①请改错,并运行程序。
#includevoidmain(){
inti,t=1,s=0;
inti,t=1,s=0;/*t标识正负符号*/for(i=1;ii+=2)/*error*/{}
printf(\
s+=i*t;t=-t;
1
程序设计基础C实验报告
for(i=1;i=101;i+=2){s+=i*t;t=-t;
}
printf(\
}
②分别用do?
?
while语句和while语句改写以上程序。
#includevoidmain(){
inti=1,t=1,s=0;/*t标识正负符号*/do{s+=i*t;i++;t=-t;}while(i=101);printf(\
}
#includevoidmain(){
inti=1,t=1,s=0;/*t标识正负符号*/while(i=101){s+=i*t;i++;t=-t;}printf(\}
题目2:
分析程序,运行时输入:
*****(注:
表示回车换行)。
#includevoidmain(){intc;
while((c=getchar())!
='\\n'){switch(c-'2')
{
case0:
2
程序设计基础C实验报告
}
}
}
case1:
putchar(c+4);case2:
putchar(c+4);break;case3:
putchar(c+3);case4:
putchar(c+2);break;default:
putchar(c);
printf(\
题目3:
下面程序的功能是打印100以内个位数为3且能被3整除的所有数,选择合适的语句填入该空格中。
#includevoidmain(){}
题目4:
编程输出:
用0~4任意组成无重复数字的三位数?
都是多少?
每行输出10个数。
#includevoidmain(){
inti,j,k,count=0;printf(\
for(i=1;ii++)/*以下为三重循环*/
3
inti,j;
for(i=0;ii++){}
j=i*10+3;if(j%3!
=0)
continue;printf(\
程序设计基础C实验报告
for(j=0;jj++)
for(k=0;kk++){
if(i!
=jj!
=ki!
=k)/*确保i、j、k三位互不相同*/{
printf(\
count++;if(i=jj=ki=k)
printf(\
}}
}
printf(\
题目5:
根据公式e?
1?
111?
?
?
......求e的近似值,精度要求为10-6。
1!
2!
3!
#includevoidmain(){doublei=1,s=1,sum=1;for(i=1;1/s0.000001;i++){s*=i;sum+=1/s;}printf(\}
题目6:
输入一行字符,将小写字母转换为大写字母显示,其它字符原样输出。
#includevoidmain(){charc;while((c=getchar())!
='\\n'){if(c='a'c='z')c=c-32;putchar(c);}}
2.选择内容
4
程序设计基础C实验报告
题目7:
打印出如下图案*
***
*****
*******
*****
***
*
#includevoidmain(){inti,j;
for(i=1;ii++)
{for(j=1;j=8-i;j++)//理解数字8的作用printf(\\
for(j=1;j=2*i-1;j++)printf(\printf(\
}/*上面的程序输出上三角形*//*下面的程序输出下三角形*/for(i=3;ii--)
{for(j=1;j=8-i;j++)printf(\\
for(j=1;j=2*i-1;j++)printf(\printf(\}}
①运行以上程序,验证实验结果。
②模仿上面程序,打印出如下图案122233333#includevoidmain(){inti,j;
for(i=1;ii++)
5
程序设计基础C实验报告
{for(j=1;j=6-i;j++)//理解数字8的作用printf(\\
for(j=1;j=2*i-1;j++)printf(\printf(\}}9
#includevoidmain(){inti,n,s;for(n=2;n=1000;n++){s=0;for(i=1;i
三、实验结果(用截图说明)1
6
程序设计基础C实验报告
2
3
7
程序设计基础C实验报告
4
5
8
程序设计基础C实验报告
6
7
9
程序设计基础C实验报告
9
10
程序设计基础C实验报告
10
四、调试心得(选作)
11
程序设计基础C实验报告
实验6数组实验
教学班级:
学号:
姓名:
实验日期:
2021年5月28日实验地点:
4-210(机房)实验成绩:
___________一、实验目的
(1)理解数组的特点及其与普通变量的区别及特点;
(2)掌握一维数组的定义、赋值和输入输出的方法;(3)掌握二维数组的定义、赋值和输入输出的方法;(4)掌握字符数组和字符串函数的使用;
(5)掌握与一维数组和字符数组有关的程序与算法;(6)理解与二维数组有关的程序与算法。
二、实验任务
1.基本内容
【题目1】读程序,写结果。
#includevoidmain(){
inti,s=0,a={1,2,3,4,5,6,7,8,9,10};for(i=4;ii++)
s=s+a[i];printf(\
}
【题目2】下面程序给数组a输入数据,以每行4个数据形式输出,请填空。
##include#defineN8voidmain(){
inti,a[N];
12
程序设计基础C实验报告
for(i=0;i
{if(i%4==0)
printf(\printf(\}
printf(\
}
3】用简单选择法对10个整数排序,将程序补充完整。
#defineN10#includevoidmain(){inti,j,min,temp,a[N]={1,5,4,3,7,0,9,8,2,6};for(i=0;i
for(j=i+1;ja[j])
min=j;
if(min!
=i)
{temp=a[i];a[i]=a[min];a[min]=temp;}
}
printf(\排序结果为:
\\n\for(i=0;i
printf(\printf(\
}
4】下面的程序用冒泡法对10个数排序(从小到大),将程序补充完整。
13
【题目【题目
程序设计基础C实验报告
#defineN10#includevoidmain(){inti,j,min,temp,a[N]={1,5,4,3,7,0,9,8,2,6};for(i=0;i
if(a[j]a[j+1]){
temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
printf(\排序结果为:
\\n\for(i=0;ii++)
printf(\printf(\
}
【题目5】任意输入20个数到一维数组a中,求这20个数的平均值。
#defineN20#includevoidmain(){inti,s=0,a[N];for(i=0;i
for(i=0;i
printf(\
14
程序设计基础C实验报告
}
【题目6】编程:
任意输入10个数,判断该哪些是素数,并输出这些素数。
#include#defineN10voidmain(){}
【题目7】以下程序是求二维数组中的最小数及其下标(设最小数是唯一的),请填空完成程序,并上机验证。
#includevoidmain(){
inti,j,row,col,min;
inta={{1,2,3,4},{9,8,7,6},{-1,-2,0,5}};min=a;
_______________________for(j=0;jj++)
if(___________________)
{
inti,j,a[N];for(i=0;i
scanf(\for(j=2;j
if(a[i]%j==0)
break;
if(j==a[i])
printf(\
15
程序设计基础C实验报告
min=a[i][j];row=i;col=j;}
printf(\
}
8】以下程序是实现输出杨辉三角(最多十行),请将程序补充补充完整。
11112113311464115101051?
#defineN11#includevoidmain(){inti,j,a[N][N];for(i=1;i
}
for(i=3;i
for(i=1;i
for(j=1;jj++)
printf(\16
【题目
程序设计基础C实验报告
printf(”\\n”);}
printf(\
}
【题目9】从键盘上任意键入n阶方阵,求它的两条对角线元素之和。
【题目10】分析以下读程序,写的运行结果,并上机验证。
#includevoidmain(){charc,s[]=\intk;
for(k=1;(c=s[k])!
='\\0';k++){switch(c){case'A':
putchar('?
');continue;case'B':
++k;break;default:
putchar('*');
case'C':
putchar('continue;
}
putchar('#');
}
putchar('\\n');
}
【题目11】输入一串字符,计算其中字母的个数。
#include#include#defineN81voidmain(){
charch[N];
17
程序设计基础C实验报告
}
inti,count=0;
puts(\请输入一串字符:
\
_____________________/*提示:
使用字符串输入函数*/for(i=0;i
if(_____________________________________)
count++;
printf(\字母个数为:
%d\\n\
【题目12】编程:
输入一串字符,要求逆序输出。
2.选择内容
【题目13】将两个字符串连接起来,不使用strcat字符函数
#include#defineN80voidmain(){}
【题目14】在字符串str中查找字符ch首次出现的位置,若str字符串中不包含字符ch,则输出0。
【题目15】有4位学生,考4门功课。
求出每位学生的总分和平均分,及所有学生每门功课平均分和所有功课的平均分。
18
chars1[2*N],s2[N];inti=0,j=0;
printf(\请输入两个字符串,以空格或回车键作字符串结束标志:
\\n\scanf(\scanf(\while(s1[i]!
='\\0')
i++;
s1[i++]=s2[j++];while(_______________)s1[i]='\\0';
printf(\连接后的两个字符串为:
\\n%s\\n\
程序设计基础C实验报告
【题目16】找出一个二维数组的”鞍点”,即该位置上的元素在该行上最大,在该列上最小,如无”鞍点”,则给出提示。
三、实验结果(用截图说明)1
2
19
程序设计基础C实验报告
3
45
程序设计基础C实验报告
4
5
46
程序设计基础C实验报告
6
7
47
程序设计基础C实验报告
8
四、调试心得(选作)
48
程序设计基础C实验报告
3
45
6
20
程序设计基础C实验报告
7
89
21
程序设计基础C实验报告
10
11
12
22
程序设计基础C实验报告
13
四、调试心得(选作)
23
程序设计基础C实验报告
实验7函数实验
教学班级:
学号:
姓名:
实验日期:
2021年5月28日实验地点:
4-210(机房)实验成绩:
___________一、实验目的
(1)理解函数定义的方法。
(2)掌握函数实参与形参的对应关系,以及函数”参数传递”的方式。
(3)掌握函数的嵌套调用和递归调用的方法;
(4)掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法。
一、实验任务
1.基本内容
【题目1】以下程序是求3个数中的最大值,请完善程序并上机验证。
#includevoidmain(){inta,b,c,m;
intmax(intx,inty);/*函数声明*/printf(\
scanf(\
m=max(max(a,b),c);
printf(\最大值是:
%d\\n\
}
intmax(intx,inty)/*函数定义*/{intz;z=(xy)?
x:
y;returnz;
}
24