1、2;(其中0) x=1;else x=0; -1 (a0) 1 (a0) 0 (a0 (a0) -1 (aC)x= -1 (a=0)D)x= 1 (a=0) 第 1 页6. 设有定义:int a=1,b=10; 则执行以下循环语句后,a和b的值分别为 。do b-=a; a+;while(b-(y)?(x):(y)#define T(x,y,r) x*r*y/4则执行以下语句后,s1和s2的值分别为 。int a=1,b=3,c=5,s1,s2;s1=MIN(a=b,b-a); s2=T(a+,a*+b,a+b+c);A) 3 27 B) 27 3 C) 24 1 D) 3 248. 以下关于
2、文件包含的描述中正确的是A) 每个C+程序必须包含预处理命令:#include B) #include 后面的文件名用双引号()括起和尖括号()括起完全等效C) #include 命令行可以出现在源程序中需要的任意行D) 用#include 所包含的文件称为头文件,必须以.h作为扩展名9. 设有函数调用语句:fun(x1,x2),x3,(x4,x5,x6); 该函数调用中实参的个数是 。 A) 2 B) 3 C) 5 D) 610. 下列函数原型说明中,错误的是_。A) int &f1(); B) int f2(double=5);C) void f3(void (*p)(); D) int
3、f4(int a=0,int b);11. 以下关于C+函数的描述中,正确的是_。 A) 内联函数就是定义在另一个函数体内部的函数 B) 函数体的最后一条语句必须是return语句 C) c+要求在调用一个函数之前,该函数已定义或已有该函数的原型说明D) 编译器会根据函数的返回值类型区分函数的不同重载形式12. 以下叙述中不正确的是_。A) 在函数内的复合语句中定义的变量在本函数范围内有效B) 形式参数是局部变量C) 在函数内定义的变量只在本函数范围内有效D) 在不同函数中可以使用相同名字的变量13. 设有说明语句:char s80=”Hello”; int a20=1,2; 下列选项中,存在
4、语法错误的是_。A) cins; B) couta; D) cout 共 4 页14. 若有说明语句:int y 4=0,0; 则下面叙述不正确的是 。A) 数组y的每个元素都可得初值0B) 二维数组y的行数为1C) 该说明等价于int y 4=0;D) 只有元素y00和y01可得到初值0,其余元素均得不到初值015. 以下说明语句中,没有语法错误的是_。 A) int a,*pa=&a,*pb=*pa; B) int aa,&b=aa,*pc=&b; C) int c10,&pc=c; D) int dd,&u=&dd,*v=u;16. 执行以下程序段后,m的值是 。int a23=1, 3
5、, 5, 7, 9, 11;int m, *ptr;ptr = &a00;m = (*ptr)*(*ptr+2)*(*(ptr+4);A) 编译出错 B) 27 C) 45 D)无定值17. 设用以下程序段建立了sp与str的关系,则以下对字符串的引用不正确的是 。char str48=str1,str2str3str4, *sp4;for (int n=0; nmax(a,b) D) (*p)(a,b)20. 设有以下定义和语句,则以下表达式值为6的是_。struct ss int a; ss *b;ss x3=5,&x1,7,&x2,9,0,*ptr;ptr=&x0;A) ptr-a+ B
6、) ptr+-a C) ptr-a D) +ptr-a第 2 页二、读程序,写出输出结果(每题3分,共12分)a=3b=701. #include int f(int n) int a=3; if(n=3) a=2; else couta=an a=n*f(n-2); return a;void main(void) int b=7; b=f(b);b=bendl;2. #include int f(int &n,int &m)k=17k=45k=122 a=28 b=66 static int k=10; n+=m; k+=n; m+=k;k=k return(n+m);void main(
7、void) int a=3,b=4,k; k=f(a,b)+f(a,b);t3. #include char *str(char *p1, char *p2) char *p=p1; while(*p) p+; *p+= while(*p+=*p2+); return p1;void main(void) love NanjingI love NanjingI love Nanjing love Nanjing Nanjing char s150=I char s250=love char s3=Nanjingstr(s2,s3)str(s1,s2)s1s2s3;4. #include str
8、uct abc static int a; int b;x,y;int abc:a=2; x.b=6; y.b=8;x.ax.by.ay.bdata%2=0) if(p2=list.head) list.head=p2-next; else p1-next=p2- list.size-; if(list2.head=0) list2.head=p2; p3-next=p2; p3=p2; p2=p2-next=0; list2.size+; p1=p2; return(list2);四、写程序,根据要求编写程序(每题10分,共20分)1、编写一个函数,对一个整数数组求对应元素的集合set(即不
9、重复元素) int getIntSet(const int a, int n, int set) 形参a中的n个整数可能存在重复,要求把其中不重复的整数放入set中,并返回不重复整数的个数。 例如,如果a=2,1,1,2,1,3,set应为2,1,3,次序无所谓,返回3,表示有3个不重复元素。2、输入n(n=2)名学生的成绩(0-100),统计如下数据:60分以下人数及百分比;60-69分人数及百分比;70-79分人数及百分比;80-89分人数及百分比;90-100分人数及百分比;平均分;要求,先输入n,再输入n个float值,然后输出统计结果。提示,自行设计结构和函数来简化复杂性。注意使用动
10、态内存。参考答案1、int getIntSet(const int a, int n, int set) int count = 0; for(int i = 0; i n; i+) for(int j = i+1; j j+) if (ai=aj) break; if (j = n) setcount+ = ai; return count;2、struct GradeLevel /成绩统计结构类型 float average; /平均分 int ac; /90-100分人数 int bc; /80-89分人数 int cc; /70-79分人数 int dc; /60-69分人数 int
11、ec; /0-59 分人数void printGradeLevel(const GradeLevel &gl) int number = gl.ac + gl.bc + gl.cc + gl.dc + gl.ec;统计数据:考生数量:number 平均成绩:gl.average90-100: gl.ac占(float)gl.ac/number*100%80-89: gl.bc(float)gl.bc/number*10070-79:gl.cc(float)gl.cc/number*10060-69:gl.dc(float)gl.dc/number*1000-59:gl.ec(float)gl.
12、ec/number*100ai;GradeLevel stat(const float a, int n) GradeLevel level = 0; float sum = 0; sum += ai; if (ai = 90) level.ac+; else if (ai = 80) level.bc+;= 70) level.cc+;= 60) level.dc+; else level.ec+; level.average = sum / n; return level;void main() int n = 0;输入n= cinn; if (n 2) return; float *a = new floatn; input(a, n); printGradeLevel(stat(a, n); delete a;第 4 页
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1