南昌工程学院c语言考试试题.docx
《南昌工程学院c语言考试试题.docx》由会员分享,可在线阅读,更多相关《南昌工程学院c语言考试试题.docx(123页珍藏版)》请在冰豆网上搜索。
![南昌工程学院c语言考试试题.docx](https://file1.bdocx.com/fileroot1/2022-11/27/00b85188-748b-4f9c-825e-98708b11b0a6/00b85188-748b-4f9c-825e-98708b11b0a61.gif)
南昌工程学院c语言考试试题
1以下四个程序中,完全正确的是( )。
答案:
#include
main()
{/*programming*/
printf("programming!
\n");}
2:
若以下说明,则数值为4的表达式是()。
inta[12]={1,2,3,4,5,6,7,8,9,10};
charc='a',d,g;
答案:
a['d'-c]
3.在一个C程序中()。
答案:
main函数可以在任何地方出现
4.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()。
答案:
int
5.当调用函数fopen发生错误时,函数的返回值是()。
答案:
0或NULL
6.下面程序的运行结果是()。
#defineADD(x)x+x
main()
{
intm=1,n=2,k=3;
intsum=ADD(m+n)*k;
printf("%d",sum);
}
答案:
10
7.以下程序的运行结果是()。
main()
{inti,k,a[10],p[3];
k=5;
for(i=0;i<10;i++)a[i]=i;
for(i=0;i<3;i++)p[i]=a[i*(i+1)];
for(i=0;i<3;i++)k+=p[i]*2;
printf("%d\n",k);}
答案:
21
8.下列合法的标识符是
答案:
_arry
9.已定义以下函数intfun(int*p){return*p;}fun函数返回值是()
答案:
一个整数
10.对以下程序段以叙述中正确的是()
typedefstructNODE
{
intnum;
structNODE*next;
}OLD;
答案:
OLD是一个结构体类型
11.若已定义x和y为int类型,则表达式x=1,y=x+3/2的值是______。
答案:
2
12.有如下嵌套的if语句
if(a
if(aelsek=c;
else
if(belsek=c;
以下选项中与上述if语句等价的语句是()。
答案:
k=(a
((aa:
c):
((bb:
c)
13以下是if语句的基本形式:
if(表达式)语句
其中"表达式"()。
答案:
可以是任意合法的表达式
14.若运行以下程序段时,从键盘输入Adescriptor(表示回车),则下面程序段的运行结果是()
charc;
intv0=0,v1=0,v2=0;
do{switch(c=getchar())
{case'a':
case'A':
case'e':
case'E':
case'i':
case'I':
case'o':
case'O':
case'u':
case'U':
v1+=1;
default:
v2+=1;}
v0+=1;
}while(c!
='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
答案:
v0=12,v1=4,v2=12
15.以下程序的运行结果是( )。
main()
{intm[][3]={1,4,7,2,5,8,3,6,9};
inti,j,k=2;
for(i=0;i<3;i++)
printf("%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);
printf("%s\n",a);}
答案:
Prohsbn
18.以下程序段运行后的输出结果是()
intk=0,i,m;
for(i=5;i<=15;i+=5)
{m=i;
while(m%5==0)
{k++;m=m/5;}
}
printf("%d\n",k);
答案:
3
19.有以下程序,程序的运行结果是()。
main(){intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;break;
case1:
b++;break;}
case2:
a++;b++;break;
case3:
a++;b++;}
printf("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);
if(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;
printf("%f\n",b);
若运行时输入2.0,则输出结果是()
答案:
0.500000
24.以下程序的结果是()。
main(){intn;
for(n=1;;)
{if(++n%2==0)continue;
if(++n%3==0)break;}
printf("n=%d",n);}
答案:
n=6
25.以下程序的运行结果是( )。
{
chararr[2][4];
strcpy(arr[0],"you");
strcpy(arr[1],"me");
arr[0][3]='&';
printf("%s\n",arr);
}
答案:
you&me
26.有以下程的运行结果是()
structty
{intx;
inty;
intz;}s[3]={1,2,3,4,5,6,7,8,9};
main()
{printf("%d,",++s[0].y);
printf("%d,",s[1].y++);
printf("%d,",s[2].z++);}
答案:
3,5,9
在C语言中,每个语句和数据定义是用( )结束。
分号
以下能正确定义一维数组的选项是()
inta['A'];
以下关于C语言的叙述中正确的是( )。
C语言中的注释不可以夹在变量名或关键字的中间
以下叙述中正确的是()
调用函数时,函数名必须与被调用的函数名完全一致
若有以下程序段
FILE*fp;
inti,a[6]={1,2,3,4,5,6},k;
fp=fopen("data.dat","w+b");
for(i=0;i<6;i++)
{fseek(fp,0L,0);
fwrite(&a[5-i],sizeof(int),1,fp);}
rewind(fp);
fread(&k,sizeof(int),1,fp);
fclose(fp);
printf("%d",k);
则程序段的输出结果是()
1
有以下程序
#include
#defineSUB(X,Y)(X+1)*Y
main()
{
inta=3,b=4;
printf("%d\n",SUB(a++,b++));
}
程序运行后的输出结果是()。
16
以下程序段的运行结果是()
voidswap(intb[])
{intt;
t=b[0];b[0]=b[1];b[1]=t;}
main()
{inta[2]={7,8};
swap(a);
printf("%d%d",a[0],a[1]);}
87
按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。
连接符
以下程序的输出结果是()。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(5,2,a);
printf("%d",a);}
31
有如下说明
structSTD
{intn;
charc;
doublex;};
则以下选项中,能正确定义结构体数组并赋初值的语句是()
structSTDtt[2]={{1,'A',62.0},{2,'B',75.0}};
以下选项中,当x为大于1的奇数时,值为0的表达式()。
x%2==0
有以下程序段:
()
inta=1,b=2,c=3;
if(a>b)
if(belseprintf("%d",++b);
printf("%d\n",a++);
1
以下程序段的输出结果()
intx=8,y=9,z;
if(x++>8)
z=++x;
else
z=++x;
printf("%d",z);
10
若运行以下程序段时,从键盘输入Adescriptor(表示回车),则下面程序段的运行结果是()
charc;
intv0=0,v1=0,v2=0;
do{switch(c=getchar())
{case'a':
case'A':
case'e':
case'E':
case'i':
case'I':
case'o':
case'O':
case'u':
case'U':
v1+=1;
default:
v2+=1;}
v0+=1;
}while(c!
='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
v0=12,v1=4,v2=12
以下程序的运行结果是( )。
main()
{inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{a[i][j]=i+j;
if(i=j)
sum=sum+a[i][j];}
printf("sum=%d",sum);}
sum=26
若a是数值类型,则逻辑表达式(a==1)||(a!
=1)的值是()。
1有以下程序段:
intx[]={10,20,30};
int*px=x;
printf("%d,",++*px);printf("%d,",*px);
px=x;
printf("%d,",(*px)++);printf("%d,",*px);
px=x;
printf("%d,",*px++);printf("%d,",*px);
px=x;
printf("%d,",*++px);printf("%d,",*px);
程序运行后的输出结果是()
11,11,11,12,12,20,20,20
下面程序段的运行结果是()
inti,j,a=0;
for(i=0;i<2;i++)
{for(j=0;j<4;j++)
{if(j%2)break;
a++;
}
a++;
}
printf("%d\n",a);
4
以下程序结果是()。
main()
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
case1:
a++;
case2:
a++;b++;}
printf("%d,%d",a,b);}
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"},
{1002,"yeming",'M',"jiangxi"}};
st1[2].name
以下关于结构化程序设计的叙述中正确的是( )。
在C语言中,程序的模块化是利用函数实现的
以下能正确定义一维数组的选项是()
inta['A'];
在一个C程序中()。
main函数可以在任何地方出现
以下关于return语句的叙述中正确的是()
一个自定义函数中可以根据不同情况设置多条return语句
有以下程序段
FILE*fp;charstr[10];
fp=fopen("myfile.dat","w");
fputs("abc",fp);
fclose(fp);
fp=fopen("myfile.dat","a+");
fprintf(fp,"%d",28);
rewind(fp);
fscanf(fp,"%s",str);
puts(str);
fclose(fp);
程序运行后的输出结果是()
abc28
若有以下程序
#defineS(x)x*x
#defineT(x)S(x)*S(x)
main()
{
intk=5,j=2;
printf("%d,%d\n",S(k+j),T(k+j));
}
则程序的输出结果是()。
17,37
以下程序段输出结果是()。
inti,a[10]={0};
for(i=0;i<10;i++)a[2*i]=2*i;
printf("%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
有以下程序段:
()
inta=1,b=2,c=3;
if(a>b)
if(belseprintf("%d",++b);
printf("%d\n",a++);
1
以下程序段中,与语句:
k=a>b?
(b>c?
1:
0):
0;功能相同的是()。
if((a>B)&&(b>C))k=1;
else k=0;
以下能正确计算10!
的程序段是()。
i=1;s=1;
do{s=s*i;
i++;
}while(i<=10);
以下程序的运行结果是( )。
main()
{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)s+=a[i][j];
printf("%d\n",s);}
18
设intx=1,y=1;表达式(!
x||y--)的值是()。
1
以下程序的运行结果是( )。
main()
{inta=25,*p;
p=&a;
printf("%d\n",++*p);}
26
以下程序段运行后的输出结果是()
inti,s=1,m=0;
for(i=1;i<=2;i++)
{s=s*11%1000;
do{m+=s%10;s=s/10;}while(s);
}
printf("m=%d\n",m);
2
以下选项中与
if(a==1)a=b;
elsea++;
语句不同的switch语句是()
switch(a==1)
{case0:
a=b;break;
case1:
a++;
}
下面程序段的运行结果是()
inta=1,b=2,c=2,t;
while(a
printf("%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++;}
main()
{ints=a,i=0;
for(;i<2;i++)s+=f(i);
printf("%d\n",s);}
28
若变量已正确定义,以下程序段运行结果是()。
inta=3,b=5,c=7;
if(a>b)a=b;c=a;
if(c!
=a)c=b;
printf("%d,%d,%d\n",a,b,c);
3,5,3
若有定义语句chars[10]="1234567\0\0";,则strlen(s)的值是()。
7
下列程序输出的结果是()
structabc
{inta,b,c;};
main()
{intt;
structabcs[2]={{4,5,6},{7,8,9}};
t=s[0].a+s[1].b;
printf("%d\n",t);}
12
三
以下叙述中正确的是( )。
我们所写的每条C语句,经过编译最终将转换成二进制的机器指令
以下能正确定义一维数组的选项是()。
intnum[5*2];
以下叙述中正确的是( )。
以上三种说法都不完整。
以下叙述中错误的是()
用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
有以下程序段
FILE*fp;charstr[10];
fp=fopen("myfile.dat","w");
fputs("abc",fp);
fclose(fp);
fp=fopen("myfile.dat","a+");
fprintf(fp,"%d",28);
rewind(fp);
fscanf(fp,"%s",str);
puts(str);
fclose(fp);
程序运行后的输出结果是()
abc28
在下列选项中不会引起二义性的宏定义是()。
#definef(a)((a)*(a))
以下程序的运行结果是( )。
voidswap1(intc[])
{intt;
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]);
printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}
5335
以下不正确的标识符是()
1TYP
以下函数值的类型是()。
fun(floatx)
{floaty;
y=3*x-4;
returny;}
int
设有以下结构体描述不正确的是()
structstu
{intx;
floaty;
}aa;
aa是用户定义的结构体类型名
有以下程序
main()
{
inta=1,b=0;
printf("%d,",b=a+b);
printf("%d\n",a=2*b);
}
程序运行后的输出结果是( )。
1,2
以下程序段的输出结果是()
intx=1,y=3,z=2;
if(x>=y)
z=-1;
else
if(y<0)z=0;
printf("%d\n",z);
2
有以下程序段:
inta=0,b=0,c=0,d=0;
if(a=1)b=1;
c=2;
elsed=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
程序输出()
编译有错
若运行以下程序段时,从键盘输入Adescriptor(表示回车),则下面程序段的运行结果是()
charc;
intv0=0,v1=0,v2=0;
do{switch(c=getchar())
{case'a':
case'A':
case'e':
case'E':
case'i':
case'I':
case'o':
case'O':
case'u':
case'U':
v1+=1;
default:
v2+=1;}
v0+=1;
}while(c!
='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
v0=12,v1=4,v2=12
以下程序的运行结果是( )。
main()
{intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++)t=t+b[i][b[j][j]];
printf("%d\n",t);}
4
sizeof(double)是( )。
一个整型表达式
有以下程序段运行后的输出结果是( )。
main()
{inta[10]={1,2,3,4,5,6,7,8,9},*p=a;
p++;
p++;
printf("%d\n",(*++p,*p++));}
4
以下程序段运行后的输出结果是()
intn=0,i,j,k;
for(i=1;i<=2;i++)
for(k=1;k<=2;k++)
for(j=1;j<=2;j++)
n++;
printf("n=%d\n",n);
n=6
有以下程序,程序的运行结果是()。
main(){intx=1,y=0,a=0,b=0;
switch(x)
{case1:
swit