C语言习题.docx

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

C语言习题.docx

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

C语言习题.docx

C语言习题

作业一C语言基本概念

1.能将高级语言编写的源程序转换成目标程序的是__B____。

A)编辑程序  B)编译程序  C)解释程序  D)链接程序

2.以下选项中合法的用户标识符是__B____。

A)long  B)_2Test  C)3Dmax  D)A.dat

3.以下叙述正确的是(B)

A)可以把define和if定义为用户标识符

B)可以把define定义为用户标识符,但不能把if定义为用户标识符

C)可以把if定义为用户标识符,但不能把define定义为用户标识符

D)define和if都不能定义为用户标识符

4.以下叙述正确的是(C)

A)C语言比其他语言高级

B)C语言可以不用编译就能被计算机识别执行

C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D)C语言出现的最晚、具有其他语言的一切优点

5.在一个C语言程序中(C)

A)main函数必须出现在所有函数之前

B)main函数必须出现在所有函数之后

C)main函数可以在任何地方出现

D)main函数必须出现在固定位置

6.一个C语言程序是由___C____组成的。

A)一个主程序和若干子程序B)若干子程序C)函数D)若干过程

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

A)C语言的源程序不必通过编译就可以直接运行

B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令

C)C源程序经编译形成的二进制代码可以直接运行

D)C语言中的函数不可以单独进行编译

8.下列关于C语言用户标识符的叙述中正确的是(C)

A)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头

B)用户标识符中可以出现下划线,但不可以放在用户标识符的开头

C)用户标识符中不可以出现中划线,但可以出现下划线

D)用户标识符中可以出现下划线和中划线(减号)

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

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

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

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

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

10.默认情况下,一个C程序的执行是从(A)

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

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

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

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

11.C语言编程整个操作的过程是(A)

A)编辑、编译、链接、执行

B)编译、编辑、链接、执行

C)链接、编译、编辑、执行

D)编辑、链接、编译、执行

12.下列说法不正确的是(A)

A)链接操作将生成扩展名为.lnk的文件

B)编辑过程将生成扩展名为.cpp或.c的文件

C)编译过程将生成扩展名为.obj的文件

C)C编程最终要生成扩展名为.exe的文件

13.C语言提供了丰富的结构化语句,直接支持__B__、_____和_______三种基本程序结构。

A)顺序、分支、过程

B)顺序、分支、循环

C)分支、过程、循环

D)顺序、过程、循环

14.下列说法正确的是(D)

A)C语言版本众多,但这些版本大多不能兼容

B)C语言只能在固定的操作系统上运行。

C)C语言不包含依赖硬件的输入/输出语句,其输入/输出功能语句需要手工来编写。

D)C语言允许对位、字节、地址这些计算机功能中的基本成分进行操作。

15.当用户用编辑器将C语言程序录入到计算机后,就建立一个源文件,则(C)

A)源文件可以直接被计算机执行

B)源文件需要编译后就可执行

C)源文件经过编译链接后生成的可执行程序和源程序是独立的

D)错误调试一般在执行过程进行

16.下列说法中正确的是(B)

A.由于C源程序是高级语言程序,因此一定要在VC++软件中输入

B.由于C源程序是字符组成,因此可以作为文本文件在任何文本编辑的软件中输入

C.由于C程序是高级语言程序,因此输入后即可执行

D.由于C程序是高级语言程序,因此它由命令组成

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

A.主函数可以分为两个部分:

主函数说明部分和主函数体

B.主函数可以调用任何非主函数的其它函数

C.任何非主函数可以调用其它任何非主函数

D.程序可以从任何非主函数开始执行

作业二C基本数据类型及运算

1.下列不正确的C语言用户标识符是__A__。

A)intB)a_1_2C)ab1exeD)_x

2.下列正确的C语言标识符是__B__。

A)#defineB)_123C)%dD)\n

3.下列四组字符串中都可以用作C语言程序标识符的一组是_A___。

A)print__123Pxqstr_l

B)_3done_halfMy->bookCpp

C)oodbstart$itline#pow

D)aBc3paiHis.agewhile

4.下面各选项组中,均是C语言关键字的组是__B__。

A)auto,enum,includeB)switch,typedef,continue

C)signed,union,scanfD)if,struct,type

5.下列不属于C语言关键字的是__D__。

A)defaultB)registerC)enumD)external

6.执行语句printf("%x",-1);屏幕显示__D__。

A)-1B)1C)-ffffD)ffffffff

7.已知inta=2,b=1,c;执行语句c=b/a+2.5后,c的值_D_。

A)2.5B)3C)3.0D)2

8.有关变量已经定义,以下合法的数值表达式是__C__。

A)a=1/b=2B)++(a+b)C)b=b/(a=6)D)c=int(a)+b

9.将字符g赋给字符变量c,正确的表达式是__C__。

A)c=\147B)c="\147"C)c='\147'D)c='0147'

10.下列转义字符中错误的一个是__C__。

A)'\000'B)'\014'C)'\x111'D)'\2'

11.将空格符赋给字符变量c,正确的赋值语句是_D___。

A)c='\0'B)c=NULLC)c=0D)c=32

12.已知:

chara='\70';则变量a中。

(A)

A)包含1个字符B)包含2个字符

C)包含3个字符D)说明非法

13.字符串"\"EOF\n=-\61\""的长度是__B__。

A)8B)9C)14D)非法字符串

14.字符串""的长度是__A__。

A)0B)1C)2D)非法字符串

15.已知:

chara;intb;floatc;doubled;执行语句"c=a+b+c+d;"后,变量c的数据类型是。

(C)

A)intB)charC)floatD)double

16.逗号表达式"(a=3*5,a*4),a+15"的值是__C__。

A)15B)60C)30D)不确定

17.如果inta=1,b=2,c=3,d=4;则条件表达式a

a:

c

c:

d的值是__A__。

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

18.已知inti=10;表达式"20-5<=i<=9"的值是__B__。

A)0B)1C)19D)20

19.已知intx=1,y;执行下述语句后变量x的值是_B___。

y=++x>5&&++x<10;

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

20.为判断字符变量c的值不是数字也不是字母时,应采用下述表达式_D___。

A)c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122

B)!

(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)

C)c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122

D)!

(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)

21.已知intx=5,y=5,z=5;执行语句x%=y+z;后,x的值是_C___。

A)0B)1C)5D)6

作业三输入与输出

1.设a=3,b=4,执行“printf(“a=%d,B=%d",a,b);”的输出是(C)

A.a=3,b=4B.3,4C.a=3,B=4D.a=3B=4

2.设a=1234,b=12,c=34执行“printf(“|%3d%3d%-3d|\n”,a,b,c);”的输出是(A)

A.|12341234|

B.|1231234|

C.|123412-34|

D.|2341234|

3.使用“scanf(“x=%f,y=%f”,&x,&y);”,要使x,y均为1.25,正确的输入是(C)

A.1.25,1.25

B.1.251.25

C.x=1.25,y=1.25

D.x=1.25y=1.25

4.要使doublex;longa;获得数据,正确的输入语句是(D)

A.scanf(“%d,%f”,&a,&x);B.scanf(“%f,%ld”,&x,&a);

C.scanf(“%d,%lf”,&a,&x);D.scanf(“%ld,%lf”,&a,&x);

5.设有inta=255,b=8;则printf(“%x,%o\n”,a,b);的输出的是(B)

A.255,8B.ff,10C.0xff,010D.输出格式错

6.设a、b为字符型变量,执行“scanf(“a=%c,b=%c”,&a,&b);”后使a为’A’,b为’B’,从键盘上的正确输入是(D)

A.‘A’’B’B.‘A’,’B’C.A=A,B=BD.a=A,b=B

7.语句printf(“%f%%”,1.0/3);的输出结果为:

(B)

(注:

%%的输出结果是一个%)

A.0.333333B.0.333333%

C.0.333333%%D.出错

8.已有定义intx;floaty;且执行scanf("%3d%f",&x,&y);输入数据为12345678<回车>,则x和y的值为:

(A)

A.12345.000000B.123678.000000

C.12345678.000000C.345678.000000

9.有如下的定义和输入语句:

inta1,a2;charc1,c2;

scanf("%d%d",&a1,&a2);

scanf("%c%c",&c1,&c2);

若要求a1,a2,c1,c2的值分别为10、20、A和B,则正确的数据输入方式为(D)

A.1020ABB.1020AB

C.1020ABD.1020AB

10.已有定义:

floatf1,f2;程序运行时输入数据为4.523.5,则输入语句正确的为(B)

A.scanf("%f,%f",&f1,&f2);

B.scanf("%f%f",&f1,&f2);

C.scanf("%f%f\n",&f1,&f2);

D.scanf("%3f%f",&f1,&f2);

11.下列数据中属于“字符串常量”的是(A)

A.“a”B.{ABC}

C.’abc\0’D.’a’

12.在PC机中,‘\n’在内存占用的字节数是(A)

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

13.在PC机中,“a\xff”在内存占用的字节数是(C)

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

14.在C语言中,合法的长整型常数是(A)

A.0LB.4962710

C.0.054838743D.2.1869e10

15.下列数据中不属于“字符常量”的是(D)

A.‘\a’B.‘\160’

C.‘\070’D.070

作业四C程序控制结构

1.结构化程序设计的3种结构是(D)

A)顺序结构、选择结构、转移结构

B)分支结构、等价结构、循环结构

C)多分支结构、赋值结构、等价结构

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

2.已知

intt=0;

while(t=1)

{...}

则以下叙述正确的是(B)

A)循环控制表达式的值为0

B)循环控制表达式的值为1

C)循环控制表达式不合法

D)以上说法都不对

3.有如下程序:

main()

{

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

switch(x)

{

case0:

b++;

case1:

a++;

case2:

a++;b++;

}

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

}

该程序的输出结果是(A)

A)a=2,b=1

B)a=1,b=1

C)a=1,b=0

D)a=2,b=2

4.有以下程序

main()

{

inti=1,j=1,k=2;

if((j++||k++)&&i++)

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

}

执行后输出结果是(C)

A)1,1,2

B)2,2,1

C)2,2,2

D)2,2,3

5.有如下程序

main()

{

floatx=2.0,y;

if(x<0.0)

y=0.0;

elseif(x<10.0)

y=1.0/x;

else

y=1.0;

printf("%f\n",y);

}

该程序的输出结果是(C)

A)0.000000

B)0.250000

C)0.500000

D)1.000000

6.有如下程序:

main()

{

intn=9;

while(n>6)

{

n--;

printf("%d",n);

}

}

该程序的输出结果是(B)

A)987

B)876

C)8765

D)9876

7.在下列选项中,没有构成死循环的是(D)

A)inti=100;

while

(1)

{

i=i%100+1;

if(i>100)

break;

}

B)for(;;);

C)intk=10000;

do

{

k++;

}while(k>10000);

D)ints=36;

while(s)

--s;

8.有如下程序段

#include"stdio.h"

main()

{

inta=10,b=50,c=30;

a=a>30?

1:

2;

b=b>30?

1:

2;

c=c>30?

1:

2;

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

}

则执行结果为(A)

A)2,1,2

B)1,2,1

C)1,1,2

D)2,1,1

9.阅读如下程序段

#include"stdio.h"

main()

{

inta=45,b=40,c=50,d;

d=a>30?

b:

c;

switch(d)

{

case30:

printf("%d,",a);

case40:

printf("%d,",b);

case50:

printf("%d,",c);

default:

printf("#");

}

}

则输出的结果是(D)

A)40,50,

B)50,#

C)40,#

D)40,50,#

10.若有定义intk=10;则下列程序的输出结果为(B)

do{

printf("%d",k--);

}while(!

k);

A)9

B)10

C)10987654321

D)没有输出

11.阅读下列程序段,则程序的输出结果是(B)

#include"stdio.h"

main()

{

inta=10,b=10,k;

for(k=0;a>8;b=++k)

printf("%d,%d,",a--,--b);

printf("\n");

}

A)10,10,10,0,

B)10,9,9,0,

C)10,10,9,1,

D)9,9,9,1,

12.下列程序的运行结果是(B)

#include"stdio.h"

main()

{

inta,b,m;

for(a=5;a>=1;a--)

{

m=0;

for(b=a;b<=5;b++)

m=m+a*b;

}

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

}

A)30

B)15

C)20

D)10

13.若inti,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是(C)

A)9

B)8

C)3

D)2

14.下列程序的输出结果是(B)

#include"stdio.h"

main()

{

inti=6;

while(i--)

printf("%d",--i);

printf("\n");

}

A)531

B)420

C)654321

D)死循环

15.阅读下列程序,则执行结果是(C)

#include"stdio.h"

main()

{

inta=0,b=0,c=0,i;

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

switch(i)

{

case0:

a=i++;

case1:

b=i++;

case2:

c=i++;

case3:

i++;

}

printf("%d,%d,%d,%d\n",a,b,c,i);

}

A)0,1,3,4

B)1,2,3,4

C)0,1,2,5

D)0,2,3,4

16.下面程序的运行结果是(A)

#include"stdio.h"

main()

{

intj,i;

for(j=50;j<=60;j++)

{

for(i=2;i

if(!

(j%i))

break;

if(i==j)

printf("%d",j);

}

}

A)5359

B)5953

C)3595

D)9535

17.已知charch='C';则以下表达式的值是(D)

ch=(ch>='A′&&ch<='Z′)?

(ch+32):

ch;

A)A

B)a

C)Z

D)c

18.下列程序的运行结果是(D)

#include"stdio.h"

main()

{

intx=-9,y=5,z=8;

if(x

if(y<0)

z=0;

else

z+=1;

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

}

A)6

B)7

C)8

D)9

19.现有定义intk=1;则执行语句while(++k<4);后,k的值为(A)

A)4

B)5

C)6

D)8

20.以下程序的运行结果为(C)

#include"stdio.h"

main()

{

intm,n;

for(m=0,n=10;m

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

}

A)6,7

B)7,6

C)9,7

D)7,9

作业五数组

1、若有以下数组说明,则数值最小和最大元素的下标分别是()。

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};

A.1,12B.0,11C.1,11D.0,12

2、若有以下数组说明,且i=10;则a[a[i]]元素数值是()。

inta[12]={1,4,7,10,2,5,8,11,3,6,9,12};

A.10B.9C.6D.5

3、设有定义:

chars[12]={“string”};,则

printf(“%d\n”,strlen(s));的输出是()。

A.6B.7C.11D.12

4、以下对数组描述正确的是()。

A.数组一旦定义其大小是固定的,但数组元素的类型可以不同

B.数组一旦定义其大小是固定的,且数组元素的类型必须相同

C.数组一旦定义其大小是可变的,且数组元素的类型可以不同

D.数组一旦定义其大小是可变的,但数组元素的类型必须相同

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

A.不可以用数组名对数组整体进行操作

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D.可以通过赋初值的方式确定数组元素的个数

6、下列定义的字符数组中,printf(“%s\n”,str[2]);语句的输出是()。

charstr[3][20]={“basic”,“foxpro”,“windows”};

A.basicB.foxproC.windowsD.输出语句出错

7、以下能正确将字符串“Boy”进行完整赋值操作的是()。

A.chars[3]={‘B’,‘o’‘y’};

B.chars[]=“Boy”;

C.chars[3]={“Boy”};

D.chars[3];s[0]=‘B’;s[1]=‘o’;s[2]=‘y’;

8、定义:

chara[]="China";则数组a所占的空间为()。

A.4个字节B.5个字节C.6个字节D.7个字节

9、若有inta[4]={1,2,3,4};,则a[a[0]+2*a[2]-a[3]]的值()。

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

10、设变量定义为charformat[]=“s=%d\n”;则

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

当前位置:首页 > 考试认证 > 其它考试

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

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