11自动化C程序设计复习资料.docx

上传人:b****8 文档编号:10938436 上传时间:2023-02-23 格式:DOCX 页数:29 大小:35.47KB
下载 相关 举报
11自动化C程序设计复习资料.docx_第1页
第1页 / 共29页
11自动化C程序设计复习资料.docx_第2页
第2页 / 共29页
11自动化C程序设计复习资料.docx_第3页
第3页 / 共29页
11自动化C程序设计复习资料.docx_第4页
第4页 / 共29页
11自动化C程序设计复习资料.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

11自动化C程序设计复习资料.docx

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

11自动化C程序设计复习资料.docx

11自动化C程序设计复习资料

C程序设计辅导资料

一、填空题

1、C语言程序是函数构成的,其中有且只有1个主函数,程序的的执行总是从该函数开始。

2、在C语言中,正确的标识符是由字母、数字和下划线组成的。

3、定义一个符号常量PI,其值为3.1415926,格式是#definePI3.1415926。

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

5、下面运算符 < % ++ = 按照优先级从高到低排列顺序为_++,%,<,=________。

6、设整型变量X=5,Y=6,Z=7,执行X%=Y+Z后,X=5。

7、设x=4,y=(++x)+(++x);表达式执行后,变量x的值为6。

8、写出表达式25>15&&65<25||88>75的值1。

9、写出表达式66>65&&65<85||85>95的值1

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

11、表达式m=a>b?

a+b:

b+5当a=15,b=11时,m的值为:

26;

12、用条件运算符写出求两个整数x,y中大数的表达式z=x>y?

x:

y。

13、写出下面表达式的值

    3*5/7+7%3___3_________________

    3+4>=7-10____1_________________

    x=2,y=2;++x||++y____1___________

14、执行语句“for(j=15;j>=5;j--);”后,变量j的值为4。

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

16、C语言中解决嵌套if语句的else问题使用最近匹配原则,即规定else是和离它最近且未和任何else配对的if进行配对的,和代码的缩进无关。

17、函数的传值调用中,实际参数把它的值传递给形式参数参数。

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

19设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为_0-65535____。

20、能够构成一个数组,其元素满足的特点是___具有相同数据类型____________;

21、定义一个长度为10的整形一维数组a,且前5个元素的初值为3,6,9,12,15,定义的格式为:

inta[10]={3,6,9,12,15}。

22、定义一个长度为2行3列的整形二维数组a,元素的初值为6,12,18,24,30,36定义的格式为:

inta[2][3]={6,12,18,24,30,36}

23、若有inta[3]={10,12,30};则a+1是a[1]的地址。

24、C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤:

编辑、编译、连接、执行;

25、一个变量的指针是指______变量的地址_______________________。

26、在一个函数中有定义inta=21,*p=&a;执行*p=*p+15+a;后,a的值为57。

二、选择题

1、以下说法中正确的是( C   )。

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

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

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

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

2、设整型变量a为5,使b不为2的表达式是( C   )。

     A.b=a/2   B.b=6-(--a)   C.b=a%2   D.b=a>3?

2:

1

3、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:

C程序中的else总是与( C )组成配对关系。

A.缩排位置相同的if                  B.在其之前未配对的if

C.在其之前未配对的最近的if          D.同一行上的if

4、下列语句不具有赋值功能的是(  C     )

A.a*=b  B.x=1         C.a+b    D.a++

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

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

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

6、设a为存放整型的一维数组,如果a的首地址为P,那么a中第i个元素的地址为( C  )。

A.P+i*2      B. P+(i-1)*2     C. P+(i-1)      D. P+i

7、在C程序中有如下语句:

charfunc(intx,inty);它是( C  )。

       A.对函数func的定义。

       B.对函数func的调用。

       C.对函数func的原型说明。

   D.不合法的。

8、下列描述中不正确的是( C  )。

A.字符型数组中可以存放字符串。

B.可以对字符型数组进行整体输入、输出。

C.可以对整型数组进行整体输入、输出。

D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

9、不能把字符串:

Hello!

赋给数组b的语句是( B   )。

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

'};     B.charb[10]; b="Hello!

";

C.charb[10]; strcpy(b,"Hello!

");        D.charb[10]="Hello!

";

10、表达式y=(132>122?

152:

6>7?

18:

9)的值为__C__________。

  A  9    B  7   C 152   D. 18

11、以下程序的输出结果是(D)

#include

main()

{inti,j,k,a=3,b=2;

i=(--a==b++)?

--a:

++b;

j=a++;k=b;

Printf(“i=%d,j=%d,k=%d\n”,i,j,k);

}

(A)i=2,j=1,k=3(B)i=i,j=1,k=2

(C)i=4,j=2,k=4(D)i=1,j=1,k=3

12、一个C语言的源程序中(C)

(A)必须有主函数和其它函数(B)可以有多个主函数

(C)必须有一个主函数(D)可以没有主函数

13、有下列结构体,对该结构体变量stu的成员项引用正确的是(   B    )

 struct  student

  {    int  m;

        float  n;

  }stu,*p;

 A.stu.nm     B.p->m      C.*p.m  D.p.stu.n

14、写出程序的运行结果(A)

voidmain()

{intn;

for(n=1;n<=10;n++)

{if(n%3==0)continue;

printf("%d",n);

}

}

(A)12457810(B)369

(C)12(D)12345678910

15、若输入ab,程序运行结果为(c)

voidmain()

{staticchara[2];

scanf("%s",a);

printf("%c,%c",a[1],a[2]);

}

(A)a,b(B)a,

(C)b,(D)程序出错

17、 在函数内,定义变量时存储类型符可省略的是 ( A)

  A. auto  B. static  C. extern  D. register

18、以下对二维数组a进行初始化不正确的是(  C )

A.inta[2][3]={{1,2,3},{3,4,5}};   B.inta[][3]={1,2,3,4,5,6};

C.inta[2][]={1,2,3,4,5,6};     D.inta[2][3]={{1,2},{3,4}};

19、设有如下定义:

intx=10,y=3,z;

则语句printf("%d\n",z=(x%y,x/y));的输出结果是( D  )。

A.1     B.0      C.4       D.3

20、若有说明:

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

A.i=*p;    B.*p=j;    C.i=&j;    D.i=**p;

21、函数调用strcat(strcpy(str1,str2),str3)的功能是(A)

A.将串str2复制到串str1中后,再将串str3连接到串str1之后

B.将串str1复制到串str2中后,再连接到串str3之后

C.将串str1复制到串str2中后,再复制到串str3之后

D.将串str2连接到串str1中后,再将串str1复制到串str3中

22、执行下列程序

  int a[3][3]={{1},{2},{3}};

  int b[3][3]={1,2,3};

  voidmain()

  {printf(″﹪d \ n″,a[1][0] + b[0][0]);}

  后输出的结果是 (D )

  A. 0  B. 1  C. 2  D. 3

23、执行下列程序

  int a = 3, b = 4;

  void fun(int x1, int x2)

{printf(″﹪d, ﹪d \ n″, x1 + x2, b);}

  voidmain()

  {int a = 5, b = 6;fun(a, b);}

  后输出的结果是 (C )

  A. 3,4  B. 11,1  C. 11,4  D. 11,6

24、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:

scanf("i=%d,f=%f",&i,,&f);

为了把100和765.12分别赋给i和f,则正确的输入为(B)

A)100765.12B)i=100,f=765.12C)100765.12D)x=100y=765.12

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

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

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

26、设有如下定义:

intx=10,y=3,z;

则语句

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

的输出结果是____D__________

A)1B)0

C)4D)3

27、以下关于if语句的错误描述是(A)

A)条件表达式可以是任意的表达式

B)条件表达式只能是关系表达式或逻辑表达式

C)条件表达式的括号不可以省略

D)与else配对的if语句是其之前最近的未配对的if语句

28、以下程序的输出结果是(B)

 voidmain()

{intm=5;

if(m++>5)printf("%d\n",m);

elseprintf("%d\n",m--);

}

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

29、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是(C)

A、c=b=a;B、(a=c)||(b=c);C、(a=c)&&(b=c);D、a=c=b;

30、当执行以下程序段时(A )

 x=-1;

 do

{x=x*x;} while(!

x);

A、循环体将执行一次B、循环体将执行两次

C、循环体将执行无限次D、系统将提示有语法错误

31、已知有语句:

for(x=0,y=0;(y!

=123)&&(x<4);x++);则此for循环(C)

A、是无限循环B、循环次数不定C、执行4次D、执行3次

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

voidmain()

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

printf("%d\n",d=a>b?

(a>c?

a:

c):

(b));

}

A、6B、5C、4D、不确定

33、以下程序段循环体的执行次数是(B)

 voidmain()

{inti,j;

 for(i=0,j=1;i<=j+1;i+=2,j--)

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

}

A、0B、1C、2D、3

34、在说明语句中有:

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

(C)

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

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

35、break语句的正确的用法是( B  )。

     A.无论在任何情况下,都中断程序的执行,退出到系统下一层。

 B.在多重循环中,只能退出最靠近的那一层循环语句。

     C.跳出多重循环。

     D.只能修改控制变量。

36在函数中默认存储类型说明符的变量应该是__C____存储类型。

 A.内部静态   B.外部     C.自动         D.寄存器

37.以下叙述中正确的是__A____。

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

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

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

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

38以下选项中合法的用户标识符是__B____。

A)longB)_2TestC)3DmaxD)A.dat

39已知i、j、k为int型变量,若从键盘输入:

1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是__C____。

A)scanf("%2d%2d%2d",&i,&j,&k);

B)scanf(""%d%d%d",&i,&j,&k);

C)scanf("%d,%d,%d",&i,&j,&k);

D)scanf("i=%d,j=%d,k=%d",&i,&j,&k);

40已知小写字母a的ASCII码值是97,大写字母A的ASCII码值是65,下列语句中不能输出大写字母B的是D。

A)putchar('A'+1);B)putchar('b'-32);C)putchar(98-32);D)putchar(B);

41下列程序段的输出结果是A。

floatx;

x=1+1%3*5/2;

printf("%f",x);

A)3.000000B)3C)3.500000D)8

42设inta=1,b=2,c=3,d=4,z;则表达式(a>b)?

(z=c):

(z=d)的值是C。

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

43下列程序段的输出结果是B。

inta=5;

if(a++>5)printf("%d\n",a);

elseprintf("%d\n",a--);

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

44运行下列程序段,输入AaBbDd并以回车键结束输入,则输出结果是B。

charch;ints=0;

while((ch=getchar())!

='\n')

switch(ch)

{case'A':

s++;

case'B':

s++;break;

case'D':

s++;

default:

s++;

}

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

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

45.下列程序段的输出结果是A。

inti,s=0;

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

{if(i%2)continue;

s+=i;}

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

A)30B)25C)0D)1

46.使用如下语句定义一个char型二维数组str,用来存放字符串"Pascal"、"Basic"、"C++",

charstr[M][N];

则M和N最合理取值应该是A。

A)3和7B)2和7C)2和6D)3和6

47下列程序段的输出结果是B。

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

for(i=3;i>=0;i-=2)

s=s*10+a[i];

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

A)4321B)42C)1234D)13

48.用数组名作为函数调用时的实参,实际上传送给形参的是A

A)数组首地址B)数组的第一个元素值

C)数组中全部元素的值D)数组元素的个数

49.已知一个函数定义为:

voidfunc()

{

}

则void的含义是A。

A)执行该函数后没有返回值B)执行该函数后不返回

C)该函数可以返回任意类型的数据D)该函数返回整型数据

50定义函数时,如果省略函数的存储类型和数据类型,则默认的存储类型和数据类型分别是A。

A)auto和intB)extern和intC)auto和viodD)extern和void

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

A)a,point,*&a

B)&*a,&a,*point

C)*&point,*point,&a

D)&a,&*point,point

52.若定义函数float*f(intx),则函数的返回值是B。

A)一个实数

B)一个指向实型变量的指针

C)一个指向实型函数的指针

D)一个指向整型变量的指针

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

structperson{charname[9];intage;};

structpersonc[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};

A)printf("%c",c[3].name);B)printf("%c",c[3].name[1]);

C)printf("%c",c[2].name[0]);D)printf("%c",c[3].name[0]);

54.若有以下的说明。

structperson

{intname[20];

intage;

charsex;

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

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

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

55、以下正确的描述是B。

在C语言程序中:

A)函数的定义可以嵌套,但函数的调用不可以嵌套

B)函数的定义不可以嵌套,但函数的调用可以嵌套

C)函数的定义和函数的调用均不可以嵌套D)函数的定义和函数的调用均可以嵌套

56、以下正确的说法是B。

建立函数的目的之一是:

A)提高程序的执行效率B)提高程序的可读性C)减少程序的篇幅D)减少程序文件所占内存

57以下错误的描述是__B___。

 A、break语句不能用于循环语句、switch语句外的任何其它语句  

B、在switch语句中使用break语句或continue语句的作用相同 

C、在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环

D、在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环

58.已知有声明“char*s=”happybirthday”,t[10];”,要求将s指向的字符串中“birthday”子串复制到t数组中并输出t数组中的字符串,正确的操作的是B。

                 

A.puts(strcpy(t,s));   B.puts(strcpy(t,s+6));  

C.puts(strcat(t,s));   D.puts(strcat(t,s+6));

59.已知有数据类型定义及变量声明如下:

struct

{int a;

 struct{charname[10];}b;

}s={1,”mark”},*ps=&s;

则以下选项中能够输出“mark”的语句是    C  。

A.puts(name);       B.puts(b.name)    C.puts(s.b.name);   D.puts(*p.b.name);

三、阅读程序题

(1)阅读下列程序:

 voidmain()

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

    inti,j,s1=0,s2=0;

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

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

             {if(i==j)s1=s1+a[i][j];

              if(i+j==2)s2=s2+a[i][j];

           }

printf(“%d\n%d\n”,s1,s2);}

程序的输出结果:

18

10

(2)阅读下列程序:

voidmain()

{intx,y=25;

x=-5+5*5+y;

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

x=10+2*3-7;

y=y+10+2*3;

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

x=(y+6)%5+y;

y=x+y;

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

}

程序的输出结果:

x=45y=25

x=9y=41

x=43y=84

(3)阅读下列程序:

#include“stdio.h”

voidmain()

{

inti;

intcount(inti);

for(i=10;i<16;i=i+2)

count(i);

}

intcount(intn)

{staticintx=

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

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

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

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