文档库 最新最全的文档下载
当前位置:文档库 › C++习题

C++习题

C++习题
C++习题

〖第1题〗『填空』(1分)

已知a=13, !a的十进制数值为【1】.

答案:

1). 0

〖第2题〗『填空』(1分)

#define A(n) 2*n+1,则表达式A(2+3)的值是【1】

答案:

1). 8

〖第3题〗『填空』(1分)

预处理命令行都必须以【1】号开始.

答案:

1). #

〖第4题〗『填空』(1分)

C++中,实参和形参之间的参数传递有三种:地址传递、引用传递和【1】.

答案:

1). 值传递

〖第5题〗『填空』(1分)

函数的【1】调用是一个函数直接或间接地调用它自身.

答案:

1). 递归

〖第6题〗『填空』(1分)

?

设所有变量已正确定义,则下列程序段运行后y的值是【1】.

?

int a=0,y=10;

?

if(a=0)y--;else if(a>0)y++;

else y+=y

答案:

1). 20

〖第7题〗『填空』(1分)

已知int a=13,b=6; a/b的十进制数值为【1】.

答案:

1). 2

〖第8题〗『填空』(1分)

???

执行下列语句后,*(p+1)的值是【1】.

???

char s[3]="ab",*p;

p=s;

答案:

1). b

〖第9题〗『填空』(1分)

C++中,预定义算子oct表示【1】进制的输出.

答案:

1). 八或8

〖第10题〗『填空』(1分)

???

若所用变量均已正确定义,则执行下面程序段后的值是【1】. for(i=0 ; i<2 ; i++ ) cout<<"YES";cout<

答案:

1). YESYES

〖第11题〗『填空』(1分)

???

当a=3,b=2,c=1;时,执行以下程序段后c=【1】.

???

if(a>b) a=b;

???

if(b>c) b=c;

???

else c=b;

c=a;

答案:

1). 2

〖第12题〗『填空』(1分)

若有说明:int *p=new int[100],则分配了【1】个字节的内存空间.

答案:

1). 400

〖第13题〗『填空』(1分)

在面向对象程序设计中,若在类外定义公有成员函数,则在函数类型前加上类名和作用域符【1】.

答案:

1). ::

〖第14题〗『填空』(1分)

???

设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【1】.

???

for(i=0,j=10;i<=j;i++,j--)

k=i+j;

答案:

1). 10

〖第15题〗『填空』(1分)

???

以下程序段要求从键盘输入字符,当输入字母为'Y' 时,执行循环体,则在括号内填写.

#include "iostream.h"

main()

{char ch=cin.get();

while(ch 【1】'Y')/*在括号中填写*/

ch=cin.get();

}

答案:

1). ==

〖第16题〗『填空』(1分)

下列程序段的输出结果是【1】.

int sub(int x=100,int y=200);

void main()

{ int a(30),b(50);

cout<

}

int sub(int x,int y){ return x-y; }

答案:

1). 20

〖第17题〗『填空』(1分)

int x=2,y=3,z=4; 则表达式x+y>z&&y==z的值为【1】.

答案:

1). 0

〖第18题〗『填空』(1分)

在C++中,结构体类型及由结构体类型所定义的结构体变量二者中,【1】占内存空间.

答案:

1). 结构体变量

〖第19题〗『填空』(1分)

设x=72,表达式x=(x>=60)的值为【1】.

答案:

1). 1

〖第20题〗『填空』(1分)

设(k=a=5,b=3,a*b),则k值为【1】.

答案:

1). 5

〖第1题〗『判断』(1分)

char ch[8]= "student";cout << strlen (ch); 结果为8.

答案:N

〖第2题〗『判断』(1分)

一维字符数组的输入:char str[22] ;cin>> str;

答案:Y

〖第3题〗『判断』(1分)

字符数组中每一个元素可存放一个字符,而字符指针变量存放字符串首地址.

答案:Y

〖第4题〗『判断』(1分)

break语句只能用在循环语句中.

答案:N

〖第5题〗『判断』(1分)

int a [5]={1, 2, 3, 4, 5};初始化后a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=5.

答案:Y

〖第6题〗『判断』(1分)

int x,a[10]={0,1,2},*p=a;x=p[2];此语句将a[2]赋值给变量x

答案:Y

〖第7题〗『判断』(1分)

转义字符'\t'表示换行.

答案:N

〖第8题〗『判断』(1分)

数组在使用之前必须先定义.数组定义包括数组的类型、名称、维数及数组中元素的个数. 答案:Y

〖第9题〗『判断』(1分)

一个函数可以调用其他函数,也可以调用该函数本身,我们将后者称之为函数的递归调用. 答案:Y

〖第10题〗『判断』(1分)

a=(b=4)+(c=6) 是一个合法的赋值表达式.

答案:Y

〖第11题〗『判断』(1分)

包含空格的字符数组输入时,常常使用C++的cin.getline()函数实现.

答案:Y

〖第12题〗『判断』(1分)

int a[10]={0,1,2,3};int *p;p = a;此语句将数组a的首地址赋给指针变量p

答案:Y

〖第13题〗『判断』(1分)

由于函数的递归调用函数是在调用自己,因此在递归调用中必须有方法避免函数无休止运行. 答案:Y

〖第14题〗『判断』(1分)

表达x>20或x<-10的C++语言表达式是:x>20|x<-10

答案:N

〖第15题〗『判断』(1分)

初值个数多于定义的数组元素个数时,会产生编译错误.

答案:Y

〖第16题〗『判断』(1分)

关闭文件可以使用成员函数close();

答案:Y

〖第17题〗『判断』(1分)

int *p=null;是正确的定义.

答案:N

〖第18题〗『判断』(1分)

同一程序中局部变量和全局变量不可以同名.

答案:N

〖第19题〗『判断』(1分)

数组名遵循变量的命名规则,它代表数组的首地址.

答案:Y

〖第20题〗『判断』(1分)

3%5的值是3

答案:Y

〖第1题〗『单项选择』(1分)

设有数组定义: char array [ ]="China"; 则数组array所占的空间为().

A:4个字节

B:5个字节

C:6个字节

D:7个字节

答案:C

〖第2题〗『单项选择』(1分)

变量的指针,其含义是指该变量的().

A:值

B:地址

C:名

D:一个标志

答案:B

〖第3题〗『单项选择』(1分)

以下不是无限循环的语句为().

A:for(y=0,x=1;x>++y;x=i++) i=x;

B:for(;;x++=i);

C:while(1){x++;}

D:for(i=10;;i--) sum+=i;

答案:A

〖第4题〗『单项选择』(1分)

若有int i=3,*p;p=&i;下列语句中输出结果为3的是().

A:cout<<&p;

B:cout<<*i;

C:cout<<*p;

D:cout<

答案:C

〖第5题〗『单项选择』(1分)

若有说明:int a[10];则对a数组元素的正确引用是().

A:a[10]

B:a[3,5]

C:a(5)

D:a[10-10]

答案:D

〖第6题〗『单项选择』(1分)

若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是(). A:p1=&m;p2=&p1

B:p1=&m;p2=&n;*p1=p2;

C:p1=&m;p2=p1;

D:p1=&m;*p2=*p1;

答案:C

〖第7题〗『单项选择』(1分)

以下数值中,不正确的八进制数或十六进制数是().

A:0x16

B:16

C:098

D:0xaaaa

答案:C

〖第8题〗『单项选择』(1分)

以下运算符中,优先级最高的运算符是().

A:?:

B:++

D:,

答案:B

〖第9题〗『单项选择』(1分)

在C++语言中,引用数组元素时,其数组下标的数据类型允许是(). A:整型常量

B:整型表达式

C:整型常量或整型表达式

D:任何类型的表达式

答案:C

〖第10题〗『单项选择』(1分)

下列说法中错误的是().

A:构造函数没有类型

B:创建对象时构造函数自动被调用

C:在一个类中,只能定义一个构造函数

D:构造函数的函数名与类同名

答案:C

〖第11题〗『单项选择』(1分)

设j和k都是int类型,则for循环语句

for(j=0,k=-1;k=1;j++,k++) cout<<"****\n";

A:循环结束的条件不合法

B:是无限循环

C:循环体一次也不执行

D:循环体只执行一次

答案:B

〖第12题〗『单项选择』(1分)

以下选项中,与k=n++完全等价的表达式是().

A:k=n,n=n+1

B:n=n+1,k=n

C:k=++n

D:k+=n+1

〖第13题〗『单项选择』(1分)

下列运算符中,不属于关系运算符的是().

A:<

B:>

C:>=

D:!

答案:D

〖第14题〗『单项选择』(1分)

以下叙述中不正确的是().

A:预处理命令行都必须以#号开始

B:在程序中凡是以#号开始的语句行都是预处理命令行C:C++程序在执行过程中对预处理命令行进行处理D:以下是正确的宏定义#define IBM_PC

答案:C

〖第15题〗『单项选择』(1分)

若给定条件表达式(M)?(a++):(a--),则其中表达式M(). A:和(M==0)等价

B:和(M==1)等价

C:和(M!=0)等价

D:和(M!=1)等价

答案:C

〖第16题〗『单项选择』(1分)

若有说明语句:char c='\72';则变量c().

A:包含1个字符

B:包含2个字符

C:包含3个字符

D:说明不合法,c的值不确定

答案:A

〖第17题〗『单项选择』(1分)

以下正确的说法是().

A:用户若需调用标准库函数,调用前必须重新定义

B:用户可以重新定义标准库函数,若如此,该函数将失去原有含义

C:系统根本不允许用户重新定义标准库函数

D:用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系...

答案:B

〖第18题〗『单项选择』(1分)

若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是().

A:&t[3][2]

B:t[3]

C:&t[1]

D:t[2]

答案:D

〖第19题〗『单项选择』(1分)

若希望当A的值为奇数时,表达式的值为"真",A的值为偶数时,表达

式的值为"假",则以下不能满足要求的表达式是().

A:A%2==1

B:!(A%2==0)

C:!(A%2)

D:A%2

答案:C

〖第20题〗『单项选择』(1分)

?

int a[10];

给数组a的所有元素分别赋值为1、2、3、……的语句是().

A:for(i=1;i<11;i++)a[i]=i;

B:for(i=1;i<11;i++)a[i-1]=i;

C:for(i=1;i<11;i++)a[i+1]=i;

D:for(i=1;i<11;i++)a[0]=1;

答案:B

〖第21题〗『单项选择』(1分)

以下叙述中正确的是().

A:C++程序中注释部分可以出现在程序中任意合适的地方

B:花括号"{"和"}"只能作为函数体的定界符

C:构成C++程序的基本单位是函数,所有函数名都可以由用户命名D:分号是C语句之间的分隔符,不是语句的一部分

答案:A

〖第22题〗『单项选择』(1分)

以下不正确的if语句形式是().

A:if(x>y&&x!=y);

B:if(x==y) x+=y;

C:if(x!=y) cin>>x else cin>>y;

D:if(x

答案:C

〖第23题〗『单项选择』(1分)

下列定义数组的语句中不正确的是().

A:int a[2][3]={1,2,3,4,5,6};

B:int a[2][3]={{1},{4,5}};

C:int a[][3]={{1},{4}};

D:int a[][]={{1,2,3},{4,5,6}};

答案:D

〖第24题〗『单项选择』(1分)

在C++语言中,形参的缺省存储类型是().

A:auto

B:register

C:static

D:extern

答案:A

〖第25题〗『单项选择』(1分)

cin和cout是I/O流库预定义的().

A:类

B:包含文件

C:对象

D:常量

答案:C

〖第26题〗『单项选择』(1分)

下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是(). A:8

B:23

C:17

D:6

答案:B

〖第27题〗『单项选择』(1分)

C++语言中要求对变量作强制定义的主要理由是().

A:便于移植

B:便于写文件

C:便于编辑预处理程序的处理

D:便于确定类型和分配空间

答案:D

〖第28题〗『单项选择』(1分)

以下数据中,不正确的数值或字符常量是().

A:0

B:5L

C:o13

D:9861

答案:C

〖第29题〗『单项选择』(1分)

下列叙述中正确的是().

A:C++语言编译时不检查语法

B:C++语言的子程序有过程和函数两种

C:C++语言的函数可以嵌套定义

D:C++语言默认的函数都是外部函数

答案:D

〖第30题〗『单项选择』(1分)

下列字符序列中,是C++语言关键字的是().

A:sizeof

B:printf

C:cin

D:sqrt

答案:A

〖第1题〗『程序填空』(8分)

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:下面的程序是求1!+3!+5!+……+n!的和,程序中有4个空,填空使程序完整。

-------------------------------------------------------*/

#include

void main()

{

long int f,s;

int i,j,n;

/***********SPACE***********/

【?】

cin >> n;

/***********SPACE***********/

for(i=1;i<=n; 【?】)

{

f=1;

/***********SPACE***********/

for(j=1; 【?】;j++)

/***********SPACE***********/

【?】

s=s+f;

}

cout << "n=" << n << " s=" << s << endl;

}

答案:

1). s=0;

2). i+=2 或i=i+2 或i++,i++

3). j<=i 或i>=j 或jj

4). f=★f★*★j★;

〖第2题〗『程序填空』(8分)

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:以下程序的功能是以每行5个数来输出300以内能被7或17

整除的偶数,并求出其和。

-------------------------------------------------------*/

#include

void main()

{

int i,n,sum;

sum=0;

/***********SPACE***********/

【?】

/***********SPACE***********/

for(i=1; 【?】;i++)

/***********SPACE***********/

if(【?】)

if(i%2==0)

{sum=sum+i;

n++;

cout << i << ' ';

/***********SPACE***********/

if(【?】) cout << endl;

}

cout << "\ntotal=" << sum;

}

答案:

1). n=0;

2). i<=300 或i<300 或300>=i或300>i

3). ★i%7★==★0★||★i%17★==★0 或!(i%7)||!(i%17) 或!(i%17)||!(i%7) 或!(i...

4). ★n%5★==★0 或!(n%5)

〖第1题〗『程序改错』(8分)

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:函数fun的功能是:实现交换两个整数的值。例如给a和b 分别输入3和6 ,输出为a=6 b=3

请改正程序中的4个错误,使它能得出正确的结果。

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

/**********FOUND**********/

void fun (int a, b)

{

int t;

/**********FOUND**********/

t=a;

/**********FOUND**********/

a=b;

/**********FOUND**********/

b=t;

}

void main()

{

int a,b;

cout<<"enter a b:";

cin>>a>>b;

fun(&a,&b);

cout<<"a="<

for(k=0;k<10;k++)

myfile<

myfile.close();

}

void main()

{

int n[10]={5,6,4,2,3,7,8,5,6,7},i,j,k;

/**********Program**********/

/********** End **********/

writeinfile(n);

}

答案:----------------------

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

for(j= i+1;j<10;j++)

if(n[i]

{k=n[j];n[j]=n[i];n[i]=k;}

----------------------

c练习题(带答案)

一、选择题 1.C++语言属于( C )。 A)自然语言B)机器语言C)面向对象语言D)汇编语言2.下面选项中不属于面向对象程序设计特征的是(C) 。 A)继承性B)多态性C)相似性D)封装性 3.可用作C++语言用户标识符的一组标识符是( B )。 A)void define +WORD B)a3_b3 _123 YN C)for -abc Case D)2a DO sizeof 4.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为 (A)。 A)0 B)4 C)8 D)6 5.下列情况中,哪一种情况不会调用拷贝构造函数( B ) A)用派生类的对象去初始化基类对象时 B)将类的一个对象赋值给该类的另一个对象时 C)函数的形参是类的对象,调用函数进行形参和实参结合时 D)函数的返回值是类的对象,函数执行返回调用者时 6.以下哪一关键字可用于重载函数的区分(C) A)extern B)static C)const D)virtual 7.下列有关数组的叙述中,正确的是( B ) A)C++中数组的存储方式为列优先存储 B)数组名可以作为实参赋值给指针类型的形参 C)数组下标索引从1开始,至数组长度n结束 D)数组指针的语法形式为:类型名*数组名[下标表达式]; 8.下列有关继承和派生的叙述中,正确的是( C) A)派生类不能访问通过私有继承的基类的保护成员 B)多继承的虚基类不能够实例化 C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数 D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现 9.实现运行时多态的机制是( A ) A)虚函数B)重载函数C)静态函数D)模版函数 10.若有下面的函数调用:

C经典习题答案

1.在类作用域中能够通过直接使用该类的()成员名进行访问。 A. 私有 B. 公用 C. 保护 D. 任何 答案:D 2.小数类型和浮点类型都可以表示小数,正确说法:( ) A. 两者没有任何区别 B. 小数类型比浮点类型取值范围大 C.小数类型比浮点类型精度高 D. 小数类型比浮点类型精度低 答案:C 3.能作为C#程序的基本单位是( )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 答案:B 4. 可用作C#程序用户标识符的一组标识符是( )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 答案:B 5.引用类型主要有4种:类类型、数组类型、接口类型和()。 A.对象类型 B.字符串类型 C.委托类型 D.整数类型 答案:C 6.使用Dirctory类的下列方法,可以获取指定文件夹中的文件的是(). A.Exists() B.GetFiles() C.GetDirectories() D.CreateDirectory() 答案:B 7.加载窗体时触发的事件是( )。 A. Click B.Load C.GotFoucs D.DoubleClick

答案:B 8.改变窗体的标题,需修改的窗体属性是( )。 A. Text B. Name C.Title D. Index 答案:A 9.在接口的成员中,不能包含( ). A.属性 B.方法 C.事件 D.常量 答案:D 10.在C#中定义接口时,使用的关键字是( )。 A.interface B.: C.class D.overrides 答案:A 1.当在程序中执行到语句时,将结束所在循环语句中循环体的一次执行。 答案:continue 2.元素类型为double的2行5列的二维数组共占用字节的存储空间。 答案:80 3.C#数组类型是一种引用类型,所有的数组都是从System命名空间的类继承而来的引用对象。 答案:object 4.枚举是从System. 类继承而来的类型。 答案:Enum 5.一般将类的构造方法声明为访问权限。如果声明为private,就不能创建该类的对象。 答案:public或公有 6.类中声明的属性往往具有get()和两个函数。 答案:set() 7.对于方法,参数传递分为值传递和两种。

C语言期末考试题库(第一章 c语言基

一、单项选择 1.算术运算符,赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为(). A、关系运算,赋值运算,算术运算 B、算术运算,关系运算,赋值运算 C、算术运算,赋值运算,关系运算 D、关系运算,算术运算,赋值运算 答案:B 2.下述正确的C语言常量是:(). A、E2 B、3e-3 C、1.5E2.5 D、5.0E 答案:B 3.使用共用体变量,不可以(). A、进行动态管理 B、节省存储空间 C、同时访问所有成员 D、简化程序设计 答案:C 4.为表示关系x>=y>=z,应使用C语言表达式为:()

A、(x>=y)&(y>=z) B、(x>=y>=z) C、(x>=y)&&(y>=z) D、(x>=y)AND(y>=z) 答案:C 5.以下程序的输出结果是(). main() {char str[]="ABCD",*p=str;printf("%s\n",p);} A、68 B、ABCD C、不确定的值 D、字符D的地址 答案:B 6.char a[10];不能将字符串"abc"存储在数组中的是(). A、a="abc"; B、a[0]=0;strcat(a,"abc"); C、int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; D、strcpy(a,"abc"); 答案:A 7.fscanf函数的正确调用形式是(). A、fscanf(文件指针,格式字符串,输入表列);

B、fscanf(格式字符串,文件指针,输出表列); C、fscanf(fp,格式字符串,输出表列); D、fscanf(格式字符串,输出表列,fp); 答案:A 8.下列数组说明中正确的是(). A、int array[][]={1,2,3,4,5,6,7,8,9,10}; B、int array[][][5]={1,2,3,4,5,6,7,8,9,10}; C、int array[][4]={1,2,3,4,5,6,7,8,9,10}; D、int array[3][]={1,2,3,4,5,6,7,8,9,10}; 答案:C 9.以下选项中,与k=n++完全等价的表达式是(). A、n=n+1,k=n B、k+=n+1 C、k=++n D、k=n,n=n+1 答案:D 10.针对下列程序段回答问题(). for(t=1;t<=100;t++) { scanf("%d",&x); if(x<0)continue;

C练习题&答案

一、填空共17题(共计60分) 第1题(2.0分) 运行以下程序时,输出结果是【1】 long fit(int n) {if(n>2) return(fit(n-1)+fit(n-2)); else return(3);} main() {printf("%ld\n",fit(4));} 答案: =======(答案1)======= 9 第2题(2.0分) 以下程序运行后的输出结果是【1】. #include void main() { char ch[]="abc",x[3][4];int i; for(i=0;i<3;i++)strcpy(x[i],ch); for(i=0;i<3;i++)printf("%s",&x[i][i]); printf("\n"); } 答案: =======(答案1)=======

abcbcc 第3题(2.0分) 下列程序的输出结果是【1】 #include main( ) { char b[30]; strcpy(&b[0],"CH"); strcpy(&b[1],"DEF"); strcpy(&b[2],"ABC"); printf("%s \n",b); } 答案: =======(答案1)======= CDABC 第4题(2.0分) 运行以下程序时,输出结果是【1】#include int b; int fun (int a) { static int c=2; return((++a)+(++b)+(++c)); }

void main( ) { int i, a=1; for(i=0;i<2;i++) printf("%5d",fun(a)); } 答案: =======(答案1)======= 6 8 第5题(2.0分) 在函数内部声明局部变量时缺省了存储类型,则该变量存储类型是【1】. 答案: =======(答案1)======= auto =========或========= 自动型 第6题(2.0分) 有以下定义和语句 struct date { int day; int month;

C语言经典例题和答案

一、求一个任意边长的矩形面积。 #include void main() {int w,h,sum; scanf("%d%d",&w,&h); sum=w*h; printf("area=%d\n",sum); } 二、求一个任意半径的圆的面积及周长。 #define PI 3.14159 #include void main() {float r,area,c; scanf("%f",&r); area=PI*r*r; c=2*PI*r; printf("area=%f\ncircle=%f\n",area,c); } 三、已知:w=5, y=4, z=2, 求表达式:w*y/z的值,并输出。 ##include void main() { int w,y,z,r; w=5; y=4; z=2; r=w*y/z; printf("%5d",r); } 一、从键盘上输入三个数,求出其中的最大值,并输出。 #include void main() {int a,b,c,max; scanf("%d%d%d",&a,&b,&c); max=a; if(max

#include #define PI 3.14159 #include void main() {float a,b,sum; a=30*PI/180; b=60*PI/180; sum=sin(a)+sin(b)+cos(a)+cos(60); printf("total=%f\n",sum); } 三、比较两个数的大小。如果x大于y,则输出:x>y,否则输出:x void main() {int x,y; scanf("%d,%d",&x,&y); if(x>y) printf("x>y\n"); else printf("x void main() {int a,b,c,t; scanf("%d%d%d",&a,&b,&c); if(a>b) { t=b; b=a; a=t; } if(a>c) {t=a; a=c; c=t; } if(b>c) {t=b;b=c;c=t;} printf("%3d%3d%3d\n",a,b,c); }. 二、求自然数1~10之和。。 #include void main()

C语言期末考试试题

C语言试题1 一填空题(15分) 1.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后,x的值为()。 2.设int a=7,b=9,t;执行完表达式t=(a>b)?a:b后,t的值是()。 3.下面程序段的输出结果是()。 int a=1234; a=a&0377; printf(“%d %o\n”,a,a); 4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是()。 char a[3]; 5.设有以下宏定义,则执行赋值语句a=PP*20;(a为int型变量)后,a的值是()。 #define PR 80 #define PP PR+403 6.在C程序中,可以通过三种运算方式为指针变量赋地址值,它们是:()、()和()。7.在C文件中,数据存在的两种代码形式是()和()。 8.C语言中调用()函数打开文件,调用()函数关闭文件,调用()函数可实现文件的随机读写。 9.若有int a[3]={10,12,30};则a+1是()的地址,*(a+2)=()。 二判断对错(5分,对的划“√”,错的划“×” 1.在Turbo C中,整型数据在内存中占2个字节。() 2.表达式1/4+2.75的值是3。() 3.结构体类型只有一种。() 4.函数若无返回值,则它一定无形参。() 5.C语言只能处理文本文件和二进制文件。() 三选择题(20分) 1.设int a=12; 表达式a+=a-=a*=a的值是()。 A 12 B 144 C 0 D 132 2.以下程序的输出结果是()。 main( ) { int a=011; printf(“%d\n”,++a); } A 12 B 11 C 10 D 9 3.以下程序的输出结果是()。 #define ADD(x) (x)+(x) main() { int a=4,b=6,c=7,d=ADD(a+b)*c; printf(“d=%d”,d); } A d=70 B d=140 C d=280 D d=80 4.下面的选项中正确的赋值语句是(char a[5],*p=a;)()。 A p=“abcd”; B a=“abcd”; C *p=“abcd”; D *a=“abcd”; 5.若k为整形,则while循环执行()次。 k=2; while(k==0) printf(“%d”,k); k--; printf(“\n”); A 10 B 9 C 0 D 1

大学c习题答案习题13答案

习题13答案 一、简答题 1.什么是运算符重载?实现运算符重载有几种方法?如何实现? 答案:C++提供的运算符重载机制能够实现将已有运算符应用到新的数据类型变量上,赋予运算符新的含义。C++对运算符重载有一些限制,见 有两种方法可以实现运算符重载,它们是:类的成员函数方式和有友元函数方式。 定义友元的目的是在友元函数中直接访问类的私有成员。实际上,可以通过类的公有函数接口访问类的私有成员,所以实现运算符重载,可以使用非成员、非友元实现运算符的重载。但是这种实现方法增加了访问私有数据成员的公有函数的调用时间,不值得提倡。见2.如何实现本类对象与其它类对象之间的相互类型转换? 答案:可以使用“类型转换函数”将本类对象转换成其他类对象。而“类型转换函数”本质上就是运算符的重载。另外,可以使用“构造函数”将其他类对象转换成本类对象。 3.什么是虚函数?什么是纯虚函数?它们的作用是什么? 答案: 多态性是面向对象程序设计的重要特性,它与前面讲的封装性和继承性构成面向对象程序设计的三大特性。这三大特性是互相关联的,封装性是基础,继承性是关键,而多态性是补充。 多态分为静态多态和动态多态。函数重载和运算符重载属于静态多态。动态多态是运行时的多态,如某些函数的调用关系在运行阶段才能确定。为了实现函数调用关系的动态多态,可以将函数定义成虚函数。将一个成员函数定义成虚函数的方法是,在函数定义的返回值类型前加virtual。 在抽象类中,有时无法实现某一功能(即无法决定某一函数的具体实现),只能将函数定义成纯虚函数。 虚函数具有函数实现的函数体,而纯虚函数没有函数体,即没有函数实现。对纯虚函数,只能在其派生类中实现该函数的功能。 4.试比较虚函数与虚基类的概念及作用。 答案:虚函数用于实现动态多态。而虚基类用于实现在多重继承情况下,基类数据成员在派生类中保留一个副本,见12.6节。 二、选择题 答案: 1. C 2. D 3. A 4. D 5. B 6. C 7. D 8. C 三、运行结果、完善程序 1. 运行结果: n=4 n=3 2, 3 2. 答案: 先看虚线框中的程序,运行结果为:D::show( ) called. 8 若将A行的virtual去掉,则结果为:B::show( ) called. 5 对本题,若将虚线框中的fun( )和main( )函数同时修改成右侧实线框中的对应函数,则若A

c和c++经典笔试题及答案

C++/C经典笔试题及答案 C++/C试题 本试题仅用于考查C++/C程序员的基本编程技能。内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。 笔试时间90分钟。请考生认真答题,切勿轻视。 一、请填写BOOL , float, 指针变量与“零值”比较的 if 语句。(10分)提示:这里“零值”可以是0, 0.0 , FALSE或者“空指针”。例如 int 变量 n 与“零值”比较的 if 语句为: if ( n == 0 ) if ( n != 0 ) 请写出BOOL flag 与“零值”比较的if 语句: 请写出float x 与“零值”比较的if 语句: 请写出char *p 与“零值”比较的if 语句: char str[] = “Hello” ; char *p = str ; int n = 10; 请计算 sizeof (str ) = sizeof ( p ) = sizeof ( n ) =void Func ( char str[100]) { 请计算 sizeof( str ) = } void *p = malloc( 100 );请计算 sizeof ( p ) = 1、头文件中的 ifndef/define/endif 干什么用? 2、#include 和#include “filename.h” 有什么区别? 3、const 有什么用途?(请至少说明两种) 4、在C++ 程序中调用被 C编译器编译后的函数,为什么要加extern “C”声明? 5 // 第一个 for (i=0; i

C语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是() A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中() A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是() A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是() A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:floata=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不.相符的是() A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是() A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是() A)x!=0B)x==1C)x!=1D)x==0

8、有以下程序: #include voidmain(){ inti=1,j=1,k=2; if((j++||k++)&&i++) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 9、有以下程序: #include voidmain(){ inti,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: voidfun(intn,doublex){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是()A)fun(inty,doublem); B)k=fun(10,12.5); C)fun(x,n);D)voidfun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

c练习题带答案

c练习题带答案集团标准化工作小组 #Q8QGGQT-GX8G08Q8-

一、选择题 1.C++语言属于( C )。 A)自然语言 B)机器语言 C)面向对象语言 D)汇编语言2.下面选项中不属于面向对象程序设计特征的是(C) 。 A)继承性 B)多态性 C)相似性 D)封装性 3.可用作C++语言用户标识符的一组标识符是( B )。 A) void define +WORD B) a3_b3 _123 YN C) for -abc Case D) 2a DO sizeof 4.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素 a[2][1]的值为(A)。 A) 0 B) 4 C) 8 D) 6 5.下列情况中,哪一种情况不会调用拷贝构造函数( B ) A)用派生类的对象去初始化基类对象时 B)将类的一个对象赋值给该类的另一个对象时 C)函数的形参是类的对象,调用函数进行形参和实参结合时 D)函数的返回值是类的对象,函数执行返回调用者时 6.以下哪一关键字可用于重载函数的区分(C) A)extern B)static C)const D)virtual 7.下列有关数组的叙述中,正确的是( B ) A)C++中数组的存储方式为列优先存储 B)数组名可以作为实参赋值给指针类型的形参 C)数组下标索引从1开始,至数组长度n结束 D)数组指针的语法形式为:类型名 *数组名[下标表达式]; 8.下列有关继承和派生的叙述中,正确的是( C ) A)派生类不能访问通过私有继承的基类的保护成员 B)多继承的虚基类不能够实例化 C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数 D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现 9.实现运行时多态的机制是( A ) A)虚函数B)重载函数C)静态函数D)模版函数 10.若有下面的函数调用: fun(a+b, 3, max(n-1, b)); 其中实参的个数是( A) A)3 B)4 C)5 D)6 11.下列关于this指针的说法正确的是( B)

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为关键

2019年C语言期末考试题与答案

1、给定n个数据, 求最小值出现的位置(如果最小值出现多次,求出第一次出现的位置即可)。 最大值第三行i<=n五行k+1 2、编写程序求无理数e的值并输出。计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。 3、求一批数中最大值和最小值的积。 4、某一正数的值保留2位小数,对第三位进行四舍 五入。 5、从键盘上输入任意实数x,求出其所对应的函数值。 z=(x-4)的二次幂(x>4) z=x的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10) z=|x|+20(其他)6、求出N×M整型数组的最大元素及其所在的行坐标 及列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如:输入的数组为: 1 2 3 4 1 5 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1。 7、求一个n位自然数的各位数字的积。(n 是小于10的自然数) 8、计算n门课程的平均值,计算结果作为函数值返回。例如:若有5门课程的成绩是:92,76,69,58,88,则函数的值为76.599998。 9、求一批数中小于平均值的数的个数。

10、编写函数判断一个整数m 的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函数找出 100~200之间满足条件的所有数。 11、请编一个函数void fun(int tt[M][N],int pp[N]), tt 指向一个M 行N 列的二维数组,求出二维数组每列 中最大元素,并依次放入pp 所指一维数组中。二维 数组中的数已在主函数中赋予。 12、编写函数fun 用比较法对主程序中用户输入的具有10 个数据的数组a 按由大到小排序,并在主程序中输出 排序结果。 13、编写main 程序调用函数fact 求解从m 个元素选n 个元 素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!)。 要求:m 不能小于n ,否则应有容错处理。 说明:函数fact(x)的功能是求x!。 14、找出一批正整数中的最大的偶数。 15、实现两个整数的交换。 例如:给a 和b 分别输入:60和65,输入为: a=65 b=60 16、将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 17、求一个四位数的各位数字的立方和。 18、求一组数中大于平均值的数的个数。 例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 数值为3。 19、对任意输入的 x ,用下式计算并输出 y 的值。 5 x<10 y= 0 x=10 -5 x>10

C 练习题分析

1[简答题]学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生人数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干语句。 试题程序:

参考解析: 【参考答案】 【考点分析】 本题考查:结构体数组操作;用循环判断结构查找数组中的最大值。 【解题思路】

该程序使用两个循环判断语句,第1个循环判断语句的作用是找出最大值;第2个循环判断语句的作用是找出与max相等的成绩(即最高成绩)的学生记录,并存入b中。 【解题宝典】’ 对于如何找出数组中最大值(多个相等)的方法,我们已经不陌生。如何对结构体数组进行类似操作呢? 掌握以下语句: 2[单选题] 下列定义数组的语句中,正确的是( )。 参考答案:A 参考解析:数组说明的一般形式为:类型说明符数组名[常量表达式]。B选项中N是变量,不能用变量定义数组长度。c选项中数组长度是非法的一串数字。定义数组时必须为其指明长度,D选项中数组长度为空,所以非法。

3[单选题] 若有以下程序段 则以下选项中值为6的表达式是 A.P->n B.(*p).n C.p->n++ D.++(P->n) 参考答案:D 参考解析:本题考查结构体变量的引用,其中a为定义的结构体数组,D选项中P->n为5,++(P->11)为6,所以D选项正确。 4[单选题] 有以下程序 程序运行后的输出结果是 A.4 B.8 C.9 D.6 参考答案:B

最新版c语言经典习题100例(最全面)

C 语言习题100 例(最新整理版) 习题目录:(按住Ctrl 点击可以快速跳转到对应页面) 【程序1】 (5) 题目:有1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? (5) 【程序2】 (6) 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元 时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%; 40万到60万之间时高于40万元的部分,可提成3%; 60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? (6) 【程序3】 (7) 题目:一个整数,它加上100 后是一个完全平方数,再加上168 又是一个完全平方数,请问该数是多少? (7) 【程序4】 (7) 题目:输入某年某月某日,判断这一天是这一年的第几天? (7) 【程序5】 (8) 题目输入三个整数x,y,z请把这三个数由小到大输出。 (8) 【程序6】 (9) 题目用*号输出字母C的图案。 (9) 【程序7】 (9) 题目:输出特殊图案,请在C环境中运行,看一看,VeryBeautifuI! (9) 【程序8】 (9) 题目:输出9*9 口诀。 (9) 【程序9】 (10) 题目:要求输出国际象棋棋盘。 (10) 【程序10】 (10) 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 (10) 【程序11】 (11) 题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? (11) 【程序12】 (11) 题目:判断101-200 之间有多少个素数,并输出所有素数。 (11) 【程序13】 (12) 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1 的三次方+5的三次方+3的三次方。 (12) 【程序14】 (12) 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5 。 (12) 【程序15】 (13) 题目利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用 C 表示。 (13) 【程序16】 (13) 题目:输入两个正整数m和n ,求其最大公约数和最小公倍数。 (13) 【程序17】 (14) 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。14【程序18】 (14)

数据结构(C语言)【经典题库】含参考答案

《数据结构与算法》复习题 选择题 1.在数据结构中,从逻辑上可以把数据结构分为 C 。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 2.数据结构在计算机内存中的表示是指 A 。 A.数据的存储结构 B.数据结构 C 3 A 。 7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。 (1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进 C.分析算法的易读性和文档性 (2)A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是 O(n2) 。 s =0;

for( I =0; inext ==NULL C.head->next ==head D head!=NULL

15.带头结点的单链表head为空的判定条件是 B 。 A.head == NULL B head->next ==NULL C.head->next ==head D head!=NULL 16.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用 D 存储方式最节省运算时间。 A.单链表 B.给出表头指针的单循环链表 C.双链表 D.带头结点的双循环链表17.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。 20 21 B 。 22 A.删除单链表中的第一个元素 B.删除单链表中的最后一个元素 C.在单链表第一个元素前插入一个新元素 D.在单链表最后一个元素后插入一个新元素 23.与单链表相比,双链表的优点之一是 D 。 A.插入、删除操作更简单

大学C语言期末考试习题集(带详解答案)

一、单项选择题 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试题及答案(一)

C++程序设计模拟试卷(一) 一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中 只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无 分。 1.编写C++程序大凡需经过的几个步骤依次是() A.编辑、调试、编译、连接 B.编辑、编译、连接、运行 C.编译、调试、编辑、连接 D.编译、编辑、连接、运行 答案:B 解析:经过编辑、编译、连接和运行四个步骤。编辑是将C++源程序输入计算机的过程,保 存文件名为cpp。编译是使用系统提供的编译器将源程序cpp生成机器语言的过程,目标文件为 obj,由于没有得到系统分配的绝对地址,还不能直接运行。连接是将目标文件obj转换为可执行 程序的过程,结果为exe。运行是执行exe,在屏幕上显示结果的过程。 2.决定C++语言中函数的返回值类型的是() A.return语句中的表达式类型 B.调用该函数时系统随机产生的类型 C.调用该函数时的主调用函数类型 D.在定义该函数时所指定的数据类型 答案:D

解析:函数的返回值类型由定义函数时的指定的数据类型决定的。A项的表达式的值要转换 成函数的定义时的返回类型。 3.下面叙述不正确的是() A.派生类大凡都用公有派生 B.对基类成员的访问必须是无二义性的 C.赋值兼容规则也适用于多重继承的组合 D.基类的公有成员在派生类中仍然是公有的 答案:D 解析:继承方式有三种:公有、私有和保护。多继承中,多个基类具有同名成员,在它们 的子类中访问这些成员,就产生了二义性,但进行访问时,不能存在二义性。赋值兼容规则是指 派生类对象可以当作基类对象使用,只要存在继承关系,所以单继承或多继承都适用。基类中的 公有成员采用私有继承时,在派生类中变成了私有成员,所以D项错误。 4.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体 也就是() A.类 B.对象 C.函数体

大一C语言期末考试题

大一C语言期末考试题 悬赏分:40 |解决时间:2010-6-29 14:28 |提问者:345387547 1. 数组int a[3][5]; 共定义了_______________个元素。 2. 有float f= 3.1415927; 则printf(“%5.4f”, f );输出的结果是 _______________。 3. 下面程序的功能是:输出100以内(不包含100)能被3整除且个位数为6的所有整数,请填空。 main( ) { int i; for(i=1; _______________; i++) if (_______________) printf("%d", i); } 4. 设有“int x=2, y”说明,则逗号表达式“y=x+5,x+y”的值是 _______________ 5. 以下是使用指针,进行字符串复制的程序,请填空。 main() { char a[]= “Tsinghua University”, b[30], *p1,*p2; p1=a; p2=b; for(; *p1!= _______________; p1++, p2++) _______________=_______________; *p2= ______________; printf(“string a is:%s\n”,a); printf(“string b is:%s\n”,b); } 6. 下面程序用冒泡法对数组a进行降序排序,请填空。 main() { int a[5]={4,7,2,5,1}; int i,j,m; for(i=0;i<4;i++) for(j=0;j<_______________;j++) if( _______________< _______________ ) { m=a[ j]; a[ j]=a[ j+1]; a[ j+1]= m; } for(i=0;i<5;i++) printf("%d ",a[i]); } 7. 函数fun的功能是:使一个字符串按逆序存放,请填空。 void fun (char str[]) { char m; int i,j; for(i=0,j=strlen(str);i<_______________;i++,j--)

C语言经典例题目解析

1、猴子吃桃子:猴子摘下若干个桃子,第一天吃了桃子的一半多一个,以后每天吃了前一天剩下的一半多一个,到第十天吃以前发现只剩下一个桃子,问猴子第一天共摘了几个桃子 #include main() {int s=1,i; for(i=9;i>=1;i--) s=(s+1)*2; printf("s=%d\n",s); } 2、鸡兔同笼:有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。问笼中各有几只鸡和兔? #include main() {int a,b; for(a=1;a<=40;a++)/* 120只脚如果全是鸡的话60只,但是总头是40,所以循环到40 */ for (b=1;b<=30;b++) /* 同理如果全是兔的话最多120/4=30 所以循环到30 */ {if((a==40-b)&&(a==60-2*b)) /* 同时满足总头数40总脚数120 */ printf("There are %d chichens \nThere are %d rabbits",a,b);} } 3、百钱买百鸡:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何? #include main( ) {int cocks,hens,chicks; cocks=0; while(cocks<=19) {hens=0; while(hens<=33) {chicks=100-cocks-hens; if(5*cocks+3*hens+chicks/3==100&&chicks%3==0) printf("%d,%d,%d\n",cocks,hens,chicks); hens=hens+1;} cocks=cocks+1;}} #include main() {int x,y,z; for(x=0;x<=20;x++) for(y=0;y<=33;y++) {z=100-x-y; if(15*x+9*y+z==300) printf("x=%d y=%d z=%d\n",x,y,z); } }

相关文档