南昌工程学院c语言考试试题Word文档下载推荐.docx
《南昌工程学院c语言考试试题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《南昌工程学院c语言考试试题Word文档下载推荐.docx(123页珍藏版)》请在冰豆网上搜索。
2
12.有如下嵌套的if语句
if(a<
b)
c)k=a;
elsek=c;
else
if(b<
c)k=b;
以下选项中与上述if语句等价的语句是()。
k=(a<
b)?
((a<
c)?
a:
c):
((b<
b:
c)
13以下是if语句的基本形式:
if(表达式)语句
其中"
表达式"
()。
可以是任意合法的表达式
14.若运行以下程序段时,从键盘输入Adescriptor<
CR>
(<
表示回车),则下面程序段的运行结果是()
charc;
intv0=0,v1=0,v2=0;
do{switch(c=getchar())
{case'
:
case'
A'
case'
e'
E'
i'
I'
o'
O'
u'
U'
v1+=1;
default:
v2+=1;
v0+=1;
}while(c!
='
\n'
v0=%d,v1=%d,v2=%d\n"
v0,v1,v2);
v0=12,v1=4,v2=12
15.以下程序的运行结果是( )。
{intm[][3]={1,4,7,2,5,8,3,6,9};
inti,j,k=2;
i++)
%d"
m[k][i]);
369
16.以下关于逻辑运算符两侧运算对象的叙述中正确的是()。
可是任意合法的表达式
17.以下程序的运行结果是( )。
voidfun1(char*p)
{char*q;
q=p;
while(*q!
='
\0'
)
{(*q)++;
q++;
main(){
chara[]={"
Program"
},*p;
p=&
a[3];
fun1(p);
%s\n"
a);
Prohsbn
18.以下程序段运行后的输出结果是()
intk=0,i,m;
for(i=5;
=15;
i+=5)
{m=i;
while(m%5==0)
{k++;
m=m/5;
k);
3
19.有以下程序,程序的运行结果是()。
main(){intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;
break;
case1:
b++;
case2:
case3:
a=%d,b=%d\n"
a,b);
答案:
a=2,b=1
20.有以下程序段
intk=1;
while(k=0)k++;
while循环执行的次数是()。
一次也不执行
21.设变量已正确定义,则以下能正确计算f=n!
的程序段是()。
f=1;
for(i=n;
i>
=2;
i--)f*=i;
22.以下叙述中正确的是()
只要是用户定义的标识符,都有一个有效的作用域
23.以下程序段:
floata,b;
scanf("
%f"
&
a);
0.0)b=0.0;
elseif((a<
0.5)&
&
(a!
=2.0))b=1.0/(a+2.0);
elseif(a<
10.0)b=1.0/a;
elseb=10.0;
%f\n"
b);
若运行时输入2.0<
则输出结果是()
0.500000
24.以下程序的结果是()。
main(){intn;
for(n=1;
;
)
{if(++n%2==0)continue;
if(++n%3==0)break;
n=%d"
n);
n=6
25.以下程序的运行结果是( )。
chararr[2][4];
strcpy(arr[0],"
you"
strcpy(arr[1],"
me"
arr[0][3]='
'
;
arr);
you&
me
26.有以下程的运行结果是()
structty
{intx;
inty;
intz;
}s[3]={1,2,3,4,5,6,7,8,9};
{printf("
%d,"
++s[0].y);
s[1].y++);
s[2].z++);
3,5,9
在C语言中,每个语句和数据定义是用( )结束。
分号
以下能正确定义一维数组的选项是()
inta['
];
以下关于C语言的叙述中正确的是( )。
C语言中的注释不可以夹在变量名或关键字的中间
以下叙述中正确的是()
调用函数时,函数名必须与被调用的函数名完全一致
若有以下程序段
FILE*fp;
inti,a[6]={1,2,3,4,5,6},k;
fp=fopen("
data.dat"
"
w+b"
6;
{fseek(fp,0L,0);
fwrite(&
a[5-i],sizeof(int),1,fp);
rewind(fp);
fread(&
k,sizeof(int),1,fp);
fclose(fp);
则程序段的输出结果是()
1
有以下程序
#defineSUB(X,Y)(X+1)*Y
main()
{
inta=3,b=4;
printf("
SUB(a++,b++));
}
程序运行后的输出结果是()。
16
以下程序段的运行结果是()
voidswap(intb[])
{intt;
t=b[0];
b[0]=b[1];
b[1]=t;
main()
{inta[2]={7,8};
swap(a);
%d%d"
a[0],a[1]);
87
按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。
连接符
以下程序的输出结果是()。
fun(intx,inty,intz)
{z=x*x+y*y;
{inta=31;
fun(5,2,a);
31
有如下说明
structSTD
{intn;
doublex;
};
则以下选项中,能正确定义结构体数组并赋初值的语句是()
structSTDtt[2]={{1,'
62.0},{2,'
B'
75.0}};
以下选项中,当x为大于1的奇数时,值为0的表达式()。
x%2==0
有以下程序段:
()
inta=1,b=2,c=3;
if(a>
c)printf("
++c);
elseprintf("
++b);
a++);
以下程序段的输出结果()
intx=8,y=9,z;
if(x++>
8)
z=++x;
z);
若运行以下程序段时,从键盘输入Adescriptor<
以下程序的运行结果是( )。
{inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;
for(i=0;
for(j=0;
j<
j++)
{a[i][j]=i+j;
if(i=j)
sum=sum+a[i][j];
sum=%d"
sum=26
若a是数值类型,则逻辑表达式(a==1)||(a!
=1)的值是()。
1有以下程序段:
intx[]={10,20,30};
int*px=x;
++*px);
*px);
px=x;
(*px)++);
*px++);
px=x;
*++px);
程序运行后的输出结果是()
11,11,11,12,12,20,20,20
下面程序段的运行结果是()
inti,j,a=0;
2;
{for(j=0;
4;
{if(j%2)break;
a++;
4
以下程序结果是()。
{intx=1,a=0,b=0;
b++;
case1:
case2:
%d,%d"
2,1
设有程序段
intk=20;
while(k=0)k=k+1;
则下面描述中正确的是()
循环体语句一次也不执行
以下不是无限循环的语句为()
for(y=0,x=1;
x>
++y;
x=i++)i=x;
以下选项中叙述错误的是()
C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值
若有定义语句chars[10]="
1234567\0\0"
,则strlen(s)的值是()。
7
有以下定义,结构成员的值是"
yeming"
的元素是()
structstudent
{intnum;
charname[20];
charsex;
charaddr[20];
}st1[3]={{1001,"
liming"
'
M'
beijing"
},
{1002,"
huming"
N'
hebei"
},
jiangxi"
}};
st1[2].name
以下关于结构化程序设计的叙述中正确的是( )。
在C语言中,程序的模块化是利用函数实现的
在一个C程序中()。
以下关于return语句的叙述中正确的是()
一个自定义函数中可以根据不同情况设置多条return语句
有以下程序段
charstr[10];
myfile.dat"
w"
fputs("
abc"
fp);
a+"
fprintf(fp,"
28);
fscanf(fp,"
%s"
str);
puts(str);
abc28
若有以下程序
#defineS(x)x*x
#defineT(x)S(x)*S(x)
intk=5,j=2;
%d,%d\n"
S(k+j),T(k+j));
则程序的输出结果是()。
17,37
以下程序段输出结果是()。
inti,a[10]={0};
i++)a[2*i]=2*i;
%d%d%d%d"
a[1],a[2],a[3],a[4]);
0204
以下函数值的类型是()。
fun(floatx)
{floaty;
若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是______。
2.0
以下程序段中,与语句:
k=a>
b?
(b>
c?
1:
0):
0;
功能相同的是()。
if((a>
B)&
C))k=1;
else k=0;
以下能正确计算10!
的程序段是()。
i=1;
s=1;
do{s=s*i;
i++;
}while(i<
=10);
以下程序的运行结果是( )。
{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;
i++)
for(j=0;
=i;
j++)s+=a[i][j];
s);
18
设intx=1,y=1;
表达式(!
x||y--)的值是()。
{inta=25,*p;
p=&
a;
++*p);
26
以下程序段运行后的输出结果是()
inti,s=1,m=0;
for(i=1;
{s=s*11%1000;
do{m+=s%10;
s=s/10;
}while(s);
m=%d\n"
m);
以下选项中与
if(a==1)a=b;
elsea++;
语句不同的switch语句是()
switch(a==1)
{case0:
a=b;
break;
inta=1,b=2,c=2,t;
while(a<
b<
c){t=a;
b=t;
c--;
%d,%d,%d"
a,b,c);
1,2,0
有以下程序运行后的输出结果是()。
inta=4;
intf(intn)
{intt=0;
staticinta=5;
if(n%2){inta=6;
t+=a++;
else{inta=7;
t+=a++;
returnt+a++;
{ints=a,i=0;
for(;
i++)s+=f(i);
printf("
28
若变量已正确定义,以下程序段运行结果是()。
inta=3,b=5,c=7;
b)a=b;
c=a;
if(c!
=a)c=b;
%d,%d,%d\n"
3,5,3
下列程序输出的结果是()
structabc
{inta,b,c;
structabcs[2]={{4,5,6},{7,8,9}};
t=s[0].a+s[1].b;
t);
12
三
以下叙述中正确的是( )。
我们所写的每条C语句,经过编译最终将转换成二进制的机器指令
以下能正确定义一维数组的选项是()。
intnum[5*2];
以上三种说法都不完整。
以下叙述中错误的是()
用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
在下列选项中不会引起二义性的宏定义是()。
#definef(a)((a)*(a))
voidswap1(intc[])
t=c[0];
c[0]=c[1];
c[1]=t;
voidswap2(intc0,intc1)
{intt;
t=c0;
c0=c1;
c1=t;
main()
{inta[2]={3,5},b[2]={3,5};
swap1(a);
swap2(b[0],b[1]);
%d%d%d%d\n"
a[0],a[1],b[0],b[1]);
5335
以下不正确的标识符是()
1TYP
y=3*x-4;
returny;
设有以下结构体描述不正确的是()
structstu
floaty;
}aa;
aa是用户定义的结构体类型名
有以下程序
inta=1,b=0;
b=a+b);
a=2*b);
程序运行后的输出结果是( )。
1,2
以下程序段的输出结果是()
intx=1,y=3,z=2;
if(x>
=y)
z=-1;
if(y<
0)z=0;
inta=0,b=0,c=0,d=0;
if(a=1)b=1;
c=2;
elsed=3;
%d,%d,%d,%d\n"
a,b,c,d);
程序输出()
编译有错
{intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;
for(j=i;
j++)t=t+b[i][b[j][j]];
sizeof(double)是( )。
一个整型表达式
有以下程序段运行后的输出结果是( )。
{inta[10]={1,2,3,4,5,6,7,8,9},*p=a;
p++;
(*++p,*p++));
intn=0,i,j,k;
for(k=1;
k<
k++)
for(j=1;
n++;
n=%d\n"
n=6
有以下程序,程序的运行结果是()。
switch(x)
swit