当前位置:文档之家› C++复习题

C++复习题

C++复习题
C++复习题

一、单项选择题(本大题共20小题,每小题1分,共20分)

1. 静态成员函数没有()

A. 返回值

B. this指针

C. 指针参数

D. 返回类型

2. 在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是()

A. 友元函数

B. 虚函数

C. 构造函数

D. 析构函数

3. 所有在函数中定义的变量,都是()

A. 全局变量

B. 局部变量

C. 静态变量

D. 寄存器变量

4. 假定AB为一个类,则执行“AB a(2), b[3],*p[4];”语句时调用该类构造函数的次数为()

A. 3

B. 4

C. 5

D. 9

5. 如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为()

A. a.operator++(1)

B. operator++(a)

C. operator++(a,1)

D. a.operator++()

6. 已知f1和f2是同一类的两个成员函数,但f1不能直接调用f2,这说明()

A. f1和f2都是静态函数

B. f1不是静态函数,f2是静态函数

C. f1是静态函数,f2不是静态函数

D. f1和f2都不是静态函数

7. 一个函数功能不太复杂,但要求被频繁调用,则应把它定义为()

A. 内联函数

B. 重载函数

C. 递归函数

D. 嵌套函数

8. 解决定义二义性问题的方法有()

A. 只能使用作用域分辨运算符

B. 使用作用域分辨运算符或成员名限定

C. 使用作用域分辨运算符或虚基类

D. 使用成员名限定或赋值兼容规则

9. 在main函数中可以用p.a的形式访问派生类对象p的基类成员a,偶中a是()

A. 私有继承的公有成员

B. 公有继承的私有成员

C. 公有继承皀保护成员

D. 公有廧承的公有成员

10. 在C++中不返回任何????数应该说明为()

A. int

B. char

C. void

D. double

11. 若Sample类中的一个成员函数说明如下:

void set(Sample& a),则Sample& a的含义是()

A. 指向类Sample的名为a的指针

B. a是类Sample的对象引用,用来作函数Set()的形参

C. 将a的地址赋给变量Set

D. 变量Sample与a按位与的结果作为函数Set的参数

12. 要实现动态联编必须()

A. 通过成员名限定来调用虚函数

B. 通过对象名来调用虚函数

C. 通过派生类对象来调用虚函数

D. 通过对象指针或引用来调用虚函数

13. 在派生类中定义虚函数时,可以与基类中相应的虚函数不同的是()

A. 参数类型

B. 参数个数

C. 函数名称

D. 函数体

14. 实现两个相同类型数加法的函数模板的声明是()

A. add(T x,T y)

B. T add(x,y)

C. T add(T x,y)

D. T add(T x,T y)

15. 下列不是描述类的成员函数的是()

A. 构造函数

B. 析构函数

C. 友元函数

D. 拷贝构造函数

16. 继承机制的作用是()

A. 信息隐藏

B. 数据封装

C. 定义新类

D. 数据抽象

17. 已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给m赋值为5,正确的是()

A. A1.p=5;

B. A1->p=5;

C. A1.*p=5;

D. *A1.p=5;

18. 如果采用动态多态性,要调用虚函数的是()

A. 基类对象指针

B. 对象名

C. 基类对象

D. 派生类名

19. 若有以下定义,则说法错误的是()

int a=100,*p=&a;

A. 声明变量p,其中*表示p是一个指针变量

B. 变量p经初始化,获得变量a的地址

C. 变量p只可以指向一个整型变量

D. 变量p的值为100

20. C++语言建立类族是通过()

A. 类的嵌套

B. 类的继承

C. 虚函数

D. 抽象类

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

1. 假设int a=1,b=2;则表达式(++a/b)*b--的值为___。

2. 复制构造函数使用___作为形式参数。

3. 通过C++语言中的___机制,可以从现存类中构建其子类。

4. 静态成员函数、友元函数、构造函数和析构函数中,不属于成员函数的是___。

5. 在下面的类定义中,私有成员有___。

class Location

{int X,Y;

protected:

int zeroX,zerxY;

int SetZero(intzeroX, intzeroY);

private:

int length,height;

public:

void init(int initX,int initY);

int GetX();

int GetY();

};

6. 在C++程序设计中,建立继承关系倒挂的树应使用___继承。

7. C++支持的两种多态性分别是___多态性和运行多态性。

8. C++中语句const char * const p=“hello”;所定义的指针p和它所指的内容都不能被___。

9. 在C++中,定义虚函数的关键字是___。

10. 采用私有派生方式,基类的public成员在私有派生类中是___成员。

11. 对赋值运算符进行重载时,应声明为___函数。

12. 在C++中有两种参数传递方式即值传递和___传递。

13. 预处理命令以___符号开头。

14. 在构造函数和析构函数中调用虚函数时采用___。

15. C++是通过引用运算符___来定义一个引用的。

16. 如果要把类B的成员函数void fun()说明为类A的友元函数,则应在类A中加入语句___。

17. 如果要把PI声明为值为3.14159类型为双精度实数的符号常量,该声明语句是___。

18. 在C++四个流对象中,___用于标准屏幕输出。

19. 执行下列代码

int a=32;

double c=32;

cout.setf(ios::hex);

cout<<"hex:a="<

cout.unsetf(ios::hex);

程序的输出结果为___。

20. 已知有20个元素int类型向量V1,若用V1初始化为V2向量,语句是___。

三、改错题(本大题共5小题,每小题4分,共20分)

1. #include

class A

{ private:

public:

A(int i){x=i;}

A(){x=0;}

friend int min(A&,A&);

};

int min(A & a,A &b)

{ return (a.x>b.x)?a.x:b.x; }

void main()

{ A a(3),b(5);

cout<

}

2. #include class shape

virtual int area(){return 0;}

};

class rectangle:public shape

{public:

int a, b;

void setLength (int x, int y) {a=x;b=y;} int area() {return a*b;}

};

void main()

{rectangle r;

r.setLength(3,5);

shape s1,*s2=&r;

cout <

s2=s1;

cout <

}

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

template

class A

{private:

T x,y,s;

public:

A(T a,T b)

{x=a,y=b;s=x+y;}

void show()

{cout<<"x+y="<

}

};

void main()

{ A add(10,100);

add.show();

}

4. 生成具有n个元素的动态数组。#include

void main()

{int n;

cin>>n;

int a[n];

a[0]=2;

cout<

}

5. #include

class A

public:

virtual void fun()=0;

A(int a)

{i=a;}

};

class B:public A

{int j;

public:

void fun()

{cout<<"B::fun()\n"; }

B(int m,int n=0):A(m),j(n){} };

void main()

{A *pa;

pa=&b;

}

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

1. 在下面程序横线处填上适当字句,以使该程序执行结果为:50 4 34 21 10

0 7.1 8.1 9.1 10.1 11.1

#include

template

void f (__________)

{__________;

for (int i=0;i

t=a[i], a[i]=a[n-1-i], a[n-1-i]=t;

}

void main ()

{int a[5]={10,21,34,4,50};

double d[6]={11.1,10.1,9.1,8.1,7.1}; f(a,5);f(d,6);

for (int i=0;i<5;i++)

cout <

cout <

for (i=0;i<6;i++)

cout << d[i] << "";

cout << endl;

}

2. 完成下面类中成员函数的定义。

#include

#include

class Arr

{protected:

float *p;

int n;//数组大小(元素个数)public:

Arr(int sz=10)

{ n=sz;

p=new float[n];

}

~Arr(void)

{

_________

}

int Getn(void) const

{

return n;

}

float & operator[](int i) {

________

}

void Print();

};

void Arr::Print()

{int i;

for(i=0;i< this->Getn();i++) {if (i%10==0)

cout << endl;

cout<

}

cout<

}

void main()

{Arr a(20);

for (int i=0;i

a[i]=i* 2;

a.Print();

}

3. 下面是一个输入半径,输出其面积和周长的C++程序,在下划线处填上正确的语句。

#include

_________;

_________;

void main()

{double rad;

cout<<"rad=";

cin>>rad;

double l=2.0*pi*rad;

double s=pi*rad*rad;

cout<<"\n The long is:"<

#include

class Samp

{public:

void Setij(int a,int b){i=a,j=b;} ~Samp()

{cout<<"Destroying.."<

int GetMuti(){return i*j;} protected:

int i;

int j;

};

int main()

{Samp *p;

p=new Samp[5];

if(!p)

{cout<<"Allocation error\n";

return 1;

}

for(int j=0;j<5;j++)

p[j].Setij(j,j);

for(int k=0;k<5;k++)

cout<<"Muti["<

return 0;

}

5. 请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为: 11,10

13,12

#include

class A

{int a;

public:

A(int i=0){a=i;}

int Geta(){return a;}

void show(){cout<

};

class B

{A a;

int b;

public:

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

C试题库

2000~2001学年《程序设计基础-C》试卷 一、单项选择题(每小题 2 分,共 30 分) 1. C 语言程序中可以对程序进行注释,注释部分必须用符号_____括起来。 A、‘{‘ 和’}’ B、‘[‘和’]’ C、“/*”和”*/” D、“*/”和”/*” 2.下列运算符中,优先级最低的是_____。 A、* B、!= C、+ D、= 3.若变量已正确定义,表达式 (j=3, j++) 的值是_____ 。 A、3 B、 4 C、5 D、0 4.已知字符‘a’ 的ASCII码为 97 ,执行下列语句的输出是_____。 printf ("%d, %c", ’b’, ’b’+1 ) ; A、98, b B、语句不合法 C、98, 99 D、 98, c 5.表达式strcmp(“box”, “boss”) 的值是一个_______。 A、正数 B、负数 C、 0 D、不确定的数 6.数组定义为 int a[3][2]={1, 2, 3, 4, 5, 6},数组元素_____的值为6。 A、a[3][2] B、a[2][1] C、a[1][2] D、a[2][3] 7.要调用数学函数时,在#include命令行中应包含_____。 A、”stdio.h” B、”string.h” C、”math.h” D、”ctype.h” 8.判断i和j至少有一个值为非0的表达式是_____。 A、 i!=0 && j!=0 B、i*j!=0 C、!(i==0 || j==0) D、i&&j 9.若a是基本整型变量,c是单精度实型变量,输入语句______是错误的。 A、scanf(”%d,%f”, &a, &c); B、scanf(”d=%d, c=%f”, &a, &c); C、scanf(”%d%f”, &a, &c); D、scanf(”%d%f”, a, c); 10.若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于_____。 A、p++ B、x++ C、*(p++) D、&x++ 11.若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x, _____是正 确的。 A、p2=p1; B、p2=**p1; C、p2=&p1; D、p2=*p1; 12.下列程序段的输出是_____。 int c[]={1, 3, 5}; int *k=c+1; printf("%d", *++k); A、 3 B、 5 C、 4 D、6 13.不正确的赋值或赋初值的方式是______。 A、char str[]="string"; B、char str[7]={'s', 't', 'r', 'i', 'n', 'g'}; C、char str[10];str="string"; D、char str[7]={'s', 't', 'r', 'i', 'n', 'g', ’\0’}; 14.对于以下结构定义,++p->str中的++加在_____。 s truct { int len;

C语言模拟试卷A

安徽农业大学经济技术学院 《C 语言程序设计》模拟试卷(A) 所有答案写在答题卡上,否则不得分 一、单项选择题(每题1分,共30分) 1.以下选项中叙述正确的是________。 A )C 语言程序总是从第一个定义的函数开执行 B )在 C 语言程序中,被调用的函数必须在main()函数中声明 C )C 语言程序总是从main()函数开始执行 D )C 语言程序中的main()函数必须放在程序的开始部分 2.C 语言程序的三种基本结构是顺序结构、选择结构和________结构。 A )循环 B )递归 C )转移 D )嵌套 3以下选项中不属于C 语言的基本数据类型的是________。 A )int B )double C )char D )bool 4.以下选项中正确的C 语言标示符是________。 A)2b B )x_1 C )a@b D)3#h 5.设C 语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围为________。 A )0~255 B )0~32767 C )0~65535 D )0~2147483647 6.以下选项中,和语句k=n++;等价的是________。 A )k=n,n=n+1; B )n=n+1,k=n; C )k=++n; D )k=n+1; 7.已知:int i=3,j=2;,则执行语句j*=i+2;printf("%d",j);后,输出结果是________。 A )8 B )10 C )12 D )14 8.已知:int a=2,b=3,c;,执行语句c=(a=2,b=2);后,c 的值是________。 A )2 B )3 C )4 D )5 9.已知:int x,y;float z;,若要给变量x,y,z 输入数据,以下正确的输入语句是________。 A )scanf("%d,%d,%d",x,y,z); B )scanf("%d,%d,%f",&x;&y;&z); C )scanf("%d,%d,%f",&x,&y,&z ); D )scanf("%2d,%2d,%3.2d",x;y;z ); 10.华氏温度f 和摄氏温度c 的关系是)32(9 5-= f c 。已知:float c,f;,由华氏温度f 求摄氏温度c 的不正确的赋值表达式是________。 A )c=5/9(f-32) B )c=5.0/9*(f-32) C )c=5*(f-32)/9 D )c=(float)5/9*(f-32) 11.一个C 程序中要调用sqrt()函数时,应在程序中包含的头文件是________。 A )stdio.h B )math.h C )string.h D )stdlib.h 12.已知:char c='a';,则执行语句printf("%c",c-32);后输出结果是________。 A )A B )65 C )97 D )出错 13.能正确表示逻辑关系“a ≥5或a ≤-1”的C 语言表达式是________。 A )a>=5.or.a<=-1 B) a>=5.and.a<=-1 C) a>=5&&a<=-1 D )a>=5‖a<=-1

C语言练习题(带答案)-绝对经典题目不看后悔

1单选题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

C语言试题库(完整版)

C语言试题库 一、单项选择 第一章 C语言概述 (1)一个C程序的执行是从 A、本程序的MAIN函数开始,到MAIN 函数结束。 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C、本程序的MAIN函数开始,到本程序的最后一个函数结束。 D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。(2)以下叙述正确的是 A、在C程序中,MAIN函数必须位于程序的最前面。 B、 C程序的每行中只能写一条语句。 C、 C语言本身没有输入输出语句。 D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。(3) C语言规定,在一个源程序中,MAIN主函数的位置是在: A、必须在最前面。 B、必须在系统调用的库函数的后面 C、可以在任意位置。

D、必须在最后面 (4)一个C程序是由: A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 (5)以下叙述不正确的是: A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个MAIN函数 C、 C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 第二章数据类型、运算符与表达式 (1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32) A、4 B、16 C、32

D、52 (2)下列四组选项中,均不是C语言键字的选项是 A、define , IF, type B、getc, char, printf C、include, scanf, case E、 if, struct, type (3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,do B、float,1a0, _A C、b-a, goto, int D、_123, temp, INT (4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3 B、3*a*e/bc C、3*a*e/b*c D、a*e/c/b*3 (5)已知各变量的类型说明如下:

《数据结构C》模拟试题

山东科技大学继续教育学院 《数据结构C》模拟试题一 班级姓名学号 一、选择题(20分) 1. 组成数据的基本单位是( )。 (A) 数据项(B)数据类型(C)数据元素(D)数据变量 2. 线性表的链接实现有利于( )运算。 (A) 插入(B)读表元(C)查找(D)定位 3. 串的逻辑结构与( )的逻辑结构不同。 (A) 线性表(B)栈(C)队列(D)树 4. 二叉树第i(i≥1)层最多有( )个结点。 (A) 2i(B)2i (C) 2i-1(D) 2i-1 5. 设单链表中p指向结点A,若要删除A后结点(若存在),则需要修改p的操作为( ) (A) p.Next = p.Next.Next (B)p=p.Next (C)p=p.Next.Next (D)p.Next=p 6. 设一数列的输入顺序为1,2,3,4,5,6,通过栈操作不可能排成的输出序列为( ) (A) 3,2,5,6,4,1 (B) 1,5,4,6,2,3 (C) 2,4,3,5,1,6 (D) 4,5,3,6,2,1 7. 设字符串S1=’ABCDEFG’,S2=’PQRST’,则运算S=CONCAT(SUB(S1,2,LENGTH(S2)),SUB(S1,LENGTH(S2),2))的结果为( ) (A) ‘BCQR’ (B) ‘BCDEF’ (C) ’BCDEFG’ (D) ‘BCDEFEF’ 8. 有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占1个地址空间,则a85地址为( ) (A)13 (B) 33 (C) 18 (D) 40 9. 如果结点A有3个兄弟,而且B为A的双亲,则B的度为( ) (A) 3 (B) 4 (C) 5 (D) 1 10. 线索化二叉树中某结点D没有左孩子的必要条件是( ) (A) D.Lchild=null (B) D.ltag=1 (C) D.Rchild=null (D) D.ltag=0 二、填空题(20分) 1. 对于一个以顺序实现的循环队列Q[0..m_1],队头、队尾指针分别为f,r,其判空的条件是 ,判满的条件是。 2. 循环链表的主要优点是。 3. 给定一个整数集合{3,5,6,9,12},画出其对应的一棵Huffman树。 4 双向循环链表中,在p所指的结点之后插入f所指的结点,其操作为。 5. 下列为朴素的模式匹配算法,请在算法的处填入正确的子句。

大学经典C语言编程试题

1.输入两个正整数,m和n,求其最大公约数和最小公倍数。 #include<> void main() { int hcf(int,int); /*函数声明*/ int lcd(int,int,int); /*函数声明*/ int u,v,h,l; printf("Please inputtwo numbers:\n"); scanf("%d,%d",&u,&v); h=hcf(u,v); printf("",h); l=lcd(u,v,h); printf("",l); } int hcf(int u,int v) { int t,r; if(v>u) {t=u;u=v;v=t;} while((r=u%v)!=0) {u=v;v=r;} return(v); } int lcd(int u,int v,int h) { return(u*v/h); } 2.输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。#include<> int letter,digit,space,others; void main() { void count(char[]); char text[80]; printf("Please inputstring:\n"); gets(text); printf("string:\n"); puts(text); letter=0; digit=0; space=0; others=0; count(text); printf("letter:%d,digit:%d,space:%d,others:%d\n",letter,digit,space,others);

c语言模拟试题

试卷编号:8156 所属语言:C语言 试卷方案:C语言201006模拟 试卷总分:100分 共有题型:5种 ━━━━━━━━━━━━━━━ 一、判断共10题(共计20分) ━━━━━━━━━━━━━━━ 第1题(2.0分)题号:1225 在给变量命名时,C语言区分大小写字母,即认为Name和name不是同一个变量. 答案:Y 第2题(2.0分)题号:1279 循环结构while、do while、for不可以互相嵌套. 答案:N 第3题(2.0分)题号:1140 链表中的任何一个结点,必然要包括一个指针域. 答案:Y 第4题(2.0分)题号:1265 在书写C程序时,一行内只能写一条语句,一条语句也不能写在多行上. 答案:N 第5题(2.0分)题号:1280 C语言程序中用到的所有变量必须在使用之前进行定义. 答案:Y 第6题(2.0分)题号:1269 若定义int a[4]={1,2,3,4};若超界引用a[4]则编译时不报错. 答案:Y 第7题(2.0分)题号:19 C语言本身不提供输入输出语句,输入和输出操作是由函数来 实现的。 答案:Y 第8题(2.0分)题号:11 通过return语句,函数可以带回一个或一个以上的返回值。 答案:N 第9题(2.0分)题号:24

对于数值型数组,C语言中只能逐个引用数组元素而不能一次引用整个数组。答案:Y 第10题(2.0分)题号:33 int i,*p=&i;是正确的C说明。 答案:Y ━━━━━━━━━━━━━━━━━ 二、单项选择共15题(共计30分) ━━━━━━━━━━━━━━━━━ 第1题(2.0分)题号:87 C语言源程序的基本单位是()。 A:过程 B:函数 C:子程序 D:标识符 答案:B 第2题(2.0分)题号:110 C语言中,char类型数据占()。 A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:A 第3题(2.0分)题号:112 下列程序的输出结果是()。 main() {char c1=97,c2=98; printf("%d %c",c1,c2); } A:97 98 B:97 b C:a 98 D:a b 答案:B 第4题(2.0分)题号:170 关于return语句,下列正确的说法是()。

经典练习C语言编程的题目及答案整理

1.逆序输出正三位数 #include int main() { int input,output= 0; scanf("%d",&input); while(input != 0) { output = output*10 + input%10; input /= 10; } printf("%d\n",output); return 0; } 2.百元找零函数 #include int main() { int amount=100; int price=0; printf("请输入金额(元)"); scanf("%d",&price); printf("请输入票面"); scanf("%d",&amount); int change=amount-price; printf("找您%d元。\n",change); return 0; } 3.求平均数 #include int main() { int a,b; scanf("%d %d",&a,&b);

double c=(a+b)/2.0; /* scanf("%d",&amount); 这是注释,我随便放的,没意义 int change=amount-price;*/ printf("%d和%d的平均值是%f\n",a,b,c); return 0; } 4.写出程序的输出: int i=1; switch ( i/3 ) { case 0: printf("zero"); case 1: printf("one"); case 2: printf("two"); } 正确答案是:zeroonetwo。 5.水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例如:153 = 13 + 53+33。本题要求编写程序,计算所有N位水仙花数。 输入格式: 输入在一行中给出一个正整数N(3<=N<=7)。 输出格式: 按递增顺序输出所有N位水仙花数,每个数字占一行。 输入样例: 3 输出样例: 153 370 371 407

c语言试题

判A. B. A. B. A. B. A. B. A. B. A. B. A.

B. A. B. A. B. A. B. A. B. A. B. A. B. A. B.

A. B. A. B. 单 A.'\2' B.'"' C.' ' D.'\483' A.char c=B; B.int a=3; C.char c=65; D.float area=0; A.0119 B.o126 C.2.5e2.5

D.119L A.double a,b;a=b=7; B.double a=b=7; C.double a,b=7;a=b; D.double a=7,b=7; A.scanf("%2d %2d %2d",&i,&j,&k); B.scanf("%d %d %d",&i,&j,&k); C.scanf("%d,%d,%d",&i,&j,&k); D.scanf("i=%d,j=%d,k=%d",&i,&j,&k); A.k++ B.k+=1 C.++k D.k+1 A.0,0 B.1,0

C.3,2 D.1,2 A.12 B.11 C.10 D.9 A. B. C. D. A.'a' < =ch < ='z' B.(ch > ='a') & (ch < ='z') C.(ch > ='a') && (ch < ='z') D.('a' < =ch) AND ('z' > =ch)

A.'x' && 'y' B.x < =y C.x||y+z && y-z D.!((x < y)&&!z||1) A.1 2 3 B.2 3 4 C.2 2 3 D.2 3 3 A.1 B.0.000001 C.0 D.100.0 A.'a' > 'c' || 'x' < 'y' B.'a' > 'c' && x' < 'y' C.'a' > 'c' || 'x' > 'y'

C语言试题库(带答案解析)~排版

一、选择题 1、以下不能定义为用户标识符的是( )。 (A) MAIN (B) _HJ (D) LINE1 2、以下不能定义为用户标识符的是( ) (A) If (B) H_J (D) LINE12 3、下面属于C 语言标识符的是( )。 (A) 2ab (B) @f (C) b 4、下列符号中用来表示C 语言中的回车换行的是( )。 (A) \r (C) \b (D) \t 5、在计算机系统中,可执行程序是( ) (A) 源代码 (B)汇编语言代码 (D) ASCII 码 6、在Visual C++ 环境下,C 源程序文件名的默认后缀是( )。 (A) .obj (B) .txt (D) .doc 7、Microsoft Visual C++ 中,C 语言可执行程序的扩展名是:( ) (B) obj (C) c 或cpp (D) txt 8、C 程序由( )组成。 (A)子程序 (B) 主程序和子程序 (D) 过程 9、C 程序的基本组成单位( )。 (A) 数据类型 (B) 变量和常量 (D) 表达式 10、C 语言中主函数的个数是( )。 (A) 2个 (C) 任意个 (D) 10个 11、一个 C 程序的执行是从( ) (B)本程序文件的第一个函数开始,到本程序文件最后一个函数结束. (C)本程序文件的第一个函数开始,到本程序main 函数结束. (D) 本程序的main()函数开始,到本程序文件的最后一个函数结束. 12、以下叙述正确的是 (A)在C 语言程序中,main 函数必须放在其他函数的最前面 (C)在C 语言程序中,只有main 函数才可单独进行编译 (D)每个后缀为.C 的C 语言源程序都应该包含一个main 函数 13、设变量a 是整型,b 是实型,c 是双精度型,则表达式2+’a’+b*c 值的数据类型是( )。 (A) int (B) float 14、以下选项中表示一个合法的常量是(说明:符号□表示空格) A) 9□9□9 C) D) 15、以下选项中非法的字符常量是 A)'\102' B)'\65' C)'\xff' 16、以下选项中,能表示逻辑值“假”的是 A)1 B) D) 17、下列关系表达式中,结果为“假”的是 A)(3+4)>6 C) 3<=4||3 D)(3<4)==1 18、关于C 语言变量,以下说法不正确的是( ) (A) 变量名由程序员定义,必须符合标识符的命名规则。 (B) 变量是程序运行过程中其值可以改变的量。 (D) 变量命名时应尽量做到见名知意。 19、关于C 语言中数的表示,以下叙述正确的是 B)只要在在允许范围内整型和实型都能精确表示 C)只有实型数在允许范围内能精确无误的表示,整型数会有误差 D)只有八进制表示的数在不会有误差 20、设有语句int a=3;,则执行了语句a+=a=a*a;后,变量a 的值是 。 A .3 B .0 C .9 21、在C 语言中,要求运算数必须是整型的运算符是 。 B ./ C .< D .! 22、C 语言中最简单的数据类型包括 。 A .整型、实型、逻辑型 C .整型、字符型、逻辑型 D .整型、实型、逻辑型、字符型 23 、在C 语言中,合法的字符型常量是 。 B ."A" C .65 D .A 24、若已定义x 和y 为double 型变量,则表达式x=1 ,y=x+3/2的值是 。 A .1 B .2 D . 25、设正x 、y 均为整型变量,且x=10,y=3,则以下语句的输出结果是 。 printf("%d,%d\n",x--,--y); A .10,3 B .9,3 C .9,2 26、若有定义int a=8,b=5,C;,执行语句C=a/b+;后,C 的值为 。 A . C . D .2 27、以下选项中,不正确的赋值语句是 。 A .++t; B .n1=(n2=(n3=0)); C .k=i==j; 28、设x 和y 均为 int 型变量,则语句:x+=y,y=x-y;x-=y;的功能是 。 A .把x 和y 按从大到小的顺序排列 B .把x 和y 按从小到大的顺序排列 C .无确定结果 29、以下程序的输出结果是 。 #include <> main() { char c='z'; printf("%c",c-25); } B .Z C .z-25 D .y 30、已知字母A 的ASCII 码为十进制数的65,以下程序的输出结果是 。 #include <> main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); B .B,C C .C,D D .不确定的值 31、若k 是int 型变量,则以下程序片段的输出结果是 。 k=-3; if(k<=0) printf("####"); printf("&&&&"); B .&&&& C .####&&&& D .有语法错误,无输出结果 32、关于以下程序,说法正确的是 。 #include <> main()

c模拟试题 (3)

1,下列描述中不正确的是__C____。 A.可以对字符型数组进行整体输入、输出 B.字符型数组中可以存放字符串 C.可以对整型数组进行整体输入、输出 D.不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值 2,以下程序的输出结果是___C___。 main() { int i,a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf("%d%d%d",a[2],a[5],a[8]); } A.369 B.741 C.852 D.253 3,若变量已正确定义并赋值,下面符合C语言的表达式是__B____ A.a=a+7=c+b B.a=b=c+2 C.int 18.5%3 D,a:=b+1 4.以下选项中合法的字符常量是_D_____。 A."B" B,D C,68 D,'\010' 5,有以下程序 struct S{int n; int a[20];}; void f(struct S *p) { int i,j,t; for(i=0;in-1;i++) for(j=i+1;jn;j++) if(p->a[i]>p->a[j]) { t=p->a[i]; p->a[i]=p->a[j]; p->a[j]=t;} } main() { int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}}; f(&s); for(i=0;i

C语言试题及答案

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 第2章数据类型运算符和表达式习题 1. 单项选择题 (1) 以下选项中,正确的 C 语言整型常量是 D 。 A. 32L B. 510000 C. -1.00 D. 567 (2) 以下选项中, D 是不正确的 C 语言字符型常量。

c 大一模拟试题 带答案

模拟试卷(A卷) 一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在括号内。每小题2分,共15小题,30分) 1. 下列字符串中不能作为C++标识符使用的是()。 A、WHILE B、user C、_lvar D、9stars 2. C++语言规定:在一个源程序中,main函数的位置()。 A、必须在程序的最开始 B、必须在系统调用的库函数的后面 C、可以任意 D、必须在程序的最后 3. 假定int类型变量占用两个字节,其有定义int?x[10]={0,2,4};,则数组x在内存中所占字节数是( )。? A、3 ??? B、6? C、10?? ? D、20? 4. 判断字符型变量ch是否为大写英文字母,应使用表达式()。 A、ch>='A' & ch<='Z' B、ch<='A' ||ch>='Z' C、'A'<=ch<='Z' D、ch>='A' && ch<='Z' 5. 已知下列语句中的x和y都是int型变量,其中错误的语句()。 A、x=y++; B、x=++y; C、(x+y)++; D、++x=y; 6. 有如下程序段: int i=1; while (1) { i++; if(i == 10) break; if(i%2 == 0) cout << '*'; } 执行这个程序段输出字符*的个数是()。 A、10 B、3 C、4 D、5 7.有如下程序 #include using namespace std; int func (int a, int b) { return (a+b); }

int main () { int x=2,y=5,z=8,r; r=func(func(x,y), z); cout<> n; switch(n) { case 1: case 2: cout << '1'; case 3: case 4: cout << '2'; break; default: cout << '3'; } 时,若键盘输入1,则屏幕显示()。 A、1 B、2 C、3 D、12 9.若二维数组a有m列,则在a[i][j]之前的元素个数为()。 A、j*m+i B、i*m+j C、i*m+j-1 D、i*m+j+1 10. 语句的int *p=&k定义于指针P,于这个语句等效的语句序列是()。 A、int *p; p=&k; B、int*p; p=k; C、int*p; *p=&k; D、int*p;*p=k; 11. 已知:int m=10; 在下列定义引用的语句中,正确的是()。 A、int &x=m; B、int y=&m; C、int &z; D、int &t=&m; 12、有如下程序段 int i =0, j=1; int&r=i ; // ① r =j; //② int*p=&i ; //③ *p=&r ; //④

c 试题及答案

一、单项选择题 1、下列哪个类型的对象是在非连接模式下处理数据内容的主要对象(D ) A. Command B. Connection C. DataAdapter D. DataSet 2、枚举类型是一组命名的常量集合,所有整形都可以作为枚举类型的基本类 型, 如果类型省略,则定义为( A )。 A. int B. sbyte C. uint D. ulong 3、创建数据库连接使用的对象是( A )。 A. Connection B. Command C. DataReader D. DataSet 4、C#中导入某一命名空间的关键字是( A )。 A. using B. use D. include 5、一般情况下,异常类存放在什么命名空间中( B )。 A. 生成异常类所在的命名空间 B. 命名空间 C. 命名空间 D. System命名空间 6、若将数据库中的数据填充到数据集,应调用SqlDataAdapter的( C )方 法。 A. Open B. Close C. Fill D. Update 7、若将数据集中所作更改更新回数据库,应调用SqlAdapter的(A )方法。 A. Update B. Close C. Fill D. Open 8、在使用FileStream 打开一个文件时,通过使用FileMode 枚举类型的( A ) 成员,来指定操作系统打开一个现有文件并把文件读写指针定位在 文件尾部。 A. Append B. Create C. CreateNew D. Truncate 9、在菜单项File中,为将F设为助记符,应将该菜单项的Text属性设置为 (B )。 A. @File B.&File C. %File 10、指定操作系统读取文件方式中的FileMode .Create的含义是( D)。 A. 打开现有文件 B. 指定操作系统应创建文件,如果文件存在,将出现异常 C. 打开现有文件,若文件不存在,出现异常 D. 指定操作系统应创建文件,如果文件存在,将被改写 11、枚举类型是一组命名的常量集合,所有整形都可以作为枚举类型的基本类 型,如果类型省略,则定义为( D )。 A. uint B. sbyte C. ulong D. int 12、当运行程序时,系统自动执行启动窗体的( C )事件。 A. Click C. Load D. Activated 13、若要使命令按钮不可操作,要对( B )属性进行设置。 A. Visible B. Enabled C. BackColor D. Text

C语言模拟题

上海师范大学标准试卷 ~ 学年第学期考试日期年月日 (考试时间:90分钟) 科目:C 语言程序设计(模拟卷) 专业本科年级班姓名学号 我承诺,遵守《上海师范大学考场规则》,诚信考试。签名:________________ 一、选择和填空题(本大题满分20分,每题2分。) 1、把a1、a2定义成整型变量,并赋初值1的定义语句是int a1=1,a2=1; 。 2、有以下程序片段,请问执行后的输出结果是 1 。 char a=8,c;c=a>=3;printf("%d\n",c); 3、有以下程序片段,若程序运行时从键盘输入48(字符0的ASCII码),则输 出结果为09 。 char c1,c2; scanf("%d",&c1); c2=c1+9; printf("%c%c\n",c1,c2); 4、有以下程序片段,若程序运行时从键盘输入12,则输出结果为 1217 。 scanf("%d",&x);if(x>15) printf("%d",x-5); if(x>10) printf("%d",x);if(x>5) printf("%d\n",x+5); 5、有以下程序片段,请问执行后的输出结果是0 。 char str[]="ABCD"; printf("%d\n",str[4]); 6、若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句 是 C 。 A) a=a+b, b=a-b, a=a-b; B) t=a, a=b, b=t; C) a=t; t=b; b=a; D) t=b; b=a; a=t; 7、下面程序段中循环体的执行次数是 B 。 int j=0; do{j=j+1; }while(j>2); A) 0次B) 1次C) 2次D) 无限次 8、以下程序的输出结果是 B 。 int fun(int a, int b, int c ) { return c=a*b;} main() { int c=3; fun(2,3,c); printf("%d\n",c); } A) 2 B) 3 C) 6 D) 无定值 9、假设二维数组a有m列,则在元素a[i][j]前的元素个数为 B 。 A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+1 10、判断整型变量a的值是否处于区间[5,10]的表达式应写作 5<=a&&a<=10 。

相关主题
文本预览
相关文档 最新文档