C语言常见、经典的上机实验题目.doc
3.3常见、经典的上机实验题目
1、
/*功能:数组x有十个元素,编程将其元素首尾颠倒。(即第一个元素与最后一个元素交换,第二个元素与倒数第二个元素交换…)。*/
main()
{inta[10]={5,65,654,5,5,56,588,77,58,5},j,x;
for(j=0;j5;j++)
{x=a[j];a[j]=a[9-j];a[9-j]=x;}
for(j=0;j10;j++)
printf(%d\t,a[j]);
}
2、
/*功能:统计输入的一串字符〔假设以‘\n’结束〕中,大写字母A,B,...,Z各出现的次数。
(提示,用一个数组count[26]计数各个字母出现的次数,count[0]表示A出现的次数,count[1]表示B出现的次数,...,count[25]表示字母Z出现的次数。初始时count的各元素值为0。以后,每读入一个字符ch,假设它是一个大写字母,就让相应计数单元count[ch-A]加1。*/
main()
{intcount[26],i;
charch[80];
for(i=0;i26;i++)
count[i]=0;
gets(ch);
for(i=0;istrlen(ch);i++)
if(ch[i]=Ach[i]=Z)count[ch[i]-A]++;
for(i=0;i26;i++)
printf(%c%d\t,A+i,count[i]);
}
3、
/*功能:键盘输入假设干数,输出它们的平均值,输入值为-1时,结束输入*/
main()
{intx,i=1,s;
scanf(%d,x);
while(x!=-1)
{s=s+x;i++;
scanf(%d,x);
}
printf(%d\n,s/i);
}
4、
/*功能:在字符串str中查找字符ch首次出现的位置,假设str字符串中不包含字符ch,那么输出0。〔例如:假设str为china,ch为a,那么输出5*/
#includestdio.h
main()
{charstr[20],ch;
inti,m=0;
ch=getchar();
gets(str);
for(i=0;str[i]!=\0;i++)
if(str[i]==ch){m=1;break;}
if(m==1)printf(%d\n,i+1);
elseprintf(%d\n,0);
}
5、
/*程序功能:求Fibonacci数列的前40个数。*/
main()
{longintf1=1,f2=1; /*定义并初始化数列的头2个数*/
inti=1; /*定义并初始化循环控制变量i*/
for(;i=20;i++) /*1组2个,20组40个数*/
{printf(%15ld%15ld,f1,f2); /*输出当前的2个数*/
if(i%2==0)printf(\n); /*输出2次〔4个数〕,换行*/
f1+=f2;f2+=f1; /*计算下2个数*/
}
}
6、
/*程序功能:输出10~100之间的全部素数。*/
main()
{inti=11,j,counter=0;
for(;i=100;i+=2) /*外循环:为内循环提供一个整数i*/
{for(j=2;j=i-1;j++) /*内循环:判断整数i是否是素数*/
if(i%j==0) /*i不是素数:因为能被2~(i-1)之间的某个数整除*/
break; /*强行结束内循环,执行下面的if语句*/
if(counter%10==0) /*每输出10个数换一行*/
printf(\n);
if(j=i) /*整数i是素数:输出,计数器加1*/
{printf(%6d,i);
counter++;
}
}
}
7、
/*程序功能:有一个整型的二维数组,大小为6×3,要求找出最大值所在的行和列,并输出。*/
main()
{intx[6][3],i,,j,a=0,b=0,max;
for(i=0;i6;i++)
for(j=0;j3;j++)
scanf(%d,x[i][j]);
max=x[0][0];
for(i=0;i6;i++)
f