C语言复习参考题.docx

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

C语言复习参考题.docx

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

C语言复习参考题.docx

C语言复习参考题

《C语言程序设计》复习参考资料

一.选择题

1.以下关于运算符优先顺序的描述中正确的是()。

A)关系运算符<算术运算符<赋值运算符<逻辑与运算符

B)逻辑运算符<关系运算符<算术运算符<赋值运算符

C)赋值运算符<逻辑与运算符<关系运算符<算术运算符

D)算术运算符<关系运算符<赋值运算符<逻辑与运算符

2.下列选项中合法的变量名是_________

A)#defineB)intC)a594_3D) abs(x)

3.以下正确的描述是()。

A)break语句的作用是结束整个循环的执行

B)在C程序中,注释说明只能位于一条语句的后面

C)在循环体内使用break语句或continue语句的作用相同

D)从多层循环嵌套中退出时,只能使用goto语句

4.以下说法正确的是()

A).#define和printf都是C语句。

B).#define是C语句,而printf不是。

C).若程序中要调用数学函数,必须在文件开头输入语句#include“math.h”

D).#define和printf都不是C语句。

5.下面的函数定义正确的是______________

A)floatfun(floatx;floaty){returnx*y;}

B)floatfun(floatx,y){returnx*y;}

C)floatfun(x,y){intx,y;returnx*y;}

D)intfun(intx,inty){returnx*y;}

6.执行下面语句后的输出为()

inti=-1;

if(i<=0)printf(“****\n”)

elseprintf(“%%%%\n”)

A).****B).%%%%

C).%%%%cD).有语法错误,不能正确执行

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

voidmain()

{intk=17;

printf("%d,%o,%x\n",k,k,k);

}

A).17,21,11B).17,17,17

C).17,0x11,021D).17,21,1

8.以下不正确的叙述是()

A)#define是宏定义命令

B)宏定义只是做简单的置换,不做正确性检查

C)宏定义是C语句,必须在行末加分号

D)printf是C语句,但#define不是。

9.一个C语言程序是由()

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

C)若干过程组成D)函数组成

10.在C语言中,正确的结论是()

A).对文件操作必须先关闭文件

B).对文件操作必须先打开文件

C).对文件操作顺序没有统一规定

D).以上都错

11.以下对二维数组a的正确说明是()。

A)inta[3][];B)floatfa(3,4);

C)chara[1][3];D)floata(3)(5);

12.若有说明:

inta[3][2]={10};则下面正确的叙述是()

A)只有元素a[0][0]可得到初值10

B)此说明语句不正确:

C)数组a中各元素都可得到初值,但其值不一定为0。

D)数组a中每个元素均可得到初值10

13.以下叙述不正确的是()。

A)一个C源程序可由一个或多个函数组成

B)一个C源程序必须包含一个main函数

C)C程序的基本组成单位是语句

D)只能在循环体内和switch语句体内使用break语句

14.为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句总是与()配对。

A)缩排位置相同的ifB)其之前最近的未配对的if

C)之后最近的ifD)同一行上的if

15.能正确表示a和b同时为正或同时为负的逻辑表达式是()

A)(a>=0||b>=0)&&(a<0||b<0)

B)(a>=0&&b>=0)||(a<0&&b<0)

C)(a+b>0)&&(a+b<=0)

D)(a-b>0)&&(a-b<=0)

16.已知x=5,ch='A',y=0则表达式(x>=y&&ch<'a'&&!

y)的值是()

A)0B)语法错C)1D)"假"

17.下列关于单目运算符++、--的叙述中正确的是()

A)它们的运算对象可以是任何变量和常量

B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D)它们的运算对象可以是char型变量、int型变量和float型变量

18.下面的程序()

voidmain()

{intx=3;

do{

printf(“%d\n”,x-=2);

}while(!

(--x));

}

A).输出的是1B).输出的是1和-2

C).输出的是3和0D).是死循环

19.如下程序:

voidmain()

{inta=6;printf(“%d\n”,(a+=3,2*a));}

执行后,输出结果是()

A)9B)6C)2D)18

20.若有以下说明和语句,请选出哪个是对C数组元素的正确引用()

intc[4][5],(*cp)[5];cp=c;

A).cp+1B).*(cp+3)C).*(cp+1)+3D).*(*cp+2)

21.下面程序的输出是()

main()

{intx=023;

printf("%d\n",--x);}

A).17B).18C).23D).24

22.执行下列程序的结果是()

main()

{floatx=1,y;y=++x*++x;printf(“%f\n”,y);}

A).9.000000B).6.000000

C).1.000000D).程序有错误

23.下面程序的输出是()

main()

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

printf("%d\n",*(p+2));}

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

24.执行下面程序中的输出语句后,a的值是()

main()

{inta;

printf("%d\n",(a=3*5,a*4,a+5));}

A).65B).20C).15D).10

25.下面程序的输出是()

main()

{inta=-1,b=4,k;

k=(a++<=0)&&(!

(b--<=0));

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

A).003B).012C).103D).112

26.设有如下的程序段:

charstr[]="Hello";char*ptr;ptr=str;

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

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

27.在宏定义#definePI3.14159中,用宏名PI代替一个()

A).单精度数B).双精度数C).常量D).字符串

28.若i是整型变量,pb是基本型为整型的指针变量,则正确的赋值表达式是()

A).pb=&iB).pb=iC).*pb=&iD).*pb=*i

29.有以下程序段

intm=0,n=0;charc=’d’;

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

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

若从键盘上输入:

6D6<回车>,则输出结果是()

A)0,d,6B)6,d,6C)6,D,6D)6,D,0

30.printf()函数中用到格式符%-7s,其中数字7表示输出的字符串占用7列。

如果字符串长度小于7,则输出按方式()

A)从左起输出该字串,右补空格

B)按原字符长从左向右全部输出

C)右对齐输出该字串,左补空格

D)输出错误信息

31.以下能正确地定义整型变量a,b和c并为其赋初值3的语句是()

A)inta=3,b=3,c=3;B)inta,b,c=3;

C)a=3,b=3,c=3;D)a=b=c=3;

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

voidmain()

{intx=6,y=6,i;

for(i=2;x>4;y=++i)

printf("%d,%d",x--,y);

}

A)5,55,3B)6,62,3C)6,55,2D)6,65,3

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

voidmain()

{intw=4;

intfun(intk);

fun(w);

printf("\n");

}

fun(intk)

{if(k>0)fun(k-1);

printf("%d",k);}

A)4321B)01234

C)1234D)43210

34.下面程序的输出是()

main()

{intx=023;

printf("%d\n",--x);}

A).17B).18C).23D).24

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

main()

{charch[3][4]={"123","456","78"},*p[3];inti;

for(i=0;i<3;i++)p[i]=ch[i];

for(i=0;i<3;i++)printf("%s",p[i]);

}

A).123456780B).123456780

C).12345678D).147

36.下面程序的输出结果为()

char*alpha[6]={"ABCD","EFGH","IJKL",

"MNOP","QRST","UVWX"};

char**p;

voidmain()

{inti;p=alpha;

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

printf("%c",(*p)[i]);

printf("\n");

}

A).EIMCB).ABCDC).EFGHD).AEIM

37.根据下面的定义,能打印出字母M的语句是()

structperson{charname[9];intage;};

structpersonclass[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]);

38.有以下程序

voidmain()

{intp[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<7&&p[i]%2){k=k+p[i];i++;}

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

}

执行后输出结果是()

A)58B)56C)45D)24

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

voidmain()

{inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p;

p=&x[1][1];

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

printf("%d",p[i]);

}

A)52B)51C)53D)97

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

#include

voidmain()

{char*a=”abcdefghi”;

voidfun(char*s);

fun(a);

puts(a);

}

voidfun(char*s)

{intx,y;

charc;

for(x=0,y=strlen(s)-1;x

{c=s[y];s[y]=s[x];s[x]=c;}

}

A).ihgfedcbaB).abcdefghi

C).abcdedcbaD).ihgfefghi

41.voidmain()

{inti,a[]={5,6,9,11};

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

{if(a[i]%2==0)continue;

printf("%d",a[i]);

}

}

执行后输出结果是()

A)编译出错B6C)5911D)56911

42.以下对数组的定义正确的是()

A)intx(10); B)intx[5]={0,1,2,3,4,5};

C)intn=10;x[n]; D)intx[]={0,1,2,3,4};

43.以下叙述中不正确的是()

A)switch是多分支结构语句

B)continue语句的作用是使程序的执行流程跳出包含它的所有循环

C)break语句只能用在循环体内和switch语句体内

D)在循环体内使用break语句和continue语句的作用不相同

44.如下程序:

voidmain()

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

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

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

}

执行后输出结果是()

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

45.以下叙述中,不正确的是()

A)算法应该具有有穷性、确定性以及有效性等特点

B)算法可以用传统流程图、N-S流程图以及伪代码等形式来描述

C)基本结构只有顺序、选择、循环3种结构

D)结构化程序设计的思想是自顶向下、逐步细化、模块化设计以及结构化编码

46.在C语言中,函数返回值的类型最终取决于()

A)函数定义时形参的类型B)return语句中表达式值的类型

C)调用函数时主函数所传递的实参类型D)函数定义时在函数首部所说明的函数类型

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

voidmain()

{inti;

for(i='a';i<'i';i++,i++)

printf("%c",i-32);

printf("\n");

}

A)编译不通过,无输出B)acegC)ACEGD)ABCDEFGI

48.若有以下的说明:

structperson

{charname[20];

intage;

charsex;

}a={"lining",20,'m'},*p=&a;

则对字符串lining的引用方式不可以是()

A).(*p).nameB).p.nameC).a.nameD).p->name

49.下面的程序输出是()

intm=13;

intfun2(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;printf("%d\n",fun2(a,b)/m);}

A).1B).2C).7D).10

50.下面的程序输出是()

main()

{intx=100,a=10,b=20,ok1=5,ok2=0;

if(a

if(b!

=15)

if(!

ok1)

x=1;

else

if(ok2)x=10;

x=-1;

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

A).-1B).0C).1D).不确定的值

51.若有以下定义:

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

则值为3的表达式是()

A).p+=2,*(p++)B).p+=2,*++p

C).p+=3,*p++D).p+=2,++*p

52.下面程序的输出是()

intaa[3][3]={{2},{4},{6}};

voidmain()

{inti,*p=&aa[0][0];

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

{if(i==0)

aa[i][i+1]=*p+1;

else

++p;

printf("%d",*p);}

}

A).23B).26C).33D).36

53.下面程序的输出是()

voidprtv(int*x)

{printf("%d\n",++*x);}

voidmain()

{inta=25;prtv(&a);}

A).23B).24C).25D).26

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

voidmain()

{chara[10]={'1','2','3','4','5','6','7','8','9','\0'};

char*p;

inti=8;

p=a+i;

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

}

A)6B)789C)'6'D)678

55.执行以下3条语句之后,则k的值是_______

intx=4,y=7 ;x++ ;y+=2 ;k=y%x;

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

56.以下程序段

for(k=0,m=4;m;m-=2)

for(n=1;n<4;n++)k++;

循环体语句”k++;”执行的次数是______________

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

57.在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为()

A)char=int<1ongint<=float

B)char

C)char

D)char=int=1ongint<=float

58.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='d'十'1'一'3';后,c2中的值为()

A)bB)68C)不确定的值D)f

59.表达式18/4*sqrt(4.0)/8值的数据类型为:

()

A)intB)floatC)doubleD)不确定

60.能正确表示"当x的取值在[1,10]和[50,60]范围内为真,否则为假"的表达式是()。

A)(x>=1)&&(x<=10)&&(x>=50)&&(x<=60)

B)(x>=1)||(x<=10)||(x>=50)||(x<=50)

C)(x>=1)&&(x<=10)||(x>=50)&&(x<=60)

D)(x>=1)||(x<=10)&&(x>=50)||(x<=60)

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

#include

main()

{char*p1,*p2,str[50]="ABCDEFG";

p1="abcd";p2="efgh";

strcpy(str+1,p2+1);strcpy(str+3,p1+3);

printf("%s",str);

}

A).AfghdEFGB).AbfhdC).AfghdD).Afgd

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

main()

{inti;

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

{if(i%2){printf("#");continue;}

printf("*");

}

printf("\n");

}

A).#*#*#B).#####C).*****D).*#*#*

二.填空题

1.C语言源程序的扩展名为.c,可执行文件的扩展名为_______________。

.exe

2.数组int a[3][5];共定义了______个数组元素。

15

3.C程序由函数构成,C程序总是从_______开始执行.main()

4.C语言中,用__________关键字来包含如stdio.h之类的头文件。

include

5.函数的返回值是通过函数中的________________语句来获得的。

return

6.至少执行一次循环体的循环语句是。

do—while语句

7.对于不带返回值的函数,应当用关键字______________定义函数。

void

8.多分支结构的程序,通常选用_________语句来实现。

switch

9.若charch[]="25yi6"有以下语句,则编译后分配给数组ch的内存占用的字节数为________。

6

10.下面运算符 < ,++ = 按照优先级从高到低排列顺序为___。

++<=,

11.若charstr[8]={“tony”};intk=strlen(str);则k的值为____________。

4

12.______________是声明结构体类型的关键字。

struct

13.inta[3][4]={{7,5},{5,8},{0,6,9,3}};则编译后a[1][2]=__________。

0

14.静态局部变量应该用关键字____________来进行声明。

static

15.用数组名作为函数调用的实参,则传递给形参的是_____。

数组的首地址

16.若有说明:

inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是________。

3

17.C语言提供三种逻辑运算符,按优先级高低它们分别是。

!

>&&>||

18.getchar()函数的功能是。

从标准输入设备读取下一个字符

19.写出下面表达式的值

    6*4/7+8%3_______5x=5;y=2;(x++)+y_________7

    8-4>=5+3________06>4-2?

4%2:

3   _______0

    x=2,y=2;x||!

y______1x=3; x+=x-=2   _______2

20.下面invert函数的功能是将一个字符串str的内容颠倒过来,请填空。

#include

voidinvert(charstr[])

{inti,j,;k

for(i=0,j=strlen(str);i

{k=str[i];str[i]=str[

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

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

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

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