C程序的设计复习题集带答案.docx

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

C程序的设计复习题集带答案.docx

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

C程序的设计复习题集带答案.docx

C程序的设计复习题集带答案

一、选择题

1.结构化程序设计的3种结构是(D)

A)顺序结构、选择结构、转移结构

B)分支结构、等价结构、循环结构

C)多分支结构、赋值结构、等价结构

D)顺序结构、选择结构、循环结构

2.以下叙述中正确的是(C)

A)C语言比其他语言高级

B)C语言可以不用编译就能被计算机识别执行

C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D)C语言出现的最晚,具有其他语言的一切优点

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

A)顺序结构、选择结构、循环结构

B)if,switch,break

C)for,while,do-while

D)if,for,continue

4.C语言中最简单的数据类型包括(B)

A)整型、实型、逻辑型

B)整型、实型、字符型

C)整型、字符型、逻辑型

D)字符型、实型、逻辑型

5.若变量已正确定义并赋值,以下符合C语言语法的表达式是(B)

A)a:

=b+1

B)a=b=c+2

C)int18.5%3

D)a=a+7=c+b

6.下列可用于C语言用户标识符的一组是(B)

A)void,define,WORD

B)a3_b3,_123,Car

C)For,-abc,IFCase

D)2a,DO,sizeof

7.C语言中运算对象必须是整型的运算符是(A)

A)%=

B)/

C)=

D)<=

8.若变量a,i已正确定义,且i已正确赋值,合法的语句是(B)

A)a==1

B)++i;

C)a=a++=5;

D)a=int(i);

9.已知

intt=0;

while(t=1)

{...}

则以下叙述正确的是(B)

A)循环控制表达式的值为0

B)循环控制表达式的值为1

C)循环控制表达式不合法

D)以上说法都不对

10.若变量已正确说明为float型,要通过语句

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

给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是(B)

A)10<回车>22<回车>33<回车>

B)10.0,22.0,33.0<回车>

C)10.0<回车>22.0<空格>33.0<回车>

D)10<<空格>>22<回车>33<回车>

11.有如下程序:

main()

{

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

switch(x)

{

case0:

b++;

case1:

a++;

case2:

a++;b++;

}

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

}

该程序的输出结果是(A)

A)a=2,b=1

B)a=1,b=1

C)a=1,b=0

D)a=2,b=2

12.有以下程序

main()

{

inti=1,j=1,k=2;

if((j++||k++)&&i++)

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

}

执行后输出结果是(C)

A)1,1,2

B)2,2,1

C)2,2,2

D)2,2,3

13.

有如下程序

main()

{

floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=1.0/x;

elsey=1.0;

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

}

该程序的输出结果是(C)

A)0.000000

B)0.250000

C)0.500000

D)1.000000

14.有如下程序:

main()

{

intn=9;

while(n>6)

{

n--;

printf("%d",n);

}

}

该程序的输出结果是(B)

A)987

B)876

C)8765

D)9876

15.在下列选项中,没有构成死循环的是(D)

A)inti=100;

while

(1)

{

i=i0+1;

if(i>100)break;

}

B)for(;;);

C)intk=10000;

do{

k++;

}while(k>10000);

D)ints=36;

while(s)--s;

16.设intx=1,y=1;表达式(!

x||y--)的值是(B)

A)0

B)1

C)2

D)-1

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

A)函数调用可以作为独立的语句存在

B)函数调用可以作为一个函数的实参

C)函数调用可以出现在表达式中

D)函数调用可以作为一个函数的形参

18.有以下程序

floatfun(intx,inty)

{

return(x+y);

}

main()

{

inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));

}

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

A)编译出错

B)9

C)21

D)9.0

19.若有以下调用语句,则不正确的fun函数的首部是(D)

main()

{

inta[50],n;

fun(n,&a[9]);

}

A)voidfun(intm,intx[])

B)voidfun(ints,inth[41])

C)voidfun(intp,int*s)

D)voidfun(intn,inta)

20.fseek函数的正确调用形式是(B)

A)fseek(文件指针,起始点,位移量)

B)fseek(文件指针,位移量,起始点)

C)fseek(位移量,起始点,文件指针)

D)fseek(起始点,位移量,文件指针)

21.若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是(C)

A)EOF

B)-1

C)1

D)NULL

22.若有说明语句:

charc='\72';则变量c(A)

A)包含1个字符

B)包含2个字符

C)包含3个字符

D)说明不合法,c的值不确定

23.若有说明inta[3][4];则a数组元素的非法引用是(D)

A)a[0][2*1]

B)a[1][3]

C)a[4-2][0]

D)a[0][4]

24.设有以下说明语句

structstu

{

inta;

floatb;

}stutype;

则下面的叙述不正确的是(C)

A)struct是结构体类型的关键字

B)structstu是用户定义的结构体类型

C)stutype是用户定义的结构体类型名

D)a和b都是结构体成员名

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

A)整型常量

B)整型表达式

C)整型常量或整型表达式

D)任何类型的表达式

26.若运行时给变量x输入12,则以下程序的运行结果是(A)

main()

{

intx,y;

scanf("%d",&x);

y=x>12?

x+10:

x-12;

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

}

A)0

B)22

C)12

D)10

27.以下说法正确的是(C)

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

B)在C语言程序中,要调用函数必须在main()函数中定义

C)C语言程序总是从main()函数开始执行

D)C语言程序中的main()函数必须放在程序的开始部分

28.表达式0x13^0x17的值是(A)

A)0x04

B)0x13

C)0xE8

D)0x17

29.有以下程序

main()

{

inta=3,b=4;

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

}

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

A)12

B)15

C)16

D)20

30.下列程序执行后的输出结果是(A)

voidfunc(int*a,intb[])

{

b[0]=*a+6;

}

main()

{

inta,b[5];

a=0;b[0]=3;

func(&a,b);

printf("%d\n",b[0]);

}

A)6

B)7

C)8

D)9

31.若有下面的程序段:

chars[]="china";char*p;p=s;

则下列叙述正确的是(D)

A)s和p完全相同

B)数组s中的内容和指针变量p中的内容相等

C)s数组长度和p所指向的字符串长度相等

D)*p与s[0]相等

32.以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序

voidsort(inta[],intn)

{

inti,j,t;

for(i=0;i

for(j=i+1;j

if(a[i]

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

main()

{

intaa[10]={1,2,3,4,5,6,7,8,9,10},i;

sort(&aa[3],5);

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

printf("\n");

}

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

A)1,2,3,4,5,6,7,8,9,10,

B)10,9,8,7,6,5,4,3,2,1,

C)1,2,3,8,7,6,5,4,9,10,

D)1,2,10,9,8,7,6,5,4,3,

33.以下程序的运行结果是(A)

structdate

{intyear,month,day;}today;

main()

{

printf("%d\n",sizeof(structdate));

}

A)6

B)8

C)10

D)12

34.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是(D)

A)a,point,*&a

B)&*a,&a,*point

C)*&point,*point,&a

D)&a,&*point,point

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

A)地址传递

B)单向值传递

C)由实参传形参,再由形参传实参

D)传递方式由用户指定

36.fun(char*p2,char*p1)

{

while((*p2=*p1)!

='\0'){p1++;p2++;}

}

函数的功能是(A)

A)将p1所指字符串复制到p2所指内存空间

B)将p1所指字符串的地址赋给指针p2

C)对p1和p2两个指针所指字符串进行比较

D)检查p1和p2两个指针所指字符串中是否有'\0'

 

37.若执行下述程序时,若从键盘输入6和8时,结果为(B)

main()

{

inta,b,s;

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

s=a

if(a

s=b;

s*=s;

printf("%d",s);

}

A)36

B)64

C)48

D)以上都不对

38.fscanf函数的正确调用形式是(D)

A)fscanf(fp,格式字符串,输出表列);

B)fscanf(格式字符串,输出表列,fp);

C)fscanf(格式字符串,文件指针,输出表列);

D)fscanf(文件指针,格式字符串,输入表列);

39.下列关于C语言数据文件的叙述中正确的是(D)

A)文件由ASCII码字符序列组成,C语言只能读写文本文件

B)文件由二进制数据序列组成,C语言只能读写二进制文件

C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

40.有以下程序

voidss(char*s,chart)

{

while(*s)

{

if(*s==t)

*s=t-'a'+'A';

s++;

}

}

main()

{

charstr1[100]="abcddfefdbd",c='d';

ss(str1,c);printf("%s\n",str1);

}

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

A)ABCDDEFEDBD

B)abcDDfefDbD

C)abcAAfefAbA

D)Abcddfefdbd

41.structlink

{

intdata;

structlink*next;

}a,b,c,*p,*q;

且变量a和b之间已有如下图所示的链表结构:

指针p指向变量a,q指向变量c。

则能够把c插入到a和b之间并形成新的链表的语句组是:

(D)

A)a.next=c;c.next=b;

B)p.next=q;q.next=p.next;

C)p->next=&c;q->next=p->next;

D)(*p).next=q;(*q).next=&b;

42.在设计程序时,应采纳的原则之一是(D)

A)不限制goto语句的使用

B)减少或取消注解行

C)程序越短越好

D)程序结构应有助于读者理解

43.程序设计语言的基本成分是数据成分、运算成分、控制成分和(D)

A)对象成分

B)变量成分

C)语句成分

D)传输成分

44.下列不属于软件工程的3个要素的是(D)

A)工具

B)过程

C)方法

D)环境

45.下列叙述中正确的是(D)

A)C语言编译时不检查语法

B)C语言的子程序有过程和函数两种

C)C语言的函数可以嵌套定义

D)C语言的函数可以嵌套调用

46.在C语言中,退格符是(D)

A)\n

B)\t

C)\f

D)\b

48.以下叙述中正确的是(A)

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

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

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

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

49.在C程序中,判逻辑值时,用"非0"表示逻辑值"真",又用"0"表示逻辑值"假"。

在求逻辑值时,用(A)分别表示逻辑表达式值为"真"和"假"。

A)10

B)01

C)非0非0

D)11

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

A)%

B)\

C)%和\

D)**

51.字符型数据在机器中是用ASCII码表示的,字符"5"和"7"在机器中表示为(C)

A)10100011和01110111

B)01000101和01100011

C)00110101和00110111

D)01100101和01100111

52.若已定义:

inta=25,b=14,c=19;以下三目运算符(?

:

)所构成语句的执行后

a<=25&&b--<=2&&c?

printf("***a=%d,b=%d,c=%d\n",a,b,c):

printf("###a=%d,b=%d,c=%d\n",a,b,c);程序输出的结果是(C)

A)***a=25,b=13,c=19

B)***a=26,b=14,c=19

C)###a=25,b=13,c=19

D)###a=26,b=14,c=19

53.若有定义:

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

A)2.500000

B)2.750000

C)3.500000

D)0.000000

54.下列程序段的输出结果是:

(C)

inta=1234;

floatb=123.456;

doublec=12345.54321;

printf("-,%2.1f,%2.1f",a,b,c);

A)无输出

B)12,123.5,12345.5

C)1234,123.5,12345.5

D)1234,123.4,1234.5

55.若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是(D)

#include

main()

{

charc;

intv0=1,v1=0,v2=0;

do{

switch(c=getchar())

{

case'a':

case'A':

case'e':

case'E':

case'i':

case'I':

case'o':

case'O':

case'u':

case'U':

v1+=1;

default:

v0+=1;v2+=1;

}

}while(c!

='\n');

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);

}

A)v0=7,v1=4,v2=7

B)v0=8,v1=4,v2=8

C)v0=11,v1=4,v2=11

D)v0=13,v1=4,v2=12

56.设有以下程序段

intx=0,s=0;

while(!

x!

=0)

s+=++x;

printf("%d",s);

则(B)

A)运行程序段后输出0

B)运行程序段后输出1

C)程序段中的控制表达式是非法的

D)程序段执行无限次

57.执行下面的程序段后,变量k中的值为(A)

intk=3,s[2];

s[0]=k;k=s[1]*10;

A)不定值

B)33

C)30

D)10

58.以下程序段的描述,正确的是(C)

x=-1;

do

{x=x*x;}

while(!

x);

A)是死循环

B)循环执行两次

C)循环执行一次

D)有语法错误

59.以下有错误的是(D)

A)

main()

{

intx,y,z;

x=0;y=x-1;

z=x+y;

}

B)

main()

{

intx,y,z;

x=0,y=x+1;

z=x+y;

}

C)

main()

{

intx;int

inty;

x=0,y=x+1;

z=x+y;

}

D)

main()

{

intx,y,z;

x=0;y=x+1;

z=x+y,

}

60.有如下程序段

inta=14,b=15,x;

charc='A';

x=(a&&b)&&(c<'B');

执行该程序段后,x的值为(D)

A)ture

B)false

C)0

D)1

61.下列程序执行后的输出结果是(C)

voidfunc1(inti);

voidfunc2(inti);

charst[]="hello,friend!

";

main()

{

inti=0;

func1(i);

printf("\n");

}

voidfunc1(inti)

{

printf("%c",st[i]);

if(i<3)

{

i+=2;

func2(i);

}

}

voidfunc2(inti)

{

printf("%c",st[i]);

if(i<3)

{

i+=2;

func1(i);

}

}

A)hello

B)hel

C)hlo

D)hlm

62.以下函数返回数组a中最大值所在的下标值

fun(int*a,intn)

{

inti,j=0,p;

p=j;

for(i=j;i

if(a[i]>a[p])

;

return(p);

}

在下划线处应填入的内容是(D)

A)i=p

B)a[p]=a[i]

C)p=j

D)p=i

63.下面说明不正确的是(D)

A)chara[10]="china";

B)chara[10],*p=a;p="china"

C)char*a;a="china";

D)chara[10],*p;p=a="china"

64.以下程序的输出结果是(B)

#include

voidprt(int*x,int*y,int*z)

{

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

}

main()

{

inta=10,b=40,c=20;

prt(&a,&b,&c);

prt(&a,&b,&c);

}

A)11,42,31

12,22,41

B)11,41,20

12,42,20

C)11,21,40

11,21,21

D)11,41,21

12,42,22

65.若有函数内部说明:

inta[3][4];则数组a中各元素(C)

A)可在程序的运行阶段得到初值0

B)可在程序的编译阶段得到初值0

C)不能得到确定的初值

D)可在程序的编译或运行阶段得到初值0

66.有如下程序

main()

{

chars[]="ABCD",*p;

for(p=s+1;p

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

}

该程序的输出结果是(D)

A)ABCD

BCD

CD

D

B)A

B

C

D

C)B

C

D

D)BCD

CD

D

67.下列程序执行后的输出结果是(B)

main()

{

inta[3][3],*p,i;

p=&a[0]]0];

for(i=1;i<9;i++)p[i]=i+1;

printf("%d\n",a[1][2]);

}

A)3

B)6

C)9

D)随机数

68.定义如下变量和数组:

intk;

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

则下面语句的输出结果是(B)

for(k=0;k<3;k++)printf("%d",a[k][k]);

A)753

B)951

C)963

D)741

69.下列程序执行后的输出结果是(A)

main()

{

chararr[2][4];

strcpy(arr,"you");strcpy(arr[1],"me");

arr[0][3]=′&′;

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

}

A)you&me

B)you

C)me

D)err

70.有以下函数

charfun(char*p){returnp;}

该函数的返回值是(B)

A)无确切的值

B)形参p中存放的地址值

C)一个临时存储单元的地址

D)形参p自身的地址值

71.以下正确的说法是(C)

A)定义函数时,形参的类型说明可以放在函数体内

B)return后边的值不能为表达式

C)如果函数值的类型与返回值类型不一致,以函数值类型为准

D)如果形参与实参类型不一致,以实参类型为准

72.有以下程序

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\n",j)

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

当前位置:首页 > 求职职场 > 简历

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

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