C程序设计题库(182道含答案).doc

上传人:asd****56 文档编号:70332232 上传时间:2023-01-19 格式:DOC 页数:297 大小:1.41MB
返回 下载 相关 举报
C程序设计题库(182道含答案).doc_第1页
第1页 / 共297页
C程序设计题库(182道含答案).doc_第2页
第2页 / 共297页
点击查看更多>>
资源描述

《C程序设计题库(182道含答案).doc》由会员分享,可在线阅读,更多相关《C程序设计题库(182道含答案).doc(297页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、试卷编号:8172所属语言:C+试卷方案:题库182道设计题试卷总分:1820分共有题型:1种一、程序设计 共182题 (共计1820分)第1题 (10.0分) 题号:664/*-【程序设计】- 题目:已知有结构体类型定义: struct node int data; struct node *nextPtr; ; 请编写函数void computingList(node * head),对head 指向的单向链表,分别统计结点的data成员值为负数、0、 正数的结点个数分别存入变量negtive、zero、positive中。 - 注意:部分源程序给出如下。请勿改动主函数main和其它函数中

2、 的任何内容,仅在函数的花括号中填入所编写的若干语句。 -*/#include #include using namespace std;void grading(int,int,int);struct node int data; struct node *nextPtr;void computingList(node * head) int positive=0,negtive=0,zero=0; /*Program*/ /* End */ /忽略阅读 grading(positive,zero,negtive); /忽略阅读结束struct node *createList(void)

3、node *head=NULL, *p1, *p2; int i; int a10 = -1,3,4,0,9,4,11,-6,2,-10; head=p2=p1= new node; p1-data = a0; for (i=1; idata = ai; p2-nextPtr=p1; p2=p1; p2-nextPtr=NULL; return (head);int main() struct node *head; head = createList(); computingList(head); return 0;/以下忽略阅读void grading(int a,int b,int c)

4、 fstream myfile; myfile.open(out.txt,ios:out); myfilea b cdata 0)positive+; else if (p-data data = 0)zero+; p=p-nextPtr;第2题 (10.0分) 题号:522/*-【程序设计】-题目:设计函数char capitalize(char);将小写英文字符变为对应的大写字符。- 注意: 1.部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在*program* 和*end*所标记的区域内完成题干要求的函数功能。 2./标记开始与/标记结束内的程序可以忽略阅读。-*/

5、#include#includeusing namespace std;void wwjt();/*Program*/char capitalize(char ch)if(ch=a&ch=z)return ch-a+A;else return ch;/* End */int main() int i=0; char cp30; cout请输入包含小写字母的句子:endl; cin.getline(cp,30); while(cpi!=0) coutcapitalize(cpi+); coutendl; /忽略阅读 wwjt(); /忽略阅读结束 return 0;/忽略阅读void wwjt(

6、) char ins250; int i=0; fstream infile, outfile; infile.open (in.txt,ios:in); outfile.open(out.txt,ios:out); infile.getline (ins,250); while(insi!=0) outfile=a&ch=z)return ch-a+A;else return ch;第3题 (10.0分) 题号:672/*-【程序设计】-题目:函数mySum(int a , int m, int n)返回二维 整数数组a中所有元素的和,m、n分别为数组a的行 数、列数。填写适当的代码,使得m

7、ySum()完成正确 的功能。-注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。-*/#include#include using namespace std;int mySum(int a23, int m, int n);void gfkd();void main() int a23=1,2,3, 4,5,6; cout mySum(a, 2, 3) endl; / - main()函数此后部分可以不阅读 - gfkd();int mySum(int a23, int m, int n)/* Program */ /* E

8、nd */void gfkd() fstream myF; int a23; myF.open(in.dat,ios:in); myF.read(char *)a, sizeof(int)*2*3); myF.close(); myF.open(out.dat,ios:out); myF mySum(a, 2, 3); myF.close();答案:int i, j, s=0;for (i=0; im; i+)for (j=0; jn; j+)s = s + aij;return s;第4题 (10.0分) 题号:588/*-【程序设计】-题目: 求1-1000之间同构数的个数n。同构数是:

9、某数与其自身的平方数的后几位相同。 例如:2525625,25是同构数。-注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。-*/#include#includeusing namespace std;void writeinfile(int n);void main() int m,k,j,n=0; for(m=1;m=1000;m+) /*Program*/ int i=1;k=m;j=m*m;while(k!=0)k/=10;i*=10;if(j%i=m)n+; /* End */ writeinfile(n);void

10、writeinfile(int n) fstream myfile; myfile.open(f.txt,ios:out); myfilenendl; myfile.close();答案: int i=1;k=m;j=m*m;while(k!=0)k/=10;i*=10;if(j%i=m)n+;第5题 (10.0分) 题号:725/*-【程序设计】-题目:补充函数aver的代码,该函数计算n个学生成绩(通 过参数cj传入)的平均分数。-注意:部分源程序给出如下。仅在标有Program和End 的注释行之间补充代码,请勿改动其它内容。-*/#include #include using name

11、space std;void grading();float aver(int cj,int n)/*Program*/* End */int main() grading(); return 0;void grading() fstream infile,myfile; int b50; int i; infile.open(in.txt,ios:in); myfile.open(out.txt,ios:out); for(i=0;ibi; myfile(int)aver(b,50)endl; infile.close(); myfile.close();答案: int sum = 0;in

12、t i;for( i=0;in;i+)sum += cji;return (float)sum/n; 第6题 (10.0分) 题号:709/*-【程序设计】-题目:输入两个正整数m和n,求其最大公约数和最小公倍数。-注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。-*/#include #include using namespace std;int grading();int gcd(int m,int n) int r; r=m%n; /*Program*/ /* End */ return n;int main() in

13、t m,n; coutmn; if(mn) int temp; temp=m; m=n; n=temp; coutm和n的最大公约数是gcd(m,n)endl; coutm和n的最小公倍数是m*n/gcd(m,n)endl;/忽略阅读 grading();/忽略阅读结束 return 0;/以下忽略阅读int grading() int m, n; ifstream infile(in.txt, ios:in); ofstream outfile(out.txt,ios:out); if(!infile.is_open() | !outfile.is_open() coutFile Open

14、Error!endl; return -1; for (int i=0; i m n; outfilegcd(m,n) m*n/gcd(m,n)endl; infile.close(); outfile.close(); return 0;答案:while(r!=0)m=n;n=r;r=m%n;第7题 (10.0分) 题号:667/*-【程序设计】-题目:编程计算,计算公式如右图所示。-注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。-*/#include #include using namespace std;int ca

15、lc()/*Program*/* End */void main(void) int value; value = calc(); cout 累计和s为: value endl; fstream outfile; outfile.open(out.txt, ios:out); outfile 累计和s为: value endl; outfile.close();答案:int i, k, s;s=0;for (i=1; i=20; i+)for (k=1; k=3; k+)s = s + (i+1)*(i+1)*(k+2)*(k+2);return s;第8题 (10.0分) 题号:265/*-

16、【程序设计】-题目: 完成函数cal,该函数计算数组a中的所有数据的 最大值及最小值以及它们的差,并存入到全局变 量max、min、ca中。例如数组a中包含8,43,7, 18,2,56,37,123,25,26则max=123,min=2, ca=121。 -注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。-*/#include #include using namespace std;int grading();int max, min, ca;void cal(int a, int size) /*Program*/ /

17、* End */int main() int a100 = 8,43,7,18,2,56,37,123,25,26; cal(a,10); coutmax=maxendl; coutmin=minendl; coutca=caendl;/忽略阅读 grading();/忽略阅读结束 return 0;/以下忽略阅读int grading() fstream infile,outfile; int a100, i; infile.open(in.txt,ios:in); outfile.open(out.txt,ios:out); for(i=0;iai; cal(a,20); outfilem

18、ax min caendl; for(i=0;iai; cal(a,15); outfilemax min caendl; infile.close(); outfile.close(); return 0;答案:int i;max=min=a0;for(i=0; imax)max=ai;if(aimin)min=ai;ca=max-min;第9题 (10.0分) 题号:707/*-【程序设计】-题目:从文件中读入n个字符串,将其中以字母A开头的字符串复制 到二维字符数组str1中。-注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干

19、语句。-*/# include # include # include using namespace std;# define n 5# define M 20void wwjt(int len);char str1nM;void main() int i; char strnM; ifstream infile(in.txt,ios:in); if(!infile.is_open() coutFile Open Error!endl; return; for(i=0;istri; infile.close(); int j=0; /*Program*/ /* End */ wwjt(j);

20、void wwjt(int len) ofstream outfile(out.txt,ios:out); if(!outfile.is_open() coutFile Open Errorendl; return; for(int i=0;ilen;i+) outfilestr1in; outfile.close();答案:for(i=0;i=0)&(strcmp(stri,B)0) strcpy(str1j,stri); j+; 第10题 (10.0分) 题号:673/*-【程序设计】-题目:函数myStrCat(char *dst, char *src)将字符串src 连接到字符串dst

21、的后面。填写适当的代码,使得 mySum()完成正确的功能。-注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。-*/#include#include using namespace std;void myStrCat(char *dst, char *src);void gfkd();void main() char dst100=Hello, ; char src100=Good luck!; myStrCat(dst, src); cout dst endl; / - main()函数此后部分可以不阅读 - gfkd();

22、void myStrCat(char *dst, char *src)/* Program */ /* End */void gfkd() fstream myF; char dst100, src100; myF.open(in.dat,ios:in); myF.read(dst, 100); myF.read(src, 100); myF.close(); myF.open(out.dat,ios:out); myStrCat(dst, src); myF dst; myF.close();答案:int i=0, len;len = strlen(dst);while (srci)dstl

23、en+ = srci+;dstlen = 0;第11题 (10.0分) 题号:723/*-【程序设计】-题目:编写函数eachPrime,判断两个正整数m和n是否为 互质数。若是,返回1;否则,返回-1。 互质数:最大公约数为1的两个数称为互质数。-注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。-*/#include #include #include using namespace std;int eachPrime( int m, int n) /*Program*/ /* End */void grading();int main() int num1, num2, result; cout 0):n; cin num1 num2; if ( num1=0 | num2=0 ) cout Input error!n; result = eachPrime(num1, num2); if(result = 1) cout num1 和 num2 是互质数!n; else cout num1 和 num2 不是互质数!n;/忽略阅读 grading();/忽略阅读结束 return 0;/以下忽略阅读void

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁