1、计算机2级c试题附答案试卷一一、理论题(20分,每小题1分)(1)【单选题】下面程序的输出结果是_。#include fun(int x) int p; if(x=0|x=1) return(3); p=x-fun(x-2); return p;void main()coutfun(9)endl;A) 7B) 9C) 3D) 1参考答案:A(2)【单选题】下面程序运行时,若从键盘上输入2.0并回车,则输出结果是_。#include void main() float x,y;cinx;if(x0.0) y=0.0;else if(x10.0)&(x!=2.0)y=1.0/(x+2.0);els
2、e if(x5.0) y=1.0/x;else y=5.0;couty;A) 0.5B) 1.0C) 0.0D) 0.25参考答案:A(3)【单选题】C+源程序文件的默认扩展名为_。A) c+B) cppC) ccD) c参考答案:B(4)【单选题】下面程序的输出结果是_。#include void main() char *p =mop,book,w,sp; int i; for(i=3;i=0;i-,i-) cout*pi; coutendl;A) sbB) spbookC) spD) swb参考答案:A(5)【单选题】下面定义的共用体类型的长度是_字节。union MyData long
3、 x; char ch; bool flag; float y;A) 8B) 4C) 2D) 6参考答案:B(6)【单选题】以下程序段中的循环体被执行的次数是_。for(i=4;i;i-=2) for(j=1;j4;j+) ;A) 无限多次B) 8C) 6D) 2参考答案:C(7)【单选题】下面程序的输出结果是_。#include void main() int x =2,4,6,8,i; int *p=x; for(i=0;i4;i+) xi=*p+; coutx2endl;A) 6B) 4C) 8D) 2参考答案:A(8)【单选题】C+的字符串t1026中包含_个可见的字符。A) 10B)
4、 5C) 4D) 6参考答案:C(9)【单选题】以下程序段运行时,若从键盘上输入Open the door并回车,则输出结果是_。char fun(char *c) if(*c=a) *c-=a-A; return *c;void main() char s81,*p=s; gets(s); while(*p) *p=fun(p);putchar(*p);p+; putchar(n);A) open the doorB) OPEN THE DOORC) Open the doorD) oPEN THE DOOR参考答案:B(10)【单选题】若有以下程序段,则变量v的值是_。int m=1,n=
5、2,v;v=m/n;A) 0B) 1/2C) 0.5D) 1参考答案:A(11)【单选题】若m和n都是整型变量,且m=3,n=5,则以下语句输出的结果是_。cout(m+=n,n)endl;A) 5B) 语句格式有错,无输出结果C) 3D) 8,5参考答案:A(12)【单选题】下面程序的输出结果是_。#include #define sub(x,y) (x)*x+yvoid main() int a=3,b=4; coutsub(a+,b+)endl;A) 6B) 13C) 21D) 20参考答案:B(13)【单选题】下面程序的输出结果是_。#include void main() int n
6、um=1; while(num=2) num+;coutnum;A) 123B) 23C) 12D) 1参考答案:B(14)【单选题】下面程序的输出结果是_。#include void main() int x=0,y=1,a=0,b=0; switch(x) case 0: switch(y) case 0:a+;break; case 1:b+;break; case 1: a+;b+;break; couta,bendl;A) 2,1B) a,1C) 1,2D) 1,0参考答案:C(15)【单选题】若有下面的程序片段: int a12=0,*p3,i;for(i=0;i3;i+) pi=
7、&ai*4;则对数组元素的错误引用是_。A) *p0B) p0C) *(*p+0)D) a0参考答案:B(16)【单选题】下面程序的输出结果是_。#include #include void main() char *x1=abcdef,*x2=ab; x1+;x2+; coutstrcmp(x1,x2)endl;A) -1B) 不确定的值C) 1D) 0参考答案:C(17)【单选题】下面程序运行时,若从键盘上输入3.6 2.4并回车,则输出结果是_。#include #include void main() float x,y,z; cinxy; z=x/y; while(1) if(fab
8、s(z)1.0)x=y;y=z;z=x/y; else break; couty;A) 2.0B) 1.5C) 1.6D) 2.4参考答案:C(18)【单选题】下面程序的输出结果是_。#include f(int a ,int n) int i,x; x=1; for(i=0;i=n;i+) x=x*ai; return x;void main() int y,x =1,2,3,4,5; y=f(x,3); coutyendl;A) 120B) 6C) 24D) 12参考答案:C(19)【单选题】以下关于函数的说法中,正确的是_。A) 如果形参与实参类型不一致,以实参类型为准B) 如果函数值的
9、类型与返回值类型不一致,以函数值类型为准C) 形参的类型说明可以放在函数体内,以实参类型为准D) return后边的值不能为表达式参考答案:B(20)【单选题】有关类和对象的说法不正确的是_。A) 任何一个对象只能属于一个具体的类B) 对象是类的一个实例C) 一个类只能有一个对象D) 类与对象的关系与数据类型和变量的关系相似参考答案:C二、操作题(80分)1、【简单操作题】(注:以下文件均保存在试题盘shitipro4000247文件夹中)打开proj1.cpp,将一维数组按升序排列,请在提示处填上正确的代码,要求:补充语句处只写一条语句。(题分:15分)参考答案:/程序功能:将一维数组按升序
10、排列后输出/注意:请在提示处填上正确的代码,要求:补充语句处只写一条语句#include void sort ( int *p,int n) int i,j,temp; for (i=0;in-1;i+)/外层循环:实现比较的趟数 /请在两条星线之间填入相应的代码,内层循环:实现每趟两两比较的次数 /*/ for(j=1;jpj) temp=pj-1; /请在两条星线之间填入相应的代码,实现两个数的交换 /*/ pj-1=pj; /*/ pj=temp; void main( void) int a16=34,13,22,53,4,46,*pi,i; /请在两条星线之间填入相应的代码,实现指针
11、指向数组 /*/ pi=a1; /*/ sort (pi,6) ; for (i=0;i6;i+) couta1it; coutendl;2、【简单应用题】(注:以下文件均保存在试题盘shitipro4000248文件夹中)打开proj2.cpp,编写Count函数,计算个人所得税,月收入的5000元以上部分需缴纳20%的税,800元以上5000元之间部分需缴纳3%的税,800元以下的部分免税。在两条星线之间填入相应的代码,使程序完成该功能。(题分:20分)参考答案:/编写代码完成Count函数功能:计算个人所得税,并使用return语句把结果返回主函数。/例如,小张月收入为6000元,则她需
12、缴税(60005000)20%(5000-800)3%326元。/注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。补充语句不限一句,可多句。#include double Count(float temf) /请在两条星线之间填入相应的代码,完成应缴税款的计算 /*/ int tax; if(temf5000)tax=(temf-5000)*0.2+(5000-800)*0.03; else if(temf800)tax=(temf-800)*0.03; else tax=0; return tax; /*/void main() float tax,income; coutinc
13、ome; tax=Count(income); cout应缴税:taxendl;3、【简单操作题】(注:以下文件均保存在试题盘shitipro4000249文件夹中)打开proj3.cpp,输入一行字符串,要求将每个单词中的第一个字母改成大写字母(如果已经是大写则不变)。(提示:读一行字符用cin.getline()。)(题分:20分)参考答案:/程序功能:输入一行字符串,要求将每个单词中的第一个字母改成大写字母(如果已经是大写则不变)/注意:补充语句不限一句,可多句。/提示:读一行字符用cin.getline( ) #include #include void main() char str
14、100,*p=str; int k=0; /k为新单词标识,若为新单词k为0,否则k为1 /请在两条星线之间填入相应的代码(必须使用while循环语句) /*/ cin.getline(p,100,n); while(*p!=n) if(*p= )k=0; else if(k=0) if(*p=a & *p=z)*p=*p-32; k=1; p+; cout结果:strn; /*/4、【简单操作题】(注:以下文件均保存在试题盘shitipro4000250文件夹中)已知一个源程序文件proj4.cpp,其中定义了学生类Student,但类Student的定义并不完整,请按要求完成下列操作,将类
15、Student的定义补充完整:(1)定义私有数据成员chinese、math和english分别用于表示语文、数学和英语的成绩,它们都是float型的数据。(2)完成学生类Student的构造函数的定义,把数据成员chinese、math和english分别初始化为参数c,m,e的值。(3)完成成员函数sum的类定义,求Student对象的总分并输出到屏幕上。(4)完成成员函数average的类定义,求Student对象的平均分并输出到屏幕上。程序运行结果如下图所示。(题分:25分)参考答案:/注意:除在指定位置添加语句之外,请不要改动程序中的其他内容,补充语句不限一句,可多句#include
16、 class Student public: Student(int c,int m,int e) /请在两条星线之间填入相应的代码 /补充完成学生类Student的构造函数的定义, 把数据成员chinese、math和english分别初始化为参数c,m,e的值 /*/ chinese=(float)c; math=(float)m; english=(float)e; /*/ void sum() /请在两条星线之间填入相应的代码 /补充完成成员函数sum的定义,求Student对象的总分并输出到屏幕上 /*/ float sum; sum=chinese+math+english; co
17、ut总分:sumendl; /*/ void average(); private: /请在两条星线之间填入相应的代码 /定义私有数据成员chinese、math和english分别用于表示语文、数学和英语的成绩,它们都是float型的数据 /*/ float chinese,math,english; /*/; /请在两条星线之间填入相应的代码 /完成成员函数average的类外定义,求Student对象的平均分并输出到屏幕上/*/void Student:average() float avg; avg=(chinese+math+english)/3; cout平均分:avgendl; /*/int main() Student stud(65.3,78,90); stud.sum(); stud.average(); return 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1