C程序设计复习资料.docx

上传人:b****4 文档编号:5191701 上传时间:2022-12-13 格式:DOCX 页数:21 大小:24.43KB
下载 相关 举报
C程序设计复习资料.docx_第1页
第1页 / 共21页
C程序设计复习资料.docx_第2页
第2页 / 共21页
C程序设计复习资料.docx_第3页
第3页 / 共21页
C程序设计复习资料.docx_第4页
第4页 / 共21页
C程序设计复习资料.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C程序设计复习资料.docx

《C程序设计复习资料.docx》由会员分享,可在线阅读,更多相关《C程序设计复习资料.docx(21页珍藏版)》请在冰豆网上搜索。

C程序设计复习资料.docx

C程序设计复习资料

C程序设计复习资料

一填空题:

1、在C语言中,一个函数的函数体一般由声明、执行两部分组成。

2、在C语言中,符号常量是在一个程序中指定的用名字代表的常量,定义符号常量一般用命令,定义一个符号常量PI,其值为3.14159,格式是#indefinePI3.14159。

3、用条件运算符写出求两个数a,b大者的表达式max=a>b?

a:

b。

4、表达式98&&8&&31&1的值为______1__________。

5、表达式(int)(20+2.5*3+6+5.3)的值是。

6、printf("%5.3f\n",123456.12345);输出为_____________。

7、若有说明inti,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为_______________。

8、定义一个长度为20的整形一维数组a,且前4个元素的初值为6,12,18,24,定义的格式为:

9、结构化程序设计的三种基本结构是顺序结构、选择结构和。

10、C语言中解决嵌套if语句的else问题使用最近匹配原则,即规定_与IF最近的配对_______。

11、设int类型数据长度为2字节,则unsignedint类型数据的取值范围是。

12、设a=1,b=5,c=55,表达式!

(b>c)+(b!

=a)||(a+b)&&(b

13、若有inta[3]={120,212,320};则a+2是的地址。

15、在一个函数中有定义intx=233,*p=&x;执行*p=*p+15;后,x的值为。

16、执行语句“for(s=0,j=5;j<=25;j=j+5)s=s+j;”后,变量s的值为。

17、函数形式参数的作用域是。

18、设有以下宏定义,则执行赋值语句a=PP*20;(a为int型变量)后,a的值是。

#definePR80

#definePPPR+403

19、设x的值为15,n的值为2,则表达式x%=(n+=3)运算后,x的值为。

20、C语言中调用函数打开文件,调用函数关闭文件,调用函数可实现文件的随机读写。

21、用条件运算符写出求三个数x,y,z最大者的表达式max=。

22、写一个带参数的宏定义,宏名是S,参数是a,b,宏体是a*b,格式:

23、设整型变量X=10,Y=30,Z=800,执行Z/=Y+X后,Z=。

二、选择题

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

    A)整型、实型、逻辑型B)整型、实型、字符型

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

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

   A)%B)\C)%和\D)*

3为表示关系x≥y≥z,应使用C语言表达式

   A)(x>=y)&&(y>=z)B(x>=y)AND(y>=z)

   C)(x>=y>=z)D)(x>=y)&(y>=z)

4下述对C语言字符数组的描述中错误的是

    A)字符数组可以存放字符串

    B)字符数组中的字符串可以整体输入、输出

    C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D)不可以用关系运算符对字符数组中的字符串进行比较

41、C语言规定数组名做实参时,它和对应形参之间的数据传递方式是:

()

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

42、在C程序中可以作为变量名的合法标识符是()

A100Ba+bCwhileDscore

45、循环语句for(a=0,b=69;b>=66;a++,b--)x=a+b;的循环次数是()

A4次B3次C8次D1次也不执行

46、若有说明:

inti,j=7,*p=&j;,则与i=j;等价的语句是()

    Ai=*P;B*P=j;Ci=&j;Di=**p;

47、设有宏定义#dedinepi3.14和#dedineS(r)pi*r*r

若在函数中有语句floatb=3.6,area;area=S(b);则area的值是()

A3.6B3.14C11.304D40.6944

5设有如下定义:

    intx=10,y=3,z;

    则语句

    printf(“%d\n”,z=(x%y,x/y));

    的输出结果是

    A)1B)0

    C)4D)3

6以下程序的输出结果是

    main()

    {intx=10,y=10;

    printf(“%d%d、n”,x--,--y);

    }

    A)1010B)99

   C)910D)109

7以下说法中正确的是

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

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

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

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

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

    intx=3;

    do

    {printf(“%3d”,x-=2);}x=x-2

    while(!

(--x));

    A)1B)30   C)1--2D)死循环

10定义如下变量:

    intn=10;

    则下列循环的输出结果是

    while(n>7)

    {n--;

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

    }

    A)10B)9C)10D)9

    9898

    8787

    76

11两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是

    main()

    {intx;

    scanf(“%d”,&x);

    if(x>5)printf(“%d”,++x);

    elseprintf(“%d”,x--);

    }

    A)7和5B)6和3C)7和4D)6和4

12执行以下程序后,y的值是

    main()

    {inta[]={2,4,6,8,10};

    inty=1,x,*p;

    p=&a[1];

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

    y+=*(p+x);

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

}

    A)17B)18C)19D)20

 13下列程序执行后输出的结果是:

    intd=1;

    fun(intq)

    {intd=5;

    d=q;

    printf(“%d”,d);

    }

    main()

    {inta=3;

    fun(a);

    d=a;

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

    }

    A)84B)33C)94D)85

14C语言提供的不合法的数据类型关键字是

A)DoubleB)shortC)integerD)Char

15、C语言中函数的返回值的类型是由()决定的

A调用该函数的主调函数类型;Breturn语句中的表达式类型;

C调用函数时指定;D定义函数时所指定的返回值类型。

16、若有以下定义和语句:

inta,b,c;scanf(“a=%db=%dc=%d”,&a,&b,&c);为了使1,3,2分别赋给a,b,c,从键盘上输入数据的正确形式是()

A132B1,3,2Ca=1b=3c=2Da=1,b=3,c=2

15在C语言中,合法的长整型常数是

    A)0LB)4962710C)0.054838743D)2.1869e10

16表达式:

10!

=9的值是

    A)trueB)非零值C)0D)1

17若有说明和语句:

    inta=5;

    a++;

    此处表达式a的值是

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

18在下列选项中,不正确的赋值语句是

    A)t;B)n1=(n2=(n3=0));

    C)k=i==j;D)a=b=c=1;

19若有说明:

inti,j=7,*p=&i;,则与i=j;等价的语句是

    A)i=*P;B)*P=j;C)i=&j;D)i=**p;

20不能把字符串:

Hello!

赋给数组b的语句是

    A)charb[10]={'H','e','l','l','o','!

'};

    B)charb[10];b=“Hello!

”;

    C)charb[10];strcpy(b,“Hello!

”);

    D)charb[10]=“Hello!

21以下程序的输出结果是

       main()

    {chara[10]=”6789”,*p;

       p=a;

printf(“%s\n”,p);

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

22 以下程序的输出结果是

     main()

    {intn=4;

    while(n>0){n--;printf(“%d”,n);}

    }

     A)20B)31C)3210D)210

24在下列选项中,没有构成死循环的程序段是

    A)inti=100;

    whine

(1)

    {i=i%3;

    if(i>100)break;

    }

   B)for(;;);

   C)intk=1000;

    do{k++;}while(k<1000);

   D)ints=36;

    while(s)--s;

25阅读以下程序:

main()

{intx;

scanf("%d",&x);

if(x--<5)printf("%d"'x);

elseprintf("%d"'x++);

}

程序运行后,如果从键盘上输人5,则输出结果是

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

26以下程序的输出结果是

main()

{intnum=0;

while(num<=2)

{num++;printf("%d\n",num);

}

A}1B}1C}1D}l

222

33

4

26、C语言规定数组名做实参时,它和对应形参之间的数据传递方式是:

()

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

27、在C程序中可以作为变量名的合法标识符是()

A100Ba+bCwhileDscore

28、循环语句for(a=0,b=69;b>=66;a++,b--)x=a+b;的循环次数是()

A4次B3次C8次D1次也不执行

27以下程序的输出结果是

main()

{charc='z';

printf("%c",c-25);

}

A)aB)ZC)z-25D)y

28以下选项中,非法的字符常量是

A)'\t'B)'\17'C)"n"D)'\xaa'

30以下定义语句中,错误的是

A)inta[]={1,2};B)char*a[3];

C)chars[10]="test";D)intn=5,a[n];

31以下程序的输出结果是

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

32以下数组定义中不正确的是

A)inta[2][3];

B)intb[][3]={0,1,2,3};

C)intc[100][100]={0};

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

33以下程序的输出结果是

main()

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

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

A}0650B}1470C}5430D}输出值不定

34以下选项中,不能正确赋值的是

A)chars1[10];s1="Ctest";

B)chars2[]={'C','t','e','s','t'};

C)chars3[20]="Ctest";

D)char*s4="Ctest\n"

36、若有说明:

inti,j=7,*p=&j;,则与i=j;等价的语句是()

    Ai=*P;B*P=j;Ci=&j;Di=**p;

37、设有宏定义#dedinepi3.14和#dedineS(r)pi*r*r

若在函数中有语句floatb=3.6,area;area=S(b);则area的值是()

A3.6B3.14C11.304D40.6944

38 以下程序的输出结果是

main()

{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

39  有以下程序段

intk=0

while(k=1)k++;

while循环执行的次数是

A)无限次B)有语法错,不能执行

C)一次也不执行D)执行1次

40以下程序执行后sum的值是

min()

{inti,sum=0;

for(i=1;i<4;i++)sum+=i;

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

}

A)10B)6C)不确定D)0

41 以下程序的输出结果是

main()

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

for(i=0;i<3;i++)printf("%d,",x[i][2-i]);

}

A)1,5,9B)1,4,7C)3,5,7D)3,6,9

42以下程序的输出结果是

main()

{inta[3][2]={{1,2},{3,4},{5,6}},i,j,s=0;

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

for(j=0;j<2;j++)s+=a[i][j];

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

}

A)18B)19C)20D)21

43以下程序的输出结果是:

main()

{inta=1,b=2;

a=a+b;b=a-b;a=a-b;

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

}

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

44、有int*P;刚下面语句正确的是:

()

Ap=(int*)malloc(sizeof(int));Bp=malloc(int);

Cp=int*malloc(sizeof(int));Dp=malloc(sizeof(int))

45、在定义inta[5][4];对数组元素的正确引用是()

Aa[5][1]Ba[2][4]Ca[4][3]Da[1,1]

46、在说明语句中有:

float(*fp)();则fp代表的是:

()

A一个用于指向一维数组的行指针;B一个返回值为实型的函数名;

C一个用于指向函数的指针变量;D一个指向实型数据的指针;

三、阅读程序题

(1)阅读下列程序:

#include

main()

{

inti,j,row,column,m;

staticintarray[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};

m=array[0][0];

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

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

if(array[i][j]

{

m=array[i][j];row=i;column=j;

}

printf("%d,%d,%d\n",m,row,column);

}

上述程序的输出结果是__-850,2,0_______。

(2)下面程序的输出结果是_______。

#include

main()

{

inta=3,b=2,c=1;

c-=++b;

b*=a+c;

{intb=5,c=12;

c/=b*2;

a-=c;

printf('%d,%d,%d,",a,b,c);2,5,1

a+=--c;

}

printf('%d,%d,%d,",a,b,c);2,2,-2

}

(3)请读程序。

#definePR(ar)printf("%d",ar)

main()

{intj,a[]={1,3,5,7,9,11,13,15},*p=a+5;

for(j=3;j;j--)

{

switch(j)

{case1:

case2:

PR(*p++);break;911

case3:

PR(*(--p));9

}

}

}上面程序的输出结果是__9911________.

(4)下面程序的输出是__4+3+2________。

longfun5(intn)

{longs;

if((n==1)||(n==2))

s=2;

elses=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

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

}

(5)下面程序的输出是_0246802468______。

#defineMAX5

inta[MAX],k;

main()

{fun1();fun3();02468

fun2();fun3();02468

printf("\n");

}

fun1()

{

for(k=0;k

a[k]=k+k;0,2,4,6,8

}

fun2()

{

inta[MAX],k;

for(k=0;k<5;k++)

a[k]=k;0,1,2,3,4

}

fun3()

{

intk;

for(k=0;k

printf("%d",*(a+k)):

}

(6)以下程序运行后,输出结果是________

main()

{

inty=18,i=0,j,a[8];

do

{

a[i]=y%2;i++;

y=y/2;

}while(y>=1);

for(j=i-1;j>0;j--)

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

printf("\n");

}

(7)以下程序的输出结果是__x=_8_____

main()

{

inti,j,x=0;

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

{x++;

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

{

if(j%2)continue;

x++;

}

x++;

}

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

}

(8)以下程序的输出结果是_4211______

main()

{

char*s="12134211";

intv[4]={0,0,0,0},k,i;

for(k=0;s[k]!

=’\0’;k++)

{

switch(s[k])

{

case'1':

i=0;break;

case'2':

i=1;break;

case'3':

i=2;break;

case'4':

i=3;

}

v[i]++;

}

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

printf("%d",v[k]);

}

(9)下列程序的输出结果是CDABC。

#include"stdio.h"

#include"string.h"

main()

{

charb[30];

strcpy(&b[0],"CH");

strcpy(&b[1],"DEF");

strcpy(&b[2],"ABC");

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

}

(10)下列程序的输出结果是__5_6________。

intt(intx,inty,intc,intd)

{

c=x*x+y*y;

d=x*x-y*y;

}

main()

{

inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

(11)下列程序中字符串中各单词之间有一个空格,则程序的输出结果是___Howdoesshe。

#include"string.h"

#include"stdio.h"

main()

{

charstrl[]="Howdoyoudo",*p1=strl;

strcpy(strl+strlen(strl)/2,"esshe");Howdoesshe

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

}

(12)以下程序的运行结果是__________

#include

main()

{

intk=4,m=1,p;

p=func(k,m);printf("%d,",p);8

p=func(k,m);printf("%d\n",p);17

}

func(inta,intb)

{

staticintm=0,i=2;

i+=m+1;33+8+112

m=i+a+b;812+4+1

returnm;

}

(13)

f1(inta)

{intb=0;staticintc=3;

b+=1;c++;

return(a+b+c);

}

main()

{inta=1,i;

chars1[10]=“java”,s2[10]=“basic”,s[10];

for(i=0;i<3;i++)printf("%d",f1(a));678

printf(“\n”);

if(strcmp(s1,s2)){strcpy(s,s1);puts(s);}java

printf(“%d,%s\n”,strlen(s2),strcat(s2,s1));5,basicjava

}

(14)#define

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

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

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

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