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