C语言复习题 带答案.docx

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

C语言复习题 带答案.docx

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

C语言复习题 带答案.docx

C语言复习题带答案

一、选择题

1、以下叙述中正确的是(A)

A、构成C程序的基本单位是函数

B、可以在一个函数中定义另一个函数

C、main()函数必须放在其它函数之前

D、所有被调用的函数一定要在调用之前进行定义

2、以下选项中合法的实型常数是(D)

A、5E2.0B、E-3C、.2ED、1.3E1

3、以下选项中合法的用户标识符是(B)

A、longB、_2TestC、3DmaxD、A.dat

4、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量’101’是(

A)

A、字符AB、字符aC、字符eD、非法的常量

5、以下非法的赋值语句是(C)

A、n=(i=2,++i);B、j++;C、++(i+1);D、x=j>0;

6、设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)

A、6.500000B、6C、5.500000D、6.000000

7、已知i、j、k为int型变量,若从键盘输入:

1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以

下选项中正确的输入语句是(C)

A、scanf(“%2d%2d%2d”,&i,&j,&k);B、scanf(“%d%d%d”,&i,&j,&k);

C、scanf(“%d,%d,%d”,&i,&j,&k);D、scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);

8、与数学式子3乘以x的n次方/(2x-1)对应的C语言表达式是(C)

A、3*x^n/(2*x-1)B、3*x**n/(2*x-1)

C、3*pow(x,n)*(1/(2*x-1))D、3*pow(n,x)/(2*x-1)

9、设有定义:

longx=-123456L;,则以下能够正确输出变量x值的语句是(B)

A、printf(“x=%d“,x);B、printf(“x=%ld“,x);

C、printf(“x=%8dL“,x);D、printf(“x=%LD“,x);

10、若有以下程序:

main()

{intk=2,i=2,m;

m=(k+=i*=k);printf(”%d,%d”,m,i);

}

执行后的输出结果是(C)

A、8,6B、8,3C、6,4D、7,4

11、已有定义:

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

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

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

12、有一函数y=

以下程序段中不能根据x的值正确计算出y的值的是(C)

A、if(x>0)y=1;elseif(x==0)y=0;elsey=-1;

B、y=0;if(x>0)y=1;elseif(x<0)y=-1;

C、y=0;if(x>=0)if(x>0)y=1;elsey=-1;

D、if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;

13、以下选项中,与k=n++完全等价的表达式是(A)

A、k=n,n=n+1B、n=n+1,k=nC、k=++nD、k+=n+1

14、以下程序的功能是:

按顺序读入10名学生4

门课程的成绩,计算出每位学生的平均分并输出,程序如

下:

main()

{intn,k;

floatscore,sum,ave;

sum=0.0;

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

{for(k=1;k<=4,k++)

{scanf(“%f”,&score);sum+=score;}

ave=sum/4.0;

printf(“NO%d:

%f“,n,ave);

}

}

上述程序运行后结果不正确,调试中发现有一条语

句出现在程序的位置不正确,这条语句是(A)

A、sum=0.0;B、sum+=score;

C、ave=sum/4.0;D、printf(“NO%d:

%f“,n,ave);

15、有以下程序段

intn=0,p;

do{scanf(“%d”,&p);n++}while(p!

=12345&&n<3);

此处do-while循环的结束条件是(D)

A、p的值不等于12345并且n的值小于3

B、p的值等于12345并且n的值大于等于3

C、p的值不等于12345或者n的值小于3

D、p的值等于12345或者n的值大于等于3

16、有以下程序(A)

main()

{inta=15,b=21,m=0;

switch(a%3)

{case0;m++;break;

case1;m++;

switch(b%2)

{default:

m++;

case0;m++;break;

}

}

printf(“%d”,m);

}

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

17、C语言中,函数值类型的定义可以缺省,

此时函数值的隐含类型是(B)

A、voidB、intC、floatD、double

18、有以下程序

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;

}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

printf(’%d”,j);

}

程序运行后的输出结果是(B)

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

19、C语言规定,在一个源程序中,main()函数的位置(C)

A、必须在最开始B、必须在系统调用的库函数的后面

C、可以任意D、必须在最后

20、下列数据中,不合法的C语言实型数据是(C)

A、0.123B、123e3C、2.1e3.5D、789.0

21、下面4个选项中,均是不合法的用户标识符的选项是(C)

A、AP_0doB、floata0_AC、b-agotointD、_123tempint

22、设变量a是int型,f是float型,i是double型,

则表达式10+’a’+i*f值的数据类型为(C)

A、intB、floatC、doubleD、不确定

23、能正确表示逻辑关系:

”a>10或a<0”的C语言表达式是(D)

A、a>=10ora<=0B、a>=10|a<=0C、D、a>=10||a<=0

24、设以下变量均为int类型,表达式的值不为7的是(C)

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)

25、若变量a是int类型,并执行了语句:

a=’A’+1.6;,则正确的叙述是(D)

A、a的值是字符CB、a的值是浮点型

C、不允许字符型和浮点型相加D、a的值是字符’A’的ASCII值加上1

26、有如下程序

main()

{intx=23;

do

{printf(“%d”x--);}while(!

x);

}

该程序的执行结果是(B)

A、321B、23C、不输出任何内容D、陷入死循环

27、若变量c为char类型,能正确判断出c为小写字母的表达式是(D)

A、’a’<=c<=’z’B、(c>=’a’)||(c<=’z’)

C、(’a’<=c)and(’z’>=c)D、(c>=’a’)&&(c<=’z’)

28、以下不正确的定义语句是(B)

A、doublex[5]={2.0,4.0,6.0,8.0,10.0};B、inty[5.3]={0,1,3,5,7,9};

C、charc1[]={‘1’,’2’,’3’,’4’,’5’};D、charc2[]={‘\x10’,’\xa’,’

\x8’};

29、有以下程序

fun(intx,inty,intz)

{z=x*y;}

main()

{inta=4,b=2,c=6;

fun(a,b,c);

printf(“%d”,c);

}

程序运行后的输出结果是(B)

A、16B、6C、8D、12

30、下列函数的运行结果是(A)

main()

{inti=2,p;

intj,k;

j=i;

k=++i;

p=f(j,k);

printf(”%d”,p);

}

intf(inta,intb)

{intc;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

returnc;

}

A、-1B、1C、2D、编译出错,无法运行

31、下面可以作为C语言程序中标识符的是(A)

A、_total3

B、num(10)

C、2Date

D、long

32、已知字符‘A’的ASCII值为65,则‘\103’表示的字符是(C)

A、字符A

B、字符B

C、字符C

D、非法常量

33、每个C语言程序都必须有一个(B)函数,C程序总是从该函数开始执行。

A、include()

B、main()

C、scanf()

D、printf()

34、下面说法中,正确的是(D)

A、C语言是机器语言

B、C语言程序不用编译就可以直接运行

C、C语言程序总是从第一个函数开始执行

D、C语言程序可以由一个或多个函数构成

35、设i,j,k为int型变量,若从键盘输入1#2#3<回车>,下面(A)输入语句可以使i的值为1,j

的值为2,k的值为3。

A、scanf(“%d#%d#%d”,&i,&j,&k)

B、scanf(“%d,%d,%d”,&i,&j,&k)

C、scanf(“%d%d%d”,&i,&j,&k)

D、scanf(“%d%d%d”,&i,&j,&k)

36、下面能够正确表示字符串常量的表达式是(B)。

A、’test’

B、”test”

C、test

D、’test\0’

37、在C语言中,运用对象必须是整型数的运算符是(A)

A、%B、\C、%和\D、**

38、有定义语句:

intb,charc[10];则正确的输入语句是(B)

A、scanf(“%d%s”,&b,&c);B、scanf(“%d%s”,&b,c);

C、scanf(“%d%s”,b,c);D、scanf(“%d%s”,b,&c);

39、假设所有变量均为int型,则执行语句a=(b=5,c=b++);后,a、b、c的值分别为(C)

A、6,6,5

B、5,5,6

C、5,6,5

D、5,6,6

40、设x,y,z为int型变量,执行下面的语句后,z的值为(D)

for(x=0,y=10;x<=y;x++,y—)z=x+y;

A、7

B、8

C、9

D、10

41、设x、y均为整型变量,且x=y=5,则下面语句的输出结果是(B)

printf(”%d,%d\n”,x++,++y);

A、5,5

B、5,6

C、6,5

D、6,6

42、下面关于字符串的叙述中,正确的是(B)

A、C语言中有字符串变量

B、空串一定比空格打头的字符串小

C、可以用关系运算符对字符串的大小进行比较

D、两个字符串中的字符个数相同时才能进行字符串大小的比较

43、下列数据中,(B)是合法的实型数据。

A、0.123e

B、123e3

C、1e3.5

D、.e1

44、设以下变量均为int类型,表达式的值不为3的是(D)

A、a=b=2,a+b,b+1

B、a=b=2,b=a+b,a+1

C、b=2,b+1,a=b,a+1

D、a=2,a=a+1,b=1,a+b

45、下列说法中,正确的是(C)

inti,x;

for(i=0,x=0;i<=5&&x!

=4;i++);

A、循环体一次也不执行

B、是无限循环

C、最多执行6次

D、最多执行5次

46、已知字符‘a’的ASCII码值是97,字符变量c1的值是‘a’,c2的值是‘e’。

执行语句printf

(”%d,%d”,c1,c2—2);后,输出的结果是(D)

A、a,c

B、a,101

C、97,101

D、97,99

47、下面程序的运行结果是是(D)

#include

voidmain()

{inti;

for(i=0;i<=6;i++){

{if(i%2)

printf(”%d”,i);

printf(”#”);

}

}

A、0#2#4#6

B、1#3#5#

C、0##2##4##6#

D、#1##3##5##

48、结构化程序所规定的三种最基本的控制结构是(C)

A、输入、处理、输出B、树形、网形、环形

C、顺序、选择、循环D、主程序、子程序、函数

49、把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项的含义不同的是(A

A、k%2B、k%2==1C、k%2!

=0D、!

k%2==1

50、设有intx=11,则表达式(x++*1/3)的值是(D)

A、3B、4C、11D、12

二、程序填空(20分每小题5分)

1、小写字母转大写字母

voidmain()

{charch1,ch2;

ch1=’a’;

ch2=’b’;

ch1=__ch1-32__;

ch2=__ch2-32__;

printf(“%c,%c”,ch1,ch2);

}

2、输出两个数中较大的数

voidmain()

{inta,b,max;

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

printf(“max=%d\n”,___a>b?

a:

b___);

}

3、把100~200之间的能被5整除的数输出。

voidmain()

{intn;

for(n=100;n<=200;n++)

{if(__n%5!

=0__)continue;

printf(“%d”,n);

}

}

4、输出字符数组

main()

{

chara[]={'h','e','l','\0','l','o','\0'};

printf(“%s",__a__);

}

5、大写字母转小写字母

voidmain()

{charch1,ch2;

ch1=’A’;

ch2=’B’;

ch1=__ch1+32__;

ch2=__ch2+32__;

printf(“%c,%c”,ch1,ch2);

}

6、把200~300之间的不能被3整除的数输出。

voidmain()

{intn;

for(n=200;n<=300;n++)

{if(__n%3==0__)continue;

printf(“%d”,n);

}

参考答案:

1-5ADBAC

6-10DCCBC

11-15DCAAD

16-20ABBCC

21-25CCDCD

26-30BDBBA

31-35ACBDA

36-40BABCD

41-45BBBDC

46-50DDCDA

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

当前位置:首页 > 解决方案 > 学习计划

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

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