C+程序设计试题及答案

C+程序设计试题及答案
C+程序设计试题及答案

C++程序设计试题一、单项选择题(本大题共20小题,每小题1分,共20分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1.C++源程序文件扩展名为( A )

A..cpp

B..h

C..1ib

D..obj

2.在C++中使用流进行输入输出,其中专用于从键盘进行输入的流是( B )

A.cerr

B.cin

C.cout

D.cfile

3.包含自定义头文件file.h的预处理指令是( D )

A.#define

B.#include file.h

C.#define file.h

D.#include"file.h"

4.用于标识十六进制前缀或后缀是( D )

A.元

B.后缀L或e

C.前缀零

D.前缀0x

5.设存在整型变量int x,则下列句与其它三项含义不同的是( A )

A.int* p=&x;

B.int& p=x;

C.int & p=x;

D.int &p=x;

6.在定义类成员时,为产生封装性,则需使用哪个关键字( D )

A.public

B.publish

C.protected

D.private

7.设函数void swap(int&,int&)将交换两形参的值,如两整型变量int a=10;int b=15;

则执行swap(a,b)后,a、b值分别为( C )

A.10,10

B.10,15

C.15,10

D.15,15

8.函数默认参数在函数原型中说明,默认参数必须放在参数序列的( C)

A.前部

B.中部

C.后部

D.两端

9.设存在函数int min(int,int)返回两参数中较小值,若求15,26,47三者中最小值,下列表达式中错误的是( B )

A.int m=min(min(15,26),min(15,47));

B.int m=min(15,26,47);

C.int m=min(15,min(47,26));

D.int m =min(min(47,26),16);

10.下列函数不能和函数void print(char)构成重载的是(C )

A.int print(int);

B.void print(char,char);

C.int print(char);

D.void print(int,int);

11.在下列成对的表达式中,运算结果类型相同的一对是( D )

A.7/2和7.0/2.0

B.7/2.0和7/2

0和7.0/2

l2.内联函数的特点是( D )

A.减少代码量,加快访问速度

B.减少代码量,减缓访问速度

C.增加代码量,减缓访问速度

D.增加代码量,加快访问速度

13.类的私有成员可在何处被访问( A)

A.本类的成员函数中

B.本类及子类的成员函数中

C.通过对象名在任何位置

D.不可访问

14.类的构造函数在以下什么情况下会被自动调用( B )

A.定义成员函数时

B.定义对象时

C.定义数据成员时

D.定义友元函数时

15.下列关于析构函数描述正确的是( D )

A.可以重载

B.函数体中必须有delete语句

C.返回类型必须是void类型

D.不能指定返回类型

16.设有函数T Sum(T x,T y){return x+y;},其中T为模板类型,则下列语句中对该函数错误的使用是( D )

A.Sum(1,2);

B.Sum(3.0,2.2);

C.Sum(‘A’,‘C’);

D.Sum("A","C");

17.下列哪个编译指令属于条件编译指令( C )

A.#include

B.#define

C.#else

D.#pragma

18.关于类的静态成员函数描述错误的是( A )

A.在创建对象前不存在

B.不能说明为虚函数

C.不能直接访问非静态函数

D.不是对象的成员

l9.如果类A被声明成类B的友元,则( D)

A.类A的成员即类B的成员

B.类B的成员即类A的成员

C.类A的成员函数不得访问类B的成员

D.类B不一定是类A的友元

20.派生类的对象可以访问以下那种情况继承的基类成员( D )

A.私有继承的私有成员

B.公有继承的私有成员

C.私有继承的保护成员

D.公有继承的公有成员

二、填空题(本大题共20小题,每小题1分,共20分)

请在每小题的空格中填上正确答案。错填、不填均无分。

21.若使用标准输出流把整型变量a的值输出到屏幕上,实现此操作的C++语句是cout<

22.C++将数据从一个对象流向另一个对象的流动抽象为“流”,从流中获取数据的操作称为提取操作。

23.执行下列代码

int b=100;

cout<<"Hex:"<

程序的输出结果是Hex:64。

24.静态联编所支持的多态性称为编译时或编译的多态性。

25.C++程序必须有且只有一个主函数,其函数名为main。

26.写出声明一个复数对象的语句,并使该对象被初始化为2.2+1.3i,此声明语句是complex num(2.2,1.3)或complex num(2.2,1.3)。

27.若有函数定义为:

int add(int ml=0,int m2=2,int m3=4)

{return ml+m2+m3;}

在主函数中有int s=add(1)+add(0,1)+add(0,1,2);

则执行此语句后s的值为15 28。

28.C++中使用inline关键字说明函数为内联函数。

29.在源程序中有宏定义:#define PI 3.14,则若不想使该宏定义影响到程序的其它地方,可以使用

#undef PI删除该宏定义。

30.类和其它数据类型不同的是,组成这种类型的不仅可以有数据,还可以有对数据进行操作的函数或成员函数。

31.有下列代码int a=0;double b=0;cin>>a>>b;当用键盘输入1.25时,b=0.25。

32.对于类Point而言,其析构函数的定义原型为Point::~Point( )或~Point( )。

33.对象成员构造函数的调用顺序取决于这些对象在类中说明的顺序,与它们在成员初始化列表中给出的顺序无关。

34.类的简单成员函数是指声明中不含const、volatile、static关键字的函数。

35.与操作对象的数据类型相互独立的算法称为泛型算法。

36.从一个或多个以前定义的类产生新类的过程称为派生。

37.在vector类中向向量尾部插入一个对象的方法是push_back(const T&)。

38.C++中用于动态创建对象,并返回该对象的指针的关键字是new。

39.C++的流类库预定义的与标准输出设备相联接的流是cout。

40.执行下列代码

cout<

程序输出结果是123 。

三、改错题(本大题共5小题,每小题2分,共10分)

下面的类定义中有一处错误,请用下横线标出错误所在行并给出修改意见。

41.#include

class f{

private:float x,y;

public:f(float a,float b){x=a;y=b;}

float max(){return(x

} ;

main( ){

f a(1.5,3.8);

cout<

}

return(xy)?x:y;或return(x

42.#include

class test{

private:int x;

public:test(int a){x=a;}

void set(int a){x=a;}

void get(){cout<

}

main(){

const test a(3);

a.set(5);

a.get();

}

a.set(5); a是常对象,不能被更新

或const test a(3);去掉const使a不再为常对象

43.#include

class point{

private:float x,y;

public:f1(float a,float b){x=a;y=b;}

point(){x=0;y=0;}

void getx(){cout<

void gety(){cout<

};

void print(point a){cout<

main(){

point a;

a.f1(3.0,5.0);

print(a);

}

print(point a){cout<

44.#include

class f{

private:int x,y;

public:fl(int a,int b){x=a;y=b;}

void print(){cout<

} ;

main(){

f a;

a.f1(1.5,1.8);

a.print();

}

a.f1(1.5,1.8); f1( )调用时实参与形参类型不一致

45.#include

main(){

int x=6;

const int*p=x;

cout<<*p<

}

const int *p=x; 变量给指针p赋值必须加上&

四、完成程序题(本大题共5小题,每小题4分,共20分)

46.完成下面程序,使其输出l0,并在退出运行时正确释放分配给指针的存储空间。#include

using namespace std;

void main()

{

int *a,*p;

a=new int(10);

p= _a_;

cout<<*p<

delete p;或delete a;

}

47.#include

using namespace std;

class base

{

private:int x;

public:base(int a){x=a;}

int get(){return x;}

void showbase() {cout<<"x="<

class Derived:public base

{private:int y;

public:Derived(int a,int b):base(a){y=b;}

void showderived()

{cout<<"x="<

void main()

{

base b(3);

Derived d(6,7);

b.showbase();

d.showderived();

b=d;

b.showbase();

base b1=b;或base &b1=b;或base b1(6);

b1.showbase();

base* pb=&bl;

pb—>showbase();

d.showderived();

b.showbase();

}

输出结果如下:

x=3

x=6,y=7

x=6

x=6

x=6

x=6,y=7

x=6

48.下面程序的运行结果如下:

B::display()

C::display()

在下划线处填上缺少的部分。源程序如下:

#include

using namespace std;

class B

{

public:

virtual void display( ) {cout << "B::display( ) "<

class C:public B

{

public:

void display(){cout<<"C::display()"<

};

void fun(B*p)

{

p—>display();

}

void main()

{

B b,*pb;

C c;

pb=&b;

fun(pb);

pb=&c;

fun(pb);

}

49.下面程序的运行结果如下:

This is line1

This is line2

This is line3

在下划线处填上缺少的部分。源程序如下:#include

#include

void main()

{

fstream fin, fout;

fout.open("my.txt",ios::out);

if(!fout.is_open())

return;

for(int i=0;i<3;i=i+1)

fout<<"This is line"<

fin.open("my.txt",ios::in);

if(! fin.is_open())

return;

char str[100];

while(!fin.eof( ))

{

fin.getline(str,100);

cout<

}

fin.close();

}

50.在下划线处填上缺少的部分。源程序如下:

#include

using namespace std;

template或template

T fun(T x)

{

T y;

y=x*x-T(5);

return y;

}

void main()

{

float a=2;

cout<

}

五、程序分析题(本大题共4小题,每小题5分,共20分)

51.请写出myTextl.txt文本文件中的内容

#include

#include

using namespace std;

#include

void main()

{

ofstream myFile1;

myFilel.open("myTextl.txt");

cout<<"Enter the data in Chinese format(e.g. ,2008,May 25):"<

string Year=Date.substr(0,4);

int k=Date.find(",");

int i=Date.find(" ");

string Month=Date.substr(k+l,i-k-1);

string Day=Date.substr(i+1,2);

string NewDate=Day+" "+Month+" "+Year;

myFilel<<"original date:"<

myFile1<<"Converted date:"<

myFilel.close();

}

original date:2008,January 1

Converted date:1 January 2008

52.给出下面程序的输出结果

#include

using namespace std;

class Simple

{

int x,y;

public:

Simple(){x=y=0;}

Simple(int i,int j){x=i;y=j;}

void copy(Simple&s);

void setxy(int i,int j){x=i;y=j;}

void print(){cout<<"x="<

void Simple::copy(Simple&s)

{

x=s.x;y=s.y;

}

void func(Simple s1,Simple&s2)

{

s1.setxy(30,40);

s2.setxy(70,80);

}

void main()

{

Simple obj1(1,2),obj2;obj2.copy(obj1);

func(obj1,obj2);

obj1.print();

obj2.print();

}

x=1,y=2

x=70,y=80

53.给出下面程序的输出结果#include"iostream.h"

int main()

{

int i=17;

while(i>=10)

if(--i%4==3)continue;

else

cout<<"i="<

}

i=16 i=14 i=12 i=10

54.给出下面程序的输出结果

#include

using namespace std;

void main()

{

int num=300;

int &ref=num;

cout<

ref=ref-100;

cout<<" "<

num=num-50;

cout<<" "<

}

300 200 150

六、程序设计题(本大题共1小题,共10分)

55.定义堆栈类模板Stack(先进后出),栈的大小由使用者确定。要求该类模板对外提供

如下二种基本操作:

(1)push入栈(2)pop出栈,用数组来实现

#include

using namespace std;

template

class Stack{

T x[size];

int current;

public:

Stack(){current=0;}

....push(....);

....pop(....);

};

请写出两个函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型) void Satck::push(T t){

if (current= =size) {

cout<<“The Stack is full!”<

else {x[current]=t;current++;} //新元素入栈并修改栈顶指针

}

T Stack::pop( ){

if (current= =0){

1.请编写函数fun,:计算并输出下列多项式的值: sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n! double fun(int n) { double s=1.0,t=1.0; int i; for(i=1;i<=n;i++) { t*=i; s+=1/t; } return s; } 2.函数fun:计算并输出下列多项式值: sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)1/2n). double fun(int n) { double s=0,k=1.0; int i; for(i=1;i<=2*n;i++) { s+=k/i; k=-k; } return s; } 3. double fun(int n) { double s=0,t=1.0; int i; for(i=1;i<=n;i++) { t*=i; s+=1/t; } return s;} 4.请编写函数fun: s=1+(1+2(0.5))+(1+2(0.5)+3(0.5))+…+(1+2 (0.5)+3(0.5)+…+n(0.5)) double fun(int n) { double s=0,t=0; int i; for(i=1;i<=n;i++) { t+=sqrt(i); s+=t; } return s;} 5.请编写函数fun:计算并输出当x<0.97时下列多项式的值,直到|sn-s(n-1)|<0.000001为止。 Sn=1+0.5x+0.5(0.5-1)/2!x(2)+…+0.5(0.5-1) (0.5-2)…..(0.5-n+1)/n!x(n) double fun(double x) { double s=0.0,s1=1.0,s0=0,p=1.0,t=1.0; int n=1; do { s0=s1; s+=s0; t*=n; p*=(0.5-n+1)*x; s1=p/t; n++; }while(fabs(s1-s0)>1e-6); return s; } 6.请编写函数fun:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。 double fun(int n) { int i; double sum=0.0; for(i=1;i<=n;i++) if(i%5==0 || i%9==0) sum+=1.0/i; return sum;= 7.请编写函数fun:计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。 int fun(int n) {int s=0,i; for(i=2;i<=n-1;i++) if(n%i==0) s+=i; return s; } 8.请编写函数fun ,其功能是:计算并输出3到n之间所有素数的平方根之和。double fun(int n) { int m,k i;

填空题 20*2 ■对于51系列单片机,现有4种语言支持程序设计,它们是(汇编语言)、PL/M、(C语言)、BASIC。 ■单片机程序设计时需要在主程序中设计死循环来防止程序跑飞。在C语言中采用(while(1))或for(;;)语句实现死循环。 ■单片机程序设计中经常用到中断,在C语言程序设计中外部中断1的中断入口序号(2),而汇编语言程序设计中外部中断1的入口地址是(0013H)。 ■编写串口中断程序时要在函数说明部分后写interrupt 4 。 ■编写定时器0中断程序时要在函数说明部分后写interrupt 1 。 ■C语言程序设计中有一个无符号形字符变量temp和一个位变量Flag,现在分别对它们取反。相应的语句为temp=__~___temp; Flag=_!___Flag;。 ■I2C总线在传送数据过程中共有三种类型控制信号,它们分别是:_(起始信号)____、应答信号、_(停止信号)_____。 ■I2C的地址由(协议规定)与(硬件设置)两部分组成。 ■I2C器件的两条信号线分别为串行时钟线SCL 与串行数据线 SDA 。 ■MCS-51单片机操作I2C器件时,单片机必须做为主机,I\O编程。 ■在Cx51所有的数据类型中,只有bit 与unsigned char 直接支持机器指令。 ■编译器性能比较有如下几个方面:算数支持、生产代码大小、开打速度、支持浮点和long 。 ■在KEIL开发套件中,BL51链接器/定位器用于创建一个绝对目标横快。 ■Cx51中函数分为两大类:标准库函数和用户自定义函数。 ■在函数名前如果不指定函数类型,则该函数的类型为整型。 ■具有一定格式的数字或数值叫做数据,数据的不同格式叫做数据类型, 数据按一定的数据类型进行的排列、组合及架构称为数据结构。 ■数据类型的转换有自动转换与强制转换两种。 ■直接出现在程序中的数值(如TMOD=0x21)称为常数。在程序运行的过程中,其值不能改变且被定义为符号的(如#define CONST 60)称为常量。 ■软件对常量与变量的命名规范是:常量名用大写字母,变量名用小写字母。 ■MCS-51单片机串口用于中断通讯时,在进行初始化时必须设置的特殊功能寄存器有:

第一部分C语言基础 一、选择题 1、以下正确得C语言标识符就是() A。%X B。a+b?C.a123 D.test! 2、已定义int a,b;则以下不正确得C语句就是() A.a*=5;??B。b/=2;? C.a+=1、75;?D.b&&=a; 3、若x、i、j与k都就是整型变量,则执行下面表达式后x得值为( ) x=(i=4,j=16,k=32) A.4?B.16 ?C.32 D.52 4、C语言中得标识符只能由字母、数字与下划线三种字符组成,且第一个字符( ) A.必须就是字母???B.必须为下划线? C.必须为字母或下划线D.可以就是字母、数字、下划线中得任一字符 5、下面正确得字符常量就是( ) A.“c”? B。’\\”? C.‘w’??D.” 6、设int a=2,b=0,c;则执行语句c+=b&&a--后, c得结果为( )。 A.0,1B.1,0 ?C.2,0 D.不确定 7、以下不正确得C语言标识符就是()?A) int B)a_1_2?C)ab1exe D)_x 8、以下就是正确得C语言标识符就是( )。?A)#define?B)_123 C) %d D) \n 9、下列四组字符串中都可以用作C语言程序标识符得一组就是() 。?A) prin tB)i\am C)Pxq D)str_l ???oodbs tart$it line# _3d one_half My-〉bookCpp ? pow 10、下面各选项组中,均就是C语言关键字得组就是()。?A)auto,enu

m,include B)switch,typedef,continue?C)signed,union,scanf?D)if,s truct,type 11、下列不属于C语言关键字得就是( ) 。 A)default?B)register C)enum ?D)external 12、C语言程序从main()函数开始执行,所以这个函数要写在( )。?A) 程序文件得开始?B)程序文件得最后?C)它所调用得函数得前面 D) 程序文件得任何位置 13、下列关于C语言得叙述错误得就是( ) A)大写字母与小写字母得意义相同?B) 不同类型得变量可以在一个表达式中 C)在赋值表达式中等号(=)左边得变量与右边得值可以就是不同类型?D) 同一个运算符号在不同得场合可以有不同得含义 14、在C语言中,错误得int类型得常数就是( ) 。?A)32768?B)0 C)037?D) 0xAF 15、将字符g赋给字符变量c,正确得表达式就是( )。 A) c=\147 ?B)c="\147" ?C)c='\147' 16、下列转义字符中错误得一个就是( )。 A) ’\000’ B)'\0014' ?C) ’\x111’ D) ’\2’ 17、将空格符赋给字符变量c,正确得赋值语句就是( )。 A) c=’\0’ B) c=NULL C)c=0 D)c=32 18、已知:char a=’\70’;则变量a中()。 A)包含1个字符?B)包含2个字符?C) 包含3个字符?D) 说明非法 19、字符串"\”EOF\n=-\61\””得长度就是( )。 A)8 ?B) 9?C)14?D)非法字符串

试题 1、数学黑洞(程序文件名maths.c/maths.cpp) 【问题描述】 任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。 【输入】 一行,一个4位正整数n(1000< n<9999) 【输出】 掉进黑洞的步数 输入 1234 输出 3 2、进制转换(程序文件名conver.c/conver.cpp) 【问题描述】 任给一个十进制整数n,及正整数m(m<=16且m≠10), 将n转换成m进制并输出。 【输入】 一行,两个整数n,m(0 ≤ n ≤ 500000,2 ≤ m ≤ 16,且m≠10),中间用一个空格隔开,其中n 表示十进制数。 【输出】 转换后的数 【输入输出样例】 输入 255 8 输出 377 3、分数线划定(程序文件名score.c/score.cpp) 【问题描述】 公务员选拔工作正在 A 市如火如荼的进行。为了选拔优秀人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名公务员,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。 【输入】 第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的人数。输入数据保证m*150%向下取整后小于等于n。 第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。数据保证选手的报名号各不相同。 【输出】 第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。 从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。 【输入输出样例】 输入 6 3 1000 90 3239 88 2390 95 7231 84 1005 95 1001 88

《C程序设计》试题 一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() 3. 不是C语言实型常量的是:() .字符串“xyzw”在内存中占用的字节数是:() 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2-`a`,c2-c1);则输出结果为:() (a的ASCII码值为97) ,2 ,3 ,2 ,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是: =,b=3 = b=3 3 表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>yx:mc4)后,s,t的值为:() ,2 ,1 ,1 ,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf 最多可执行次数为:() 13. 对于for(s=2;;s++)可以理解为:() A. for(s=2;0 ;s++) B. for(s=2;1 ;s++) C. for(s=2;s<2 ;s++) D. for(s=2;s>2;s++)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

《Python程序设计》习题与参考答案 第1章基础知识 简单说明如何选择正确的Python版本。 答: 在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python 还是Python ,最高支持到Python 还是Python 。这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上。同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。 尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 系列的最高版本(目前是Python )。 为什么说Python采用的是基于值的内存管理模式 答: Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。 >>> x = 3 >>> id(x) >>> y = 3 >>> id(y) >>> y = 5 >>> id(y) >>> id(x) 在Python中导入模块中的对象有哪几种方式 答:常用的有三种方式,分别为 import 模块名 [as 别名]

from 模块名 import 对象名[ as 别名] from math import * 使用pip命令安装numpy、scipy模块。 答:在命令提示符环境下执行下面的命令: pip install numpy pip install scipy 编写程序,用户输入一个三位以上的整数,输出其百位以上的数字。例如用户输入1234,则程序输出12。(提示:使用整除运算。) 答: 1)Python 代码: x = input('Please input an integer of more than 3 digits:') try: x = int(x) x = x else: print(x) except BaseException: print('You must input an integer.') 2)Python 代码: import types x = input('Please input an integer of more than 3 digits:') if type(x) != : print 'You must input an integer.' elif len(str(x)) != 4: print 'You must input an integer of more than 3 digits.' else: print xoin(map(str,result)) 2)Python 代码 x = input('Please input an integer less than 1000:') t = x i = 2 result = [] while True: if t==1:

全国2009年10月高等教育自学考试 C++程序设计试题 课程代码:04737 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.对C++中主函数描述正确的是( ) A.名称为main,可为多个 B.名称不限,可为多个 C.名称为main,必须有且只能有一个 D.名称不限,必须有且只能有一个 2.调用声明为int result(int a,int b)的函数时,正确的方法是( ) A.result(1,2) B.result(1) C.result(0.1,0.3) D.result(1,2,3) 3.用于包含C++标准库iostream的预处理指令是( ) A.#define B.#include C.#define ‘iostream’ D.#include‘iostream’ 4.无类型标识符是指( ) A.void B.bool C.short D.long 5.从本质上看,引用是被引用变量的( ) A.拷贝 B.别名 C.复制 D.克隆 6.下面关于数组的初始化正确的是( ) A.char str[ ]={'a','b','c'}; B.char str[2]={'a','b','c'}; C.char str[1][2]={{'a','b'},{'e','d'}}; D.char str[ ][ ]={'a','b','c'}; 7.C++类中定义的成员默认访问属性为( ) A.public B.private C.protected D.friend 1文档来源为:从网络收集整理.word版本可编辑.

C语言程序设计基础测试题 一、单选 [1] 下面叙述中错误的是____。 A. 复合语句中定义的函数只在该复合语句中有效 B. return( )语句中的括号中,可以是变量,常量或有确定值的表达式 C. 形式参数也是局部变量 D. 主函数中定义的变量在整个程序中都是有效的 [2] 下列说法中正确的是____。 A.带参数的宏定义中的参数是没有类型的 B.宏展开将占用程序的运行时间 C.宏定义命令是C语言中的一种特殊语句 D.使用#include命令包含的头文件必须以“.h"为后缀 [3] 若函数的形参为一维数组,则下列说法中正确的是____。 A.调用函数时的对应实参必为数组名 B.形参数组可以不指定大小 C.形参数组的元素个数必须等于实参数组的元素个数 D.形参数组的元素个数必须多于实参数组的元素个数 [4] 系统的标准输出设备是____。 A.键盘 B.硬盘 C.内存 D.显示器 [5] 下面叙述中正确的是____。 A.全局变量在定义它的文件中的任何地方都是有效的 B.全局变量在程序的全部执行过程中一直占用内存单元 C. C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式 D. 说明函数时必须明确其参数类型和返回类型 [6] C程序的基本结构单位是____。 A.文件 B.语句 C.函数 D.表达式 [7] 对于定义,char *aa[2]={"abcd","ABCD"},选项中说法正确的是____。 A.aa数组元素的值分别是"abcd"和"ABCD" B.aa是指针变量,它指向含有两个数组元素的字符型一维数组 C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D.aa数组的两个元素中各自存放了字符'a'和'A'的地址 [8] 任何一个C语言的可执行程序都是从____开始执行的。 A.程序中的第一个函数 B.main( )函数的入口处

C 语言程序设计试卷,C++语言程序设计试题及答案 一、单项选择题(每题1分,共20分) 1. C 语言规定:在一个源程序中, main 函数的位置(C). A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 2. 下面四个选项中,均是合法浮点数的选项是 A. +1e+15e-9.403e2 B. -.6012e-4-8e5 C. 123e1.2e-.4+2e-1 D. -e3.8e-45.e-0 3.若a=-14,b=3,则条件表达式 avb?a:b+1的值为(A)。 A. -14 B.-13 C.3 D.4 4. 已知:intn,i=1,j=2; A.1,2B.1,3C.2,2D.2,3 5. 为了判断两个字符串s1和s2是否相等,应当使用(D) A.if(s1==s2) B.if(s 仁s2) C. if(strcm p( s1,s2)) D. if(strcm p( s1,s2)==0) 6. 以下正确的描述是(B) o (B)。 执行语句n=ivj?i++:j++; 则i 和j 的值是(c).

A. 函数的定义可以嵌套,但函数的调用不可以嵌套。 B. 函数的定义不可以嵌套,但函数的调用可以嵌套。 C. 函数的定义和函数的调用均不可以嵌套。 D. 函数的定义和函数的调用均可以嵌套。 7. 在C 语言中,下面对函数不正确的描述是 A. 当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。 B. 允许函数递归调用。 C. 函数形参的作用范围只是局限于所定义的函数内。 D. 子函数必须位于主函数之前。 8. 如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是 A. 该变量只在该复合语句中有效 B. 该变量在该函数中有效 C. 该变量在本程序范围内均有效 D. 该变量为非法变量 9. 以下正确的函数形式是(D)。 A. doublefun(intx,inty){z=x+y;retum z;} B. fun(intx,y){int z; return z;} C. fun(x,y){intx,y;doublez;z=x+y;returnz;} D. doublefun(intx,inty){doublez;z=x+y;returnz;} 10. 以下程序的输出结果是(B)。 #includevstdio.h> (D)。 (A) o

单项选择题 (002) 阅读程序题 (018) 程序填空题 (039) 编写程序题 (070) 一、单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123C) %d D) \n

【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodbs tart$it line# pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。 A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的int类型的常数是。 A) 32768 (超过了范围) B) 0 C) 037 D) 0xAF 【1.9】执行语句printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) –ffff D) ffff 【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768C) 1 D) 32768 【1.11】已知long i=65539; 执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。

第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。

第一章:程序设计基础知识 一、单项选择题 1、以下( )是面向过程的程序设计语言。 A)机器语言B)汇编语言C)高级语言D)第四代语言 2、程序设计一般包含以下四个步骤,其中其中首先应该完成的是( )。 A)设计数据结构和算法B)建立数学模型 C)编写程序D)调试和运行程序 3、以下常用算法中适合计算等差级数的算法是( )。 A)枚举法B)递推法C)分治法D)排序法 4、以下不属于算法基本特征的是( )。 A)有穷性B)有效性C)可靠性D)有一个或多各输出 5、以下描述中不正确的是( )。 A)程序就是软件,但软件不紧紧是程序。 B)程序是指令的集合,计算机语言是编写程序的工具。 C)计算机语言都是形式化的语言,它有一个语法规则和定义。 D)计算机语言只能编写程序而不能表示算法。 6、下面描述中,正确的是( ) A)结构化程序设计方法是面向过程程序设计的主流。 B)算法就是计算方法。 C)一个正确的程序就是指程序书写正确。 D)计算机语言就是编写程序的工具而不是表示算法的工具。 7、下面描述中,不正确的是( )。 A)递归法的关键是必须有一个递归终止的条件。

B)递归算法要求语言具有反复自我调用子程序的能力。 C)对于同一个问题,递推算法比递归算法的执行时间要长。 D)递推算法总可以转换为一个递归算法。 8、N-S图与传统流程图比较,主要优点是( )。 A)杜绝了程序的无条件转移。 B)具有顺序、选择和循环三种基本结构。 C)简单、只管。 D)有利于编写程序。 A)B)C)D) 二、填空题 1、在流程图符号中,判断框中应该填写的的是________。(判断条件) 2、结构化程序设计是__________应遵循的方法和原则。(面向过程编程) 3、结构化程序必须用__________程序设计语言来编写。(具有结构化控制语句) 4、可以被连续执行的一条条指令的集合称为计算机的________。(程序) 5、只描述程序应该“做什么”,而不必描述“怎样做”的语言被称为________。(面向对象) 6、任何简单或复杂的算法都是由_____和_____这两个要素组成。(数据结构算法) 7、算法的_______特征是指:一个算法必须在执行有限个操作步骤后终止。(有穷性) 8、在三种基本结构中,先执行后判断的结构被称为_________。(直到型循环结构) 9、在程序设计中,把解决问题确定的方法和有限的步骤称为______。(算法) 10、程序设计风格主要影响程序的________。(可读性) 11、用模块组装起来的程序被成为________结构化程序。(模块化) 12、采用自上而下,逐步求精的设计方法便于____________。(结构化和模块化) 三、应用题

VB程序设计试题及答案(三) 一、单选题 1. Visual Basic是一种面向对象的可视化程序设计语言,采取了 A 的编程机制。 (A) 事件驱动(B) 按过程顺序执行 (C) 从主程序开始执行(D) 按模块顺序执行 2. 若要使标签控件显示时不覆盖其背景内容,要对 D 属性进行设置。 (A) Backcolor (B) BorderStyle (C) Forecolor (D) Backstyle 3. 在Visual Basic中最基本的对象是 C ,它是应用程序的基石,是其他控件的容器。 (A) 文本框(B) 命令按钮 (C) 窗体(D) 标签 4. 要判断在文本框是否按下Enter键,应在文本框的 D 事件中判断。 (A) Change (B)KeyDown (C) Click (D)KeyPress 5. 数学表达式3≤x10 (C) x>=3 Or x<10 (D) x>=3 AND x<10 6. Rnd函数不可能为下列 B 值。 (A) 0 (B) 1 (C) 0.1234 (D) 0.0005 7. 赋值语句:a=123+Mid("123456",3,2)执行后,a变量中的值是 D 。 (A) "12334" (B) 123 (C) 12334 (D) 157 8. 对于语句If x=l Then y=l,下列说法正确的是 C 。 (A) x=l和y=l均为赋值语句 (B) x=l和y=l均为关系表达式 (C) x=l为关系表达式,y=l为赋值语句 (D) x=l为赋值语句,y=l为关系表达式 9. 下面程序段表示求两个数中的大数, D 不正确。 (A) Max=IIf(x>y,x,y) (B) If x>y Then Max=x Else Max=y (C) Max=x (D) Ify>=x Then Max=y If y>=x Then Max=y Max=x 10.当在文本框中输入“ABCD”4个字符时,窗体上显示的是 C 。 Private Sub Text1_Change( ) Print Text1; End Sub (A) ABCD (B) A (C) AABABCABCD (D) A B AB C ABC D ABCD 11.下列哪个程序段不能分别正确显示1!、2!、3!、4!的值 B 。 (A) For i=1 to 4 (B) For i=1 to 4 n=1 For j=1 to i

C 语言程序设计 试 题 (2008 /2009 学年 第 二 学期) 一. 选择题(满分30分,每题2分) 1.若a 、b 、c 都定义为int 类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j ,i=1;执行语句“j=i++;”后,变量i 的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d ”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j 的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C 语言中函数返回值的类型由 D 决定的。 A. return 语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。 8. 若int i=10;执行下列程序后,变量i 的正确结果是 D 。 switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。 A . char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include void main() { int a=1,b=0,c=0; if (a

2014年7月高等教育自学考试Visual Basic 程序设计试题 (课程代码 07759) 一、单项选择题(本大题共16小题,每小题1分,共16分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下列能从字符串“Microsoft”中直接取出子字符串“Micro”的函数是() A. Mid B. Left C. Instr D. String 2.下列不合法的Visual Basic变量名是() A. c_b B. andif C. cb6 D. _xyz 3.如果将布尔常量值True赋值给一个整型变量,则整型变量的值为() A. False B. True C. -1 D.1 4.在窗体上有一个名称为Text1的文本框,影响Text1的输入最大字符数量的属性是() A. Visible B. TabStop C. MaxLength D. SelLength 5.InputBox函数的返回值类型是() A.字符串型 B.变体型 C.数值型 D.数值或字符串型(视输入的数据而定) 6.设a=8,b=6,则执行x=IIf(b\a*a=10,0.-1)后,x的值为() A.1 B.0 C.使用错误 D.-1 7.当某个控件获得焦点时,将会触发的事件是() A. SetFocus B. GotFocus C. ReceiveFocus D.无事件触发 8.类模块文件的扩展名为() A. .cls B. .frx C. .bas D. .vbp 9.将CommonDialog通用对话框设置为“另存为”对话框,须选择的方法为() A. ShowOpen B. ShowColor C. ShowSave D. ShowFont 10.对窗体进行操作时,能实现将窗体装入内存和显示的方法是() A. Hide B. Unload C. Load D. Show 11.按照数据的编码方式,文件可以分为() A.程序文件和数据文件 B.顺序文件盒随机文件 C.ASCII文件盒二进制文件 D.磁盘文件和打印文件 12.在菜单项的属性中,能使该菜单项失效的属性是() A. Enabled B. Checked C. Visible D. Caption 13.要想从过程调用后返回一个整数型结果,则下列过程说明正确的是() A. Sub f1(Byval x As Single)As Integer B. Function f2(Byval x As Integer)As Single C. Sub f3(x As Integer)As Single

一.填空题 26.C#源程序的后缀名为______.cs________。 26.C#中每个int 类型的变量占用____4___个字节的内存。 26.C#的每行语句以________分号_______结尾。 26.布尔型的变量可以赋值为关键字_____true__________或_____false_________。 26.如果int x的初始值为5,则执行表达式x - =3之后,x的值为_____2_________。 26.do...while语句在执行循环体_____之后________测试语句是否满足循环条件。 26.关键字_______class________表示一个类的定义。 26.如果一个类包含一个或多个抽象方法,它是一个_________抽象_____________类。 26.try块运行后,总是会执行_________finally_____________块中的代码。 26.一个数组如果有两个索引值,那么它是__________二维__________数组。 二.单项选择题 1.在对SQL Server 数据库操作时应选用()。 A、SQL Server .NET Framework 数据提供程序; B、OLE DB .NET Framework 数据提供程序; C、ODBC .NET Framework 数据提供程序; D、Oracle .NET Framework数据提供程序; 2.下列选项中,()是引用类型。 A、enum类型 B、struct类型 C、string类型 D、int类型 3.C#的数据类型有() A、值和调用类型; B、值和引用类型; C、引用和关系类型; D、关系和调用类型 4.下列描述错误的是() A、类不可以多重继承而接口可以; B、抽象类自身可以定义成员而接口不可以; C、抽象类和接口都不能被实例化; D、一个类可以有多个基类和多个基接口; 5.下列关于构造函数的描述正确的是() A、构造函数可以声明返回类型。 B、构造函数不可以用private修饰 C、构造函数必须与类名相同 D、构造函数不能带参数 6.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; 那么myArray3[2][2]的值是( )。 A、9 B、2 C、6 D、越界 7.接口是一种引用类型,在接口中可以声明(),但不可以声明公有的域或私有的成员变量。 A、方法、属性、索引器和事件; B、方法、属性信息、属性; C、索引器和字段; D、事件和字段; 8.在https://www.360docs.net/doc/e317650179.html,中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误 的是()。 A、insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行; B、ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 C、Select操作的Sql语句只能由ExecuteReader()方法来执行; D、ExecuteReader()方法返回一个DataReder对象; 9.Winform中,关于ToolBar控件的属性和事件的描述不正确的是( )。 A、Buttons属性表示ToolBar控件的所有工具栏按钮 B、ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度 C、DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭 头键 D、ButtonClick事件在用户单击工具栏任何地方时都会触发

相关文档
最新文档