专升本C语言历年考试题及答案9.docx
《专升本C语言历年考试题及答案9.docx》由会员分享,可在线阅读,更多相关《专升本C语言历年考试题及答案9.docx(84页珍藏版)》请在冰豆网上搜索。
专升本C语言历年考试题及答案9
专升本C语言历年考试题及答案
第一章与第三章练习题
1.一个C程序的执行是从_____。
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序的main函数开始,到本程序文件的最后一个函数结束
D)本程序文件的第一个函数开始,到本程序main函数结束
2.以下叙述正确的是:
A)在C程序中,main函数必须位于程序的最前面
B)C程序的每行中只能写一条语句
C)C语言本身没有输入输出语句
D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
3.以下叙述不正确的是。
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
4.C语言规定:
在一个源程序中,main函数的位置。
A)必须在最开始
B)必须在系统调用的库函数的后面
C)可以任意
D)必须在最后
5.一个C语言程序是由
A)一个主程序和若干子程序组成B)函数组成
C)若干过程组成D)若干子程序组成
6.若x,i,j和k都是int型变量,则执行下面表达式后x的值为
x=(i=4,j=16,k=32)
A)4B)16C)32D)52
7.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:
A)7B)8C)6D)2
8.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符
A)必须为字母B)必须为下划线
C)必须为字母或下划线D)可以是字母,数字和下划线中任一种字符
9.若有代数式3ae/bc,则不正确的C语言表达式是:
A)a/b/c*e*3B)3*a*e/b/c
C)3*a*e/b*cD)a*e/c/b*3
10.以下不正确的叙述是
A)在C程序中,逗号运算符的优先级最低
B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
11.以下正确的叙述是:
A)在C程序中,每行中只能写一条语句
B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C)在C程序中,无论是整数还是实数,都能被准确无误地表示
D)在C程序中,%是只能用于整数运算的运算符
12.以下符合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
13.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为
A)DB)68C)不确定的值D)C
14.在C语言中,要求运算数必须是整型的运算符是。
A)/B)++c)!
=D)%
15.若以下变量均是整型,且num=sum=7;则执行表达式sUM=num++,sUM++,++num后sum的值为
A)7B)8C)9D)10
16.在C语言中,int、char和short种类型数据在内存中所占用的字节数
A)由用户自己定义B)均为2个字节
C)是任意的D)由所用机器的机器字长决定
17.若有说明语句:
charc='\72'则变量c
A)包含1个字符B)包含2个字符
C)包含3个字符D)说明不合法,c的值不确定
18.若有定义:
inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是
A)2.500000B)2.7500OOc)3.500000D)0.000000。
19.sizeof(float)是:
A)一个双精度型表达式B)一个整型表达式
C)一种函数调用D)一个不合法的表达式
20.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为
A)intB)floatC)doubleD)不确定
21.在C语言中,char型数据在内存中的存储形式是:
A)补码B)反码C)原码D)ASCII码
22.表达式18/4*sqrt(4.0)/8值的数据类型为:
A)intB)floatC)doubleD)不确定
23.设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为:
A)0~255B)0~32767C)0~65535D)0~2147483647
24.设有说明:
charw;intx;f1oaty;doublez;则表达式w*x+z一y值的数据类型为:
A)floatB)charC)intD)double
25.若有以下定义,则能使值为3的表达式是:
intk=7,x=12;
A)x%=(k%=5)B)x%=(k一k%5)
C)x%=k-k%5D)(x%=k)一(k%=5)
26.设以下变量均为int类型,则值不等于7的表达式是
A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)
C)(x=6,x+1,y=6,x+y)D)(y=6,y+l,x=y,x+1)
第四、五章复习题
27.putchar函数可以向终端输出一个:
A)整型变量表达式值
B)实型变量值
C)字符串
D)字符或字符型变量值
28.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
如果字符串长度大于5,则输出按:
A)从左起输出该字串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字串,左补空格
D)输出错误信息
29.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
如果字符串长度小于5,则输出按方式。
A)从左起输出该字串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字串,左补空格D)输出错误信息
30.若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是:
P83
A)scanf("%d%lx,%le",&x,&y,&z);
B)scanf("%2d*%d%lf"&x,&y,&z);
C)scanf("%x%*d%o",&x,&y);
D)scanf("%x%o%6.2f",&x,&y,&z);【scanf无精度】
31.已有如下定义和输入语句,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是
inta1,a2;charc1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
A)10A20B(空格有没有都行,10和A之间不能有空格,否则c1为空格)
B)10A20B
C)10A20
D)10A20B。
32.已有定义intx;f1oaty;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345678(回车),则x的值为
A)12345B)123C)45D)345
33.已有定义intx;f1oaty;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345678(回车),则y的值为:
A)无定值B)45.0000C)678.000000D)123.00000
34.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是:
inta1,a2;charc1,c2;
scanf("%d%d",&a1,&a2);
scanf("%c%c",&c1,&c2);
A)1020ABB)1020AB
C)1020ABD)1020AB
35.已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为
main()
{inta;floatf;
printf("\nInputnumber:
");
输入语句
printf("\nf=%f,a=%d\n,f,a);
}
Inputnumber:
4.52
A)scanf("%d,%f",&a,&f);B)scanf("%f,%d",&f,&a)
C)scanf("%d%f",&a,&f);D)scanf("%f%d",&f,&a);
36.根据定义和数据的输入方式,输入语句的正确形式为:
已有定义:
floatfl,f2;
数据的输入方式:
4.52
3.5
A)scanf("%f,%f",&f1,&f2);B)scanf("%f%f",&f1,&f2);
C)scanf("%3.2f%2.1f",&f1,&f);D)scanf("%3.2f%2.1f",&f1,&f2);
37.阅读以下程序,当输入数据的形式为25,13,10正确的输出结果为:
main()
{intx,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("x+y+z=%d\n”,x+y+z);。
}
A)x+y+z=48B)x+y+z=35
C)x+z=35D)不确定值
38.阅读以下程序,若运行结果为如下形式,输入输出语句的正确内容是:
main()
{intx;floaty;printf("enterx,y:
")
输入语句;
输出语句;
}
输入形式enterx,y:
23.4
输出形式x+y=5.40
A)scanf("%d,%f",&x,&y);printf("\nx+y=%4.2f",x+y);
B)scanf("%d%f",&x,&y);printf("\nx+y=%4.2f",x+y);
C)scanf("%d%f",&x,&y);printf("\nx+y=%6.lf",x+y);
D)scanf("%d%3.1f",&x,&y);printf("\nx十y=%4.2f",x+y);
39以下说法正确的是:
A)输入项可以为一实型常量,如scanf("%f",3.5);
B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");
C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);
D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);
40.根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确形式应该为:
main()
{charch1,ch2,ch3;
输入语句
printf("%c%c%c",ch1,ch2,ch3);}
输入形式:
ABC
输出形式:
A
B(空格)
A)scanf("%c%c%c",&ch1,&ch2,&ch3);B)scanf("%c,%c,%c",&ch1,&ch2,&ch3);
C)scanf("%c%c%c",&ch1,&ch2,&ch3);
D)scanf("%c%c",&ch1,&ch2,&ch3);
41.有输入语句:
scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是
A)132(回车)
B)1,3,2(回车)
C)a=1b=3c=2(回车)
D)a=1,b=3,c=2(回车)
42.以下能正确地定义整型变量a,b和c并为其赋初值5的语句是
A)inta=5,b=5,c=5;B)inta,b,c=5;
C)a=5,b=5,c=5;D)a=b=c=5;
43.已知ch是字符型变量,下面不正确的赋值语句是
A)ch='a+b';B)ch='\0';C)ch='7'+'9';D)ch=5+9;
44.若有以下定义,则正确的赋值语句是:
inta,b;floatx;
A)a=1,b=2,B)b++;C)a=b=5D)b=int(x);
45.设x、y均为f1oat型变量,则以下不合法的赋值语句是
A)++x;B)y=(x%2)/10;C)x*=y+8;D)x=y=0;
46.x,y,z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x、y和z的值是:
A)x=10B)x=10C)x=10D)x=10
y=15y=10y=10y=5
z=10z=10z=15z=10
47.逻辑运算符两侧运算对象的数据类型。
A)只能是0或1
B)只能是0或非0正数
C)只能是整型或字符型数据
D)可以是任何类型的数据
48.以下关于运算符优先顺序的描述中正确的是:
A)关系运算符<算术运算符<赋值运算符<逻辑与运算符
B)逻辑运算符<关系运算符<算术运算符<赋值运算符
C)赋值运算符<条件运算符<逻辑与运算符<关系运算符<算术运算符
D)算术运算符<关系运算符<赋值运算符<逻辑与运算符
49.下列运算符中优先级最高的是:
A)
=
50.能正确表示"当x的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是一一一。
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)
51.判断char型变量ch是否为大写字母的正确表达式是一一一。
A)'A'<=ch<='z'B)(ch>='A')&(ch<='z')
C)(ch>='A')&&(ch<='Z')D)('A'<=ch)AND('z'>=ch)
52.设x,y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是
A)'y'&&'y'
B)x<=y
C)x||y+z&&y-z
D)!
((xz||1)
53.已知x=43,ch='A',y=0则表达式(x>=y&&ch<'B'&&!
Y)的值是
A)0B)语法错C)1D)"假"
54.若希望当A的值为奇数时,表达式的值为"真",A的值为偶数表达式的值
为"假"。
则以下不能满足要求的表达式是:
A)A%2==1B)!
(A%2==0)C)!
(A%2)D)A%2
55.设有inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>b)&&(n=c>d)后n的值为(执行m=a>b时,由于m=a>b且为与运算为假,所以不必执行n=c>d,所以m为0,而n为原值。
)
A)1B)2C)3D)4
56.判断char型变量c1是否为小写字母正确表达式为:
A)'a'<=cl<='z'B)(cl>=a)&&(cl<=z)
C)('a'>=cl)||('z'<=cl)D)(c1>='a')&&(cl<='z')
57.以下程序的运行结果是:
#include"stdio.h"
main()
{inta,b,d=241;
a=d/100%9
b=(-1)&&(-1);
printf("%d,%d",a,b);
}
A)6,1B)2,1C)6,0D)2,0
58.执行以下语句后a的值为:
inta,b,c;
a=b=c=1;
++a||++b&&++c
A)错误B)0C)2D)1
59.执行以下语句后b的值为:
inta=5,b=6,w=1,x=2,y=3,z=4;
(a=w>x)&&(b=y>z);
A)6B)0C)1D)4
60.以下不正确的if语句形式是:
A)if(x>y&&x!
=y);
B)if(x==y)x+=y;
C)if(x!
=y)scanf("%d",&x)elsescanf("%d",&y);
D)if(X61.下列运算符中优先级最低的是:
A)?
:
B)&&c)+D)!
=
62.以下if语句语法正确的是一一一。
A)if(x>0)
printf("%f",x)
elseprintf("%f",--x);
B)if(x>0)
{x=x+y;printf("%f",x);}
elseprintf("%f",-x);
C)if(x>0)
{x=x+y;prinrf("%f",x);};
elseprintf("%f",-x);
D)if(x>0)
{x=x+y;printf("%f",x)}
elseprintf("%f",-x);
63.请阅读以下程序:
main()
{inta=5,b=0,c=0;
if(a=b+c)printf("***\n");
elseprintf("$$$\n");
以上程序:
A)有语法错不能通过编译B)可以通过编译但不能通过连接
C)输出***D)输出$$$
64.以下程序的运行结果是:
main()
{intm=5;
if(m++>5)printf("%d\n",m);==printf(“%d\n”,m++)
e1seprintf("%d\n",m--);
}m++=6,printf输出时先输出m的值,然后对m进行自加或自减运算。
A)4B)5C)6D)7
65.当a=1,b=3,c=5,d=4,执行完下面一段程序后x的值是:
if(a
if(celseif(aif(belsex=3;
elsex=6;
elsex=7;
A)18B)2C)3D)6
66.以下程序的输出结果是:
main()
{inta=100,x=10,y=20,okl=5,ok2=0;
if(xif(y!
=10)
if(!
okl)a=1;
elseif(ok2)a=10;
a=-1:
printf("%d\n",a)
}
A)1B)0C)一1D)值不确定
67.以下程序的输出结果是:
main()
{intx=2,y=一1,z=2;
if(xelsez+=1;
printf("%d\n",z);
}
A)3B)2C)1D)0
68.为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句
总是与()配对。
A)缩排位置相同的ifB)其之前最近的if
C)之后最近的ifD)同一行上的if
69.以下不正确的语句为:
A)if(x>y);
B)if(x=y)&&(x!
=0)x+=y;
C)if(x!
=y)scanf("%d",&x);elsescanf("%d",&y);
D)if(x70.请阅读以下程序:
#include
main()
{floata,b
scanf("%f",&a);
if(a<10.0)b=1.0/x;
elseif((a<0.5)&&(a!
=2.0))b=1.0/(a十2.0);
elseif(a<10.0)b=1.0/x;
elseb=10.0;
printf("%f\n",y);
}
若运行时输入2.0(回车),则上面程序的输出结果是:
A)0.000000B)0.500000C)1.000000D)0.250000
71.若有条件表达式(exp)?
a++:
b--,则以下表达式中能完全等价于表
达式(exp)的是:
A)(exp==0)B)(exp!
=0)
C)(exp==1)D)(exp!
=1)
条件表达式究竟执行那一个,取决于exp的值。
exp的值有两种结果true(非0)或false(0)
exp为true,exp!
=0同样为true;
exp为false,exp!
=0也为false。
所以选B。
C有一定的迷惑性,exp为true,可能是2,3等等,不一定是1的
72.若运行时给变量x输入12,则以下程序的运行结果是:
main()
{intx,y;
scanf("%d",&x);
y=x>12?
x+10:
x一12;
printf("%d\n",y);
}
A)0B)22C)120)10
73.以下程序的运行结果是:
main()
{intk=4,a=3,b=2,c=1;
printf("\n%d\n",kk:
c
c:
a);
}
A)4B)3C)2D)1
74.执行以下程序段后、变量a,b,c的值分别是一。
intx=10,y=9;
inta,b,c;
a=(--x(9)==y++(9))?
--x(8):
++y(未执行);
b=x++(8);
c=y(10);
A)a=9,b=9,c=9B)a=8,b=8,c=10
C)a=9,b=10,c=90)a=1,b=11,c=10
75.若w,x,y,z,m均为int型变量,则执行下面语句后的m值是:
w=1;x=2;y=3;z=4;
m=(ww:
x;
m=(mm:
y;
m=(mm:
Z;
A)1B)2C)3D)4
76.若w=1,x=2,y=3,z=4,则条件表达式ww:
yy:
z的值是:
A)4B)3C)20D)1
第六章练习题
77.设有程序段
intk=10;
while(k=0)k=k—1;
则下面描述中正确的是
A)while循环执行10次B)循