C语言经典题库Word格式.docx
- 文档编号:19411589
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:25
- 大小:21.03KB
C语言经典题库Word格式.docx
《C语言经典题库Word格式.docx》由会员分享,可在线阅读,更多相关《C语言经典题库Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
j++)
b[j][i]=a[i][j];
main()
{inta[2][3]={{1,2,3},{4,5,6}},b[3][2],i,j;
数组a:
%5d"
a[i][j]);
trans(a,b);
数组b:
b[i][j]);
第3题操作题
/*找出数组arr[]中的最大元素。
suffix函数的功能是:
求出形参数组a[]中最大元素的下标。
其中,形参n为数组元素的个数。
例如,数组元素为:
5617861238724316112478143
则输出结果为:
数组arr的最大元素为:
arr[5]=243*/
intsuffix(inta[],intn)
{inti,k,max;
max=a[0];
for(i=1;
n;
if(max<
a[i]){max=a[i];
k=i;
returnk;
{voidCHECK();
intarr[10]={56,178,6,123,87,243,161,124,78,143},k;
clrscr();
k=suffix(arr,10);
arr[%d]=%d\n"
k,arr[k]);
CHECK();
第4题操作题
/*在sum函数中,根据整型形参m,计算如下公式的值。
1111
y=-------+---------+---------+……+-------
100*100200*200300*300m*m
例如,若形参m=2000,则程序输出:
Theresultis:
0.000160。
doublesum(intm)
doubley,d;
y=0;
for(i=100;
=m;
i+=100){
d=(double)i*(double)i;
y+=1.0/d;
return(y);
main()
{intn=2000;
\nTheresultis:
%lf\n"
sum(n));
第5题操作题
/*比较数组a[]和数组b[]中,a[i]>
b[i]、a[i]=b[i]和a[i]<
b[i]的次数。
其中comp函数的功能是:
当x>
y时,返回1;
当x=y时,返回0;
当x=y时,返回0。
intcomp(intx,inty)
{intflag;
if(x>
y)flag=1;
elseif(x==y)flag=0;
elseflag=-1;
return(flag);
{inti,n=0,m=0,k=0;
inta[10]={5,-23,5,21,6,18,9,12,23,7};
intb[10]={6,-9,64,23,-52,0,9,8,-35,12};
10;
i++)printf("
%4d"
a[i]);
b[i]);
if(comp(a[i],b[i])==1)n=n+1;
elseif(comp(a[i],b[i])==0)m=m+1;
elsek=k+1;
a[i]>
b[i]%2d次\na[i]=b[i]%2d次\na[i]<
b[i]%2d次\n"
n,m,k);
第6题操作题
/*将1到n之间,能同时被7和11整除的整数存储到形参数组a[]中,并返回这些整数的个数。
例如:
当n=1000时,程序输出:
77154231308385462539616693770847924*/
intfun(inta[],intn)
intk=0;
for(i=1;
=n;
if(i%7==0&
&
i%11==0)
{a[k]=i;
k++;
returnk;
intarr[20],i,k,n;
n=1000;
k=fun(arr,n);
k;
arr[i]);
第7题操作题
/*计算N×
N的二维数组的所有数组元素的平均值。
例如:
a数组中的值为
|01279|
|19745|
a=|23831|
|45682|
|59141|
则平均值为:
4.280000。
#defineN5
floatcount(inta[N][N])
{inti,j;
floatsum=0,ave;
for(i=0;
N;
for(j=0;
sum=sum+a[i][j];
ave=sum/(N*N);
returnave;
intarr[N][N]={{0,1,2,7,9},{1,9,7,4,5},{2,3,8,3,1},{4,5,6,8,2},{5,9,1,4,1}};
二维数组arr的元素的平均值为:
%f\n"
count(arr));
第8题操作题
/*求广义菲玻那契数列的第n项。
广义菲玻那契数列前3项分别是1,1,1,从第4项开始,各项分别是其前3项之和。
广义菲玻那契级数的前n项为:
1,1,1,3,5,9,17,31,……。
例如,若n=20,则应输出
广义菲玻那契级数的第20项为:
46499。
longfibonacci(intn)
{longa=1,b=1,c=1,d;
inti;
for(i=4;
{
d=a+b+c;
a=b;
b=c;
c=d;
returnd;
{intn=20;
广义菲玻那契级数的第%d项为:
%ld\n"
n,fibonacci(n));
第9题操作题
/*应用冒泡排序算法,对数组a[]中的元素从小到大进行排序。
voidsort(inta[],intn)
{inti,j,t;
n-1;
n-1-j;
if(a[i]>
a[i+1]){
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
{intk,a[10]={6,-9,78,23,-12,0,9,8,-3,12};
for(k=0;
k<
k++)
%d"
a[k]);
sort(a,10);
\n从小到大排序:
第10题操作题
/*计算1到形参n之间,能被3和7整除的整数的和,并作为函数值返回。
例如,n为1800时,程序输出:
1到1800之间,能被3和7整除的整数的和为:
76755*/
longsum(intn)
{
longsum=0;
if(i%3==0&
i%7==0)
sum=sum+i;
return(sum);
intn=1800;
1到%d之间,能被3和7整除的整数的和为:
n,sum(n));
第11题操作题
/*统计子字符串substr在字符串str中出现的次数。
例如,若字符串为ThisisaCProgram,子字符串为is,则应输出2。
intcount(charstr[],charsubstr[])
{inti,j,k,num=0;
str[i]!
='
\0'
;
for(j=i,k=0;
substr[k]==str[j];
k++,j++)
if(substr[k+1]=='
)
num++;
break;
returnnum;
charstr[80],substr[80];
Inputastring:
gets(str);
Inputasubstring:
gets(substr);
%d\n"
count(str,substr));
第12题操作题
/*求二维数组a[3][3]中各列元素的平均值,并依次存储在一维数组b[3]中。
voidfun(inta[3][3],floatb[3])
b[j]+=a[i][j];
b[i]/=3;
{inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},i;
floatb[3]={0,0,0};
fun(a,b);
%4.1f"
);
第13题操作题
/*有一个3×
4的矩阵,求所有元素中的最小值。
min_value(intarray[][4])
{inti,j,min;
min=array[0][0];
4;
if(array[i][j]<
min)
min=array[i][j];
return(min);
{inta[3][4]={{-11,23,15,37},{29,48,6,-8},{15,17,34,12}};
矩阵中所有元素的最小值=%d\n"
min_value(a));
第14题操作题
/*求班级学生考试成绩的平均值。
floataverage(floatarray[],intn)
floataver,sum=array[0];
sum=sum+array[i];
aver=sum/n;
return(aver);
{floatscore_1[5]={98.5,97,91.5,60,55};
floatscore_2[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5};
班级A学生考试成绩的平均值=%6.2f\n"
average(score_1,5));
average(score_2,10));
第15题操作题
/*将每个英语单词的第一个字母改成大写(这里的“单词”是指由空格隔开的字符串)。
例如,若输入:
Iamastudenttotaketheexamination.,
则应输出:
IAmAStudentToTakeTheExamination.。
voidchange(chars[])
{inti,k;
k=0;
s[i]!
if(k)
{if(s[i]=='
'
)k=0;
elseif(s[i]!
{k=1;
s[i]=toupper(s[i]);
{charstr[80];
\nPleaseenteranEnglishtextline:
printf("
Beforechanging:
\n%s"
str);
change(str);
\nAfterchanging:
\n%s\n"
第16题操作题
/*计算
11111
1----+-------+----...---
2345n
例如,n=100时,运算结果为:
0.688172。
floatcount(intn)
floatsign=1;
floatsum=0;
sum=sum+sign/i;
sign=(-1)*sign;
returnsum;
intn=100;
11111\n"
1----+-------+----...---=%f\n"
count(n));
2345%d\n"
n);
第17题操作题
/*求出以下分数序列的前n项之和。
23581321
┄┄,┄┄,┄┄,┄┄,┄┄,┄┄,……
1235813
例如,若n=5,则应输出:
8.391667。
doublesum(intn)
{inta,b,c,k;
doubles;
s=0;
a=2;
b=1;
for(k=1;
k++){
s=s+(double)a/b;
c=a;
a=b+c;
returns;
{intn=5;
\nThevalueoffunctionsumis:
第18题操作题
/*计算两个双精度数的和的平方根。
23.18,32.4721,则输出:
z=7.460034。
math.h>
doublecount(doublea,doubleb)
{doublec;
c=sqrt(a+b);
returnc;
{doublex,y,z;
Enterx,y:
"
scanf("
%lf,%lf"
&
x,&
y);
z=count(x,y);
printf("
z=%f\n"
z);
第19题操作题
/*计算n!
。
例如,给n输入5,则输出5!
=120。
longcount(intn)
longs=1;
s=s*i;
returns;
intn;
InputN:
%d"
&
n);
%d!
=%ld\n"
n,count(n));
第20题操作题
/*输出M行M列整数方阵,并计算主对角线上各元素之和。
#defineM5
intcount(intn,inta[M][M])
{inti,sum=0;
sum+=a[i][i];
{intarr[M][M]={{1,2,3,4,5},{4,3,2,1,0},{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};
\n%d×
%d数组元素为:
M,M);
M;
i++){
j++)
arr[i][j]);
printf("
主对角线上各元素之和为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 经典 题库