C语言答案解析 下载本文

内容发布更新时间 : 2024/5/12 21:35:31星期一 下面是文章的全部内容请认真阅读。

C语言模拟题答案

一、选择题:

1、下列哪一个选项不是结构化程序三种基本结构的共同特点: D:有分支结构

2、设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a,b和c的值分别是: B:2,0,3

3、若整型变量A、B、C、D中的值依次为:1、4、3、2。 则条件表达式D

4、表示数学中的关系 x

5、在C语言中,设x为int型变量,则执行以下语句后,x的值为 x=10; x=x+- -x;: C:18

6、在C语言中,执行下面语句后,输出的结果是 int x=10,y=3; printf(\,y=x/y); C:3

7、在C语言中,假定所有变量均已正确说明,下列程序段运行后x的值是 a=b=c=0;x=99; if(!a) x=9; else x=3; B:9

8、在C语言中,执行语句:for (i=1; i<4; i++);后,变量i的值是: B:4

9、设int k;则语句for(k=0;k=1;k++);和语句for(k=0;k==1;k++);执行的次数分别是:

A:无限和0 10、执行语句

printf(\其输出为:

C:He question is in c:\\toolook.exe 11、函数float AAA(float x,int y) { float i,fc=1; while( y>0 ) {

fc *=x; y--;} return fc; }

的功能是:

A:求x的y次方

12、对两个静态字符数组A和B进行如下初始化。 static char A[]=\

static char B[]={'A','B','C','D','E','F'}; 则下列叙述正确的是:

D:A数组长度比B数组长 13、对于for(表达式1;;表达式3)可理解为: B:for(表达式1;1;表达式3)

14、C语言中,FILE结构指针变量名stdin代表哪类文件。 D:标准输入

15、下列循环体执行( )次 k=70;

while(k=0) k-=1; D:0次

16、有以下程序 #define P 3

void F(int x){return(P*x*x);} main()

{printf(\ 程序运行后的输出结果是 D:编译出错

17、在一个源程序文件中定义的全局变量的有效范围为 C:从定义处开始到该源程序文件结束 18、有以下程序 main() {

int p[3]={11,12,13},i=0,j=0; while(i++<2) if(p[i]%2) j+=p[i]; printf(\

} 程序运行后的输出结果是 A:13

19、以下能正确定义一维数组的选项是: D:char a[5]=\

20、与定义char c[]={\不等价的是 D:char c[3]={\

21、对于下面程序段,执行的结果是 char c[5]={‘a’,’b’,’\\0’,’c’,’\\0’}; printf(“%s”,c); B:ab

22、设char Q='a', *p=&Q;下面说法中错误的是 C:&p=&Q 23、有以下程序 main()

{int a[]={1,2,3,4,5,6,7,8,9,0},*p; for(p=a;p<=a+9;p++)printf(\)

程序运行后的输出结果是 A:1,2,3,4,5,6,7,8,9,0,

24、若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是

C:&a,p,&*p

25、设有语句:int a[10],*p =a;,则下面的语句中,不正确的是 D:a=a+1;

26、当int类型长度为2字节时,则类型unsigned int的值域范围为 0至65535

27、有如下程序: #include int b; void f()

{ int t2; t2=b*3; b=100; } void main() { int a=2; b=4; f1(); }

叙述正确的是:

D:a是局部变量,b是全局变量。

28、下面的for循环最多可执行________次。 for(x=0,y=0;(y!=99)&&(x<4);x++); A:4次

29、下列判断char类型变量C1是否为数字的表达式中,哪个表达式最简单且正确。

B:(C1>='0')&&(C1<='9')

30、若有以下的说明,则对初值中字符'a'的引用方式为________。 static struct { char ch; double x; char t;

}c[2][2]={{{'a',35,'b'},{'c',45,'d'},{'a',86, 'm'}}}; D:c[0][0].ch 二、判断题:

1、在C程序中,注释部分从/*开始,到*/结束。T

2、switch语句中,case后面既可以跟常量,也可以跟已赋值的变量。F

3、一个C语言程序中包含有多个函数时,按书写顺序从上到下执行各函数。F 4、若一个函数的返回类型为void,则表示其没有返回值。T 5、student_name、_name、name8和name_8都是合法标识符。T

6、不对自动(auto)数组进行初始化,数值型数组隐含初值为0,字符数组隐含初值空字符'\\0'。F 7、假设int型数组a的起始地址为2000,则元素a[3]的地址为:2000+4×2=2008。F

8、结构化程序设计认为一个\好\程序主要应该是:程序短而紧凑。F

9、如果知道整型变量a的地址是2000,可以直接用 int *pa=2000; 给指针变量pa赋值,使其指向变量a。F

10、在C语言的if语句中,用作判断的表达式只能为逻辑表达式和关系表达式。F

三、综合应用题

1、计算下面公式的值。T=1/1!+1/2!+1/3!+……+1/m! 当m=10时的结果(按四舍五入保留3位小数)。(注:所有变量用float数据类型定义!) 答案:1.718

2、求[10,2000]之间能被2或3或5整除的数之和。改正程序中的错误(共3处错误)。答案:1466295 #include void main() {

int sum; int i;

for(i=10;i<2000;i++) if(i%2==0 && i%3==0 && i%5==0) sum=sum+i; printf(\}

3、/*下面程序的功能是:计算并输出500以内的最大的10个能被13或者17整除的自然数之和。请改正程序中的错误,并运行,最后给出程序运行的正确结果。(注:只有一处错误!)*/ #include void main() {

int total=0, mc=1, k=500; int pm[10],count=0;

while( (k>=2) && mc<=10 ) {

if ((k==0) || (k==0)) {

pm[mc] = k; mc++; } k--; }

for( k=1;k<=10;k++ ) total += pm[k-1]; printf(\ }

答案:4622

4、下列程序的功能是:求出以下分数序列的前30项之和,

2/1,3/2,5/3,8/5,13/8,21/13,……请改正程序中的错误,并运行修改后程序,给出程序结果(按四舍五入保留6位小数)。结果:48.840601。(有3处错误) #include #include main() { int k; double s;

long a,b,c; clrscr();

s=0.0; a=2; b=1;

for(k=1;k<=30;k++) s=s+a/b;

c=a; a=a+b; b=c;

printf(\结果: %lf\\n\ }

5、/*求200到1000之间的双胞胎数的对数。双胞胎数:两素数差为2称为双胞胎数。例如227和229是一对双胞胎数,它们都是素数且差为2。*/ #include int prime(int x) {

int k;

for(k=2;k

if(__________) break; if(k==x) return 1; else return 0; }

void main( ) { int a,b,n=0;

int prime(int x); for(a=200;a<=998;a++) {

if(prime(a)==1) { b=a+2;

if(__________) n++; } }

printf(\}

答案:20