文档库 最新最全的文档下载
当前位置:文档库 › C语言程序设计_习题大全(含答案)_C语言-1

C语言程序设计_习题大全(含答案)_C语言-1

C语言程序设计_习题大全(含答案)_C语言-1
C语言程序设计_习题大全(含答案)_C语言-1

C语言基础一:

1.下列四组选项中,均不是C语言关健字的选项是( A )。

A) define B) gect C) include D) while

IF char scanf go

type printf case pow

2.下面四个选项中,均是合法整型常量的选项是( A )。

A)160 B)-0xcdf C) -01 D)-0x48a

-0xffff 01a 986,012 2e5

011 0xe 0668 0x

<<02>>B>>2

3.下面四个选项中,均是不合法的转义符的选项是( B )。

A) '\"' B) '\1011' C) '\011' D) '\abc'

'\\' '\' '\f' '\101'

'xf' '\A' '\}' 'x1f'

4.下面不正确的字符串常量是( A )。

A)'abc' B)"12'12" C)"0" D)" "

5.以下选项中不合法的用户标识符是( A )。

A)abc.c B)file C)Main D)PRINT

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

A) swith

B) cher

C) Case

). Default

7.下列标识符组中,合法的用户标识符为 A

A)_0123与ssiped

B)del-word与signed

C)list与*jer

D) keep%与wind

8.在C语言中,逻辑值"真"的表示是用( C )。

A) true B) 整型值0 C)非另整型值 D) T

9若有以下定义

char s='\092';

则该语句( B )

A)使s的值包含一个字符 B)定义不合法,s的值不确定

C)使s的值包含4个字符 D)使s的值包含3个字符

10设C语言中,int类型数据占2个字节,则float类型数据占( D )个字节。

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

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

A)D B)68 C)不确定的值 D)C

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

A) 只是0或1 B) 只能是0或非0正数

C) 只能是整型或字符型数据 D) 可以是任何合法的类型数据

13TURBO C中int类型变量所占字节数是( B )。

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

14在C语言中,char型数据在内存中的存储形式是( D )。

A) 补码 B) 反码 C) 原码 D) ASCII码

15若有以下定义,则能使值为3的表达式是( D )。

int k=7, x=12;

A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5)

16判断char型变量c1是否为小写字母的正确表达式为 ( D )。

A) 'a'<=c1<='z' B) (c1>=A. &&(c1<='z')

C) ('a'>=c1)||('z'<=c1) D) (c1>='a')&&(c1<='z')

17 已知各变量的类型说明如下:

int k,a,b;

unsigned long w=5;

double x=1.42

则以下不符合C语言语法的表达式是( A )。

A)x%(-3)

B)w+=-2

C)k=(a=2,b=3,a+b)

D)a+=a-=(b=4)*(a=3)

若t为double类型,表达式t=1,t+5,t++的值是( D )。

A)1 B)6.0 C)2.0 D)1.0

设n=10,i=4,则赋值运算 n%=i+1执行后,n的值是( A ).

D) 1

设Int n=3;则有表达式++n,n的结果是( C )。

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

用十进制形式输入有符号整数时,在scanf函数语句里格式字符为( AB )。

A)d B)i C)n D)u

在scanf函数语句中可用的修饰符有( ABCD )。

A)* B)h C)l D)宽度

1数据是操作的对象,操作的结果会改变数据的状况。对

2字符型变量用来存放字符常量,注意只能放2个字符。错

3C语言中可以把一个字符串赋给一个字符变量。错

4在 C语言中的实型变量分为两种类型,它们是 float(实型)和double(双精度实型)。错

5在C语言中,要求参加运算的数必须是整数的运算符是% . 对

6若有以下定义,则执行下面表达式y+=y-=m*=y后,y的值为-6。int m=5,y=2; 对

7输入语句的格式为: scanf("%d%d%d",&a,&b,&c);是正确的。对

8在scanf("%d,%d",&a,&b)函数中,可以使用一个或多个空格作为两个输入数之间的间隔。错

9getchar函数的功能是接收从键盘输入的一串字符。错

10在变量说明中给变量赋初值的方法是:int a=b=c=10; 错

12printf函数是一个标准库函数,它的函数原型在头文件"stdio.h"中。对

13printf函数称为格式输入函数,它的函数原型在头文件"stdio.h"中。错

14在printf函数中,不同系统对输出表列的求值顺序不一定相同,TC是按从右到左进行的。对

15若int x=3; printf("%d",&x);则系统会报错,没有任何结果。错

16逻辑运算符的优先级别高于算术运算符错

1在C语言中,表示逻辑"真"值用【 1 】.

2表达式pow(2.8,sqrt(double(x)))值的数据类型为( doubt )。

3假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是【 8 】。

4若x是int型变量,则执行下面表达式后,x的值为【 12 】。x=(a=4,6*2)

5若k为 int整型变量且赋值7,请写出赋值表达式 k *= k + 3的运算结果【70 】。

6scanf函数是一个标准库函数,它的函数原型在头文件【 stdio.h 】中。

7getchar函数可以接收【单】个字符,输入数字也按字符处理。

8在语句中,给变量赋值时,赋值语句必须以【分号】结尾。

9当a=3,b=2,c=1时,表达式f=a>b>c 的值是【 0 】

10设x,y,z均为int型变量,请写出描述"x,y中有一个为负数"的表达式【 x<0&&y>=0||y<0&&x>=0 】11若a=6,b=4,c=3,则表达式 a&&b||b-c的值是【1 】

12设x=3,y=-4,z=5,则表达式!(x>y)+(y!=z)||(x+y)&&(y=z)的值是【 1 】

基础二

1下面四个选项中,均是非法常量的选项是( A )。

A)'as' B)'\\' C)-0x18 D)0xabc

-0fff '\01' 01177 '\0'

'\0a' 12,456 0xf "a"

2下面四个选项中,均是不合法整型常量的选项是( D )。

A)-0f1 B)-0xcdf C) -018 D)-0x48eg

-0xffff 017 999 -068

0011 12,456 5e2 03f

3下面正确的字符常量是( C )。

A) "c" B) '\\'' C) 'W' D) '

4以下每个选项都代表一个常量,其中正确的整型常量是( B )。

A)1.2 B)-20 C)1,000 D)4 5 6

5以下选项中不合法的用户标识符是( C )。

A)_123 B)Printf C)A$ D)Dim

6在下列C语言程序中,可以用做变量名的是( B )。

A) 1

B) a1

C) int

D) *p

7C语言提供的合法数据关键字是( A )。

A) float

8以下符号中不能用作用户标识符的符号是( B )。

A)_256 B)void

C)scanf D)Struct

9若k为int型变量,则以下语句( C )。

k=8567;

printf("|%-06d|\n",k);

A)输出格式描述不合法 B)输出为|008567|

C)输出为|8567| D)输出为|-08567|

10sizeof(float)是( B )。

A)一个双精度表达式 B)一个整型表达式

C)一种函数调用 D)一个不合法的表达式

11在C语言中, int、char和short三种类型数据在内存中所占用的字节数( D )。

A)由用户自己定义 B)均为2个字节

C)是任意的 D)由所用机器的机器字长决定

12判断char型变量c1是否为小写字母的正确表达式为 ( D )。

A) 'a'<=c1<='z' B) (c1>=A. &&(c1<='z')

C) ('a'>=c1)||('z'<=c1) D) (c1>='a')&&(c1<='z')

13以下叙述中正确的是( B )。

A.a是实型变量,C语言允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值

B.在赋值表达式中,赋值号右边即可以是变量也可以是任意表达式

C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0 D.已有a=3,b=5当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3

14表达式18/4*sqrt (4.0)/8值的数据类型为( C )。

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

15下列运算符中,不属于关系运算符的是( C )。

A) < B) > = C) ! D) ! =

16若希望当A的值为奇数时,表达式的值为真,A的值为偶数时,表达式的值为假,则以下不能满足要求的表达式是 ( C )。

A) A%2= =1 B) !(A%2= =0) C) !(A%2) D) A%2

17已知各变量的类型说明如下:

int i=8,k,a,b;

unsigned long w=5;

double x=1.42,y=5.2;

则以下符合C语言语法的表达式是( A )。

A)a+=a-=(b=4)*(a=3)

B)a=a*3=2

C)x%(-3)

D)y=float(i)

18 若变量已正确定义并赋值,下面符合C语言语法的表达式是( B )。

A)a=a+7; B)a=7+b+c,a++ C)int 12.3%4 D)a=a+7=a+b

19逗号表达式(a=3*5,a*4),a+15的值为( C )。

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

20设Int n=3;则n++的结果是( B )。

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

1用小数或指数形式输入实数时,在scanf函数语句里格式字符为( BCD )。

A)i B)f C)e D)g

2可以使用( CD )输入字符型数据。

A)putchar(c); B)getchar(c); C)getchar(); D)scanf("%c",&c);

1C语言中数据有常量与变量之分。

2一般一个字符变量在内存中占一个字节。

3C语言规定,可以在定义变量时,同时使变量初始化。

4把k1、k2定义成基本整型变量,并赋初值0的定义语句是int k1=k2=0; 。错

5如果i的原值为3,则:j = ++ i,j的值为3。错

6凡是表达式都有一个值。

7输入语句的格式为:scanf("%d,%d,%d",a,b,c);是正确的。错

8在scanf("%d,%*d,%d",&a,&b)函数中,当输入为1,2,3时,将1赋给a,将2赋给b。错

9getchar函数的功能是接收从键盘输入的一个整数。错

10假定变量a,b,c在说明时已赋初值,则 if ((a=b;)>0) c=a;是正确的。错

11

12printf函数是一个标准库函数,它的函数原型在头文件"string.h"中。错

13在printf函数中,格式字符d的意义是:以十进制形式输出带符号整数。

14 在printf函数中,输出表列的各输出项之间可用冒号分隔。错

15若int x=3; printf("%d",&x);则系统不会报错,会输出x的地址。

16int a=0,b=1,c=2;则表达式a||b+c&&b==c的值为0

1若有以下定义:char c='\010';则变量C中包含的字符个数为( 1 )。

5若a是int型变量,且a的初值为6,则计算表达式后a的值为【 60 】。a+=a-=a*a

6scanf函数的地址表列中给出各变量的地址,地址是由【地址运算符"&" 】后跟变量名组成的。

7使用getchar函数接收字符,若输入多于一个字符时,只接收第【一】个字符。

8 C语言的格式输出函数是【 printf() 】。

9当a=5,b=4,c=2时,表达式a>b!=c 的值是【 1 】

10已知A=7.5,B=2,C=3.6,表达式A>B&&C>A || AB的值是【 0 】

11若a=3,b=2,c=1,则表达式a-b

12有int a=0,b=4,c=5;则表达式a||b+c&&b!=c的值为【 1 】

基础三

1下面四个选项中,均是不合法的用户标识符的选项是( C )。

A) A B) float C) b-a D) _123

p_0 lao goto temp

do _A int INT

2下面四个选项中,均是不合法浮点数的选项是( B )。

A) 160. B) 123 C) -018 D) -e3

0.12 2e4.2 123e4 .234

e3 .e5 0.0 1e3

3下面四个选项中,均是不正确的八进制或十六进制数的选项是( D )。

A)016 B)0abc C)010 D)0a12

0x8f 017 -0x11 7ff

018 0xa 0x16 -123

4以下每个选项都代表一个常量,其中不正确的实型常量是( B )。

A)2.607E-1 B)0.8103e 2 C)-77.77 D)45.6e-2

5可用作用户标识符的一组标识符是( B )。

A)void B)a3_b3 C)For D)2a

define _xyz -abc DO

WORD IF Case sigeof

6下列标识符组中,合法的用户标识符为( B )。

A) PAd与p#d

B) Scanf 与a10

C) void与max

D) A*与temp

7( B )是C语言提供的合法的数据类型关键字。

A)Float B)signed C)integer D)Char

8以下选项中正确的常量是( B )。

A) 012

B) -20

C) 1,000

D) 4 5 6

9现已定义整型变量int i=1;

执行循环语句while(i+ +<5);后,i的值为( B )。

A)1 B)5 C)6 D)以上三个答案均不正确

10设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( C )。

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

11若有说明语句:char c='\72';则变量c ( C )。

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

C)包含3个字符 D)说明不合法,c的值不确定

12设X、Y、Z都是int整型变量,且x=2, y=3, z=4,则下面的表达式中,值为0的表

达式是( A )。

A) 'x'&&'z' B) (!y= =1)&&(!z= = 0)

C) (x

13以下叙述中正确的是( B )。

A) 在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示

B) 若在定义语句double a,b;之后,因为变量a,b已正确定义,因此立刻执行这样的表达式:a=b+9.381是正确的

C) 在C程序中,常量、变量、函数调用,都是表达式的一种

D) 在main函数中,变量一经定义,系统将自动赋予初始值

14设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为( C )。

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

15设a=2,b=3,c=4,则表达式 a+b>c&&b= =c&&a||b+c&&b+c的值为( D )。

17以下不正确的叙述是( C )。

A)在C程序中,逗号运算的优先级最低

B)在C程序中,APH和aph是两个不同的变量

C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变

D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

18以下结果为整型的表达式(设有int i; char c; float f;)是( D )。

A)i+f B)i*c C)c+f D)i+c+f

19设有逗号表达式(a=3*5,a*4),a+15,a的值为( B )。

A)60 B)30 C)15 D)90

20设Int n=3;则有表达式n++,n的结果是( C )。

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

1若在scanf函数语句中没有非格式字符作输入数据的间隔,则可用( ACD )。

作为输入数据的间隔。

A)空格B)逗号 C)TAB D)回车

2使用scanf函数时,在源程序开头( ABC )。

A)书写#include "stdio.h" B)书写#include

C)不必写#include D)书写#include "scanf.h"

1C语言规定标识符只能由字母、数字和小数点三种字符组成。

2 C语言使字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。对

3 C语言中定义了一个变量,代表内存中的一个地址。对

4表达式3.5 + 1/2 + 56%10的计算结果是7.5 。

5 由赋值运算符将一个变量和一个表达式连接起来的式子称为"赋值表达式"。对

6设C语言中,一个int型数据在内存中占2个字节,则int数据的取值范围为-32768-32769。

7在使用scanf函数之前应包含头文件"math.h"。

8在scanf("%c%c",&c1,&c2)函数中,当输入为字符a,b时,将a赋给c1,将b赋给c2。

9 scanf函数中,如果格式控制串中有普通字符则输入时也要输入该普通字符。

10 假定变量x,y,z在说明时已赋初值,则 if ((x=y+5)>0) z=x; 是正确的

11printf函数中的格式字符,既可以是大写形式,也可以是小写形式。

12在printf函数中,格式字符"%5c"可用来输出5个字符。

13在printf函数中,格式字符s的意义是:输出单个字符。

14 在printf函数中,输出项可以是任意合法的表达式。

15 算术运算符的优先级别高于关系运算符

16 int a=0,b=1,c=2,x,y;,则!(x=a)&&(y=b)&&c的值为1

1若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式后,x的值为( 0 )。x%=(n%=2)

2假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为【 9 】。

3若a是int型变量,则执行下面表达式后,a的值为【2 】。a=25/3%3

4表达式1/3*3的计算结果是【 0 】。

5若a是int型变量,则计算表达式后a的值为【 2 】。a=25/3%3

6在输入字符数据时,若"格式控制字符串"中没有非格式字符,则认为所有输入的字符均为【有效】字符。

7在scanf函数中,【 &a 】表示变量a的地址。

8以下程序的运行结果是【 computer, com 】。

main()

{ printf("%s,%5.3s","computer","computer"); }

9在C语言中,表示逻辑"真"值用【非零数】

10若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b/3+c/2的值是【 1 】

11设a=-1,b=0,c=1,则表达式a||b+c&&b==c的值是【 1 】

12有int a=3,b=4,c=5,x,y;,则以下表达式的值为【 0 】

!(x=a)&&(y=b)&&c

基础四

1以下符号中不能用作用户标识符的符号是( )。

A)_256 B)void

C)scanf D)Struct

2下面四个选项中,均是合法浮点数的选项是( )。

A) +1e+1 B) -.60 C) 123e D) -e3

5e-9.4 12e-4 1.2e-.4 .8e-4

03e2 -8e5 +2e-1 5.e-0

3下面四个选项中,均是正确的八进制或十六进制数的选项是( )。

A) -1a B)0abc C)0010 D)0a12

0x8f -017 0x11 -0x123

5C语言提供的合法的数据类型关键字是( )。

A)Double B)short C)integer D)Char

6下列标识符组中,合法的用户标识符为( )。

A)b-b与abc

B)CCP与float

C)hiy与

D) isw与INT

7 属于合法的C 语言长整型常量的是( )。

A)5876273 B)0L C)2E10 D)(Long)5876273若int类型数据占两个字节,下8列程序的输出结果是()。main()

{

int k=-1;

printf("%d,%u\n",k,k);

}

A)-1,-1 B)-1,32767 C)-1,32768 D)-1,65535

9设已定义x为double类型变量

x=213.82631;

printf("%-6.2e\n",x);

则以上语句( )。

A)输出格式描述符的域宽不够,不能输出 B)输出为21.38e+01

C)输出为2.14e+02 D)输出为-2.14e2

10执行x=5>1+2&&2||2*4<4 - !0后,X的值为( )。

A) -1 B) 0 C) +1 D) 5

11设ch是字符变量,其值为A,且有下面的表达式ch=!(ch>='A'&&ch<='z')?ch:(ch+32)则表达式的值是 ( )

A) A B) a C) 2 D) z

12设ch是char型变量,其值为Z,且有下面的表达式,其值为( )。

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

A) A B) a C) Z D) z

13以下的变量定义中,合法的是( )。

A)float 3_four = 3.4 ; B)int _abc_= 2 ;

C)double a = 1 + 4e2.0 D)short do =15;

14若有int k = 11;则表达式(k++ * 1/3)的值是( )。

A)0 B)3 C)11 D)12

15逻辑运算符两侧运算对象的数据类型是 ( )。

A) 只是0或1 B)只能是0或非0正数

C) 只能是整型或字符型数据 D) 可以是任何类型数据

16下列表达式的值,那一个等于0 ( )。

A) 5%6 B) 5/6 C) 5/6.0 D) 5 - 6

17以下正确的叙述是( )。

A)在C程序中,每行只能写一条语句

B)若 a 是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数

C)在C程序中,无论是整数还是实数,都能被准确无误地表示

D)在C程序中,%是只能用于整数运算的运算符

18以下不正确的语句(设有int p,q)是( )。

A)p*=3; B)p/=q; C)p+=3; D)p&&=q;

19如果a=1,b=2,c=3,d=4,则条件表达式a

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

20设Int n=2;则++n+1= =4的结果是( )。

A)true B)false C)1 D)0

1若输入4位整数到整型变量a中,可用( )。

A)scanf("%4d"); B)scanf("%4d",&a);

C)scanf("%4d",a); D)scanf("%d",&a);

2对于scanf("a=%d",&a),设a为整型变量,输入5,其输出可为( )。

A)a=5 B)5 C)a= 5 D)a=a=5

1在C语言中,要求对所有用到的变量先定义,然后才能使用。

2C语言中,字符数据与整型数据可以互相赋值。

3C实型变量分为单精度和双精度两种。

4a1、a2定义成单精度实型变量,并赋初值1的定义语句是float a1=1; a2=1; 。

5C语言中逗号运算符又称为"顺序求值运算符"。

6C提供的三种逻辑运算符是 !, &&, >= .

7在使用scanf函数之前可以不包含头文件"stdio.h"。

8在scanf("%4d",&i)函数中,输入123456789,只把123456赋予变量i 。

9a=b=c=d=10;是一个合法的赋值语句。

10C语言的格式输出函数是scanf().

13在printf函数中,格式字符f的意义是:以小数形式输出单精度实数。

14在printf函数中,转义字符\b的作用是退格。

15算术运算符的优先级别高于逻辑运算符

16int a=1,b=0,c=1;,则!(a+b)+c-0&&b+c/2的值为1

1经过下述赋值后,变量x的数据类型是()。

int x=2;

double y;

y=(int)(float)x;

2已知字母a的ASCII码的十进制代码为97,且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为【】。3若s是int型变量,且s=6,则下面表达式的值为【】。

s%2+(s+1)%2

4表达式1.0/2*3的计算结果是【】。

5当a=3,b=2,c=1时,表达式f=a>b>c的值是【】.

6getchar函数是【】函数。

7赋值语句是由赋值表达式加上【】构成的。

8在TC中,printf()函数输出表列的求值顺序是【】。

9设y为int型变量,请写出描述"y是奇数"的表达式【】

10若a=2,b=4,则表达式!(x=a)|| (y=b)&&0的值是【】

11条件"0

12有int a=3,b=4,c=5;,则以下表达式的值为【】

!(a+b)+c-1&&b+c/2

基础五

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

A)必须为大写

B)必须为下划线

C)必须为字母或下划线

D)可以是字母、数字和下划线中的任一种字符

2下面四个选项,均是合法转义字符的选项是( )。

A) '\'' B) '\' C)'\018' D) '\\0''

'\\' '\017' '\f' '\101'

'\n' '\"' 'xab' 'x1f'

3下面四个选项中,均是正确的数值常量或字符常量的选项是( )。

A)0.0 B)"a" C)'3' D)+001

0f 3.9E-2.5 011 0xabcd

8.9e 1e1 0xFF00 2e2

'&' '\"' 0a 50

4以下符号中不能用作用户标识符的是( )。

A)IF B)Switch C)gets D)case

5在C语言中,下列哪个字符为合法的字符常量( )。

A)'\084′

B)'\x43′

C)'ab′

D)'\0′

6下列四个选项中,均是C语言关健字的选项是( )。

A) auto B) switch C) signed D) if

enum typedef union struct

include continue scanf type

7不合法的常量是( )。

A)'\2' B)'"' C)" D)"\483"

8若a为整型变量,则以下语句()。

a=-2L;

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

A)赋值不合法 B)输出值为-2 C)输出为不确定值 D)输出值为2

9已定义x为float型变量

x=213.82631;

printf("%-4.2f\n",x);

则以上语句

A)输出格式描述符的域宽不够,不能输出 B)输出为213.83

C)字符串 D) 字符或字符型变量值

11已知int x,y,z;执行语句x=(y=(z=10)+5)-5;后x、y、z的值是( )。

A) x=10 B) x=10 C) x=10 D) x=10

y=15 y=10 y=10 y=5

z=10 z=10 z=15 z=10

12 设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是 ( )。

A) 552 B) 144 C) 264 D) -264

13设x为int型变量,则执行以下语句段后,x的值为( )。

A)10 B)20 C)40 D)30

x = 10 ;

x += x -= x - x;

14若有定义,int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。

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

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

A) < B) + C) && D) !=

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

A)(x=y=6,x+y,x+1) B)(x=y=6,x+y,y+1)

C)(x=6,x+1,y=6,x+y) D)(y=6,y+1,x=y,x+1)

17以下符合C语言语法的,赋值表达式是( )。

A) d=9+e+f=d+9

B) d=9+e,f=d+9

C) d=9+e,e++,d+9

D) d=9+e++=d+7

18以下使i的运算结果为4的表达式是( )。

A) int i=0,j=0;

(i=3,(j++)+i);

B) int i=1,j=0;

j=i=((i=3)*2);

C) int i=0,j=1;

(j= =1)?(i=1):(i=3);

D) int i=1,j=1;

i+=j+=2;

19设Int n=3;则++n的结果是( )。

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

20设Int n=2;则有表达式++n+1= =4,n的结果是( )。

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

1下列能正确输入字符数组a 的语句是( )

A)scanf("%s",a); B)scanf("%s",&a);

C)scanf("%c",a); D)循环执行scanf("%c",&a[i]);

2在输入时,字符变量的值不用空格间隔,其输入函数可为( )。

A)scanf("%c %c %c",&a,&b,&c); B)scanf("%c%c%c",&a,&b,&c);

C)scanf("%3c",&a,&b,&c); D)循环执行getchar()

1C的字符常量是用双引号括起来的一个字符。

2字符串常量是一对单引号括起来的字符序列。

3设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为-32768-+32767。4在C语言中的实型变量分为两种类型,它们是float和double。

5 若有以下定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为3.500000。

(float)(a+b)/2+(int)x%(int)y

6输入语句的格式为:scanf("%d,%d,%d",&a;&b;&c); 是正确的。

7getchar()函数得到的字符可以不赋给任何变量,而作为表达式的一部分。

8scanf函数中无精度控制。

9a+==a=2; 是一个合法的赋值语句,赋值后a的值为:2。

10在TC中,printf()函数输出表列的求值顺序是从右到左。

11在printf函数中,"%ld"表示按十进制正整数输出。

12printf是C语言的输出语句。

13在printf函数中,格式字符c的意义是:输出单个字符。

14在printf函数中,不能使用转义字符。

15关系运算符的优先级别高于逻辑运算符

16C语言中没有逻辑型数据

1表达式8/4*(int)2.5/(int(1.25*(3.7+2.3))值的数据类型为()。

2若x、i、j和k都是int型变量,则计算下面表达式后,x的值为【】。

x=(i=4,j=16,k=32)

3若a是int型变量,则下面表达式的值为【】。

(a=4*5,a*2),a+6

7在变量说明中给同类变量赋初值时,各变量之间用【】隔开。

8以下程序的运行结果是【】。

main()

{int i=5; printf("%d,%d\n",++i,i++); }

9设x,y,z均为int型变量,请写出描述"x或y中有一个小于z"的表达式【】10若a=1,b=4,c=3,则表达式 !(a

11有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为【】

12若a=1,b=2,则表达式a

C语言(分支和循环结构)一

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

main()

{ int m=5;

if(m++>5) printf("%d\n",m);

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

A)7 B)6 C)5 D)4

2以下程序的输出结果为( )

# include

main ( )

{ int i=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=6 B) i=1, j=1, a=7

C) i=1, j=0, a=7 D) i=0, j=1, a=7

3有如下程序

main()

{ int a=2,b=-1,c=2;

if(a

if(b<0) c=0;

else c++;

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

}

该程序的输出结果是( )

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

4若i为int型,且有程序如下,则输出结果是( )

i=111;

if(i%3==0)

printf("####");

printf("****");

A) #### B) **** C) ####**** D) 无输出结果

5若运行时x=12,则运行结果为( )

{int x, y;

scanf("%d", &x);

y=x>12 ? x+10:x-12;

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

A) 0 B) 22 C) 12 D) 10

6以下程序的输出结果是( )

main()

{ int i=0, j=0, k=6;

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

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

}

A) 0, 0, 6 B) 1, 0, 7 C) 1, 1, 7 D) 0, 1, 7

7若变量都已正确说明,则以下程序段输出为( )

int a=1,b=2,c=3;

c=a;

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

A)a=1 b=2 c=1 B)a=1 b=2 c=3

C)a=1 b=3 c=1 D)a=2 b=3 c=2

8当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( )

if(a

if(c

else

if(a

if(b

else x=3;

else x=6;

else x=7;

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

9以下不正确的语句为( )

A)if(x>y);

B)if(x==y)&&(x!=0)x+=y;

C)if(x!=y)scanf("%d",&x);else scanf("%d",&y);

D)if(x

10有以下程序:

#include"stdio.h"

main( )

{char i;

for (; (i=getchar ())!='\n';)

{switch (i-'a')

{case 0: putchar (i);

case 1: putchar (i+1);break;

case 2: putchar (i+2);

case 3: break;

default: putchar (i);break;

}

}

printf ("\n");

}

输入下列数据后,程序的输出结果是( )

abcde

A) abcde B) abcee

C) abbde D) abccdd

11若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是( ) A) switch(a+b); B) switch(a*a+b*b)

{ case 1:y=a+b; break; {case 3:

case 0:y=a-b; break; case 1:y=a+b;break;

} case 3:y=b-a,break;

}

C) switch a D) switch(a-b)

{ case 1 :y=a-b; break {

case 2: x=a*d; break case c1:case 4:x=a+b;break; default:x=a+b; case c2:case 11:y=a-b;break; } default:y=a*b;break;

}

12写出下面程序输出结果( )

{int x=1, y=0, a=0, b=0;

switch(x)

{case 1:

switch(y)

{case 0: a++;

case 1: b++; }

case 2: a++; b++;

}

13C语言的for语句中的表达式可以部分或全部省略,但两个( )不可省略。但当三个表达式均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。

A) < B) ++ C) ; D) ,

14下面有关for循环的正确描述是( )。

A) for循环只能用于循环次数已经确定的情况

B) for循环是先执行循环体语句,后判定表达式

C) 在for循环中,不能用break语句跳出循环体

D) for循环体语句中,可以包含多条语句,但要用花括号括起来

15以下程序段( )。

x=-1;

do

{ x=x*x;}

while(!x)

A) 是死循环 B) 循环执行2次 C) 循环执行一次 D) 有语法错误

16如下的数组中,数组array占用的内存空间是( )个字节。

char array[]={'c','h','i','n','a'};

A. 1

B. 5

C. 6

D. 不确定

17设有程序段

int k=10;

while(k=0) k=k-1;

则下面描述正确的是( )。

A) while 循环执行10次B) 循环是无限循环

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

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

int n=0;

while(n++<3);

printf("%d",n)

A. 2

B. 3

C. 4

D. 以上都不对

19设有程序段

t=0;

while(printf("*"));

{ t++;

if (t<3) break;

}

下面描述正确的是( )。

A) 其中循环控制表达式与0等价B) 其中循环控制表达式与'0'等价

C) 其中循环控制表达式是不合法的D) 以上说法都不对

20下面程序的运行结果是( )。

#include

main()

{ int y=10;

do { y--;} while(--y);

printf("%d\n",y--);

}

A) -1 B) 1 C) 8 D) 0

21以下程序段的输出结果是( ).

main()

{ int i=5;

for ( ;i<=15; )

{ i++;

if (i%4==0) printf("%d ",i);

else continue;}

}

A. 8 12 16

B. 8 12

C. 12 16

D. 8

22以下不是无限循环的语句为( )。

A) for(y=0,x=1;x>++y;x=i++) i=x;

B) for( ; ;x++=i);

C) while(1){x++;}

D) for(i=10; ; i--) sum+=i;

23有如下语句

int x=3;

do

{ printf("%d\n",x-=2);} while(!(--x));

24以下不是无限循环的是( )

A. for(y=0,x=1;x>++y;x=i++) i=x;

B. for( ; ;x++=i);

C. while(1) x++;

D. for(i=10; ;i--) s+=i;

25以下正确的描述是( )。

A) continue语句的作用是结束整个循环的执行

B) 只能在循环体内和switch语句内使用break语句

C) 在循环体内使用break语句或continue语句的作用相同

D) 从多层循环嵌套中退出时,只能使用goto语句

26以下程序输出结果为( )

#include "stdio.h"

main()

{int i,b,k=0;

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

{ b=i%2;

while (b-->=0) k++;}

printf("%d,%d\n",k,b);

}

A. 3,-1

B. 8,-1

C. 3,0

D. 8,-2

27以下程序段中循环体总的执行次数是( )

int i,j;

for(i=7;i;i--)

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

{......}

A) 42 B) 21 C) 13 D) 36

28以下不正确的描述是( )

A. break 语句不能用于循环语句和switch语句外的任何其他语句

B. 在switch语句中使用break语句或continue语句的作用相同

C. 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行

D. 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环

1else语句总是和靠它最近的if匹配。

2switch语句中一定有default分支

3case后只能跟常量,不能跟变量

4break语句的作用就是结束本层循环。

5do-while语句构成的循环不能用其它语句构成的循环来代替。

6用do-while语句构成循环时,只要while后的表达式为0时就结束循环。

7for(表达式1;表达式2;表达式3)中,表达式1和表达式3不能同时都是逗号表达式。8for循环中,如果表达式2为空,则该循环一定是死循环。

9while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。10for(i=0,j=10;i<=j;i++,j--) k=i+j;执行完后,k的值为50。

1若a、b均为int型变量,且a=100,则以下的for循环是死循环.

for (b=100;a!=b;++a,b++) printf("----\n");

执行语句:for(i=1;i++<4;++i);后;变量i的值是5。

2以下程序的运行结果是【】

main()

{int x,y,z;

x=1;y=2;z=3;

x=y--<=x||x+y!=z;

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

}

3以下程序的运行结果是【】

main()

{int x,y,z;

x=1;y=1;z=0;

x=x||y&&z;

printf("%d,%d",x,x&&!y||z);

}

4以下程序的运行结果是【】

main()

{int a,b,c;

int s,w=0,t;

a=-1;b=3;c=3;

if(c>0)s=a+b;

else if(c>0)w=a-b;

else t=c;

printf("%d,%d,%d\n",s,w,t);

}

5阅读下面程序:

main()

{ int s, t, a, b;

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

s=1;

t=1;

if(a>0) s=s+1;

if(a>b) t=s+t;

else if (a==b) t=5;

else t=2*s;

printf("s=%d, t=%d", s, t);

}

6为了使输出结果t=4, 输入量a和b应满足的条件是【】

7下面程序的功能是在输入的一批整数中求出最大者,输入0结束循环。

#include main()

{ int a,max=0;

scanf("%d",&a)

while(【】){ if (max

scanf("%d",&a);

}

printf("%d",max);

}

8执行下面的程序段后,k值是【】。

k=1; n=263;

do { k*=n%10; n/=10; } while(n);

9等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有的和。请填空。#include

main()

{ int a,d,sum;

a=2;d=3;sum=0;

do

{ sum+=a;

a+=d;

if (【】) printf("%d\n",sum);

} while(sum<200);

}

10鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。

for(x=1;x<=29;x++)

{ y=30-x;

if (【】) printf("%d,%d\n",x,y);

}

11写出下面程序的运算结果【】。

# include

main ( )

{ int a=14, b=63;

while (a!=b)

{while (a>b) a-=b;

while (a

}

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

}

12下列程序的输出为【】。

#include

main()

{

int i,j,x=0;

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

{ if(i%3==2) break;

x++;

x++;

}

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

}

C语言(分支和循环结构)二

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

main( )

{ int a=-1,b=1,k;

if((++a<0)&&!(b--<=0))

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

else

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

}

A) -1 1 B) 0 1 C) 1 0 D) 0 0

与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是( ) A) if (x>0) y=1; B) if(x)

else if(x<0)y=-1; if(x>0)y=1;

else y=0; else if(x<0)y=-1;

else y=0;

C) y=-1 D) y=0;

if(x) if(x>=0)

if(x>0)y=1; if(x>0)y=1;

else if(x==0)y=0; else y=-1;

else y=-1;

若执行以下程序时从键盘上输入9,则输出结果是( ) main()

{ int n;

scanf("%d",&n);

if(n++<10) printf("%d\n",n);

else printf("%d\n",n--);

}

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

若i为int型,且有程序如下,则输出结果是( )

i=111;

if(i%3==0);

printf("####");

printf("****");

A) #### B) **** C) ####**** D) 无输出结果

请读下面程序:

main()

{int x=1, y=2, z=3;

x+=y+=z;

printf("%d\t", x

printf("%d\t", x

}

程序输出结果为( )

A) 5 4 B) 4 5 C) 5 6 D) 6 5

在C语言的if语句中,用作判断的表达式为( )

A) 关系表达式 B) 逻辑表达式

C) 算术表达式 D) 任意表达式

若变量都已正确说明,则以下程序段输出为( )

int a=1,b=2,c,d;

if (a=b) c=d=a;

else c=b;d=b;

printf("%d,%d",c,d);

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

main()

{int a=100,x=10,y=20,a1=5,a2=0

if(x

if(y !=10)

if(!a1) a=1;

else

if(a2) a=10;

a=-1;

printf("%d\n",a)

A)1 B) 0 C) 10 D)-1

若w、x、y、z、m均为int型变量,则执行下面语句后的m值是( )

w=1;x=2;y=3; z=4;

m=(w

m=(m

m=(m

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

若有定义: float w; int a, b; 则合法的switch语句是( )

A) switch(w) B) switch(a);

{ case 1.0: printf("*\n"); { case 1 printf("*\n");

case 2.0: printf("**\n"); case 2 printf("**\n");

} }

C) switch(b) D) switch(a+b);

{ case 1: printf("*\n"); { case 1: printf("*\n");

default: printf("\n"); case 2: printf("**\n");

case 1+2: printf("**\n"); default: printf("\n");

} }

若输入B,以下程序的运行结果为 ( )

main()

{ char grade;

scanf("%c", &grade);

switch(grade)

{ case 'A': printf(">=85");

case 'B':

case 'C': printf(">=60");

case 'D': printf("<60");

default: printf("error.");}

}

A) >=85 B) >=60 C) >=60 D) error.

<60

error.

选择出i的正确结果( )

int i=10;

switch(i)

{

case 9: i++;

case 10: i+=1;

case 11:i++;

default: i+=1;

}

A) 10 B) 11 C) 12 D) 13

C语言的do_while循环中,循环由do开始,用while结束;而且在while表达式后面的( ) 不能丢,它表示d0_while循环的结束。

A) \n B) ; C) % D) ,

C语言的do_while循环中,循环由do开始,用while结束;而且在while表达式后面的( ) 不能丢,它表示d0_while循环的结束。

A) \n B) ; C) % D) ,

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

#include

while(num<=2)

{

num++;

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

}

}

A) 1 B) 1 C) 1 D) 1

2 2 2

3 3

4

以下程序的输出为( )

# include

main( )

{ int y=10;

while (y--);

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

A. y=0

B. 无限循环,无结果输出

C. y=1

D. y=-1

设有程序段

int x=0,s=0;

while(!x!=0) s+=++x;

printf("%d",s);

则( )。

A) 运行程序段后输出0 B) 运行程序段后输出1

C) 程序段中的控制表达式是非法的D) 程序段执行无限次

下面程序段的运行结果是( )。

a=1;b=2;c=2;

while(a

{t=a; b=a; a=t; c--; }

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

A) 1,2,0 B) 2,1,0 C) 1,2,1 D) 2,1,1

以下能正确计算1×2×3×4...×10的程序段是( )。

A) do {i=1; s=1; s=s*i; i++; } while(i<=10)

B) do {i=1; s=0; s=s*i; i++; } while(i<=10)

C) i=1; s=1;

do {s=s*i; i++; } while(i<=10)

D) i=1; s=0;

do {s=s*i; i++; } while(i<=10)

下面程序的运行结果是( )。

#include

main()

{ int a=1,b=10;

do {b-=a; a++;} while(b--<0);

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

}

A) a=3,b=11 B) a=2,b=8 C) a=1,b=-1 D) a=4,b=9

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

for(i=2;i==0;) printf("%d",i--);

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

下面程序段的运行结果是( )。

for(y=1;y<10;) y=((x=3*y, x+1), x-1);

printf("x=%d,y=%d",x,y);

A) x=27,y=27 B) x=12,y=13 C) ) x=15,y=14 D) x=y=27 以下的for循环( )

for(x=0,y=0;(y!=123)&&(x<4);x++);

A. 执行3次

B. 执行4次

C. 循环次数不定

D. 是无限循环

下列程序段不是死循环的是( )。

A) int i=100;

while(1) {i=i%100+1; if (i>100) break;}

B) for( ; ; );

C) int k=0;

do { ++k;} while(k>=0);

D) int s=36;

{scanf("%d",&x);

if (x<0) continue;

printf("%3d",t);

}

A) 当x<0时整个循环结束

B) x>=0时什么也不输出

C) printf函数永远也不执行

D) 最多允许输出100个非负整数

以下为死循环的程序段是( )。

A) for(i=1; ; )

{if (++i%2==0) continue;

if (++i%3==0) break;

}

B) i=32767;

do { if (i<0) break;} while(++i);

C) for(i=1; ; ) if (++i<10) continue;

D) i=1; while(i--);

若有如下程序段

int m=15;

while(!m==0)

{m+=m; printf("test..."); }

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

A) 循环体语句执行一次。B) 循环执行无限次

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

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

#include

main()

{ int i,b,k=0;

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

{ b=i%2;

while(b-->=0) k++;

}

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

}

A) 3,-1 B) 8,-1 C) 3,0 D) 8,-2

语句if(a) x=1;与 if(a==0)x=1;等价

switch语句中的default分支一定放在最后

while语句do-while语句无论什么情况下,二者的执行结果都一样。

C语言的while、do-while和for几个循环语句,可以进行相互嵌套。

do-while语句构成的循环只能用break语句退出。

for( ; ; ) {循环体} 永远是一个死循环。

要使for(表达式1;表达式2;表达式3){循环体}不形成死循环,表达式2一定不能为空。while循环和do-while循环的while()后一定要有一个分号。

C语言程序的三种基本结构是嵌套结构、递归结构、顺序结构。

C语言中while与do-while语句的主要区别是do-while的循环体至少无条件执行一次。语句 x=3; do {printf("%2d",x--);} while(!x); 的执行结果是3。

以下循环for (i=0; i<10;printf("*"));

i++;

printf("\n");

是死循环。

以下程序的运行结果是【】

main()

{int a,b;

int i=5,j=7,k=0;

a=!k;

b=i!=j;

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

}

以下程序的运行结果是【】

main()

{if(2*1==2<2*2==4)

printf("##");

else

main()

{int a,b,c,d;

a=c=0;

b=1;

d=20;

if(a)d=d-10;

else if(!b)

if(! c)d=15;

else d=25;

printf("%d",d);

}

若运行时输入:3 5 /<回车>,则以下程序的运行结果是【】

main()

{float x,y;

char o;

double r;

scanf("%f%f%c",&x,&y,&o);

switch(o)

{case '+':r=x+y;break;

case '-':r=x-y;break;

case '*':r=x*y;break;

case '/':r=x/y;break;

}

printf("%f",r);

}

当运行下面程序时,从键盘键入right?<回车>,则下面程序的运行结果是【】。

#include

main()

{ char c;

while((c=getchar())!='?') putchar(++c);

}

下面程序段的运行结果是【】。

x=2;

do { printf("*"); x--; } while(!x==0)

当运行以下程序时,从键盘键入1 2 3 4 5 -1 <回车>,则下面程序的运行结果是【】。#include

main()

{ int k=0,n;

do { scanf("%d",&n); k+=n; } while(n!=-1);

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

}

下面程序段的运行结果是【】。

for( a=1,i=-1;-1<=i<1;i++)

{ a++;

printf("%2d",a);

}

printf("%2d",i);

以下程序输出结果为【】。

main()

{

int x=-5;

do

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

while (!(x++));

}

设x和y均为int型变量,则执行下的循环后,y值为【】。

for(y=1,x=1;y<=50;y++)

{ if(x>=10)break;

if (x%2==1)

{ x+=5; continue;}

x-=3;

}

C语言(分支和循环结构)三

若 w = 1, x = 2, y=3, z=4, 则条件表达式 w>x? w : y

有如下程序

main()

{ float x=2.0,y;

if(x<0.0) y=0.0;

else if(x<5.0) y=1.0/x;

else y=1.0;

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

}

该程序的输出结果是( )

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

若i为int型,且有程序如下,则输出结果是( )

i=322;

if(i%2==0) printf("####");

else printf("****");

A) #### B) **** C) ####**** D) 有语法错误, 无输出结果

有程序如下,若由键盘输入70,则输出结果是( )

{int n;

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

if(n<=90) printf("A\n");

else if(n<=80) printf("B\n");

else if(n>=60) printf("C\n");

else printf("D\n");

}

A) A B) B C) C D) D

选择运行结果为4的表达式( )

A) int i=0, j=0;

(i=3,(j++)+i);

B) int i=1, j=0;

j=i=((i=3)*2);

C) int i=0, j=1;

i=(j==1)?(i=1):(i=3);

D) int i=1,j=1;

i+=j=2;

以下程序段输出为( )

int a=1,b=2,c=3;

if(a>b)a=b,

b=c;

c=a;

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

A)a=1 b=2 c=1 B)a=1 b=2 c=3

C)a=1 b=3 c=1 D)a=2 b=3 c=2

请问读以下程序:

main()

{int a=5,b=0,c=0;

if(a=b+c)printf("&&&");

else printf("###");

}

以上程序( )

A)有语法错不能通过编译 B)可以通过编译但不能连接

C)输出&&& D)###

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

main()

{ int x=2,y=-1,z=2;

if(x

if(y<0) z=0;

以下程序的运行结果是( )

main()

{int x,y,z;

x=0;y=1;z=3;

x=++y<=x||x+y!=z;

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

}

A)0,1 B)1,2 C)0,2 D)1,1

有如下程序

main()

{ int x=1,a=0,b=0;

switch(x)

{ case 0: b++;

case 1: a++;

case 2: a++;b++;

}

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

}

该程序的输出结果是( )

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

写出下面程序输出结果( )

{int x=1, y=0, a=0, b=0;

switch(x)

{case 1:

switch(y)

{case 0: a++; break;

case 1: b++; break;}

case 2: a++; b++; break;}

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

}

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

在下列选项中,没有构成死循环的程序段是( ).

A. int i=100

while (1)

{i=i%100+1;

if(i>100)break;

}

B. for(;;);

C. int k=1000;

do{--k} while (k)

D. int s=36

While(s>=0);++s;

语句while (!e);中的条件!e等价于( )。

A) e==0; B) e!=1 C) e!=0 D) ~e

在C语言中( )。

A) 不能使用do_while语句构成的循环

B) do_while语句构成的循环必须用break语句才能退出

C) do_while语句构成的循环,当while语句中的表达式为非0时结束循环

D) do_while语句构成的循环,当while语句中的表达式为0时结束循环有如下程序

#include

main()

{

while(putchar(getchar())!='?');

}

当输入"china?"时,程序的执行结果是( )。

A) china B) dijob C) dijob? D) china?

定义如下变量:

int n=25;

则下列循环的输出结果是( )。

While(n>22)

C语言程序设计试题及答案

C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是(D) A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是(B) A、abc B、12AC C、sun D、A 3、设有语句inta=4;则执行了语句a+=a-=a*a后,变量a的值是(A) A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是(B) A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是(A) A、% B、/ C、%和/ D、+ 6、以下关于运算符的优先顺序的描述正确的是(C) A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C) sum=pad=5;pAd=sum++,pAd++,++pAd; printf(“%d\n”,pad); A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)

A、INPUTx、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456<回车>,下面程序的输出结果是:(C)voidmain() {intm,n; scanf(“%2d%3d”,&m,&n); printf(“m=%dn=%d\n”,m,n); } A、m=23n=45 B、m=234n=56 C、m=23n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是(A)main() {intx,y; scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\n”,y); } A、0B、22C、12D、10 11、C语言中while和do-while循环的主要区别(A) A、do-while的循环体至少执行一次 B、while的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句 12、以下对二维数组的正确说明的语句是(C) A、inta[3][] B、floata(3,4) C、doublea[3][4] D、floata(3)(4) 13、以下程序的输出结果是(C) main()

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

C语言程序设计教程第一章练习题题目

单选题 1、下列语言中不属于计算机语言的三大类的是(C)。 A.机器语言 B.汇编语言 C.脚本语言 D.高级语言 2、下列说法中不正确的是(C) A.计算机语言大致可分为三大类,即机器语言、汇编语言和高级语言 B.C语言是一种通用的、过程式的编程语言,具有高效、灵活、可移植等优点 C.C语言属于汇编语言 D.高级语言比汇编语言更贴近于人类使用的语言,易于理解、记忆和使用 3、以下开发工具中不属于主流的开发工具的是(B) A.Visual Studio B.Xcode C.Code::Block D.Eclipse 4、下列选项是对主流开发工具的介绍,其中错误的是(B) A.Visual Studio支持C/C++、C#、F#、VB等多种程序语言的开发和测试 B.Code::Block是一个免费的跨平台IDE,支持C、C++和Fortan程序的开发 C.Eclipse是一种被广泛使用的免费跨平台IDE,最初由IBM公司开发 D.Vim是一款功能非常强大的IDE ( 和其他IDE不同的是,Vim本身并不是一个用于开发计算机程序的IDE,而是一款功能非常强大的文本编辑器,它是UNIX系统上Vi编辑器的升级版。) 5、下列选项中,不属于开发一个C语言应用程序的具体实现步骤的是(A) A.启动开发工具 B.添加源文件 C.编写代码 D.运行程序 6、下列选项中,关于main()函数叙述不正确的是(C) A.一个完整的C语言程序中,有且只能有一个main()函数 B.main()函数是程序的主入口,程序总是从main()函数开始执行 C.如果没有声明main()函数,程序将从第1行开始执行 D.main()函数可以有返回值,也可以没有返回值 7、下面程序中,合法的选项是(D) A.#includeint main() { printf("hello world\n"); return 0; } B.#includeint man() { printf("hello world\n"); return 0; } C.#includeint main() { printf("hello world\n") return 0; } D.#includeint main() { print("hello world\n"); return 0; } 8、下面程序中,运行结果为“1,2”的是(A) A.#includeint main() { int a = 1; int b = 2; printf("%d %d\n",a,b); return 0; } B.#includeint main() { int a = 1; int b = 2; printf("%d,"a); printf("%d\n",b); return 0; } C.#includeint main() { int a = 1, b = 2; printf("%d,,%d\n",a,b); return 0; }

C语言程序设计试题集

第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。

程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C语言程序设计习题集(3)

指针 一单项选择题(每题2分,共40分) 1 以下叙述中错误的是_B__。 A 在程序中凡是以“#”开始的语句行都是预处理命令行 B 预处理命令行的最后不能以分号表示结束 C #define MAX是合法的宏定义命令行 D C程序对预处理命令行的处理是在程序执行的过程中进行的 2 若程序中有宏定义行:#define N 100 ,则以下叙述中正确的是__B_。 A 宏定义行中定义了标识符N的值为整数100 B 在编译程序对C源程序进行预处理时用100替换标识符N C 对C源程序进行编译时用100替换标识符N D 在运行时用100替换标识符 3 若有如下宏定义: #define N 2 #define y(n) ((N+1)*n) 则执行下列语句:z=4*(N+y(5));后的结果是_B__。 A 语句有错误 B z值为68 C z值为60 D z值为180 4 以下程序运行后的输出结果是_A__。 #define F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } A 12 B 15 C 16 D 20 5 以下程序运行后的输出结果是_C__。 #define f(x) (x*x) main() { int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } A 64,28 B 4,4 C 4,3 D 64,64 6 若已定义a为int型变量,则__D_是对指针变量p的正确说明和初始化。 A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列说明语句: static int a[]={2,4,6,8} static int *p[]={a,a+1,a+2,a+3}; int **q; q=p; 则表达式**(q+2)的值是_A__。 A 6 B 2 C 4 D 8 8 下面是一个初始化指针的语句:int *px=&a;,其中指针变量的名字应该__C_。 A *px B a C px D &a 9 若指针px为空指针,则_B__。。

C语言程序设计 复习题库

一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

C语言程序设计期末练习填空题.docx

面向对象程序设计期末综合练习二(填空题) 填空题 1.C++ 语言是在 _________语言的基础上发展起来的。 2.C++ 语言的编译单位是扩展名为 __________的 __________文件。 3.行尾使用注释的开始标记符为 __________ 。 4.多行注释的开始标记符和结束标记符分别为__________ 和 __________。 5.用于输出表达式值的标准输出流对象是_________。 6.用于从键盘上为变量输入值的标准输入流对象是________。 7.一个完整程序中必须有一个名为 ________的函数。 8.一个函数的函数体就是一条 _________语句。 9.当执行 cin 语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。 10.在 C++程序中包含一个头文件或程序文件的预编译命令为__________。 11.程序中的预处理命令是指以______字符开头的命令。 12.一条表达式语句必须以 ______ 作为结束符。 13.在#include 命令中所包含的头文件,可以是系统定义的头文件,也可以是 ________定义的头文件。 14.使用 #include 命令可以包含一个头文件,也可以包含一个______文件。 15.一个函数定义由 ________和 ________两部分组成。 16.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。 17. C++头文件和源程序文件的扩展名分别为______和 ______。 18.程序文件的编译错误分为 ________和 ________两类。 19.当使用 _______保留字作为函数类型时,该函数不返回任何值。 20.当函数参数表用 ______保留字表示时,则表示该参数表为空。 21 .从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为______,该函数带有______ 个参数。 22.当执行 cout 语句输出 endl 数据项时,将使 C++显示输出屏幕上的光标从当前位置移动到 ________的开始位置。 23.假定 x=5,y=6,则表达式 x++*++y 的值为 __________ 。 24.假定 x=5,y=6,则表达式x--*--y的值为__________。 25.假定 x=5,y=6,则执行表达式 y*=x++ 计算后, x 和 y 的值分别为 __________和 __________ 。 26.假定 x=5,y=6,则执行表达式 y+=x-- 计算后, x 和 y 的值分别为 __________和 __________ 。 27.C++ 常数 0x145 对应的十进制值为 __________。 28.C++ 常数 0345 对应的十进制值为 __________ 。 29.十进制常数 245 对应的十六进制的 C++表示为 __________。 30.十进制常数 245 对应的八进制的 C++表示为 __________ 。 31.signed char类型的值域范围是________至__________之间的整数。 32.int和float类型的数据分别占用_________和__________个字节。 33.float和double类型的数据分别占用_________和________个字节。 34.bool和char类型的数据分别占用_________和________个字节。 35.unsigned short int和int类型的长度分别为_________和________。

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

《C语言程序设计》综合练习题与答案 一、简要问答下列问题 1.什么是源程序? 2.C语言源程序的编译过程是怎样的? 3.简述C语言的特点 4.C/C++程序都是由函数组成的,其中最主要的、不可缺少的函数是哪一个?举例说明该函数的结构。 5.函数的返回值是通过什么语句来实现的,它的格式是什么? 6.在编写C程序时,为什么要把库函数的头文件包含到用户源程序中?如何把用户的头文件包含到用户源程序? 7.在计算机中,存储的数据为什么要分成多种不同的数据类型? 8.什么是常量?什么是变量? 9.C语言的五种基本数据类型有哪些?它们的关键字和所占的字节数分别是什么? 10.判断标识符是否合法的三条规则是什么? 11.什么是C语言的关键字?关键字对标示符有何影响? 12.全局变量和局部变量有什么区别? 13.什么是空语句,什么是语句块? 14.结构化程序设计的三种基本结构是什么? 15.三种循环语句各有什么特点? 16.什么叫多重循环结构? 17.Continue语句与break语句有什么区别? 18.字符与字符串有什么区别?‘b’与“b”相同吗? 19.什么是数组?一维数组的定义形式是怎样的? 20.字符串的结束标记是什么? 21.什么是按位操作?C语言对按位操作有哪些要求? 22.什么是指针?指针的两个操作符表示什么意义? 23.指针和数组有什么关系? 24.指针有那几种算术运算?说明指针变量的算术运算与一般变量的算术运算有何区别? 25.函数是由哪三部分组成的?函数定义的一般形式是什么? 26.函数原型是什么情况下使用?有什么作用? 27.形参和实参有什么关系,函数的两种调用方式是什么? 28.什么是函数的递归调用? 29.什么是函数指针?说明定义函数指针的一般形式。 30.什么是内部函数?什么是外部函数? 31.C语言的四种用户定义数据类型是什么? 32.C系统提供的三种主要预处理功能是什么? 33.什么是文件包含? 34.什么是文件?什么是流?

大学计算机C语言程序设计(填空题)

一、填空共219题 第1题题号:422 设有以下结构类型说明和变量定义,则变量a在内存所占字节数是【1】 . Struct stud { char num[6]; int s[4]; double ave; } a,*p; 答案: 1). 22 第2题题号:533 设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】. for (x=0,y=0;y!=123&&x<3;x++) scanf ("%d",&y); 答案: 1). 3 第3题题号:496 静态变量和外部变量的初始化是在【1】阶段完成的,而自动变量的赋值是 在【2】时进行的. 答案: 1). 编译 2). 函数调用 第4题题号:96 已知a=13,b=6, a&b的十进制数值为【1】. 答案: 1). 4 第5题题号:398

程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次. 答案: 1). 0 第6题题号:651 设w=5;w+= -2;则w的值为【1】. 答案: 1). 3 第7题题号:258 下面程序段的输出结果是【1】. int a=12; a=a&0377;pritnf("%d\n",a); 答案: 1). 12 第8题题号:457 设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2 后,t的值是【1】. 答案: 1). 1 第9题题号:402 设a取二进制数00101101,若想通过a^b运算使a的高4位取反,低4位不变,则b的 二进制数是【1】. 答案: 1). 11110000 第10题题号:311 若所用变量均已正确定义,则执行下面程序段后的值是【1】. for(i=0 ; i<2 ; i++ ) printf("YES"); printf("\n"); 答案: 1). YESYES

C语言程序设计练习题(含程序及参考答案)21182

C语言练习题 (所提供的源程序均采用自定义函数方式解决,如不采用函数方式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能一一验证,仅供参 考使用) 1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。 #include int fun(int a,int b,int c) { if(a+b>c && b+c>a && a+c>b) { if(a==b && b==c ) return 3; else if(a==b||b==c||a==c) return 2; else return 1; } else return 0; } void main() { int a,b,c,shape; printf("\nInput a,b,c: "); scanf("%d%d%d",&a,&b,&c); printf("\na=%d, b=%d, c=%d\n",a,b,c); shape =fun(a,b,c); printf("\n\nThe shape : %d\n",shape); }

2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。 #include void fun(int *x,int *y) { int t; t=*x;*x=*y;*y=t } void main() { int a=3,b=8; printf("%d %d\n",a,b); fun(&a,b); printf("%d %d\n",a,b); }

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

C语言程序设计的试题及答案

C语言程序设计的试题及答案 C语言程序设计的试题及答案C语言程序设计的试题及答案第一章基础知识 一、填空 1.每个C程序都必须有且仅有一个________函数。 2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3.软件是程序,以及______、使用和维护所需要的所有文档。 4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6.C语言是由________组成的。 7.C语言的函数可分为主函数ain、标准库函数和_________。 8.一个函数是由两部分组成的,即:________和函数体。 9.编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自

动化、管理信息系统、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11.机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12.与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。 13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14.C程序的执行均是由执行_________开始。15.函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C语句组成的执行部分。 16.C语言程序中一条简单语句是以________字符作为结束符的。 17.C语言是结构化、________的程序设计语言。 18.由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19.用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.第一个系统体现结构化程序设计思想的教学工具语言是_______语言。

C语言程序设计函数练习题及参考答案

C语言程序设计练习题及参考答案 1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。 #include int fun(int a,int b,int c) { if(a+b>c && b+c>a && a+c>b) { if(a==b && b==c ) return 3; else if(a==b||b==c||a==c) return 2; else return 1; } else return 0; } void main() { int a,b,c,shape; printf("\nInput a,b,c: "); scanf("%d%d%d",&a,&b,&c); printf("\na=%d, b=%d, c=%d\n",a,b,c); shape =fun(a,b,c); printf("\n\nThe shape : %d\n",shape); }

2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。 #include void fun(int *x,int *y) { int t; t=*x;*x=*y;*y=t } void main() { int a=3,b=8; printf("%d %d\n",a,b); fun(&a,b); printf("%d %d\n",a,b); }

C语言程序设计复习题

《C语言程序设计》复习题 一、判断题(本大题共60个小题) 1.C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 2.定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 3.注释内容太多会影响程序的执行效率。 4.变量要“先定义,后使用”。 5.字符常量'a'与字符串常量"a"没有区别。 6.数学公式y=-6xz+5[2(a-5)+3]写成C语言表达式是y=-6*x*z+5*[2*(a-5)+3]。 7.数学公式y=|x|+ab-c写成C语言表达式是y=fabs(x)+a*b-c。 8.表达式5/2+5.0/2+7%6 的值为5.5。 9.设int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/2*(int)(a+c)/2)%4 的值为:4.5。 10.设int a=12; 则表达式a/=a+a的值是0.5。 11.在C语言中,运算符!比&&的优先级高。 12.在C语言中,运算符的优先级最小的是逗号运算符。 13.scanf("%d,%d",&x,&y);的输入格式:3,4<回车>。 14.以下程序运行结果是:1,7,0 void main() { int x=1,y=1,z=10; if(z< 0) if(y> 0) x=3; else x=5; printf(" %d," ,x); if(z=y< 0) x=3; else if(y==0) x=5; else x=7; printf(" %d,%d" ,x,z); } 15.该程序运行结果是:BCother void main()

{ char x=‘B’; switch(x) { case ‘A’: printf(“A”); case ‘B’: printf(“B”); case ‘C’: printf(“C”); default: printf(“other”); } } 16.下面程序段运行时输出结果是a=2,b=8 void main() { int x=1,y=1,a=2,b=7; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf("a=%d,b=%d\n",a,b); } 17.下面程序,当输入为:"abc?" 时,执行结果是:abc void main() { char c; c=getchar(); while (c!='?' ) { putchar(c); c=getchar();} }

C语言程序设计试题集及答案

单项选择题 (002) 阅读程序题 (018) 程序填空题 (039) 编写程序题 (070) 一、单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123C) %d D) \n

【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodbs tart$it line# pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。 A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的int类型的常数是。 A) 32768 (超过了范围) B) 0 C) 037 D) 0xAF 【1.9】执行语句printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) –ffff D) ffff 【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768C) 1 D) 32768 【1.11】已知long i=65539; 执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。

相关文档
相关文档 最新文档