C语言习题按章节Word文档格式.docx

上传人:b****5 文档编号:16192414 上传时间:2022-11-21 格式:DOCX 页数:42 大小:33.67KB
下载 相关 举报
C语言习题按章节Word文档格式.docx_第1页
第1页 / 共42页
C语言习题按章节Word文档格式.docx_第2页
第2页 / 共42页
C语言习题按章节Word文档格式.docx_第3页
第3页 / 共42页
C语言习题按章节Word文档格式.docx_第4页
第4页 / 共42页
C语言习题按章节Word文档格式.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

C语言习题按章节Word文档格式.docx

《C语言习题按章节Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言习题按章节Word文档格式.docx(42页珍藏版)》请在冰豆网上搜索。

C语言习题按章节Word文档格式.docx

DY"

DB"

a2=a*a;

b2=b*b;

c2=c*c;

ZJ"

elseprintf("

NO\n"

}

2.输出下列图形。

123456789main()

23456789{intI,J;

3456789for(I=1;

I<

=_________;

I++)

456789for(J=_________;

J<

=9;

J++)

56789printf("

%2d"

J);

6789printf("

789

89

9

五、程序设计题

1.判断输入整数x的正负性和奇偶性。

2.从键盘输入10个整数,求出其中的最大值。

3.输入一行字符,统计其中的数字、字母、空格

和其它字符出现的次数。

4.输入十个整数,计算出平均值(aver),找出其中最

大者(max)和最小者(min)并将三者输出。

5.将十个实型数输入数组(floatn[10];

)逆序存放后再

输出。

数组题目:

c语言习题--数组

1.给出以下定义:

charx[]="

abcdefg"

;

chary[]={'

a'

'

b'

c'

d'

e'

f'

g'

};

则正确的叙述为

A)数组X和数组Y等价B)数组x和数组Y的长度相同

C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度

2.若有下面的程序片段:

inta[12]={0},*p[3],**pp,i;

for(i=0;

i<

3;

i++)

p[i]=&

a[i*4];

pp=p;

则对数组元素的错误引用是

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

3.设有以下定义:

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

int(*prt)[3]=a,*p=a[0];

则下列能够正确表示数组元素a[1][2]的表达式是

A)*((*prt+1)[2])B)*(*(p+5))

C)(*prt+1)+2D)*(*(a+1)+2)

4.不能把字符串:

Hello!

赋给数组b的语句是

A)charb[10]={'

H'

l'

o'

!

B)charb[10];

b="

"

C)charb[10];

strcpy(b,"

D)charb[10]="

5.若有以下说明:

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

charc='

d,g;

则数值为4的表达式是

A)a[g-c]B)a[4]

C)a['

-'

]D)a['

-c]

6.若有以下说明:

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

则数值为6的表达式是

A)*p+6B)*(p+6)C)*p+=5D)p+5

7.若有以下说明:

intw[3][4]o={{0,1},{2,4},{5,8}};

int(*p)[4]=w;

A)*w[1]+1B)p++,*(p+1)

C)w[2][2]D)p[1][1]

8.若有以下的说明和语句:

main()

{intt[3][2],*pt[3],k;

fpr(k=o;

k<

k++)pt[k]=t[k];

则以一选项中能正确表示t数组元素地址的表达式是

A)&

t[3][2]B)*pt[0]

C)*(pt+1)D)&

pt[2]

9.以下程序的输出结果是

main()

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

x[1][1];

for(i=0;

i<

4;

i+=2)printf("

%d"

,p[i]);

}

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

10.若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是

intt[3][3],*pt([3],k;

for(k=0;

k<

3;

k++)pt[k]=&

t[k][0];

11.执行下面的程序段后,变量k中的值为

intk=3,s[2];

s[0]=k;

k=s[1]*10;

A)不定值B)33C)30D)10

12.若已定义:

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

其中0≤i≤9,则对a数组元素不正确的引用上

A)a[p-a]B)*(&

a[i])C)p[i]D)a[10]

13.设有数组定义:

chararray[]="

China"

则数组array所占的空间为

A)4个字节B)5个字节C)6个字节D)7个字节

c语言基础练习题及答案

  一、单项选择题

  1.C语言源程序文件经过C编译程序编译连接之后生成一个后缀为__C____的文件。

  A、”.c”B、“.obj”C、“.exe”D、“.bas”

  2.以下选项中不正确的整型常量是_C____。

  A、12LB、-10C、1,900D、123U

  3.表达式___C___的值是0。

  A、3%5B、3/5.0C、3/5D、3<

5

  4.表达式!

(x>

0||y>

0)等价于__D___。

  A、!

x>

0||!

y>

0B、!

0)||!

(y>

0)C、!

0&

0D、!

0)&

0)

  5.若变量已正确定义并赋值,表达式__D____不符合C语言语法。

  A、4&

3B、+aC、a=b=5D、int(3.14)

  6.若变量已正确定义,执行语句scanf("

%d%d%d"

&

k1,&

k2,&

k3);

时,___B___是正确的输入。

  A、2030,40B、203040C、20,3040D、20,30,40

  7.执行语句printf(”__D____”,2);

将得到出错信息。

  A、%dB、%oC、%xD、%f

  8.设变量定义为“ints[]="

hello\nworld\n"

”,则数组s中有__B____个元素。

  A、12B、13C、14D、15

  9.设变量定义为“inta[2]={1,3},*p=&

a[0]+1;

”,则*p的值是___B__。

  A、2B、3C、4D、&

a[0]+1

  10.若变量已正确定义并赋值,表达式-k++等价于__A____。

  A、-(k++)B、(-k)++C、-(k+1)D、-(++k)

  11.在C语言程序中,在函数内部定义的变量称为__D____。

  A、全局变量B、全程变量C、外部变量D、内部变量

  12.若x是整型变量,表达式(x=10.0/4.0)的值是__D___。

  A、2.5B、2.0C、3D、2

  13.对于以下的变量定义,表达式__A____是正确的。

  structnode{

  chars[10];

  intk;

  }p[4];

  A、p->

k=2B、p[0].s=“abc”C、p[0]->

k=2D、p->

s=‘a’

  14.下列运算符中,优先级从高到低依次为__D___。

  A、&

,!

,||B、||,&

C、&

,||,!

D、!

,&

,||

  15.下列程序段的输出结果是__B___。

  int*p,*q,k=1,j=10;

  p=&

j;

q=&

k;

p=q;

(*p)++;

  printf("

%d"

*q);

  A、1B、2C、10D、11

  16.以下各选项企图说明一种新的类型名,其中正确的是水量(C)

    A)typedefv1int;

B)typedefv2=int;

    C)typedefv1intv3;

D)typedefv4:

int;

  17.以下选项中,非法的字符常量是(C)

    A)‘\t’B)‘\17’C)“n”D)‘\xaa’

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

    main()

    {inti,a[10];

    for(i=9;

i>

=0;

i--)a[i]=10-i;

    printf(“%d%d%d”,a[2],a[5],a[8]);

    }

    A)258B)741C)852D)369

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

    {charst[20]=“hello\0\t\\\”;

    printf(%d%d\n”,strlen(st),sizeof(st));

    A)99B)520C)1320D)2020

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

    {inta,b;

    for(a=1,b=1;

a<

=100;

a++)

    {if(b>

=10)break;

    if(b%3==1)

    {b+=3;

continue;

    printf(“%d\n”,a);

    A)101B)6C)5D)4

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

    unionmyun

    {struct

    {intx,y,z;

}u;

    intk;

    }a;

    {a.u.x=4;

a.u.y=5;

a.u.z=6;

    a.k=0;

    printf(%d\n”,a.u.x);

    A)4B)5C)6D)0

  22.以下程序段的输出结果是(A)

    chars[]="

\\141\141abc\t"

    printf("

%d\n"

strlen(s));

    A)9B)12C)13D)14

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

    {charch[3][5]={"

AAAA"

BBB"

CC"

    printf("

\"

%s\"

ch[1]);

    A)"

B)"

C)"

BBBCC"

D)"

  24.不合法的main函数命令行参数表示形式是(C)

    A)main(inta,char*c[])B)main(intarc,char**arv)

    C)main(intargc,char*argv)D)main(intargv,char*argc[])

  25.有以下程序

    {char*s[]={"

one"

two"

three"

},*p;

    p=s[1];

    printf("

%c,%s\n"

*(p+1),s[0]);

    执行后输出结果是(C)

    A)n,twoB)t,oneC)w,oneD)o,two

  26.设有如下说明

    typedefstruct

    {intn;

charc;

doublex;

}STD;

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

    A)STDtt[2]={{1,'

A'

62},{2,'

B'

75}};

    B)STDtt[2]={1,"

A"

62},2,"

B"

75};

    C)structtt[2]={{1,'

},{2,'

}};

    D)structtt[2]={{1,"

62.5},{2,"

75.0}};

  27.若变量c为char类型,则能正确判断出c为小写字母的表达式是(D)。

  A)'

<

=c<

='

z'

B)(c>

)||(c<

  C)('

=c)and('

>

=c)D)(c>

)&

(c<

  二、填空题

  1.设ch是字符型变量,判断ch为英文字母的表达式是:

  (ch>

=’A’&

ch,=’Z’)||(ch>

=’a’&

ch<

=’z’)__。

  2.计算下列分段函数的if语句是_if(x>

0)y=1;

elseif(x=0)y=0;

elsey=-1;

___。

  1x>

  y=0x=0

  -1x<

  3.表达式!

5的值是__1____。

  4.下列程序段的输出结果是___12___。

%xn"

(0x19<

1)&

0x17);

  5.下列程序段的输出结果是__k=4s=6___。

  intk,s;

  for(k=0,s=0;

10;

k++)

  if(s>

k)break;

  elses+=k;

k=%ds=%d"

k,s);

  6.下列程序段的输出结果是__15___。

  #defineMIN(x,y)(x)<

(y)?

(x):

(y)

  printf("

10*MIN(10,15));

  7.下列程序在运行时可能会出错,原因是__指针变量s未赋初值____。

  #include

  voidmain()

  {char*s;

  gets(s);

  puts(s);

  }

  8.下列程序段的输出是___60__。

  #include

  intf(intm)

  {staticintk=0;

  ints=0;

  for(;

=m;

k++)s++;

  returns;

  {ints1,s2;

  s1=f(5);

  s2=f(3);

%d%d\n"

s1,s2);

  9.下列程序段的输出结果是__fgh___。

  char*st[]={"

abcd"

efgh"

ijkl"

mnop"

%s"

*(st+1)+1);

  10.用typedef定义一个含10个元素的整型数组ARR。

  typedefintARR[10];

  11.以下程序调用findmax函数返回数组中的最大值,请填空。

    findmax(int*a,intn)

    {int*p,*s;

    for(p=a,s=a;

p-a

    if(*p>

*s)s=p;

    return(*s);

   main()

    {intx[5]={12,21,13,6,18};

findmax(x,5));

  

  三、程序(段)填空题

  1.设变量x,y,z已正确定义和赋值,请仔细阅读程序段A,然后在程序段B中填入正确的内容,使程序段A和程序段B有相同的功能。

  程序段A程序段B

  x=x+y;

  y=x-y;

  x=x-y;

  z=x+y;

z=x;

  x=y;

  y=z;

  2.请仔细阅读函数f1,然后在函数f2中填入正确的内容,使函数f1和函数f2有相同的功能。

  char*f1(chars[],chart[])

  {intk;

  for(k=0;

t[k]!

='

'

  s[k]=t[k];

  s[k]='

  char*f2(char*s,char*t)

  {char*p=s;

  while((*p++=*t++)!

  ;

  returns;

  

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

  1.___D___是合法的用户自定义标识符。

  A、b-bB、floatC、D、_isw

  2.若变量已正确定义并赋值,表达式___B___不符合C语言语法。

  A、a*b/c;

B、3.14%2C、2,bD、a/b/c

  3.___C__是不正确的字符常量。

  A、'

n'

B、'

1'

C、"

a"

D、'

101'

  4.在C程序中,用___B__表示逻辑值“真”。

  A、1B、非0的数C、非1的数D、大于0的数

  5.__C____把x、y定义成float类型变量,并赋同一初值3.14。

  A、floatx,y=3.14;

B、floatx,y=2*3.14;

  C、floatx=3.14,y=x=3.14;

D、floatx=y=3.14;

  6.若变量已正确定义,表达式___C___的值不是2。

  A、2&

3B、1<

1C、a==2D、1^3

  7.若变量已正确定义,语句“if(a>

b)k=0;

elsek=1;

”和__C____等价。

  A、k=(a>

b)?

1:

0;

B、k=a>

b;

  C、k=a<

=b;

D、a<

=b?

0:

1;

  8.设变量定义为“inta,b;

”,执行下列语句时,输入_D____,则a和b的值都是10。

  scanf("

a=%d,b=%d"

a,&

b);

  A、1010B、10,10C、a=10b=10D、a=10,b=10

  9.下列程序的输出结果是__D___。

  fun(inta,intb,intc)

  {c=a*b;

  {intc;

  fun(2,3,c);

  printf(”%dn”,c);

  A、0B、1C、6D、无法确定

  10.在C程序中,若对函数类型未加说明,则函数的隐含类型为__A___。

  A、intB、doubleC、voidD、char

  11.表达式strlen(”hello”)的值是___B____。

  A、4B、5C、6D、7

  12.设变量定义为“inta[4];

”,则表达式__D____不符合C语言语法。

  A、*aB、a[0]C、aD、a++

  13.设变量定义为“intx,*p=&

x;

”,则&

*p相当于__A___。

  A、pB、*pC、xD、*&

x

  14.若变量已正确定义,_A___不能使指针p成为空指针。

  A、p=EOFB、p=0C、p=’’D、p=NULL

  15.对于以下的变量定义,表达式__D____不符合C语言语法。

  structnode{

  intlen;

  char*pk;

  }x={2,"

right"

},*p=&

pkB、*p.pkC、*p->

pkD、*x.pk

  16.有如下程序

    intrunc(inta,intb)

    {return(a+b);

    main0

    {intx=2,y=5,z=8,r;

    r=func(func(x,y),z);

    printf(“%\d\n”,r);

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

    A)12B)13C)14D)15

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

    A)<

B)=C)+D)-

  18.有如下程序

    longfib(intn)

    {if(n>

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

    elsereturn

(2);

    {printf(“%d\n”,fib(3));

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

    A}2B}4C}6D}8

  19.有如下定义

    structperson{char

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

当前位置:首页 > 高等教育 > 哲学

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

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