您好,欢迎来到榕意旅游网。
搜索
您的当前位置:首页二级C语言-运算符与表达式

二级C语言-运算符与表达式

来源:榕意旅游网
二级C语言-运算符与表达式

(总分:60.00,做题时间:90分钟)

一、{{B}}选择题{{/B}}(总题数:38,分数:38.00)

1.设变量已正确定义并赋值,以下合法的C语言赋值语句是______。

   

A.x=y==5 B.x=n%2.5 C.x+n=i D.x=5=4+1

(分数:1.00) A. √ B. C. D.

解析:[解析] 赋值运算符左侧的操作数必须是一个变量,而不能是表达式或者常量,选项C和D错误。“%”运算符两侧都应当是整型数据,选项B错误。

2.在x值处于-2~2、4~8时值为“真”,否则为“假”的表达式是______。

   

A.(2>x>-2)||(4>x>8)

B.!(((x<-2)||(x>2))&&((x<=4)||(x>8))) C.(x<2)&&(x>=-2)&&(x>4)&&(x<8) D.(x>-2)&&(x>4)||(x<8)&&(x<2)

(分数:1.00) A. B. √ C. D.

解析:[解析] 本题是考查关系运算和逻辑运算的混合运算。要给出此题的正确答案,首先需要了解数学上的区间在C语言中的表示方法,如x在[a, b]区间,其含义是x既大于等于a又小于等于b,相应的C语言表达式是x>=a&&x<=b。本例中给出了两个区间,一个数只要属于其中一个区间即可,这是“逻辑或”的关系。在选项A中,区间的描述不正确。选项B把“!”去掉,剩下的表达式描述的是原题中给定的两个区间之外的部分,加上“!”否定正好是题中的两个区间的部分,是正确的。选项C是恒假的,因为它的含义是x同时处于两个不同的区间内。选项D所表达的也不是题中的区间。 3.sizeof(double)是______。

   

A.一种函数调用 B.一个整型表达式 C.一个双精度表达式 D.一个不合法的表达式

(分数:1.00)

A. B. √ C. D.

解析:[解析] sizeof是一个C语言关键字,有着特定的功能。在C语言中,一个函数的调用格式是:函数名(参数列表)。虽然“sizeof(double)”与函数调用有着相同的格式,但sizeof是一个C语言关键字,因此,它不是一个函数调用。sizeof在C语言中是表示求一个变量或数据类型所占用的内存字节数的运算符,所以“sizeof(double)”表示求双精度浮点型数据占用内存的字节数。显然,该表达式返回的是一个整数,而不是一个双精度数。

4.对于条件表达式(M)? (a++):(a--),其中的表达式M等价于______。

   

A.M==0 B.M==1 C.M!=0 D.M!=1

(分数:1.00) A. B. C. √ D.

解析:[解析] 因为条件表达式e1?e2:e3的含义是e1为真时,其值等于表达式e2的值,否则为表达式e3的值。“为真”就是“不等于假”,因此M等价于M!=0。

5.设变量已正确定义并赋值,以下正确的表达式是______。

  

A.x=y*5=x+z B.int(15.8%5) C.x=y+z+5, ++y D.x=25%5.0

(分数:1.00) A. B. C. √ D.

解析:[解析] 求余运算符“%”两边的运算对象必须是整型数据,而选项B和D中“%”两边的运算对象有浮点整型数据,所以选项B和D是错误的表达式。在选项A中赋值表达式两边出现相同的变量x,也是错误的。选项C是一个逗号表达式,所以正确的答案为C。

6.设变量已正确定义为整型,则表达式n=i=2,i=n+1,i+n的值为______。

  

A.2 B.3 C.4 D.5

(分数:1.00)

A. B. C. D. √

解析:[解析] 本题考查的是C语言逗号表达式相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔的各表达式的值,整个逗号表达式的值等于其中的最后一个表达式的值。本题中,首先i和n被赋值为2,i再加上n和1为3,最后i+n等于2+3=5。本题答案为D。

7.若已定义x和y为double类型,则表达式“x=1, y=x+3/2”的值是______。

  

A.1 B.2 C.2.0 D.2.5

(分数:1.00) A. B. C. √ D.

解析:[解析] 本题中的表达式为逗号表达式,此表达式的结果为y=x+3/2的值。y=x+3/2的运算次序为:先进行3/2运算,两个运算数均为整型量,结果也为整型量,等于1,此结果将与double类型数进行相加,要转换为1.00...00。最后将x的值1转换成double型,与1.00...00相加。 8.设变量已正确定义并赋值,以下正确的表达式是______。

 

 

A.x=y*5=x+z B.int(15.8%5) C.x=y+z+5, ++y D.x=25%5.0

(分数:1.00) A. B. C. √ D.

解析:[解析] 求余运算符“%”两边的运算对象必须是整型,而选项B、D中“%”两边的运算对象有浮点整型数据,所以选项B、D是错误的表达式。在选项A中赋值表达式的两边出现相同的变量“x”,也是错误的。选项C是一个逗号表达式,所以正确的答案为C。

9.现有定义int a;double b;float c;char k;,则表达式a/b+c-k的值的类型为______。

   

A.int B.double C.float D.char

(分数:1.00) A.

B. √ C. D.

解析:[解析] 双目运算中两边运算量类型转换规则。

运算数1 运算数2 转换结果类型

短整型 长整型 短整型->长整型 整型 长整型 整型->长整型 字符型 整型 字符型->整型 有符号整型 无符号整型 有符号整型->无符号整型 整型 浮点型 整型->浮点型

在a/b的时候,a、b的类型不一致,根据类型转换规则,要把整型转换成double类型,之后的加、减类似。转换规则char,short→int→unsigned→long→double→float。

10.设有定义:int k=0;,以下选项的4个表达式中与其他3个表达式的值不相同的是______。

  

A.k++ B.k+=1 C.++k D.k+1

(分数:1.00) A. B. C. D. √

解析:[解析] 选项A、B、C都使k的值增加1,D选项不改变k的值。本题答案为D。 11.以下关于单目运算符++、--的叙述中正确的是______。

   

A.它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D.它们的运算对象可以是char型变量、int型变量和float型变量

(分数:1.00) A. B. C. D. √

解析:[解析] “++”和“--”运算符都是单目运算符,其运算对象可以是整型变量,也可以是实型变量,但不能是常量或表达式。当运算对象是字符型时,系统自动将其转换成该字符所对应的ASCII码值。 12.以下选项中,与k=n++完全等价的表达式是______。

   

A.k=n, n=n+1 B.n=n+1, k=n C.k=++n D.k+=n+1

(分数:1.00) A. √ B. C. D.

解析:[解析] 题中的表达式是先让n参与赋值运算,然后再对本身进行自加,所以选A。 13.以下非法的赋值语句是______。

   

A.n=(i=2, ++i) B.j++ C.++(i+1) D.x=j>0

(分数:1.00) A. B. C. √ D.

解析:[解析] 自加或自减运算的操作数不能是表达式。 14.以下程序的输出结果为______。 #include <stdio.h> main() { int i=4, a; a=i++;

printf(\"a=% d, i=% d\}

   

A.a=4, i=4 B.a=5, i=4 C.a=4, i=5 D.a=5, i=5

(分数:1.00) A. B. C. √ D.

解析:[解析] 本题考查的是自增运算符及赋值运算符的综合使用问题。自增运算符是一元运算符,其优先级比赋值运算符高,要先计算。把表达式i++的值赋予a,由于i++的结果为当前i的值(当前i的值为4),所以i++的值为4,得到a的值为4。同时,计算了i++后,i由4变为5。 15.若变量已正确定义并赋值,以下符合C语言语法的表达式是______。

  

A.a:=b+1 B.a=b=c+2 C.int18.5%3 D.a=a+7=c+b

(分数:1.00) A. B. √ C. D.

解析:[解析] 选项A中包含一个不合法的运算符“:=”,选项C应改为(int)18.5%3;选项D可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错误的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。因此,正确答案是选项B,它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。

16.若下列变量都已正确定义并赋值,则符合C语言语法的表达式是______。

  

A.a=a+7 B.a=7+b+c, a++ C.int(12.3/4) D.a=a+7=c+b

(分数:1.00) A. B. √ C. D.

解析:[解析] 选项A中“a=a+7;”赋值表达式的最后有一个分号“;”,C语言规定,语句用分号结束,所以“a=a+7;”是一条赋值语句,而不是表达式。

17.设有定义:int x=2;,以下表达式中,值不为6的是______。

   

A.x*=x+1 B.x++, 2*x C.x*=(1+x) D.2*x, x+=2

(分数:1.00) A. B. C. D. √

解析:[解析] 本题考查逗号运算符的运算方式,逗号运算符的作用是将若干表达式连接起来,它的优先级别在所有运算符中是最低的,结合方向为“自左向右”。A项和C项的结果是一样的,可展开为:x=x*(x+1)=2*3=6;B项中先执行x++,因为++运算符有自加功能,逗号之前执行后x的值为3,逗号后的值就是整个表达式的值,即6;D项逗号之前并未给x赋值,所以表达式的值就是x+=2的值,即4。因此,本题答案为D。

18.执行以下程序后的输出结果是______。 main() { int a=65;

printf(\"%c\}

   

A.A B.B C.C D.D

(分数:1.00) A. √ B. C. D.

解析:[解析] A的ASCII码为65,int类型强制转换为char类型后输出A。 19.以下程序的运行结果是______。 main()

{ char ch='A'; int num1=ch; float num2=num1; printf(\"% f\}

   

A.A B.65 C.65.00000 D.a

(分数:1.00) A. B. C. √ D.

解析:[解析] A的ASCII码为65,赋值语句num1=ch把char类型的变量转换成int类型的变量num1;赋值语句num2=num1把类型为int的变量转换为类型为float的变量num2,最后printf打印出num2的值为65.00000。

20.若a为整型变量,则执行以下语句后的______。 a=-2L;

printf(\"%d/n\

   

A.赋值不合法 B.输出值为-2 C.输出为不确定值 D.输出值为2

(分数:1.00) A. B. √ C. D.

解析:[解析] 本题的关键是要弄清楚C语言中常量的表示方法和有关的赋值规则。在一个整型常量后面加一个字母1或L,则认为是long int型常量。一个整型常量,如果其值在-32768~+32767范围内,可以赋给一个int型或long int型变量;但如果整型常量的值超出了上述范围,而在-21474838~21474837范围内,则应将其值赋给一个long int型变量。本例中-2L虽然为long int型变量,但是其值为-2,因此可以通过类型转换把长整型转换为短整型,然后赋给int型变量a,并按照%d格式输出该值。 21.已知字符A的ASCII码值是65,执行以下程序后的______。 #include <stdio.h> main()

{ char a ='A'; int b=20;

printf(\"% d, %o\}

  

A.表达式非法,输出零或不确定值 B.因输出项过多,无输出或输出不确定值 C.输出结果为20,141 D.输出结果为20,11,20

(分数:1.00) A. B. C. √ D.

解析:[解析] 首先应该注意到printf()函数有3个实参数:(a=a+1、a+b、b)、a+'a'-'A'和b,并没有问题,可见选项A错误。由于格式控制字符串“%d, %o”中有两个描述符项,而后面又有表达式,因此,必定会产生输出,选项B也是错误的。既然控制字符串中只有两个格式描述符,输出必然只有两个数据,故选项D错误。

22.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是______。

   

A.a∧b B.a|b C.a&b D.a<<4

(分数:1.00) A. √ B. C. D.

解析:[解析] 本题考查的是位运算的知识,对于任何二进制数,和1进行异或运算会让其取反,而和0进行异或运算不会发生任何变化,故本题答案选A。

23.设有定义char a, b;,若想通过a&b运算保留a的第3位和第6位的值,则b的二进制形式应是______。

 

A.00100100 B.11011011 C.00010010

D.01110010

(分数:1.00) A. √ B. C. D.

解析:[解析] 由“按位与”运算的功能可知:两个对应的二进制数只要有一个为0,“按位与”的结果就为0,只有它们均为1时结果才为1。因此,若想保留a位上的数,就用1去“按位与”,其他位用0屏蔽掉。

24.以下叙述中,不正确的是______。

   

A.在C程序中,%是只能用于整数运算的运算符

B.在C程序中,无论是整数还是实数,都能准确无误地表示

C.若a是实型变量,C程序中a=20是正确的,因此实型变量允许被整型数赋值 D.表述不正确

(分数:1.00) A. B. √ C. D. 解析:

25.若变量x、y、z均为double类型且已正确赋值,不能正确表示x/y×z的C语言表达式是______。

   

A.x/y*z B.x*(1/(y*z)) C.x/y*1/z D.x/y/z

(分数:1.00) A. √ B. C. D. 解析:

26.设a、b、c、d、m、n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______。

   

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

(分数:1.00)

A. B. C. √ D. 解析:

27.设w、x、y、z、m均为int型变量,有以下程序段: w=1; x=2; y=3; z=4;

m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z; 则该程序运行后,m的值是______。

   

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

(分数:1.00) A. B. C. D. √ 解析:

28.以下程序的输出结果是______。 #include <stdio.h> main()

{ int a=5, b=4, c=6, d;

printf(\"% d/n\>b? (a>c? a:c):(b)); }

   

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

(分数:1.00) A. B. C. √ D. 解析:

29.在C语言中,如果下面的变量都是int类型,则输出的结果是______。 sum=pad=5; pad=sum++, pad++, ++pad; printf(\"%d/n\

   

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

(分数:1.00) A. √ B. C. D. 解析:

30.以下程序的输出结果是______。 #include <stdio.h> main()

{ int i =010, j=10;

printf(\"% d, % d/n\}

   

A.11,10 B.9,10 C.010,9 D.10,9

(分数:1.00) A. B. √ C. D. 解析:

31.已知int i; float f;,以下选项中正确的语句是______。

   

A.(int f)%i; B.int(f)%i; C.int(f%i); D.(int)f%i;

(分数:1.00) A. B. C. D. √ 解析:

32.若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为______。 (x+y)%2+(int)a/(int)b

   

A.1.0 B.1 C.2.0 D.2

(分数:1.00) A. B. √ C. D. 解析:

33.假设所有变量均为整型,则表达式(a=2, b=5, a++, b++, a+b)的值为______。

   

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

(分数:1.00) A. B. C. √ D. 解析:

34.若有定义\"int x=1, y=1;\",表达式(!x||y--)的值是______。

   

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

(分数:1.00) A. B. √ C. D. 解析:

35.有以下程序: main()

{ unsigned char/a, b, c; a=0x3; b=a |0x8; c=b <<1;

printf(\"%d%d/n\}

程序运行后的输出结果是______。

   

A.-11 12 B.-6 -13 C.12 24 D.11 22

(分数:1.00) A. B. C. D. √ 解析:

36.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是______。

   

A.1 B.2 C.2.0 D.2.5

(分数:1.00) A. B. C. √ D. 解析:

37.执行以下程序段后,c3的值为______。 int c1=1, c2=2, c3; c3=1.0/c2*c1;

   

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

(分数:1.00) A. √ B. C. D. 解析:

38.以下程序的输出结果是______。 #include <stdio.h> main()

{ int y=3, x=3, z=1;

printf(\"%d%d/n\}

   

A.34 B.42 C.43 D.33

(分数:1.00) A. B. C. D. √ 解析:

二、{{B}}操作题{{/B}}(总题数:8,分数:22.00)

39.编写函数fun(),其功能是:根据以下公式求π的值(要求精度为0.0005,即某项小于0.0005时停止迭代)。

程序运行后,若输入精度为0.0005,则程序应输出为3.14…。 注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序

#include <stdio.h> #include <conio.h> #include <math.h> double fun(double eps) { }

void main() { double x;

printf(\"Input eps:\"); scanf(\"% if\

printf(\"/neps =% if, PI =% if/n\}

__________________________________________________________________________________________ 正确答案:(double fun(double eps) { double s=1.0, s1=1.0; int n=1; while(s1 > =eps)/ * 当某项大于精度要求时, 继续求下一项* / { s1=s1*n/(2*n+1); /*求多项式的每一项* / s=s+s1; /*求和* / n++; } return2*s; })

解析:[解析] 本题考查:迭代法求给定多项式的值,迭代算法是让计算机对一组指令(或一定步骤)重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。需要注意变量的数据类型及赋初值操作。首先应该定义double类型变量,并且赋初值,用来存放多项式的某一项和最后的总和。从第二项开始,以后的每一项都是其前面一项乘以n/(2×n+1),程序中用s1来表示每一项,s表示求和后的结果。要注意s1和s的初值都为1.0,因为循环从第二项开始累加。

40.下列给定程序中函数fun()的功能是:求两个非零正整数的最大公约数,并作为函数值返回。 例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。请改正程序中的错误,使它能得出正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序

#include <stdio.h> int fun(int a, int b) { int r, t; if(a<b)

/* * * * *found* * * * * /

{t =a; b=a; a=t;} r=a% b; while(r!= 0) {a=b; b=r; r=a% b;} /* * * * *found* * * * * / return (a); }

void main()

{ int num1, num2, a;

printf(\"Input num1 num2: \"); scanf(\"% d% d\

printf(\"num1 =% d num2=% d/n/n\a=fun(num1, num2);

printf(\"The maximun common divisor is% d/n/n\}

__________________________________________________________________________________________ 正确答案:((1){t =a; a=b; b=t;} (2)return(b); 或return b;)

解析:[解析] 本题考查:return语句,功能是计算表达式的值,并将其返回给主调函数。 求最大公约数算法一般采用辗转相除法。辗转相除法的算法为:首先将m除以n(m>n)得余数r,再用余数r去除原来的除数,得到新的余数,重复此过程直到余数为0时停止,此时的除数就是m和n的最大公约数。 程序首先判断参数a和b的大小,如果a<b则进行交换,这里是一个数学逻辑错误,应先将a的值赋给中间变量t,再将b的值赋给a,最后将t的值赋给b。当余数r为0时,除数b即为所求的最大公约数,所以函数应返回b。

41.下列给定的程序中,函数fun()的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数的值为4622。 请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序

#include <stdio.h> #include <conio.h> #include <stdlib.h> int fun(int k) { int m=0, mc=0, j; while((k>=2)&&(mc<10)) { /* * * * *found* * * * * / if((k% 13=0)||(k% 17=0)) {m=m+k; mc++;} k--;

/* * * * *found* * * * * / return m; }

void main()

{ printf(\"% d/n\}

__________________________________________________________________________________________ 正确答案:((1)if((k%13==0)||(k%17==0)) (2)加})

解析:[解析] 本题考查:if语句条件表达式,区分逻辑表达式和算术表达式;同时注意C语言书写程序应遵守的规则。 (1)C语言中“=”是赋值运算符,“==”才表示等于,x能被y整除的表示方法是x%y==0,

而并非像题目中所表示的x%y=0。所以,if((k%13=0)||(k%17=0))修改后的结果应该是答案所示信息。 (2)程序中缺少“}”花括号,程序不完整。此类信息在做题时一定要注意,可以在做题前先运行一下程序,这样明显的错误一般都会有错误信息显示出来,比如丢失“}”的错误信息是“Compound statement missing } in function fun”。

42.下列给定程序中函数fun()的功能是:将p所指字符串中的所有字符复制到b中,要求每复制3个字符之后插入一个空格。

例如,若给a输入字符串:ABCDEFGHIJK,调用函数后,字符数组b中的内容为:ABC DEF GHI JK。请改正程序中的错误,使它能得出正确结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序

#include <stdio.h> void fun(char *p, char *b) { int i, k=0; while(*p) { i=1;

while(i<=3 && *p) { /* * * * *found* * * * * / b[k]=p; k++; p++; i++; } if(*p)

{ /* * * * *found* * * * * / b[k++]=\" \"; } }

b[k]='/0'; } main()

{ char a[80], b[80]; printf(\"Enter a string:\"); gets(a);

printf(\"The original string:\"); puts(a); fun(a, b);

printf(\"/nThe string after insert space:\"); puts(b); printf(\"/n/n\"); }

__________________________________________________________________________________________ 正确答案:((1)b[k]=*P; (2)b[k++]='';)

解析:[解析] 本题考查:指针类型变量作为函数的参数,函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。 (1)题目中p是指针型变量作函数参数,因此给b[k]赋值时出现错误。 (2)题目要求复制3个字符后加一个空格,所以应该是先给b[k]赋值空格,然后变量k再加1。

43.下列给定程序中函数fun()的功能是:计算并输出high以内最大的10个素数的和。high的值由主函数传给fun()函数。

例如,若high的值为100,则函数的值为732。 请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序

#include <conio.h> #include <stdio.h> #include <math.h > int fun(int high)

{ int sum=0, n=0, j, yes; /* * * * *found* * * * * / while((high>=2) && (n<10) { yes=1;

for(j=2; j<=high/2; j++) if(high% j==0)

{ /* * * * *found* * * * * / yes=0; break } if(yes) { sum+=high; n++; } high--; return sum; } main()

{ printf(\"% d/n\}

__________________________________________________________________________________________ 正确答案:((1)while((high>=2) && (n<10)) (2)yes=0; break;)

解析:[解析] 本题考查:C语言程序的语法格式。 一处是while循环条件丢掉一个括号;另一处是很简单的程序语法错误,没有加分号。

44.下列给定程序中函数fun()的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。

例如,当s中的数为87653142时,t中的数为7531。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序

#include <stdlib.h> #include <stdio.h> #include <conio.h> void fun(long s, long * t) { int d; long s1=1; *t=0; while(s>0) { d=s% 10; if(d% 2!=0) { *t=d*s1+*t; s1______10; } s/ =10;

} }

void main() { long s, t;

printf(\"/nPlease enter s:\"); scanf(\"% ld\fun(s, &t);

printf(\"The result is:% ld/n\}

(分数:8.00)

填空项1:__________________ (正确答案:: *=) 解析:[解析] 本题考查:复合的赋值运算符*=的使用。

45.给定程序的功能是:计算并输出下列级数的前n项之和Sn,直到Sn大于q为止,q的值通过形参传入。 例如,若q的值为50.0,则函数值为50.416687。 注意:部分源程序给出如下。

请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的标号处填入你编写的若干表达式或语句。

试题程序

#include <stdio.h> double fun(double q) { int n; double s; n=2; s=2.0;

while(s______q) { s=s+______(n+1)/n; ______; }

printf(\"n =% d/n\return s; } main()

{ printf(\"% f/n\}

(分数:8.00)

填空项1:__________________ (正确答案:<= (double) n++或n+=1或n=n+1) 解析:[解析] 本题考查:关系运算符;强制类型转换运算符;自加、自减运算符。 填空(1):根据题意,相加直到Sn大于q为止,因此为<=。 填空(2):强制转换成浮点型。

填空(3):变量n为增量,每循环一次,增加n的值。

46.下列给定程序中,函数fun()的功能是:将形参n中各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。

例如,输入一个整数27638496,函数返回值为862。 请在标号处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构。

试题程序

#include <stdio.h>

unsigned long fun(unsigned long n) { unsigned long x=0; int t; while(n) { t=n% 10;

/* * * * *found* * * * * / if(t% 2==______)

/* * * * *found* * * * * / x=______+t;

/* * * * *found* * * * * / n=______; } return x; } main()

{ unsigned long n=-1; while(n>99999999||n<0) {

printf(\"Please input (0<n<100000000): \"); scanf(\"% ld\}

printf(\"/nThe result is: % ld/n\}

(分数:6.00)

填空项1:__________________ (正确答案:0 10*x n/10) 解析:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务