C练习KEY0620文档格式.docx
- 文档编号:16349061
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:13
- 大小:23.01KB
C练习KEY0620文档格式.docx
《C练习KEY0620文档格式.docx》由会员分享,可在线阅读,更多相关《C练习KEY0620文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
intfun1(inta[],intn,intk)
{inti,c=0;
for(i=0;
i<
n;
i++)
if(a[i]>
=k)c++;
return(c);
}
result=5
函数fun1的作用是:
统计数组a中大于等56的数的个数
{intm=8,b[]={70,80,100,50,90,40,60,20,70,70};
printf(“result=%d”,fun2(b,10));
intfun2(inta[],intn)
{floats=0;
inti,m=0;
for(i=0;
s+=a[i];
s/=n;
if(a[i]<
s)m++;
return(m);
result=4
函数fun2的作用是:
先计算数组b中元素的平均值,然后计算并返回其中小于平均值元素的个数
4、main()
{char*s="
12134211"
;
intv[4]={0,0,0,0,},k,i;
for(k=0;
s[k];
k++)
{switch(s[k])
{case'
1'
:
i=0;
break;
case'
2'
i=1;
3'
i=2;
4'
i=3;
v[i]++;
k<
4;
k++)printf("
%d"
v[k]);
4211
若删除每个case后面的break,则程序输出结果是:
0008
5、#include“stdio.h”
voidmian()
{inti,j,k;
charch=’A’;
for(i=0;
5;
{for(k=1;
5-i;
k++)putchar(‘‘);
for(j=1;
j<
2*i+1;
j++)putchar(ch+i);
/*若将j=1改为j=0*/
putchar(‘\n’);
︺(空行)
BB
CCCC
DDDDDD
EEEEEEEE
若将j=1改为j=0程序输出结果是
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
6、main()
{inta[3][3],b[3]={0},i,j;
3;
for(j=0;
j++)a[i][j]=i+j+1;
i++)b[i]=a[i][2]+a[2][i];
i++)printf("
b[i]);
6810
7、
二、程序完整性填空题
1、统计字符串中字符’a’,’b’,’c’,’d’,’e’的个数并将统计结果保存到数组n中。
#include<
stdio.h>
main()
{chara[]="
aabcaabedbcceeb"
intn[5]={0},i=0,k;
char*p=a;
while(*p)
{k=*p-‘a’;
(或97)
n[k]++;
p++;
%d"
n[i]);
2、下面的函数是通过num统计在字符串str中用空格分割开的单词个数,请填空。
intfun(charstr[])
{inti,word=0,num=0;
for(i=0;
str[i]!
=’\0’;
if(str[i]==‘'
)
word=0;
elseif(word==0)
{word=1;
num++;
returnnum;
}
3、在上题的基础上增加以下处理:
将每个单词的第一个字母改为大写字母。
intfun(charstr[])
{inti,word=0,num=0;
for(i=0;
='
\0'
if(str[i]=='
'
)
word=0;
elseif(word==0)
{word=1;
num++;
if(str[i]>
a'
&
str[i]<
z'
str[i]=str[i]-32;
returnnum;
main()
{intn;
charstrline[100];
gets(strline);
n=fun(strline);
puts(strline);
num=%d"
n);
getch();
4、将上题fun函数的数组类型的参数改为指针类型。
intfun(char*p)
for(;
*p!
p++)
if(*p=='
if(*p>
*p<
*p=*p-32;
5、下面程序是计算:
请填空。
{ints=1,n;
floatx=1,p=0;
for(n=3;
=15;
n=n+2)
{p=p+x;
s=-s;
x=1.0*s/n;
p=%f\n"
p);
6、以下程序是用来统计从键盘输入的一个正整数中各位数字中零的个数,并求各位数字中最大者。
例如:
1080其零的个数是2,各位数字中最大者是8。
voidmain(void)
{unsignedlongnum,max,t;
intcount;
count=max=0;
scanf("
%ld"
&
num);
do{
t=num%10;
if(t==0)++count;
else
if(max<
t)max=t;
num/=10;
}while(num);
count=%d,max=%ld\n"
count,max);
}
7、下面程序的功能是:
输出100以内能被3整除且个位数为6的所有整数。
/*6366696*/
{
inti,j;
i<
10;
i++){
j=i*10+6;
if(j%3!
=0)continue;
%d"
j);
}}
8、以下函数用于求x的y次方,请填空。
____double___fun(doublex,inty)
{inti
doublez=1.0
for(i=1
__i<
=y__;
i++)z=z*x__;
returnz
9、以下程序用于统计字符串str中的数字字符数。
请填空。
#include"
stdio.h"
{
charstr[100];
inti,k;
gets(______str_________);
k=__0__;
i=0;
while(str[i]!
=’\0’)
{if(str[i]>
=’0’&
str[i]<
=’9’)k++;
i++;
%d\n"
k);
三、改错题
下列给定程序中,函数proc的功能是:
将长整型数中每一位上为偶数的数依次逆向取出,构成一个新数放在t中。
高位在低位,低位在高位。
例如,当s中的数为12345678时,则t中的数为8642。
请修改函数proc中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
stdlib.h>
conio.h>
voidproc(longs,long*t)
{intd;
longs1=1,i=1;
*t=0;
while(s/i>
0)
i=i*10;
i=i/10;
while(s>
{d=s/i;
/*******found*******/
if(d%2!
=0)/*修改为if(d%2==0)*/
{
t=d*s1+t;
/*修改为*t=d*s1+*t;
*/
s1*=10;
s=s%i;
voidmain()
longs,t;
system("
CLS"
);
printf("
\nPleaseenters:
"
);
scanf("
&
s);
proc(s,&
t);
Theresultis:
%ld\n"
t);
四、编写程序题
1、编写一个函数sort,使用冒泡法对数组x的n个元素从小到大进行排序。
#defineN100
voidsort(intx[],intn)/*排序,数组作函数参数*/
{inti,j,t;
for(j=1;
j<
=n-1;
j++)
for(i=1;
=n-j;
i++)
if(x[i]>
x[i+1])
{t=x[i];
x[i]=x[i+1];
x[i+1]=t;
}
main()
{inta[N];
int*p,i,n;
n=?
);
n);
inputnumbers:
\n"
for(i=1;
=n;
i++)
a[i]);
/*输入待排序的数据*/
sort(a,n);
thesortednumbers:
i++)/*输出排序后的数据*/
a[i]);
2、编写一个函数fun,计算12+22+32+┅+n2的和。
ints(intn)
{inti,t=0;
t=t+i*i;
returnt;
}
{intn=3;
s(n));
3、编程利用随机函数生成100个10~99范围内的随机整数,然后统计其中大于等于60的数的个数。
#include<
time.h>
voidmain()
{inti,j,p,t,a[101],num=0;
srand((int)time(0));
/*随机数的初始化函数*/
101;
{a[i]=10+rand()%90;
/*产生10-99之间的随机数*/
i++)
if(a[i]>
=60)num++;
num=%d\n"
num);
4、编程计算并输出下列多项式的值
111
s=1+++...+
1+21+2+31+2+...+50
{floati,m=0,s=0;
=50;
{m=m+i;
s=s+1.0/m;
%f\n"
另外一份
4、#include<
math.h>
main()
{printf(“result=%d”,fun3(17));
intfun3(intx)
{inta=(int)(sqrt(x));
inti=2;
while(i<
=a)
{if(x%i)break;
if(i<
=a)return
(1);
elsereturn(0);
result=1
函数fun3的作用是:
判断数据x是否为数素,若是则返回1,否则返回0
1、定义一个递归函数outninary(x),把输入的正整数x转换成二进制数并输出。
voidoutbinary(inta)
d=a%2;
if(a!
=1)outbinary(a/2);
printf("
d);
3、以下程序的功能是将5个字符串,按由大到小的顺序进行排序。
string.h>
{charp[5][10],t[20];
inti,j;
5;
gets(p[i]);
for(i=0;
4;
for(j=i+1;
j++)
if(strcmp(p[i],p[j])<
0)
{strcpy(t,p[i]);
strcpy(p[i],p[i]);
strcpy(p[j],t);
9、以下程序的作用是分别统计字符串中数字字符’0’-‘3’的个数。
{
chara[]="
012301023120"
intb[4]={0},i=0,k;
char*p=a;
while(*p)
{k=*p-48;
/*或‘0’*//*字符0的ASCII码为48*/
b[k]++;
b[i]);
getch();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 练习 KEY0620