您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页C语言期末复习资料

C语言期末复习资料

来源:华佗小知识


一、 单项选择题

1、在C语言中,要求操作数必须是整型的运算符是( )。

A、/ B、+ C、!= D、%

2、C语言程序是由( )组成的。

A、函数 B、子程序 C、过程 D、主程序和子程序

3、以下叙述正确的是( )。

A、在C程序中,main()函数必须位于程序的最前面

B、C程序的每一行中只能写一个语句

C、在对一个C程序进行编译时,可发现注释中的拼写错误

D、C语言本身没有输入输出语句

4、一个C程序的执行是从( )。

A、本程序的main函数开始,到main函数结束

B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C、本程序的main函数开始,到本程序文件的最后一个函数结束

D、本程序文件的第一个函数开始,到本程序main函数结束

5、语句while(!n)中的条件!n等价于( )。

A、n==0 B、n==1 C、n!=1 D、n!=0

6、实参和和形参之间的数据传送是( )。

A、地址传送 B、实参传给形参,再由形参传给实参

C、单向值传送 D、由用户指定传送方式

7、下列自定义标识符中,符合C语言规定的是( )。

A、for B、3a C、*a D、_123

8、以下叙述错误的是( )。

A、for循环需要循环变量,while/do-while不需要循环变量

B、for循环、while循环先判断后执行

C、do-while循环总是至少执行一次

D、for、while、do-while循环的循环体均可为空语句

9、C语言标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )。

A、必须是字母 B、必须为下划线

C、必须为字母或下划线

D、可以是字母、数字或下划线中任一字符

10、下列整数值中,不正确的八进制或十六进制的是( )。

A、0x18 B、016 C、086 D、0x5C

11、若有定义:int a,b;则表达式:(a=2,b=5,b++,a+b)的值是( A、2 B、6 C、7 D、8

12、对于int a=6;表达式1<=a<=5的值是( )。

A、0 B、1 C、不定 D、表达式有语法错误

13、执行下面的程序片段,描述正确的是( )。

int x=-1;

do { x=x*x; } while(!x);

A、是死循环 B、循环执行两次

C、循环执行一次 D、语法错误

14、C语言中的语句需要符号( )作为结尾。

A、: B、; C、 。 D、//

15、下列关于单目运算符++、--的叙述中正确的是( )。

A、它们的运算对象可以是任何变量和常量

B、它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C、它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D、它们的运算对象可以是char型变量、int型变量和float型变量

16、以下程序的输出结果是( )。

main()

{ int a=8,b=8;

printf(“%d %d\\n”,--a,++b);}

A、7 7 B、8 8

C、7 8 D、7 9

17、设a和b均为double型变量,且a=5.5,b=2.5,则表达式 (int)a+b/b是( )。

A、6.500000 B、6 C、5.500000 D、6.000000

18、设x,y 和z是int型变量,且x = 3,y= 4,z= 5,则下面表达式中值为0的是( )。

A、 'y'&&'y' B、 x < =y C、x||(y+z)&&(y-z) D、!(x19、结构化程序设计规定的三种基本控制结构是( )。

A、输入、处理、输出 B、顺序、选择、循环

C、树形、网形、环形 D、主程序、子程序、函数

20、若x 为int型变量,则执行语句x=10; x+=x=0x-x后,x的值为_______。

A、0 B、10 C、20 D、30

21、执行下面的程序片段,描述正确的是( )。

int k=5;

while(k==1) k--;

A、while循环执行四次 B、循环体执行一次

C、循环体一次也不执行 D、死循环

22、在以下函数调用语句中,函数fun1参数的个数为( )。

fun1(x,y,fun2(a,b));

A、3 B、4 C、5 D、编译出错

23、 在C程序中,x + y是_______、x + y;是_______。

A)表达式、语句 B)表达式、表达式

C)语句、语句 D)语句、表达式

24、使用语句scanf(\"a=%f,b=%d\输入数据时,正确的数据输入是(A、a=4.5,b=3 B、a=4.5 b=3

C、4.5 3 D、4.5,3

。 )

25、判断char型变量ch是否为大写字母的正确表达式是( )。

A、‘A’<=ch<=‘Z’ B、(‘A’<=ch) AND (‘Z’>= ch)

C、(ch>=‘Z’)&(ch<=‘Z’) D、(ch>=‘A’)&&(ch<=‘Z’)

26、在下列选项中,不正确的赋值语句是 。

A、s=++t; B、n1=(n2=(n3=0)); C、k=i==j; D、b+c=1;

27、假设变量a是整型,b是实型,c是双精度型,则表达式30+a+c*b的值的数据类型是 。

A、int B、float C、double D、不确定

28、执行下列程序片段时输出结果是( )。

int x=13,y=5;

printf(“%d”,x%=(y/=2));

A、3 B、2 C、1 D、0

29、若有下列语句:

char c=‘A’ ;

printf(“%d”,c);

则输出的结果是( )。

A、c B、A C、65 D、错误的语句

30、下列函数中能够向终端输出一个字符或字符型变量值的是( )。

A、gets B、puts C、putchar D、getchar

31、能正确表示\"当x 的取值在[1,10]或[200,210]范围内为真,否则为假\"的表达式是 。

A、(x>=1) &&(x<=10) &&(x> = 200) &&(x<=210)

B、(x>=1) || (x<=10) ||(x>=200) ||(x<=210)

C、(x>=1) &&(x<=10)||(x>= 200) &&(x<=210)

D、(x > =1)||(x< =10) && (x> = 200)||(x<=210)

32、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,正确的数据输入方式是( )。

int a1,a2; char c1,c2;

scanf(“%d%c%d%c”,&a1, &c1,&a2, &c2);

A、10A 20B (回车)

B、10 A 20 B (回车)

C、10 A20 B (回车)

D、10A20 B (回车)

33、下列运算符中优先级最高的是 。

A、< B、 十 C、&& D、!=

34、对于int a=4;表达式1<=a<=5的值是( )。

A、0 B、1 C、不定 D、错误的表达式

35、根据定义和数据的输入方式,输入语句的正确形式为 。

已有定义: float fl,f2;

数据的输入方式:4.52

3.5

A、scanf(\"%f,%f\ B、scanf(\"%f%f\

C、scanf(\"%3.2f%2.1f\、scanf(\"%3.2f%2.1f\

1、下列有关C程序的说法错误的是( B )。

A)一个C程序的执行总是从main函数开始的。

B)在C程序中,main函数必须位于程序的最前面。C)C语言本身没有提供输入/输出语句。

D)分号是C语言语句不可分割的组成部分。

2、下列有关算法的说法错误的是( B )。

A)为解决一个问题而采用的方法和步骤称为算法。

B)排序算法为数值运算算法。

C)算法的每个步骤应具有确定性和有效性。

D)一个算法应有一个或多个输出。

3、下列选项中不符合C语言语法的实型常量的是( )。1.5e2

D

A)-3.14 B)123f C)2.3E5 D)1E2.5

4、已知:char a; int b; float c; 则表达式a+b-c的结果为( D )型。

A)int B)char C)float D)double

5、有以下程序:

#include

void main()

{

char a='a', b;

printf(\"%c\

printf(\"%3c\\n\

}

程序运行后输出结果是( A)b b B)b c A )。

C)a b D)a c

6、设有定义:int a=6,b=3,c=9,d=2; 则表达式aA)1 B)0 C)2 D)6

7、以下程序的输出结果是( D )。

#include

void main()

{

int a=0, i;

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

{

switch(i)

{

case 1:

case 2: a+=3;

case 3: a+=2; break;

default: a+=5;

}

}

printf(\"%d\\n\

}

A)17 B)20 C)25 D)22

8、已知:int i=0,k; 有如下for语句:

for(k=-1;k=1;k++) printf(\"***\\n\");

下面有关语句执行情况的叙述正确的是( A )。

A)构成无限循环 B)循环体执行两次

C)循环体执行一次 D)循环体一次也不执行

9、下面对数组的初始化,不合法的是( A )。

A)int a[2][]={{1},{2,3,4}}; B)int a[4]={1,2,3};

C)char s[]={'\\04','\\0','\\n','\\0'}; D)char s[]=\"abccde\";

10、下列有关字符串处理函数的说法错误的是( C )。

A)strcat()函数可实现两个字符串的连接

B)strcmp()函数用于比较两个字符串的大小

C)用gets()函数可实现调用一次输入多个字符串

D)puts()函数一次只能输出一个字符串

11、在C语言中,引用数组元素时,其数组下标的数据类型允许是( A)整型常量 B)整型常量或整型表达式

C)整型表达式 D)任何类型的表达式

12、下列有关C函数的说法正确的是( B )。

A)main函数是无参函数

B)C函数中,形式参数必须指定确定类型

)。 B

C)C函数既可以嵌套定义,又可以递归调用

D)C函数必须有返回值,否则无法使用

13、下列关于C语言中return语句正确的说法是( C )。

A)只能在主函数中出现 B)在每个函数中必须出现

C)可以在一个函数中出现多次 D)只能在出主函数之外的函数中出现

14、用一维数组名作函数的实际参数,则传递给形式参数的是( C )。

A)数组中元素的个数 B)数组中第一个元素的值

C)数组首元素的地址 D)数组中全部元素的值

15、下列关于C语言全局变量与局部变量的叙述中,错误的是( C )。

A)函数中的形式参数是局部变量

B)全局变量的生存周期是从程序开始到程序结束

C)全局变量的作用域是整个程序范围

D)函数调用结束,函数中动态局部变量释放内存空间,变量值消失

16、下列有关指针的叙述中错误的是( D )。

A)一个变量的地址称为该变量的指针

B)指针变量中只能存放地址

C)指针变量可以进行加、减等算术运算

D)指针变量不占用存储空间

17、设有int a[10],则下列表达式不能表示数组元素a[1]地址的是(A)&a[1] B)a+1 C)&a[0]+1 D)*a+1;

18、下列给指针变量p赋值的方法不合法的是( C )。

A)int i, *p=&i; B)int a[10], *p=a;

C)int i, *p=2000; D)char *str= “I love China”;

19、下述有关结构体的说法正确的是( D )。

A)定义结构体时,其成员的数据类型不能是结构体本身

B)结构体内的成员不能是结构体类型

D )。

C)结构体变量可以整体进行输入和输出

D)结构体变量所占存储空间是各个成员所需存储空间之和

20、设fp已正确定义且执行某文件,当未遇到文件结束标志时函数feof(fp)的值为( A )。

A)0 B)1 C)-1 D)一个非0值

二、填空题

1、一个C语言源程序文件,经编译连接后生成的程序文件扩展名为( .exe 2、仅由顺序、选择、循环结构构成的程序是( 结构化 )程序。

3、表达式a+=a-=a=5的值是( 0 )。

4、C语言中,在程序运行期间,其值不能改变的量称为( 常量 )。

5、C语句分5类,分别是( 控制语句 )、函数调用语句、表达式语句、

复合语句和空语句。

6、设a=3,b=4,c=5,则表达式a+b>c&&b!=c的值为( 1 )。

7、从正整数i中取出个位数字的表达式为( i%10 )。

8、在调用一个函数的过程中又出现直接或间接调用该函数,称为函数的( 递归调用 )。

9、设有以下定义:struct person { int num; char name[10]; } s, *p=&s; 则通过指针p引用s的成员num的形式为( p->num )。 也可以是:(*p).num

10、C语言中,关闭数据文件使用的函数是(三、程序阅读题

1、 #include

main()

{

char ch;

scanf(\"%c\

ch=(ch>='A' && ch<='Z')?(ch+32):ch;

printf(\"%c\\n\

}

fclose( ) 。

2、 #include

main()

{

int n;

for(n=15;n<=21;n++)

{

if(n%3==0||n%2==0)

continue;

printf(\"%5d\

}

}

3、 #include

main()

{

int i,n=0,a[5]={5,2,0,11,1};

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

if(a[i]>a[n])

n=i;

printf(\"%3d\

}

4、 #include

int a=3,b=5;

main()

{

int a=8;

printf(\"max=%d\

}

int max(int a,int b)

{

int c;

c=(a>b)?a:b;

return c;

}

5、#include

main()

{

char *a=\"Chinese!\";

a=a+4;

printf(\"%c\\n\

}

6、main()

{ int a=5,b=4,c=3,d;

d=(a>b>c);

printf(\"%d\\n\

}

该程序执行后的输出结果为

7、#include

main()

{ int i,sum=0;

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

{ if(i%5!=0) continue;

sum+=i;

}

printf(\"%d\\n\

}

写出运行结果:

8、main()

{ int i,sum=0;

for(i=1;i<=3;i++) sum+=i;

printf(“sum=%d\\n”,sum);

}

该程序执行后的输出结果为

9、#include

main()

{ int i,j,sum=0;

for(i=2;i<=20;i++)

{

for(j=2;jif(i%j==0)

break;

if(j==i)

sum+=i;

}

printf(\"%d\\n\

}

写出运行结果:

四、程序设计

1、有如下分数序列:

2358131,2,3,5,8,……

编写程序求出这个数列的前20项之和。

2、有如下函数:

xy2x2x210(x0)(0x10)(x10)

编写程序,从键盘输入x的值,在屏幕上输出相应的y的值。

3、输入10个学生成绩,存入数组score中,按从高到低的顺序输出成绩,并给出平均分。

4、编写程序求1~1000之间能同时被3,5,7整除的数,按每行10个数的格式输出这些数。

5、编程序,输出所有的水仙花数。水仙花数是一个三位数,其各位数字立方和等于该数本身。例如:153=1*1*1+5*5*5+3*3*3 就是一个水仙花数。

6、编写程序实现:使用switch语句实现输入1-7之间的任意数字,输出相应的星期值。例如:输入1,则输出星期一。

7、自定义一函数,求从键盘上输入的3个整数的最大数,然后在主函数中调用该函数。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务