C语言综合练习题.docx

上传人:b****5 文档编号:6858149 上传时间:2023-01-11 格式:DOCX 页数:28 大小:36.89KB
下载 相关 举报
C语言综合练习题.docx_第1页
第1页 / 共28页
C语言综合练习题.docx_第2页
第2页 / 共28页
C语言综合练习题.docx_第3页
第3页 / 共28页
C语言综合练习题.docx_第4页
第4页 / 共28页
C语言综合练习题.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C语言综合练习题.docx

《C语言综合练习题.docx》由会员分享,可在线阅读,更多相关《C语言综合练习题.docx(28页珍藏版)》请在冰豆网上搜索。

C语言综合练习题.docx

C语言综合练习题

《C语言程序设计》综合练习题

一、单项选择题

1.下列(D)是字符串比较函数。

A.puts()B.gets()C.strcpy()拷贝字符串D.strcmp()比较字符串

2.构成一个完整的C源程序必须有且只有一个(C)。

A.函数B.过程C.主函数intmainD.程序

3.设有inti,j,k;则表达式i=1,j=2,k=3,i&&j&&k的值为(A)。

A.1B.2C.63D.0

4.在C语言中,不同类型数据混合运算时,要先转化成同一类型后进行运算。

设一表达式中包含有int、long、unsigned、char类型的变量和数据,则表达式最后的运算结果是(D )类型数据。

A.intB.charC.unsignedD.long

5.下列(D)不是构成标识符的字符。

A.字母B.数字C.下划线D.标点符号

6.表达式:

3>5&&-1||6<3-!

-1的值是(A)。

A.0B.1C.表达是不合法D.均不对

7.以下标识符中能做为合法的C用户标识符的是(D)。

A.A3+B3B.floatC.3dxD.x3d

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

A.0.0B.3E2.7C.9861D.0xabcd

9.fp=fopen(''test.txt",''r'');语句中,r对文件处理方式是(A)。

A.只读打开文件B.只写打开文件

C.追加打开文件D.读写打开文件

10.表示关系x<=y<=z的C语言表达式为(A)

A.(x<=y)&&(y<=z)B.(x<=y)and(y<=z)

C.(x<=y)&(y<=z)scanf后才加&D.(x<=y<=z)

11.如果要把常量327存入变量a中,a不能定义的类型是(B)。

A.intB.char字符串C.longD.float

12.在变量的存储结构中,(B)局部变量的初始化只有一次。

A.自动B.静态C.外部D.寄存器

13.下列能正确进行字符串赋值操作的语句是(C)。

A.chars[5]={"ABCDE"};B.chars[5]={'a','b','c','d','e'}

C.char*s;s="abcde";D.char*s;scanf("%s",s);

14.语句if(3/4>1/2)a=1;elsea=0;运行后,a的值是(A)。

A.1B.0C.与机器有关D.语法有错

15.下列(C)是合法自定义标识符。

A.3maB.floatC.m3aD.–ab

16.设a,b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是(D)

A.'a'&&'b'B.a<=b

C.c>=b||b+c&&b-cD.a<=b+c&&c>=a+b

17.判断整型变量i,j可同时被2整除的表达式(i,j同时被2整除返回1,否则返回0)是(B)。

A.!

(i%2)||!

(j%2)B.!

(i%2)&&!

(j%2)

C.(i%2)&&!

(j%2)D.(i%2)||(j%2)

18.若x,y均为double型变量,正确的输入函数调用是(C)。

A.scanf("%f%f",&x,&y);B.scanf("%d%d",&x,&y);

C.scanf("%lf%lf",&x,&y);D.scanf("%lf%lf",x,y);

19.设变量均为整型,表达式(a=2,b=5,a>b?

a++:

b++,a+b)的值是(B)。

(如果是真的就执行问好后面的,是假的就执行冒号后面的)

A.7B.8C.9D.2

20.当执行以下程序段时(D)。

x=-1;

Do{x=x*x;}while(!

x);

A.循环体将执行一次B.循环体将执行两次

C.循环体将执行无限次D.系统将提示有语法错误

21.执行下列程序段后,a值为(B)。

a=1;b=0;

if((a++>++b)?

a++;b--)a+=b;(++a本身不变)

A.2B.3C.4D.5

22.若x为char型变量,y为int型变量,x,y均有值,正确的输出函数调用是(A)。

A.printf("%c%c",x,y);B.printf("%c%s",x,y);

C.printf("%f%c",x,y);D.printf("%f%d",x,y);

23.假定a和b为int型变量,则执行以下语句后b的值为(D)。

a=1;b=10

do

{b-=a;a++;

}while(b--<0);

A.9B.-2C.-1D.8

24.设有说明语句:

intx=43,y=0;charch='A';,则表达式(x>=y&&ch<'b'&&!

y)的值是(C)。

A.0B.语法错C.1D.假

25.假定a和b为int型变量,则执行以下语句后b的值为(D)。

a=1;b=10;

do

{b-=a;a++;

}while(b--<0);

A.9B.-2C.-1D.8

26.下列不正确的转义字符是(C)。

A.'\\'B.'\''C.'074'D.'\0'

27.已知字符'b'的ASCII码为98,语句printf(''%d,%c'','b','b'+1);的输出为(D)。

A.98,bB.语句不合法C.98,99D.98,c

28.下列(B)说法,是对“int*p;”正确解释。

A.定义p是整型变量B.定义p为指向整型变量的指针变量

C.定义p为数组名D.定义p的内容为整形地址

29.以下各组运算符中,优先级最高的运算符是(B)。

A.<=B./C.!

=D.&&

30.表示关系x<=y<=z的C语言表达式为(A)。

A.(x<=y)&&(y<=z)B.(x<=y)and(y<=z)

C.(x<=y<=z)D.(x<=y)&(y<=z)

31.下列程序段执行后s值为(C)。

inti=1,s=0;

do{if(!

(i%2))continue;s+=i}while(++i<10);

A.1B.45C.25D.以上均不是

32.若x,y均为int型变量且有值,要输出x,y的值,正确的输出函数调用是(D)。

A.printf("%d%d",&x,&y);B.printf("%f%f",x,y);

C.printf("%f%d",x,y);D.printf("%d%d",x,y);

33.字符串“cprogram”存放在内存中占用字节数为(A)。

A.10B.9C.11D.8

34.下列程序段运行后x的值是()。

A.14B.4C.15D.3

intal=1,a2=2,a3=3,x=15;

if(!

al)x--;

elseif(a3)x=3;

elsex=4;

35.对于inta,则表达式1<=a<=5值是(D)。

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

36.变量的存储类型有四种。

下列()的存取速度最快。

A.自动变量B.静态变量

C.外部变量D.寄存器变量

37.假定a和b为int型变量,则执行以下语句后b的值为()。

a=1;b=10;

do

{b-=a;a++;}

while(b--<0);

A.9B.-2C.-1D.8

38.设有以下程序段:

intx=0,s=0;

while(!

x!

=0)s+=++x;

printf("%d",s);

则()。

A.运行程序段后输出0

B.运行程序段后输出1

C.程序段中的控制表达式是非法的

D.程序段执行无限次

39.设x和y均为int型变量,则执行以下语句后的输出为()。

x=15;y=5;printf("%d\n",x%=(y%=2));

A.0B.1C.6D.12

40.已知字母a的码值为十进制97,数字0的码值为十进制48,下面程序的输出是()。

A.输出无定值B.e,4C.101,52D.e,52

#include

intmain()

{charc1,c2;

c1='a'+'6'-'2';

c2='b'-'a'+'3';

printf("%c,%d\n",c1,c2);

return0;

}

41.若x和y都是int型变量,x=100,y=200,则下列程序段:

printf(''%d'',(x,y));的输出结果是()。

A.200B.100

C.100200D.输出格式符不够,输出不确定的值

42.假设定义数组:

floatscore[10];并且其地址为2000,则元素score[5]的地址为()。

A.2005B.2010C.2015D.2020

43.假定p所指对象的值为25,P+1所指对象的值为46,则*(++p)的值为()。

A.26B.25C.46D.47

44.若i为整型变量,则以下循环执行的次数是()。

For(i=2;i==0;)printf(''%d'',i--)

A.无限次B.0次C.1次D.2次

45.设C语言中,一个int型数据在内存中占2个字符,则unsignedint型数据的取值范围为()。

A.0~255B.0~32767C.0~65535D.0~2147483647

46.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数时,正确的数据输入方式是()。

inta1,a2;charc1,c2;

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

A.10A20BB.10A20B

C.10A20BD.10A20B

47.阅读以下程序,当输入数据的形式为25,13,10正确的输出结果为()。

#include

intmain()

{intx,y,z;

scanf("%d%d%d",&x,&y,&z);

printf("x+y+z=%d\n",x+y+z);

return0;

}

A.x+y+z=48B.x+y+z=35C.x+z=35D.不确定值

48.表示图中坐标轴上阴影部分的正确表达式是()。

(其中a

 

A.(x<=a)&&(x>=b)&&(x<=c)B.(x<=a)||(b<=x<=c)

C.(x<=a)||(x>=b)&&(x<=c)D.(x<=a)&&(b<=x<=c)

49.设有以下程序段:

intx=0,s=0;

while(!

x!

=0)s+=++x;

printf("%d",s);

则()。

A.运行程序段后输出0

B.运行程序段后输出1

C.程序段中的控制表达式是非法的

D.程序段执行无限次

二、判断题

1.打开文件的函数是fclose。

()。

2.局部静态变量是在编译时赋初值的,即只赋初值一次。

()

3.C语言中允许使用字符串变量。

()

4.外部变量必须定义在文件的开头部分。

()

5.语句while(!

E);中的表达式!

E等价于E==0。

()

6.实型分类:

单精度、双精度和整型。

()

7.逻辑运算优先级别都低于算术运算。

()

8.函数的形参在退出该函数后是不可见的。

()

9.如果在定义函数时省略extern,则隐含为外部函数。

()

10.定义二维数组时,第一维长度可以省略。

()

11.字符'\0'是字符串的结束标记,其ASCII代码为0。

()

12.若有inti=10,j=0;则执行完语句if(j=0)i++;elsei--;i的值为11。

()

13.continue语句的作用是提前结束整个循环的执行。

()

14.Break语句的作用是提前结束整个循环的执行。

()

15.在定义函数时的参数是“形式参数”,在调用函数时的参数是“实际参数”。

()

16.在函数调用时,实参和形参的变量个数可以不一样多。

()

17.在函数调用时,实参和形参的变量个数一定要一样多。

()

18.若有说明:

inta[][4]={{0},{0}}则二维数组a的第一维大小为0。

()

19.字符串"china"在内存中占据的存储空间是5个字节。

()

20.打开文件的函数是fclose。

()

21.打开文件的函数是fopen()。

22.若有说明:

sraticinta[3][4];则数组a中各元素可在程序的编译阶段得到初值0。

()

23.假设定义数组:

floatscore[10];并且其地址为2000,则元素score[5]的地址为2005。

()。

24.C语言的基本单位是函数。

()

25.已知字符'b'的ASCII码为98,语句printf(''%d,%c'','b','b'+1);的输出为:

98,99。

()

26.从变量的作用域来分,变量可以分为静态变量和动态变量。

()

27.若用数组名作为函数调用时的实参,则实际上传递给行参的是数组的第一个元素值。

()

28.结构体和数组一样,它们的成员都是相同类型数的集合。

()

29.调用strlen("abc\0ef\0g")的返回值为8。

()

三、填空题

1.如果希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,就应该指定它为静态局部变量,用static进行声明。

2.结构化程序设计方法中,程序有三种基本结构,即:

顺序结构,选择结构和循环结构。

3.若inti=8,j=9;floatx=123.456;printf(''x=%8.3f,j=%-4d\n'',x,j);结果为:

4.设C环境下一个int型数据占用2个字节,设inta[4]={1,2,3,4},*p=a;其中a=2000;则*p=,p+1=,*(p+2)=。

5.在C语言中,表示逻辑“假”值用。

6.设C环境下一个int型数据占用2个字节,设inta[5]={5,4,3,2,1},*p=a;其中a=2000;则*p=,p+3=,*(p+2)=。

7.用户定义函数体部分一般分为和两部分。

8.用下列for循环将大写字母逆序输出(即从Z到A),其语句为:

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

9.C语言中函数的参数分为和。

10.用户自己建立的由不同类型数据组成的组合型的数据结构称为类型,它的名字是由一个关键字和组合而成。

11.建立并运行C程序的最简步骤为_,和

12.转义字符“\n”表示。

13.直接或间接调用自身的函数称为函数。

14.int*p和int**p;含义分别是和

15.语句printf("%d%d",123);将输出:

16.转义字符“\n”表示。

17.C语言中,表示逻辑“真”用:

表示,逻辑“假”用:

表示。

18.表达式12345===12345/3*3的值为____。

19.若有定义:

intm=5,y=2;则执行表达式y+=y-=m*=y后的y值是。

20.已知inta=4,b=20,x=3;则:

(1)a+x*(int)(2.5/0.7)的值为:

(2)(a+3)/3+a%b的值为:

(3)x*=5+4的值为:

21.用数组元素作实参时,向形参变量传递的是,而用数组名作函数实参时,向形参传递的是。

22.inta=10,b=15,c=1,d=2,e=0,则下列表达式的运行结果是:

(1)!

e

(2)c==b>e

(3)(b==10)&&(a==10)

(4)(a+5==b)||((c=b+a)>(d=c+b))

23.表达式4>10?

(5>3?

(4,2):

3):

(6,7)的值为。

24.在C语言中,逻辑“真”值用表示。

25.strcat(ch1,ch2)的功能是:

26.strlen("Guangzhoutvu")的值为

27.若有定义:

doublex[3][5];则数组中行下标的下限为,列下标的上限为

28.写出i小于0或大于10时为真的表达式:

29.一个函数由两部分组成,即:

和。

30.数组元素的相关性表现在它们具有相同的和。

31.以下程序实现输出x,y,z三个数中的最大者,请在【】内填入正确内容。

#include

main()

{

intx=4,y=6,z=7;

int【①       】;

if(【②       】)

u=x;

else

u=y;

if(【③       】)

v=u;

else

v=z;

printf("v=%d",v);

}

32.在C语言中用代表“假”,用代表“真”。

但只要则都认为是“真”。

33.用来引用特定数组元素的数字称为。

34.一个C程序总是从开始执行的。

35.下面程序的功能是用公式

+

+

+……+

求π的近似值,直到最后一项的值小于10

为止。

请填空。

#include

#include

intmain()

{

longi=1;

【①         】pi=0;

while(i*i<=1e+6)

{pi=【②       】;i++;}

pi=sqrt(6.0*pi);

printf("pi=%10.6f/n",pi);

}

36.若所用变量已正确定义,写出下列FOR循环的次数为:

a=2,b=10;

for(i=b;i>=a;i--,a++)

printf("%3d",i);

37.用下列for循环将大写字母逆序输出(即从Z到A),其语句为:

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

38.一个源文件可以包含一个或者若干个函数。

在函数内定义的变量是,而在函数之外定义的变量称为。

变量是全局变量。

39.C语言中根据数据的组织形式,可以将文件分为和。

40.要把一个外部变量只限制于被本文件使用,而不被其他文件引用,必须在定义这个外部变量时加一个。

41.写出下列程序段的运行结果:

s=7;

while(--s)

s-=2;

printf("s=%d\n",s);

42.C语言规定:

在每一个字符串的结尾加上一个,以便系统据此判断字符是否结束。

43.break语句只能用在语句或语句中。

44.Continue语句只能用在_____语句中。

45.结构化程序设计方法中,程序有三种基本结构,即:

,和

46.设有inta,b;当执行输入函数scanf(“%d:

%d”,&a,&b);时正确的输入是。

(给a输入5,给b输入8)。

四、问答题

1.请阅读下面的程序:

#include

intmain()

{intcal(inta,intb,charop);

intx,y,z,result;

charop1,op2;

scanf("%d%c%d%c%d",&x,&op1,&y,&op2,&z);

if(op1=='+'&&op2=='*')

result=cal(x,cal(y,z,op2),op1);

else

result=cal(cal(x,y,op1),z,op2);

printf("%d\n",result);

return0;

}

intcal(inta,intb,charop)

{

if(op=='*')

return(a*b);

else

return(a+b);

}

问题1:

当输入2+3*5时,上述程序将输出。

问题2:

把op1=='+'&&op2=='*'中的op1,op2对调后,当输入为2+3*5时,上述程序将输出。

2.试阐述'x'和"x"的区别。

3.写出以下程序的运行结果。

#include"stdio.h"

intmain()

{

structstu_list

{

intnum;

char*name;

}sl={34,"sun"};

printf("Number=%d\tName=%s\n",sl.num,sl.name);

return0;

}

该程序的运行结果为:

4.假设有以下程序段:

inta[10];

……

a[10]=3;

……

试分析两个a[10]的区别。

五、阅读程序题

1.以下程序的执行结果是。

#include

intmain()

{

intfunc(inta,intb);

intk=4,m=1,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

printf("%d\n",p);

return0;

}

func(inta,intb)

{

staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

2.该程序运行结果为:

#include"stdio.h"

intmain()

{

inta[5]={1,2,3,4,5},*p,i;

p=a;

printf("%d\t%d\t%d\n",a[3],*p,*(p+2));

p++;

printf("%d\t%d\n",*p,a[3]);

return0;

}

3.以下该程序运行结果为:

#include"stdio.h"

intmain()

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 艺术创意

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1