C语言复习题.docx

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

C语言复习题.docx

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

C语言复习题.docx

C语言复习题

C语言复习题

一、选择题

1、下列数据中,为字符串常量的是(C)

A、‘M’B、‘$you’C、”hello”D、basic

2、若y为int型变量,则执行以下语句后,y的值是(C)

y=8;y+=y-=y*y;

A、64B、-56C、-112D、-48

3、下面程序

#include

main()

{

intx,y,z;

x=2;

y=x++;

z=++x;

printf(“%d\t%d\t%d\n”,x,y,z);

}

运行后输出的数据是(A)

A、424B、422

C、244C、444

4、C语言提供合法的数据类型关键字是

A、DoubleB、shortC、integerD、Char

5、错误的转义字符是

A、'\091'B、'\\'C、'\0'D、'\''

6、scanf()函数称为

A、格式输入函数B、字符输入函数C、字符串输入函数D、无格式输入函数

7、getchar()和putchar()函数的头文件是

A、strio.hB、stdio.hC、math.hD、string.h

8、下列运算符中,只能用于整型数据的是

A、+B、-C、/D、%

9、若有定义:

inta=7;floatx=3.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是

A、2.750000B、0.00000C、3.500000D)、2.500000

10、设有定义intm=10;则以下错误的表达式是

A、m++=15B、m=m++C、256D、m

11、定义为void类型的函数,其含义是

A、调用函数后,被调用的函数没有返回值

B、调用函数后,被调用的函数不返回值

C、调用函数后,被调用的函数返回值为任意类型

D、以上说法都是错误的

12、有定义语句intw[5];则数组w占用多少个字节的内存单元

A、5B、10C、20D、40

13、如果x为float类型变量,则以下语句输出为

x=213.82631;

printf(“%4.2\n”,x);

A、宽度不够,不能输出B、213.82C、213.82631D、213.83

14、若运行时给变量x输入12,则以下程序的运行结果是

#include

main()

{intx,y;

scanf(“%d”,&x);

y=x>10?

x+10:

x-12;

printf(“%d\n”,y);

}

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

15、下列程序输出的结果是

#include

main()

{

inta=9;

a+=a-=a+a;

printf(“%d”,a);

}

A、18B、9C、-18D、-9

16、若有说明:

inta[3][4];则对数组元素的非法引用是

A、a[0][2*1]B、a[0][4]C)、a[4-2][0]D、a[1][3]

17、以下不是C语言的特点的是()

A、C语言简洁、紧凑

B、能够编制出功能复杂的程序

C、C语言可以直接对硬件进行操作

D、C语言移植性好

18、以下不正确的C语言标识符是(D)

A、ABCB、abcC、a_bcD、ab.c

19、一个C语言程序是由(B)

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

B、函数组成

C、若干过程组成

D、若干子程序组成

20、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是(B)

A、有零个或多个输入

B、有零个或多个输出

C、有穷性

D、可行性

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

A、intB、floatC、doubleD、不确定

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

A、补码B、反码C、源码D、ASCII码

23、有如下程序,输入数据:

12345M678<cR>后(表示回车),x的值是(B)。

#include

main()

{

intx;

floaty;

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

}

A、12345B、123C、45D、345

24、若有以下定义inta,b;floatx,则正确的赋值语句是(B)

A、a=1,b=2

B、b++;

C、a=b=5

D、b=int(x);

25、以下程序的执行结果是(A)

#include

{

inti=10,j=10;

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

}

A、11,10B、9,10C、11,9D、10,9

26、巳知字母A的ASCII码是65,以下程序的执行结果是(D)

#include

main()

{

charc1='A',c2='Y';

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

}

A、A,YB、65,65C、65,90D、65,89

27、下列运算符中优先级最高的是()

A、<B、十C、%D、!

28、判断char型变量cl是否为小写字母的正确表达式为(D)

A、’a’<=c1<=’z’B、(c1>=a)&&(c1<=z)

C、(‘a’>=c1)(‘z’<=c1)D、(c1>=’a’)&&(c1<=’z’)

29、字符串"a"在内存中占据的字节个数为(C)

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

30、下面有关for循环的正确描述是(D)

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

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

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

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

31、下面程序的运行结果是(C)

#include

main()

{

intnum=0;

while(num<=2)

{

num++;

printf(“%d,num);

}

}

A、1

B、12

C、123

D、1234

32、以下描述正确的是(C)

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

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

C、在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。

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

33、以下对二维数组a的正确说明是(C)

A、inta[3][];B、floata(3,4);

C、doublea[1][4];D、floata(3)(4);

34、若二维数组a有m列,则在a[j]前面的元素个数为(B)

A、j*m+i

B、i*m+j

C、i*m+j-1

D、i*m+j+1

35、下面不正确的字符串常量是(A)

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

36、以下选项中不合法的用户标识符是(A)

A、abc.cB、fileC、MainD、PRINT

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

A、trueB、整型值0C、非0整型值D、T

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

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

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

A、DB、68C、不确定的值D、C

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

A、必须为大写

B、必须为下划线

C、必须为字母或下划线

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

41、一个C语言程序总是从(C)开始执行

A、书写顺序的第一个函数

B、书写顺序的第一条执行语句

C、主函数main()

D、不确定

42、设intx=3,y=4,z=5,则下列表达式中的值为0的是(D)

A、‘x’&&’y’B、x||y+z&&y-zC、x<=yD、!

((x

z||1)

43、执行以下程序段后,i的值是(C)

inti=10;

switch(i+1)

{case10:

i++;break;

case11:

++i;

case12:

++i;break;

default:

i=i+1;

}

A、11B、13C、12D、14

44、语句while(!

e);中的条件!

e等价于(A)

A、e==0B、e!

=1C、e!

=0D、运行时出错

45、用inta[4]={1,2};对数组进行初始化后,数组元素a[3]的值是(B)

A、随机值B、0C、1D)、F

46、在执行charstr[10]=“china\0”;strlen(str)的结果是(A)

A、5B、6C、7D、9

47、用C语言编写的代码程序(B)

A、可立即执行B、是一个源程序C、经过编译即可执行D、经过编译解释才能执行

48、C语言中用于结构化程序设计的三种基本结构是(A)

A、顺序结构、选择结构、循环结构B、if、switch、breakC、for、while、do-whileD、if、for、continue

49、下列选项中,不能用作标识符的是(D)

A、_1234_B、_1_2C、int_2_D、2_int_

50、在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则(B)

A、称为函数的直接递归调用B、称为函数的间接递归调用

C、称为函数的循环调用D、C语言中不允许这样的递归调用

51、完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为(D)

A、连接、编译B、连接、运行

C、编译、运行D、编译、连接

52、下列说法正确的是(B)

A、一个c语言程序并非总是从主函数位置开始执行的

B、一个c语言程序有且只有一个主函数

C、函数可以嵌套定义,不可以嵌套调用

D、程序函数的位置不可以任意

53、下面是合法C语言标识符的是( D )

A、2A_K;B、_M+N;

C、–M3;D、AC_2;

54、下列格式符中,可以用于控制字符输出的是(D)

A、%dB、%f

C、%oD、%c

55、设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=16,k=30)后,x的值是(C)

A、4;B、16;

C、30;D、50;

二、填空题

1、C语言是由函数构成的,作为程序入口和出口的函数是。

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

3、将下列数学式改写成C语言的表达式:

a=b或a

4、在内存中,二维数组存放的顺序是。

5、若有定义:

doublea[3][5];则数组a中第一个元素为a[0][0],最后一个元素为。

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

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

8、若x是int型变量,则执行下面表达式后,x的值为12。

x=(a=4,6*2)

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

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

11、getchar函数可以接收单个字符,输入数字也按字符处理。

12、在语句中,给变量赋值时,赋值语句必须以分号结尾。

13、当a=3,b=2,c=1时,表达式f=a>b>c的值是0

14、设x,y,z均为int型变量,请写出描述"x,y中有一个为负数"的表达式x<0&&y>=0||y<0&&x>=0

15、若a=6,b=4,c=3,则表达式a&&b||b-c的值是1

16、设x=3,y=-4,z=5,则表达式!

(x>y)+(y!

=z)||(x+y)&&(y=z)的值是1

17、设inta=5,c=32;floatb=2.5;,表达式b+c/a的值为8.5。

18、若x和a均是int型变量,则计算x=(a=4,6*2)后x的值是12。

19、设a=3,b=4,c=5。

则a+b>c&&b==c的值为0。

20、有如下程序段:

intk=10;while(k=0)k=k-1;则循环体语句执行0次。

三、阅读下列程序,分析程序结果。

1、#include

main()

{

inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

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

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

if(i==j)

sum=sum+a[i][j];

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

}

答:

功能:

出矩形阵a的主对角线上的元素之和。

输出结果:

27

2、#include

main()

{charch=’A’;

ch=(ch>=’A’&&ch<=’Z’)?

(ch+32):

ch;

printf(“%c”,ch);

}

答:

程序的运行结果是:

a

3、#include

main()

{intsum=0,i=11;

while(i<=10)

{

sum=sum+i;

i++;

}

printf(“%d”,sum);

}

答:

程序的运行结果是:

0

4、#include

voidfun(intn)

{

staticx=1;

x*=n;

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

}

voidmain(void)

{

inti;

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

if(i%2)continue;

elsefun(i);

}

答:

程序执行结果:

x=2

x=8

x=48

答:

程序的运行结果是:

123

5、#include

main()

{inta,b;

a=5;

b=8;

p(a,b);

p(a+b,a);

}

p(intx,inty)

{

y=x+y;

printf(“%d%d”,x,y);

}

答:

程序的运行结果是:

5131318

6、#include

main()

{

inta,s,n,count;

a=2;

s=0;

n=1;

count=1;

while(count<=7)

{

n=n*a;

s=s+n;

++count;

}

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

}

答:

求S=0+2+4+8+16+32+64+128和,程序执行结果:

s=254

7、#include

main()

{inti,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf(″%d,%d,%d,%d″,i,j,m,n);

}

答:

输出结果:

9,11,9,10

8、#include

intfac(intn)

{staticintf=1;

f=f*n;

return(f);

}

main()

{inti;

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

printf(“%d!

=%d\n”,i,fac(i));

}

答:

输出结果:

2!

=2

3!

=6

4!

=24

5!

=120

四、按要求编写程序

1、满足a^2+b^2=c^2的一组正整数a、b、c,称为勾股数组。

试用输出100以内的所有勾股数组。

2、从键盘给3×4的二维数组输入12个整数,求该数组各元素之和与最小的元素值。

3、求100至1000之间的所有素数。

4、编一函数用选择法或起泡法实现排序功能。

5、试编程判断输入的正整数是否既是5又是7的正倍数。

若是,则输出yes;否则输出no。

#include

main()

{intx;

scanf("%d",&x);if(x%5==0&&x%7==0)

printf("yes");else

printf("no");}

6、判断数m是否为素数(只能被1和它本身整除的整数)

#include

#include

main()

{intm,i,k;

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

k=sqrt(m);for(i=2;i<=k;i++)

{if(m%i==0)

break;}

if(i>k)

printf("misaprimenumber!

\n");

7、编写程序,打印下列图案

*

**

***

****

*****

8、编一程序:

从键盘输入10个整数,计算并输出这10个数的平均数。

#include

main()

{inta[10],j;

floatave=0;

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

{scanf(“%d”,&a[j]);

ave=ave+a[j];

}

printf(“ave=%f”,ave/10);

}

9、通过键盘输入3*4矩阵,编写一个函数求所有元素中的最大值,其中主函数完成3*4矩阵的输入和最大元素的输出。

#include

main()

{intmax(intarray[][4]);;

intk,j,a[3][4];

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

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

scanf(“%d”,&a[i][j]);

printf("themaxis%d",max(a));

}

intmax(intarray[][4])

{intk,j,max;

max=array[0][0];

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

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

if(array[k][j]>max)max=array[k][j];

return(max);

}

 

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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