C语言考试典型编程题Word格式.docx
《C语言考试典型编程题Word格式.docx》由会员分享,可在线阅读,更多相关《C语言考试典型编程题Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
printf(“%f”,sum);
多项式求和问题,例如:
1.序列:
1!
、2!
、3!
、4!
、5!
…求前m项之和;
2.序列:
1*1、2*2、3*3、4*4、…求前m项之和;
3.序列:
1,1,2,3,5,8,13……从第三个数开始每个数是前两个数之和,求出这个数列的前m项之和。
2
有一序列:
1,1,2,3,5,8,13……从第三个数开始每个数是前两个数之和,求出这个数列的前m(m>
=1并且m<
=100)项之和,并将总和存放到变量sum中,并输出之.
(若程序已经定义的变量不够用,考生可以补充定义其它变量).
main()
intm,sum;
intm,sum=0,i,a=0,b=0,s=1;
sum=sum+s;
a=b;
b=s;
s=a+b;
printf(“%d”,sum);
无
3
对于任意给定的正整数m,求这个数的各位数字之和,并存入变量sum中,并输出之。
例如:
如果m为123,则sum为6。
#include“”
main()
intm,sum=0,i,s;
while(m!
=0)
sum=sum+m%10;
m=m/10;
printf(“%d”,sum);
整型数据求位数、及按位提取数字问题。
4
已知10名学生的成绩已存入数组a中,计算前m位同学的平均成绩,并存入变量aver中,并输出之。
例如,若m=2,则aver=65。
(若程序已经定义的变量不够用,考生可以补充定义其它变量)。
{intm,a[10]={60,70,77,79,76,83,78,56,85,69};
floataver;
#include“”
main()
intm,i,a[10]={60,70,77,79,76,83,78,56,85,69};
floataver=0;
for(i=0;
m;
i++)
aver=aver+a[i];
aver=aver/m;
printf(“theaveris%f”,aver);
主函数中直接对整型(实型)数组进行统计处理问题,例如:
1.求平均分;
2.求最大值最小值;
3.求高于平均分人数;
5
将输入的一行字符串(<
50)存入数组a中,求字符串中小写字母的个数并存入变量count中,并输出之。
例如,若输入”ItIsAJoke.”,则count=5。
chara[50];
intcount;
chara[50];
intcount=0,i;
gets(a);
a[i]!
='
\0'
;
if(a[i]>
a'
&
a[i]<
z'
)
count++;
printf(“thecountis%d”,count);
主函数中直接对字符型数组进行统计处理问题,例如:
1.求字符串长度;
2.求字符串中大写\小写字母个数;
;
3.
6
已知10名学生的成绩已存入数组a中,求不低于m分的人数,并存入变量count中,并输出之。
例如,若m=60,则count=5;
若m=80,则count=2。
(若程序已经定义的变量不够用,考生可以补充定义其它变量)。
{intm,a[10]={34,45,67,82,64,53,67,90,49,56};
intcount;
{intm,a[10]={34,45,67,82,64,53,67,90,49,56};
intcount=0,i;
scanf(“%d”,&
for(i=0;
10;
=m)
printf(“thecountis%d”,count);
7
从键盘输入的一行字符串(<
50)存入数组a中,求该字符串的长度,并将长度存入变量count中,并输出之.例如,若输入”Iamastudent.”,则count=15.
gets(a);
for(count=0;
a[count]!
count++)
;
/*此处‘;
’表示循环体为空*/
printf(“thelengthis%d”,count);
8
根据三角形的三边(a,b,c)判断是否能组成三角形,若可以则求三角形的面积并存入变量area中,并输出之.
floata,b,c,area;
floata,b,c,area,s;
scanf(“%f,%f,%f”,&
a,&
b,&
c);
if(a+b>
c&
b+c>
a&
c+a>
b)
s=*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“yes!
andthearea=%f\n”,area);
elseprintf(“yes!
\n”);
简单数学公式使用的问题:
1.判断润年;
2.求方程的解;
等等
9
编写一个名为fun的函数将字符串中所有的大写字母转换成小写字母.例如,对于字符串”AAbbCC”,则会被转换成”aabbcc”.
(不要改动已有的代码,仅在fun的函数体中填写若干语句)
fun(charw[])
chara[20]=“AAbbCC”;
fun(a);
puts(a);
fun(charw[])
{inti;
w[i]!
if(w[i]>
A'
w[i]<
Z'
w[i]=w[i]+32;
}
main()
{
使用自定义函数处理字符串问题,例如:
1.大写\小写字母转换;
2.字符串逆序存放;
3.排序(升序、降序)。
10
编写一个名为fun的函数,其功能为:
将数组n中的字符串拷贝至数组m中.例如,在main中调用fun以后,会输出”university”.
(不允许用C语言提供的strcpy函数.)
fun(charm[],charn[])
chara[20],b[20]=“university”;
fun(a,b);
fun(charm[],charn[])
n[i]!
m[i]=n[i];
m[i]='
;
chara[20],b[20]=“university”;
fun(a,b);
puts(a);
1.字符串拷贝;
2.把字符串a追加到b后。
11
编写一个名为fun的函数实现一个字符串按逆序存放.例如:
由abcd变为dcba.
{chara[20]=“abcd”;
{inti,n,t;
n=i;
n/2;
{t=w[i];
w[i]=w[n-1-i];
w[n-1-i]=t;
chara[20]=“abcd”;
fun(a);
12
编写一个名为fun的函数实现将数组a中的n个整数依次向后移一位,最后面一位移到最前面的位置.例如,若有a[5]={0,1,2,3,4};
则调用fun函数后,数组元素的排列顺序为4,0,1,2,3.
fun(intw[],intn)
inti,a[5]={0,1,2,3,4};
fun(a,5);
5;
printf(“%d,”,a[i]);
fun(intw[],intn)
{inti,t;
t=w[n-1];
for(i=n-1;
i>
0;
i--)
w[i]=w[i-1];
w[0]=t;
inti,a[5]={0,1,2,3,4};
fun(a,5);
使用自定义函数处理整型(实型)数组置换问题。
,例如:
1.排序;
2.逆序存放;
3.有序数组中插入新的数后仍然有序。
13
编写一个名为fun的函数统计一个字符串中英文字母(letter)和其它字符(other)的个数.例如,对于”aed234efg”,则letter应为6,other应为3.
fun(charw[],int*p1,int*p2)
chara[20]=“aed234efg”;
intletter,other;
fun(a,&
letter,&
other);
printf(“%d,%d”,letter,other);
fun(charw[],int*p1,int*p2)
*p1=0;
*p2=0;
if((w[i]>
)||(w[i]>
))
(*p1)++;
else(*p2)++;
{chara[20]=“aed234efg”;
intletter,other;
fun(a,&
printf(“%d,%d\n”,letter,other);
使用指针,自定义函数统计字符串问题,例如:
1.统计字符串中大写/小写字母个数;
2.统计字符串中字母/符号/数字个数。
14
编写一个名为fun的函数实现计算数组a中n个整数的最大数和最小数.例如,本题的main函数应输出7,1.
fun(intw[],intn,int*p1,int*p2)
inta[5]={1,2,3,4,7},max,min;
fun(a,5,&
max,&
min);
printf(“%d,%d”,max,min);
fun(intw[],intn,int*p1,int*p2)
*p1=w[0];
*p2=w[0];
n;
*p1)
*p1=w[i];
elseif(w[i]<
*p2)*p2=w[i];
inta[5]={1,2,3,4,7},max,min;
fun(a,5,&
printf(“%d,%d”,max,min);
使用指针,自定义函数处理整型(实型)数组统计问题。
15
编写一个名为fun的函数实现向有序数组a(由小到大排列)中插入一个数m后使数组仍然有序.例如,若有a[6]={10,20,30,40,50};
则调用fun函数插入35后,数组元素的排列顺序为10,20,30,35,40,50.
fun(intw[],intn,intm)
inta[6]={10,20,30,40,50},m,i;
m=35;
fun(a,5,m);
6;
fun(intw[],intn,intm)
if(m>
w[n-1])
w[n]=m;
else
{for(i=0;
t=i;
=t;
w[i+1]=w[i];
w[t]=m;
}}
inta[6]={10,20,30,40,50},m,i;
m=35;
fun(a,5,m);
printf(“%d,”,a[i]);
16
编写一个名为fun的函数实现计算数组a中的n个学生成绩中小于平均分的人数,平均分按实型数考虑.例如,若有a[5]={50,60,70,80,90};
则fun函数的返回值应为2.
inta[5]={50,60,70,80,90},count;
count=fun(a,5);
printf(“%d”,count);
{inti,sum=0,m=0;
floatavg;
sum=sum+w[i];
avg=sum/n;
if(w[i]<
avg)m++;
returnm;
使用自定义函数对整型(实型)数组进行统计处理问题,例如:
4.统计问题和置换问题结合。
17
编写一个名为fun的函数实现将数组a的n个整数中的最小数与最后面的数互换,而其它元素不变.例如,若有a[5]={34,1,2,56,4};
则调用fun函数后,数组元素的排列顺序为34,4,2,56,1.
inti,a[5]={34,1,2,56,4};
{inti,min,j;
min=w[0];
min)
{min=w[i];
j=i;
w[j]=w[n-1];
w[n-1]=min;
最大数和第一个元素互换。
18
编写一个名为fun的函数根据一个学生一学期5门课的成绩,判断学生是否优秀,优秀的条件是单科分都大于85分,如果是优秀则函数返回1,否则返回0.本题的main函数应输出”nogood”.
intk,a[5]={34,56,72,99,80};
k=fun(a,5);
if(k==1)printf(“good”);
elseprintf(“nogood”);
{inti,m=1;
=85)m=0;
intk,a[5]={34,56,72,99,80};
19
编写一个名为fun的函数,实现求一行字符串中小字字母的ASCII码值之和.本题的main函数应输出195.
chara[10]=“aCbD”;
intk;
k=fun(a);
printf(“\n%d”,k);
fun(charw[])
{inti,sum=0;
returnsum;
使用自定义函数处理字符串统计问题,例如:
1.字符串中大写/小写/数字的ASCII码值之和;
2.字符串中数字之和。
20
编写一个名为fun的函数,实现对整型数组元素作如下操作:
a[1]=a[1]+a[0],a[2]=a[2]+a[1]...即每一个元素等于它本身与上一个元素之和,最前面的一个元素值不变.例如,若原来的数组为8,9,1,0,4,则新数组为8,17,10,1,4.
inti,a[5]={8,9,1,0,4};
printf(“%d“,a[i]);
printf(“\n”);
w[i]=w[i]+w[i-1];