C语言复习题09年160题.docx

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

C语言复习题09年160题.docx

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

C语言复习题09年160题.docx

C语言复习题09年160题

注:

颜色字母为答案,请大家把颜色先去掉,做完再核对答案!

===============================================================================

一、单项选择题(共200题,1~80为基本概念题,81~160题为程序阅读题)

●基本概念题

第1、2章概述、数据类型、运算符与表达式

1.计算机能直接执行的程序是:

A)源程序B)目标程序C)汇编程序D)可执行程序

2.下列叙述中错误的是:

A)计算机不能直接执行用C语言编写的源程序

B)程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件

C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件

D)后缀为.obj和.exe的二进制文件都可以直接运行

3.若变量均已正确定义并赋值,以下合法的C语言赋值语句是:

A)x=y==5;B)x=n%2.5;C)x+n=i;D)x=5=4+1;

4.若以下选项中的变量已正确定义,则正确的赋值语句是:

A)x1=26.8%3B)1+2=x2C)x3=0x12D)x4=1+2=3;

5.若已定义x和y为double类型,则表达式:

x=1,y=x+3/2的值是:

A)2.0B)2C)2.5D)1

6.已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’,

执行语句printf("%d,%d",c1,c2-2);后,输出结果是:

A)A,BB)A,68C)65,66D)65,68

7.main()

{chara1=’M’,a2=’m’;printf("%c\n",(a1,a2));}

根据以上程序,以下叙述中正确的是:

A)程序输出大写字母MB)程序输出小写字母m

C)格式说明符不足,编译出错D)程序运行时产生出错信息

8.已有定义:

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

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

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

9.设x和y均为int型变量,则以下语句:

x+=y;y=x-y;x-=y;的功能是:

A)交换x和y中的值B)把x和y按从小到大排列

C)无确定结果D)把x和y按从大到小排列

10.以下选项中非法的表达式是

A)0<=x<100B)i=j==0C)(char)(65+3)D)x+1=x+1

11.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是:

A)abs(x-y)<10B)x-y>-10&&x-y<10C)(x-y)<-10||!

(y-x)>10D)(x-y)*(x-y)<100

12.若执行以下程序段:

inta=1,b=2,m=2,n=2;(m=a>b)&&++n;则n的值是:

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

13.若有表达式(w)?

(-x):

(++y),则其中与w等价的表达式是:

A)w==1B)w==0C)w!

=1D)w!

=0

14.设已有定义inta=5,b=6,c=7,d=8,m=2,n=2;

则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为:

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

15.已有定义:

charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是:

A)isupper(c)B)’A’<=c<=’Z’C)’A’<=c&&c<=’Z’D)c<=(‘z’-32)&&(‘a’-32)<=c

第3章语句和控制结构

16.以下叙述中错误的是

A)C语言是一种结构化程序设计语言

B)结构化程序有顺序、分支、循环三种基本结构组成

C)使用三种基本结构构成的程序只能解决简单问题

D)结构化程序设计提倡模块化的设计方法

17.有以下程序段

intm=0,n=0;charc='a';

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

若从键盘上输入:

10A10<回车>,则输出结果是:

A)10,A,10B)10,a,10C)10,a,0D)10,A,0

18.若有说明语句:

inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给a、b、c的语句是:

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

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

19.若在定义语句:

inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是:

A)scanf("%d",a,b,c);B)scanf("%d%d%d",a,b,c);C)scanf("%d",p);D)scanf("%d",&p);

20.有定义语句:

intx,y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是:

A)1112<回车>B)11,12<回车>C)11,12<回车>D)11,<回车>12<回车>

21.若变量已正确定义为int型,要通过语句scanf(”%d,%d,%d”,&a,&b,&c);给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是:

(□代表一个空格符)

A)□□□1,2,3<回车>B)1□2□3<回车>C)1,□□□2,□□□3<回车>D)1,2,3<回车>

22.有以下程序段

intj;floaty;charname[50];scanf("%2d%f%s",&j,&y,name);

当执行上述程序段,从键盘上输入555667777abc后,y的值为:

A)55566.0B)566.0C)7777.0D)566777.0

23.当用户要求输入的字符串中含有空格时,应使用的输入函数是:

A)scanf()B)getchar()C)gets()D)getc()

24.C语言中用于结构化程序设计的三种基本结构是:

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

25.要使以下程序中t的输出结果为4,则输入a和b应满足的条件是:

main()

{ints=1,t=1,a,b;

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

if(a>0)s+=1;

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

elseif(a==b)t=5;

elset=2*s;

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

}

A)a>0并且a0并且a>bD)a<0并且a>b

26.有以下程序段

intn,t=1,s=0;

scanf("%d",&n);

do{s=s+t;t=t-2;}while(t!

=n);

为使此程序段不陷入死循环,从键盘输入的数据应该是:

A)任意正奇数B)任意负偶数C)任意正偶数D)任意负奇数

27.在循环语句的循环体中,continue语句的作用是:

A)立即终止整个循环B)继续执行continue语句之后的循环体各语句

C)结束本次循环D)结束本次循环并跳出循环

28.若变量已正确定义,有以下程序段,其输出结果是:

i=0;

doprintf("%d,",i);while(i++);

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

A)0,0B)0,1C)1,1D)程序进入无限循环

29.若定义inti;,则循环语句:

for(i=2;i==0;)printf("%d",i--);执行次数是:

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

30.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)

for(s=a,b=1;b<=c;b++)s=s+1;

则与上述程序段功能等价的赋值语句是:

A)s=a+b;B)s=a+c;C)s=s+c;D)s=b+c;

第4章函数与程序结构

31.对于一个正常运行的C程序,以下叙述中正确的是:

A)程序的执行总是从main函数开始,在main函数结束

B)程序的执行总是从程序的第一个函数开始,在main函数结束

C)程序的执行总是从main函数开始,在程序的最后一个函数中结束

D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

32.以下正确的叙述是:

A)在C语言中,main函数必须位于文件的开头

B)C语言的每行中只能写一条语句

C)C语言本身没有输入、输出语句

D)main函数可以在任何地方出现

33.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是:

A)voidB)intC)floatD)double

34.下面的函数调用语句中func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));,函数的实参个数是:

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

35.以下叙述中错误的是

A)用户自定义的函数中可以没有return语句

B)用户自定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值

C)用户自定义的函数中若没有return语句,则应当定义函数为void类型

D)函数的return语句中可以没有表达式

36.若程序中定义了以下函数

doublemyadd(doublea,doubleb)

{return(a+b);}

并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下错误的说明是:

A)doublemyadd(doublea,b);B)doublemyadd(double,double);

C)doublemyadd(doubleb,doublea);D)doublemyadd(doublex,doubley);

37.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是:

A)地址传递B)双向值传递C)单向值传递D)传递方式由用户指定

38.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是:

A)函数的实参和其对应的形参共占同一存储单元

B)形参只是形式上的存在,不占用具体存储单元

C)同名的实参和形参占同一存储单元

D)函数的形参和实参分别占用不同的存储单元

39.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:

A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参

C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参

40.凡在函数内未指定的存储类型变量,其隐含的存储类型为:

A)registerB)staticC)externD)auto

41.以下叙述中正确的是:

A)未在定义语句中赋初值的变量初值都是随机值B)全局变量的作用域一定比局部变量大

C)static类别变量的生存期贯穿于整个程序的运行期间D)函数的形参都属于全局变量

42.在一个C语言源程序文件中所定义的全局变量,其作用域为:

A)所在文件的全部范围B)所在程序的全部范围

C)所在函数的全部范围D)由具体定义位置和extern说明来决定范围

第6章数组

43.若在main()中有定义inta[5];则数组a中所有元素的初值为:

A)不确定B)0C)1D)-1

44.若有以下定义语句:

intm[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是:

A)m[--i]B)m[2*2]C)m[m[0]]D)m[m[i]]

45.若定义a[][2]={1,2,3,4,5,6,7};则a数组中行的大小是:

A)2B)3C)4D)无确定值

46.若有定义语句:

inta[3][6];,按在内存中的存放顺序,a数组的第10个元素是

A)a[0][4]B)a[1][3]C)a[0][3]D)a[1][4]

47.以下能正确定义数组并正确赋初值的语句是:

A)intN=5,b[N][N];B)inta[1][2]={{1},{3}};

C)intc[2][]={{1,2},{3,4}}D)intd[3][2]={{1,2},{3,4}};

48.以下能正确定义二维数组的是:

A)inta[][3];B)inta[][3]=2{2*3};C)inta[][3]={1};D)inta[2][3]={{1},{2},{3,4}}

49.若定义a[][3]={1,2,3,4,5,6,7,8};,则数组a中行的大小是:

A)2B)3C)4D)无确定值

50.在以下定义中,正确的说明语句为:

A)inta['a']B)inta[3,4]C)inta[][]D)int*a[10];

51.用数组名作为函数参数时,它传递给函数是:

A)数组首地址B)整个数组C)数组的第一个值D)数组的全部地址

52.以下能正确定义一维数组的选项是:

A)inta[3]={0,1,2,3};B)chara[]={0,1,2,3,};C)chara={'A','B','C'};D)inta[3]="012";

53.若有定义语句:

chars[10]="1234567\0\0";,则strlen(s)的值是:

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

第7章指针

54.设有定义:

intn1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是:

A)*p=*q;B)p=q;C)*p=&n1;D)p=*q;

55.若有定义:

intx=0,*p=&x;,则语句printf("%d\n",*p);的输出结果是:

A)随机值B)0C)x的地址D)p的地址

56.设有定义:

charp[]={’1’,’2’,’3’},*q=p;,不能计算出一个char型数据所占字节数的表达式是:

A)sizeof(p)B)sizeof(char)C)sizeof(*q)D)sizeof(p[0])

57.有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是:

A)*p+9B)*(p+8)C)*p+=9D)p+8

58.有以下定义和语句:

inta[3][2]={1,2,3,4,5,6,},*p[3];p[0]=a[1];则*p[0]+1所代表的数组元素是:

A)a[0][1]B)a[1][0]C)a[1][1]D)a[1][2]

59.若有以下说明和语句,intc[4][5],(*p)[5];p=c;能正确引用c数组元素的是:

A)p+1B)*(p+3)C)*(p+1)+3D)*(p[0]+2)

60.若有定义语句:

inta[2][3],*p[3];,则以下语句中正确的是:

A)p=a;B)p[0]=a;C)p[0]=&a[1][2];D)p[1]=&a;

61.若有定义inta[3][5],i,j;(且0

A)*(a+i*5+j)B)*(a[i]+j)C)*(a+i)+jD)*(*(a+i)+j);

62.以下各语句或语句组中,正确的操作是:

A)chars[5]="abcde";B)char*s;gets(s);C)chars[5];gets(&s);D)char*s="abcde";

63.把字符串"OK!

"赋值给变量不正确的语句或语句组是:

A)chara[]="OK!

";B)chara[8]={'O','K','!

','\0'};

C)char*p;p="OK!

";D)charp;strcpy(p,"OK!

");

64.定义compare(char*s1,char*s2)函数,以实现比较两个字符串大小的功能。

以下程序运行结果为-32,选择正确答案填空。

main()

{printf(”%d\n”,compare(”abCd”,”abc”));

}

compare(char*s1,char*s2)

{while(*s1&&*s2&&){s1++;s2++;}

return*s1-*s2;

}

A)*s1!

=*s2B)*s1==*s2C)*s1=*s2D)s1!

=s2

65.有以下函数,关于aaa函数的功能叙述正确的是:

intaaa(char*s)

{char*t=s;

while(*t++);

t--;return(t-s);

}

A)求串s的长度B)比较两串的大小C)将串s复制到串tD)求串s所占字节数

66.设有定义:

intn=0,*p=&n,**q=&p;,则以下选项中,正确的赋值语句是:

A)p=1;B)*q=2;C)q=p;D)*p=5;

67.若有定义char*language[]={"FORTRAN","BASIC","PASCAL","C"};则language[2]的值是:

A)一个字符B)一个地址C)一个字符串D)不定

68.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是:

A)p=2*(int*)malloc(sizeof(int));B)p=(int*)malloc(2*sizeof(int));

C)p=(int*)malloc(2*2);D)p=(int*)calloc(2,sizeof(int));

第8章结构及其地数据类型

69.若要说明一个类型名STP,使得定义语句STPs;等价于char*s;,以下选项中正确的是:

A)typedefSTPchar*s;B)typedef*charSTP;

C)typedefSTP*char;D)typedefchar*STP

70.若有定义typedefcharSTR[5][20];STRs;,则s是:

A)字符指针数组变量B)字符数组变量C)字符变量D)字符指针变量

71.有以上程序段:

typedefstructNODE{intnum;structNODE*next;}OLD;以下正确的叙述是:

A)以上的说明形式非法B)NODE是一个结构体类型

C)OLD是一个结构体类型D)OLD是一个结构体变量

72.设有以下说明语句typedefstruct{intn;charch[8];}PER;,则下面叙述中正确的是:

A)PER是结构体变量名B)PER是结构体类型名

C)typedefstruct是结构体类型D)struct是结构体类型名

73.根据下面的定义,能打印出字母M的语句是:

structperson{charname[9];intage;}class[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};

A)printf("%c\n",class[3].name);B)printf("%c\n",class[3].name[1]);

C)printf("%c\n",class[2].name[1]);D)printf("%c\n",class[2].name[0]);

74.设有说明如下,则能正确定义结构体数组并赋初值的语句是:

typedefstruct{intn;charc;doublex;}STD;

A)structSTDtt[2]={{1,'A',6},{2,'B',7}};B)structtt[2]={{1,'A'},{2,'B'}};

C)STDtt[2]={{1,'A',6},{2,'B',7}};D)STDtt[2]={1,"A",6,2,"",7};

75.若定义:

structss{charname[

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

当前位置:首页 > 总结汇报

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

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