专升本C语言联大复习题答案Word下载.docx

上传人:b****5 文档编号:19462313 上传时间:2023-01-06 格式:DOCX 页数:29 大小:37.75KB
下载 相关 举报
专升本C语言联大复习题答案Word下载.docx_第1页
第1页 / 共29页
专升本C语言联大复习题答案Word下载.docx_第2页
第2页 / 共29页
专升本C语言联大复习题答案Word下载.docx_第3页
第3页 / 共29页
专升本C语言联大复习题答案Word下载.docx_第4页
第4页 / 共29页
专升本C语言联大复习题答案Word下载.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

专升本C语言联大复习题答案Word下载.docx

《专升本C语言联大复习题答案Word下载.docx》由会员分享,可在线阅读,更多相关《专升本C语言联大复习题答案Word下载.docx(29页珍藏版)》请在冰豆网上搜索。

专升本C语言联大复习题答案Word下载.docx

20.以下符合C语言语法的赋值表达式是:

A)d=9+e+f=d+9B)d=9+e,f=d+9

C)d=9+e,e++,d+9D)d=9+e++=d+7

21.在C语言中,要求运算数必须是整型的运算符是:

A)/B)>

C)!

=D)%

22.若有代数式

,则正确的表达式是:

A)sqrt(fabs(pow(y,x)+log(y)))

B)sqrt(abs(pow(y,x)+log(y)))

C)sqrt(fabs(pow(x,y)+log(y)))

D)sqrt(abs(pow(x,y)+log(y)))

解释:

ABS是绝对值函数的输入参数类型为整型,fabs函数的输入参数类型为浮点型。

23.若有定义:

inta=7;

floatx=2.5,y=4.7;

则表达式(A)

x+a%3*(int)(x+y)%2/4的值是:

A)2.500000B)2.75000C)3.500000D)0.000000

24.若有定义:

intk=7,x=12;

则值为3的表达式是:

A)x%=(k%=5)B)x%=(k-k%5)

C)x%=k-k%5D)(x%=k)-(k%=5)

25.若有定义:

charw;

intx;

floatydoublez;

,则表达式w*x+z-y的类型是:

A)charB)intC)floatD)double

26.printf(“%d,%d,%d”,a,b,c);

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

的区别。

27.解析:

前面打印a,b,c后面打印c,b,c。

逗号表达式,值为最后一项的值。

28.若intx=5,n=5;

,则计算表达式x+=n++后,x、n的值分别为【10】和【6】。

29.若inta=6;

,则计算表达式a+=a-=a*a后,a的值是【-60】。

30.若inta;

则表达式(a=4*5,a*2),a+6的值是【26】。

31.已有如下定义,若要求给a1、a2、c1、c2输入的值为10,20,A和B,当从第1列开始输入数据时,正确的输入方式是_______.(注意:

<

CR>

表示回车,└┘表示空格)

inta1,a2;

charc1,c2;

scanf(“%d%c%d%c”,&

a1,&

c1,&

a2,&

c2);

A)10A└┘20B<

B)10└┘A└┘20└┘B<

C)10A20B<

D)10A20└┘B<

32.以下程序输出的结果是:

__(D)____。

(注意:

└┘表示空格)

main()

{printf(“\n*s1=%15s*”,”ChinaBeijing”);

printf(“\n*s2=%-5s*”,”chi”);

}

A)*s1=ChinaBeijing└┘└┘└┘*B)*s1=ChinaBeijing└┘└┘└┘*

*s2=**chi**s2=chi└┘└┘

C)*s1=*└┘└┘ChinaBeijing*D)*s1=└┘└┘└┘ChinaBeijing*

*s2=└┘└┘chi**s2=chi└┘└┘*

33.以下程序的输出结果是:

____。

#include<

stdio.h>

main()

{inta=252;

printf("

a=%oa=%#o\n"

a,a);

a=%xa=%#x\n"

答案:

a=374a=0374

a=fca=0xfc

34.判断字符变量ch中是否为字母’y’和’n’。

【分析】对这个判断应当明确是否也包含大写字母。

一般情况下应当包含,因此,只要ch中存储的是字母’Y’、’y’、’N’和’n’之一,命题都成立,显然,这是一种逻辑“或”的关系。

【结论】对应的逻辑表达式为:

ch==’Y’||ch==’y’||ch==’N’||ch==’n’

35.判断数据x是否在区间[0,60]内。

包含[]不包含边界()

【分析】x在区间[0,60]内,既要满足x>

=0,又要满足x<

=60,这是一种逻辑“与”的关系。

这里的“既……又要……”实际表达了同时成立的意图。

x>

=0&

&

x<

=60

思考:

为什么不能写成:

0<

=x<

=60?

36.x和y都等于100

【分析】若使命题成立,既要满足x是100,又要满足y是100。

x==100&

y==100

37.判断a是否为3、5、7的公倍数。

【分析】a为3、5、7的公倍数的条件是,a能被3整除且a能被5整除且a能被7整除,这里的“且”实际是同时成立的意思,因此是逻辑“与”的关系。

a%3==0&

a%5==0&

a%7==0

a%(3,5,7)==0?

38.判断a是否能被3、5、7中的任意一个数除尽。

【分析】a能被3、5、7中任一个数整除,则条件成立,也就是a能被3整除或a能被5整除或a能被7整除。

这里应该使用逻辑“或”。

a%3==0||a%5==0||a%7==0

a%(3||5||7)==0或者a%3==0&

a%7==0?

39.判断变量year表示的年份是否闰年。

【分析】闰年的规律是:

年份能被4整除,但不能被100整除;

或者年份能被400整除。

这个规律已经表明了逻辑关系。

“年份能被4整除,但不能被100整除”可以用year%4==0&

year%100!

=0表示;

而“年份能被400整除”可以用year%400==0表示。

【结论】判断年份year是闰年的完整的逻辑表达式为:

(year%4==0)&

(year%100!

=0)||(year%400==0)

40.在C语言中,表示逻辑“真”用【!

0】。

41.能表示“当x取值在[1,10]和[200,210]为真,否则为假”的表达式为:

A)(x>

=1)&

(x<

=10)&

(x>

=200)&

=210)

B)(x>

=1)||(x<

=10)||(x>

=200)||(x<

C)(x>

D)(x>

42.判断字符型变量ch是否大写字母的正确表达式是:

A)‘A’<

=ch<

=‘Z’B)(ch>

=‘A’)&

(ch<

=‘Z’)

C)(ch>

=‘Z’)D)(ch>

=‘A’)AND(ch<

43.已知x=43,ch=‘A’,y=0;

则表达式(x>

=y&

ch<

‘B’&

!

y)的值是:

A)0B)语法错C)1D)“假”

44.以下不正确的if语句形式是(C)

A)if(x>

y&

x!

=y);

B)if(x==y)x+=y;

C)if(x!

=y)scanf(“%d”,&

x)elsescanf(“%d”,&

y);

D)if(x<

y){x++;

y++;

}

45.已知intx=10,y=20,z=30;

以下语句执行后x,y,z的值是(B)

if(x>

y)

z=x;

x=y;

y=z;

A)x=10,y=20,z=30B)x=20,y=30,z=30

C)x=20,y=30,z=10D)x=20,y=30,z=20

46.若w=1,x=2,y=3,z=4,则条件表达式w<

x?

w:

y<

z?

y:

z的值是;

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

47.已知A=7.5,B=2,C=3.6,表达式A>

B&

C>

A||A<

B的值是【0】。

48.条件“2<

x<

5或x<

-10”的C语言表达式为【x>

2&

5||x<

-10】。

49.已知inta=3.b=4,c=5;

则表达式!

(a+b)+c-1&

b+c/2的值是【1】。

50.以下程序如果输入一个小写字母,则将其循环变为其后的第5个字母输出,如a变为f输出,z变为e输出。

#include”stdio.h”

{

charch;

ch=getchar();

if(ch>

=‘a’&

=‘u’)【ch+=5】;

elseif(ch>

=‘v’&

=‘z’)【ch=‘a’+ch-’v’】;

putchar(ch);

51.若程序运行时输入35/<

回车>

,则以下程序运行结果是【0.60000】。

floatx,y;

doubler;

scanf(“%f%f%c”,&

x,&

y,&

ch);

switch(ch)

{

case‘+’:

r=x+y;

break;

case‘-’:

r=x-y;

case‘*’:

r=x*y;

case‘/’:

r=x/y;

printf(“%f\n”,r);

52.设有以下程序段,则:

intx=0,s=0;

while(!

x!

=0)s+=++x;

printf(“%d”,s);

A)运行程序段后输出0B)运行程序段后输出1

C)程序段中的控制表达式是非法的D)程序段执行无限次

53.下面程序段的运行结果是:

x=y=0;

while(x<

15)y++,x+=++y;

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

A)20,7B)6,12C)20,8D)8,20

解析:

x=0y=1y=2x=2

X=2y=3y=4x=6

X=6y=4y=6x=12

X=12y=7y=8x=20

54.以下程序段能计算1×

…×

10的程序段是:

A)do{i=1;

s=1;

s=s*i;

i++;

}while(i<

=10);

B)do{i=1;

s=0;

C)i=1;

do{

D)i=1;

do{

55.以下不是无限循环的语句是(A)

A)for(y=0,x=1;

x>

++y;

x=i++)i=x;

B)for(;

;

x=i++);

C)while

(1){x++;

D)for(i=0;

i--)sum+=i;

56.以下是死循环的程序段是:

A)for(i=0;

{if(++i%2==0)continue;

if(++i%3==0)break;

B)i=32767;

do{if(i<

0)break;

}while(++i);

C)for(i=1;

)if(++i<

10)continue;

D)i=1;

while(i--);

57.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束输入,请填空。

intn=0,c;

c=getchar();

while(【c!

=‘\n’】)

{if(【c>

=‘0’&

c<

=‘9’】)n++;

58.下面的程序段中循环体运行的次数是【3】

a=10;

b=0;

do{b+=2;

a-=b+2;

}while(a>

=0);

59.下面程序段的运行结果是【**】

x=2;

do{printf(“*”);

x--;

}while(!

x==0);

60.以下程序运行后的输出结果是(B)

main()

{intx[3]={2,3,5},i,s=0;

for(i=1;

i<

=3;

i++)

{s+=x[(i+5)%3];

%d"

s);

A)2615B)2510

C)61510D)63060

61.有如下定义和语句,执行完后,变量p和i的值分别为(C)

inti,p;

for(i=7,p=1;

i>

0;

i-=3)

p=p*i;

A)18,0B)2,-1

C)28,-2D)15,随机

62.以下函数的功能是(C)

intfindmax(inta,intb)

intc;

for(c=a;

c--)

if(a%c==0&

b%c==0)break;

returnc;

}

分析:

for循环里没有结束条件,只有break可以结束循环。

If为真才能够执行break语句。

两侧都必须为真才可以IF为真。

也就是ab除c都可以整除才能值为0,0==0,为1.

c为最大公约数。

想一想这个求的是什么

for(c=a;

c++)

if(c%a==0&

a%b==0)break;

最小公倍数。

A)求a,b较大者

B)求a,b较小者

C)求a,b的最大公约数

D)求a,b的最小公倍数

63.若有定义intaa[10];

则对数组aa元素的正确引用是:

A)aa[10]B)aa[3,5]C)aa(5)D)a[10-10]

64.以下能对一维数组a进行初始化的语句是:

A)inta[10]=(0,0,0,0);

B)inta[10]={};

C)inta[]={0};

D)inta[10]={10*1};

65.以下对二维数组正确的定义是:

A)inta[3][];

B)floata(3,4);

C)doublea[1][4];

D)floata(3)(4);

66.若有定义:

inta[3][4];

则对数组元素正确的引用是:

A)a[2][4]B)a[1,3]C)a[1+1][0]D)a

(2)

(1)

67.以下能对二维数组初始化的语句是:

(BD)

A)inta[2][]={{1,0,1},{5,2,3}};

B)inta[][3]={{1,2,3},{5,2,3}};

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

D)inta[][3]={{1,0,1},{},{5,2,3}};

68.若有定义:

doublex[3][5];

则x数组中,行下标的下界是【0】,列下标的上界是【4】。

69.若有定义:

inta[3][4]={{1,2},{0},{4,6,8,10}};

则a[1][2]的值是【0】,a[2][1]的值是【6】。

70.以下程序以每行4个数据的形式输出a数组元素,请填空。

#defineN20

{inta[N],i;

for(i=0;

i<

N;

i++)scanf(“%d”,【&

a[i]】);

i++)

{if(【i%4==0】)【printf(“\n”);

printf(“%3d”,a[i]);

71.以下程序运行后的输出结果是(C)

{

intx[3][3]={{1,2,3},{11,12,13},{21,22,23}};

inti,j;

for(i=0,j=3;

3;

i++,j--)

x[2-i][j-1]);

A)11121B)31323

C)23122D)11223

72.设有定义语句:

chara[【】]=”ABCD”;

,如果程序中有语句

strcat(a,”edfg”);

那么,在【】中所填写的数字应当是(B)

A)大于等于11B)至少12C)11D)可以不填数字

strcat把后面字符串添加到前面字符串的结尾处(覆盖前面字符串结尾处的'

\0'

73.凡是函数中为指明存储类别的局部变量,其隐含的存储类别都是(A)。

A)自动(auto)B)静态(static)

C)外部(extern)D)寄存器(register)

74.以下不正确的说法是(D)。

A)不同函数中可以使用相同名称的变量

B)形式参数是局部变量

C)在函数内定义的变量值在本函数范围内有效

D)在函数内的复合语句中定义的变量在函数内有效

75.若用一维数组名作为函数的实参,则以下正确的说法是(C)。

A)必须在主函数中说明此数组的大小

B)实参的数组类型与形参数组类型可以不匹配

C)在被调函数中,不需要考虑形参数组的大小

D)实参数组名必须与形参数组名一致。

76.若用数组名作为函数调用的实参,传给形参的是(A)。

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

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

77.以下程序的运行结果是()。

{inta=2,i;

i++)printf(“%4d”,f(a));

f(inta)

{intb=0;

staticintc=3;

b++;

c++;

returna+b+c;

A)777B)71013

B)7911D)789

78.在C语言中,一般函数由两部分组成,它们是【函数头】和【函数体】。

79.下面add函数的功能是返回两个数的和,函数中错误的部分是【void】,改正后应为【float】。

80.voidadd(floata,floatb)

{floatc;

c=a+b;

下面求xy的pow函数中的空应当如何填?

intpow(intx,inty)

{intj;

for(【j=1】;

【y>

0】;

【y--】)j=j*x;

returnj;

81.执行以下程序后,a的值为【①C】,b的值为【②C】。

{inta,b,k=4,m=6,*p1=&

k,*p2=&

m;

a=p1==&

b=(-*p1)/(*p2)+7;

a=%d\n"

a);

b=%d\n"

b);

【①】A)-1B)1C)0D)4

【②】A)5B)6C)7D)10

82.已有定义:

intk=2;

int*ptr1,*ptr2;

,且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是(B)。

A)k*ptr1+*ptr2B)ptr2=k;

C)ptr1=ptr2;

D)k=*ptr2*(*ptr1);

83.设char*s=“\ta\018bc”;

,则指针s指向的字符串所占的字节数是(D)。

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

如果char*s=“\ta\017bc”就是6

84.以下正确的程序段是(C)。

A)charstr[20];

B)char*p;

scanf(“%s”,&

str);

scanf(“%s”,p);

C)charstr[20];

D)charst

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

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

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

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