江苏大学大一c语言期末复习题汇总.docx
《江苏大学大一c语言期末复习题汇总.docx》由会员分享,可在线阅读,更多相关《江苏大学大一c语言期末复习题汇总.docx(53页珍藏版)》请在冰豆网上搜索。
江苏大学大一c语言期末复习题汇总
选
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
下列字符序列中,不可用作C语言标识符的是()。
A.abcl23B.C._123_
请选出可用作C语言用户标识符的一组箱识符()。
A.void
define
B.a3_b3
123
WORDIF
不属于C语言关键字的是()o
C.Foi
-abc
Case
A.intB.break
以下不能定义为用户标示符的是
A.scantB.Void
C语言程序的基本单位是()o
A.程序行B.语句
以下说法中正确的是()o
C・while
)o
C._3com_
c.函数
D._ok
D.2a
DO
sizeof
D・character
D.int
D.字符
A.C语言程序总是从第一个定义的函数开始执行
B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分以下选项中,合法的用户标识符是()o
A.longB・_2abcC・3dmaxD.
己知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量f\101z是()o
A.字符AB.字符aC.字符cD.非法的常量以下选项中,正确的字符常量是()。
A.〃F〃B.'\\"C.WD.''
下列变量定义中合法的是
A.short_a=;B・doubleb=l+;
C-longdo=OxfdaL;D.float2_and=l-e-3;
为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。
A.缩排位置相同的讦
B.在其之前未配对的讦
C.在其之前未配对的最近的if
D.同一行上的if
下列运算符中优先级最高的是()。
A.
=
判断char型变量s是否为小写字母的正确表达式是()。
A.'3r<=S<=zZz
B.(s>=zar)&(s<=zz‘)
14.己知x=45,y=za\z=O;则表达式(x>二z&&yy)的值是()。
A.0
B.语法错
C.1
-1
x<0
D.“假”
15.有一函数:
y=<
0
A=0
以下程序段中不能根据x值正确计算出y值的
1
x>0
是()o
A.if(x>O)y=l;
elseif(x==0)y=0;
elsey=
B.y=o;
if(x>0)y=l;
elseif(x<0)y=-1;
c.y=o;
if(x>=0)
if(x>0)y=l;
elsey=-1;
D.if(x>=0)
if(x>0)y=l;
elsey=0;
elsey=-1;
16.己知inta=l,b=2,c=3;以下语句执行后a,b,c的值是()。
if(a>b)
c=a;a=b;b=c;
B・a=2zb=3/c=3
D•a=2,b=3zc=2
A•a=lzb=2,c=3
C.3=乙b=3zc=l
17.以下程序的运行结果是()。
#include〃“
main()
{inta=l;
if(a++>l)printf(〃%d\n",a);
elseprintf(/,%d\n,,za--);
}
D.3
A.0B.1C.2
18.执行以下程序段后,变量x,y,z的值分别为()。
inta=l,b=O,x,y,z;
x=(-a==b++)?
-a:
++b;
y=a++;
z=b;
B・x=-l,y=-l,z=1
D.x=-l,y=2,z=1
A・x=O,y=O,z=O
C.x=O,y=l,z=O
19.以下程序的输出结果是()。
#include“〃
main()
{
inta=5,b=4,c=6,d;printf(/,%d\n/,,d=a>b?
a>c?
a:
c:
b);
}
A.5B・4C.6
20.执行下列程序,输入为3的数出结果是()。
#include“〃
main()
{
intk;
scanf(〃%d〃,&k);
switch(k)
{case1:
printf(〃%d\n〃,k++);
case2:
p「intf(〃%d\n",k++);
case3:
printf("%d\n",k++);
case4:
printf("%d\n",k++);
break;
default:
printf(〃Full!
\n〃);
}
}
A.3B.4C.3
5
21.有如下程序,写出该执行结果()。
#include"”
main()
{
floatx=zy;
if(xelseif(xelsey=;
printf(〃%f\n〃,y);
}
A.B.C.D.
22.运行以下程序后,如从键盘上输入china#,则输出为()。
#include“〃
main()
{
intvl=0,v2=0;
charch;
while((ch=getchar())!
=,#,)
switch(ch)
D.不确定
D.4
4
{caseraz:
case'h‘:
default:
vl++;
case9or:
v2++;
}
printf(,,%d,%d\n,,/vl,v2);
}
A.2,0B.5,0C.5,5
23.有以下程序,程序运行后的输出结果是()。
#include〃“
main()
{
inta=15,b=21,m=0;
switch(a%3)
{case0:
m++;break;
case1:
m++;
switch(b%2)
{default:
m++;
case0:
m++;break;
}
}
printf(,,%d\n,,,m);
}
A.1B.2C.3
24.在下列选项中,没有构成死循环的程序段是()。
i=100;
while
(1)
{
i=i%100+l;
if(i>100)break:
}
B.for(;;);
k=1000:
do{++k;}while(k>=10000):
s=36;
while(s);
一s;
25.下面程序的运行结果为()o
main()
{intn;
for(n=l;n<=10;n++)
{if(n%3==0)continue;
printf「%d”,n);
D・2,5
D.4
}
26.在以下给出的表达式中’与do・while(E)语句中的(E)不等价的表达式是()。
A.(!
E==O)B.(E>0||E<0)C.(E==O)D.(E!
=O)
27.下列程序的输出是()o
#includeo
main()
{inti;charc;
for(i=0;i<=5;i++)
{c=getchar();putchar(c);
}
}程序执行时从第一列开始输入以下数据,代表换行符。
u
w
xsta
xs
xsta
28.在C语言中,为了结束while语句构成的循环,while后一对圆括号中表达式的值应该为()o
D.非0
29.在C语言中,为了结束由do-while语句构成的循环,while后一对圆括号中表达式的值应为()。
D.非0
30.下列程序的输出为()。
#includeo
main()
{inti=0,j=0,a=6;
if((++i>0)||(++j>0))a++;
printf(,,i=%d,j=%d,a=%d\n,,/i,j,a);
}
=0/j=0?
a=6=l/j=l/a=7=l/j=0,a=7=0zj=lza=7
31.下列程序段的输出结果为()o
main()
{intx=3;
do{printf「%3cT,x=2);}
while(!
(--x));}
D.死循环
0-2
32.以下程序运行后,输出结果是()omain()
{
intn[5]={0,0,0},i,k=2;
for(i=0;iprintf("%d\n",n[k]);
}
A.不确定的值B.2
33.以下程序运行后,输出结果是()。
main()
C.1
D.0
inta[10],al[]={1,3,6,9,10},a2[]={2,4,7,8,15},i=0,j=0,k;
for(k=0;k<4;k++)if(al[i]a[k]二al[i++];a[k]=a2[j++];
for(k=0;k<4;k++)}
A.1234
B.1324
C.2413
D.4321
34.以下程序运行后输出结果是()o
main()
{
intn[3],i,j,k;
for(i=0;i<3;i++)
n[i]二0;
k=2;
for(i=0;ifor(j=O;jn[j]=n[i]+l;
printf("%d\n",n[l]);}
A.
D.3
2B.1C.0
35.若有以下的定义:
intt[5][4];能正确引用t数组的表达式是()。
A.t[2][4]B.t[5][0]C.t[0][0]D.t[0,0]
36.下述对C语言字符数组的描述中错误的是()。
A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
37.下述对C语言字符数组的描述中正确的是()。
A.任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间
B.—维数组的元素在引用时其下标大小没有限制
C.任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间
D.一维数组的第一个元素是其下标为1的元素
38.下列语句中,不正确的是()o
A.staticchara[2]={l,2};B.staticchara[2]={T,
'2}
C.staticchara[2]={i,'2','3'};D.staticchara[2]={'1'};
39.设有staticcharstr[]="Beijing";
则执行printf(,,%d\n,/,strlen(strcpy(str,"China")));后的输出结果为()o
A.5B.7C.12D.14
40.以下说法中正确的是()o
A.C语言程序总是从第一个的函数开始执行
B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
41.一个函数返回值的类型是由()决定的。
A.return语句中表达式的类型
B.在调用函数时临时指定
C.定义函数时指定的函数类型
D.调用该函数的主调函数的类型
42.在C语言中,形参的缺省存储类是()。
A.autoB.registerC.static
43.24.有如下函数调用语句
func(reel,rec2+rec3,(rec4,rec5));
该函数调用语句中,含有的实参个数是()。
A.3B.4C.5
44.以下函数值的类型是()o
fun(floatx)
{
floaty;
y=3*x~4;
returny;
}
A.intB.不确定C.void
45.以下程序的输出结果是()o
f(intb[],intm,intn)
{
inti,s=0;
for(i=m;ireturns;
}
main()
{
intx,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}
D.extern
D.有语法错
D.float
D.15
A-无确定值B.a的地址C.512
D.511
A.10B.18C・846.若定义:
inta=511,*b=&a;,则printf(n%d\nn,*b);的输出结果为:
47.变量的指针,其含义是指该变量的()。
A.值B.地址C.名D.一个标志
48.若己定义inta=5;下面对
(1)、
(2)两个语句的正确解释是()。
(1)int*p=&a;
(2)*p=a;
A.语句
(1)和
(2)中的邙含义相同,都表示给指针变量p赋值。
B.
(1)和
(2)语句的执行结果,都是把变量a的地址值赋给指针变量po
C.
(1)在对p进行说明的同时进行初始化,使p指向a;
(2)变量a的值赋给指针变量p。
D.
(1)在对p进行说明的同时进行初始化,使p指向“
(2)将变量a的值赋予*卩。
49.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是()。
#inelude<>
main()
{
int*p,*q,a,b;
P=&a;
printf("inputa:
n);
scanf(,,%d,,/*p);
•••
}
A.*p表示的是指针变量p的地址
B.*p表示的是变量a的值,而不是变量a的地址
C.S表示的是指针变量p的值
D.*p只能用來说明p是一个指针变量
50.以下不能正确进行字符串赋初值的语句是()。
A.charstr[5]="good!
";
B.char*str="good!
n;
C.charstr[]=ngood!
n;
D.charstr[5]={'g','o'/o*,'d'};
51.若有说明语句:
chars[]=nitisaexample."z*t=nitisaexample.";则以下不正确的
叙述()。
A.s表示的是第一个字符i的地址,s+1表示的是第二个字符t的地址
B.t指向另外的字符串时,字符串的长度不受限制
C.t变量中存放的地址值可以改变
D.s中只能存放16个字符
52.下列程序的输出结果是()。
#include””
main()
inta[]={l,2,3,4,5,67,8,9,0},*^
P=a;
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
printf(H%d\n”,*p+9);
A.0B.1
以下不是C语言的特点的是()o
A.语言简洁紧凑
B.能够编制出功能复杂的程序
c.C语言可以直接对硬件操作
D.C语言移植性好
正确的C语言标识符是()。
A._buy_2B.2_buy
下列符号中,不属于转义季符的是
A.\\B.\0xAA
是C语言提供的合法关键字的是(
A.FloatB.signed
一个C程序是由()。
A.一个主程序和若干子程序组成
E.一个或多个函数组成
B.若干过程组成
C.若干子程序组成下列说法中,错误的是()。
c.
10
C・?
_buy
D.buy?
()o
c.\t
D.\0
)o
C・integer
D.Char
D.9
A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行
符号
B.每个函数都有一个函数头和一个函数体,主函数也不例外
C.主函数只能调用用户函数或系统函数,用户函数可以相互调用
D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数C编译程序是()。
A.C程序的机器语言版本
B.—组机器语言指令
C.将C源程序编译成目标程序
D.由制造厂家提供的一套应用软件
以下选项中,合法的实型常数是()。
A.B.E-3C.2E0D・
以下选项中,合法转义字符的选项是()o
A.,\\’B.z\018zC.zxabzD.z\abcz
以下选项中可作为C语言合法整数的是
A.10110BB.0386C.OXffaD.x2a2
与数学式子磊对应的c语言表达式是(
A.9*xAn/(2*x-l)
C.9*pow(x/n)*(l/(2*x-l))
B.9*x**n/(2*x-l)
D.9*pow(n,x)/(2*x-l)
设a=5/b=6/c=7zd=8,m=2/n=2/则执|f(m=a>b)&&(n=c>d)后n的值为()。
A.1B.2C-3D・4
65.逻辑运算符两侧运算对象的数据类型()。
A.只能是0或1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.可以是任何类型的数据
66.能正确表示“当X的取值在[-58,-40]利40,58]范围内为真,否则为假”的表达式是
()o
A.(x>=-58)&&(x<=-40)&&(x>=40)&&(x<=58)
B.(x>=-58)||(x<=-40)||(x>=40)11(x<=58)
C.(x>=-58)&&(x<=-40)11(x>=40)&&(x<=58)
D.(x>=-58)||(x<=-40)&&(x>=40)11(x<=58)
67.若希望当x的值为奇数时,表达式的值为“真”,x的值为偶数时,表达式的值为"假”。
则以下不能满足要求的表达式是()。
A.x%2==lB・!
(x%2==0)
C.!
(x%2)D・x%2
6&指出下列程序段所表示的逻辑关系是()。
if(a
{if(c==d)
x=10;
}
else
x=-10;
「10a
A・X=s,戸
-10a>b^cd
J10aX—\
B[-10a>b
10a
C.x=<.戸
-10avb且chd
10a<=d
D・x=<
-10cHd
69.请阅读以下程序:
该程序()。
#include"stdio.h〃
main()
{intx=-10?
y=5,z=0;
if(x=y+z)printf(,,***\n,/);
elseprintf("$$$\n");
}
A.有语法错不能通过编译
B.可以通过编译但不能通过连接
C.输出***
D.输出$$$
70.当a“,b=2,c=4,d=3时,执行完下面一段程序后x的值是()。
if(a
讦(celse
if(aelsex=3;
elsex=4;
elsex=5;
A.1B.2
71.若a、b、c^d、w均为int类型变量,
72.
a=l;b=2;c=3;d=4;
w=
(a
?
a:
b;
w=
(w?
W:
c;
w=
(w?
w:
d;
A-
1
B.2
若a、b、cl、c2、x、y均为整型变量,A・switch(a+b);
{case1:
y=a+b;break;
case0:
y=a-b;break;
}
C.switch(a*a+b*b)
{case3:
case1:
y=a+b;break;
case3:
y=b-a;break;
}
73.以下程序的运行结果是()。
#include“〃
main()
{
inta=2,b=-l,c=2;
if(a
讦(b<0)
c=0;
elseC++;
printf(〃%d\n〃,c);
}
A・0B・1
74.有以下程序,若输入为字符s,
#include〃“
C.3D.4
则执行下面语句后的w值是()。
C.3D.4
正确的switch语句是()。
B.switcha
{casecl:
y=a-b;break;casec2:
x=a*d;break;
default:
x=a+b;
}
D.switch(a-b)
{default:
y=a*b;break;
case3:
x=a+b;break;
case10:
case11:
y=a-b;break}
C.2D.3
则程序运行结果为()o
main()
charch;ch=getchar();
switch(ch)
{case'az:
printf(,,a=%c\n",ch);default:
printf(〃end!
\n〃);case,b':
printf(〃b=%c\n〃,ch);case'c‘:
printffz,c=%c\n〃,ch);
}
}
A.end!
B.end!
b=s
c=s
75.当执行以下程序段时。
x=-l:
do
{x=x*x;}while(lx);
A.循环体将执行一次
C.循环体将执行无数多次
76.列程序运行的情况是()。
main()
{inti=l,sum=0;while(i<10)sum=sum+l;i++;printf("i=%d,sum=%d",i,sum);
}
=10,sum=9=9,sum=9
77.标有/**/的语句的执行次数是(intyj;
for(i=0;i<20;i++){if(i%2==0)continue;
y+=i;/*7
}
c.有语法错误D.a=s
end!
B.循环体将执行两次
D.系统将提示有语法错误
=2,sum=lD.运行出现错误
)o
78.执行下面语句的输出为()□
inti=-l;
if(i<=O)printf(w****\n");
elseprintf("%%%%\n");
A.****B.%%%%C.%%%%cD.有错,执行不正确
79.下列程序的输出为()。
#includeo
main()
{inti,j,k=0,m=0;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)k++;k-=j;}