您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 同济c++期中模拟题1
同济大学2012--2013学年第二学期C/C++程序设计期中模拟试题(含答案)一、选择题1.在下列特性中,不属于面向对象程序设计语言特征的是()。A.封装性B.继承性C.多态性D.模板答案D2.若有定义inta=3,&b=a;则执行语句b=5后a和b的值为()。A.a=3,b=5B.a=5,b=5C.a=3,b=3D.a=5,b=3答案B3.有说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a+1;则*(p+2)的值为()。A.3B.4C.5D.6答案B4.以下程序的运行结果为()。A.248B.23C.24D.234答案C5.已知有如下的结构定义,则对结构成员的正确赋值是()。structabc{inti;chars[10];floatc;}stu;A.abc.i=5B.strcpy(stu.s,abc)C.stu.s=qbcdD.stu-c答案B6.有如下函数定义:voidfunc(intx,inty,int*z){*z=x+y;}若要将变量a、b之和存入c中(均为整型),则调用语句应为___________。A.func(a,b,&&c);B.c=func(a,b);C.*c=func(a,b,c);D.func(a,b,*c);答案A7.设有定义:chars[20]=AB,*s1=abcdefg;则执行函数调用语句strcpy(s,s1)后,s的内容为__________。A.abcdefgB.ABC.ABabcdefgD.abcdefgAB答案A8.下面函数说明正确的是_________。A.voidf(inta=1,intb);B.voidf(inta,b);C.voidf(inta;intb);D.voidf(inta,intb=2);答案D9.以下程序段中循环执行的次数是_______。intk=1;for(;k=1;)k++;A.无限次B.有语法错,不能执行C.1次D.0次答案A10.已知floata[10],*p=a,*q=&a[2];假设数组的首地址为1000H,则表达式q-p的值为()。A.2B.4C.8D.出错答案A二、程序填充1.注意:不要随意加不是必须的空格和分号!以下fun函数判别数n是否是完全数。主函数的功能是输出100以内的所有完全数。完全数是指这样的数,该数恰好等于它的因子之和(除自身这个因子之外)。如6的除自身之外的因子有1、2、3,而6=1+2+3,故6为完全数。#includeiostream.hvoidmain(){_____(1)____;intn;for(n=1;n100;n++)if(fun(n))coutn\tendl;}intfun(intn){ints,m;____(2)____;for(m=1;___(3)___;m++)if(____(4)_____)s=s+m;return(s==n);}答案intfun(intn)@intfun(int)s=0mnn%m==02.注意:不要随意加不是必须的空格和分号!以下程序在值域为num,指针域为link的单链表中,查找与变量d的值相等的数据在链表中的位置,找到了输出该位置,否则提示不在链表中。#includeiostream.hstructnode{intnum;node*link;};voidmain(){node*head,*tail,*p;intd,i;____(1)___;for(i=0;i10;i++){p=newnode;cinp-num;if(head==NULL)head=p;else____(2)____;tail=p;}tail-link=NULL;cind;p=head;i=0;while(p!=NULL){i++;if(____(3)____)break;elsep=p-link;}if(____(4)____)coutd不在该链表中;elsecoutd为该链表中的第i个结点;}答案head=NULLtail-link=pp-num==dp==NULL三、设计操作1.编一函数intf(intn),功能为判断一个整数n是否为回文数(回文是指正读、倒读都一样的数,如121,2332都是回文数),若是,函数的返回值为1,否则为0。在主函数中统计并输出四位正整数中回文数的个数。要求在C:\ks下建立一个名为ct11的工程,在该工程下建立一个ct11.cpp的文件。注意:务必在要求的目录下建立工程。程序调试完毕,务必关闭VC应用程序后,再做上传。2.编程将字符串s1和s2中对应位置上字符较大者,写入到文件c:\ks\abc.txt中,若s1和s2长度不同,长出的内容原封不动地写到文件中。如,假设:s1为:abcd,s2为:badcfA,则:文件abc.txt的内容为:bbddfA要求在C:\ks下建立一个名为ct12的工程,在该工程下建立一个ct12.cpp的文件。注意:务必在要求的目录下建立工程。程序调试完毕,务必关闭VC应用程序后,再做上传。3.程序改错注意:·下面程序中有4个错误(一个表达式中出现的错误算做一个错误),请修改之,并将修改后的程序以ct13.cpp文件保存。·具体操作指导:在c:\ks下建立一个ct13工程,在该工程下建立一个ct13.cpp的文件。将下面的程序用Ctrl+C复制后粘贴到ct13.cpp文件中进行修改调试。·调试完毕后,关闭VC应用程序后再上传。以下程序中输出不小于m的最小素数,函数prime的功能是判断m是否为素数,若是返回1,否则返回0。#includeiostream.h#includemath.hintprime(intn);{intk;for(k=2;k=sqrt(n);k++)if(n/k==0)return0;elsereturn1;}voidmain(){intm;cinm;while(prime(m)==1)m++;coutmendl;}4.程序改错注意:·下面程序中有4个错误(一个表达式中出现的错误算做一个错误),请修改之,并将修改后的程序以ct14.cpp文件保存。·具体操作指导:在c:\ks下建立一个ct14工程,在该工程下建立一个ct14.cpp的文件。将下面的程序用Ctrl+C复制后粘贴到ct14.cpp文件中进行修改调试。·调试完毕后,关闭VC应用程序后再上传。函数max的功能是返回字符串s中最大字符的地址。主函数首先调用该函数获取该最大字符的地址,并将该最大字符后面的所有小写字母转换成大写字母。#includeiostream.h#includestdio.h#includestring.hchar*max(chars[]){inti=0,imax;while(s[i]!='\0'){if(s[i]s[imax])imax=i;}return(&s[imax]);}voidmain(){chars[100],*p;gets(s);*p=*max(s);while(*p!='\0'){if('a'=*p='z')*p=*p-32;p++;}puts(s);}
本文标题:同济c++期中模拟题1
链接地址:https://www.777doc.com/doc-4220734 .html