C语言练习题.docx

上传人:b****9 文档编号:29117784 上传时间:2023-07-20 格式:DOCX 页数:26 大小:26.45KB
下载 相关 举报
C语言练习题.docx_第1页
第1页 / 共26页
C语言练习题.docx_第2页
第2页 / 共26页
C语言练习题.docx_第3页
第3页 / 共26页
C语言练习题.docx_第4页
第4页 / 共26页
C语言练习题.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

C语言练习题.docx

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

C语言练习题.docx

C语言练习题

注:

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

一、单项选择题(共100题,1~40为基本概念题,41~100题为程序阅读题)

1.已有定义:

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

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

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

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

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

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

A)void  B)int  C)float  D)double

4.有定义语句:

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

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

5.以下能正确定义且赋初值的语句是

 A)int n1=n2=10; B)char c=32; C)float f=f+1.1; D)double x=12.3E2.5

6.设有定义:

int k=1,m=2; float f=7;,则以下选项中错误的表达式是

 A)k=k>=k B)-(k++) C)k%int(f) D)k>=f>=m

7. main()

 { char a1=’M’, a2=’m’;

 printf("%c\n", (a1, a2) ); }

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

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

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

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

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

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

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

9.有以下程序段

int n,t=1,s=0;

scanf("%d",&n);

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

=n);

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

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

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

A)顺序结构、选择结构、循环结构  B)if、switch、break

C)for、while、do-while  D)if、for、continue

11.在一个C语言程序中

A)main函数必须出现在所有函数之前  B)main函数可以在任何地方出现

C)main函数必须出现在所有函数之后  D)main函数必须出现在固定位置

12.以下关于函数的叙述中正确的是

A)每个函数都可以被其它函数调用(包括main函数) B)每个函数都可以被单独编译

 C)每个函数都可以单独运行 D)在一个函数内部可以定义另一个函数

13.下列叙述中正确的是

A)C语言中既有逻辑类型也有集合类型  B)C语言中没有逻辑类型但有集合类型

C)C语言中有逻辑类型但没有集合类型  D)C语言中既没有逻辑类型也没有集合类型

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

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

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

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

A)地址传递B)单向值传递

C)由实参传给形参,再由形参传回实参D)传递方式由用户指定

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

doublemyadd(doublea,doubleb)

      {return(a+b);}

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

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

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

17.以下叙述中正确的是

A)全局变量的作用域一定比局部变量的作用域范围大

B)静态(static)类别变量的生存期贯穿于整个程序的运行期间

C)函数的形参都属于全局变量

D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值

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

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

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

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}};

20.若有定义:

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

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

21.#include   

char a[10],*b=a;

如以上定义,不能给a数组输入字符串的语句是:

A)gets(a)                 B)gets(a[0]);         C)gets(&a[0]);           D)gets(b);

22.设函数fun的定义形式为

void fun(char ch, float x ) { … }

则以下对函数fun的调用语句中,正确的是

 A)fun("abc",3.0); B)t=fun(’D’,16.5); C)fun(’65’,2.8); D)fun(32,32);

23.设有定义:

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

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

24.设有定义:

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

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

25.在说明语句:

int*f();中,标识符f代表的是

A)一个用于指向整型数据的指针变量B)一个用于指向一维数组的行指针

C)一个用于指向函数的指针变量D)一个返回值为指针型的函数名

26.若定义:

inta=511,*b=&a;,则printf("%d\n",*b);的输出结果为:

A)无确定值B)a的地址C)512D)511

27.有以下程序段,b中的值是

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

b=p[5];

A)5                         B)6                      C)8                           D)9

28.若有语句:

char *line[5];,以下叙述中正确的是

 A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量

 B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

 C)定义line是一个指针数组,语句中的*号称为间址运算符

D)定义line是一个指向字符型函数的指针

29.有以下程序段

typedef struct NODE

{ int num; struct NODE *next;} OLD;

以下叙述中正确的是

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

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

30.设有以下语句

      typedef   struct S

{ int  g;  char  h; } T;

      则下面叙述中正确的是:

A)可用S定义结构体变量                      B)可以用T定义结构体变量

C)S是struct类型的变量                       D)T是structS类型的变量

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

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};

32.以下各选项企图说明一种新的类型名,其中正确的是

A)typedefv1int;B)typedefv2=int;C)typedefintv3;D)typedefv4:

int;

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

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

C)typedefSTP*char; D)typedefchar*STP

34.设有如下定义

  structss

  {charname[10];

  intage;

  charsex;

  }std[3],*p=std;

下面各输入语句中错误的是

A)scanf("%d",&(*p).age);  B)scanf("%s",&std.name); 

C)scanf("%c",&std[0].sex);D)scanf("%c",&(p->sex));

35.设有如下说明

typedefstruct

{intn;charc;doublex;}STD;

则以下选项中,能正确定义结构体数组并赋初值的语句是

A)STDtt[2]={{1,'A',62},{2,'B',75}};  B)STDtt[2]={1,"A",62,2,"",75};

C)structtt[2]={{1,'A'},{2,'B'}};  D)structtt[2]={{1,"A",62.5},{2,"B",75.0}};

36.把字符串"OK!

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

A)chara[]="OK!

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

','\0'};

C)char*p;D)charp;

p="OK!

";strcpy(p,"OK!

");

37.阅读以下函数

  fun(char*sl,char*s2)

  {inti=0;

  while(sl[i]==s2[i]&&s2[i]!

='\0')i++;

  return(sl[i]=='\0'&&s2[i]=='\0');

  }

此函数的功能是

  A)将s2所指字符串赋给s1

  B)比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0

  C)比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0

  D)比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0

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

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

39.若有定义:

inta[3]={1,2,3},*p;则下列语句不正确的是:

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

40.若有一些定义和语句

#include

inta=4,b=3,*p,*q,*w;

p=&a;q=&b;w=q;q=NULL;

则以下选项中错误的语句是:

A)*q=0;B)w=p;C)*p=a;D)*p=*w;

◆以下为阅读程序,选择正确的输出的结果。

41.main()

{intx=3;

switch(x)

{case1:

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

case2:

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

case3:

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

case4:

printf("%d",++x);break;

}

}

A)3B)4C)34D)45

42.main()

{chara='A';\*'A'的ASCII为65*\

printf("%d,%c\n",a,a+1);

}

A)A,A+1B)65,66C)65,AD)65,B

43.main()

{chara[]="ABC";

char*p;

for(p=a;p

}

A)ABCB)BCCC)ABCBCCD)ABBCCC

44.#include

main()

{intx=3,i;

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

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

}

f(inta)

{intb=0;

staticintc=3;

b++;c++;

return(a+b+c);

}

A)888B)81012C)81114D)8910

45.main()

{char*str1="1,2,3,4,5,6",char*str2="abcdef";

*str1=*str2;

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

}

A)a,2,3,4,5,6B)1,2,3,4,5,6C)abcdefD)abcdef4,5,6

46.#include

structstudent

{charname[8];

floatgrade[5];

floatsum;

}temp,*p;

main()

{p=&temp;

strcpy(temp.name,"Casanova");

printf(“%c%c\n”,*p->name+2,*(p->name+2));

}

A)esB)ssC)EsD)an

47.intx,y;

one()

{inta,b;

a=25;b=10;

x=a-b;y=a+b;

return;

}

main()

{inta,b;

a=9;b=5;

x=a+b;y=a-b;

one();

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

}

A)14,4B)4,14C)15,35D)29,39

48.main()

{intx=1,y=2;

intfunc();

y=func(&x,&y);x=func(&x,&y);

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

}

func(int*a,int*b)

{if(*a>*b)

(*a)-=*b;

else(*a)--;

return(*a+*b);

}

A)x=2,y=1B)x=1,y=3C)x=2,y=3D)x=1,y=2

49.main()

{intx=1;

for(;x<50;)

{if(x>=10)break;

if(x%2){x+=3;continue;}

x-=1;

}

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

}

A)10B)11C)12D)13

50.intx=5,y=7;

voidswap()

{intz;

z=x;x=y;y=z;

}

main()

{intx=3,y=8;

swap();

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

}

A)3,8B)8,3C)5,7D)7,5

51.intfun(intn)

{if(n==2||n==1)return1;

return(fun(n-1)+fun(n-2));

}

main()

{printf("%d\n",fun(6));

}

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

52.main()

{intx,y,z;

ff(10,5,&x);ff(7,x,&y);ff(x,y,&z);

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

}

ff(inta,intb,int*c)

{*c=b–a;

}

A)5,2,3B)-5-12,17C)5-2-7D)-5-12-7

53.main()

{intx[]={1,2,3};

inti,s=1,*p=x;

for(i=0;i<3;i++)s*=*(p+i);

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

}

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

54.main()

{inti

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

if(!

(i%3))printf("%d",i);

elseif(!

(i%5))printf("%d",i);

}

A)03695B)003569C)03569D)036905

55.#include

main()

{intc;chard;

c=68;d=’D’;\*'A'的ASCII为65*\

putchar(c);

putchar(d);

putchar('D');

putchar(68);

}

A)ddddB)DDDDC)ddDDD)cdDd

56.main()

{inta=4,b=5,c=0,d;

d=!

a&&!

b||!

c;

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

}

A)1B)0C)非0的数D)-1

57.#include

main()

{inta=100,*p;

p=&a;

*p=*p+50;

prinntf("%d\n",a+*p)

}

A)150B)250C)300D)100

58.doublefun(doublex)

{returnx*x;}

main()

{doublex=1.2,y;

y=fun(x);

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

}

A)1.44B)不确定C)1.00D)2.00

59.main()

{inta=5,b=4,c=3,d=2;

if(a>b>c)

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

elseif((c-1>=d)==1)

printf("%d\n",d+1);

else

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

}

A)2B)3C)4D)编译时有错,无结果

60.main()

{charch[3][5]={"AAAA","BBB","CC"};

printf("\"%s\"\n",ch[1]);

}

A)"AAAA"B)"BBB"C)"BBBCC"D)"CC"

61.f(intb[],intm,intn)

{inti,s=0;

for(i=m;i

s=s+b[i];

returns;

}

main()

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

x=f(a,3,7);

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

}

A)10B)18C)8D)15

62.main()

{chars[]="\n123\\";

printf("%d,%d\n",strlen(s),sizeof(s));

}

A)赋初值的字符串有错B)6,7C)5,6D)6,6

63.main()

{charc='z';

printf("%c

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

当前位置:首页 > 初中教育 > 中考

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

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