《C语言程序设计》期末复习题答案.doc_第1页
《C语言程序设计》期末复习题答案.doc_第2页
《C语言程序设计》期末复习题答案.doc_第3页
《C语言程序设计》期末复习题答案.doc_第4页
《C语言程序设计》期末复习题答案.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计期末复习题答案一、选择题12345678910CABBABCACD11121314151617181920CCDACDACBD21222324252627282930DBABCCACDB二、读程序,写出程序的运行结果1a=0,b=62230 1 2 31 2 3 42 3 4 53 4 5 64i=2,j=2i=4,j=45“c:abc.dat”6107y=13880000931025112112n=25,m=3013b=2114515DG16abchijklm1727.0000181191320621 6 7 8 5 5221 1 2 3 5231,2,2,124opqr三、程序填空【1】y=0;【2】y=y*10+a【3】x!=0【4】t%17=0【5】str1【6】str1i!=0或str1i!=0或str1i【7】k【8】k【9】k*fun(k-1)【10】k=0【11】n/2【12】i【13】an-1-i【14】n%i=0【15】i=0&c=9【21】%d【22】j+【23】aij【24】4四、编程题,请写出完整的C语言程序1. 输入一百分制成绩,要求输出成绩等级A,B,C,D,E。90分及以上为A ,80-89分为B,70-79分为C,60-69分为D,60分以下为E。 #include void main( ) int score,temp; char grade; scanf(%d,&score); if (score100)|(score0) printf(ndata errorn); else if(score= =100) temp=9; else temp=score/10; switch (temp) case 9 : grade=A;break; case 8 : grade=B;break; case 7: grade=C;break; case 6: grade=D ; break; case 5: case 4: case 3: case 2: case 1: case 0: grade=E ; printf(%d,%cn, score,grade); 2. 编程求方程3X+4Y=50的所有非负整数解。#includeint main()int x,y;for(x=1;x17;x+)for(y=1;y13;y+)if(3*x+4*y=50)printf(x=%2d,y=%2dn,x,y); return 0;3. 求1!+2!+3!+100!。#include void main()int i;double t,s;i=1;t=i; s=t;for(i=2;i=100;i+) t=t*i s+=t; printf(%ld ,s);4. 有一分数序列,求出这个数列的前30项之和。#includeint main()int i,a=1,b=2,k; /a: 分母,b:分子double t,sum=2/1.0;for(i=2;i=30;i+)/循环的初始值,确定循环条件k=a;a=b;b=b+k;t=(double)b/a; /强制类型转换 / t=1.0*b/a;sum=sum+t;printf(%.2fn,sum); return 0;5. 输出100以内能被3整除且个位数为6的所有正整数。#include stdio.hvoid main()int i,j; for(i=0;i10; i+) j=i*10+6; if(i%3!=0) continue;printf(%d ,j); 6. 编写一个程序,统计出10个学生的平均成绩,最高分。例如:输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出:平均成绩为77.9,最高分为92。#include void main( ) float a10,ave,max,sum=0; int i=0; for(i=0;i10;i+) scanf(%f,&ai); max=a0; for(i=0;i10;i+)if(maxai) max=ai; sum=sum+ai; ave=sum/10; printf(ave=%fn,ave); printf(max=%fn,max);7. 定义一个二维数组,任意输入200个学生的数学、语文、英语、物理、化学5门课程的成绩,计算并输出每一门课程的平均成绩和每一位学生的平均成绩。#include #define N 200 /代表学生数#define M 5 /代表课程数void main()int scoresNM;int i,j,sum; /输入学生成绩for(i=0;iN;i+) printf(输入第%d个学生的数学、语文、英语、物理、化学5门课程的成绩:,i+1); for(j=0;jM;j+) scanf(%d,&scoresij);/输出学生成绩 printf(序号t数学t语文t英语t物理t化学t平均成绩n);for(i=0;iN;i+)sum=0;printf(%dt,i+1); /输出学生序号for(j=0;jM;j+)sum+=scoresij; /计算每一位学生的总成绩printf(%dt,scoresij);printf(%dn,sum/M); /输出每一位学生的平均成绩/计算并输出每一门课程的平均成绩printf(n平均t);for(j=0;jM;j+)sum=0;for(i=0;iN;i+)sum+=scoresij;printf(%dt,sum/N);printf(n);8. 已知一个3*3的整型二维数组,输出数组元素中的最小值及其位置(不用考虑有多个相等的最小值的情况)。要求:数组元素的初值初始化如下:139023571,最小值是0,其位置是第1行第0列。#includeint main()int a33=1,3,9,0,2,3,5,7,1;int i,j,row,col,min;min=a00;row=0;col=0;for(i=0;i3;i+) for(j=0;jaij) min=aij; row=i; col=j; printf(min=%d,row=%d,col=%dn,min,row,col); return 0;9. 若一个字符串正读和反读都一样,如level、madam,则称之为回文字符串。请编写程序,输入任意一个字符串,验证其是否为回文。(多种方法均可)法1:#include#includeint main()char s100;int i,n,m=1;scanf(%s,s);n=strlen(s);for(i=0;in/2;i+)if(si!=sn-1-i)m=0;break;if(m)printf(%s是回文n,s);else printf(%s不是回文n,s);return 0;法2:#include#include #define N 100void fc(char a ) int i, tmp, n;n=strlen( a );for(i=0;in;i+)tmp=ai;ai=an-i-1;an-i-1=tmp; int main()char aN,bN;gets(a);strcpy(b,a);fc(a);if(strcmp(a,b)= 0)printf(%s是回文串n,a);else printf(%s不是回文串n,a);return 0; 10. 编写函数实现两个字符串的连接。要求不能使用 strlen, strcat, strcpy等字符串处理函数。函数原型void cat(char s1, char s2, char s3);主函数中完成两个串的输入,cat函数的调用,连接后的结果输出。#includevoid cat(char s1, char s2, char s3)int i,j;for(i=0;s1i!=0;i+)s3i=s1i;for(j=0;s2j!=0;j+,i+)s3i=s2j;s3i=0;void main() char s140,s240,s380;printf(请输入第一个字符串:);gets(s1);printf(请输入第二个字符串:);gets(s2);cat(s1,s2,s3);printf(连接后的结果是:%sn,s3);11. 编写输入数据函数、排序函数、输出函数,完成10个整数的输入、排序和输出,在主函数中进行测试。输入函数的功能是程序运行时,通过键盘输入10个整数。输入函数原型:void inputData(int a,int n);排序函数的功能是把若干个整数从大到小排序。请分别用冒泡排序、选择排序两种方法实现排序函数,排序函数原型:void selectedSort(int a,int n); /选择排序void bubbleSort(int a,int n); /冒泡排序输出函数的功能是把排好序的10个整数在屏幕上输出。输出函数原型void outputData(int a,int n);#include #include #define SIZE 10void inputData(int a,int n); /数组数据赋值void selectedSort(int a,int n); /选择排序void bubbleSort(int a,int n); /冒泡排序void outputData(int a,int n); /输出数据void main()int aSIZE;inputData(a,SIZE);selectedSort(a,SIZE);bubbleSort(a,SIZE);outputData(a,SIZE);void inputData(int a,int n)int i;printf(请输入%d个整数:n,n);for(i=0;in;i+)scanf(%d,&ai);void selectedSort(int a,int n) /选择排序 int i,j,t,max;for(i=0;in-1;i+) max=i; for(j=i+1;jamax) max=j; t=ai; ai=amax; amax=t; void bubbleSort(int a,int n) /冒泡排序int i,j,t;for(i=0;in-1;i+)for(j=0;jn-i-1;j+)if(ajaj+1) t=aj;aj=aj+1;aj+1=t;void outputData(int a,int n)int i;printf(数组为:n);for(i=0;in;i+)printf(%d ,ai);printf(n);12. 从键盘输入若干个整数,判断其是否为素数,直到输入50个素数为止,统计这50个素数的和。要求:1 定义函数isprime,判断任意一个正整数是否是素数2 定义函数main,输入若干正整数,通过调用函数isprime,判断是否是素数,求50个素数之和,并输出结果。 #include#includeint isprime(int x)int i,is

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论