《C语言程序设计》复习题.docx

上传人:b****2 文档编号:2433595 上传时间:2023-05-03 格式:DOCX 页数:27 大小:34.62KB
下载 相关 举报
《C语言程序设计》复习题.docx_第1页
第1页 / 共27页
《C语言程序设计》复习题.docx_第2页
第2页 / 共27页
《C语言程序设计》复习题.docx_第3页
第3页 / 共27页
《C语言程序设计》复习题.docx_第4页
第4页 / 共27页
《C语言程序设计》复习题.docx_第5页
第5页 / 共27页
《C语言程序设计》复习题.docx_第6页
第6页 / 共27页
《C语言程序设计》复习题.docx_第7页
第7页 / 共27页
《C语言程序设计》复习题.docx_第8页
第8页 / 共27页
《C语言程序设计》复习题.docx_第9页
第9页 / 共27页
《C语言程序设计》复习题.docx_第10页
第10页 / 共27页
《C语言程序设计》复习题.docx_第11页
第11页 / 共27页
《C语言程序设计》复习题.docx_第12页
第12页 / 共27页
《C语言程序设计》复习题.docx_第13页
第13页 / 共27页
《C语言程序设计》复习题.docx_第14页
第14页 / 共27页
《C语言程序设计》复习题.docx_第15页
第15页 / 共27页
《C语言程序设计》复习题.docx_第16页
第16页 / 共27页
《C语言程序设计》复习题.docx_第17页
第17页 / 共27页
《C语言程序设计》复习题.docx_第18页
第18页 / 共27页
《C语言程序设计》复习题.docx_第19页
第19页 / 共27页
《C语言程序设计》复习题.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《C语言程序设计》复习题.docx

《《C语言程序设计》复习题.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》复习题.docx(27页珍藏版)》请在冰点文库上搜索。

《C语言程序设计》复习题.docx

《C语言程序设计》复习题

《C语言程序设计》复习题

一、判断题(本大题共60个小题)

1.C程序执行的入口是main()函数,所以main函数必须放在程序的开头。

(B)

2.定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。

(B)

3.注释内容太多会影响程序的执行效率。

(B)

4.变量要“先定义,后使用”。

(A)

5.字符常量'a'与字符串常量"a"没有区别。

(B)

6.数学公式y=-6xz+5[2(a-5)+3]写成C语言表达式是y=-6*x*z+5*[2*(a-5)+3]。

(B)

7.数学公式y=|x|+ab-c写成C语言表达式是y=fabs(x)+a*b-c。

(A)

8.表达式5/2+5.0/2+7%6的值为5.5。

(A)

9.设intb=7;floata=2.5,c=4.7;则表达式a+(int)(b/2*(int)(a+c)/2)%4的值为:

4.5。

(B)

10.设inta=12;则表达式a/=a+a的值是0.5。

(B)

11.在C语言中,运算符!

比&&的优先级高。

(A)

12.在C语言中,运算符的优先级最小的是逗号运算符。

(A)

13.scanf("%d,%d",&x,&y);的输入格式:

3,4<回车>。

(A)

14.以下程序运行结果是:

1,7,0(A)

voidmain()

{

intx=1,y=1,z=10;

if(z<0)

if(y>0)x=3;

elsex=5;

printf("%d,",x);

if(z=y<0)x=3;

elseif(y==0)x=5;

elsex=7;

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

}

15.该程序运行结果是:

BCother(A)

voidmain()

{charx=‘B’;

switch(x)

{

case‘A’:

printf(“A”);

case‘B’:

printf(“B”);

case‘C’:

printf(“C”);

default:

printf(“other”);

}

}

16.下面程序段运行时输出结果是a=2,b=8(B)

voidmain()

{

intx=1,y=1,a=2,b=7;

switch(x)

{

case1:

switch(y)

{case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

case3:

a++;b++;

}

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

}

17.下面程序,当输入为:

"abc?

"时,执行结果是:

abc(A)

voidmain()

{charc;

c=getchar();

while(c!

='?

'){putchar(c);c=getchar();}

}

18.该程序运行结果是:

<><><>#(A)

voidmain()

{inti;

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

{

if(i%2)putchar(‘<’);

elsecontinue;

putchar(‘>’);

}

putchar(‘#’);

}

19.break语句可用于循环语句和if语句中。

(B)

20.continue语句不可用于循环语句中。

(B)

21.以下程序的功能是判断一个数是否是素数(A)

#include

#include

voidmain()

{intm,i;

scanf("%d",&m);

for(i=2;i<=sqrt(m);i++)if(m%i==0)break;

if(i>sqrt(m))printf(“%d是素数",m);

elseprintf(“%d不是素数",m);}

22.以下程序的功能是计算2+4+6+8+...+98+100。

(B)

voidmain(){inti,s;for(i=2;i<=100;i+=2)s+=i;}(注意s的初始值)

23.数组的下标是从1开始计数的。

(B)

24.若有ints[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是4。

(A)

25.下面程序段运行时输出结果是:

01524(A)

voidmain(){inti=0,a[10];for(i=0;i<=9;i++)a[i]=i*3;printf("%d%d%d",a[0],a[5],a[8]);}

26.下面程序段运行时输出结果是:

10334566(B)

voidmain()

{inta[8]={1,0,1,0,1,0,1,0},i;

for(i=2;i<8;i++)a[i]+=a[i-1]+a[i-2];

for(i=0;i<8;i++)printf(“%d”,a[i]);}

27.以下程序的功能是:

将一个数组中的元素按逆序重新存放并打印交换后的数组。

(A)

#defineN7

#include

voidmain()

{staticinta[N]={12,9,16,5,7,2,1},k,s;

for(k=0;k

printf("\n交换后的数组:

\n");for(k=0;k

28.若有定义inta[3][5];则排列在数组中的第9个元素是a[1][3]。

(A)

29.下面程序段运行时输出结果是:

456(B)

voidmain(){inta[][3]={1,2,3,4,5,6,7,8,9},i,k=2;for(i=0;i<3;i++)printf(“%d”,a[k][i]);}

30.下面程序段运行时输出结果是:

"AAAA"(B)

voidmain(){charch[3][5]={"AAAA","BBB","CC"};printf("\"%s\"",ch[1]);}

31.strlen("Howareyou\n")的值是12。

(A)

32.C语言中字符串结束的标志是'\0'(A)

33.strcmp("how","How")的值>0。

(A)

34.以下程序的功能是:

字符串a连接到字符串b,并显示字符串b。

(B)

voidmain()

{chara[200]=”howareyou.”,b[200];inti=0;

while(a[i]!

='\0'){b[i]=a[i];i++;}b[i]='\0';

printf(“新字符串是%s”,b);}

35.当运行以下程序时,从键盘输入:

AAAaaaAAAAbcd234abcAAaa,运行结果为:

AaaAAAaaa。

voidmain()

{chars[80],c='a';

inti=0;

scanf("%s",s);(注意scanf遇到空格的处理,与gets的不同)

while(s[i++]!

='\0')

if(s[i]==c)s[i]=s[i]-32;

elseif(s[i]==c-32)s[i]=s[i]+32;

puts(s);

}(A)

36.下面程序段运行时输出结果是:

6(B)

voidmain(){int*p,a=5,b=1;p=&a;*p=10;a=*p+b;printf(“%d”,a);}

37.下面程序段运行时输出结果是:

135(A)

voidmain()

{inta[2][3]={1,3,5,7,9,11};intm,*ptr;

ptr=&a[0][1];

m=(*ptr)*(*(ptr+1))*(*(ptr+3));

printf("%d",m);}

38.下面程序段运行时输出结果是:

-5,-12,-7(A)

voidsub(intx,inty,int*z)

{*z=y-x;}

voidmain()

{

inta,b,c;

sub(10,5,&a);

sub(7,a,&b);

sub(a,b,&c);

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

}

39.下面程序段运行时输出结果是:

4(A)

fun(char*s)

{char*p=s;

while(*p)p++;

return(p-s);

}

voidmain()

{char*str="abcd";

inti;

i=fun(str);

printf("%d",i);

}

40.int*f();表示函数返回一个整型指针。

(A)

41.下面程序段运行时输出结果是:

0,01,3(B)

f(){intx=0;staticinty=0;printf("%d,%d",x,y);x++;y=y+3;}

voidmain(){inti;for(i=0;i<2;i++)f();}

42.下面程序段运行时输出结果是2(A)

intf(intn){ints;if(n==1||n==2)s=1;elses=n-f(n-1);returns;}

voidmain(){printf(“%d”,f(3));}

43.下面程序段运行时输出结果是7(B)

voidfun(intx,inty,intz){z=x+y;}

voidmain(){inta=3;fun(5,2,a);printf("%d",a);}

44.在定义函数时,函数名后面的括号中的变量名称为实参。

(B)

45.为了保证被调用函数不返回任何值,其函数定义的类型应为void。

(A)

46.若定义的函数没有参数,则函数名后的圆括号可以省略。

(B)

47.函数的实参和形参可以是相同的名字。

(A)

48.函数调用中,形参与实参的类型和个数必须保持一致。

(A)

49.函数的函数体可以是空语句。

(A)

50.在调用一个函数的过程中又出现直接或间接调用该函数本身,称为函数的递归调用。

(A)

51.在函数内定义的变量是局部变量,在函数外定义的变量是外部变量。

外部变量是全局变量。

(A)

52.变量的存储类别有自动型、静态型、寄存器型、和外部类型共4种,它们分别用auto、static、register、extern标识。

(A)

53.对10个数进行从小到大排序。

要求排序在函数sort内完成,用起泡算法。

main函数内进行数据输入、调用排序函数sort、并输出排序后的数据。

判断以下程序是否正确:

(B)

voidsort(inta[],intn)

{inti,j,k;

for(i=0;i

for(j=0;j

if(a[j]>a[j+1]){k=a[j];a[j]=a[j+1];a[j+1]=k;}}

voidmain()

{inta[10],i,j,k;

for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");

sort(a[10],10);(注意数组作函数参数)

for(i=0;i<10;i++)printf(“%d,",a[i]);}

54.预处理命令#include的作用是文件包含。

55.结构体的成员不能是结构体变量。

(A)

56.“按位与”运算指两个运算数相应的二进制位中只要有一个为1,则该位结果值为1,比如0|0=0,1|0=1。

(B)

57.C语言库函数fgets(str,n,fp)的功能是从文件fp中读取n个字符串存入str指向的内存。

(B)

58.函数rewind的作用是使位置指针自动移至下一个字符位置。

(B)

59.函数fseek的作用是使位置指针移至第一个字符位置。

(B)

60.C语言中以w+方式打开文件后,可执行的文件操作是可任意读写。

(B)

二、单项选择题(本大题共45个小题)

61.一个C语言程序总是从B开始执行。

A.主过程B.主函数C.子程序D.主程序

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

A.BA、x_0、doB.float、1a0、_Y

C.x-y、goto、123D._123、tmp、CHAR

63.C语言中,int型数据在内存中的存储形式是D。

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

64.下列属于C语言合法的字符常量的是C。

A.‘\85’B.“n”C.‘\t’D.“\0”

65.下面正确的字符串常量是C。

A.'a'B.'376'C."\\n"D.376

66.不合法的常量是:

D。

A.‘\2’B.""C.‘3’D.‘\483’

67.字符串"\\\"123\"\\"的长度是B。

A.11B.7C.5D.3

68.存储字符串"\\\'abc\376"需要的字节数是D。

A.11B.13C.)6D.)7

69.表达式'A'+4*25.0-'b'的正确结果是B。

A.67B.67.0C.不确定D.67L

70.下面哪个式子在a为奇数时结果为假C。

A.a%2==1B.!

(a%2==0)C.!

(a%2)D.a%2

71.若x是int型变量,y是float型变量,所用的scanf调用语句格式为:

scanf("x=%d,%f",&x,&y);则为了将数据10和66.6分别赋给x和y,正确的输入应是:

A。

A.x=10,66.6<回车>B.1066.6<回车>

C.10<回车>66.6<回车>D.x=10<回车>66.6<回车>

72.w=4,x=3,y=2,z=1,则条件表达式w

w:

y

y:

z的结果为D。

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

73.能表示条件0≤x≤100的表达式是D。

A.0<=x<=100B.x>=0,x<=100

C.0≤x≤100D.x>=0&&x<=100

74.判断char型变量ch为数字的正确表达式是B。

A.ch>="0"&&ch<="9"B.ch>='0'&&ch<='9'

C.'0'≤ch≤'9'D.ch>='0'||ch<='9'

75.分析以下程序,下列说法正确的是D。

voidmain()

{

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

if(x=a+b)printf("tttt\n");

elseprintf("kkkk\n");

}

A.有语法错,不能通过编译B.通过编译,但不能连接

C.输出ttttD.输出kkkk

76.程序段如下,则以下说法中正确的是:

B。

intk=-5;

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

A.while循环执行5次B.循环体语句一次也不执行

C.循环是无限循环D.循环体语句执行一次

77.下述for循环语句B。

inti,k;

for(i=0,k=-1;k=2;i++,k++)printf("****");

A.判断循环结束的条件非法B.是无限循环

C.只循环一次D.一次也不循环

78.下列程序段执行后k值为A。

intk=0,i,j;

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

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

k=k+1;

A.15B.3C.5D.8

79.以下关于数组的描述正确的是C。

A.数组的大小是固定的,但可以有不同的类型的数组元素。

B.数组的大小是可变的,但所有数组元素的类型必须相同。

C.数组的大小是固定的,但所有数组元素的类型必须相同。

D.数组的大小是可变的,但可以有不同的类型的数组元素。

80.在c语言中引用数组元素时,其数组下标的数据类型允许是C。

A.整型常量B.整型表达式

C.整型常量或整型表达式D.任何类型的表达式

81.对以下说明语句的正确理解是B。

inta[10]={6,7,8,9,10};

A.将5个初值依次赋给a[1]至a[5]

B.将5个初值依次赋给a[0]至a[4]

C.将5个初值依次赋给a[6]至a[10]

D.因为数组长度与初值的个数不相同,所以此语句不正确

82.在执行inta[][3]={1,2,3,4,5,6};语句后,a[1][1]的值是D。

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

83.对于类型相同的两个指针变量之间,不能进行的运算是C。

A.

84.以下不能正确赋值的是A。

A.chars1[10];s1="test";B.chars2[]={’t’,’e’,’s’,’t’}

C.chars3[20]="test";D.chars4[4]={’t’,’e’,’s’,’t’}

85.对字符串"Boy"进行完整赋值的操作是B。

A.chars[3]={'B','o','y'};B.chars[]="Boy";

C.chars[3]={"Boy"};D.chars[3];s="Boy";

86.在C语言程序中,以下描述正确的是B。

A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义不可以嵌套,但函数的调用可以嵌套

C.函数的定义和函数的调用均不可以嵌套

D.函数的定义和函数的调用均可以嵌套

87.以下函数调用语句中实参的个数为A。

exce((v1,v2),(v3,v4,v5),v6);

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

88.下述函数定义形式正确的是C。

A.intf(intx;inty)B.intf(intx,y)

C.intf(intx,inty)D.intf(x,y:

int)

89.关于函数参数,说法正确的是A。

A.实参与其对应的形参各自占用独立的内存单元

B.实参与其对应的形参共同占用一个内存单元

C.只有当实参和形参同名时才占用同一个内存单元

D.形参是虚拟的,不占用内存单元

90.一个函数的返回值由D确定。

A.return语句中的表达式B.调用函数的类型

C.系统默认的类型D.被调用函数的类型

91.当调用函数时,实参是一个数组名,则向函数传送的是___B____。

A.数组的长度B.数组的首地址

C.数组每一个元素的地址D.数组每个元素中的值

92.若有以下说明:

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

则数值为3的表达式是C。

A.*p+3B.*(p+3)C.*p+=2D.p+2

93.下面程序用于输出数组中的最大值,则程序段中空白处应是A。

voidmain()

{inta[5]={3,2,5,6,4},*p,*s;

for(p=a,s=a;p-a<10;p++)

if()s=p;

printf(“maxis%d”,*s);

}

A.*s<*pB.sp-s

94.设有如下的程序段:

charstr[]=“china";

char*ptr;

ptr=str;

执行上面的程序段后,*(ptr+5)的值为B。

A.'o'B.'\0'C.不确定的值D.'o'的地址

95.以下程序输出结果为A。

main()

{char*str[]={"zhao","qian","sun","li"};

inti;

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

printf("%c",str[i][0]);

}

A.zqslB.zhaoqiansunliC.zhaoD.以上都不对

96.若x=5,y=5,则x&y的结果是____D_____.

A.0B.2C.3D.5

97.在位运算中,操作数每左移两位,则结果相当于___D_____.

A.操作数乘以2B.操作数除以2

C.操作数除以4D.操作数乘以4

98.当用户定义一个结构体变量时,系统分配给它的内存为各成员所需内存的A

A.和B.最大值C.不确定D.无关

99.若有以下结构体定义,则正确的引用或定义是B。

structexample

{intx;inty;

}v1;

A.example.x=10;B.examplev2.x=10;

C.structv2;v2.x=10;D.structexamplev2={10};

100.设有如下定义:

structsk{inta;floatb;}data,*p;若有p=&data;,则对data中的a域的正确引用是D。

A.(*p).data.aB.(*p).aC.p->data.aD.p.data.a

101.C语言可以处理的文件类型是B。

A.文本文件和数据文件B.文本文件和二进制文件

C.数据文件和二进制文件D.数据代码文件

102.如果要打开C盘file文件夹下的abc.dat文件,fopen函数中第一个参数应为D。

A.c:

file\abc.datB.c:

\file\abc.dat

C."c:

\file\abc.dat"D."c:

\\file\\abc.dat"

103.若想对文本文件只进行读操作,打开此文件的方式为A。

A."r"B."W"C."a"D."r+"

104.在C程序中,可把整型数以二进制形式存放到文件中的函数是C。

A.fprintf函数B.fread函数C.fwrite函数D.fputc函数

105.打开文件,操作完毕后用C函数关闭它。

A.fopenB.openC.fcloseD.close

三、编程题(本大题共1016个小题)

106.求200到800之间所有能被3整除但不能被7整除的数的和。

答:

#include

voidmain()

{inti,sum=0;

for(i=

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2