1、C+语言程序设计一、填空(每空2分,共20分)1 C+目标程序经_连接_后生成扩展名为exe的可执行程序文件。2 16位计算机中整型占_2_个字节存储空间。3 要在屏幕上显示Hello,world!应执行语句cout=0|x=0) coutabcd;else coutwxyz;屏幕上显示的是_ abcd _。7 设一维整型数组data已进行了初始化,则其元素个数可由操作符sizeof通过表达式_ sizeof(data/data0)_计算出来。8 若一全局变量只允许本程序文件中的函数使用,则定义它时应加上修饰符_ static _。9 设有int w34;,pw是与数组名w等价的数组指针,则p
2、w应初始化为 int (* pw)4=w;。10.要使引用pr代表变量char * p;,则pr应初始化为_ char * &pr=p;。二、单项选择题(每空2分,共20分)1下列变量名中,( A )是合法的。 A CHINA B byte-size C double D A+a2下列各种函数中,( C )不是类的成员函数。 A 构造函数 B 析构函数 C 友元函数 D 拷贝构造函数3下列( A )是正确的语句。 A ; B a=17 C x+y D coutn4循环while(int i=0) i-;执行次数是( A )。 A 0 B 1 C 5 D 无限5设int f(int);和int
3、g(int);是函数f和g的原形,以下将f作为语句调用的是( B )。A g(f(3); B f(g(3); C g(f(3)+2); D p= f(g(3)1);6设int * p2=&x,* p1=a;p2= *b;则a和b的类型分别是( B )。 A int * 和int B int * 和int * C int 和int * D int * 和int *7设int x;,则经过( C )后,语句*px=0;可将x值置为0。 A int * px; B int const * px=&x; C int * const px=&x; D const int * px=&x;8设void f
4、1(int * m,long & n);int a;long b;则以下调用合法的是( B )。 A f1(a,b); B f1(&a,b); C f1(a,&b); D f1(&a,&b);9以下结构类型可用来构造链表的是( B )。 A struct aa int a;int * b; B struct bb int a;bb * b; C struct cc int * a;cc b; D struct dd int * a;aa b;10使用操作符setw对数据进行格式输出时,需要包含( C )文件。 A iostream.h B fstream.h C iomanip.h D std
5、lib.h三、回答问题(每题4分,共20分)1设int * p;,判断下列表达式的正确性(用T表正确,用F表错误)。 -+p( T ) +(p-)( F ) p- ( F ) (+p)- ( T )2请初始化一维指针数组color,其初值表初值为red,blue,white和black。char * color=red,blue,white,black;3设int x 99,98,97,& y=x1;, 写出语句 couty-,; couty*2endl;执行结果。98,1944设int fp(char a,int b=0,double c=100.0);,判断下列重载函数的正确性。(用T表正
6、确,用F表错误)。int fp( );( T ) void fp(char);( F )int fp(char,int);( F ) void fp(char,int,int);( T )5要使语句p1=new long * ;p2=new float * 15;能正常执行,写出p1和p2的定义。long * p1; float * p2;四、(每题10分,共20分)1写出下列程序的执行结果。 # include void fun(int,int,int * ); void main() int x,y,z; fun (2,3,&x); fun (4,x,&y); fun (x,y,&z);
7、coutx,y,zendl; void fun(int a,int b,int * c ) b*=a;*c=b-a; 4,12,442下列程序向a盘上的文本文件aaa.dat输出0至100间的整数,请将程序补充完全。 # include # include void main(void) ofstream f1(a:aaa.dat); if (!f1(或f1.fail() cerra:aaa.dat file not open!endl; exit(1); for (int i=0;i=100;i+)f1i ; f1. close(); 五、(每题10分,共20分)1 编程求数列1,的所有大于
8、等于0.000001的数据项之和并输出结果。1、#include void main() int n=1,d=1; double s=0.0,s0; while(s0=double(n)/d)=0.000001) s+=s0; d+; coutsendl;2用递归方法设计函数int ArrayMin (int d ,int size);,其中d为数组,size为数组元素个数;ArrayMin返回d中的最小元素。int ArrayMin(int d,int size) int k=dsize-1; if(size=1) return k; if(k=ArrayMin(d,size-1) retu
9、rn k; else return ArrayMin(d,size-1);一、单项选择题1下列表达式中正确的是。(B)A(k+)+B.k-jCk-/=5D.(k+3)=52已知intf(int);和intg(int);分别是函数f和g的原型。下列语句中,将函数f作为语句调用的有。(D)A.f(3)+g(3);B.p/=f(3);C.g(f(3);D.f(g(3);3下面四个程序段中,输出23个*号的程序段是。(C)A.for(inti=1;i23;i+)cout=0;i-)cout0)cout*;i-;D.inti=0;while(0=23)cout5的相反表达式为(x+y=5)3执行语句i=
10、10;docout*;i-;while(i+3);后,将显示出个*号(14)4设有下面的定义ints10=1,2,3,4,5,6,7,8,9,10;intsum=0;请完善下面的语句实现求数组s的所有元素之和,并保存在变量sum中:for(int;j+);(j=0j10sum+=sj)5假定a是一个二维数组,则aij的指针访问方式为。(*(*(a+i)+j)或*(ai+j))三、下列程序运行后的输出结果1#includeinta=5;voidmain()inta=10,b=20;coutabendl;inta=0,b=0;for(inti=1;i6;i+)a+=i;b+=a;coutab:ae
11、ndl;coutabendl;(1020153551020)2#includeintLB(int*a,intn)ints=1;for(inti=0;in;i+)s*=*a+;returns;voidmain()inta=1,2,3,4,5,6,7,8;intb=LB(a,5)+LB(&a3,3);coutb=bendl;(1012)3#include#includevoidmain()char*a5=student,worker,cadre,soldier,peasant;char*p1,*p2;p1=p2=a0;for(inti=0;i0)p1=ai;if(strcmp(ai,p2)0)p2
12、=ai;couttemplateclassFFTTa1,a2,a3;public:FF(TTb1,TTb2,TTb3)a1=b1;a2=b2;a3=b3;TTSum()returna1+a2+a3;voidmain()FFx(2,3,4),y(5,7,9);coutx.Sum()y.Sum()endl;(92)四、写出下列每个函数的功能1#includeintSA(inta,intb)if(ab)return1;elseif(a=b)return0;elsereturn-1;(比较两个整数a和b的大小,若ab则返回1,若a=b则返回0,若ab则返回-1。)2doubleSF(doublex,i
13、ntn)/n为大于等于0的整数doublep=1,s=1;for(inti=1;ix;while(x!=-1)n+;y+=x;cinx;if(n=0)returny;elsereturny/n;(求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志)4templatevoidWE(Typea,Typeb,intn)for(inti=0;in;i+)bn-i-1=ai;(模板函数,把数组a的每个元素按逆序放入数组b中)五、编写程序1从键盘输入10个正整数据并累加求和。#includevoidmain()intx,s=0;cout输入10个正整数:;for(inti=1;ix;while(
14、x=0);s+=x;coutsendl;2一维数组元素求和。#includevoidmain()inta10;inti,s=0;cout输入10个整数:endl;for(i=0;iai;for(i=0;i10;i+)s+=ai;coutsendl;3在一维数组中查找给定的数据。#includevoidmain()inta10;inti;cout输入10个整数:endl;for(i=0;iai;intnum;coutnum;for(i=0;i10;i+)if(ai=num)break;if(i10)cout找到!endl;elsecout没有找到!endl;4从键盘上输入一行字符串,然后将所有小写字母改写成大写字母,最后输出该字符串。#include#includevoidmain()chars80;c
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1