重庆理工大学C语言程序实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
break;
if(j==a[i])
printf("%5d",a[i]);
}
}
【题目7】以下程序是求二维数组中的最小数及其下标(设最小数是唯一的),请填空完成程序,并上机验证。
#include<stdio.h>
void main()
{
int i,j,row,col,min;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,0,5}};
printf("s=%d\n",s);
}
#include<stdio.h>
void main()
{int i=1,t=1,s=0; /* t标识正负符号*/
while(i<=101)
{s+=i*t;i++;t=-t;}
printf("s=%d\n",s);
}
题目2:分析程序,运行时输入:24579<CR>(注:<CR>表示回车换行)。
#include<stdio.h>
void main()
{
char c;
while((c=getchar())!='\n')
{if(c>='a'&&c<='z')
c=c-32;
putchar(c);
}
}
2.选择内容
题目7:打印出如下图案
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
#include <stdio.h>
void main()
{int i,j;
for(i=1;i<=3;i++)
{ for(j=1;j<=6-i;j++) //理解数字8的作用
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("%d ",i);
printf("\n");
}
}
9
#include<stdio.h>
}
【题目6】编程:任意输入10个数,判断该哪些是素数,并输出这些素数。
#include<stdio.h>
#define N 10
void main()
{
int i,j,a[N];
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
for(j=2;j<a[i];j++)
if(a[i]%j==0)
{j=i*10+3;
if(j%3!=0)
continue;
printf("%4d",j);
}
}
题目4:编程输出:用0~4任意组成无重复数字的三位数?都是多少?每行输出10个数。
#include<stdio.h>
void main()
{
int i,j,k,count=0;
printf("\n");
for(i=1;i<5;i++)/*以下为三重循环*/
}
【题目2】下面程序给数组a输入数据,以每行4个数据形式输出,请填空。
##include<stdio.h>
#define N 8
void main()
{
int i, a [N];
for(i=0; i<N; i++)
scanf("%d",&a[i]);
for(i=0; i<N; i++)
{
if(i%4==0)
void main()
{
int i,n,s;
for(n=2;n<=1000;n++)
{s=0;
for(i=1;i<n;i++)
if(n%i==0)
s=s+i;
if(n==s)
printf("%5d",n);
}
}
三、实验结果(用截图说明)
1
2
3
4
5
6
7
9
10
四、调试心得(选作)
实验6数组实验
教学班级:学号:姓名:
case 'B':++k;break;
default:putchar('*');
case 'C':putchar('&');continue;
}
putchar('#');
}
putchar('\n');
}
【题目11】输入一串字符,计算其中字母的个数。
#include <stdio.h>
#include <string.h>
printf("%5d",a[i]);
printf("\n");
}
【题目4】下面的程序用冒泡法对10个数排序(从小到大),将程序补充完整。
#define N 10
#include<stdio.h>
void main()
{
int i,j,min,temp,a[N]={1,5,4,3,7,0,9,8,2,6};
{s+=i*t;
t= -t;
}
printf("s=%d\n",s);
}
2分别用do……while语句和while语句改写以上程序。
#include<stdio.h>
void main()
{int i=1,t=1,s=0; /* t标识正负符号*/
do {s+=i*t;i++;t=-t;}
while(i<=101);
1
11
121
1331
14641
151010 5 1
…
#define N 11
#include<stdio.h>
void main()
{
int i,j,a[N][N];
for (i=1;i<N;i++)
{
a[i][1]=1;
a[i][i]=1;
}
for (i=3;i<N;i++)
for (j=2;j<=i-1;j++)
min=a[0][0];
_______________________
for(j=0;j<4;j++)
if(___________________)
{
min=a[i][j];
row=i;
col=j;
}
printf("min=%d,row=%d,col=%d\n",min,row,col);
}
【题目8】以下程序是实现输出杨辉三角(最多十行),请将程序补充补充完整。
《程序设计基础C》
实
验
报
告
教学班级:学号:
姓名:课程教师:
实验辅导教师:
重庆理工大学计算机学院
2013年2月
实验5循环程序设计
教学班级:学号:姓名:
实验日期:2013年5月28日实验地点:4-210(机房)
实验成绩:___________
一、实验目的
(1)了解C语言循环结构的使用范围。
(2)学会正确使用逻辑运算符和逻辑表达式。
printf("\n");
printf("%11d",a[i]);
}
printf("\n");
}
【题目3】用简单选择法对10个整数排序,将程序补充完整。
#define N 10
#include<stdio.h>
void main()
{
int i,j,min,temp,a[N]={1,5,4,3,7,0,9,8,2,6};
【题目10】分析以下读程序,写的运行结果,并上机验证。
#include<stdio.h>
void main()
{
char c,s[]="BABCDCBA";
int k;
for(k=1;(c=s[k])!='\0';k++)
{
switch(c)
{
case 'A':putchar('?');continue;
}
【题目5】任意输入20个数到一维数组a中,求这20个数的平均值。
#define N 20
#include<stdio.h>
void main()
{
int i,s=0,a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N;i++)
s+=a[i];
printf("%f",s/20.0);
}
题目5:根据公式 求e的近似值,精度要求为10-6。
#include<stdio.h>
void main()
{
double i=1,s=1,sum=1;
for(i=1;1/s>0.000001;i++)
{s*=i;sum+=1/s;}
printf("%f",sum);
}
题目6:输入一行字符,将小写字母转换为大写字母显示,其它字符原样输出。
for(i=0;i<N;i++)
for(j=0;j<N-i-1;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
printf("\n排序结果为:\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
{int i,t=1,s=0; /* t标识正负符号*/
for (i=1;i<101; i+=2) /*error*/
{s+=i*t;
t= -t;
}
printf("s=%d\n",s);
}
1请改错,并运行程序。
#include<stdio.h>
void main()
{int i,t=1,s=0;
for (i=1;i<=101; i+=2)
for (i=0;i<N-1;i++)
{
min=i;
for (j=i+1;j<N;j++)
if (a[min]>a[j])
min=j;
if(min!=i)
{temp=a[i];a[i]=a[min];a[min]=temp;}
}
printf("\n排序结果为:\n");
for (i=0;i<N;i++)
实验日期:2013年5月28日实验地点:4-210(机房)
实验成绩:___________
一、实验目的
(1)理解数组的特点及其与普通变量的区别及特点;
(2)掌握一维数组的定义、赋值和输入输出的方法;
(3)掌握二维数组的定义、赋值和输入输出的方法;
(4)掌握字符数组和字Байду номын сангаас串函数的使用;
(5)掌握与一维数组和字符数组有关的程序与算法;
case 4: putchar(c+2);break;
default:putchar(c);
}
}
printf("\n");
}
题目3:下面程序的功能是打印100以内个位数为3且能被3整除的所有数,选择合适的语句填入该空格中。
#include<stdio.h>
void main()
{
int i,j;
for(i=0;i<=9;i++)
void main()
{int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=8-i;j++)//理解数字8的作用
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("* ");
printf("\n");
} /*上面的程序输出上三角形*/
/*下面的程序输出下三角形*/
a[i][j]= a[i-1][j-1]+ a[i-1][j];
for (i=1;i<N;i++)
{
for (j=1;j<=i;j++)
printf("%6d", a[i][j]);
printf(”\n”);
}
printf("\n");
}
【题目9】从键盘上任意键入n阶方阵,求它的两条对角线元素之和。
(3)熟练掌握C语言的三种循环结构:whilc语句、do……whilc语句、for语句的特点和使用方法。
(4)能够编写一些有实际应用意义的循环结构程序。
二、实验内容
1.基本内容
题目1:计算1-3+5-7+......-99+101的值。(提示:注意符号的变化)
#include<stdio.h>
void main()
for(j=0;j<5;j++)
for (k=0;k<5;k++)
{
if (i!=j&&j!=k&&i!=k) /*确保i、j、k三位互不相同*/
{
printf("%6d",i*100+j*10+k);
count++;
if(i=j&&j=k&&i=k)
printf("\n");
}
}
printf("\n");
for(i=3;i>=1;i--)
{for(j=1;j<=8-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("* ");
printf("\n"); }
}
①运行以上程序,验证实验结果。
②模仿上面程序,打印出如下图案
1
2 2 2
3 3 3 3 3
#include <stdio.h>
#include<stdio.h>
void main()
{int c;
while((c=getchar())!='\n')
{switch(c-'2')
{case 0:
case 1: putchar(c+4);
case 2: putchar(c+4);break;
case 3: putchar(c+3);
(6)理解与二维数组有关的程序与算法。
二、实验任务
1.基本内容
【题目1】读程序,写结果。
#include<stdio.h>
void main()
{
int i,s=0,a[10]={1,2,3,4,5,6,7,8,9,10};
for(i=4;i<7;i++)
s=s+a[i];
printf("s=%d\n",s);
#define N 81
void main()
{
char ch[N];
int i,count=0;
puts("请输入一串字符:");
_____________________ /*提示:使用字符串输入函数*/
for(i=0;i<strlen(ch);i++)
if(_____________________________________)
if(j==a[i])
printf("%5d",a[i]);
}
}
【题目7】以下程序是求二维数组中的最小数及其下标(设最小数是唯一的),请填空完成程序,并上机验证。
#include<stdio.h>
void main()
{
int i,j,row,col,min;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,0,5}};
printf("s=%d\n",s);
}
#include<stdio.h>
void main()
{int i=1,t=1,s=0; /* t标识正负符号*/
while(i<=101)
{s+=i*t;i++;t=-t;}
printf("s=%d\n",s);
}
题目2:分析程序,运行时输入:24579<CR>(注:<CR>表示回车换行)。
#include<stdio.h>
void main()
{
char c;
while((c=getchar())!='\n')
{if(c>='a'&&c<='z')
c=c-32;
putchar(c);
}
}
2.选择内容
题目7:打印出如下图案
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
#include <stdio.h>
void main()
{int i,j;
for(i=1;i<=3;i++)
{ for(j=1;j<=6-i;j++) //理解数字8的作用
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("%d ",i);
printf("\n");
}
}
9
#include<stdio.h>
}
【题目6】编程:任意输入10个数,判断该哪些是素数,并输出这些素数。
#include<stdio.h>
#define N 10
void main()
{
int i,j,a[N];
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
for(j=2;j<a[i];j++)
if(a[i]%j==0)
{j=i*10+3;
if(j%3!=0)
continue;
printf("%4d",j);
}
}
题目4:编程输出:用0~4任意组成无重复数字的三位数?都是多少?每行输出10个数。
#include<stdio.h>
void main()
{
int i,j,k,count=0;
printf("\n");
for(i=1;i<5;i++)/*以下为三重循环*/
}
【题目2】下面程序给数组a输入数据,以每行4个数据形式输出,请填空。
##include<stdio.h>
#define N 8
void main()
{
int i, a [N];
for(i=0; i<N; i++)
scanf("%d",&a[i]);
for(i=0; i<N; i++)
{
if(i%4==0)
void main()
{
int i,n,s;
for(n=2;n<=1000;n++)
{s=0;
for(i=1;i<n;i++)
if(n%i==0)
s=s+i;
if(n==s)
printf("%5d",n);
}
}
三、实验结果(用截图说明)
1
2
3
4
5
6
7
9
10
四、调试心得(选作)
实验6数组实验
教学班级:学号:姓名:
case 'B':++k;break;
default:putchar('*');
case 'C':putchar('&');continue;
}
putchar('#');
}
putchar('\n');
}
【题目11】输入一串字符,计算其中字母的个数。
#include <stdio.h>
#include <string.h>
printf("%5d",a[i]);
printf("\n");
}
【题目4】下面的程序用冒泡法对10个数排序(从小到大),将程序补充完整。
#define N 10
#include<stdio.h>
void main()
{
int i,j,min,temp,a[N]={1,5,4,3,7,0,9,8,2,6};
{s+=i*t;
t= -t;
}
printf("s=%d\n",s);
}
2分别用do……while语句和while语句改写以上程序。
#include<stdio.h>
void main()
{int i=1,t=1,s=0; /* t标识正负符号*/
do {s+=i*t;i++;t=-t;}
while(i<=101);
1
11
121
1331
14641
151010 5 1
…
#define N 11
#include<stdio.h>
void main()
{
int i,j,a[N][N];
for (i=1;i<N;i++)
{
a[i][1]=1;
a[i][i]=1;
}
for (i=3;i<N;i++)
for (j=2;j<=i-1;j++)
min=a[0][0];
_______________________
for(j=0;j<4;j++)
if(___________________)
{
min=a[i][j];
row=i;
col=j;
}
printf("min=%d,row=%d,col=%d\n",min,row,col);
}
【题目8】以下程序是实现输出杨辉三角(最多十行),请将程序补充补充完整。
《程序设计基础C》
实
验
报
告
教学班级:学号:
姓名:课程教师:
实验辅导教师:
重庆理工大学计算机学院
2013年2月
实验5循环程序设计
教学班级:学号:姓名:
实验日期:2013年5月28日实验地点:4-210(机房)
实验成绩:___________
一、实验目的
(1)了解C语言循环结构的使用范围。
(2)学会正确使用逻辑运算符和逻辑表达式。
printf("\n");
printf("%11d",a[i]);
}
printf("\n");
}
【题目3】用简单选择法对10个整数排序,将程序补充完整。
#define N 10
#include<stdio.h>
void main()
{
int i,j,min,temp,a[N]={1,5,4,3,7,0,9,8,2,6};
【题目10】分析以下读程序,写的运行结果,并上机验证。
#include<stdio.h>
void main()
{
char c,s[]="BABCDCBA";
int k;
for(k=1;(c=s[k])!='\0';k++)
{
switch(c)
{
case 'A':putchar('?');continue;
}
【题目5】任意输入20个数到一维数组a中,求这20个数的平均值。
#define N 20
#include<stdio.h>
void main()
{
int i,s=0,a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N;i++)
s+=a[i];
printf("%f",s/20.0);
}
题目5:根据公式 求e的近似值,精度要求为10-6。
#include<stdio.h>
void main()
{
double i=1,s=1,sum=1;
for(i=1;1/s>0.000001;i++)
{s*=i;sum+=1/s;}
printf("%f",sum);
}
题目6:输入一行字符,将小写字母转换为大写字母显示,其它字符原样输出。
for(i=0;i<N;i++)
for(j=0;j<N-i-1;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
printf("\n排序结果为:\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
{int i,t=1,s=0; /* t标识正负符号*/
for (i=1;i<101; i+=2) /*error*/
{s+=i*t;
t= -t;
}
printf("s=%d\n",s);
}
1请改错,并运行程序。
#include<stdio.h>
void main()
{int i,t=1,s=0;
for (i=1;i<=101; i+=2)
for (i=0;i<N-1;i++)
{
min=i;
for (j=i+1;j<N;j++)
if (a[min]>a[j])
min=j;
if(min!=i)
{temp=a[i];a[i]=a[min];a[min]=temp;}
}
printf("\n排序结果为:\n");
for (i=0;i<N;i++)
实验日期:2013年5月28日实验地点:4-210(机房)
实验成绩:___________
一、实验目的
(1)理解数组的特点及其与普通变量的区别及特点;
(2)掌握一维数组的定义、赋值和输入输出的方法;
(3)掌握二维数组的定义、赋值和输入输出的方法;
(4)掌握字符数组和字Байду номын сангаас串函数的使用;
(5)掌握与一维数组和字符数组有关的程序与算法;
case 4: putchar(c+2);break;
default:putchar(c);
}
}
printf("\n");
}
题目3:下面程序的功能是打印100以内个位数为3且能被3整除的所有数,选择合适的语句填入该空格中。
#include<stdio.h>
void main()
{
int i,j;
for(i=0;i<=9;i++)
void main()
{int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=8-i;j++)//理解数字8的作用
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("* ");
printf("\n");
} /*上面的程序输出上三角形*/
/*下面的程序输出下三角形*/
a[i][j]= a[i-1][j-1]+ a[i-1][j];
for (i=1;i<N;i++)
{
for (j=1;j<=i;j++)
printf("%6d", a[i][j]);
printf(”\n”);
}
printf("\n");
}
【题目9】从键盘上任意键入n阶方阵,求它的两条对角线元素之和。
(3)熟练掌握C语言的三种循环结构:whilc语句、do……whilc语句、for语句的特点和使用方法。
(4)能够编写一些有实际应用意义的循环结构程序。
二、实验内容
1.基本内容
题目1:计算1-3+5-7+......-99+101的值。(提示:注意符号的变化)
#include<stdio.h>
void main()
for(j=0;j<5;j++)
for (k=0;k<5;k++)
{
if (i!=j&&j!=k&&i!=k) /*确保i、j、k三位互不相同*/
{
printf("%6d",i*100+j*10+k);
count++;
if(i=j&&j=k&&i=k)
printf("\n");
}
}
printf("\n");
for(i=3;i>=1;i--)
{for(j=1;j<=8-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("* ");
printf("\n"); }
}
①运行以上程序,验证实验结果。
②模仿上面程序,打印出如下图案
1
2 2 2
3 3 3 3 3
#include <stdio.h>
#include<stdio.h>
void main()
{int c;
while((c=getchar())!='\n')
{switch(c-'2')
{case 0:
case 1: putchar(c+4);
case 2: putchar(c+4);break;
case 3: putchar(c+3);
(6)理解与二维数组有关的程序与算法。
二、实验任务
1.基本内容
【题目1】读程序,写结果。
#include<stdio.h>
void main()
{
int i,s=0,a[10]={1,2,3,4,5,6,7,8,9,10};
for(i=4;i<7;i++)
s=s+a[i];
printf("s=%d\n",s);
#define N 81
void main()
{
char ch[N];
int i,count=0;
puts("请输入一串字符:");
_____________________ /*提示:使用字符串输入函数*/
for(i=0;i<strlen(ch);i++)
if(_____________________________________)