网友您好, 请在下方输入框内输入要搜索的题目:

吉大19秋学期《C语言程序设计》在线作业二答案

设有定义: float x=123.4567; ,则执行以下语句后的输出结果是 【 6 】 。

printf("%f\n",(int)(x*100+0.5)/100.0);


正确答案:
答案 123.460000
解析:表达式( int ) (x*100+0.5) 的值为 12346 ,然后再除以 100.0 ,其结果为 123.460000 。


设有:int x,*p; 则正确的赋值表达式是( )

A.*p=&x

B.*p=*x

C.p=x

D.p=&x


参考答案:D


设有以下定义和语句,则*(*(p+2)+1)的值为【14】。

int a[3][2]={10, 20, 30, 40, 50, 60}, (*p)[2];

p=a;


正确答案:
60


若定义int a=10,则表达式a+=a-=a*=a的值是( )。

A.0

B.-180

C.-100

D.-90


正确答案:B
解析:算术运算符的运算规则是:从右到左的原则。所以表达式中先计算a=a-a*(上标)a的值是-90,再计算 a=a+a的值是-180。


若定义int a=10,则表达式a+=a-*=a的值是( )。

A.0

B.-180

C.-100

D.-90


正确答案:B
解析:算术运算符的运算规则是:从右到左的原则。所以表达式中先计算a=a-a*a的值是-90,再计算a=a+a的值是-180。


吉大17秋学期C语言程序设计在线作业二-0005试卷总分:100 得分:100一、单选题 (共 10 道试题,共 40 分)1.设有定义:int n=0,*p=&n,*q=&p,则下列选项中正确的赋值语句是A.q=p;B.*q=2;C.*p=5;D.p=1;答案:C2.设有int x=11;则表达式(x+*1/3)的值是A.3B.4C.11D.12答案:A3.下面程序的输出结果是 main() int a10=1,2,3,4,5,6,7,8,9,10,*p=a; printf(%dn,*(p+2);A.3B.4C.1D.2答案:A4.sizeof(float)是A.一个双精度型表达式B.一个整型表达式C.一种函数调用D.一个不合法的表达式答案:B5.在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L答案:D6.请选出以下语句的输出结果 printf(%dn,strlen(t065xffn);A.5B.14C.8D.输出项不合法,无正常输出答案:A7.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为A.4B.16C.32D.52答案:C8.下面能正确进行字符串赋值操作的是A.char s5=ABCDE;B.char s5= ′A′, ′B′, ′C′, ′D′, ′E′C.char *s;s=ABCDE;D.char *s;char a; scanf(%s,&s);答案:C9.以下程序的输出结果是 #include stdio.hvoid reverse(int a,int n) int i,t; for(i=0;in/2;i+) t=ai; ai=an-1-i; an-1-i=t; main() int b10=1,2,3,4,5,6,7,8,9,10; int i,s=0; reverse(b,8); for(i=6;i10;i+) s+=bi; printf(%dn,s);A.22B.10C.34D.30答案:A10.以下不正确的叙述是A.在C程序中,逗号运算符的优先级最低B.在C程序中,APH和aph是两个不同的变量C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值答案:D二、多选题 (共 5 道试题,共 20 分)11.以下_是正确的转义字符。( )A.81B.0C.D.答案:BCD12.在缓冲文件系统中用于读写的函数有A.rewind ()B.putchar ()C.purw()D.fread()答案:BCD13.C语言中函数返回值的类型与下列哪项无关?A.定义函数时所指定的函数类型B.调用函数时临时C.调用该函数的主函数类型D.return语句中的表达式类型答案:BCD14.对静态变量的正确描述A.静态局部变量在静态存储区内分配单元B.静态外部变量可以赋初值,也可以不赋初值C.静态外部变量的作用与外部变量相同D.静态局部变量在函数调用结束时,仍保存其值,不会随着消失。答案:ABD15.函数调用可以_。A.出现在一个表达式中B.出现在执行语句中C.作为一个函数的实参D.作为一个函数的形参答案:ABC三、判断题 (共 10 道试题,共 40 分)16.putchar()函数可以输出一个字符串答案:错误17. a和“a”在内存中所占字节数相同。( )答案:错误18.C语言中,整常数有三种表示形式:十进制整数,八进制整数,十六进制整数。( )答案:正确19.函数必须有返回值,否则不能使用函数答案:错误20.若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清除。答案:正确21.数据结构指的是数据的组织形式,数组就是一种数据结构( )答案:正确22.调用函数只可得到一个返回值,而用宏可以设法得到几个结果。答案:正确23.C语言规定标识符可由字母、数字、下划线三种字符组成,第一个字符可以为数字或字母。( )答案:错误24.puts和gets函数只能输入或输出一个字符串答案:正确25.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。答案:正确


设有定义int a=b,则计算表达式 a+=a-=a*a 后,a为()

A、-60

B、0

C、2

D、-24


参考答案:A


设有定义:float x=123.4567;,则执行以下语句后的输出结果是[ ]。

printf("%f\n"(int)(x*100+0.5)/100.1;


正确答案:123.46
123.46 解析:输出语句的表达式:(int)(x*100+0.5)/100.0是指先运算表达式中的“x*100+0.5”,然后将其结果强制转换为int型,即:(int)(l23.4567*100+O.5)=(int)12346.17=12346,接下来进行”/100.0”的运算即:12346/100.0=123.46,原因是除运算是双目运算,当—边是整型数,—边是实型数时,系统自动将整型转换为实型数,然后进行运算,又因为最后的的输出格式是float类型的实数,所以结果为123.460000。


设有如下变量定义: double a=3.500000;float b=2.5; int m=2,n=3; 则表达式“(float)(m+n)/2+(int)a%(int)b”的值是( )

A.2.5

B.3.5

C.4.5

D.表达式不正确


正确答案:B


设有定义语句:int a=12;,则表达式a*=2+3的运算结果是______。


正确答案:60
60 解析:本题考核C++运算符运算优先级和结合性。表达式"a*=2+3,"先计算“2+3”得到5,然后计算a*=5,得到a的值为60。


若定义int a=10,则表达式a+=a=aa*=a的值是( )。

A.0

B.-180

C.-100

D.-90


正确答案:B
解析:算术运算符的运算规则是:从右到左的原则。所以表达式中先计算a=a-a*a的值是-90,再计算a=a+a的值是-180。


更多 “吉大19秋学期《C语言程序设计》在线作业二答案” 相关考题
考题 设有定义语句“int x=10, *p=&x”,则表达式的值为10的有( )。 A、pB、*pC、*&xD、*p=xE、x=*p 参考答案BCDE

考题 设有如下变量定义: double a= 3.500000;float b=2.5;int m=2,n=3; 则表达式“(float)(m+n)/2+(int)a%(int)b”的值是( )。A.2.5B.3.5C.4.5D.表达式不正确 正确答案:B解析:表达式m+n的值被强制转换为实型,则(m=n)/2的值为2.5。变量a和b被强制转换为整型,所以(int)a%(int) b的值为1,因此表达式的值为3.5,选项B正确。

考题 设有定义int i=6,则执行以下语句后,i的值为()。 i+=i-1;A、10B、121C、11D、100正确答案:C

考题 设有定义语句“int a[]={2, 4,6,8,10},*p=s;”,则值为8的表达式是( )A.*p+3B.*p+4C.*(p+4)D.*(s+3) 正确答案:D分析四个备选答案,可以看出是用指针法来引用数组a的元素。当指针变量p已经指向数组。的首地址后(正如本题那样),*(p+i)和*(s+i)都是数组元素a[i]。对于备选答案A:*p就是数组元素。a[0],其值为2,再加3结果为5,不符合题意。同样道理,备选答案B中的*p十4的值为6,也不符合题意。对于备选答案C:*(p+4)代表数组元素a[4],其值为10,也不符合题意。显然本题答案应选D。因为*(s+3)就是数组元素s[3],其值为8。

考题 设有定义语句“int a=10,*p=a;”,则表达式“a十*p”的值是( )A.10B.20C.100D.语法出错 正确答案:B在数据定义语句中的“*p=a”,表示指针变量p已经指向变量a,所以表达式中的“*p”就是变量a,“a+*p”就是“a+a”,所以该表达式的值为20。本题答案应选B。

考题 设有定义nit a:float f; double int i,则表达式10+'a'+i+f值的数据类型是( )A.intB.floatC.doubleD.不确定 正确答案:C

考题 单选题设有定义int i=6,则执行以下语句后,i的值为()。 i+=i-1;A 10B 121C 11D 100正确答案: C 解析: 暂无解析

考题 设有以下C语言说明语句,则值为210的表达式是(33)。 struct s { int a;int *b;}; Int x0[]={110,120},x1[]={210,220}; struct s x[]={{100},{200}},*p=x; x[0].b=x0;x[1].b=x1;A.(++p)->aB.*p->bC.*(p++)->bD.*(++p)->b 正确答案:D解析:注意到本试题中x为结构体数组,则数组名x代表数组首地址。x[0]、x[1]代表结构体数组元素。对于指向结构体数组的指针变量p,每次“+1”则指向下一个结构体数组元素。本题中++p后,由x[0]改指向x[1]。结构体数组x在定义时赋初值,但未对结构体成员b赋初值。语句“x[0].b=x0;x[1].b=x1;”的作用是对结构体数组x的成员b赋初值。对于选项A,(++p)->a等价于x[1].a==200。选项B,*p->b等价于*(x->b)==*x0==110。选项C,*(p++)->b等价于*(x[0].b)==110=x0[0]。选项D,*(++p)->b等价于*(x[1].b)==210=x1[0]。注意,在测试以上1个选项的输出值时,不能放在同一个printf函数中进行输出。因为函数中的参数运算顺序在C语言中是自右向左进行的,而p的值又是不断变化的,所以相互之间会产生影响。

考题 单选题设有定义int i=6,则执行以下语句后,i的值为()。 i+=i-1;A 10B 121C 11D 100正确答案: A 解析: 暂无解析

考题 单选题设有定义int i=6,则执行i += i - 1;语句后,i的值为()。A 10B 121C 11D 100正确答案: C 解析: 暂无解析
最新考题