当前位置:文档之家› C++语言习题集

C++语言习题集

C++语言习题集
C++语言习题集

基础知识

一、单项选择

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

A. +1e+1 5e-9.4 03e2

B. -.60 12e-4 -8e5

C. 123e 1.2e-.4 +2e-1

D. -e3 .8e-4 5.e-0

*2.设以下变量均为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)

3.以下关于C语言标识符的描述中,正确的是( ① )。

A. 标识符可以由汉字组成。

B. 标识符只能以字母开头。

C. 关键字可以作为用户标识符。

D. Area与area是不同的标识符。

4.若定义int x;则将x强制转化成双精度类型的表达式为( ① )。

A. (double)x

B. x(double)

C. double(x)

D. (x)double

5.C语言的预处理命令( ① )C语言文本的一部分。

A. 是

B. 不是

6.设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是( ① )。

A. 0~255

B. 0~65535

C. -32768~+32767

D. -256~+255

7.以下不正确的叙述是( ① )。

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

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

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

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

8.运算符有优先级,在C语言中关于运算符优先级的正确叙述是( ① ).

A. 逻辑运算符高于算术运算符,算术运算符高于关系运算符

B. 算术运算符高于关系运算符,关系运算符高于逻辑运算符

C. 算术运算符高于逻辑运算符,逻辑运算符高于关系运算符

D. 关系运算符高于逻辑运算符,逻辑运算符高于算术运算符

E. 算术运算符高于关系运算符,关系运算符高于除逻辑非以外的其它逻辑运算符

9.在C语言中,5种基本数据类型的存储空间长度的排列顺序为( ① )。

A. char

B. char=int

C. char

D. char=int=long int<=float

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

A. D

B. 68

C. 不确定的值

D. C

*11.在C语言中,char型数据在内存中的存储形式是( ① )。

A. 补码

B. 反码

C. 原码

D. ASCII码

12.已知:char *s="\Name\\Address\n";则s所指的字符串的长度为( ① ).

A. 18

B. 15

C. 13

D. 说法不合法

*13.以下运算符中优先级最高的算符是( ① )。

A. &&

B. ++

C. ?:

D. !=

*14.下面正确的字符常量是( ① )。

A. '\X17'

B. '\80'

C. '\\'

D. "\n"

15.以下选项中属于C语言数据类型的是( ① ).

A. 复数型

B. 逻辑型

C. 双精度型

D. 集合型

16.若有变量说明: int a=0,b=0,c=0; ,以下符合C语言语法的赋值表达式是( ① )。

A. a=9+b+c=a+9

B. a=9+b; c=a+9

C. a=(9+b,b++)

D. a=9+b++=a+7

17.若有定义: int k=7; float = 2.5, b=4.7; 则表达式a+k%3*(int)(a+b)%2/4的值是( ① )。

A. 2.500000

B. 2.750000

C. 3.500000

D. 0.000000

18.C语言并不是非常严格的算法语言,在以下关于C语言的叙述中,错误的说法是( ① ).

A. 大写字母和小写字母的意义相同

B. 有些不同类型的变量可以在一个表达式中运算

C. 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型

D. 同一个运算符号在不同的场合可以有不同的含义

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

A. 016 0x8f 018

B. oabc 017 0xa

C. 010 -0x11 0x16

D. 012 7ff -123

20.以下不属于C语言关键字的是( ① )。

A. case

B. byte

C. enum

D. sizeof

21.表达式35%2*3的值是( ① )。

A. 3

B. 4

C. 1

D. 52.5

22.已知:int i=6,j;则执行语句j=++i+(i++)后的j值是( ① ),i的值是( ② )。

A. 4

B. 14

C. 13

D. 15

A. 6

B. 7

C. 8

D. 9

23.C语言规定:在一个源程序中,main函数的位置( ① )。

A. 必须在最开始

B. 必须在系统调用的库函数的后面

C. 可以任意

D. 必须在最后

24.若有代数式∶|3x+lgx|, 则正确的C语言表达式是( ① )。

A. fabs(x*3+log(x))

B. abs((x*3)+log(x))

C. abs(x*3)+abs(log(x))

D. fabs(x*3)+fabs(log(x))

25.已说明int a=256,执行语句printf("%x",a);的结果是( ① ).

A. 0100

B. 0256

C. 0ffe

D. 00ff

26.若有说明语句: char ch1='\065';char ch2="2"; char ch3='2';则ch1中( ① ), ch2

中( ② ),ch3中( ③ )。

A. 包含3个字符

B. 包含2个字符

C. 包含1个字符

D. 字符个数不确定,说明不正确

A. 包含1个字符

B. 包含2个字符

C. 包含3个字符

D. 字符个数不确定,说明不正确

A. 包含1个字符

B. 包含2个字符

C. 包含3个字符

D. 字符个数不确定,说明不正确

27.已知字母A的ASCII码为十进制数65,变量ch1为字符型,则执行语句ch1='A'+'6'-'3';后,ch1中的值是( ① )。

A. D

B. 68

C. 一个不确定值

D. C

28.在C语言中,十进制的47可等价地写为( ① ).

A. 2f

B. 02f

C. 57

D. 057

29.C语言中,以下( ① )不是正确的常量。

A. 543210L

B. 05078

C. -0x41

D. 12345

30.下面四个选项中,均是C语言关键字的选项是( ① )。

A. auto ^enum ^include

B. switch ^typedef ^continue

C. signed ^union ^scanf

D. if ^struct ^type

31.字符串"\\\22a,0\n"的长度是( ① ).

A. 8

B. 7

C. 6

D. 5

32.下面不正确的字符常量是( ① )。

A. 'c'

B. '\\'

C. 'W'

D. '' (注:单引号之间无空格)

33.设float x=16.8,y=8.5;则(int)(x+y)的结果为。

A. 25

B. 26

C. 24

D. 25.3

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

A. int

B. float

C. double

D. 不确定

35.一个C程序的执行是从( ① )。

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

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

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

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

36.在C语言中,以下为错误的int类型的常量是( ① ).

A. 32768

B. 0

C. 037

D. 0xAF

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

A. 必须为字母

B. 必须为下划线

C. 必须为字母或下划线

D. 可以是字母、数字和下线性中任一种字符

38.下列可以正确定义数据类型的关键字是( ① ).

A. Long

B. singed

C. shorter

D. integer

39.C语言中下列运算符的操作数必须是int型的运算是( ① )。

A. %

B. /

C. --

D. ++

40.下列可以正确表示字符型常数的是( ① ).

A. "a"

B. '\t'

C. "\n"

D. 297

二、是非判断

1.C语言规定,标识符只能由字母、数字和下划线三种字符组成。

2.C语言中的基本数据类型包括整型、单精度型、双精度型及字符型等。

3.控制台标准输入设备一般是指键盘。

4.在c语言程序的若干个函数中必须有一个并且只能有一个主函数。

三、多项选择

1.请从下面关于指针的叙述中, 选出6个正确的叙述。

1.指针即地址。

2.指针须先赋值后使用。

3.当指针p指向数组a的首址后,由于p[i]和a[i]都能引用数组元素,所以这里p和a是等价的。

4.int *p表示定义了一个指向int类型数据的指针变量p。

5.数组的指针是指数组的起始地址。

6.若有定义int a[4],*p=a,则p++后p指向数组a所占内存的第二个字节。

7.使用指针变量作函数参数采取的是"值传递"的方式。

8.相同类型的指针可以进行加减运算。

9.取地址运算&和取值运算*互为逆运算。

10.当指针p指向二维数组a的首址后,*p即数组元素a[0][0]的值。

11.指针变量和许多变量一样可以进行四则运算。

12.指针p指向数组元素a[2],若要其指向a[4],执行p=p*2即可。

2.请从下面关于局部变量和全局变量的叙述中, 选出5个正确的叙述。

1.全局变量和局部变量是按照变量的作用域来划分的。

2.一个C源程序中,不同函数中的变量不能重名。

3.全局变量在程序的全部执行过程中都占用存储单元。

4.函数的形式参数是局部变量。

5.主函数main中定义的变量在整个C文件中有效。

6.用static关键字声明的局部变量,其作用域被扩大。

7.全局变量的作用范围是从被定义开始到整个源程序文件的结束。

8.局部变量在作用范围内才占据内存,之外不占据内存。

9.局部变量和全局变量同名时,局部变量优先。

10.可以在复合语句中定义局部变量。

3.下列关于switch语句和break语句的结论中,不正确的是().

A. break语句用来退出switch语句

B. 在switch语句中可以根据需要使用或不使用break语句

C. 在switch语句中必须要使用break语句

D. break语句用来重新执行switch语句

四、程序填空题

1.设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为( ① )─( ② )。

五、填空

1.每个语句后面必须加上( ① ),表示该语句结束。

2.在C语言中,一个float型数据在内存中所占的字节数为( ① )个字节;一个double 型数据在内存中所占的字节数为( ② )个字节。

3.设有定义: unsigned int a=369; 试写出能将a中高、低字节内容

对调的赋值语句是( ① )。 (注: 不借助于其他变量。)

4.若a1和a2都是double型变量,且a1的初值为 3.0, a2的初值为2.0, 则表达式pow(a2,fabs(a1))的值为( ① )。

5.在C语言中,&作为双目运算符时表示的是( ① ),而作为单目运算符时表示的是( ② )。

顺序结构

一、单项选择

*1.设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x、y和z的值是( ① )。

A. x=10 y=15 z=10

B. x=10 y=10 z=10

C. x=10 y=10 z=15

D. x=10 y=5 z=10

2.设a=2,b=3,执行表达式c=b*=a-1后,变量c的值是( ① )。

A. 1

B. 2

C. 3

D. 4

3.以下程序的输出结果是( ① )。(注: _ 表示空格)

void main(void)

{

printf("\n*s1=%15s*","chinabeijing");

printf("\n*s2=%-5s*","chi");

}

A. *s1=chinabeijing_ _ _*^*s2=*_ _*chi*

B. *s1=chinabeijing_ _ _*^*s2=chi_ _*

C. *s1=*_ _chinabeijing_ _*^*s2=_ _chi*

D. *s1=_ _ _chinabeijing*^_ _*s2=chi*

4.在C语言库函数中,可以输出double型变量x值的函数是( ① )。

A. getchar

B. scanf

C. putchar

D. printf

5.产生区间[10,99 ]中的所有整数的表达式是( ① )。

A. random(89)+10

B. random(10)+89

C. random(90)+10

D. random(10)+90

6.设float x=16.6,y=8.5;则(int)(x+y) 的结果为( ① )。

A. 25

B. 24.5

C. 24

D. 16

7.已知:char w;int x;float y;double z;则表达式w*x+z-y结果的类型是( ① )。

A. float

B. char

C. int

D. double

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

void main(void)

{

int x,y,z;

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

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

}

A. x+y+z=48

B. x+y+z=35

C. x+z=35

D. 不确定值

9.以下说法正确的是( ① )。

A. 输入项可以为一个实型常量,如scanf("%f",3.5);

B. 只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");

C. 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);

D. 当输入数据时,必须指明变量的地址,如scanf("%f",&f);

10.不能进行++和--运算的数据类型是( ① ).

A. 指针

B. double

C. int

D. long

E. 以上都可以

11.若有定义: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

12.为求出s=10!的值,则变量s的类型应当为( ① ).

A. int

B. unsiged

C. long

D. 以上三种类型均可

13.以下程序存在语法性错误,关于错误原因的正确说法是( ① )。

void main(void))

{

int A=5,b;

void p_ch1();

...

b=p_ch1(A);

...

}

A. 语句void p_ch1(); 有错,它是函数调用语句,不能使用void说明。

B. 变量名不能使用大写字母。

C. 函数说明和函数调用语句之间有矛盾。

D. 函数名中不能使用下划线。

14.为了从键盘上输入字符串"HOW ARE YOU?",可以直接使用函数( ① ).

A. scanf

B. getstr

C. gets

D. 都不能直接使用

15.若i=4,则赋值语句j=i++;执行后,i和j的值分别为( ① )。

A. 4,5

B. 4,4

C. 5,4

D. 5,5

16.在scanf函数中,用于输入整型数据的格式控制符是( ① )。

A. %m

B. %f

C. %d

D. %s

*17.设有说明: double y=0.5,z=1.5; int x=10;则能够正确使用C语言库函数的赋值语句是( ① )。

A. z=exp(y)+fabs(x);

B. y=log10(y)+pow(y);

C. z=sqrt(y-z);

D. x=(int)(atan2((double)x,y)+exp(y-0.2));

18.设x,y是float类型变量,则不正确的赋值语句是( ① )。

A. ++x;

B. y=int(5);

C. x*=y+1;

D. x=y=0;

19.已知:int a,b;则以下错误的函数调用为( ① )。

A. a=getchar( ① );

B. putchar('\108');

C. scanf("%d%*2d",&a,&b);

D. putchar('\'');

20.下面程序段的输出结果是( ① )。

int a=013;

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

A. 23

B. 17

C. 10

D. 24

21.逗号表达式(b=3*2,b*4),b+12的值为( ① )。

A. 24

B. 36

C. 18

D. 6

22.已知char a;int b;float c;double d;执行语句c=a+b+c+d;后,变量c的数据类型是( ① ).

A. int

B. char

C. float

D. double

二、是非判断

1.printf函数具有运算功能,且是从右向左运算。

2.表达式i++与++i功能完全相同。

3.在switch语句中使用continue语句与使用break语句作用相同。

三、程序运行结果

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

void main(void)

{

int x,y,z=246;

x=z/100%9;

y=(-1)&&(-1);

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

}

四、填空

1.已有定义:

int m;

float n,k;

char chl,ch2;

为使m=3, n=6.5, k=12.6, ch1='a', ch2='A', 输入数据的格式为:

3 6.5 12.6aA

则对应的scanf语句是( ① );。

选择结构

一、单项选择

1.已知:char ch='A';则下列表达式的值是( ① )。

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

A. A

B. a

C. Z

D. z

2.已知:int x=1,y=2,z;则执行: z=x>y?++x:++y;则z的值为( ① ).

A. 1

B. 2

C. 3

D. 4

3.若给定条件表达式(n)?(c++):(c--),则与表达式n等价的表达式是( ① )。

A. n==0

B. n==1

C. n!=0

D. n!=1

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

void main(void)

{

int a=100,x=10,y=20,ok1=5,ok2=0;

if (x

if (y!=10)

if (! Ok1)

a=1;

else

if (ok2) a=10;

a=-1;

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

}

A. 1

B. 0

C. -1

D. 值不确定

*5.以下程序的运行结果是( ① )。

void main(void)

{

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

printf("\n%d\n",k

}

A. 4

B. 3

C. 2

D. 1

6.若有条件表达林(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是( ① )。

A. (exp==0)

B. (exp!=0)

C. exp==1

D. (exp!=1)

7.设有说明语句int x,a,b,c;则以下不合法的if语句是。

A. if(a==b) x++;

B. if(a<=b) x++;

C. if(a<>b) x++;

D. if(a>=b) x++;

8.请阅读以下程序:

#include

void main(void)

{

float a,b;

scanf(""%f"",&a);

if (a<0.0) b=0.0;

else if ((a<0.5)&&(a!=2.0)) b=1/(a+2.0);

else if (a<10.0) b=1.0/x;

else b=10.0

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

}

若运行时输入2.0,则上面程序的输出结果是( ① )。

A. 0.000000

B. 0.500000

C. 1.000000

D. 0.250000

9.设int a=4,b=5,c=6;则下列表达式的值不取0的是( ① )。

A. a==b || b==c

B. a || c

C. !a && b

D. a>b && b>c

10.若有语句int a=1,b=2,c=3;则以下值为0的表达式是( ① )。

A. 'a'&&'b'

B. a<=b

C. a>b || b

D. !(a+b)==c&&a

11.以下运算符中优先级最低的算符为( ① ).

A. &&

B. &

C. ||

D. =

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

void main(void)

{

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

if (x

if (y<0) z=0;

else z+=1;

printf("%d\",z)

}

A. 3

B. 2

C. 1

D. 0

13.判断char类型的变量c1是否为数字字符的正确表达式为( ① )。

A. c1>=0&&c1<=9

B. c1>='0'&&c1<='9'

C. '0'<=c1<='9'

D. c1>='0'||c1<='9'

14.以下能判断字符型变量 c 是否为大写字母的条件表达式是( ① )。

A. c>'A' && c<'Z'

B. c>=A && c<=Z

C. c<='A' || c>='Z'

D. c>='A' && c<='Z'

15.语句while(!y);中的表达式!y等价于( ① )。

A. y==0

B. y!=1

C. y!=0

D. y==1

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

A. <

B. +

C. &&

D. !=

二、是非判断

1.关系表达式的值可以作为整数参与运算。

三、程序运行结果

1.若运行时输入: -2 ,则以下程序的输出结果是( ① ) 。

void main(void)

{

int a,b;

scanf ("%d",&a);

b=(a>=0)? a:-a;

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

}

*2.以下程序的运行结果是( ① ) 。

void main(void)

{

if (2*2==5<2*2==4) printf("T");

else printf("F");

}

3.以下程序的运行结果是( ① ) 。

void main(void)

{

int x,y,z;

x=3;

y=z=4;

printf("%d;",(x>=y>=x)? 1:0);

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

}

4.如果运行时输入字符为'Q',则以下程序的运行结果是( ① ) 。 void main(void)

{

char ch;

scanf("%c",&ch);

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

ch=(ch>='a'&&ch<='z')? (ch-32):ch;

printf("%c",ch);

}

5.以下程序的运行结果是( ① ) 。

void main(void)

{

int x,y,z;

x=1;

y=1;

z=0;

x=x||y && z;

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

}

四、程序填空题

*1.假设奖金税率如下(a代表奖金,r代表税率)

a<500 r=0%

500<=a<1000 r=5%

1000<=a<2000 r=8%

2000<=a<3000 r=10%

3000<=a r=15%

以下程序对输入的一个资金数,求税率和应交税款以及实行奖金数(扣除奖金税后)。题中r代表税率,t代表税款,b代表实得奖金数。

void main(void)

{

float a,r,t,b;

int c;

scanf("%f",&a);

if (a>=3000) c=6;

else c= ① ;

switch(c)

{

case 0:r=0;break;

case 1:r=0.05;break;

case 2:

case 3: ② ;break;

case 4:

case 5:r=0.1;break;

case 6:r=0.15;break;

}

t=a*r;

b=a-t;

printf("r=%f,t=%f,b=%f",r,t,b);

}

2.执行下面的C语言程序段后,a=( ① ),b=( ② ),c=( ③ )。

int x=10,y=9;

int a,b,c;

a=(x--==y++)?x--:y++;

b=x++;

c=y;

3.有int x,y,z且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为( ① )。

4.设x、y、z均为int类型变量,请用C语言的表达式描述以下命题。

(1)x或y中有一个小于z ( ① )

(2)x、y和z中有两个为负数 ( ② )

(3)y是奇数 ( ③ )

5.设有int x=0,y=1;,则以下表达式的值为 ( ① )。

x++*x--! ='y'?8-4:y

6.当a=5,b=4,c=2时,表达式样a>b! =c的值是( ① )。

7.若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是( ① )。

*8.将以下含有switch语句的程序段改写成对应的含有嵌套if语句的程序段,请填空。

含有switch语句的程序段:

int s,t,m;

t=(int)(s/10);

switch (t)

{

case 10: m=5; break;

case 9: m=4; break;

case 8: m=3; break;

case 7: m=2; break;

case 6: m=1; break;

default:m=0

}

含有嵌套if语句的程序段:

int s,m;

if( ① )m=0;

else if(s<70) m=1;

else if(s<80) m=2;

else if(s<90) m=3;

else if(s<100) m=4;

② ;

9.以下程序实现: 输入圆的半径r和运算标志m,按照运算标志进行指定计算。

标志运算

a 面积

b 周长

c 二者均计算

#define pi 3.14159

void main(void)

{

char m;

float r,c,a;

printf("input mark a,c or b and r: ");

scanf("%c %f", &m,&r);

if ( ① ) { a=pi*r*r; printf("area is %f",a);}

if ( ② ) { c=2*pi*r; printf("circle is %f",c); }

if ( ③ ) { a=pi*r*r; c=2*pi*r; printf("area and circle are %f %f",a,c);} }

10.若a=1,b=4,c=3,则表达式 ! (a

11.有int x,y,z且 x=3,y=-4,z=5,则表达式x++-y+(++z)的值为( ① )。

12.若a=2,b=4,则表达式!(x=a)||(y=b)&&0的值是( ① )。

13.已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是( ① )。

14.若运行时输入: 100<回车>时,下面程序的运行结果是( ① ) 。

void main(void)

{

int a;

scanf("%d",&a);

printf("%s",(a%2!=0)? "no": "yes");

}

*15.若有说明语句: int x=1,y=0;则表达式x-- >(y+x)? 5:25>y++? '1':'2'的值是( ① )。

16.以下程序的功能是:输入一个小写字母,按字母排列序后移5个位置后输出(如把“a”变成“f”,“w”变成“b”)。请填空。

#include"stdio.h"

void main(void)

{

char c1;

c1=getchar();

if(c1>='a' && c1<='u') ① ;

else if(c1>='v' && c1<='z') ② ;

putchar(c1);

}

五、填空

1.阅读下面的程序并回答问题。

void main(void)

{

int m,n,x,y;

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

m=1;

n=1;

if (x>0) m=m+1;

if (x>y) n=m+n;

else if (x==y) n=5;

else n=2*m;

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

}

问题:为了使输出n=4, x的输入值应当为( ① ),y的输入值应当为( ② )。

注:必须使用C语言语法来描述,如:x<2 && x<3,否则不得分。

2.进行逻辑与运算的运算符是( ① )。

3.下面程序片段中循环体的执行次数是( ① )次。

for(i=1,s=0;i<11;i+=2) s+=i;

4.设x、y、z均为int类型变量,且x=3,y=-4,z=5,请写出下面每个表达式对应的结果。

(1)(x&&y)==(x||z) ( ① )

(2)!(x>y)+(y!=z)||(x+y)&&(y-z) ( ② )

(3)x++-y+(++z) ( ③ )

循环结构

一、单项选择

1.以下关于break语句的描述中正确的是( ① )。

A. 在switch语句中必须使用break语句

B. break语句只能用于switch语句体中

C. break语句只能用于循环语句中

D. 在break语句既可以用于switch语句中,也可以用于循环语句之中。

2.以下描述中正确的是( ① )。

A. 由于do-while循环中循环体语句只能是一条可执行语句, 所以循环体内不能使用复合语句。

B. do-while循环由do开始, 用while结束, 在while(表达式)后面不能写分号。

C. 在do-while循环体中,不一定要有能使while后面表达式的值变为零("假")的操作。

D. do-while循环中, 根据情况可以省略while。

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

int x=0,y=0;

while(x<15) y++,x+=++y;

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

A. 20,7

B. 6,12

C. 20,8

D. 8,20

*4.下面程序段的功能是计算1000!的末尾含有多少个零。请选择填空。

(提示:只要算出1000!中含有因数5的个数即可。)

for(m=0,n=5;n<=1000;n+=5)

{

t=n;

while( ① ) {m++; t=t/5;}

}

A. t%5

B. t=t%5==0

C. t%5==0

D. t%5!=0

5.设有程序段

int k=10;

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

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

A. while循环执行10次。

B. 循环是无限循环。

C. 循环体语句一次也不执行。

D. 循环体语句执行一次。

*6.下面程序段的功能是计算1000!的末尾含有多少个零。请选择填空。(提示:只要算出1000!中含有因数5的个数即可)

for(k=0,i=5;i<=1000;i+=5)

{

m=i;

while( ① )

{

k++;

m=m/5;

}

}

A. m%5=0

B. m=m%5==0

C. m%5==0

D. m%5!=0

7.下面程序的功能是把316表示为两个加数的和, 使两个加数分别能被13和11整除。请选择填空。

#include

void main(void)

{

int i=0,j,k;

do

{i++; k=316-13*i;}

while( ① );

j=k/11;

printf("316=13*%d+11*%d",i,j);

}

A. k/11

B. k%11

C. k/11==0

D. k%11==0

8.语句while(! x)等价于下列那条语句。

A. while(x==0)

B. while(x!=1)

C. while(x!=0)

D. while(x==1)

9.若定义int i; 则以下循环语句的循环执行次数是( ① )。

for(i=2; i==0;)

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

A. 无限次

B. 0次

C. 1次

D. 2次

10.若有如下语句

int x=3;

do

{

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

}

while(!(--x));

则上面程序段( ① )。

A. 输出的是1

B. 输出的是1和-2

C. 输出的是3和0

D. 是死循环

11.对for(表达式1; ;表达式3)可理解为( ① )。

A. for(表达式1;0;表达式3)

B. for(表达式1;1;表达式3)

C. for(表达式1;表达式1;表达式3)

D. for(表达式1;表达式3;表达式3)

12.下面程序的功能是在输入的一批正整数中求出最大者, 输入0结束循环, 请选择填空。 #include

void main(void)

{

int a,max=0;

scanf("%d",&a);

while( ① )

{

if (max

scanf("%d", &a);

}

printf("%d",max);

}

A. a==0

B. a

C. !a==1

D. !a

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

#include

void main(void)

{

int num=0;

while(num<=2)

{

num++;

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

}

}

A. 1

B. 1 2

C. 1 2 3

D. 1 2 3 4

14.C语言中while和do-while循环的主要区别是( ① )。

A. do-while的循环体至少无条件执行一次。

B. while的循环控制条件比do-while的循环控制条件严格。

C. do-while允许从外部转到循环体内。

D. do-while的循环体不能是复合语句。

15.语句while(! E);中的表达式!E等价于( ① )。

A. E==0

B. E!=1

C. E!=0

D. E==1

二、是非判断

1.循环体中break语句只能用来终止本次循环。

2.do-while语句的循环体至少执行一次。

三、程序运行结果

1.以下程序的运行结果是( ① ) 。

void main (void)

{

char s[50]={"china"};

int i=0;

while(s[i]) i++;

printf("%d",i);

}

2.若运行以下程序时, 输入下面指定数据,则运行结果为( ① )。 #include

void main(void)

{

int ch;

while ((ch=getchar())!='\r')

switch(ch-'1')

{

case 0:

case 1:putchar(ch+3);

case 2:putchar(ch+3);barek;

case 3:putchar(ch+3);

default:putchar(ch+1);break;

}

printf("\n");

}

输入数据(从第一列始):

1234<回车>

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

i=1;s=3

do

{

s+=i++;

if (s%7==0) continue;

else ++i;

} whlie(s<15);

printf("%d",i);

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

#include

void main(void)

{

int i,x,y;

i=x=y=0;

do

{

++i;

if(i%2!=0) {x=x+i;i++;}

y=y+i++;

}

while (i<=7);

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

}

四、程序填空题

1.下面程序用来求n(包括n,n>2)以内的所有质数。请将最合适的字句填入各空白处,使其成为一个完整、正确的程序。

#include

#include

void main(void)

{

int i,j,p,n;

scanf("%d",&n);

if(n<3) exit(0);

printf("%d ", ① );

for(j=3; ② ;j+=2)

{

p=(int)sqrt(j)+1;

for(i= ③ ;i

if (j%i ④ ) break;

if ( ⑤ ) printf("%d",j)

}

}

*2.下面程序的功能是计算1-3+5-7+...-99+100的值,请填空。

void main(void)

{

int i,t=1,s=0;

for(i=1;i<101;i+=2)

{

① ;

s=s+t;

② ;

}

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

}

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

#include

void main(void)

{

int a,d,sum;

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

do

{

sum+=a;

a+=d;

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

} while(sum<200);

}

4.执行下面程序段后, k值是( ① ) 。

k=1;

n=263;

do

{

k*=n%10;

n/=10;

} while(n);

5.以下fun函数用来在w数组中插入一元素x ,w数组中的数已按由小到大顺序存放,

插入前数组元素有n个(w[0]…w[n-1])。插入x后数组中的数仍有序。

int insert(float *w,float x, int n)

{

int i,p;

p=0;

while (x>w[p]) p++; /*找出插入的位置*/

for (i=n;i>p;i--)

w[i]= ① ;

② =x;

n++; /*插入后数组元素个数加1*/

③ ;

}

数组

一、单项选择

1.判断字符串str1是否大于字符串str2, 应当使用( ① )。

A. if (str1>str2)

B. if strcmp(str1, str2))

C. if (strcmp(str2,str1)>0

D. if (strcmp(str1,str2)>0)

2.下面程序中有错误的行是( ① )。

(每行程序前面的数字表示行号)

1 main()

2 {

3 int x[3]={i};

4 int k;

5 scanf("%D",&x);

6 for (k=1;k<3;k++)x[0]=xx[0]+x[i];

7 printf("x[0]=%d\n",x[0]);

8 }

A. 3

B. 6

C. 7

D. 5

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

OntToOne=ON

#include

void main(void)

{

char str[]="SSSWLIA",c;

int k;

for(k=2;(c=str[k])!='\0';k++)

{

switch(c)

{

case 'I': ++k;break;

case 'L': continue;

default:putchar(c); continue;

}

putchar('*');

}

}

A. SSW*

B. SW*

C. SW*A

D. SW

4.下面程序的功能是从键盘输入一行字符, 统计其中有多少个单词, 单词之间用空格分隔。请选择填空。

OntToOne=ON

#include

void main(void)

{

char s[80],c1,c2=' ';

int i=0,num=0;

gets(s);

while(s[i]!='\0')

{

cl=s[i];

if (i==0) c2=' ';

else c2=s[i-1];

if ( ① ) num++;

i++;

}

printf("These are %dwords.\n",num);

}

A. c1==' '&&c2==' '

B. c1!=' '&&c2==' '

C. c1==' '&&c2!=' '

D. c1!=' '&&c2!=' '

5.对两个数组a和b进行如下初始化:

char a[]="ABCDEF";

char b[]={'A', 'B', 'C', 'D', 'E', 'F'};

则以下叙述正确的是( ① )。

A. a与b数组完全相同

B. a与b长度相同

C. a中存放字符串,b中存放字符

D. a数组比b数组长度长

二、是非判断

1.字符串作为一维数组存放在内存中。

2.说明语句int a[7]={5,6,7},由于数组长度与初值个数不同,故该语句不正确。

3.double a[5][]是对二维数组a的正确说明。

4.字符数组可以存放字符串。

三、程序运行结果

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

int i;

char x[]="the teacher";

i=0;

while(x[++i]!='\0')

if (x[i-1]=='t') printf("%c",x[i]);

《C程序设计语言》样卷

韩山师范学院2011年专升本插班生考试样卷 计算机科学与技术专业高级语言程序设计试卷(A卷) 一、填空题(每空1分,共10分) 1.C程序的基本单位是________。 2.C语言源程序文件的后缀是________。 3.C语言中的标识符由________、________和字母组成。 4.设y为float型变量,执行表达式y=6/5之后,y的值是________。 5.在C语言中,要求运算量必须是整型的运算符是___________。 6.如果函数值的类型与返回值的类型不一致时,应该以___________为准。7.已知int a=8,*p=&a;,则*p的值是___________。 8.把一些不同类型的数据作为一个整体来处理时,常用___________。9.若x=2,y=3,则x|y<<2的结果是___________。 二、单项选择题(每小题1.5分,共30分) A.顺序结构、选择结构、循环结构B.递归结构、循环结构、转移结构C.嵌套结构、递归结构、顺序结构D.循环结构、转移结构、顺序结构2.在一个C语言的源程序中,以下叙述正确的是()。

A.必须有除主函数外其他函数B.可以有多个主函数 C.必须有一个主函数D.可以没有主函数 3.以下叙述正确的选项是()。 A.C语言的源程序不必通过编译就可直接执行 B.C语言中的每条语句最终都将被转换成二进制的机器指令 C.C语言程序经编译形成的二进制代码可以直接执行 D.C语言中的函数不可以单独进行编译 4.算法是指为解决某个特定问题而采取的正确且有限的步骤,下面不属于算法的5个特性的是( )。 A.有零个输入或多个输入B.高效性C.有穷性D.确定性5.以下能正确定义且赋初值的语句是( )。 A.int n1=n2=10; B.char c=32; C.float f=f+1.1; D.double x=12.3E2.5 6.有以下程序: main() { char a='a',b; printf("%c",++a); printf("%c\n",b=a++); } 程序运行后的输出结果是( )。 A.bb B.bc C.ab D.ac 7.以下程序段的输出结果是( )。 int a=1234; printf("%2d ",a); A.12 B.34 C.1234 D.提示出错 8.有以下程序:

C语言基础知识_测试题

C语言程序设计基础测试题 一、单选 [1] 下面叙述中错误的是____。 A. 复合语句中定义的函数只在该复合语句中有效 B. return( )语句中的括号中,可以是变量,常量或有确定值的表达式 C. 形式参数也是局部变量 D. 主函数中定义的变量在整个程序中都是有效的 [2]下列说法中正确的是____。 A.带参数的宏定义中的参数是没有类型的 B.宏展开将占用程序的运行时间 C.宏定义命令是C语言中的一种特殊语句 D.使用#include命令包含的头文件必须以“.h"为后缀 [3.] 若函数的形参为一维数组,则下列说法中正确的是____。 A.调用函数时的对应实参必为数组名 B.形参数组可以不指定大小 C.形参数组的元素个数必须等于实参数组的元素个数 D.形参数组的元素个数必须多于实参数组的元素个数 [4]. 系统的标准输出设备是____。 A.键盘 B.硬盘 C.内存 D.显示器 [5] 下面叙述中正确的是____。 A.全局变量在定义它的文件中的任何地方都是有效的 B.全局变量在程序的全部执行过程中一直占用内存单元 C. C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式 D. 说明函数时必须明确其参数类型和返回类型 [6]. C程序的基本结构单位是____。 A.文件 B.语句 C.函数 D.表达式 [7] 对于定义,char *aa[2]={"abcd","ABCD"},选项中说法正确的是____。 A.aa数组元素的值分别是"abcd"和"ABCD" B.aa是指针变量,它指向含有两个数组元素的字符型一维数组 C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D.aa数组的两个元素中各自存放了字符'a'和'A'的地址 [8]. 任何一个C语言的可执行程序都是从____开始执行的。 A.程序中的第一个函数 B.main( )函数的入口处

C语言基础练习题(含答案)Word版

第一章C语言基础知识 1.1 选择题 1. 以下不是C语言的特点的是()。B A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2. 下列字符序列中,不可用作C语言标识符的是()。B A.abc123 B.no.1 C._123_ D._ok 3. 正确的C语言标识符是()。A A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。B A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是()。B A.\\ B.\0xAA C.\t D.\0 6. 不属于C语言关键字的是()。d A.int B.break C.while D.character 7. 是C语言提供的合法关键字的是()。b A.Float B.signed C.integer D.Char 8. 以下不能定义为用户标示符的是()。b A.scanf B.Void C._3com_ D.int 9. 一个C程序是由()。 b A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 c A.程序行 B.语句 C.函数 D.字符 11. 下列说法中,错误的是()。 a A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12. 以下说法中正确的是()。 c A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行

C语言入门手册

●C语言入门手册 ●这里不是教你什么知识,而是给你澄清一些资料,只给对编程一窍不通的或 者刚入门的人看。如果你尚未学习或者才学习不够一天,一定要看这手册,这份手册已经讲述的知识,我们不会在版面给予回答,此手册我会尽量保持准确,但如有不正确,请指正,我也会不断更新此手册 ●Q:什么是C? ●A:一门面向过程的计算机语言,发明至今已经差不多有三十年历史,由于 它相对其他高级语言高效,运行效率又比较接近低级语言,所以至今仍得到广泛的引用,无论你用windows还是linux,你现在看到东西的底层都是用C 写的,而大部分的网络协议都是用C实现的,画面最漂亮的游戏用C实现的,工业控制程序也是用C实现的。C不是万能,也不是垃圾,只是一门某些方面适用,某些方面不适用的语言 ●Q:什么是C++? ●A:一门面向对象的计算机语言,发明至今已经有二十多年了。由于面向对 象编程对程序架构有较好的帮助,因为比较适合构建大型的系统(当然,学术界对此存在争论),但无论如何,C++由于和C一样接近底层,而且又面向对象,所以也得到广泛的使用。C++不是万能,也不是垃圾,只是一门某些方面适用,某些方面不适用的语言,不要向某一个笨蛋一样认为c + 类== c++ ●Q:TC,VC,BC,BCB是什么?有什么区别?谁好? ●A:它们都是开发C/C++的开发环境,是软件。它们是不同时期由不同公司 发行的软件Turbo C ,Borland公司在八十年代末期发行的C语言的开发环境Turbo C++,Borland公司在八十年代末九十年代初发行的C++语言的开发环境Visual C++,Microsoft公司在九十年代至今发行的C/C++开发环境Borland C++,Borland公司在九十年代中发行的C/C++开发环境Borlan C++ Builder,Borland公司在九十年代后期至今开发的C/C++开发环境,与其他开发环境不用的是它属于快速应用程序开发(RAD),可以让你不写代码就能建立程序,当然它的运行效率见仁见智没有什么是万能的,不同场合用不同的东西而且C/C++还有很多开发环境,譬如gcc,watcom C++,Dev C/C++ ●Q:什么语言/开发环境最好? ●A:没有最好,只有最适用某方面 ●Q:需要什么基础才能学C/C++ ●A:至少学过幼儿园语文,小学英语,小学数学才能学,所以先确定你拥有 小学学历,然后就能学了至于学习C++前是否需要学C,C++的发明者认为不用,但见仁见智 ●Q:如何更有效的学习C/C++? ●A:不断的看书+实践,先把书上的练习题做完再说,务必记住不要钻牛角尖, 很多初学者经常犯这样的错误,不要盲目的提出问题,现在看来是问题其实在以后的实践和学习中都会慢慢理解的,任何东西都需要一个过程。万万不可浮躁。 ●Q:TC能开发windows软件吗? ●A:不能,因为不同系统,生成的程序格式不同 ●Q:要多久才能成为高手? ●A:当你不再问这个问题的时候,总是会有比你技术高的人,也许你在你生 活的环境中没有,的确可以说你在这个小范围是高手,但是再在别的地方一定会有比你厉害的人只是你没有接触到而已 ●Q:学C/C++有什么用? ●A:先想想你为了什么而学,想不到就不要学 ●Q:学完C/C++又能怎样 ●A:没怎样,学是为了使用服务的,只证明你会一门语言,但不等于你会开 发软件。就像学外语,为的是跟外国人交际,但如果你不懂交际,即使精通英语,法语,日语,朝鲜语,阿拉伯语,西班牙语……还是不会跟人交际。 你应该继续学习软件开发的知识,包括数据结构,算法,软件工程等等,还有要提高数学水平,譬如微积分,离散数学,矩阵,概率,统计,数值分析。 ●Q:我有很多不懂,怎么办? ●A:查帮助,搜索引擎。最著名的帮助文档叫MSDN,我们主要使用其光盘发 行版,D版可以从电脑城买,正版可以去微软订购,如果没有光盘可以去https://www.doczj.com/doc/7c7999885.html,查询。 ●二、开始学习了 ●Q:我在TC看到缺少cos.obj的提示,为什么?

C程序设计语言 (第二版) 课后答案第一章

Chapter 1 Exercise 1-1 Run the “hello world” program on your system. Experiment with leaving out parts of the program, to see what error message you get. #include int main() { printf("hello, "); printf("world"); printf("\n"); return 0; } Exercise 1-2 Experiment to find out what happens when printf’s argument string contains \c, where c is some character not list above. Exercise 1-3 Modify the temperature conversion program to print a heading above the table. #include int main() { float fahr, celsius; float lower, upper, step; lower = 0; upper = 300; step = 20; fahr = lower; printf("Fahrenheit temperatures and their centigrade or Celsius equivalents\n"); while (fahr <= upper) { celsius = (5.0/9.0) * (fahr-32.0); printf("%3.0f %6.1f\n", fahr, celsius); fahr = fahr + step; } return 0; }

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

第一部分C语言基础 一、选择题 1、以下正确得C语言标识符就是() A。%X B。a+b?C.a123 D.test! 2、已定义int a,b;则以下不正确得C语句就是() A.a*=5;??B。b/=2;? C.a+=1、75;?D.b&&=a; 3、若x、i、j与k都就是整型变量,则执行下面表达式后x得值为( ) x=(i=4,j=16,k=32) A.4?B.16 ?C.32 D.52 4、C语言中得标识符只能由字母、数字与下划线三种字符组成,且第一个字符( ) A.必须就是字母???B.必须为下划线? C.必须为字母或下划线D.可以就是字母、数字、下划线中得任一字符 5、下面正确得字符常量就是( ) A.“c”? B。’\\”? C.‘w’??D.” 6、设int a=2,b=0,c;则执行语句c+=b&&a--后, c得结果为( )。 A.0,1B.1,0 ?C.2,0 D.不确定 7、以下不正确得C语言标识符就是()?A) int B)a_1_2?C)ab1exe D)_x 8、以下就是正确得C语言标识符就是( )。?A)#define?B)_123 C) %d D) \n 9、下列四组字符串中都可以用作C语言程序标识符得一组就是() 。?A) prin tB)i\am C)Pxq D)str_l ???oodbs tart$it line# _3d one_half My-〉bookCpp ? pow 10、下面各选项组中,均就是C语言关键字得组就是()。?A)auto,enu

m,include B)switch,typedef,continue?C)signed,union,scanf?D)if,s truct,type 11、下列不属于C语言关键字得就是( ) 。 A)default?B)register C)enum ?D)external 12、C语言程序从main()函数开始执行,所以这个函数要写在( )。?A) 程序文件得开始?B)程序文件得最后?C)它所调用得函数得前面 D) 程序文件得任何位置 13、下列关于C语言得叙述错误得就是( ) A)大写字母与小写字母得意义相同?B) 不同类型得变量可以在一个表达式中 C)在赋值表达式中等号(=)左边得变量与右边得值可以就是不同类型?D) 同一个运算符号在不同得场合可以有不同得含义 14、在C语言中,错误得int类型得常数就是( ) 。?A)32768?B)0 C)037?D) 0xAF 15、将字符g赋给字符变量c,正确得表达式就是( )。 A) c=\147 ?B)c="\147" ?C)c='\147' 16、下列转义字符中错误得一个就是( )。 A) ’\000’ B)'\0014' ?C) ’\x111’ D) ’\2’ 17、将空格符赋给字符变量c,正确得赋值语句就是( )。 A) c=’\0’ B) c=NULL C)c=0 D)c=32 18、已知:char a=’\70’;则变量a中()。 A)包含1个字符?B)包含2个字符?C) 包含3个字符?D) 说明非法 19、字符串"\”EOF\n=-\61\””得长度就是( )。 A)8 ?B) 9?C)14?D)非法字符串

(完整版)C程序设计语言复习题(试题及答案版)

一.填空题 26.C#源程序的后缀名为______.cs________。 26.C#中每个int 类型的变量占用____4___个字节的内存。 26.C#的每行语句以________分号_______结尾。 26.布尔型的变量可以赋值为关键字_____true__________或_____false_________。 26.如果int x的初始值为5,则执行表达式x - =3之后,x的值为_____2_________。 26.do...while语句在执行循环体_____之后________测试语句是否满足循环条件。 26.关键字_______class________表示一个类的定义。 26.如果一个类包含一个或多个抽象方法,它是一个_________抽象_____________类。 26.try块运行后,总是会执行_________finally_____________块中的代码。 26.一个数组如果有两个索引值,那么它是__________二维__________数组。 二.单项选择题 1.在对SQL Server 数据库操作时应选用()。 A、SQL Server .NET Framework 数据提供程序; B、OLE DB .NET Framework 数据提供程序; C、ODBC .NET Framework 数据提供程序; D、Oracle .NET Framework数据提供程序; 2.下列选项中,()是引用类型。 A、enum类型 B、struct类型 C、string类型 D、int类型 3.C#的数据类型有() A、值和调用类型; B、值和引用类型; C、引用和关系类型; D、关系和调用类型 4.下列描述错误的是() A、类不可以多重继承而接口可以; B、抽象类自身可以定义成员而接口不可以; C、抽象类和接口都不能被实例化; D、一个类可以有多个基类和多个基接口; 5.下列关于构造函数的描述正确的是() A、构造函数可以声明返回类型。 B、构造函数不可以用private修饰 C、构造函数必须与类名相同 D、构造函数不能带参数 6.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; 那么myArray3[2][2]的值是( )。 A、9 B、2 C、6 D、越界 7.接口是一种引用类型,在接口中可以声明(),但不可以声明公有的域或私有的成员变量。 A、方法、属性、索引器和事件; B、方法、属性信息、属性; C、索引器和字段; D、事件和字段; 8.在https://www.doczj.com/doc/7c7999885.html,中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误 的是()。 A、insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行; B、ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 C、Select操作的Sql语句只能由ExecuteReader()方法来执行; D、ExecuteReader()方法返回一个DataReder对象; 9.Winform中,关于ToolBar控件的属性和事件的描述不正确的是( )。 A、Buttons属性表示ToolBar控件的所有工具栏按钮 B、ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度 C、DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭 头键 D、ButtonClick事件在用户单击工具栏任何地方时都会触发

C语言试题及答案

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 第2章数据类型运算符和表达式习题 1. 单项选择题 (1) 以下选项中,正确的 C 语言整型常量是 D 。 A. 32L B. 510000 C. -1.00 D. 567 (2) 以下选项中, D 是不正确的 C 语言字符型常量。

C语言初学者的几个经典习题

1.求两个数的最小公倍数: #include void main() { int a,b, num1,num2,temp; printf("请输入两个数:\n"); scanf("%d%d",&num1,&num2); if (num1 int sum_day(int year,int month,int day); void main() { int year,month,day;int days; printf("请输入要查询的年月日\n"); scanf("%d%d%d",&year,&month,&day); days=sum_day(year,month,day); printf("该天是%d天\n",days); } int tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int sum_day(int year,int month,int day) { int i,days=0; if(year%4==0&&year%100!=0||year%400==0) tab[2]=29; for(i=1;i int isprime (int a); void main()

C语言基础练习100题(含答案)

C语言基础练习100题(含答案) 欧阳学文 雷柳青编排 1、下面程序的输出是________ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是________. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C语言字符常量是__________. A) '\t' B) "A" C) 65 D) A 4、字符(char)型数据在微机内存中的存储形式是____. A) 反码B) 补码C) EBCDIC码D) ASCII码 5、设int a=12,则执行完语句a+=a=a*a 后,a的值是________ A) 552 B) 264 C) 144 D) 264 6、执行下面程序中的输出语句后,输出结果是______. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 7、下面程序的输出是__________. #include void main() {int x=023; printf("%d\n",x); } A) 17 B) 18 C) 23 D) 24 8、下面程序的输出是___________. #include void main() {char ch1,ch2; ch1='A'+'5''3'; ch2='A'+'6''3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 9、以下程序的输出结果是________. #include void main() { int x=10,y=10; printf("%d %d\n",x,y); } A) 10 10 B) 9 9 C) 9 10 D) 10 9 10、若x和y都是int型变量,x=100,y=200,且有下面的程序片段: printf("%d",(x,y)); 上面程序片段的输出结果是_______.

C语言从入门到精通所需的7本书

C语言从入门到精通所需的7本书 作者:王霸羔子 1.C primer plus C primer plus作为一本被人推崇备至的c入门经典,C primer plus绝非浪得虚名。应该算得上C教材里最好的入门书了。 在知识广度上,很少有书能匹及。它能为你系统学习c提供一个良好的平台。作者对c 的见解精辟。在娓娓叙述的同时,作者辅以大量程序以分析。它让我对C有了更加系统的全新认识。决非国人所写的那些公理化的教条说教,我觉得作者把自己的心血全部吐露。书很厚,近700页,却不没有让我觉得任何的烦琐。甚至是兴趣盎然。我把上面所有的课后题目都做了。 最为重要的是,看完这本书后,我再也不觉得c很高深枯燥无味了。如果你问我,你最大收获是什么。我会告诉你,兴趣! 2.The C programming language

拿到这本薄薄的书,很多人开始怀疑,C语言是这么几百页能讲清楚的么。看完这本书,我想答案已经很明了,却真的让人感到震憾。什么是好书?无法删减的书才是真正的好书。 K&R的书一如C语言的设计理念:简单而高效里面的习题建议都认真做一遍,而且是在linux下用vi来做,用makefile来编译,用shell脚本来进行测试,本来第八章的题就是和linux 相关的计算机的大学生们不应只会在WINDOWS下用VC来编程,而都应该在linux环境下进行程序设计,因为linux本身就是为开发者准备的操作系统。 3. C和指针 这本书最大的特点就是和指针结合在一起进行讲解,通过一些经典的C例题对所学的知识进行巩固,对指针的基础和深入的探讨,有助于初学者更好的理解C语言,还有明白C 的存储机制。我之前买了《C语言详解》和《C Primer Plus》结合这本书一起学习,可以说是完美的,希望每个热爱C语言的人能够拥有这本书。 我在这里推荐给所有想学好C语言的朋友! 4.C专家编程

《C程序设计语言》模拟试卷二

一、单项选择题 1.以下并非C语言的特点的是____________。 A.C语言简洁紧凑 B.能够编写出功能复杂的程序 C.C语言可以直接对硬件进行操作 D.C语言移植性好 2.在C程序中,main()的位置___ ______。 A.必须作为第一个函数 B.必须作为最后一个函数 C.可以任意 D.必须放在它所调用的函数之后 3.一个C程序是由____ ________。 A.一个主程序和若干个子程序构成 B.一个或多个函数构成 C.若干过程组成 D.若干子程序组成 4.以下字符串为标识符的是___ _________。 A._MY B.2_2222 C.short D.LINE 5 5.下列符号可以作为变量名的是___ ________。 A.+a B.*p C._DAY D.next day 6.设c是字符变量,则以下表达式正确的是___ _______。 A.c=666 B.c='c' C.c="c" D.c="abcd" 7.以下说法正确的是_____ _______。 A.输入项可以为一个实型常量,如scanf("%f", 3.5) B.只有格式控制没有输入项也能进行正确输入,如scanf("%d") C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如 D.当输入数据时,必须指定变量的地址,如scanf("%f", &f) 8.若a, b, c均定义为整型,要给它们输入数据,正确的输入语句是____ ________。 A.read(a, b, c); B.scanf("%d%d%d", a, b, c); C.scanf("%D%D%D", a, b, c); D.scanf(%d%d%d", &a, &b, &c); 9.若a是float变量,b是unsigned型变量,以下输入语句中合法的是____ ___。 A.scanf("%6.2f%d", &a, &b); B.scanf("%f%n", &a, &b); C.scanf("%f%3o", &a, &b); D.scanf("%f%f", &a, &b); 10.if后面的表达式之值__________。 A.只能是0或1 B.只能是正整数或负整数 C.只能是整数或字符型数据 D.可以是任何类型的数据 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与__ ___组成配对 关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其直接最近的未配对的if D.同一行上的if 12.选择出合法的if语句(设int x, a, b, c;)____ _____。 A.if(a = b0 x++; B.if (a =< b) x++; C.if(a <> b) x++; D.if (a=>b) x++; 13.语句while(!e); 中的条件!e等价于____ _______。 A. e == 0 B.e!=1 C.e!=0 D.~e 14.C语言中while和do-while循环的主要区别是____ _______。 A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do-while的循环控制条件严格

C语言考试试题基础版

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与’A ’是相同的 B. 字符串是常量,字符是变量 C. “A ”与’A ’是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy ,,list ,*jer if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

C语言基本练习题

1. 某城市出租车收费标准如下:起步里程是3 公里,起步费是10 元;超出起步里程后每公里 1.5 元。编写程序,输入行驶里程(公里) ,计算并输出乘客应支付的车费(元)。 #include int main() { double n; scanf("%lf",&n); if(n<=3) { printf("%d\n",10); } else { printf("%.2f\n",1.0*(10+(n-3)*1.5)); } return 0; } 2. 某城市月用水量收费标准如下:每月使用吨数小于等于15 吨的,每吨收费2.5 元;每月使用吨数超过15 吨的,采用分段计费:超过部分每吨 3 元。编写程序,输入使用吨数,计算并输出用户水费(元) 。 #include int main() { double n,x; scanf("%lf",&n); if(n<=15) {x=n*2.5; } else { x=15*2.5+(n-15)*3.0; } printf("%.2f\n",x); return 0; } 3. 求解简单表达式。输入一个形式如:"操作数运算符操作数"的四则运算表达式,输出运算结果,要求使用switch 语句( if 语句)编写。#include #include int main() { double s1,s2; char op; scanf("%lf %c %lf",&s1,&op,&s2); switch(op) {case '+':printf("%.2f\n",s1+s2);break; case '-':printf("%.2f\n",s1-s2);break; case '*':printf("%.2f\n",s1*s2);break; case '/': if(fabs(s2)

C语言基础练习题(含答案)

目录

第1-3章 C语言基础知识习题 1 选择题 1. 以下不是C语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D._ok 3.正确的C语言标识符是()。 A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是()。 A.\\ B.\0xAA C.\t D.\0 6.不属于C语言关键字的是()。 A.int B.break C.while D.character 7.是C语言提供的合法关键字的是()。 A.Float B.signed C.integer D.Char 8.以下不能定义为用户标示符的是()。 A.scanf B.Void C._3com_ D.int 9.一个C程序是由()。 A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 A.程序行 B.语句 C.函数 D.字符 11.下列说法中,错误的是()。 A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行

C程序设计语言资料

第3次作业 一、填空题(本大题共20分,共5小题,每小题4分) 1?假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为 2. 类型兼容原则指的是:任何在需要________ 对象的地方,都可以用_______________________________________ 的对象 去替代。 3. 重新抛出异常的表达式为:__________ 4. 以下程序的执行结果是______________________ #i nclude using n amespace std; class Base{ public: Base(){cout<< ” T ;} ~Base(){cout<< ” 2” ;} }; class Derived : public Base{ public: Derived(){cout<< ” 3” ;} ~Derived(){cout<< ” 4” ;} }; void mai n(){ Derived d;

5. 以下程序的执行结果是______________________ #i nclude using n amespace std; class A{ int x; public: A(int x){this->x=x;} A &operator--(){x--;return *this;} A operator— nt){A a(x-=2);retur n a;} void show(){ cout? x;} }; void mai n(){ A a(3),b(3); (a--).show(); (--b).show(); } 二、程序阅读题(本大题共40分,共5小题,每小题8分) 1.写出下面程序运行结果。 #i nclude void rev(i nt a[],i nt n) { int t; for(int i=0,j=n-1;i

c语言期末测试题(附答案)

课程代码:A100002座位号: 《计算机技术基础(C语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年月日 第一部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分) 1、以下关于C语言标识符的描述中,正确的是【】。 A)标识符可以由汉字组成B)标识符只能以字母开头 C)关键字可以作为用户标识符D)Area与area是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678 3、判断char类型的变量c1是否为数字字符的正确表达式为【】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是【】。 A)’a’&&’b’ B)a<=b C)((a>b)||(b

A. *(a[0]+2) B. a[1][3] C . a[1][0] D. *(*(a+1)+2) 6、在循环语句的循环体中执行break语句,其作用是【】。A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行 7、执行语句for(i=10;i>0;i--);后,变量i的值为【】。A)10 B)9 C)0 D)1 8、若有int *p1, *p2,k; 不正确的语句是【】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是【】 A. 静态(static) B. 外部(extern) C. 自动(auto)D. 寄存器(register) 10、如下程序的输出结果是【】 main( ) { int x=2,a=0,b=0; switch(x) { case 2: a++; b++; case 1: ++a; b--; break; case 0: b++;} printf("a=%d, b=%d\n", a, b);} A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, b=0 11、表示关系a main() {int x; scanf(“%d”,&x); if(x<=3) ; else if(x !=10)printf(“%d\n”,x); } 程序运行时,输入的值在哪个范围才会有输出结果。【】

C语言编程基础习题答案

《C语言编程基础(第2版)》习题答案 前言 《C语言编程基础(第2版)》每章后面都安排了一定数量的习题,这有利于读者理解、消化和掌握各单元的学习内容。习题中,除了有填空题、选择题、回答问题等适合掌握基本概念的题型外,大部分是分析程序运行结果和要求编写实用程序,这有利于读者训练编程技巧和增强编程能力。应广大读者要求,特别是一线教学老师的要求,我们给出全部习题答案,供读者参考。编程答案只是实现题目算法要求的一种,并不一定是最好的。希望读者自己多做思考,利用多种方法进行编程,用以提高自己的程序设计水平和锻炼自己的创新能力。由于作者水平所限,错误和不当之处在所难免,恳请批评指正。 习题一 1、填空题。 ⑴ C语言程序由__函数__组成,其中必须有且只能有一个名为_main__的函 数。C程序的执行从___名为main的主__函数开始。 ⑵每个C语句必须以__分__号结束。 ⑶标识符只能由_英文字母_、__数字_和_下划线__三类符号构成,而且标 识符的第一个字符必须是__英文字母__或__下划线__。 ⑷关键字是指___C语言编译系统所固有的、具有专门意义的标识符___。 ⑸ C程序中,注释的内容应放在__/*_和_*/__符号之间。 2、选择题。 ⑴下面合法的C语言标识符是___ C ___。 ⑵ C语言中主函数的个数是___ A______。 ⑶以下有关注释的描述中,错误的是___ C ___。 ⑷ C程序中,main函数的位置____ D___。 3、指出并改正下面程序中的错误。 ⑴ main 应为 main() ⑵应在本程序最后加上大括号 }。 ⑶语句结束应有分号。如: int a,b; a=1;b=2; printf(%d,a+b); 、分析下列程序,写出运行结果。4. ⑴该程序是计算两个整数a和b的乘积并赋值给c,运行结果为: c=30 ⑵该程序输出一个字符串和一排星号,运行结果为:

相关主题
文本预览
相关文档 最新文档