当前位置:文档之家› C++测试题

C++测试题

C++测试题
C++测试题

试卷1

一、(本题满分30分,每题1分)单项选择题

说明:将答案填入下表中。

( )

A. cpp

B. exe

C. obj

D. lik

2、可用作C++语言用户标识符的一组标识符是( )

A. void define +WORD

B. a3_b3 _123 YN

C. for -abc Case

D. 2a DO sizeof

3、设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( )

A. 12

B. 144

C. 156

D. 288

4、设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是( )

A. 15

B. 26,15

C. 15,26

D. 26

5、设x是一个bool型的逻辑量,y的值为10,则表达式 x && y值为( )

A. 1

B. 0

C. 与x值相同

D. 与x值相反

6、与表达式x>0 && x<=10相反的表达式为( )

A. x<=0 || x>10

B. x<=0 && x>10

C. x<=0 || x<=10

D. x>0 && x>10

7、循环语句“for(int i=0; i

体执行的次数为( )

A. 1

B. n-1

C. n

D. n+1

8、循环体至少被执行一次的语句为( )

A. for循环

B. while循环

C. do…while循环

D. 任一种循环

9、在下面的一维数组定义中,哪一个有语法错误( )

A. int a[]={1,2,3};

B. int a[10]={0};

C. int a[];

D. int a[5];

10、在下面的字符数组定义中,哪一个有语法错误( )

A. char a[20]=”abcdefg”;

B. char a[]=”x+y=55.”;

C. char a[15];

D. char a[10]=’5’;

11、以下说法中正确的是( )

A. C++程序总是从第一个定义的函数开始执行

B. C++程序总是从main函数开始执行

C. C++函数必须有返回值,否则不能使用函数

D. C++程序中有调用关系的所有函数必须放在同一个程序文件中

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

A. 在一个函数中,可以有多条return语句

B. 函数的定义不能嵌套,但函数的调用可以嵌套

C. 函数必须有返回值

D. 不同的函数中可以使用相同名字的变量

13、函数重载是指( )

A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同

B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的

类型可以不同

C. 两个以上的函数名字不同,但形参的个数或类型相同

D. 两个以上的函数取相同的函数名,并且函数的返回类型相同

14、以下关于函数模板叙述正确的是( )

A. 函数模板也是一个具体类型的函数

B. 函数模板的类型参数与函数的参数是同一个概念

C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数

D. 用函数模板定义的函数没有类型

15、函数原型声明语句正确的是( )

A. int Function(void a);

B.void Function (int);

C. int Function(a);

D.void int(double a);

16、设有如下函数定义

int f(char *s)

{

char *p=s;

while(*p!=’\0’) p++;

return(p-s);

}

在主函数中用cout<

A. 3

B. 4

C. 5

D. 6

17、若用数组名作为函数调用的实参,传递给形参的是( )

A. 数组的首地址

B. 数组中第一个元素的值

C. 数组全部元素的值

D. 数组元素的个数

18、以下正确的描述是( )

A. 不允许设置参数的默认值

B. 设置参数的默认值只能在定义函数时设置

C. 设置部分参数的默认值时,指定默认值的参数应放在形参列表的

最右端

D. 设置参数的默认值时,应该全部参数都设置

19、将两个字符串连接起来组成一个字符串时,选用( )函数

A. strlen()

B. strcap()

C. strcat()

D. strcmp()

20、C++语言的编译系统对宏命令的处理是( )

A. 在程序运行时进行

B. 在程序连接时进行

C. 和C++程序的其它语句同时进行编译

D. 在对源程序进行正式编译之前进行

21、假定变量m定义为“int m=7;”,则定义变量p的正确语句为( )

A. int p=&m;

B. int *p=&m;

C. int &p=*m;

D. int *p=m;

22、假定一条定义语句为“int a[10], x, *p=a;”,若要把数组a中

下标为3的元素值赋给x,则不正确的语句为( )

A. x=p[3];

B. x=*(a+3);

C. x=a[3];

D. x=*p+3;

23、假定p指向的字符串为”string”,则cout<

A. string

B. ring

C. ing

D. i

24、面向对象方法的多态性是指( )

A. 一个类可以派生出多个特殊类

B. 一个对象在不同的运行环境中可以有不同的变体

C. 针对同一消息,不同的对象可以以适合自身的方式加以响应

D. 一个对象可以是由多个其他对象组合而成的

25、面向对象软件开发中使用的OOD表示( )

A. 面向对象分析

B. 面向对象设计

C. 面向对象语言

D. 面向对象方法

26、在一个类的定义中,包含有( )成员的定义

A. 数据

B. 函数

C. 数据和函数

D. 数据或函数

27、在关键字protected后面定义的成员为类的( )成员

A. 私有

B. 公用

C. 保护

D. 任何

28、假定AA为一个类,a为该类公有的数据成员,x为该类的一个对

象,则访问x对象中数据成员a的格式为( )

A. x(a)

B. x[a]

C. x->a

D. x.a

29、假定AA为一个类,int a()为该类的一个成员函数,若该成员函

数在类定义体外定义,则函数头为( )

A. int AA::a()

B. int AA:a()

C. AA::a()

D. AA::int a()

30、假定AB为一个类,则执行“AB x(a,5);”语句时将自动调用该类的( )

A. 带参构造函数

B. 无参构造函数

C. 拷贝构造函数

D. 赋值重载函数

二、(本题满分30分,每空1分)填空题

说明:将答案写入空格处。

1、一个函数定义由________和________两部分组成

2、当使用_______保留字作为函数类型时,该函数不返回任何值

3、假定x=5,y=6,则执行表达式y*=x++计算后,x和y的值分别

为__________和_________

4、C++常数0345对应的十进制值为__________;C++常数0x145对

应的十进制值为__________

5、char、int和double类型的数据分别占用______、______和

______个字节

6、字符串”student\’s.\n”的长度为__________

7、假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别

为__________和__________

8、假定x是一个逻辑量,则x || !x的值为__________

9、假定x=10,则表达式x<=10?20:30的值为______

10、存储字符’a’和字符串”a”分别需要占用________和________

个字节

11、strlen(”apple”)的返回结果为________,strcmp(”a”,”A”)

的返回结果为________

12、若需要把一个字符串”aaa”赋值到字符数组a中,则需要执行

________函数来实现

13、若“double x;”是文件F1.CPP中的一个全局变量定义语句,若

文件F2.CPP中的某个函数需要访问此x , 则应在文件F2.CPP

中添加对x的声明语句为_________________

14、C++提供的预处理命令有宏定义命令,条件编译命令和_________

15、若有定义“struct AA {int a; char b; double c;}x;”,则x占

用空间大小为________字节

16、假定指向一维数组b中元素b[4]的指针为p,则p+3所指向的元

素为_______,p-2所指向的元素为________

17、若要把y定义为整型变量x的引用,则所使用的定义语句为

________

18、已知语句“cout<

输出的是__________

19、假定AA为一个类,a为该类公有的数据成员,px为指向该类对象

的一个指针,则访问px所指对象中数据成员a的格式为

__________

20、已知有定义“int x, a[]={15,17,19}, *pa=a;”,在执行“x=*pa++;”

后,*pa的值是________

21、数组a定义为“int a[100];”,要使p[j] 与a[j] 等效,则指针

p应定义为__________

三、(本题满分18分,每空2分)补充程序题

1、统计字符串中英文字母个数的程序

#include “iostream”

int count (char str[]);

int main()

{

char s1[80];

cout <<”Enter a line:”;

cin >>s1;

cout <<”count=”<

return 0;

}

int count(char str[])

{

int num=0;

for(int i=0;str[i];i++)

if (str[i]>=’a’ && str[i]<=’z’ ||___(1)___ ) ___(2)___;

___(3)___;

}

答案为:

(1)

(2)

(3)

2、对数组a[n]按升序进行的起泡排序算法

void SelectSort(int a[], ___(1)___)

{

int i,j,t

for(i=0;i

for(j=0;j

if( (2) )

{ t=a[j];

___(3)__;

a[j+1]=t;

}

}

答案为:

(1)

(2)

(3)

3、已知一个类的定义如下:

#include “iostream”

class AA

{

int a[10];

int n;

public:

void SetA(int aa[], int nn); //用数组aa初始化数据成员a, //用nn初始化数据成员n

int MaxA( ); //从数组a中前n个元素中查找最大值

void PrintA(); //输出数组a中的前n个元素的最大值};

该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。

int __(1)__

{

int x=a[0];

for(int i=1; i

if(a[i]>x) ___(2)___;

___(3)___;

}

答案为:

(1)

(2)

(3)

四、(本题满分12分,每题4分)写出程序运行结果

1、#include “iostream”

{

for(int i=1,s=0;i<20;i++)

{

if(i%2==0 || i%3==0) continue;

cout<

s+=i;

}

cout<

return 0;

}

该程序运行结果为:

2、#include “iostream”

const int b=2;

int main()

{

int p=1,s=1;

while(s<50)

{

p * =b;

s+=p;

}

cout<<"s="<

return 0;

}

该程序运行结果为:

3、 #include “iostream”

{

char a[]="abcdabcabfgacd";

int i1=0, i2=0, i=0;

while(a[i]!=’\0’)

{

if(a[i]==’a ’) i1++;

if(a[i]==’b ’) i2++; i++;

}

cout<

return 0;

}

该程序运行结果为:

五、(本题满分10分,每题5分)编程题

1、有一个函数:

x (x<1)

y= 2x-1 (1≦x<10)

3x-11 (x ≧10)

要求写一程序,输入x ,输出y 。

2、求a!+b!+c!的值,用一个函数fac(n)求n !。要求a,b,c 的值由主

函数输入,最终得到的值在主函数中输出。

试卷1 参考答案

一、(本题满分30分,每题1分)单项选择题

ABCDC ACCCD BCACB

BACCD BDCCB DCDAA

二、(本题满分30分,每空1分)填空题

1、函数首部(或函数头)、函数体

2、void

3、6 30

4、229 325

5、 1 4 8

6、11

7、1 3 8、 1 9、20 10、 1 2

11、5 >0的整数(或正整数或1) 12、strcpy() 13、extern double x; 14、文件包含15、13 16、b[7] b[2] 17、int &y=x

18、H 19、px->a(或者(*px).a) 20、17 21、int *p=a;

三、(本题满分18分,每空2分)补充程序题

1、(1)str[i]>=’A’ && str[i]<=’Z’

(2)num++(或num=num+1)

(3)return num(或return (num))

2、(1)int n

(2)a[j]>a[j+1] (或a[j]>=a[j+1])

(3)a[j]= a[j+1]

3、(1)AA::MaxA()

(2)x=a[i]

(3)return x(或return (x))

四、(本题满分12分,每题4分)写出程序运行结果

1、1,5,7,11,13,17,19,73(其中前7个数2分,逗号1分,第8个数1分)

2、s=63(其中”s=”1分,“63”3分)

3、4 3 14(其中“4“1分,“3”1分,“14”2分)

五、(本题满分10分,每题5分)编程题

1、

#include “iostream”

Using namespace std;

int main()

{ int x,y; ----------------------1分

Cout<<”please input x:”;

cin>>x; ----------------------0.5分

if (x<1)

y=x; ----------------------1分

if (x>=1) && (x<10)

y=2*x-1; -----------------------1分

if (x>=10)

y=3*x-11; ------------------------1分

cout<<”y=”<

return 0;

}

2、

#include “iostream”

Using namespace std;

int main()

{ int fac(int n);

int a,b,c,sum; -----------------------------1分Cout<<”please input a,b.c:”;

cin>>a>>b>>c; ------------------------------0.5分sum=fac(a)+fac(b)+fac(c); -------------------------------1分cout<<”a!+b!+c!=”<

}

int fac(int n)

{ int i,sum=1; -------------------------0.5分

for(i=1;i<=n;i++)

sum=sum*i; --------------------------1分

return sum; --------------------------0.5分}

试卷2

一、(本题满分40分,每题2分)单项选择题

说明:将答案填入下表中。

语言中函数的函数体是由局部声明部分和()组成

A. 主程序和子程序

B.若干过程

C.函数头

D.执行部分

2、下列的符号常量定义中,错误的定义是()。

A. const M=10

B. const int M=20

C. const char ch

D. const bool mark=true

3、设”int a=6;”,则执行完语句”a+=a;”后,a的值是( )

A. 12

B. 6

C. 36

D. 24

4、在每个C++程序中都必须包含有这样一个函数,该函数的函数名为( )

A. name

B. MAIN

C. main

D. function

5、设x是一个bool型的逻辑量,y的值为10,则表达式 x || y的值为()

A. 1

B. 0

C. 与x值相同

D. 与x值相反

6、以下表示x>0 并且 x<=10的合法表达式为()

A. x<=0 || x>10

B. 0

C. x>0 || x<=10

D. x>0 && x<=10

7、类型修饰符unsigned修饰()类型是错误的

A. char

B. int

C. long int

D. float

8、循环语句“for(int i=0; i

执行的次数为( )。

A. 1

B. n-1

C. n

D. n+1

9、在下面的字符数组定义中,哪一个有语法错误。()

A. char a[20]=”abcdefg”;

B. char a[]=”x+y=55.”;

C. char a[15];

D. char a[10]=’5’;

10、假定a为一个整型数组名,则元素a[4]的字节地址为( )

A.a十4

B.a十8

C.a十16

D.a十32

11、以下说法中正确的是()

A. C++程序总是从第一个定义的函数开始执行

B. C++程序总是从main函数开始执行

C. C++函数必须有返回值,否则不能使用函数

D. C++程序中有调用关系的所有函数必须放在同一个程序文件中

12、C++语言中while和do—while循环的主要区别是()

A. while的循环控制条件比do—while的循环控制条件严格

B. while的循环体可能一次都不执行,do—while的循环体至少无条

件执行一次

C. while不允许从外部转到循环体内do—while允许从外部转到循环体内

D .while的循环体能是复合语句do—while的循环体不能是复合语句

13、设x和y均为bool量,则x && y为真的条件是()

A.它们均为真

B.其中一个为真

C.它们均为假

D.其中一个为假

14、为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函

数应选择()。

A. 内联函数

B.重载函数

C.递归函数

D.函数模板

15、下面的哪一个保留字不能作为函数的返回类型()

A. void

B. int

C. new

D. 1ong

16、函数原型声明语句正确的是()

A. int Function(void a);

B.void Function (int);

C. int Function(a);

D.void int(double a);

17、若有定义int x=0,*p=&x;,则语句cout<<*p;的输出结果是( )

A. 随机值

B. 0

C. x的地址

D. p的地址

18、若有 i=3 则表达式(i++)+(++i)+(i++)的值是()

A. 9 B.12 C. 15 D. 视具体情况,不确定

19、求一个字符串的长度时,选用()函数

A. strlen()

B. strcap()

C. strcat()

D. strcmp()

20、假定变量n定义为“int n=5;”,则定义指针变量p的正确语句为()

A. int p=&n;

B. int *p=&n;

C. int &p=*n;

D. int *p=n;

二、(本题满分30分,每空2分)填空题 说明:将答案写入空格处

1、C ++语言中的每条基本语句以________作为结束符,每条复合语

句以 ________作为结束符

2、结构化程序设计三种基本结构为顺序结构、选择结构、

3、假定x=5,y=6,则执行表达式y*=x 计算后,x 和y 的值分别

为__________和_________

4、int a[9]; 则a 数组的下标范围是

5、在C++中存储字符串”a +b=c”至少需要________个字节

6、假定x 和y 为整型,其值分别为15和3,则x%y 的值为__________

7、在C++中存储字符串”a+b=c ”至少需要________个字节

8、若需要把一个字符串”boy ”赋值到字符数组b 中,则需要执行

________函数的调用来实现

9、重载一个函数的条件是:该函数必须在参数的个数或参数的

________上与其它同名函数有所不同

10、C++提供的预处理命令有 ,条件编译和文件包含

11、已知语句“cout<

的输出结果为__________

12、从一条函数原型语句“int fun1(void);”可知,该函数的返回类

型为______该函数带有______个参数。

三、(本题满分10分,每空2分)补充程序题 说明:将答案写入每题后面的空格处

1、打印出2至99之间的所有素数(即不能被任何数整除的数)。

#include

#include

void main()

{

int i,n;

for(n=2; ___(1)___; n++) {

int temp=int(sqrt(n)); //求出n的平方根并取整

for(i=2; ___(2)___; i++)

if(n%i==0) ___(3)___;

if(i>temp) cout<

}

cout<<'\n';

}

(1)

(2)

(3)

2、以下程序是用来计算小于16的整数的阶乘,请补充完整

#include

using namespace std;

(1) =16;

int main()

{

double fac[ArSize];

fac[1] =fac[0] =1.0;

for(int i=2;i

(2)

return 0;

}

(1)

(2)

四、(本题满分20分,每题10分)编程题

1、编写程序求长方形面积。要求长方形的长和宽由键盘输入,输出该长

方形的面积;

2、求n!。要求n的值由键盘输入,输出n!的值。

试卷2 参考答案

一、(本题满分40分,每题2分)单项选择题

DAACA DDCDA

BBAAC BBDAB

二、(本题满分30分,每空2分)填空题

1、;(或分号) }

2、循环结构

3、5 30

4、0-8

5、6

6、0

7、6

8、strcpy

9、类型10、宏定义

11、ple 12、int 0

三、(本题满分10分,每空2分)补充程序题

1、(1)n<=99(或n<100)

(2)i<=temp

(3)break

2、(1)#define ArSize

(2)fac[i]=fac[i-1]*i

四、(本题满分20分,每题10分)编程题

1、

#include “iostream”

Using namespace std;

int main() ----------------------1分{ int x,y,area; ----------------------2分cout<<”please input length(x) and width(y):”;

cin>>x>>y; ----------------------2分

area=x*y; ---------------------2分

cout<<”area=”<

return 0; --------------------1分

}

2、

#include “iostream”

Using namespace std;

int main() --------------------------1分{ int i,n,sum=1; -------------------------2分cout<<”please input n:”;

cin>>n; ---------------------------1分for(i=1;i<=n;i++)

sum=sum*i; --------------------------4分cout<<”n!=”<

试卷3

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语言练习题(带答案)-绝对经典题目不看后悔

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语言编程试题

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语言编程的题目及答案整理

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章 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语言数组典型试题设计含答案

一.选择题(2*20) 【题1】在C 语言中,引用数组元素时,其数组下标的数据类型允许是。A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 【题2】以下对一维整型数组a 的正确说明是。 A)int a(10); B)int n=10,a[n]; C)int n; D)#define SIZE 10 scanf(“%d”,&n); int a[SIZE]; int a[n]; 【题3】若有说明:int a[10];则对a 数组元素的正确引用是。 A)a[10] B)a[3.5] C)a(5) D)a[10-10] 【题4】在C 语言中,一维数组的定义方式为:类型说明符数组名; A)[整型常量表达式] B)[整型表达式] C)[整型常量] 或[整型表达式] D)[常量] 【题5】以下能对一维数组a 进行正确初始化的语句是。 A)int a[10]=(0,0,0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]=”10*1”; 【题6】以下对二维数组a 的正确说明是。 A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); 【题7】若有说明:int a[3][4];则对a 数组元素的正确引用是。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) 【题8】若有说明:int a[3][4];则对a 数组元素的非法引用是。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 【题9】以下能对二维数组a 进行正确初始化的语句是。 A)int a[2][]={{1,0,1},{5,2,3}}; B)int a[][3]={{1,2,3},{4,5,6}}; C)int a[2][4]={{1,2,3},{4,5},{6}}; D)int a[][3]={{1,0,1},{},{1,1}}; 【题10】以下不能对二维数组a 进行正确初始化的语句是。 A)int a[2][3]={0}; B)int a[][3]={{1,2},{0}}; C)int a[2][3]={{1,2},{3,4},{5,6}}; D)int a[][3]={1,2,3,4,5,6};

C语言面试题(经典全)

1.static有什么用途?(请至少说明两种) 1)限制变量的作用域 2)设置变量的存储域(堆,主动分配内存也是堆) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在栈 6.堆栈溢出一般是由什么原因导致的? 堆栈溢出一般是循环的递归调用导致的,如果使用的大数据结构的局部变量,也可能导致堆栈溢出。没有回收垃圾资源导致的是内存泄露最后内存耗尽。 20.不能做switch()的参数类型是: switch的参数不能为实型。(只能是int char) 9.写出float x 与“零值”比较的if语句。 if(x<0.000001&&x>-0.000001)

3.在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么? 函数名: atol 功能: 把字符串转换成长整型数 函数的原型: long atol(const char *nptr); 程序例: #include #include int main(void) { long l; char *str = "98765432"; l = atol(lstr); printf("string = %s integer = %ld\n", str, l); return(0); } 1.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现? c用宏定义,c++用inline

c语言经典面试题

C语言面试题大汇总之华为面试题 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个编写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错. 4、请写出下列代码的输出内容 #include int main(void) { int a,b,c,d; a=10;

c=++a; d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; } 答:10,12,120 5、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 答: 1) 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。 2) 从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。3) static函数与普通函数作用域不同,仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对

C语言编程练习试题绝对经典

? 马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭 共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、 女人和小孩各有几人? 解方程组 编写程序,采用穷举法求出结果。 ? 编写程序,根据以下公式求e 的值。要求用两种方法计算: 1) for 循环,计算前50项 2)while 循环,直至最后一项的值小于10-4 ? 从键盘中输入一个数字(不限位数),用循环语句编程判断并输出这个数字的位数。 ? 猴子吃桃子问题。猴子第一天摘下若干个桃,当即只一半,又多吃一个。第二天早上又将剩下 的一半吃掉一半,双多吃一个。以后每天早上都吃了前天剩下的一半零一个,到第10天早上 只剩下最后一个桃。问第一天摘了几个桃。 ? 编程打印九九乘法表 ? 青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(去掉一个最高分和 一个最低分)。 ? 从键盘中输入一个数字(可以包含小数点,其位数在60位以下,求其整数的有效位数,如输入 0123.456,返回值为整数有效位数为3) 1) 输入数据为浮点型,不用数组,不用字符串,只有变量的算术运算实现此功能。 2) 使用数组来进行编程。 ? 使用数组,编写一个十进制正整数转换为任意进制数的转换工具。 (大进制向小进制的转换。(方法是相除去余) 10进制327转八进制: 327/8 = 40 余数为7 40/8 = 5 余数为0 于是八进制数为507(第一位5是最后的商)) ? 使用数组,编写一个任意进制正整数转换为十进制的转换工具。(以2,10进制互转为例,其 他请举一反三: 二进制数1101转十进制: 1×2的三次幂+1×2的二次幂+0×2的一次幂+1×2的零次幂=8+4+0+1=13) ? 10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12,2,8,22,16,4,10,6, 14,20。然后按下列规则调整,所有小孩同时把自己的糖果分一半给右边的小孩,糖块数变为 奇数的人,再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块。 11111111!2!3!4!5!!e n ≈++++++??????+

C语言经典题目

C语言经典题目 一、舍罕王的失算——不可忽视的和与积 1 舍罕王的失算 ,,,,,,,,,,,,,,,,,,,, 2 分数不等式 3 阶乘与阶乘和数 4 综合高精度计算 5 个人所得税计算 6 大奖赛现场统分 7 图形点扫描 二、勾股数——古老文明的精华 8 最大公约数与最小公倍数 9 水仙花数 10 勾股数 ,,,,,,,,,,,,,,,,,,,,,, 11 完全数 12 相亲数 13 守形数 三、素数——上帝用来描写宇宙的文字 14 素数 15 乌兰现象 16 孪生素数 .17 梅森尼数 18 金蝉素数 19 素数多项式 20 等差素数列 21 验证歌德巴赫猜想

22 合数世纪探求 四、桥本分数式——优美的智慧 23 逆序乘积式 24 巧妙的三组平方 25 完美和式 26 完美乘积式 27 完美综合运算式 28 桥本分数式 29 埃及分数式 五、斐波那契序列——递推的学问 30 分数序列 31 斐波那契序列与卢卡斯序列 32 幂序列 33 双关系递推数列 34 基于2x+3y的递推数列 35 汉诺塔问题 36 猴子吃桃 37 猴子爬山 38 购票排队 *39 神秘的数组 六、韩信点兵——远古的神机妙算 40 破解数字魔术 41 鸡兔同笼与羊犬鸡兔问题 42 百鸡问题 43 韩信点兵 44 整币兑零 *45 解佩尔方程 七、泊松分酒——奇妙的分解 46 分解质因数 47 积最大的整数分解 48 整数的拆分

49 整数的分划 50 泊松分酒 *51 西瓜分堆 *52 水手分椰子 *53 矩形的优化剪切 八、角谷猜想——精巧的转化 54 分数化小数 55 数制转换 56 角谷猜想 57 黑洞数495与6174 58 回文数 九、幻方——古今中外的数阵奇葩 59 杨辉三角 60 数字三角形 61 折叠方阵与旋转方阵 *62 幻方 *63 三阶素数方阵 64 可逆素数方阵 十、插入乘号——决策的最优化 65 删除中的最值问题 *66 最长公共子序列 67 古尺神奇 68 数码珠串 *69 数阵中的最优路径 *70 插入乘号问题 71 智能甲虫的安全点 72 点的覆盖圆 十一、尾数前移——运算模拟的典范 73 均位奇观探索 74 多少个1能被2009整除 75 01串积问题 76 连写数整除问题

C语言上机考试经典试题(3套)

四川省普通高等学校计算机应用知识和能力 第二十八次等级考试 二级(C与C++语言) 笔试试卷 时间: 2008年4月19 日 上午9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。( 1 ) 2. 数据在计算机内存中的表示是指数据的存储结构。( 2 ) 3. Windows是多用户多任务操作系统。( 3 ) 4. 能影响中断响应次序的技术是中断优先级和中断屏蔽。( 4 ) 5. 链表可以随机访问任意一个结点,而顺序表则不能。( 5 ) 6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。( 6 ) 7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。 ( 7 ) 8. 中断控制方式适用于外存同CPU之间进行大量数据交换。( 8 ) 9. 提供没有错误的程序是提高软件的可维护性的基本措施。( 9 ) 10.软件结构是以指令为基础而组成的一种控制层次结构。( 10 ) 二、选择题(每小题1分,共5分) 1. 数据流图是用于描述结构化方法中(11 )工作阶段的工具。 11 (A) 可行性分析(B) 程序编码 (C) 详细设计(D) 需要分析 2. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能的出栈序列是(12 )。 12 (A) 1,4,3,2 (B) 3,1,4,2 (C) 2,3,4,1 (D) 3,4,2,1 3. 任何两个并发进程之间(13 )。 13 (A) 可能存在同步或互斥关系(B) 一定存在同步关系 (C) 一定彼此独立无关(D) 一定存在互斥关系 4. 以下的哪个特征不是分时操作系统的主要特征(14 )。 14 (A) 分时性(B) 独占性 (C) 交互性(D) 多路性 5. 需求分析中开发人员主要从用户那里了解(15 )。 15 (A) 软件的维护(B) 软件的结构 (C) 软件做什么(D) 软件的测试

(完整版)C语言100个经典题目

C语言程序设计习题 授课对象:信息奥赛辅导成员 授课时间: 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔 子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数 为多少? __________________________________________________________________ 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21…. ___________________________________________________________________ 程序源代码: main() { long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i++) { printf(“%12ld %12ld”,f1,f2); if(i%2==0) printf(“\n”);/*控制输出,每行四个*/ f1=f1+f2;/*前两个月加起来赋值给第三个月*/ f2=f1+f2;/*前两个月加起来赋值给第三个月*/ } } 上题还可用一维数组处理,you try! 题目:判断101-200之间有多少个素数,并输出所有素数。 __________________________________________________________________ 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 ___________________________________________________________________ 程序源代码: #include “math.h” main() { int m,i,k,h=0,leap=1;

C语言经典面试题目集锦

1.前言 2.声明和初始化 2.1我如何决定使用那种整数类型? 2.264位机上的64位类型是什么样的? 2.3怎样定义和声明全局变量和函数最好? 2.4extern在函数声明中是什么意思? 2.5关键字auto到底有什么用途? 2.6我似乎不能成功定义一个链表。我试过typedef struct{char*item;NODEPTR next;}*NODEPTR;但是编译器报了错误信息。难道在C语言中一个结构不能包含指向自己的指针吗? 2.7怎样建立和理解非常复杂的声明?例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组? 2.8函数只定义了一次,调用了一次,但编译器提示非法重定义了。 2.9main()的正确定义是什么?void main()正确吗? 2.10对于没有初始化的变量的初始值可以作怎样的假定?如果一个全局变量初始值为``零",它可否作为空指针或浮点零? 2.11代码int f(){char a[]="Hello,world!";}不能编译。 2.12这样的初始化有什么问题?char*p=malloc(10);编译器提示``非法初始式"云云。 2.13以下的初始化有什么区别?char a[]="string literal";char*p="string literal";当我向p[i]赋值的时候,我的程序崩溃了。 2.14我总算弄清除函数指针的声明方法了,但怎样才能初始化呢? 3.结构、联合和枚举 3.1声明struct x1{...};和typedef struct{...}x2;有什么不同? 3.2为什么struct x{...};x thestruct;不对? 3.3一个结构可以包含指向自己的指针吗? 3.4在C语言中实现抽象数据类型什么方法最好? 3.5在C中是否有模拟继承等面向对象程序设计特性的好方法? 3.6我遇到这样声明结构的代码:struct name{int namelen;char namestr[1];};然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素。这样合法和可移植吗? 3.7是否有自动比较结构的方法? 3.8如何向接受结构参数的函数传入常数值? 3.9怎样从/向数据文件读/写结构? 3.10我的编译器在结构中留下了空洞,这导致空间浪费而且无法与外部数据文件进行"二进制"读写。能否关掉填充,或者控制结构域的对齐方式? 3.11为什么sizeof返回的值大于结构的期望值,是不是尾部有填充? 3.12如何确定域在结构中的字节偏移? 3.13怎样在运行时用名字访问结构中的域? 3.14程序运行正确,但退出时却``core dump''了,怎么回事? 3.15可以初始化一个联合吗?

C语言经典算法题目及答案

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) printf("%d,%d,%d\n",i,j,k); } } ============================================================== 【程序2】 题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03;

C语言试题库(完整版).docx

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)若有代数式3 ae/bc ,则正确的C语言表达式是A、 a/b/c*e*3

C语言经典题目

C语言经典问题50题 1.歌星大奖赛选手最后得分统计 在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现选手最后得分。 2.求最大数 求一个正整数(如666666)的约数中最大的三位数是多少? 3.高次方数的尾数 如求13的13次方的最后三位数。 4.借书方案知多少 小张有五本新书,要借给A,B,C三位朋友,若每人每次只能借一本,则可以有多少种不同的借法? 5.在屏幕上显示杨辉三角形(六行杨辉三角形如下) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 6.该存入银行多少钱 假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱,他打算在今后的五年中的每年年底取出1000元,到第五年时刚好取完,请算出他现在应存入银行多少钱。 7.怎样存钱利息最多 假设银行整存整取存款不同期限的月息利率分别为: 0.63% 期限=1年 0.66% 期限=2年 0.69% 期限=3年 0.75% 期限=5年 0.84% 期限=8年 利息=本金*月息利率*12*存款年限。 现在某人手中有2000元钱,请通过计算选择一种存钱方案,使得钱存入银行20年后得到的利息最多(假定银行对超过存款期限的那一部分时间不付利息)。 8.请问他们合伙至少捕了多少条鱼? A、B、C、D、E五个人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。C、D、E依次醒来,也按同样的方法拿走鱼。请问他们合伙至少捕了多少条鱼?

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、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3) 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 详见教材P52~53. %为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1;5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1; /为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2 11.如果int a=3,b=4;则条件表达式"a

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