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

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

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

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

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

专升本C语言联大复习题答案

2021年C语言升本复习题〔重要〕

1.以下四个选项中哪个不是关键字〔C〕

A)whileB)switchC)ReturnD)goto

2.以下四个选项中哪个是关键字〔D〕

A)_whileB)switch1C)ReturnD)goto

3.以下四个选项中哪个是正确的标识符〔C〕

A)whileB)switchC)ReturnD)goto

4.以下四个选项中哪个不是正确的标识符〔A〕

A)1whileB)_switchC)ReturnD)_2goto

5.以下四组选项中,均不是C语言关键字的是:

〔A〕

A)defineB)getcC)includeD)while

IFcharscanfgo

typeprintfcasepow

6.下面四组选项中,均是不合法的用户标识符的选项是:

(都不是合法的标识符)〔C〕

A)AB)floatC)b-aD)_123

P_01a0gototemp

do_AintINT

7.以下说法正确的选项是:

〔D〕

A)C程序由define和主函数组成

B)C程序由include和主函数组成

C)C程序只由主函数组成

D)C程序由主函数和其他函数组成

8.以下说法错误的选项是:

〔B〕

A)C程序可以包含多个函数。

B)C程序由include命令和主函数组成。

C)任何C程序都有一个主函数。

D)C程序由主函数和其他函数组成。

9.C源程序的根本单位是【函数】。

10.一个C源程序至少包含一个【主函数】。

11.C源程序的注释由【/**/】和【//】构成。

12.构造化程序设计主要由【顺序语句】、【分支语句】和【循环语句】语句构造构成。

13.下面不正确的字符串常量是〔A〕

A)’abc’B)〞12’12〞C)“0〞D)“〞

14.下面四组选项中,均是正确的八进制或十六进制数的选项是:

〔C〕

A)-10B)0abcdC)0010D)0a12

0x8f-017-0x11-0x123

-0110xc0xf1-0xa

15.下面四组选项中,均是合法转义字符的选项是:

〔A〕

A)‘\’’B)‘\’C)‘\018’D)‘\\0’

‘\\’‘\017’‘\f’‘\101’

‘\n’‘\“’‘xab’‘x1f’

16.下面四组选项中,均是合法整型常量的选项是:

〔A〕

A)160B)-0xcdfC)-01D)-0x48a

-0xffff01a986,0122e5

0110xe06680x

17.在C语言中,根本数据类型除了单精度和双精度类型外,还有【int】【long】【char】。

18.在C语言中,float型变量在内存占【4】字节,double型变量在内存占【8】字节。

19.假设有代数式

那么不正确的表达式是:

〔C〕

A)a/b/c*e*3B)3*a*e/b/c

C)3*a*e/b*cD)a*e/c/b*3

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

〔B〕

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语言中,要求运算数必须是整型的运算符是:

〔D〕

A)/B)>C)!

=D)%

22.假设有代数式

,那么正确的表达式是:

(A)

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的表达式是:

(D)

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的类型是:

(D)

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列开场输入数据时,正确的输入方式是_______.(注意:

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

inta1,a2;charc1,c2;

scanf(“%d%c%d%c〞,&a1,&c1,&a2,&c2);〔C〕

A)10A└┘20BB)10└┘A└┘20└┘B

C)10A20BD)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

main()

{inta=252;

printf("a=%oa=%#o\n",a,a);

printf("a=%xa=%#x\n",a,a);

}

答案:

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%5==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]为真,否那么为假〞的表达式为:

〔C〕

A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)

B)(x>=1)||(x<=10)||(x>=200)||(x<=210)

C)(x>=1)&&(x<=10)||(x>=200)&&(x<=210)

D)(x>=1)||(x<=10)&&(x>=200)||(x<=210)

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

(C)

A)‘A’<=ch<=‘Z’B)(ch>=‘A’)&(ch<=‘Z’)

C)(ch>=‘A’)&&(ch<=‘Z’)D)(ch>=‘A’)AND(ch<=‘Z’)

43.x=43,ch=‘A’,y=0;那么表达式(x>=y&&ch<‘B’&&!

y)的值是:

(C)

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

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

w:

y

y:

z的值是;〔D〕

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

47.A=7.5,B=2,C=3.6,表达式A>B&&C>A||A

C>B的值是【0】。

48.条件“22&&x<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〞

main()

{

charch;

ch=getchar();

if(ch>=‘a’&&ch<=‘u’)【ch+=5】;

elseif(ch>=‘v’&&ch<=‘z’)【ch=‘a’+ch-’v’】;

putchar(ch);

}

51.假设程序运行时输入35/<回车>,那么以下程序运行结果是【0.60000】。

main()

{

floatx,y;

charch;

doubler;

scanf(“%f%f%c〞,&x,&y,&ch);

switch(ch)

{

case‘+’:

r=x+y;break;

case‘-’:

r=x-y;break;

case‘*’:

r=x*y;break;

case‘/’:

r=x/y;break;

}

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

}

52.设有以下程序段,那么:

〔B〕

intx=0,s=0;

while(!

x!

=0)s+=++x;

printf(“%d〞,s);

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

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

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

〔D〕

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×2×3×…×10的程序段是:

〔C〕

A)do{i=1;s=1;

s=s*i;i++;

}while(i<=10);

B)do{i=1;s=0;

s=s*i;i++;

}while(i<=10);

C)i=1;s=1;

do{

s=s*i;i++;

}while(i<=10);

D)i=1;s=0;

do{

s=s*i;i++;

}while(i<=10);

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.以下是死循环的程序段是:

〔C〕

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++;

c=getchar();

}

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];

printf("%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元素的正确引用是:

〔D〕

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

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

〔D〕

A)inta[10]=(0,0,0,0);B)inta[10]={};

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

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

〔C〕

A)inta[3][];B)floata(3,4);

C)doublea[1][4];D)floata(3)(4);

66.假设有定义:

inta[3][4];,那么对数组元素正确的引用是:

〔C〕

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

main()

{inta[N],i;

for(i=0;i

for(i=0;i

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

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

}

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

main()

{

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

inti,j;

for(i=0,j=3;i<3;i++,j--)

printf("%d",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.以下程序的运行结果是〔〕。

main()

{inta=2,i;

for(i=0;i<3;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;returnc;}

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

intpow(intx,inty)

{intj;

for(【j=1】;【y>0】;【y--】)j=j*x;

returnj;}

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

main()

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

a=p1==&m;

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

printf("a=%d\n",a);

printf("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)char

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

当前位置:首页 > 经管营销 > 经济市场

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

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