C语言题目.docx

上传人:b****7 文档编号:10598436 上传时间:2023-02-21 格式:DOCX 页数:51 大小:75.44KB
下载 相关 举报
C语言题目.docx_第1页
第1页 / 共51页
C语言题目.docx_第2页
第2页 / 共51页
C语言题目.docx_第3页
第3页 / 共51页
C语言题目.docx_第4页
第4页 / 共51页
C语言题目.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

C语言题目.docx

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

C语言题目.docx

C语言题目

第一章C语言基础知识

1.1选择题

1.以下不是C语言的特点的是(B)。

A.语言简洁紧凑B.能够编制出功能复杂的程序

C.C语言可以直接对硬件操作D.C语言移植性好

2.下列字符序列中,不可用作C语言标识符的是(B)。

A.abc123B.no.1C._123_D._ok

3.不属于C语言关键字的是(D)。

A.intB.breakC.whileD.character

4.是C语言提供的合法关键字的是(B)。

A.FloatB.signedC.integerD.Char

5.一个C程序是由(B)。

A.一个主程序和若干子程序组成

B.一个或多个函数组成

C.若干过程组成

D.若干子程序组成

6.C语言程序的基本单位是(C)。

A.程序行B.语句C.函数D.字符

7.下列说法中,错误的是(A)。

A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号

B.每个函数都有一个函数头和一个函数体,主函数也不例外

C.主函数只能调用用户函数或系统函数,用户函数可以相互调用

D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数

8.以下说法中正确的是(C)。

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

B.在C语言程序中,要调用的函数必须在main()函数中定义

C.C语言程序总是从main()函数开始执行

D.C语言程序中的main()函数必须放在程序的开始部分

9.C编译程序是(C)。

A.C程序的机器语言版本

B.一组机器语言指令

C.将C源程序编译成目标程序

D.由制造厂家提供的一套应用软件

10.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量’\101’是(A)。

A.字符AB.字符aC.字符cD.非法的常量

11.以下选项中,合法转义字符的选项是(A)。

A.’\\’B.’\018’C.’xab’D.’\abc’

12.以下符合C语言语法的赋值表达式是(B)。

A.a=9+b+c=d+9B.a=(9+b,c=d+9)

C.a=9+b,b++,c+9D.a=9+b++=c+9

13.已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S=’A’+’6’-’3’;后,S中的值为(A)。

A.’D’B.68C.不确定的值D.’C’

14.在C语言中,要求运算数必须是整型的运算符是(D)。

A./B.++C.*=D.%

15.若有定义:

intm=7;floatx=2.5,y=4.7;则表达式x+m%3*(int)(x+y)%2/4的值是(A)。

A.2.500000B.2.750000C.3.500000D.0.000000

16.设以下变量均为int类型,则值不等于7的表达式是(C)。

A.(m=n=6,m+n,m+1)

B.(m=n=6,m+n,n+1)

C.(m=6,m+1,n=6,m+n)

D.(m=6,m+1,n=m,n+1)

17.假设所有变量均为整型,则表达式(x=2,y=5,y++,x+y)的值是(B)。

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

18.已知s是字符型变量,下面不正确的赋值语句是(B)。

A.s=’\012’;B.s=’u+v’;

C.s=’1’+’2’;D.s=1+2;

19.已知s是字符型变量,下面正确的赋值语句是(C)。

A.s=’abc’;B.s=’\08’;

C.s=’\xde’;D.s=”\”;

20.若有以下定义,则正确的赋值语句是(C)。

intx,y;

floatz;

A.x=1,y=2,B.x=y=100C.x++;D.x=int(z);

21.下列语句中符合C语言的赋值语句是(D)。

A.a=7+b+c=a+7;B.a=7+b++=a+7;

C.a=7+b,b++,a+7D.a=7+b,c=a+7;

22.putchar函数可以向终端输出一个(D)。

A.整型变量表达式值。

B.字符串

C.实型变量值。

D.字符或字符型变量值。

23.以下程序段的输出结果是(C)。

inta=12345;printf(”%2d\n”,a);

A.12B.34C.12345D.提示出错、无结果

1.2填空题

1.C语言的符号集包括__英文字母______、__数字______、____一些有特定含义的标点符号____。

2.结构化设计中的三种基本结构是顺序结构、选择结构、循环结构

3.C语言源程序文件的后缀是C,经过编译后生成文件的后缀是___OBJ_____,经过链接后生成文件的后缀是__EXE______。

4.C语言的关键字都用___小写_____{大写或小写}。

5.一个函数由两部分组成,它们是__函数说明部分和函数体_____。

6.函数体一般包括__变量定义部分和执行部分__。

7.C语言是通过___输入和输出函数____来进行输入和输出的。

8.若x和y均为int型变量,则以下语句的功能是____交换x和y的值。

x+=y;y=x-y;x-=y;

9.有一输入函数scanf(”%d”,k);则不能使float类型变量k得到正确数值的原因是:

__

(1)格式符应为:

%f;

(2)变量前边未加取地址符&,即应为scanf(”%f”,&k);。

1.3答案及部分解析

一.选择题答案

1.B2.B3.D4.B5.B6.C7.A8.C9.C10.B11.A12.B13.A14.D15.A16.C17.B18.B19.C20.C21.D22.D23.C

二.填空题答案

1.答案:

英文字母、数字、一些有特定含义的标点符号

2.答案:

顺序结构、选择结构、循环结构

3.答案:

C,OBJ,EXE

4.答案:

小写

5.答案:

函数说明部分和函数体

6.答案:

变量定义部分和执行部分

7.答案:

输入和输出函数

8.答案:

交换x和y的值

9.答案:

(1)格式符应为:

%f;

(2)变量前边未加取地址符&,即应为scanf(”%f”,&k);

第二章选择结构

2.1选择题

1.已有定义:

intx=3,y=4,z=5;则表达式!

(x+y)+z-1&&y+z/2的值是(D)。

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

2.设a=5,b=6,c=7,d=8,m=2,n=2,则执行(m=a>b)&&(n=c>d)后n的值为(B)。

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

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

A.’x’&&’y’B.x<=y

C.x||y+z&&y-zD.!

((x

z||1)

4.为了避免嵌套的if-else语句的二义性,C语言规定else总是与(C)组成配对关系。

A.缩排位置相同的if

B.在其之前未配对的if

C.在其之前未配对的最近的if

D.同一行上的if

5.逻辑运算符两侧运算对象的数据类型(D)。

A.只能是0或1

B.只能是0或非0正数

C.只能是整型或字符型数据

D.可以是任何类型的数据

6.下列运算符中优先级最高的是(C)。

A.

=

7.选择出合法的if语句(设intx,a,b,c;)(A)。

A.if(a=b)c++;B.if(a=b)c++;D.if(a=>b)c++;

8.判断char型变量s是否为小写字母的正确表达式是(C)。

A.’a’<=s<=’z’B.(s>=’a’)&(s<=’z’)

C.(s>=’a’)&&(s<=’z’)D.(’a’<=s)and(’z’>=s)

9.已知x=45,y=’a’,z=0;则表达式(x>=z&&y<’z’||!

y)的值是(C)。

A.0B.语法错

C.1D.“假”

10.执行以下语句后,y的值为(A)。

intx,y,z;

x=y=z=0;

++x||++y&&++z;

A.0B.1C.2D.不确定值

11.已知inta=1,b=2,c=3;以下语句执行后a,b,c的值是(B)。

if(a>b)

c=a;a=b;b=c;

A.a=1,b=2,c=3B.a=2,b=3,c=3

C.a=2,b=3,c=1D.a=2,b=3,c=2

12.以下程序的运行结果是(C)。

#include”stdio.h”

main()

{inta=1;

if(a++>1)printf(”%d\n”,a);

elseprintf(”%d\n”,a--);

}

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

13.若a、b、c、d、w均为int类型变量,则执行下面语句后的w值是(A)。

a=1;b=2;c=3;d=4;

w=(a

a:

b;

w=(w

w:

c;

w=(w

w:

d;

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

14.执行下列程序,输入为3的输出结果是(C)。

#include”stdio.h”

main()

{intk;

scanf(”%d”,&k);

switch(k)

{case1:

printf(”%d\n”,k++);

case2:

printf(”%d\n”,k++);

case3:

printf(”%d\n”,k++);

case4:

printf(”%d\n”,k++);

break;

default:

printf(”Full!

\n”);

}}

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

15.有如下程序,写出该执行结果(C)。

#include”stdio.h”

main()

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=1.0/x;

elsey=1.0;

printf(”%f\n”,y);}

A.0.000000B.0.250000C.0.500000D.1.000000

16.已知大写字母A的ASCII码值是65,小写字母b的ASCII码是(A)。

A.98B.66C.97D.67

17.为表示x≤y≤z,应使用C语言表达式(B)。

A.(x

18.下列程序运行结果是___A____。

#include”stdio.h”

voidmain()

{charch1,ch2;

ch1=’A’;

ch2=(ch1>=’A’&&ch1<=’Z’)?

(ch1+32):

ch1;

printf(“%c”,ch2);}

A.aB.AC.97D.65

2.2填空题

1.设intx=9,y=8;表达式x==y+1的结果是___1_____。

2.定义intx,y;执行y=(x=1,++x,x+2);后,y的值是___4_____。

3.定义intx=10,y,z;执行y=z=x;x=y==z;后,x的结果是___1_____。

4.以下程序是对用户输入的字母进行大小写转换。

请在【】内填入正确内容。

#include”stdio.h”

main()

{charch;

printf(”pleaseinputaletter:

”);

scanf(”%c”,&ch);

if(【1】)ch=ch+32;

elseif(ch>=’a’&&ch<=’z’)

【2】;

printf(”theconvertedletteris:

%c\n”,ch);

}

5.以下程序是对从键盘输入的任何三个整数,求出其中的最小值。

请在【】内填入正确内容。

#include”stdio.h”

main()

{inta,b,c,min;

printf(”pleaseinputthreenumbers:

”);

scanf(”%d%d%d”,&a,&b,&c);

if(【1】ch>=’A’&&ch<=’Z’)min=b;

elsemin=a;

if(min>c)【2】ch=ch-32;

printf(”min=%d\n”,min);}

6.执行以下语句后,x、y和z的值分别为__1,0,0_。

intx,y,z;

x=y=z=0;

++x||++y&&++z;

三.程序设计题。

1.编写程序,从键盘输入一字符,输出其相应的ASCII值和大写字母。

#include

voidmain()

{chara;

printf(“inputa:

”);

a=getchar();

a=a-32;

printf(“%d,%c\n”,a,a);}

2.编写程序,从键盘一个整型数,判断它能否被3整除,若能,输出“yes”,否则输出”no”.

#include

voidmain()

{intx;

scanf(“%d”,&x);

if(x%3==0)

printf(“yes\n”);

elseprintf(“no\n”);

2.3答案及部分解析

一.选择题答案

1.D2.B3.D4.C5.D6.C7.A8.C9.C10.A11.B12.C13.A14.C15.C16.A17.B18.A

2.解析:

当条件1:

m=a>b的值为假时,便已经确定整个表达式的值为假,所以不必再继续判断第二个表达式的逻辑值。

由于没有执行第二个表达式n=c>d,所以n的值仍为2。

二.填空题答案

1.答案:

1

解析:

注意该表达式是关系表达式的双等号,所以其结果只能为1或0。

2.答案:

43.答案:

1

4.答案:

【1】ch>=’A’&&ch<=’Z’【2】ch=ch-32

5.答案:

【1】a>b【2】min=c;

6.答案:

1,0,0

第三章循环结构

3.1选择题

1.以下程序的输出结果是(A)。

main()

{intn=4;

while(n--)

printf(〞%d〞,--n);}

A.2,0B.3,1C.3,2,1D.2,1,0

2.以下程序的输出结果是(D)。

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x--,y);}

A.10192B.9876C.10990   D.10,10,9,1

3.当执行以下程序段时(A)。

x=-1;

do

{x=x*x;}

while(!

x);

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

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

4.若i,j已定义为int类型,则以下程序段中内循环的总的执行次数是(A)。

for(i=5;i;i--)

for(j=0;j<4;j++)

{…}

A.20B.24C.25D.30

5.请读程序:

#include

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:

a++;break;

case1:

b++;break;}

case2:

a++;b++;break;}

printf("a=%d,b=%d\n",a,b);}

上面程序的输出结果是(A)。

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

6.有以下程序

#include〞stdio.h〞

intabc(intu,intv);

main()

{intc,a=24,b=16;

c=abc(a,b);

printf(〞%d\n〞,c);}

intabc(intu,intv)

{intw;

while(v)

{w=u%v; u=v; v=w;}

returnu;}

输出结果是(C)。

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

7.有以下语句:

i=1;

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

与以上语句序列不等价的有(C)。

A.for(i=1;;i++){sum+=i;if(i==100)break;}

B.for(i=1;i<=100;){sum+=i;i++;}

C.i=1;for(;i<=100;)sum+=i;

D.i=1;for(;;){sum+=i;if(i==100)break;i++;}

8.下面程序的运行结果为(A)。

main()

{intn;

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

{if(n%3==0)continue;

printf("%d",n);

}}

9.在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式(D)。

A.只能用逻辑表达式B.只能用关系表达式

C.只能用逻辑表达式或关系表达式D.可用任意表达式

10.在以下给出的表达式中,与do-while(E)语句中的(E)不等价的表达式是(C)。

A.(!

E==0)B.(E>0||E<0)C.(E==0)D.(E!

=0)

11.下列程序的输出是(C)。

#include

main()

{inti;charc;

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

{c=getchar();putchar(c);

}}

程序执行时从第一列开始输入以下数据,代表换行符。

u

w

xsta

A.uwxstaB.uC.uD.u

www

xxsxsta

12.在C语言中,为了结束while语句构成的循环,while后一对圆括号中表达式的值应该为(A)。

A.0B.1C.trueD.非0

13.在C语言中,为了结束由do-while语句构成的循环,while后一对圆括号中表达式的值应为(A)。

A.0B.1C.trueD.非0

14.C语言的if语句嵌套时,if与else的配对关系是(A)。

A.每个else总是与它上面的最近的if配对

B.每个else总是与最外的if配对

C.每个else与if的配对是任意的

D.每个else总是与它上面的if配对

15.下列程序的输出为(C)。

#include

main()

{inti=0,j=0,a=6;

if((++i>0)||(++j>0))a++;

printf("i=%d,j=%d,a=%d\n",i,j,a);

}

A.i=0,j=0,a=6B.i=1,j=1,a=7C.i=1,j=0,a=7D.i=0,j=1,a=7

16.下列程序段的输出结果为(C)。

main()

{intx=3;

do

{printf("%3d",x-=2);}

while(!

(--x));}

A.1B.30C.1-2D.死循环

3.2填空题:

1.当输入19,2,21时下列程序运行的结果是___21______。

main()

{inta,b,c,max;

printf("pleasescanthreenumbera,b,c:

\n");

scanf("%d,%d,%d",&a,&b,&c);

max=a;

if(max

if(max

printf("maxis:

%d",max);}

2.若输入4,程序运行结果为【17】,若输入-4,运行结果为【2-4】,若输入10,运行结果为【319】.

main()

{intx,y;

scanf("%d",&x);

if(x<1)

{y=x;

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

elseif(x<10)

{y=2*x-1;

printf("x=%d,y=2*x-1=%d\n",x,y);}

else

{y=3*x-11;

printf("x=%d,y=3*x-11=%d\n",x,y);}

}

3.以下程序运行的结果__8,14,1______。

main()

{intx=2,y,z;

x*=3+1;

printf("%d,",x++);

x+=y=z=5;

printf("%d,",x);

x=y==z;

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

}}

4.如果输入‘1’,‘2’,‘3’,‘4’,程序运行输出的是___1234_____。

#include

main()

{charc;

inti,k;

k=0;

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

{while

(1)

{c=getchar();if(c>='0'&&c<='9')break;}

k=k*10+c-'0';}

printf("k=%d\n",k);}

5.以下程序运行的结果是____8_____。

#include

main()

{inta,b;

for(a=1,b=1;a<=100;a++)

{if(b>=20)break;

if(b%3==1)

{b+=3;

continue;}

b-=5;}

printf("%d\n",a);}

6.对以下程序:

当输入6514时,其运行结果是【11】。

当输入1463时,其运行结果是【27】。

当输入25125时,其运行结果时【325】。

#include

main()

{intm,n;

scanf("%d%d",&m,&n);

while(m!

=n)

{while(m>n)m-=n;

while(n>m)n-=m;

}

printf("m=%d\n",m);}

7.鸡问题:

100元钱买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡各多少只?

#include

main()

{intcocks,hens,chicks;

cocks=0;

while(cocks<=19)

{hens=0;

while(hens<=33)

{chicks=100.0-cocks-hens;

if(5.0*cocks+3.0*hens+chicks/3.0==100.0)

printf("

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

当前位置:首页 > 工作范文 > 制度规范

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

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