完整word版万维考试系统C语言题库.docx
《完整word版万维考试系统C语言题库.docx》由会员分享,可在线阅读,更多相关《完整word版万维考试系统C语言题库.docx(47页珍藏版)》请在冰豆网上搜索。
完整word版万维考试系统C语言题库
第1题(10.0分)题号:
390
功能:
编写函数求1~100中奇数的平方和。
结果为166650.000000。
答案:
----------------------
floats=0;
inti;
for(i=1;i<=n;i=i+2)
s=s+i*i;
return(s);
----------------------
第2题(10.0分)题号:
320
功能:
在键盘上输入一个3行3列矩阵的各个元素的值(值
为整数),然后输出主对角线元素的积,并在fun()
函数中输出。
答案:
----------------------
intsum;
inti,j;
sum=1;
for(i=0;i<3;i++)
sum=sum*a[i][i];
returnsum;
----------------------
第3题(10.0分)题号:
324
功能:
能计算从1开始到n的自然数中偶数的平方的和,n由
键盘输入,并在main()函数中输出。
(n是偶数)
答案:
----------------------
intsum,i;
sum=0;
for(i=2;i<=n;i=i+2)
{
sum=sum+i*i;}
return(sum);
----------------------
第4题(10.0分)题号:
345
功能:
将两个两位数的正整数a、b合并形成一个整数放在c
中。
合并的方式是:
将a数的十位和个位数依次放在
c数的千位和十位上,b数的十位和个位数依次放在
c数的个位和百位上。
例如:
当a=45,b=12。
调用该函数后,c=4251。
答案:
----------------------
*c=a/10*1000+a%10*10+b/10+b%10*100;
----------------------
第5题(10.0分)题号:
366
功能:
求一组数中大于平均值的数的个数。
例如:
给定的一组数为1,3,6,9,4,23,35,67,12,88时,函
数值为3。
答案:
----------------------
inti,k=0;
floats=0,ave;
for(i=0;is+=a[i];
ave=s/n;
printf("%f",ave);
for(i=0;iif(a[i]>ave)k++;
returnk;
----------------------
第6题(10.0分)题号:
355
功能:
对长度为8个字符的字符串,将8个字符按降序排列。
例如:
原来的字符串为CEAedcab,排序后输出为edcbaECA。
答案:
----------------------
inti,j;
chart;
for(i=0;ifor(j=i+1;jif(s[i]
{t=s[i];s[i]=s[j];s[j]=t;}
----------------------
第7题(10.0分)题号:
44
功能:
求出二维数组周边元素之和,作为函数值返回。
二
维数组的值在主函数中赋予。
答案:
----------------------
ints=0;
inti,j;
for(i=0;is=s+a[i][0]+a[i][N-1];
for(j=1;js=s+a[0][j]+a[M-1][j];
returns;
----------------------
第8题(10.0分)题号:
339
功能:
判断整数x是否是同构数。
若是同构数,函数返回1;
否则返回0。
x的值由主函数从键盘读入,要求不大
于100。
说明:
所谓“同构数”是指这样的数,这个数出现在它的
平方数的右边。
例如:
输入整数5,5的平方数是25,5是25中右侧的数,所
以5是同构数。
答案:
----------------------
intk;
k=x*x;
if((k%10==x)||(k%100==x))
return1;
else
return0;
----------------------
第9题(10.0分)题号:
383
功能:
用函数实现字符串的复制,不允许用strcpy()函数。
答案:
----------------------
inti;
for(i=0;str1[i]!
='\0';i++)
str2[i]=str1[i];
str2[i]='\0';
----------------------
第10题(10.0分)题号:
310
功能:
计算并输出给定整数n的所有因子之和(不包括1与
自身)。
注意:
n的值不大于1000。
例如:
n的值为855时,应输出704。
答案:
----------------------
ints=0,i;
for(i=2;iif(n%i==0)s=s+i;
returns;
----------------------
第11题(10.0分)题号:
354
功能:
求小于lim的所有素数并放在aa数组中,该函数返回
所求出素数的个数。
答案:
----------------------
intn=0;
inti,j;
for(i=2;i<=lim;i++)
{for(j=2;j
if(i%j==0)break;
if(j==i)aa[n++]=i;
}
returnn;
----------------------
第12题(10.0分)题号:
341
功能:
删除所有值为y的元素。
数组元素中的值和y的值由
主函数通过键盘输入。
答案:
----------------------
inti,j;
for(i=0;i<*n;)
{
if(bb[i]==y)
{for(j=i;j<*n;j++)
bb[j]=bb[j+1];
*n=*n-1;
}
else
i++;
}
----------------------
第13题(10.0分)题号:
317
功能:
求出N×M整型数组的最大元素及其所在的行坐标及
列坐标(如果最大元素不唯一,选择位置在最前面
的一个)。
例如:
输入的数组为:
123
4156
12189
10112
求出的最大数为18,行坐标为2,列坐标为1。
答案:
----------------------
intmax,i,j;
max=array[0][0];
Row=0;
Col=0;
for(i=0;i{for(j=0;jif(max{max=array[i][j];
Row=i;
Col=j;}
}
return(max);
----------------------
第14题(10.0分)题号:
392
功能:
求一批数中最大值和最小值的积。
答案:
----------------------
inti,max,min;
max=min=a[0];
for(i=1;iif(a[i]>max)max=a[i];
elseif(a[i]return(max*min);
----------------------
第15题(10.0分)题号:
501
题目:
从键盘输入一个大写字母,要求改用小写字母输出。
答案:
c=c+32;
returnc;
第16题(10.0分)题号:
502
题目:
用while语句求1~100的累计和。
答案:
inti=1,sum=0;
while(i<=n)
{
sum=sum+i;
i++;
}
returnsum;
第17题(10.0分)题号:
409
题目:
输入华氏温度求摄氏温度。
转换公式为c=5/9(f-32),
输出结果取两位小数。
答案:
floatn;
n=(5.0/9.0)*(m-32);
returnn;
第18题(10.0分)题号:
29
功能:
对任意输入的x,用下式计算并输出y的值。
5x<10
y=0x=10
-5x>10
答案:
intm;
if(n<10)
m=5;
else
if(n==10)m=0;
elsem=-5;
returnm;
或
intm;
if(n>=10)
if(n>10)
m=-5;
elsem=0;
elsem=5;
returnm;
第19题(10.0分)题号:
382
功能:
给定n个数据,求最小值出现的位置(如果最小值
出现多次,求出第一次出现的位置即可)。
答案:
----------------------
inti,k;
k=0;
for(i=1;iif(s[i]
return(k);
----------------------
第20题(10.0分)题号:
367
功能:
找出一批正整数中的最大的偶数。
答案:
----------------------
inti,amax=-1;
for(i=0;iif(a[i]%2==0)
if(a[i]>amax)amax=a[i];
returnamax;
----------------------
第21题(10.0分)题号:
384
功能:
产生20个[30,120]上的随机整数放入二维数组a[5][4]
中,求每行元素的和。
答案:
----------------------
inti,j;
for(i=0;i<5;i++)
{b[i]=0;
for(j=0;j<4;j++)
b[i]=b[i]+a[i][j];
}
----------------------
第22题(10.0分)题号:
334
功能:
求给定正整数n以内的素数之积。
(n<28)
答案:
----------------------
longi,k;
longs=1;
for(i=2;i<=n;i++)
{for(k=2;k
if(i%k==0)break;
if(k==i)s=s*i;
}
returns;
----------------------
第23题(10.0分)题号:
363
功能:
求一个给定字符串中的字母的个数。
答案:
----------------------
inti,k=0;
for(i=0;s[i]!
='\0';i++)
if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
k++;
returnk;
----------------------
第24题(10.0分)题号:
361
功能:
编写程序,求矩阵(3行3列)与2的乘积
例如:
输入下面的矩阵:
100200300
400500600
700800900
程序输出:
200400600
80010001200
140016001800
答案:
----------------------
inti,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
array[i][j]=array[i][j]*2;
----------------------
第25题(10.0分)题号:
400
功能:
编写main程序调用函数fact求解从m个元素选n个元
素的组合数的个数。
计算公式是:
组合数=m!
/(n!
.(m-n)!
)。
要求:
m不能小于n,否则
应有容错处理。
说明:
函数fact(x)的功能是求x!
。
答案:
----------------------
while(m{
printf("m和n输入错!
请重新输入:
\n");
scanf("%d%d",&m,&n);
}
zhsgs=fact(m)/(fact(n)*fact(m-n));
----------------------
第26题(10.0分)题号:
411
功能:
对任意输入的x,用下式计算并输出y的值。
-1x<0
y=0x=0
1x>0
答案:
intm;
if(n<0)
m=-1;
else
if(n==0)m=0;
elsem=1;
returnm;
或
intm;
if(n>=0)
if(n>0)
m=1;
elsem=0;
elsem=-1;
returnm;
第27题(10.0分)题号:
509
功能:
编写函数fun其功能是:
根据整型形参m,计算如下
公式的值:
y=1+1/3+1/5+1/7+…+1/(2m+1)
例如:
若m=9,则应输出:
2.133256
答案:
----------------------
doubley=1;
inti;
for(i=1;i<=m;i++)
{y+=1.0/(2*i+1);}
return(y);
----------------------
第28题(10.0分)题号:
394
功能:
产生20个[30,120]上的随机整数放入二维数组
a[5][4]中,求其中的最小值。
答案:
----------------------
inti,j,s;
s=a[0][0];
for(i=0;i<5;i++)
for(j=0;j<4;j++)
if(s>a[i][j])s=a[i][j];
return(s);
----------------------
第29题(10.0分)题号:
330
功能:
计算出k以内最大的10个能被13或17整除的自然数之
和。
(k〈3000)。
答案:
----------------------
inta=0,b=0;
while((k>=2)&&(b<10))
{if((k%13==0)||(k%17==0))
{a=a+k;b++;}
k--;
}
returna;
----------------------
第30题(10.0分)题号:
364
功能:
求一个四位数的各位数字的立方和。
答案:
----------------------
intd,s=0;
while(n>0)
{d=n%10;
s+=d*d*d;
n/=10;
}
returns;
----------------------
第31题(10.0分)题号:
348
功能:
从低位开始取出长整型变量s中偶数位上的数,依次
构成一个新数放在t中。
例如:
当s中的数为:
7654321时,t中的数为:
642。
答案:
----------------------
longsl=10;
s/=10;
t=s%10;
while(s>0)
{s=s/100;
t=s%10*sl+t;
sl=sl*10;
}
----------------------
第32题(10.0分)题号:
313
功能:
从键盘为一维整型数组输入10个整数,调用fun函数
找出其中最小的数,并在main函数中输出。
答案:
----------------------
intmin,i;
min=x[0];
for(i=1;i{if(x[i]returnmin;
----------------------
第33题(10.0分)题号:
391
功能:
将字符串中的小写字母转换为对应的大写字母,
其它字符不变。
答案:
----------------------
inti;
for(i=0;str[i]!
='\0';i++)
if(str[i]>='a'&&str[i]<='z')
str[i]=str[i]-32;
----------------------
第34题(10.0分)题号:
397
功能:
编写函数fun(str,i,n),从字符串str中删除第i个
字符开始的连续n个字符(注意:
str[0]代表字符串
的第一个字符)。
答案:
----------------------
while(str[i+n-1])
{
str[i-1]=str[i+n-1];
i++;
}
str[i-1]='\0';
----------------------
第35题(10.0分)题号:
325
功能:
在键盘上输入一个3行3列矩阵的各个元素的值(值
为整数),然后输出主对角线元素的平方和,并在
fun()函数中输出。
答案:
----------------------
intsum;
inti;
sum=0;
for(i=0;i<3;i++)
sum=sum+a[i][i]*a[i][i];
returnsum;
----------------------
第36题(10.0分)题号:
388
功能:
编写函数判断一个整数能否同时被3和5整除,若能
则返回值为1,否则为0。
调用该函数求出15~300之
间能同时被3和5整除的数的个数。
答案:
----------------------
if(n%3==0&&n%5==0)return
(1);
return(0);
----------------------
第37题(10.0分)题号:
399
功能:
编写程序求无理数e的值并输出。
计算公式为:
e=1+1/1!
+1/2!
+1/3!
+......+1/n!
当1/n!
<0.000001时e=2.718282。
答案:
----------------------
longintj;
inti,k;
doublee,jc;
i=1;
e=0.0;
jc=1.0;
while(jc>=0.000001)
{
e=e+jc;
j=1;
for(k=1;k<=i;k++)
j=j*k;
jc=1.0/j;
i++;
}
returne;
----------------------
第38题(10.0分)题号:
312
功能:
调用函数fun判断一个三位数是否"水仙花数"。
在main函数中从键盘输入一个三位数,并输
出判断结果。
请编写fun函数。
说明:
所谓"水仙花数"是指一3位数,其各位数字立方和
等于该数本身。
例如:
153是一个水仙花数,因为153=1+125+27。
答案:
----------------------
intbw,sw,gw;
bw=n/100;sw=(n-bw*100)/10;gw=n%10;
if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)return1;
elsereturn0;
----------------------
第39题(10.0分)题号:
335
功能:
求一个n位自然数的各位数字的积。
(n是小于10的
自然数)
答案:
----------------------
longd,s=1;
while(n>0)
{d=n%10;
s*=d;
n/=10;
}
returns;
----------------------
第40题(10.0分)题号:
379
功能:
给定n个数据,求最大值出现的位置(如果最大值出
现多次,求出第一次出现的位置即可)。
答案:
----------------------
inti,k;
k=0;
for(i=1;i<=n;i++)
if(s[i]>s[k])k=i;
return(k+1);
----------------------
第41题(10.0分)题号:
22
功能:
从键盘为一维整型数组输入10个整数,调用fun
函数找出其中最小的数,并在main函数中输出。
请编写fun函数。
答案:
----------------------
intmin,i;
min=x[0];
for(i=1;i{if(x[i]returnmin;
----------------------
第42题(10.0分)题号:
381
功能:
求一批数中小于平均值的数的个数。
答案:
----------------------
inti,sum=0,k=0;
doubleaverage;
for(i=0;isum=sum+a[i];
average=sum*1.0/n;
for(i=0;iif(average>a[i])k++;
return(k);
----------------------
第43题(10.0分)题号:
352
功能:
根据整型形参m,计算如下公式的值:
y=1/2+1/4+
1/6+...+1/2m。
例如:
若m=9,则应输出:
1.414484
答案:
----------------------
doubley=0;
inti;
for(i=1;i<=m;i++)
{y+=1.0/(2*i);}
return(y);
----------------------
第44题(10.0分)题号:
33
功能:
用do-while语句求1~100的累计和。
答案:
inti=1,sum=0;
do
{sum=sum+i;
i++;
}while(i<=n);
returnsum;
第45题(10.0分)题号:
347
功能:
把20个随机数存入一个数组,然后输出该数组中的
最小值。
其中确定最小值的下标的操作在fun函数中
实现,请给出该函数的定义。
答案:
----------------------
inti,min=0;
for(i=1;iif(list[min]>list[i])
min=i;
returnmin;
----------------------
第46题(10.0分)题号:
343
功能:
将两个两位数的正整数a、b合并形成一个整数放在