复习题及答案.docx

上传人:b****7 文档编号:10420397 上传时间:2023-02-11 格式:DOCX 页数:12 大小:19.01KB
下载 相关 举报
复习题及答案.docx_第1页
第1页 / 共12页
复习题及答案.docx_第2页
第2页 / 共12页
复习题及答案.docx_第3页
第3页 / 共12页
复习题及答案.docx_第4页
第4页 / 共12页
复习题及答案.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

复习题及答案.docx

《复习题及答案.docx》由会员分享,可在线阅读,更多相关《复习题及答案.docx(12页珍藏版)》请在冰豆网上搜索。

复习题及答案.docx

复习题及答案

一、选择题(每小题1分,共30分)

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

A)在C程序中,main函数必须位于程序的最前面

B)C程序的每行中只能写一条语句

C)C语言本身没有输入输出语句

D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误

2.一个C语言程序的基本单位是()

A)函数B)子程序C)过程D)命令

3.一个C语言的语句必须使用的结束符号是()

A),B)。

C):

D);

4.下列选项中,可以作为C语言标识符的是()

A)3stuB)#stuC)stu3D)stu.3

5.设有说明:

charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为

A)floatB)charC)intD)double

6.下列叙述正确的是()

A)赋值语句中的“=”是表示左边变量等于右边表达式

B)赋值语句中左边的变量值不一定等于右边表达式的值

C)赋值语句是由赋值表达式加上分号构成的

D)x+=y;不是赋值语句

7.若x为int型变量,则执行x=6;x+=x-=x*x;语句后,x的值为()

A)36B)-60C)60D)-24

8.若有a=2,b=3,c=4,则表达式a==3和a=3的值分别为()

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

9.使条件表达式(year%4==0&&year%100!

=0)||(year%400==0)结果为假的值是()

A)1950B)2000C)1996D)2004

10.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为()。

x=(i=4,j=16,k=32)

A)4B)16C)32D)52

11.逻辑运算符两侧运算对象的数据类型()

A)只能是0和1B)只能是0或非0正数

C)只能是整型或字符型数据D)可以是任何类型的数据

12.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。

则以下不能满足要求的表达式是()

A)A%2==1B)!

(A%2==0)C)!

(A%2)D)A%2

13.语句while(!

E);中的表达式!

E等价于()。

A)E==0B)E!

=1C)E!

=0D)E==1

14.下面程序段的运行结果是()

a=1;b=2;c=2

while(a

printf(%d,%d,%d”,a,b,c);

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

15.以下程序段()

x=-1;

do{

x=x*x;

}

while(!

x);

A)是死循环B)循环执行二次

C)循环执行一次D)有语法错误

16.以下正确的函数原形说明语句是()

A)voidfun(intx);B)floatfun(voidy);

C)doublefun(x);D)int(charch);

17.在C语言中,形参必须是()

A)常量B)变量C.)数值D)表达式

18.C语言的函数()

A)可以嵌套调用,不能递归调用B)可以嵌套定义

C)既可以嵌套调用,也可以递归调用D)不可以嵌套调用

19.合法的数组定义是()

A)inta[]=”string”;B)inta[5]={0,1,2,3,4,5};

C)chara=”string”;D)chara[]={0,1,2,3,4,5};

20.表达式strlen(“string”)+strlen(“C”)的运算结果为()

A)9B)10C)7D)8

21.若有定义和语句:

chars[10];s=“abcd”;printf(“%s\n”,s);则结果是()(以下u代表空格)

A)abcdB)a

C)abcduuuuuD)编译不通过

22.若已定义:

inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是()

A)p+1B)a+1C)a++D)++p

23.若有intx,*pb;则正确的赋值表达式是

A)pb=&xB)pb=x;C)*pb=&x;D)*pb=*x

24.设有程序段:

chars[]=”china”;char*p;p=s;则下面叙述正确的是()

A)s和p完全相同

B)数组s中的内容和指针变量p中的内容相等

C)*p与s[0]相等

D)s数组长度和p所指向的字符串长度相等

25.下面对结构变量的叙述中错误的是()

A)相同类型的结构变量间可以相互赋值

B)通过结构变量,可以任意引用它的成员

C)结构变量中某个成员与这个成员类型相同的简单变量间可相互赋值

D)结构变量与简单变量间可以赋值

26.若有结构类型定义如下:

structbd

{intx;

floaty;

}r,*p=&r;

那么,对r中的成员x的正确引用是()

A)(*p).r.xB)(*p).xC)p->r.xD)p.r.x

27.在一个函数里不能说明()

A)全局变量B)静态变量

C)局部变量D)静态局部变量

28.以下关于文件包含的说法中错误的是()

A)文件包含是指一个源文件可以将另一个源文件的全部内容包含进来。

B)文件包含处理命令的格式为

#include“包含文件名”或#include<包含文件名>

C)一条包含命令可以指定多个被包含文件

D)文件包含可以嵌套,即被包含文件中又包含另一个文件。

29.下列语句中,将C定义为文件型指针的是()

A)FILEc;B)FILE*c;

C)filec;D)file*c;

30.下面对typedef的叙述中不正确的是()

A)用typedef可以定义各种类型名,但不能用来定义变量

B)用typedef可以增加新类型

C)用typedef?

?

是将已存在的类型用一个新的标识符来代表

D)使用typedef有利于程序的通用和移植

二、写出下列程序的运行结果(每小题3分,共24分)

1.以下程序的输出结果是。

#include"stdio.h"

main()

{intx=3;

switch(x)

{case1:

case2:

printf("x<3\n");

case3:

printf("x=3\n");

case4:

case5:

printf("x>3\n");break;

default:

printf("xunknow\n");

}

}

2.以下程序的输出结果是。

#include

voidmain()

{inti,j,x=0;

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

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

{if(j%2)continue;

x++;

}

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

}

3.以下程序的输出结果是。

#include"stdio.h"

staticintx=20;

voidf1(intx)

{x+=10;

printf(“%d…f1()\n”,x);

}

voidf2()

{x+=10;

printf(“%d…f2()\n”,x);

}

voidmain()

{intx=10;

f1(x);

f2();

printf(“%d…main()\n”,x);

}

4.以下程序的输出结果是。

#include

#defineS‘’

voidmain()

{intn=5,i,j;

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

{for(j=1;j<=10;j++)putchar(S);

for(j=1;j<=n-i;j++)putchar(S);

for(j=1;j<=i;j++){putchar(‘*’);}

putchar(‘\n’);

}

}

5.以下程序的输出结果是。

#include

voidmain()

{staticinta[]={5,7,9};

int*p=a;

++p;

printf(“%d%d%d%d\n”,*a,*(a+2),*(p+1),p[1]);

}

6.下面程序的运行结果是()

#include“stdio.h”

voidmain()

{chara[]=“ab12cd34ef”;

inti,j;

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

if(a[i]>=’a’&&a[i]<=’z’)a[j++]=a[i];

a[j]=’\0’;

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

}

7.下面程序的运行结果是()

#include“stdio.h”

voidmain()

{int*p,i;

i=100;

p=&i;

i=*p+10;

printf(“%d%d\n”,I,*p);

}

8.下面程序的运行结果是( )

 voidmain()

{

structcmplx{intx;

inty;

}cnum[2]={1,3,2,7};

printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x);

}

三、程序填空:

(根据题意,将空缺的语句补上。

每空3分,共30分)

1.以下程序对输入的两个整数,按从大到小顺序输出。

请填空。

main()

{intx,y,z;

scanf(“%d,%d”,&x,&y);

if(

(1))

{z=x;

(2)}

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

}

2..以下程序完成的功能是求1+2+3+…+10的累加和,并进行累加和的输出打印。

变量sum是存放累加值的。

#include"stdio.h"

main()

{(3)

i=1,sum=0;

for(;i<=10;)

{sum+=i;

(4)}

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

}

3.下面程序的功能是用函数递归调用的方法定义函数intf(intm,intn)求mn。

请填空。

intf(intm,intn)

{ints;

if((5))s=1;

elses=(6);

return(s)

}

4.以下程序的功能是求数组num中小于零的数据之和。

请填空。

#include

voidmain()

{intnum[20]={10,20,1,-20,23,-21,2,-2,-2,11,-21,22,12,-2,-234,-90,22,90,-45,20};

intsum=0,i;

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

{if((7))sum=(8);}

printf(“sum=%d”,sum);

}

5.以下程序将数组a中的数据按逆序存放,请填空。

#defineM8

main()

{inta[M],i,j,t;

for(i=0;i

i=0;j=M-1;

while(i

{

t=*(a+i);(9);*((10))=t;

i++;j--;

}

for(i=0;i

}

四、编写程序(第1题7分,第2题9分,共16分)

1.编一个程序,判断输入的整数x是否既是5又是7的整数倍。

若是,则输出yes,否则输出no。

2.编一个程序,要求:

输入整数n,求整数n的各位数字的平方和并输出。

(如输入数是n=234,则计算2*2+3*3+4*4=29并输出)

一、选择题(每小题1分,共30分)

CADCDCBDACDCADCABCDCDCACDBACBB

二、写出下列程序的运行结果(每小题3分,共24分)

1. x=3

x>3

2. x=4

3. 20…f1()

   30…f2()

   10…main()

4.  *

**

***

****

*****

5. 5999

6.abcdef

7.2020

8.6

三、程序填空:

(根据题意,将空缺的语句补上。

每空3分,共30分)

(1)x

(2)x=y;y=z;

(3)inti,sum;

(4)printf(“%d”,sum);

(5)n==0

(6)m*f(m,n-1)

(7)num[i]<0

(8)sum+num[i]

(9)*(a+i)=*(a+j)

(10)a+i

四、编程题(第1题8分,第2题8分)

1.#include

voidmain()

{intx;

   scanf(“%d”,&x);

 if(x%5==0&&x%7==0)printf(“yes”);

   elseprintf(“no”);

}

2.#include

void main()

 {intn,sum=0.0;

  while(n!

=0)

  {

    sum=sum+n%10;

    n=n/10;

}

printf(“\nsum=%d”,sum);

}

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

当前位置:首页 > 高等教育 > 军事

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

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